@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--background: #0f172a;--surface-1: #1e293b;--surface-2: #334155;--primary-gradient: linear-gradient(135deg, #0ea5e9 0%, #3b82f6 100%);--primary-focus: #3b82f6;--text-primary: #f8fafc;--text-secondary: #94a3b8;--border-color: rgba(56, 189, 248, .25);--border-hover: rgba(56, 189, 248, .6);--font-family: "Inter", sans-serif;--success-bg: rgba(34, 197, 94, .15);--success-border: #22c55e;--success-text: #4ade80;--error-bg: rgba(239, 68, 68, .15);--error-border: #ef4444;--error-text: #f87171;--wedding-gold: #fbbf24}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-family);background-color:var(--background);color:var(--text-primary);line-height:1.6;overflow-x:hidden;background-image:radial-gradient(circle at 15% 15%,rgba(14,165,233,.15),transparent 45%),radial-gradient(circle at 85% 85%,rgba(59,130,246,.12),transparent 45%);background-attachment:fixed}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#ffffff05;border-radius:4px}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-color)}#app{width:100%}.app-container{max-width:1800px;margin:0 auto;padding:0 1rem}.main-content{padding:1rem 1.5rem;width:100%;position:relative}.coffee-button{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .8rem;border-radius:999px;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s ease;border:none;color:#fff;background:var(--primary-gradient);box-shadow:0 4px 15px #0003,0 0 20px #3b82f666;white-space:nowrap}.coffee-button:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px #0000004d,0 0 30px #3b82f699}.dashboard-header{text-align:center;margin-bottom:3rem;padding:2rem 0}.dashboard-header .logo-text{font-size:clamp(2rem,5vw,2.5rem);font-weight:800;background:linear-gradient(to right,#38bdf8,#3b82f6,#6366f1);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.5rem;text-shadow:0 0 30px rgba(59,130,246,.3)}.dashboard-header .subtitle{font-size:1rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.feature-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;max-width:1400px;margin:0 auto}.feature-card{background-color:var(--surface-1);border-radius:12px;padding:1.25rem;display:flex;align-items:center;gap:1.25rem;cursor:pointer;transition:all .25s ease;border:1px solid var(--border-color);box-shadow:0 4px 10px #0000001a}.feature-card:hover{transform:translateY(-5px);border-color:var(--primary-focus);box-shadow:0 8px 30px #0003,0 0 20px #3b82f640}.feature-card-icon svg{width:36px;height:36px;transition:transform .25s ease}.feature-card:hover .feature-card-icon svg{transform:scale(1.1)}.feature-card-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.back-button{display:inline-flex;align-items:center;gap:.3rem;background:var(--surface-1);border:1px solid var(--border-color);color:var(--text-secondary);padding:.4rem .8rem;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s ease;margin-bottom:1.5rem;white-space:nowrap}.back-button:hover{background:var(--surface-2);color:var(--text-primary);border-color:var(--primary-focus)}.page-header{margin-bottom:2rem;border-bottom:1px solid var(--border-color);padding-bottom:1.5rem;position:relative}.page-header h1{text-align:left;margin-bottom:.5rem;font-weight:700;font-size:1.75rem;color:var(--text-primary)}.page-header p.subtitle{text-align:left;color:var(--text-secondary);margin:0;max-width:800px;font-size:.95rem}.page-header .coffee-button{position:absolute;top:0;right:0}.tabs{display:flex;justify-content:flex-start;margin-bottom:2rem;border-bottom:1px solid var(--border-color)}.tab{padding:.75rem 1.5rem;cursor:pointer;border:none;background:none;color:var(--text-secondary);font-size:.95rem;font-weight:600;position:relative;transition:color .3s ease}.tab:hover:not(.active){color:var(--text-primary)}.tab.active{color:var(--text-primary)}.tab.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--primary-gradient)}.editor-layout,.settings-app-layout{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:2rem}.batch-editor-layout{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:2rem;height:calc(100vh - 140px);min-height:500px;overflow:hidden}.settings-panel,.image-panel,.batch-panel,.login-form{background-color:var(--surface-1);border-radius:12px;border:1px solid var(--border-color);padding:1.5rem}.settings-panel{height:fit-content;display:flex;flex-direction:column;gap:1.5rem}.batch-editor-layout .settings-panel{height:100%;overflow-y:auto;max-height:100%}.batch-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-auto-rows:max-content;gap:1.5rem;overflow-y:auto;flex-grow:1;padding-right:.5rem;padding-bottom:2rem;min-height:0;align-content:start}.batch-item{background-color:var(--background);border-radius:8px;overflow:hidden;border:1px solid var(--border-color);display:flex;flex-direction:column;width:100%;position:relative;z-index:1}.batch-item .image-container{position:relative;width:100%;aspect-ratio:3/4;background-color:#000;overflow:hidden}.batch-item .image-container img{width:100%;height:100%;object-fit:contain;position:absolute;top:0;left:0;display:block}.batch-item-actions{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem;background-color:var(--surface-2);border-top:1px solid var(--border-color);margin-top:auto}.batch-item-btn{flex:0 0 auto;width:36px;height:36px;background:var(--surface-1);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);padding:0;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.batch-item-btn:hover{background-color:var(--primary-focus);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 4px 10px #3b82f64d}.batch-item-btn svg{width:18px;height:18px}.batch-item-btn:not(:last-child){border:1px solid var(--border-color)}.image-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-height:65vh;height:100%}.image-panel-content{text-align:center}.image-panel-content .placeholder-icon{width:60px;height:60px;color:var(--primary-focus);margin-bottom:1rem;opacity:.7}.image-panel-preview{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;gap:1rem;position:relative}.image-display-wrapper{position:relative;flex:1;min-height:0;width:100%;border-radius:8px;overflow:hidden;background:var(--background);display:flex;align-items:center;justify-content:center}.form-group{margin-bottom:0}.form-group-row{display:flex;gap:1rem;align-items:center}.form-group-row .form-group{flex:1}.form-group label,.form-section-label,.form-section-title{display:block;font-weight:500;margin-bottom:.75rem;color:var(--text-secondary);font-size:.9rem}.form-section-title{color:var(--text-primary);font-size:1rem;font-weight:600}.form-group select,.form-group textarea,.number-input,.form-group input[type=text],.form-group input[type=password]{width:100%;padding:.75rem 1rem;background-color:var(--background);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-group select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.form-group select:focus,.form-group textarea:focus,.number-input:focus,.form-group input:focus{outline:none;border-color:var(--primary-focus);box-shadow:0 0 0 3px #3b82f640}.form-group textarea{resize:vertical;min-height:80px}.checkbox-grid-restoration{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.checkbox-grid-restoration label{display:inline-flex;align-items:center;gap:.75rem;font-size:.9rem;cursor:pointer;color:var(--text-primary)}.checkbox-grid-restoration input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;background-color:var(--background);border:2px solid var(--border-color);border-radius:4px;display:grid;place-content:center;cursor:pointer;transition:all .2s}.checkbox-grid-restoration input[type=checkbox]:hover{border-color:var(--border-hover)}.checkbox-grid-restoration input[type=checkbox]:before{content:"";width:10px;height:10px;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em #fff;transform-origin:center;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.checkbox-grid-restoration input[type=checkbox]:checked{background:var(--primary-gradient);border-color:transparent}.checkbox-grid-restoration input[type=checkbox]:checked:before{transform:scale(1)}.radio-group{display:flex;flex-direction:column;gap:.75rem}.radio-group label{display:inline-flex;align-items:center;gap:.75rem;font-size:.9rem;cursor:pointer;color:var(--text-primary)}.radio-group input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;width:20px;height:20px;border:2px solid var(--border-color);border-radius:50%;display:grid;place-content:center;transition:border-color .2s}.radio-group label:hover input[type=radio]{border-color:var(--border-hover)}.radio-group input[type=radio]:before{content:"";width:10px;height:10px;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;background-color:var(--primary-focus)}.radio-group input[type=radio]:checked{border-color:var(--primary-focus)}.radio-group input[type=radio]:checked:before{transform:scale(1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn-primary{color:#fff;background:var(--surface-2);border:1px solid var(--border-color)}.btn-primary:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-hover);box-shadow:0 5px 15px #0003}.btn:disabled{background:var(--surface-2);color:var(--text-secondary);cursor:not-allowed;opacity:.5}.btn-secondary{background-color:var(--surface-2);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){border-color:var(--primary-focus);background-color:var(--surface-2)}.upload-area{width:100%;height:100%;background-color:transparent;border-radius:12px;border:2px dashed var(--primary-focus);display:flex;align-items:center;justify-content:center;transition:all .3s ease;padding:2rem;cursor:pointer}.upload-area:hover,.upload-area.dragging{border-color:#38bdf8;background-color:var(--surface-1);box-shadow:0 0 20px #38bdf833}.upload-area-content{pointer-events:none;text-align:center}.upload-area-content .btn-upload{pointer-events:all}.upload-area h3,.upload-area p{pointer-events:none}.uploader-frame{background-color:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.uploader-frame-title{font-weight:500;color:var(--text-primary);font-size:.9rem;margin-bottom:.5rem;display:block}.uploader-frame-description{font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem;line-height:1.4}.reference-uploader{position:relative;width:100%;height:120px;border:2px dashed var(--border-color);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;overflow:hidden}.reference-uploader:hover{border-color:var(--primary-focus);background-color:var(--surface-2)}.reference-placeholder{text-align:center;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center}.reference-placeholder svg{width:32px;height:32px;margin-bottom:.5rem}.reference-preview{width:100%;height:100%;object-fit:cover}.remove-reference-btn{position:absolute;top:8px;right:8px;background:#0009;color:#fff;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;z-index:10}.remove-reference-btn:hover{background:#000c}.remove-reference-btn svg{width:16px;height:16px}.comparison-slider{width:100%;height:100%;position:relative;overflow:hidden;cursor:col-resize}.comparison-image-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.comparison-image-wrapper img{width:100%;height:100%;-webkit-user-select:none;user-select:none;pointer-events:none;object-fit:contain}.comparison-handle{width:3px;background-color:#ffffffe6}.comparison-handle-icon{width:40px;height:40px;background:var(--primary-gradient)}.comparison-handle-icon svg{width:24px;height:24px}.toggle-group,.option-grid{display:flex;gap:.5rem;flex-wrap:wrap}.option-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.toggle-btn,.option-btn,.style-button{padding:.6rem 1rem;background-color:var(--surface-2);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:.9rem}.toggle-btn:hover:not(.active),.option-btn:hover:not(.active),.style-button:hover:not(.active){border-color:var(--primary-focus);color:var(--text-primary)}.toggle-btn.active,.option-btn.active,.style-button.active{color:#fff;border-color:transparent;background:var(--primary-gradient)}.option-grid.restoration-presets{grid-template-columns:1fr 1fr;gap:.75rem}.option-grid.restoration-presets .option-btn{padding:.75rem .5rem;white-space:normal;text-align:center;line-height:1.3;font-size:.85rem;display:flex;align-items:center;justify-content:center;min-height:50px}.slider-control{margin-top:5px}.slider-label{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;color:var(--text-secondary)}.slider-label .value{color:var(--text-primary);font-weight:500}input[type=range]{-webkit-appearance:none;width:100%;height:6px;background:var(--surface-2);border-radius:6px;outline:none;padding:0;margin-top:7px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:#fff;cursor:pointer;border-radius:50%;border:3px solid var(--primary-focus);transition:box-shadow .2s}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 8px #3b82f633}input[type=range]::-moz-range-thumb{width:18px;height:18px;background:#fff;cursor:pointer;border-radius:50%;border:3px solid var(--primary-focus)}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.slider-switch{position:absolute;cursor:pointer;inset:0;background-color:var(--surface-2);transition:.4s;border-radius:24px}.slider-switch:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider-switch{background:var(--primary-gradient)}input:checked+.slider-switch:before{transform:translate(20px)}.loader-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#110f19d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:500;border-radius:12px;transition:opacity .3s ease}.spinner{width:60px;height:60px;border:5px solid rgba(255,255,255,.2);border-top-color:var(--primary-focus);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader-text{margin-top:1.5rem;color:var(--text-primary);font-size:1.1rem;font-weight:500;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.5)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-form{max-width:550px;width:100%}.login-form h2{font-size:1.75rem}.login-form .login-form-magic-title{font-size:1.2rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(to right,#38bdf8,#3b82f6,#6366f1);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 20px rgba(59,130,246,.2)}.login-form .subtitle{margin-bottom:2.5rem;font-size:.95rem}.machine-id-display{margin-bottom:2rem;padding:1rem;background:var(--background);border-radius:8px;border:1px solid var(--border-color)}.machine-id-display label{font-size:.9rem;color:var(--text-secondary);display:block;margin-bottom:.5rem}.input-with-copy{display:flex}.input-with-copy input{flex-grow:1;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;font-family:monospace;font-size:.9rem}.input-with-copy button{background:var(--surface-2);border:1px solid var(--border-color);border-left:none;color:var(--text-primary);padding:0 1rem;border-top-right-radius:6px;border-bottom-right-radius:6px;cursor:pointer;transition:background .2s}.input-with-copy button:hover{background:var(--surface-1)}.machine-id-display .instruction{font-size:.8rem;color:var(--text-secondary);margin-top:.75rem}.wedding-photo-layout,.image-filter-layout,.fashion-layout{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:2rem}.upscaler-editor-layout{display:grid;grid-template-columns:1fr minmax(0,380px);gap:2rem;align-items:start}.face-swap-main-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}@media(max-width:1200px){.editor-layout,.settings-app-layout,.batch-editor-layout{grid-template-columns:minmax(0,380px) 1fr}}@media(max-width:900px){.editor-layout,.settings-app-layout,.fashion-layout,.wedding-photo-layout,.image-filter-layout,.upscaler-editor-layout,.face-swap-main-layout,.batch-editor-layout{grid-template-columns:1fr;height:auto}.batch-editor-layout .settings-panel,.batch-panel{height:auto;overflow:visible}.main-content{padding:1rem}.page-header h1,.restoration-header h1{font-size:1.5rem}.upscaler-editor-layout .settings-panel{order:-1}}.restoration-feature-container{display:flex;flex-direction:column}.restoration-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.restoration-header .back-arrow-btn{background:var(--surface-1);border:1px solid var(--border-color);color:var(--text-secondary);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.restoration-header .back-arrow-btn:hover{background:var(--surface-2);color:var(--text-primary);border-color:var(--primary-focus)}.restoration-header .back-arrow-btn svg{width:24px;height:24px}.restoration-header .title-block{flex-grow:1}.restoration-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.restoration-header .subtitle{font-size:.95rem;color:var(--text-secondary);margin:0}.restoration-header .guide-btn{flex-shrink:0}.image-panel-preview .thumbnail-gallery{order:-1;flex-shrink:0;padding-bottom:1rem;margin-bottom:0}.restoration-toolbar{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);width:auto;padding:.5rem;background-color:#1c1927d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center;gap:.5rem;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 8px 30px #0000004d;z-index:100}.restoration-toolbar .toolbar-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.6rem .8rem;border-radius:12px;transition:all .2s ease;min-width:80px}.restoration-toolbar .toolbar-btn svg{width:20px;height:20px}.restoration-toolbar .toolbar-btn span{font-size:.8rem;font-weight:500;white-space:nowrap}.restoration-toolbar .toolbar-btn:hover:not(:disabled):not(.active){color:var(--text-primary);background-color:var(--surface-2)}.restoration-toolbar .toolbar-btn.active{color:#fff;background:var(--primary-gradient);box-shadow:0 4px 15px #3b82f64d}.restoration-toolbar .toolbar-btn:disabled{color:#666;cursor:not-allowed;opacity:.6}.comparison-side-by-side{display:flex;gap:.5rem;width:100%;height:100%;padding:.5rem}.comparison-pane{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.5rem;height:100%}.comparison-pane img{width:100%;height:100%;object-fit:contain;border-radius:6px}.license-status{position:fixed;bottom:1rem;right:1.5rem;background-color:var(--surface-2);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:999px;font-size:.8rem;font-weight:500;color:var(--text-secondary);display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 5px 15px #0003;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .3s ease}.license-status svg{width:16px;height:16px;flex-shrink:0}.license-status.permanent{color:#4ade80;border-color:#16a34a}.license-status.permanent svg{color:#4ade80}.license-status.expired{color:#f87171;border-color:#dc2626}.license-status.expired svg{color:#f87171}.license-status.countdown{color:var(--text-primary)}.license-status.countdown strong{color:#facc15}.results-grid-fashion{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;width:100%}.result-image-wrapper{position:relative;border-radius:8px;overflow:hidden;border:1px solid var(--border-color);background-color:var(--background)}.result-image-wrapper img{width:100%;height:auto;display:block;object-fit:cover}.placeholder-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary)}.wedding-settings-panel{gap:1rem}.collapsible-section{background-color:transparent;border:none;transition:background-color .2s ease}.collapsible-section summary{font-weight:600;font-size:1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--surface-2);border:1px solid var(--border-color);border-radius:8px;transition:border-radius .2s ease}.collapsible-section[open] summary{border-bottom-left-radius:0;border-bottom-right-radius:0}.collapsible-section summary::-webkit-details-marker{display:none}.collapsible-section summary:after{content:"+";transition:transform .2s ease;font-size:1.5rem;font-weight:400}.collapsible-section[open] summary:after{transform:rotate(45deg)}.collapsible-content{padding:1rem;display:flex;flex-direction:column;gap:1rem;background-color:var(--surface-1);border:1px solid var(--border-color);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.collapsible-content p{font-size:.9rem;color:var(--text-secondary);margin:0}.collapsible-content p:nth-of-type(2){color:var(--wedding-gold)}.portrait-uploaders{display:flex;gap:1.5rem}.portrait-uploader{flex:1;text-align:center;display:flex;flex-direction:column;gap:.75rem}.portrait-uploader h4{font-weight:500;font-size:.9rem}.portrait-preview-wrapper{aspect-ratio:3/4;width:100%;border-radius:8px;border:2px dashed var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:all .2s ease}.portrait-preview-wrapper:hover{border-color:var(--primary-focus);background-color:var(--surface-2)}.portrait-preview-wrapper img{width:100%;height:100%;object-fit:cover}.portrait-preview-wrapper .upload-icon{width:36px;height:36px;color:var(--text-secondary)}.wedding-note{font-size:.85rem;padding:.75rem;border-radius:6px;background-color:var(--background);border:1px solid var(--border-color)}.concept-category{margin-top:.5rem}.concept-category-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.concept-btn{display:flex;align-items:center;gap:.75rem;padding:.75rem;text-align:left;background:var(--surface-2);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s ease}.concept-btn:hover{border-color:var(--primary-focus)}.concept-checkbox{width:20px;height:20px;border:2px solid var(--border-color);border-radius:4px;display:grid;place-items:center;transition:all .2s ease}.concept-checkbox svg{width:14px;height:14px;color:#fff;transform:scale(0);transition:transform .2s ease}.concept-btn.active .concept-checkbox{background:var(--primary-gradient);border-color:transparent}.concept-btn.active .concept-checkbox svg{transform:scale(1)}.concept-label{flex:1;color:var(--text-primary)}.concept-label .star{color:var(--wedding-gold);font-weight:700;margin-left:.25rem}.wedding-generate-btn{width:100%;padding:.85rem;font-size:1rem;background:var(--primary-gradient);border:none;color:#fff}.wedding-results-panel .results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.face-align-settings-panel .image-preview-container{max-height:250px;overflow:hidden;border-radius:8px;border:1px solid var(--border-color);margin-bottom:1rem}.face-align-settings-panel .image-preview-container img{width:100%;height:100%;object-fit:contain}.face-align-settings-panel .upscale-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.ref4-sided-layout{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:2rem}.ref4-controls-panel{background-color:var(--surface-1);border-radius:12px;border:1px solid var(--border-color);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;height:fit-content}.ref4-image-uploader-box{width:100%;aspect-ratio:1 / 1;border:2px dashed var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;overflow:hidden;color:var(--text-secondary)}.ref4-image-uploader-box:hover{border-color:var(--primary-focus);background-color:var(--surface-2)}.ref4-image-uploader-box.has-image{border-style:solid}.ref4-image-uploader-box img{width:100%;height:100%;object-fit:cover}.ref4-gallery-panel{background-color:var(--surface-1);border-radius:12px;border:1px solid var(--border-color);padding:1.5rem;min-height:65vh;display:flex;align-items:center;justify-content:center}.ref4-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1.5rem;width:100%;height:100%;max-height:80vh;aspect-ratio:1/1;margin:auto}.ref4-card{position:relative;border-radius:8px;overflow:hidden;background-color:var(--background);border:1px solid var(--border-color)}.ref4-card img{width:100%;height:100%;object-fit:cover;display:block}.ref4-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 50%);display:flex;align-items:flex-end;justify-content:space-between;padding:.75rem;color:#fff;opacity:0;transition:opacity .3s ease}.ref4-card:hover .ref4-card-overlay{opacity:1}.ref4-card-overlay p{font-weight:600;font-size:.9rem;text-shadow:0 1px 3px black}.ref4-card-download-btn{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.ref4-card-download-btn:hover{background:#fff6}.ref4-card-download-btn svg{width:18px;height:18px}.ref4-skeleton{animation:pulse 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:900px){.ref4-sided-layout{grid-template-columns:1fr}}@media(max-width:600px){.license-status{bottom:.5rem;right:.5rem;padding:.4rem .8rem;font-size:.75rem}.license-status span{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.restoration-v2-container{display:grid;grid-template-columns:380px 1fr 1fr;gap:1rem;padding:1rem;height:100vh;width:100%}.restoration-v2-container .control-panel,.restoration-v2-container .image-panel{background-color:var(--surface-1);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;overflow-y:auto}.restoration-v2-container .control-panel{gap:1.25rem}.restoration-v2-container .panel-title{font-size:1.1rem;font-weight:700;text-align:center;margin:0 0 1rem;color:var(--text-primary);text-transform:uppercase}.restoration-v2-container .control-panel .form-group{display:flex;flex-direction:column;gap:.5rem}.restoration-v2-container .control-panel label{font-weight:600;color:var(--text-primary);font-size:.9rem}.restoration-v2-container .control-panel textarea{min-height:100px}.restoration-v2-container .preset-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.restoration-v2-container .btn-preset{padding:.75rem .5rem;background-color:var(--surface-2);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:.85rem;text-align:center}.restoration-v2-container .btn-preset:hover{border-color:var(--primary-focus);color:var(--text-primary)}.restoration-v2-container .btn-preset.active{background:var(--primary-focus);color:#fff;border-color:var(--primary-focus)}.restoration-v2-container .gender-age-group{display:flex;gap:.75rem}.restoration-v2-container .gender-buttons{display:flex;flex:1}.restoration-v2-container .btn-gender{flex:1;background:var(--surface-2);border:1px solid var(--border-color);color:var(--text-secondary);padding:.6rem;cursor:pointer;transition:all .2s ease}.restoration-v2-container .btn-gender:first-child{border-radius:6px 0 0 6px}.restoration-v2-container .btn-gender:last-child{border-radius:0 6px 6px 0;border-left:none}.restoration-v2-container .btn-gender.active{background:var(--primary-focus);color:#fff;border-color:var(--primary-focus)}.restoration-v2-container .age-input{flex:1;padding:.6rem .75rem}.restoration-v2-container .checkbox-group{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.restoration-v2-container .checkbox-group label{display:inline-flex;align-items:center;gap:.75rem;font-size:.9rem;cursor:pointer;color:var(--text-primary);font-weight:500}.restoration-v2-container .checkbox-group input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;background-color:var(--background);border:2px solid var(--border-color);border-radius:4px;display:grid;place-content:center;cursor:pointer;transition:all .2s}.restoration-v2-container .checkbox-group input[type=checkbox]:hover{border-color:var(--border-hover)}.restoration-v2-container .checkbox-group input[type=checkbox]:before{content:"";width:10px;height:10px;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em #fff;transform-origin:center;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.restoration-v2-container .checkbox-group input[type=checkbox]:checked{background:var(--primary-focus);border-color:transparent}.restoration-v2-container .checkbox-group input[type=checkbox]:checked:before{transform:scale(1)}.restoration-v2-container .control-panel .btn{width:100%;padding:.8rem;font-size:1rem}.restoration-v2-container .control-panel .btn-primary{background:var(--primary-focus);color:#fff;border:none}.restoration-v2-container .control-panel .btn-special{background:#eab308;color:#110f19;border:none}.restoration-v2-container .control-panel .btn-tertiary{background:transparent;border:1px solid var(--text-secondary);color:var(--text-secondary)}.restoration-v2-container .image-container{flex:1;width:100%;border:2px dashed var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.restoration-v2-container .image-container img{width:100%;height:100%;object-fit:contain;cursor:pointer}.restoration-v2-container .upload-placeholder{text-align:center;color:var(--text-secondary);cursor:pointer}.restoration-v2-container .upload-placeholder p{font-size:1.1rem;font-weight:600}.restoration-v2-container .upload-placeholder span{font-size:.9rem}.restoration-v2-container .loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.restoration-v2-container .loader{width:50px;height:50px;border:5px solid var(--surface-2);border-top-color:var(--primary-focus);border-radius:50%;animation:spin 1s linear infinite}.restoration-v2-container .restored-image-wrapper{position:relative;width:100%;height:100%}.restoration-v2-container .download-btn{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:var(--primary-focus);color:#fff;padding:.75rem 1.5rem;border-radius:50px;text-decoration:none;font-weight:600;transition:all .2s ease}.restoration-v2-container .download-btn:hover{transform:translate(-50%) scale(1.05)}.image-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-close-btn{position:absolute;top:2rem;right:2rem;font-size:2.5rem;color:#fff;cursor:pointer}.modal-content{max-width:90vw;max-height:90vh}.modal-content img{width:100%;height:100%;object-fit:contain}.id-photo-upload-view{width:100%;min-height:70vh;display:flex;align-items:center;justify-content:center;padding:2rem}.id-photo-upload-view .upload-content{max-width:500px;width:100%;text-align:center}.id-photo-upload-view .placeholder-icon{width:80px;height:80px;color:var(--primary-focus);margin-bottom:1.5rem}.id-photo-upload-view h2{font-size:1.75rem;color:var(--text-primary);margin-bottom:.5rem}.id-photo-upload-view p{color:var(--text-secondary);margin-bottom:2rem}.id-photo-upload-view .upload-area{min-height:250px}.option-btn.custom-upload-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:.5rem}.option-btn.custom-upload-btn img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.option-btn.custom-upload-btn .remove-reference-btn{top:4px;right:4px;width:24px;height:24px}.id-photo-actions{display:flex;gap:1rem;width:100%;margin-top:1rem}.id-photo-actions .btn{flex:1}.print-layout-container{width:100%;height:calc(100vh - 80px);display:flex;flex-direction:column}.print-layout-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.print-layout-header h2{font-size:1.25rem;font-weight:700;color:var(--primary-focus)}.print-layout-main{flex-grow:1;display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:1rem;padding:1rem;min-height:0}.print-layout-controls{background-color:var(--surface-1);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;min-height:0}.print-layout-controls-inner{overflow-y:auto;flex-grow:1;display:flex;flex-direction:column;gap:1.5rem;padding-right:.5rem}.print-layout-preview-wrapper{background-color:var(--background);border-radius:12px;display:flex;align-items:center;justify-content:center;padding:1rem;min-width:0;min-height:0}.print-layout-paper{position:relative;background-color:#fff;box-shadow:0 10px 30px #0000004d}.placed-photo-wrapper{position:absolute}.placed-photo-wrapper img{width:100%;height:100%;object-fit:cover;display:block}.placed-photo-actions{position:absolute;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;gap:.5rem;opacity:0;transition:opacity .2s ease}.placed-photo-wrapper:hover .placed-photo-actions{opacity:1}.placed-photo-actions button{background:#1c1927cc;border:none;color:#fff;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer}.placed-photo-actions button:hover{background:#2a273ae6}.source-image-card{background-color:var(--surface-2);padding:1rem;border-radius:8px;display:flex;flex-direction:column;gap:1rem}.source-image-info{display:flex;gap:1rem}.source-image-info img{width:48px;height:64px;object-fit:cover;border-radius:4px;flex-shrink:0}.source-image-details{flex-grow:1;font-size:.85rem;min-width:0}.source-image-details p{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.source-image-add-controls{display:flex;flex-direction:column;gap:.5rem}.add-control{display:flex;align-items:center;justify-content:space-between;background-color:var(--surface-1);padding:.5rem;border-radius:6px}.add-control .label{font-size:.9rem}.add-control-buttons{display:flex;align-items:center;gap:.5rem}.add-control-buttons button{width:28px;height:28px;border-radius:6px;border:none;font-weight:700;font-size:1.2rem;cursor:pointer;color:#fff}.add-control-buttons button:disabled{opacity:.5;cursor:not-allowed}.add-control-buttons .btn-remove{background-color:var(--surface-2)}.add-control-buttons .btn-add{background-color:var(--primary-focus)}.add-control-buttons .count{width:32px;text-align:center;font-weight:500;font-size:1.1rem}.print-modal-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1001}.print-modal-content{background-color:var(--surface-1);border-radius:12px;padding:2rem;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.print-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.print-modal-preview{flex-grow:1;overflow:auto;background-color:var(--background);padding:1rem;border-radius:8px}.print-modal-preview img{max-width:100%;max-height:100%;display:block;margin:auto}.print-modal-actions{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:1rem}.page-enter-animation{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.restoration-v2-container,.print-layout-main{grid-template-columns:1fr;height:auto;padding:1rem}.restoration-v2-container .image-panel,.print-layout-preview-wrapper{min-height:50vh}}.cropper-layout{display:grid;grid-template-columns:minmax(0,380px) 1fr;gap:2rem;height:calc(100vh - 80px)}.cropper-panel{background-color:var(--surface-1);border-radius:12px;border:1px solid var(--border-color);padding:1.5rem;height:fit-content;display:flex;flex-direction:column;gap:1.5rem}.cropper-preview-area{background-color:var(--surface-1);border-radius:12px;border:1px solid var(--border-color);padding:1rem;display:flex;justify-content:center;position:relative;overflow:hidden}.cropper-container{position:relative;-webkit-user-select:none;user-select:none;touch-action:none;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.cropper-image-preview{max-width:100%;max-height:100%;-webkit-user-select:none;user-select:none;pointer-events:none;display:block}.cropper-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0009;pointer-events:none}.cropper-box{position:absolute;border:2px solid var(--primary-focus);box-sizing:border-box;cursor:move;pointer-events:all}.cropper-box-inner{position:absolute;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(to right,rgba(241,245,249,.5) 1px,transparent 1px),linear-gradient(to bottom,rgba(241,245,249,.5) 1px,transparent 1px);background-size:33.33% 33.33%;opacity:0;transition:opacity .2s}.cropper-box:hover .cropper-box-inner{opacity:1}.cropper-handle{position:absolute;width:14px;height:14px;background-color:#fff;border:2px solid var(--primary-focus);border-radius:50%;box-sizing:border-box;pointer-events:all}.handle-nw{top:-7px;left:-7px;cursor:nwse-resize}.handle-ne{top:-7px;right:-7px;cursor:nesw-resize}.handle-sw{bottom:-7px;left:-7px;cursor:nesw-resize}.handle-se{bottom:-7px;right:-7px;cursor:nwse-resize}.handle-n{top:-7px;left:50%;transform:translate(-50%);cursor:ns-resize}.handle-s{bottom:-7px;left:50%;transform:translate(-50%);cursor:ns-resize}.handle-w{top:50%;left:-7px;transform:translateY(-50%);cursor:ew-resize}.handle-e{top:50%;right:-7px;transform:translateY(-50%);cursor:ew-resize}.crop-modal-overlay{position:fixed;inset:0;background-color:#110f19d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:2rem}.crop-modal-content{background-color:var(--surface-1);border-radius:16px;border:1px solid var(--border-color);width:100%;height:100%;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px #00000080}.crop-modal-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.crop-modal-header h2{font-size:1.25rem}.crop-modal-body{flex-grow:1;min-height:0;display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:1rem;padding:1rem}@media(max-width:900px){.cropper-layout,.crop-modal-body{grid-template-columns:1fr}.crop-modal-body{padding:.5rem;gap:.5rem}.crop-modal-content{max-width:100vw;max-height:100vh;border-radius:0}}.faceswap-upload-view,.faceswap-container,.faceswap-results-view{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.faceswap-upload-view{text-align:center;min-height:70vh;justify-content:center}.faceswap-upload-view h2{margin-bottom:1rem}.faceswap-step{background:var(--surface-1);padding:1.5rem;border-radius:12px;border:1px solid var(--border-color)}.faceswap-step h2{font-size:1.25rem;margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.faceswap-group-preview{max-width:400px;margin:0 auto}.faceswap-group-preview img{width:100%;border-radius:8px;margin-bottom:1rem}.faceswap-group-preview .btn{width:100%}.faceswap-portraits-list{display:flex;flex-direction:column;gap:1.5rem}.faceswap-portrait-slot{display:flex;gap:1.5rem;align-items:center;background:var(--background);padding:1rem;border-radius:8px}.faceswap-portrait-uploader{width:100px;height:100px;flex-shrink:0;border:2px dashed var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;overflow:hidden}.faceswap-portrait-uploader:hover{border-color:var(--primary-focus)}.faceswap-portrait-uploader img{width:100%;height:100%;object-fit:cover}.faceswap-portrait-details{flex-grow:1;display:flex;flex-direction:column;gap:.75rem}.faceswap-portrait-details .form-group{margin:0}.faceswap-portrait-actions{display:flex;gap:.75rem}.btn-danger{background-color:var(--error-border);color:#fff}.faceswap-results-view{text-align:center}.faceswap-results-view h2{margin-bottom:1rem}.faceswap-results-view .image-panel-preview{min-height:60vh}.faceswap-results-view .actions{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}@media(max-width:600px){.faceswap-portrait-slot{flex-direction:column;align-items:stretch}}.face-transform-upload-view{max-width:700px;margin:2rem auto;text-align:center}.face-transform-upload-view .page-header{border:none;padding:0}.face-transform-upload-view .page-header h1,.face-transform-upload-view .page-header p{text-align:center;margin-left:auto;margin-right:auto}.face-transform-upload-view .upload-area{min-height:300px}.face-transform-settings-panel .uploaded-thumbnail{width:100%;max-height:200px;object-fit:contain;border-radius:8px;background:var(--background);margin-bottom:1rem}.face-transform-settings-panel .collapsible-content .option-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-bottom:1rem}.face-transform-settings-panel .collapsible-content .option-btn{padding:.5rem;font-size:.85rem;text-align:center;line-height:1.3;min-height:40px}
