*{box-sizing:border-box}body{background-color:var(--background);color:var(--text-primary);line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}:root{--primary-color: #3b82f6;--primary-dark: #2563eb;--secondary-color: #64748b;--background: #ffffff;--surface: #f8fafc;--text-primary: #1e293b;--text-secondary: #64748b;--border: #e2e8f0;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--radius: 8px;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}@media (prefers-color-scheme: dark){:root{--background: #0f172a;--surface: #1e293b;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--border: #334155}}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.25;font-weight:600}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}.text-left{text-align:left}.text-right{text-align:right}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.font-bold{font-weight:700}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.app-container{min-height:calc(100vh - 4rem);background:linear-gradient(135deg,var(--surface) 0%,var(--background) 100%)}.main-content{margin:0 auto;padding:2rem}.main-content:has(.portfolio-editor){max-width:none;margin:0;padding:0}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.grid{display:grid;gap:1rem}@media (max-width: 768px){.main-content{padding:1rem}.container{padding:0 .5rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:var(--radius);font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .2s;background:var(--primary-color);color:#fff}.btn:hover{background:var(--primary-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-outline{background:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-outline:hover{background:var(--primary-color);color:#fff}.btn-sm{padding:.5rem 1rem;font-size:.8125rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.5rem}.card-header{margin-bottom:1.5rem}.card-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.card-description{color:var(--text-secondary);margin:0}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-input{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--background);color:var(--text-primary);font-size:.875rem;transition:all .2s}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.form-input:disabled{background:var(--surface);opacity:.7;cursor:not-allowed}.form-input.error{border-color:var(--error)}.form-input.error:focus{border-color:var(--error);box-shadow:0 0 0 3px #ef44441a}.slug-input-container{position:relative;display:flex;align-items:center}.slug-input-container input{flex:1;padding-right:2.5rem}.slug-status{position:absolute;right:.75rem;font-size:1rem;font-weight:700;pointer-events:none}.slug-status-checking{color:#6b7280;animation:spin 1s linear infinite}.slug-status-available{color:#10b981}.slug-status-taken{color:#ef4444}.slug-status-error{color:#f59e0b}.slug-preview{font-size:.875rem;color:#6b7280;margin-top:.25rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.slug-hint{font-size:.875rem;color:#6b7280;margin-top:.25rem;font-style:italic}.slug-message{font-size:.875rem;margin-top:.25rem}.slug-checking{color:#6b7280}.slug-available{color:#10b981}.slug-taken{color:#ef4444}.slug-error{color:#f59e0b}.published-toggle-container{position:relative}.published-toggle-disabled{opacity:.6;pointer-events:none}.published-tooltip{position:absolute;bottom:100%;left:0;margin-bottom:.5rem;padding:.5rem .75rem;background-color:#374151;color:#fff;font-size:.875rem;border-radius:.375rem;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:10}.published-tooltip:after{content:"";position:absolute;top:100%;left:1rem;border-left:.25rem solid transparent;border-right:.25rem solid transparent;border-top:.25rem solid #374151}.published-toggle-disabled:hover .published-tooltip{opacity:1;visibility:visible}@media (max-width: 640px){.slug-input-container input{font-size:16px}.published-tooltip{white-space:normal;max-width:200px}.form-grid{grid-template-columns:1fr;gap:1rem}.btn{padding:.75rem 1rem;font-size:.875rem}.btn-primary{min-height:44px}}.slug-input-container input:focus{outline:2px solid #3b82f6;outline-offset:2px}.published-toggle-container input:focus{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-contrast: high){.slug-status-available{color:#059669}.slug-status-taken{color:#dc2626}.slug-status-error{color:#d97706}}.navbar{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:1rem 2rem;position:sticky;top:0;z-index:100}.navbar-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;color:var(--primary-color);text-decoration:none}.nav-links{display:flex;gap:1rem;align-items:center}.nav-link{color:var(--text-secondary);text-decoration:none;padding:.5rem 1rem;border-radius:var(--radius);transition:all .2s}.nav-link:hover,.nav-link.active{color:var(--primary-color);background:var(--surface)}.social-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.social-links .nav-link{padding:.25rem .5rem;font-size:.75rem;border-radius:calc(var(--radius) / 2)}.glass-card{padding:1rem 2rem;position:sticky;top:0;z-index:100;background:#fff3;box-shadow:0 4px 30px #0000001a;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.3)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.spinner{width:24px;height:24px;border:2px solid rgba(59,130,246,.3);border-top:2px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:auto}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary);flex-direction:column;gap:1rem}.image-cropper-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center}.image-cropper-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-cropper-container{position:relative;background:var(--background);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.image-cropper-header{padding:1.5rem;border-bottom:1px solid var(--border);text-align:center}.image-cropper-header h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.image-cropper-header p{margin:0;color:var(--text-secondary);font-size:.875rem}.image-cropper-content{padding:1.5rem;display:flex;justify-content:center;max-height:500px;overflow:auto}.image-cropper-content .ReactCrop{max-width:100%}.image-cropper-actions{padding:1.5rem;border-top:1px solid var(--border);display:flex;gap:1rem;justify-content:flex-end}.save-progress-modal{min-width:400px;max-width:500px}.save-progress-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.save-progress-icon{font-size:2rem;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:var(--primary-color);color:#fff;border-radius:50%}.save-progress-title{font-size:1.25rem;font-weight:600;margin:0}.save-progress-body{margin-bottom:1.5rem}.save-progress-message{font-size:1rem;margin-bottom:1rem;color:var(--text-primary)}.image-progress{margin:1rem 0}.image-progress-bar{width:100%;height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.image-progress-fill{height:100%;background:var(--primary-color);transition:width .3s ease}.image-progress-text{font-size:.875rem;color:var(--text-secondary);text-align:center}.save-progress-error{display:flex;align-items:center;gap:.5rem;padding:1rem;background:var(--error-bg);border:1px solid var(--error-border);border-radius:6px;margin:1rem 0}.save-progress-error .error-icon{font-size:1.25rem}.save-progress-error .error-message{color:var(--error-text);font-size:.875rem}.save-progress-spinner{display:flex;justify-content:center;margin:1.5rem 0}.save-progress-footer{display:flex;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-color)}.btn-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;margin-right:.5rem}.portfolio-save-action{display:flex;align-items:center;gap:1rem}.saved-sections-panel{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.panel-header{padding:1rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.panel-title{font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.panel-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0}.panel-content{padding:1rem;max-height:400px;overflow-y:auto}.panel-loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem}.panel-error{padding:1rem}.error-message{color:var(--error-text);font-size:.875rem;padding:.75rem;background:var(--error-bg);border:1px solid var(--error-border);border-radius:4px}.panel-empty{text-align:center;padding:2rem}.empty-icon{font-size:2rem;margin-bottom:.5rem}.empty-title{font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.empty-description{font-size:.875rem;color:var(--text-secondary)}.saved-sections-list{display:flex;flex-direction:column;gap:.75rem}.saved-section-item{border:1px solid var(--border-color);border-radius:6px;padding:1rem;background:var(--bg-primary);transition:all .2s ease}.saved-section-item:hover{border-color:var(--primary-color);box-shadow:0 2px 4px #0000001a}.saved-section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.saved-section-info{flex:1}.saved-section-name{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary)}.saved-section-type{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:.25rem .5rem;background:var(--bg-secondary);border-radius:3px;display:inline-block}.saved-section-actions{display:flex;gap:.5rem;flex-shrink:0}.saved-section-preview{margin-top:.75rem}.preview-title{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.preview-content{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.delete-confirm{margin-top:.75rem;padding:.75rem;background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:4px}.delete-confirm p{margin:0 0 .75rem;color:var(--warning-text);font-size:.875rem}.delete-confirm-actions{display:flex;gap:.5rem}.section-preview{padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px}.preview-content{color:var(--text-secondary)}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.form-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.1)}.form-error{margin-top:.5rem;font-size:.75rem;color:var(--error-text)}@media (max-width: 640px){.save-progress-modal{min-width:auto;max-width:90vw}.saved-section-header{flex-direction:column;gap:.75rem}.saved-section-actions{align-self:flex-end}}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;justify-content:center;min-height:200px}.is-loading{opacity:.6;pointer-events:none}.is-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.is-hidden{display:none}.is-visible{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);padding:1rem;margin:1rem 0;color:var(--error);text-align:center}.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:var(--radius);padding:1rem;margin:1rem 0;color:var(--success)}.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius);padding:1rem;margin:1rem 0;color:var(--warning)}.error-message{color:var(--error);font-size:.875rem;margin-top:.25rem}.toast{padding:1rem;border-radius:var(--radius);box-shadow:var(--shadow);max-width:400px}.toast.success{background:#fff;border:1px solid var(--success);color:var(--success)}.spinner{width:24px;height:24px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-4{margin:1rem}.m-6{margin:1.5rem}.m-8{margin:2rem}.mt-0{margin-top:0}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-4{margin-right:1rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-0{padding-left:0}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.flex-1{flex:1}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-around{justify-content:space-around}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.w-auto{width:auto}.w-fit{width:fit-content}.h-full{height:100%}.h-auto{height:auto}.h-fit{height:fit-content}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.hidden{display:none}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-auto{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-cols-auto-sm{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.grid-cols-auto-lg{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.rounded{border-radius:var(--radius)}.rounded-full{border-radius:50%}.rounded-none{border-radius:0}.user-profile{display:flex;align-items:center;gap:1rem}.user-avatar{width:3rem;height:3rem;border-radius:50%;border:2px solid var(--border)}.user-info h3{margin:0;font-size:1rem;font-weight:600}.user-info p{margin:0;color:var(--text-secondary);font-size:.875rem}.profile-header{text-align:center;margin-bottom:2rem}.profile-avatar{width:6rem;height:6rem;border-radius:50%;border:3px solid var(--primary-color);margin-bottom:1rem}.profile-form{max-width:500px;margin:0 auto}.profile-provider-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1.5rem}.provider-info-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.provider-info-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.provider-info-row:last-child{margin-bottom:0}.profile-picture-uploader{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem}.avatar-container{position:relative;display:inline-block}.profile-avatar-large{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid var(--border);box-shadow:var(--shadow)}.avatar-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:.875rem}.avatar-actions{text-align:center}.avatar-help-text{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary)}.repo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.repo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:all .2s}.repo-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.repo-title{font-size:1.125rem;font-weight:600;margin:0 0 .5rem;color:var(--primary-color)}.repo-description{color:var(--text-secondary);margin:0 0 1rem;font-size:.875rem}.repo-stats{display:flex;gap:1rem;font-size:.8125rem;color:var(--text-secondary)}.repo-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-top:.5rem}.repo-preview-title{font-weight:600;color:var(--primary-color);margin-bottom:.5rem}.repo-preview-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:.5rem}.repo-preview-stats{display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary)}@media (max-width: 768px){.repo-grid{grid-template-columns:1fr}}.portfolio-main{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;height:100%}.portfolio-preview{flex:1;background:var(--background);padding:1rem;overflow-y:auto;min-height:0;height:100%}.portfolio-editor-content{width:100%;height:100vh;padding:.5rem;overflow:hidden;display:flex;flex-direction:column;min-height:0}.portfolio-editor-grid{display:grid;grid-template-columns:30% 1fr;gap:.75rem;height:84vh;position:relative;--sidebar-width: 30%}.portfolio-editor-grid.sidebar-collapsed{grid-template-columns:0 1fr;gap:0;--sidebar-width: 0%}.sidebar-toggle{position:absolute;top:1rem;left:calc(var(--sidebar-width) - .375rem);z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:0 var(--radius) var(--radius) 0;width:2rem;height:3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:var(--text-secondary);box-shadow:var(--shadow)}.sidebar-toggle:hover{background:var(--background);color:var(--text-primary)}.sidebar-toggle.collapsed{left:0;border-radius:0 var(--radius) var(--radius) 0}.toggle-icon{font-size:.75rem;transition:transform .3s ease}.portfolio-sidebar{display:flex;flex-direction:column;gap:1rem;width:100%;height:100%;min-height:0;overflow-y:auto;transition:transform .3s ease,opacity .3s ease;transform:translate(0);opacity:1}.portfolio-sidebar.collapsed{transform:translate(-100%);opacity:0;pointer-events:none}.template-settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;box-shadow:var(--shadow)}.template-settings-card,.template-settings-card .collapsible-content,.template-settings-card .form-group,.template-settings-card .form-input,.template-settings-card select{position:relative;z-index:30;pointer-events:auto}.collapsible-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);background-clip:padding-box}.collapsible-header:hover{background:var(--background)}.collapsible-header .card-title{margin:0;flex:1}.collapse-icon{font-size:.75rem;color:var(--text-secondary);transition:transform .3s ease;margin-left:.5rem}.collapse-icon.collapsed{transform:rotate(-90deg)}.collapsible-content{padding:0 1rem 1rem;overflow:hidden;transition:max-height .3s ease,opacity .3s ease;max-height:1000px;opacity:1}.collapsible-content.collapsed{max-height:0;opacity:0;padding-top:0;padding-bottom:0}.zones-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.saved-sections-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);flex:1;display:flex;flex-direction:column;justify-content:space-between;height:100%}.portfolio-main{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;height:100%;min-height:0}.portfolio-preview{flex:1;background:var(--background);padding:1rem;overflow-y:auto;min-height:0}.portfolio-user-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);padding:1rem;color:#fff;margin-bottom:1rem;border-radius:var(--radius)}.portfolio-user-info{display:flex;align-items:center;gap:1rem}.portfolio-avatar{width:4rem;height:4rem;border-radius:50%;border:3px solid rgba(255,255,255,.3)}.portfolio-meta{margin-top:1.5rem}.sections-container{display:flex;flex-direction:column;gap:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow);min-height:0}.section-placeholder{border:2px dashed var(--border);border-radius:var(--radius);padding:1rem;text-align:center;color:var(--text-secondary);background:var(--surface);transition:all .2s ease}.section-placeholder:hover{border-color:var(--primary-color);background:#3b82f60d}.add-section-btn{width:100%;padding:.75rem;border:2px dashed var(--border);border-radius:var(--radius);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:.9rem}.add-section-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:#3b82f60d}@media (min-width: 1400px){.portfolio-editor-grid{--sidebar-width: 25%;grid-template-columns:25% 1fr}}@media (max-width: 1024px){.portfolio-editor-grid{grid-template-rows:auto 1fr;grid-template-columns:1fr;grid-template-areas:"sidebar" "portfolio"}.portfolio-sidebar{grid-area:sidebar;order:1}.portfolio-main{grid-area:portfolio;order:2}.portfolio-editor-grid.sidebar-collapsed{grid-template-columns:1fr}.sidebar-toggle{display:none}.portfolio-sidebar{order:1;flex-direction:column;width:auto;transform:none;opacity:1;pointer-events:auto;gap:.5rem}.portfolio-sidebar.collapsed{transform:none;opacity:1;pointer-events:auto}.template-settings-card,.saved-sections-card{flex:none;width:100%;display:flex;flex-direction:column;justify-content:space-between}.portfolio-main{order:2}}@media (max-width: 768px){.portfolio-editor-content{padding:.5rem}.portfolio-sidebar{flex-direction:column}.portfolio-user-info{flex-direction:column;text-align:center}.portfolio-preview{padding:.75rem}.portfolio-sidebar{display:flex;flex-direction:column;gap:1rem}.template-settings-card,.saved-sections-card{flex:1;display:flex;flex-direction:column;justify-content:space-between}}.space-y-3>*+*{margin-top:.75rem}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-gray-500{color:#6b7280}.text-gray-600{color:#4b5563}.text-red-600{color:#dc2626}.text-red-800{color:#991b1b}.text-blue-100{color:#dbeafe}.text-blue-200{color:#bfdbfe}.text-blue-800{color:#1e40af}.text-white{color:#fff}.bg-blue-100{background-color:#dbeafe}.bg-blue-800{background-color:#1e40af}.hover\:text-red-800:hover{color:#991b1b}.hover\:text-white:hover{color:#fff}.hover\:border-gray-300:hover{border-color:#d1d5db}.cursor-pointer{cursor:pointer}.rounded{border-radius:.25rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-6{margin-bottom:1.5rem}.mr-2{margin-right:.5rem}.gap-3{gap:.75rem}.w-full{width:100%}.h-4{height:1rem}.w-4{width:1rem}.flex-1{flex:1 1 0%}.inline-flex{display:inline-flex}.border{border-width:1px}.border-r-0{border-right-width:0}.border-gray-200{border-color:#e5e7eb}.border-gray-300{border-color:#d1d5db}.text-center{text-align:center}.underline{text-decoration-line:underline}.sections-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow)}.sections-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem;box-shadow:var(--shadow);min-height:0}.sections-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-content{padding:1rem}.add-section-menu{position:absolute;top:100%;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:10;min-width:200px;margin-top:.5rem}.add-section-item{display:block;width:100%;padding:.75rem 1rem;text-align:left;border:none;background:none;color:var(--text-primary);cursor:pointer;transition:background-color .2s}.add-section-item:hover{background:var(--border)}.add-section-item:first-child{border-radius:var(--radius) var(--radius) 0 0}.add-section-item:last-child{border-radius:0 0 var(--radius) var(--radius)}.sections-list{display:flex;flex-direction:column;gap:1rem}.section-card{background:var(--background);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all .2s}.section-card:hover{box-shadow:var(--shadow)}.section-card.dragging{opacity:.5;transform:rotate(5deg)}.section-card.fixed-section{border-left:4px solid var(--primary-color)}.section-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--surface);border-bottom:1px solid var(--border)}.section-card-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary)}.section-actions{display:flex;gap:.5rem;margin-left:auto}.section-action-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:calc(var(--radius) / 2);background:var(--background);color:var(--text-secondary);cursor:pointer;transition:all .2s}.section-action-btn:hover{background:var(--border);color:var(--text-primary)}.section-action-btn:disabled{opacity:.5;cursor:not-allowed}.section-action-btn.delete:hover{background:#fee2e2;color:#dc2626}.drag-handle{cursor:grab}.drag-handle:active{cursor:grabbing}.section-content{padding:1.5rem}.section-editor{display:flex;flex-direction:column;gap:1rem}.character-counter{font-size:.75rem;color:var(--text-secondary);text-align:right;margin-top:.25rem}.character-counter.warning{color:var(--warning)}.character-counter.error{color:var(--error)}.link-item{display:flex;gap:.5rem;align-items:flex-start;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.5rem}.link-item:last-child{margin-bottom:0}.link-inputs{flex:1;display:flex;flex-direction:column;gap:.5rem}.image-preview{max-width:200px;max-height:120px;border-radius:var(--radius);margin-top:.5rem;border:1px solid var(--border)}.gallery-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.5rem}.gallery-image{width:100%;height:80px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border)}.delete-confirm-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-dialog{background:#fff;border-radius:8px;padding:24px;min-width:400px;max-width:500px;box-shadow:0 4px 12px #00000026;text-align:center}.dialog-icon{margin-bottom:16px;display:flex;justify-content:center}.delete-confirm-dialog h3{margin:0 0 16px;color:#333;font-size:18px;font-weight:600}.dialog-message{margin-bottom:24px;text-align:left}.dialog-message p{margin:0 0 12px;color:#555;line-height:1.5}.item-info{margin:8px 0;padding:8px 12px;background-color:#f8f9fa;border-radius:4px;font-size:14px}.item-info strong{color:#333;margin-right:8px}.warning-text{color:#ef4444!important;font-size:14px;font-style:italic;margin-top:12px!important}.dialog-buttons button{padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;min-width:80px}.cancel-button{background:#f3f4f6;color:#374151}.cancel-button:hover{background:#e5e7eb}.delete-button{background:#ef4444;color:#fff}.delete-button:hover{background:#dc2626}.delete-button:active{background:#b91c1c}.dialog-buttons button:focus{outline:2px solid #3b82f6;outline-offset:2px}.delete-confirm-dialog-overlay:focus{outline:none}.keycaps{display:flex;justify-content:center;align-items:center;margin:.75rem 0;padding:0;box-sizing:border-box;font-family:consolas}.keycap{position:relative;display:inline-block;flex:0 0 auto;width:120px;aspect-ratio:1 / 1;height:auto;min-width:60px;min-height:60px;max-width:100%;border-radius:15px;padding:2px 10px;margin:12px 6px;background:linear-gradient(180deg,#282828,#202020);box-shadow:inset -12px 0 12px #00000026,inset 0 -12px 12px #00000040;box-shadow:0 0 0 3px #000000bf,15px 30px 37.5px #0006;overflow:hidden}.keycap:before{content:"";position:absolute;top:4.5px;left:4.5px;bottom:21px;right:18px;background:linear-gradient(90deg,#232323,#4a4a4a);border-radius:15px;box-shadow:-15px -15px 15px #ffffff40,7.5px 3.75px 7.5px #00000040;border-left:2px solid #0004;border-bottom:2px solid #0004;border-bottom:2px solid #0009}span i{position:relative;color:#fff;font-style:normal;text-transform:uppercase;font-size:3.75em;-webkit-user-select:none;user-select:none}._box_1f8k9_3{background:#ffffff52;box-shadow:inset 0 0 4px #fffc,0 1px #fff6;cursor:pointer;position:relative;overflow:hidden;outline:none;border:none}._keycap_qlqex_1{position:relative;display:inline-block;flex:0 0 auto;aspect-ratio:1 / 1;min-width:60px;min-height:60px;border-radius:14px;padding:2px 10px;margin:12px 6px;overflow:hidden;background:linear-gradient(180deg,#ffffff2e,#ffffff1a);border:1px solid rgba(255,255,255,.571);box-shadow:0 0 0 2px #ffffff8c,12px 24px 32px #ffffff2e,inset 0 1px 2px #ffffff68;transition:transform 90ms ease,box-shadow .12s ease,filter .12s ease;-webkit-tap-highlight-color:transparent}._inner_qlqex_49{content:"";position:absolute;top:9.5px;right:16px;bottom:18px;left:9.5px;border-radius:10px;background:linear-gradient(90deg,#e6e6e624,#ffffff1f);box-shadow:-18px -20px 20px 10px #ffffff9b,20px 20px 20px 12px #2f2f2f78,inset 0 -1px 1px #0000009b;border-left:1px solid rgba(231,231,231,.679);border-bottom:1px solid rgba(43,43,43,.535);pointer-events:none}._edgeTop_qlqex_81{content:"";position:absolute;top:2px;left:6px;right:6px;height:1.5px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(228,228,228,.735),transparent);opacity:.7;pointer-events:none}._edgeBottom_qlqex_109{content:"";position:absolute;left:8px;right:8px;bottom:10px;height:8px;border-radius:10px;background:radial-gradient(100% 140% at 50% 0%,rgba(0,0,0,.492) 0%,transparent 70%);filter:blur(4px);opacity:.7;pointer-events:none}._glyph_qlqex_139{position:relative;z-index:1;display:grid;place-items:center;height:100%;width:100%;-webkit-user-select:none;user-select:none}._glyph_qlqex_139 i{position:relative;font-style:normal;text-transform:uppercase;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji";font-weight:600;letter-spacing:.5px;font-size:clamp(1.8rem,6.5vw,3.6rem);color:#fff;text-shadow:0 1px 0 rgba(255,255,255,.35),0 8px 18px rgba(0,0,0,.35);transform:translate(-5%,-12%)}._keycap_qlqex_1:hover{box-shadow:0 0 0 3px #ffffffc1,12px 24px 30px #ffffff57,inset 0 1px #ffffffb3;filter:saturate(1.15) brightness(1.06)}._keycap_qlqex_1:active{transform:translateY(2px) scale(.992);box-shadow:0 0 0 3px #ffffffb3,8px 14px 22px #ffffff5c,inset 0 2px 3px #ffffff40}._keycap_qlqex_1:focus-visible{outline:none;box-shadow:0 0 0 3px #000000a6,0 0 0 5px #5096ffa6,14px 28px 36px #00000061,inset 0 1px #fff9}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){._keycap_qlqex_1{background:linear-gradient(180deg,#ebebeb40,#dcdcdc26)}}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.section-title{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:inherit}.section-title-editable{cursor:pointer;padding:.25rem .5rem;border-radius:.25rem;transition:background-color .2s ease,color .2s ease}.section-title-editable:hover{background-color:#0000000d}.section-title-editor{display:flex;align-items:center;margin-bottom:.75rem}.section-title-input{font-size:1.25rem;font-weight:600;background:#fff;border:2px solid #3b82f6;border-radius:.25rem;padding:.25rem .5rem;outline:none;color:inherit;font-family:inherit;width:100%;min-height:2rem;box-sizing:border-box;box-shadow:0 0 0 3px #3b82f61a}.section-title-input::placeholder{color:#9ca3af;opacity:1}.section-title-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.tpl-example-root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;color:var(--tpl-text, #0f172a)}.tpl-example-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid rgba(0,0,0,.04)}.tpl-example-nav a{margin-left:12px;color:inherit;text-decoration:none}.tpl-example-main{padding:20px;display:flex;flex-direction:column;gap:20px}.tpl-section-inner{padding:12px;background:var(--tpl-section-bg, #fff);border-radius:8px;border:1px solid rgba(0,0,0,.04)}.tpl-section-title{margin:0 0 10px;font-size:1rem}.tpl-section-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.tpl-item{padding:10px;border-radius:8px;background:var(--tpl-item-bg, #f8fafc);border:1px solid rgba(0,0,0,.04)}.tpl-item--text .tpl-item__text{margin:0}.tpl-item--character .tpl-item__char{font-size:1.6rem;text-align:center}.tpl-item--double .tpl-item__double-title{font-weight:700}.layout-grid .tpl-section-items{grid-template-columns:repeat(2,1fr)}.layout-column .tpl-section-items{grid-template-columns:1fr}.layout-row .tpl-section-items{grid-auto-flow:column;grid-auto-columns:1fr}.tpl-example--dark{--tpl-section-bg: #0b1220;--tpl-item-bg: #071025;--tpl-text: #e6eef8}.tpl-two-column-dark{--bg: #2a303d;--panel-bg: #47494c;--accent: #2dd4bf;--text: #e6eef6;background:var(--bg);color:var(--text);width:100%;box-sizing:border-box;padding:20px}.tpl-two-column-dark .two-top{display:flex;gap:16px;margin-bottom:16px}.tpl-two-column-dark .col{flex:1 1 0;background:var(--panel-bg);padding:0;border-radius:8px;box-shadow:0 2px 8px #0006;min-height:120px;box-sizing:border-box}.tpl-two-column-dark .bottom{display:flex;flex-direction:column;background:var(--panel-bg);border-radius:8px;box-shadow:0 2px 8px #0006}.tpl-two-column-dark .tpl-section{width:100%}.tpl-two-column-dark .tpl-item{background:#ffffff05;border:1px solid rgba(255,255,255,.03);padding:8px 10px;margin-bottom:8px;border-radius:6px;color:var(--text)}.tpl-two-column-dark .section-title{color:var(--accent);font-weight:600;margin:16px}.tpl-dark .portfolio-item-base{background:#ffffff08;border:1px solid rgba(255,255,255,.08);color:var(--text, #e6eef6)}.tpl-dark .portfolio-item-base:hover{background:#ffffff0d;border-color:#ffffff26}.tpl-dark .item-textPhoto{min-height:140px;padding:16px}.tpl-dark .section-left .item-textPhoto{min-height:240px}.tpl-dark .section-left .item-textPhoto .textPhotoImageSection{width:160px;height:120px}.tpl-dark .section-bottom .item-textPhoto{min-height:180px}.tpl-dark .section-bottom .item-textPhoto .textPhotoImageSection{width:140px;height:105px}.tpl-dark .item-text{min-height:80px;padding:14px}.tpl-dark .item-doubleText{min-height:100px;padding:14px}.tpl-dark .item-textPhoto input{background:#ffffff0d;border-color:#ffffff26;color:var(--text, #e6eef6)}.tpl-dark .item-textPhoto input::placeholder{color:#fff6}.tpl-dark .item-textPhoto input:focus{background:#ffffff14;border-color:var(--accent, #2dd4bf);color:var(--text, #e6eef6)}.tpl-two-column-dark .section-title-editable:hover{background-color:#ffffff1a}.tpl-two-column-dark .section-title-input{background:#1f2937;color:#fff;border-color:#3b82f6}.tpl-two-column-dark .section-title-input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa1a}.tpl-two-column-white{--accent: #2dd4bf;--text: #e6eef6;background:var(--bg);color:var(--text);width:100%;box-sizing:border-box;padding:20px}.tpl-two-column-white .two-top{display:flex;gap:16px;margin-bottom:16px}.tpl-two-column-white .col{flex:1 1 0;background:var(--panel-bg);padding:0;border-radius:8px;box-shadow:0 2px 8px #0006;min-height:120px;box-sizing:border-box}.tpl-two-column-white .bottom{display:flex;flex-direction:column;background:var(--panel-bg);border-radius:8px;box-shadow:0 2px 8px #0006}.tpl-two-column-white .tpl-section{width:100%}.tpl-two-column-white .tpl-item{background:#ffffff05;border:1px solid rgba(255,255,255,.03);padding:8px 10px;margin-bottom:8px;border-radius:6px;color:var(--text)}.tpl-two-column-white .section-title{color:var(--accent);font-weight:600;margin:16px}.tpl-user-profile{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:2rem;line-height:1.6}.tpl-user-profile .portfolio-item{background:transparent;margin-bottom:2rem}.tpl-user-profile .user-header{display:flex;align-items:center;gap:2.5rem;margin-bottom:3rem;background:#ffffff26;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:20px;padding:2.5rem;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000001a;align-items:stretch}.tpl-user-profile .user-avatar{flex:0 0 140px;width:100%;height:100%;display:flex;align-items:center;justify-content:center;margin-right:1.25rem}.tpl-user-profile .user-top{display:flex;align-items:center;gap:1.25rem}.tpl-user-profile .user-meta{display:flex;flex-direction:column;gap:.5rem;flex:1 1 0%;min-width:0}.tpl-user-profile .avatar-image{width:140px;height:140px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.4);box-shadow:0 8px 24px #0003;transition:transform .3s ease;display:block;line-height:0;box-sizing:border-box}.tpl-user-profile .avatar-image,.avatar-placeholder{max-width:140px;max-height:140px;width:100%;height:100%;box-sizing:border-box}.tpl-user-profile .avatar-image:hover{transform:scale(1.05)}.tpl-user-profile .avatar-placeholder{width:140px;height:140px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;font-size:3.5rem;font-weight:700;border:4px solid rgba(255,255,255,.4);box-shadow:0 8px 24px #0003;display:block;line-height:0}.tpl-user-profile .user-info{flex:1 1 0%;min-width:0;display:block}.tpl-user-profile .user-name{font-size:3rem;font-weight:800;margin:0 0 0rem;text-shadow:0 4px 8px rgba(0,0,0,.3);background:linear-gradient(45deg,#fff,#e0e7ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tpl-user-profile .user-contact{margin-bottom:0rem}.tpl-user-profile .contact-link{color:#ffffffe6;text-decoration:none;font-size:1.2rem;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.tpl-user-profile .contact-link:hover{color:#fff;text-decoration:underline;transform:translateY(-1px)}.tpl-user-profile .user-description{margin:1.5rem 0 0rem;width:100%}.tpl-user-profile .description-textarea-direct{width:100%;min-height:120px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:12px;color:#fff;font-size:1.1rem;line-height:1.6;padding:1rem;resize:vertical;transition:all .3s ease;font-family:inherit}.tpl-user-profile .description-textarea-direct::placeholder{color:#fff9}.tpl-user-profile .description-textarea-direct:focus{outline:none;border-color:#fff9;background:#ffffff26;box-shadow:0 0 0 3px #ffffff1a}.tpl-user-profile .description-display-readonly{font-size:1.1rem;line-height:1.6;padding:1rem;border-radius:12px;min-height:3rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.2)}.tpl-user-profile .social-links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.tpl-user-profile .social-link{padding:.75rem 1.5rem;background:#fff3;color:#fff;text-decoration:none;border-radius:25px;font-size:.95rem;font-weight:600;transition:all .3s ease;border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tpl-user-profile .social-link:hover{background:#ffffff4d;transform:translateY(-3px);box-shadow:0 6px 20px #0003}.tpl-user-profile .social-link.linkedin:hover{background:linear-gradient(45deg,#0077b5,#00a0dc);border-color:#0077b5}.tpl-user-profile .social-link.github:hover{background:linear-gradient(45deg,#333,#555);border-color:#333}.tpl-user-profile .social-link.website:hover{background:linear-gradient(45deg,#ff6b6b,#ff8e8e);border-color:#ff6b6b}.tpl-user-profile .social-link.twitter:hover{background:linear-gradient(45deg,#1da1f2,#4db8f5);border-color:#1da1f2}.portfolio-content{display:flex;flex-direction:column;gap:2.5rem}.portfolio-section{background:#ffffff1f;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:20px;padding:2rem;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000001a;transition:all .3s ease}.portfolio-section:hover{background:#ffffff26;transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.tpl-user-profile .section-title{color:#fff;font-size:1.8rem;font-weight:700;margin-bottom:1.5rem;text-shadow:0 2px 4px rgba(0,0,0,.3);position:relative;padding-bottom:.5rem}.tpl-user-profile .section-title:after{content:"";position:absolute;bottom:0;left:0;width:50px;height:3px;background:linear-gradient(90deg,rgba(255,255,255,.8),transparent);border-radius:2px}.experience-section{flex:1;background:linear-gradient(135deg,#ffffff1f,#ffffff14)}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-top:2rem}.projects-section{min-height:400px;background:linear-gradient(135deg,#a855f726,#8b5cf61a);border-color:#a855f74d}.tpl-user-profile .projects-section .item-githubProject{background:linear-gradient(135deg,#ffffff2e,#ffffff1f);border:1px solid rgba(255,255,255,.3);border-radius:16px;padding:1.5rem;margin-bottom:1.25rem;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);min-height:200px;display:flex;flex-direction:column}.tpl-user-profile .projects-section .item-githubProject:hover{background:linear-gradient(135deg,#ffffff40,#ffffff2e);transform:translateY(-3px);box-shadow:0 12px 30px #0003;border-color:#fff6}.tpl-user-profile .projects-section .github-project-name{font-size:1.4rem;font-weight:800;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.tpl-user-profile .projects-section .github-project-description{font-size:1rem;line-height:1.6;color:#ffffffe6;margin-bottom:1rem}.tpl-user-profile .projects-section .github-project-topic{background:#a855f74d;border:1px solid rgba(168,85,247,.5);color:#fff;font-weight:600}.tpl-user-profile .projects-section .github-project-link{background:#a855f766;border:1px solid rgba(168,85,247,.6);color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2)}.tpl-user-profile .projects-section .github-project-link:hover{background:#a855f799;border-color:#a855f7cc;box-shadow:0 4px 15px #a855f74d}.tpl-user-profile .projects-section .github-project-link.primary{background:linear-gradient(135deg,#a855f799,#8b5cf680);border-color:#a855f7b3}.tpl-user-profile .projects-section .github-project-link.primary:hover{background:linear-gradient(135deg,#a855f7cc,#8b5cf6b3);border-color:#a855f7e6}.skills-section{min-height:350px;background:linear-gradient(135deg,#22c55e26,#10b9811a);border-color:#22c55e4d}.tpl-user-profile .item-content{background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:12px;padding:1rem;margin-bottom:.75rem;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tpl-user-profile .item-content:hover{background:#fff3;transform:translateY(-1px);box-shadow:0 4px 16px #00000026}.tpl-user-profile .item-text .text-content{color:#fff;font-size:1rem;line-height:1.5;font-weight:500}.tpl-user-profile .item-doubleText{background:linear-gradient(135deg,#3b82f626,#2563eb1a);border-color:#3b82f64d}.tpl-user-profile .item-doubleText .double-text-content{color:#fff}.tpl-user-profile .item-doubleText .text1{font-size:1.1rem;font-weight:700;margin-bottom:.5rem;color:#e0e7ff}.tpl-user-profile .item-doubleText .text2{font-size:.95rem;opacity:.9;line-height:1.4}.tpl-user-profile .item-character{background:linear-gradient(135deg,#fbbf2426,#f59e0b1a);border-color:#fbbf244d;text-align:center;padding:.75rem;min-height:60px;display:flex;align-items:center;justify-content:center}.tpl-user-profile .item-character .character-content{font-size:1.5rem;font-weight:800;color:#fef3c7;text-shadow:0 2px 4px rgba(0,0,0,.3)}.tpl-user-profile .item-textPhoto{background:linear-gradient(135deg,#ec489926,#db27771a);border-color:#ec48994d;display:flex;gap:1rem;align-items:flex-start}.tpl-user-profile .item-textPhoto .text-content{flex:1}.tpl-user-profile .item-textPhoto .image-content{flex-shrink:0;width:80px;height:80px;border-radius:8px;overflow:hidden}.tpl-user-profile .item-textPhoto .image-content img{width:100%;height:100%;object-fit:cover}.tpl-user-profile .experience-section .item-content{border-left:4px solid rgba(99,102,241,.5);background:linear-gradient(135deg,#6366f11a,#4f46e50d)}.tpl-user-profile .projects-section .item-content{border-left:4px solid rgba(168,85,247,.5)}.tpl-user-profile .skills-section .item-content{border-left:4px solid rgba(34,197,94,.5)}@media (max-width: 768px){.tpl-user-profile{padding:1rem}.user-header{flex-direction:column;text-align:center;gap:1.5rem;padding:1.5rem}.avatar-image,.avatar-placeholder{width:120px;height:120px}.user-name{font-size:2.5rem}.content-grid{grid-template-columns:1fr;gap:1.5rem}.social-links{justify-content:center}.portfolio-section{padding:1.5rem}.section-title{font-size:1.5rem}}.save-item-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.save-item-dialog{background:#fff;border-radius:8px;padding:24px;min-width:400px;max-width:500px;box-shadow:0 4px 12px #00000026}.save-item-dialog h3{margin:0 0 16px;color:#333;font-size:18px}.item-preview{margin-bottom:16px;padding:12px;background-color:#f8f9fa;border-radius:4px;border:1px solid #e9ecef}.item-preview label{display:block;font-weight:500;color:#666;font-size:12px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.preview-content{color:#333;font-size:14px}.upload-progress{margin-bottom:16px;padding:12px;background-color:#f0f9ff;border:1px solid #0ea5e9;border-radius:4px}.upload-status{display:flex;align-items:center;gap:8px;color:#0369a1;font-size:14px}.upload-spinner{animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.input-section{margin-bottom:20px}.input-section label{display:block;margin-bottom:6px;font-weight:500;color:#333;font-size:14px}.input-section input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.input-section input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.dialog-buttons{display:flex;gap:12px;justify-content:flex-end}.dialog-buttons button{padding:8px 16px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:#ebf1fd;color:#333}.cancel-button:hover{background-color:#ed5353;color:#fff}.save-button{background-color:#007bff;color:#fff}.save-button:hover:not(:disabled){background-color:#0056b3}.save-button:disabled{background-color:#ccc;cursor:not-allowed}.github-repo-dialog{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.github-repo-dialog-content{background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:16px;box-shadow:0 8px 32px #0000004d;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.github-repo-dialog-header{padding:24px 24px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.github-repo-dialog-title{font-size:20px;font-weight:600;color:#fff;margin:0}.github-repo-dialog-close{background:none;border:none;color:#ffffffb3;font-size:24px;cursor:pointer;padding:4px;border-radius:8px;transition:all .2s ease}.github-repo-dialog-close:hover{color:#fff;background:#ffffff1a}.github-repo-dialog-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.github-repo-list{flex:1;overflow-y:auto;padding:16px 24px 24px;display:flex;flex-direction:column;gap:12px}.github-repo-list::-webkit-scrollbar{width:8px}.github-repo-list::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.github-repo-list::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.github-repo-list::-webkit-scrollbar-thumb:hover{background:#ffffff80}.github-repo-item{background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.github-repo-item:hover{background:#ffffff26;border-color:#ffffff40;transform:translateY(-2px);box-shadow:0 8px 25px #0003}.github-repo-item:active{transform:translateY(0)}.github-repo-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.github-repo-name{font-size:18px;font-weight:700;color:#fff;margin:0;line-height:1.2}.github-repo-stats{display:flex;gap:16px;flex-shrink:0;margin-left:16px}.github-repo-stat{display:flex;align-items:center;gap:4px;color:#fffc;font-size:14px;font-weight:500}.github-repo-stat-icon{font-size:16px}.github-repo-description{color:#ffffffd9;font-size:14px;line-height:1.5;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.github-repo-topics{display:flex;flex-wrap:wrap;gap:8px}.github-repo-topic{background:#ffffff26;color:#ffffffe6;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid rgba(255,255,255,.1)}.github-repo-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:#ffffffb3;font-size:16px}.github-repo-error{display:flex;align-items:center;justify-content:center;padding:40px;color:#ff6b6b;font-size:16px;text-align:center}.github-repo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#fff9;font-size:16px;text-align:center}.github-repo-empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme: dark){.github-repo-dialog-content{background:#14141ee6;border-color:#ffffff1a}.github-repo-item{background:#ffffff0d}.github-repo-item:hover{background:#ffffff1a}}.action{display:flex;width:12px;padding:15px;align-items:center;justify-content:center;flex:0 0 auto;touch-action:none;cursor:var(--cursor, pointer);border-radius:5px;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;-webkit-tap-highlight-color:transparent}@media (hover: hover){.action:hover{background-color:var(--action-background, rgba(0, 0, 0, .05))}.action:hover svg{fill:#6f7b88}}.action svg{flex:0 0 auto;margin:auto;height:100%;overflow:visible;fill:#919eab}.action:active{background-color:var(--background, rgba(0, 0, 0, .05))}.action:active svg{fill:var(--fill, #788491)}.action:focus-visible{outline:none;box-shadow:0 0 0 2px #fff0,0 0 0 2px #4c9ffe}@keyframes pop{0%{transform:scale(1);box-shadow:var(--box-shadow)}to{transform:scale(var(--scale));box-shadow:var(--box-shadow-picked-up)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.portfolio-item{position:relative;display:flex;flex-direction:column;width:100%;min-height:60px;background-color:#fff;border:1px solid rgba(63,63,68,.1);outline:none;border-radius:4px;box-sizing:border-box;transform-origin:50% 50%;-webkit-tap-highlight-color:transparent;transform:translate3d(var(--translate-x, 0),var(--translate-y, 0),0) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1)) scale(var(--scale, 1));transition:box-shadow .2s cubic-bezier(.18,.67,.6,1.22);touch-action:manipulation;cursor:grab}.portfolio-item:focus-visible{box-shadow:0 0 4px 1px #4c9ffe,0 0 0 calc(1px / var(--scale-x, 1)) #3f3f440d,0 1px calc(3px / var(--scale-x, 1)) 0 #22215126}.portfolio-item.fade-in{animation:fadeIn .5s ease}.portfolio-item.is-dragging:not(.is-overlay){opacity:var(--dragging-opacity, .5);z-index:0}.portfolio-item.is-dragging:not(.is-overlay):focus{box-shadow:0 0 0 calc(1px / var(--scale-x, 1)) #3f3f440d,0 1px calc(3px / var(--scale-x, 1)) 0 #22215126}.portfolio-item.is-overlay{--scale: 1.05;--box-shadow: 0 0 0 calc(1px / var(--scale-x, 1)) rgba(63, 63, 68, .05), 0 1px calc(3px / var(--scale-x, 1)) 0 rgba(34, 33, 81, .15);--box-shadow-picked-up: 0 0 0 calc(1px / var(--scale-x, 1)) rgba(63, 63, 68, .05), -1px 0 15px 0 rgba(34, 33, 81, .01), 0px 15px 15px 0 rgba(34, 33, 81, .25);z-index:999;cursor:inherit;animation:pop .2s cubic-bezier(.18,.67,.6,1.22);transform:scale(var(--scale));box-shadow:var(--box-shadow-picked-up);opacity:1}.portfolio-item.is-disabled{color:#999;background-color:#f1f1f1;cursor:not-allowed}.portfolio-item.is-disabled:focus{box-shadow:0 0 4px 1px #0000001a,0 0 0 calc(1px / var(--scale-x, 1)) #3f3f440d,0 1px calc(3px / var(--scale-x, 1)) 0 #22215126}.portfolio-item.is-read-only,.portfolio-item.has-handle{cursor:auto}.item-delete{position:absolute;top:8px;right:8px;z-index:10;background:#ffffffe6;border:1px solid rgba(0,0,0,.1);border-radius:4px;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;opacity:0;transition:opacity .2s ease}.portfolio-item:hover .item-delete{opacity:1}.item-delete:hover{background:#ff00001a;border-color:#ff00004d}.item-content{flex:1;padding:12px;display:flex;flex-direction:column}.item-handle{position:absolute;top:50%;right:8px;transform:translateY(-50%)}.portfolio-item.color:before{content:"";position:absolute;top:0;left:0;height:100%;width:3px;display:block;border-top-left-radius:3px;border-bottom-left-radius:3px;background-color:var(--color)}.github-project-item{background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:20px;transition:all .2s ease;position:relative;overflow:hidden;height:100%;display:flex;flex-direction:column}.github-project-item:hover{background:#ffffff1f;border-color:#ffffff40;transform:translateY(-2px);box-shadow:0 8px 25px #0003}.github-project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.github-project-name{font-size:18px;font-weight:700;color:#fff;margin:0;line-height:1.2;flex:1;min-width:0;word-wrap:break-word}.github-project-stats{display:flex;gap:12px;flex-shrink:0;margin-left:12px}.github-project-stat{display:flex;align-items:center;gap:4px;color:#fffc;font-size:14px;font-weight:500}.github-project-stat-icon{font-size:14px}.github-project-description{color:#ffffffd9;font-size:14px;line-height:1.5;margin-bottom:16px;flex:1;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.github-project-topics{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.github-project-topic{background:#ffffff26;color:#ffffffe6;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:500;border:1px solid rgba(255,255,255,.1)}.github-project-links{display:flex;gap:8px;margin-top:auto;padding-top:16px}.github-project-link{flex:1;background:#ffffff1a;color:#fff;text-decoration:none;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600;text-align:center;transition:all .2s ease;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;gap:6px}.github-project-link:hover{background:#fff3;border-color:#ffffff4d;text-decoration:none;color:#fff}.github-project-link-icon{font-size:14px}.github-project-link.primary{background:#60a5fa4d;border-color:#60a5fa80}.github-project-link.primary:hover{background:#60a5fa66;border-color:#60a5fa99}.github-project-carousel{margin-bottom:16px;border-radius:8px;overflow:hidden;background:#ffffff0d}.github-project-image{width:100%;height:120px;object-fit:cover;display:block}@media (max-width: 768px){.github-project-item{padding:16px}.github-project-name{font-size:16px}.github-project-links{flex-direction:column}.github-project-stats{gap:8px}}@media (prefers-color-scheme: dark){.github-project-item{background:#ffffff0d}.github-project-item:hover{background:#ffffff14}}.text-photo-container{display:flex;gap:1rem;height:100%}.text-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.text-content .item-title{font-size:1.1rem;font-weight:600;color:#1f2937;border:none;outline:none;background:transparent;padding:0;margin:0;resize:none;flex-shrink:0}.text-content .item-title::placeholder{color:#9ca3af;font-weight:400}.text-content .item-description{flex:1;font-size:.9rem;color:#4b5563;border:none;outline:none;background:transparent;padding:0;margin:0;resize:none;font-family:inherit;line-height:1.4}.text-content .item-description::placeholder{color:#9ca3af}.image-content{flex:1;display:flex;align-items:center;justify-content:center;min-width:100px}.image-upload,.image-display{width:100%;height:100%;border-radius:.5rem;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;-webkit-user-drag:none;-moz-user-drag:none}.image-upload{border:2px dashed #d1d5db;background-color:#f9fafb;cursor:pointer;transition:all .2s ease}.image-upload:hover{border-color:#9ca3af;background-color:#f3f4f6}.image-upload.dragging{border-color:#3b82f6;background-color:#eff6ff}.uploaded-image,.display-image{width:100%;height:100%;object-fit:contain;object-position:center;border-radius:.375rem;background-color:#f8f9fa;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;pointer-events:none}.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#6b7280;gap:.25rem}.upload-icon{font-size:2rem;margin-bottom:.25rem}.upload-text{font-size:.9rem;font-weight:500}.upload-subtext{font-size:.75rem;color:#9ca3af}.image-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background-color:#f3f4f6;color:#9ca3af;border-radius:.375rem}.placeholder-icon{font-size:2rem;margin-bottom:.5rem}.placeholder-text{font-size:.875rem;font-weight:500}.placeholder{color:#9ca3af;font-style:italic}@media (max-width: 768px){.text-photo-container{flex-direction:column;gap:.75rem}.image-content{min-width:80px}.text-content .item-title{font-size:1rem}.text-content .item-description{font-size:.875rem}}.portfolio-item-base{width:100%;box-sizing:border-box;position:relative;min-height:60px;display:flex;flex-direction:column;padding:12px;cursor:default;border-radius:6px;background:#fff;border:1px solid #e2e8f0;transition:all .2s ease}.portfolio-item-base:hover{border-color:#cbd5e1}.portfolio-item-base:focus-within{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.addItemPopup{position:absolute;bottom:44px;left:50%;transform:translate(-50%);display:flex;gap:8px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 6px 18px #00000014;padding:6px;border-radius:6px;z-index:1000;pointer-events:auto}.addItemPopup__option{padding:6px 10px;background:transparent;border:none;cursor:pointer;font-size:13px;border-radius:4px}.addItemPopup__option:hover{background:#0000000a}.addItemPopup__option{transition:transform .12s ease,background-color .12s ease,box-shadow .12s ease}.addItemPopup__option:hover{background:#0000000a;transform:translateY(-2px);box-shadow:0 6px 12px #0000000f}.addItemPopup__option:active{transform:translateY(0);box-shadow:none}.container{display:flex;flex-direction:column;grid-auto-rows:max-content;overflow:hidden;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;min-width:100%;min-height:100px;transition:background-color .35s ease;font-size:1em}.container ul{display:grid;grid-gap:20px;grid-template-columns:repeat(var(--columns, 1),1fr);list-style:none;padding:0;margin:0}.container{position:relative}.saved-sections-card .container{min-height:90%;padding-top:30px;scroll-behavior:smooth}.container ul{padding-bottom:60px}.zone-add-button-wrapper{position:absolute;left:50%;transform:translate(-50%);bottom:12px}.zone-add-button{pointer-events:auto;width:36px;height:36px;border-radius:18px;font-size:20px;line-height:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid #e5e7eb;background:#fff}.container.scrollable ul{overflow-y:auto}.container.placeholder{justify-content:center;align-items:center;cursor:pointer;color:#00000080;background-color:transparent;border-style:dashed;border-color:#00000014}.container.placeholder:hover{border-color:#00000026}.drop-allowed{border:2px solid #16a34a;transition:border-color .12s ease,box-shadow .12s ease}.drop-forbidden{border:2px solid #ef4444;transition:border-color .12s ease,box-shadow .12s ease}.container.hover{background-color:#ebebeb}.container.unstyled{overflow:visible;background-color:transparent!important;border:none!important}.container.horizontal{width:100%}.container.horizontal ul{grid-auto-flow:column}.container.shadow{box-shadow:0 1px 10px #2221511a}.container:focus-visible{border-color:transparent;box-shadow:0 0 0 2px #fff0,0 0 0 2px #4c9ffe}.header:hover .actions>*{opacity:1!important}.actions{display:flex}.actions>*:first-child:not(:last-child){opacity:0}.actions>*:first-child:not(:last-child):focus-visible{opacity:1}.portfolio-grid{width:100%}.portfolio-grid__inner{display:grid;grid-template-columns:1fr;margin:0 auto}.portfolio-grid__section{display:block}.notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;min-width:300px;max-width:500px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;opacity:0;transition:opacity .5s ease-in-out,transform .5s ease-in-out;border-left:4px solid}.notification--visible{opacity:1}.notification--hiding{opacity:0;transform:translate(-50%,-60%)}.notification--success{border-left-color:#10b981}.notification--error{border-left-color:#ef4444}.notification--info{border-left-color:#3b82f6}.notification__content{display:flex;align-items:center;padding:16px;gap:12px}.notification__icon{font-size:18px;font-weight:700;flex-shrink:0}.notification--success .notification__icon{color:#10b981}.notification--error .notification__icon{color:#ef4444}.notification--info .notification__icon{color:#3b82f6}.notification__message{flex:1;font-size:14px;color:#374151;line-height:1.5;text-align:center}
