.login-page{background:#09090b;justify-content:center;align-items:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.login-card{background:#111113;border:1px solid #1e1e22;border-radius:10px;width:100%;max-width:380px;margin:20px;padding:40px 32px 32px}.login-header{text-align:center;margin-bottom:32px}.login-icon{background:#18181b;border:1px solid #27272a;border-radius:10px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:16px;display:inline-flex}.login-icon span{color:#fafafa;letter-spacing:-.02em;font-size:1.4em;font-weight:700}.login-header h1{color:#fafafa;letter-spacing:-.01em;margin:0;font-size:1.25em;font-weight:600}.login-header p{color:#52525b;margin:6px 0 0;font-size:.85em}.login-form{flex-direction:column;gap:18px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field label{color:#a1a1aa;font-size:.82em;font-weight:500}.login-field input{color:#fafafa;box-sizing:border-box;background:#09090b;border:1px solid #27272a;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:.9em;transition:border-color .15s}.login-field input::placeholder{color:#3f3f46}.login-field input:focus{border-color:#52525b}.login-pw-wrap{position:relative}.login-pw-wrap input{padding-right:42px}.login-pw-toggle{color:#52525b;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:34px;height:34px;transition:color .15s;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.login-pw-toggle:hover{color:#a1a1aa}.login-error{color:#fca5a5;background:#dc262614;border:1px solid #dc262633;border-radius:6px;align-items:center;gap:8px;padding:10px 12px;font-size:.84em;line-height:1.4;display:flex}.login-error svg{color:#dc2626;flex-shrink:0}.login-submit{color:#09090b;cursor:pointer;background:#fafafa;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;padding:10px 20px;font-size:.9em;font-weight:600;transition:background .15s;display:flex}.login-submit:hover:not(:disabled){background:#e4e4e7}.login-submit:active:not(:disabled){background:#d4d4d8}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-spinner{border:2px solid #d4d4d8;border-top-color:#09090b;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite lspin}@keyframes lspin{to{transform:rotate(360deg)}}.login-footer{text-align:center;color:#3f3f46;letter-spacing:.03em;margin:24px 0 0;font-size:.75em}@media (width<=480px){.login-card{margin:12px;padding:32px 24px 24px}}.dashboard{background:#f5f7fa;min-height:100vh}.dashboard .dashboard-header{background:#fff;justify-content:space-between;align-items:center;padding:20px 40px;display:flex;box-shadow:0 2px 10px #0000000d}.dashboard .header-left h1{color:#1a1a2e;margin:0;font-size:1.5em;font-weight:700}.dashboard .header-right{align-items:center;gap:20px;display:flex}.dashboard .user-info{flex-direction:column;align-items:flex-end;display:flex}.dashboard .user-name{color:#333;font-weight:600}.dashboard .user-role{color:#666;background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:.85em}.dashboard .logout-button{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:6px;padding:10px 20px;font-weight:600;transition:background .3s}.dashboard .logout-button:hover{background:#c0392b}.dashboard .dashboard-content{max-width:1200px;margin:0 auto;padding:40px 20px}.dashboard .welcome-section{background:#fff;border-radius:12px;margin-bottom:30px;padding:30px;box-shadow:0 2px 10px #0000000d}.dashboard .welcome-section h2{color:#1a1a2e;margin:0 0 10px}.dashboard .welcome-section p{color:#444;margin:0}.dashboard .admin-quick-link{margin-bottom:30px}.dashboard .admin-button{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:8px;padding:15px 30px;font-weight:600;text-decoration:none;transition:transform .2s;display:inline-block}.dashboard .admin-button:hover{transform:translateY(-2px)}.dashboard .modules-section{background:#fff;border-radius:12px;margin-bottom:30px;padding:30px;box-shadow:0 2px 10px #0000000d}.dashboard .modules-section h3{color:#1a1a2e;margin:0 0 20px}.dashboard .modules-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.dashboard .module-card{text-align:center;background:#f9f9f9;border:2px solid #e0e0e0;border-radius:12px;padding:24px;transition:all .3s}.dashboard .module-card:hover{border-color:#667eea;box-shadow:0 4px 20px #667eea26}.dashboard .module-icon{margin-bottom:15px;font-size:3em}.dashboard .module-card h4{color:#1a1a2e;margin:0 0 10px}.dashboard .module-card p{color:#444;margin:0 0 20px;font-size:.9em}.dashboard .module-button{color:#fff;cursor:pointer;background:#667eea;border:none;border-radius:6px;padding:10px 24px;font-weight:600;transition:background .3s}.dashboard .module-button:hover{background:#5568d3}.dashboard .stats-section{background:#fff;border-radius:12px;margin-bottom:30px;padding:30px;box-shadow:0 2px 10px #0000000d}.dashboard .stats-section h3{color:#1a1a2e;margin:0 0 20px}.dashboard .stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;display:grid}.dashboard .stat-card{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;padding:24px}.dashboard .stat-value{color:#fff;margin-bottom:8px;font-size:2.5em;font-weight:700}.dashboard .stat-label{color:#fff;font-size:.9em}.dashboard .info-section{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 10px #0000000d}.dashboard .info-section h3{color:#1a1a2e;margin:0 0 15px}.dashboard .info-section ul{margin:0;padding:0;list-style:none}.dashboard .info-section li{color:#444;border-bottom:1px solid #e0e0e0;padding:10px 0}.dashboard .info-section li:last-child{border-bottom:none}.dashboard .loading{color:#666;justify-content:center;align-items:center;height:100vh;font-size:1.2em;display:flex}.admin-panel{background:#fafafa;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.admin-header{background:#fff;border-bottom:1px solid #e4e4e7;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.admin-header-left{align-items:center;gap:12px;display:flex}.admin-back{color:#71717a;cursor:pointer;background:0 0;border:1px solid #e4e4e7;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.admin-back:hover{color:#18181b;border-color:#a1a1aa}.admin-header h1{color:#18181b;margin:0;font-size:1em;font-weight:600}.admin-header-right{align-items:center;gap:12px;display:flex}.admin-user{color:#71717a;font-size:.82em}.admin-logout{color:#71717a;cursor:pointer;background:0 0;border:1px solid #e4e4e7;border-radius:6px;padding:6px 14px;font-size:.82em;font-weight:500;transition:all .15s}.admin-logout:hover{color:#18181b;border-color:#a1a1aa}.admin-tabs{background:#fff;border-bottom:1px solid #e4e4e7;gap:2px;padding:0 24px;display:flex}.admin-tab{color:#71717a;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:12px 16px;font-size:.85em;font-weight:500;transition:all .15s;display:flex}.admin-tab:hover{color:#18181b}.admin-tab--active{color:#18181b;border-bottom-color:#18181b}.admin-tab svg{opacity:.5}.admin-tab--active svg{opacity:1}.admin-content{max-width:1100px;margin:0 auto;padding:24px}.admin-section{background:#fff;border:1px solid #e4e4e7;border-radius:8px;padding:24px}.admin-section h2{color:#18181b;margin:0 0 20px;font-size:1em;font-weight:600}.admin-section h2 .count{color:#a1a1aa;font-size:.9em;font-weight:400}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h2{margin-bottom:0}.admin-loading{color:#a1a1aa;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 0;font-size:.9em;display:flex}.admin-spinner{border:2px solid #e4e4e7;border-top-color:#71717a;border-radius:50%;width:24px;height:24px;animation:.6s linear infinite aspin}@keyframes aspin{to{transform:rotate(360deg)}}.table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.88em}.admin-table th{text-align:left;color:#71717a;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e4e4e7;padding:10px 12px;font-size:.82em;font-weight:500}.admin-table td{color:#3f3f46;border-bottom:1px solid #f4f4f5;padding:10px 12px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#fafafa}.td-mono{color:#a1a1aa;font-family:monospace;font-size:.9em}.td-muted{color:#d4d4d8}.td-actions{text-align:right;white-space:nowrap}.role-tag{border-radius:4px;padding:2px 8px;font-size:.82em;font-weight:500;display:inline-block}.role-tag--1{color:#dc2626;background:#fef2f2}.role-tag--2{color:#ea580c;background:#fff7ed}.role-tag--3{color:#2563eb;background:#eff6ff}.role-tag--4{color:#71717a;background:#f4f4f5}.role-tag--5{color:#a1a1aa;background:#f4f4f5}.status-dot{vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.status-dot--on{background:#22c55e}.status-dot--off{background:#d4d4d8}.admin-panel .btn-primary{cursor:pointer;border-radius:6px;padding:8px 16px;font-size:.85em;font-weight:500;transition:background .15s;color:#fff!important;background:#18181b!important;border:none!important}.admin-panel .btn-primary:hover{background:#3f3f46!important}.admin-panel .btn-primary--full{width:100%}.admin-panel .btn-ghost{cursor:pointer;border-radius:4px;padding:5px 10px;font-size:.82em;transition:all .15s;color:#52525b!important;background:#fff!important;border:1px solid #d4d4d8!important}.admin-panel .btn-ghost:hover{color:#18181b!important;background:#f4f4f5!important;border-color:#a1a1aa!important}.admin-panel .btn-ghost--danger:hover{color:#dc2626!important;background:#fef2f2!important;border-color:#fca5a5!important}.add-user-form{background:#fafafa;border:1px solid #e4e4e7;border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-bottom:16px;padding:16px;display:grid}.add-user-form input,.add-user-form select{border:1px solid #e4e4e7;border-radius:4px;outline:none;padding:8px 10px;font-size:.88em;transition:border-color .15s}.add-user-form input:focus,.add-user-form select:focus{border-color:#a1a1aa}.permissions-layout{grid-template-columns:260px 1fr;gap:16px;display:grid}.perm-users{flex-direction:column;gap:4px;display:flex}.perm-users-label{color:#a1a1aa;text-transform:uppercase;letter-spacing:.04em;padding:0 8px 8px;font-size:.78em;font-weight:500}.perm-user-btn{text-align:left;cursor:pointer;background:0 0;border:1px solid #e4e4e7;border-radius:6px;flex-direction:column;gap:2px;padding:10px 12px;transition:all .15s;display:flex}.perm-user-btn strong{color:#18181b;font-size:.88em}.perm-user-btn span{color:#a1a1aa;font-size:.78em}.perm-user-btn:hover{border-color:#a1a1aa}.perm-user-btn--active{background:#18181b;border-color:#18181b}.perm-user-btn--active strong{color:#fff}.perm-user-btn--active span{color:#a1a1aa}.perm-panel{border:1px solid #e4e4e7;border-radius:6px;max-height:600px;padding:16px;overflow-y:auto}.perm-panel-header{border-bottom:1px solid #f4f4f5;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;display:flex}.perm-panel-header strong{color:#18181b;font-size:.9em}.perm-empty{color:#a1a1aa;justify-content:center;align-items:center;height:200px;font-size:.9em;display:flex}.perm-group{margin-bottom:16px}.perm-group-title{color:#71717a;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #f4f4f5;margin-bottom:4px;padding:0 0 6px;font-size:.78em;font-weight:600}.perm-item{cursor:pointer;border-radius:4px;align-items:flex-start;gap:10px;padding:6px 4px;transition:background .1s;display:flex}.perm-item:hover{background:#fafafa}.perm-item input[type=checkbox]{cursor:pointer;accent-color:#18181b;margin-top:2px}.perm-name{color:#18181b;font-size:.88em;font-weight:500;display:block}.perm-key{color:#a1a1aa;font-family:monospace;font-size:.75em;display:block}.modules-list{flex-direction:column;gap:8px;display:flex}.module-row{border:1px solid #e4e4e7;border-radius:6px;align-items:center;gap:14px;padding:14px 16px;transition:border-color .15s;display:flex}.module-row:hover{border-color:#a1a1aa}.module-row-icon{flex-shrink:0;font-size:1.5em}.module-row-info{flex:1;min-width:0}.module-row-name{color:#18181b;font-size:.9em;font-weight:600}.module-row-desc{color:#71717a;margin-top:2px;font-size:.82em}.module-row-perm{color:#a1a1aa;background:#f4f4f5;border-radius:3px;margin-top:4px;padding:1px 6px;font-size:.75em;display:inline-block}.toggle-btn{cursor:pointer;border:none;border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.toggle-btn--on{background:#22c55e}.toggle-btn--off{background:#d4d4d8}.toggle-dot{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .2s;position:absolute;top:2px;box-shadow:0 1px 3px #00000026}.toggle-btn--on .toggle-dot{left:20px}.toggle-btn--off .toggle-dot{left:2px}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.settings-card{border:1px solid #e4e4e7;border-radius:8px;padding:20px;transition:border-color .15s}.settings-card:hover{border-color:#a1a1aa}.settings-card-icon{color:#71717a;background:#f4f4f5;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:12px;display:flex}.settings-card h3{color:#18181b;margin:0 0 4px;font-size:.92em}.settings-card p{color:#71717a;margin:0 0 16px;font-size:.82em}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:100%;max-width:440px;padding:24px;box-shadow:0 8px 30px #0000001f}.modal-content--sm{max-width:380px}.modal-content h3{color:#18181b;margin:0 0 20px;font-size:1em;font-weight:600}.modal-form{flex-direction:column;gap:12px;display:flex}.modal-form label{color:#71717a;margin-bottom:-6px;font-size:.82em;font-weight:500}.modal-form input[type=text],.modal-form input[type=password],.modal-form select{box-sizing:border-box;border:1px solid #e4e4e7;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-size:.9em;transition:border-color .15s}.modal-form input:focus,.modal-form select:focus{border-color:#a1a1aa}.modal-form .checkbox-label{color:#18181b;align-items:center;gap:8px;margin-bottom:0;font-size:.9em;font-weight:400;display:flex}.modal-form .checkbox-label input{accent-color:#18181b;width:auto}.modal-actions button{cursor:pointer;border-radius:6px;padding:8px 16px;font-size:.85em;font-weight:500;transition:all .15s}.admin-panel .btn-save{color:#fff!important;background:#18181b!important;border:none!important}.admin-panel .btn-save:hover{background:#3f3f46!important}.admin-panel .btn-cancel{color:#71717a!important;background:#fff!important;border:1px solid #d4d4d8!important}.admin-panel .btn-cancel:hover{color:#18181b!important;border-color:#a1a1aa!important}.admin-panel .btn-danger{color:#fff!important;background:#dc2626!important;border:none!important}.admin-panel .btn-danger:hover{background:#b91c1c!important}.confirm-text{color:#52525b;margin:0 0 16px;font-size:.9em;line-height:1.5}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-size:.85em;font-weight:500;animation:.25s ease-out toastIn;display:flex;box-shadow:0 4px 16px #0000001f}.toast--success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.toast--error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.permissions-layout{grid-template-columns:1fr}.admin-tabs{overflow-x:auto}.admin-tab span{display:none}.admin-header h1{font-size:.9em}.admin-user{display:none}}.lightbox-overlay{z-index:10000;background:#000000f2;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-close{color:#fff;cursor:pointer;z-index:10002;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;transition:all .2s;display:flex;position:absolute;top:20px;right:20px}.lightbox-close:hover{background:#fff3;transform:scale(1.1)}.lightbox-nav{color:#fff;cursor:pointer;z-index:10002;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:40px;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#fff3}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-image-container{justify-content:center;align-items:center;max-width:90vw;max-height:80vh;display:flex;position:relative;overflow:hidden}.lightbox-image{object-fit:contain;-webkit-user-select:none;user-select:none;max-width:100%;max-height:80vh;transition:transform .1s ease-out,opacity .3s}.lightbox-loader{justify-content:center;align-items:center;display:flex;position:absolute}.lightbox-loader .spinner{border:3px solid #fff3;border-top-color:#fff;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lightbox-toolbar{z-index:10002;background:#000000b3;border-radius:30px;align-items:center;gap:20px;padding:10px 20px;display:flex;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.lightbox-toolbar button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:all .2s;display:flex}.lightbox-toolbar button:hover{background:#fff3}.lightbox-toolbar-left,.lightbox-toolbar-right{align-items:center;gap:8px;display:flex}.lightbox-toolbar-center{padding:0 20px}.zoom-level{color:#fff;text-align:center;min-width:50px;font-size:12px}.lightbox-counter{color:#fff;font-size:14px;font-weight:500}.lightbox-info{text-align:center;z-index:10001;background:#000000b3;border-radius:10px;max-width:600px;padding:15px 25px;position:absolute;bottom:140px;left:50%;transform:translate(-50%)}.lightbox-title{color:#fff;margin:0 0 5px;font-size:16px;font-weight:500}.lightbox-description{color:#ffffffb3;text-overflow:ellipsis;max-height:60px;margin:0;font-size:13px;line-height:1.4;overflow:hidden}.lightbox-thumbnails{z-index:10002;background:#00000080;border-radius:10px;gap:8px;max-width:90vw;padding:10px;display:flex;position:absolute;bottom:20px;left:50%;overflow-x:auto;transform:translate(-50%)}.lightbox-thumb{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:6px;flex-shrink:0;width:50px;height:50px;padding:0;transition:all .2s;overflow:hidden}.lightbox-thumb:hover{border-color:#ffffff80}.lightbox-thumb.active{border-color:#fff}.lightbox-thumb img{object-fit:cover;width:100%;height:100%}@media (width<=768px){.lightbox-nav{width:44px;height:44px;font-size:30px}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-toolbar{gap:10px;padding:8px 15px;bottom:90px}.lightbox-toolbar button{width:32px;height:32px;font-size:14px}.lightbox-thumbnails{max-width:95vw}.lightbox-thumb{width:40px;height:40px}.lightbox-info{max-width:90vw;padding:10px 15px;bottom:150px}}@media (width<=480px){.lightbox-thumbnails{display:none}.lightbox-toolbar{bottom:20px}}.ai-generator-page{background:#f5f7fa;min-height:100vh}.header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;padding:20px 30px;display:flex}.header-left{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.header h1{margin:0;font-size:28px;font-weight:600}.header-subtitle{opacity:.8;background:#fff3;border-radius:20px;padding:4px 12px;font-size:14px}.queue-indicator{background:#ffffff40;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:500;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.back-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.toast{z-index:9999;border-radius:10px;max-width:400px;padding:15px 25px;font-weight:500;animation:.3s slideIn;position:fixed;top:20px;right:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.content-wrapper{grid-template-columns:280px 1fr;gap:25px;max-width:1600px;margin:0 auto;padding:25px;display:grid}.sidebar{flex-direction:column;gap:20px;display:flex}.sidebar-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000d}.sidebar-section h3{text-transform:uppercase;color:#666;letter-spacing:.5px;margin:0 0 15px;font-size:14px}.sidebar-empty{color:#999;text-align:center;padding:20px 0;font-size:13px}.recent-jobs-list{flex-direction:column;gap:10px;max-height:300px;display:flex;overflow-y:auto}.recent-job-card{cursor:pointer;background:#f8f9fa;border-radius:8px;gap:12px;padding:10px;transition:all .2s;display:flex}.recent-job-card:hover{background:#eef1f5;transform:translate(3px)}.recent-job-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:50px;height:50px}.recent-job-thumb.placeholder{background:#e9ecef;justify-content:center;align-items:center;font-size:20px;display:flex}.recent-job-info{flex-direction:column;justify-content:center;gap:4px;min-width:0;display:flex}.recent-job-name{color:#333;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.recent-job-count{color:#888;font-size:11px}.quick-template{color:#5b6be6;cursor:pointer;background:#f0f4ff;border-radius:6px;margin-bottom:8px;padding:8px 12px;font-size:13px;transition:all .2s}.quick-template:hover{background:#e0e7ff}.main-content{flex-direction:column;gap:25px;min-width:0;display:flex}.card-header{border-bottom:1px solid #eee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;padding-bottom:15px;display:flex}.card-header h2{color:#333;margin:0;font-size:20px}.btn-templates{color:#5b6be6;cursor:pointer;background:#f0f4ff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.btn-templates:hover{background:#e0e7ff}.templates-panel{background:#f8f9fa;border-radius:10px;margin-bottom:20px;padding:20px;animation:.3s expandDown}@keyframes expandDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.templates-header{flex-wrap:wrap;gap:15px;margin-bottom:15px;display:flex}.templates-search,.templates-category-filter{border:1px solid #ddd;border-radius:8px;padding:10px 15px;font-size:14px}.templates-search{flex:1;min-width:200px}.templates-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;max-height:300px;padding:5px;display:grid;overflow-y:auto}.template-item{cursor:pointer;background:#fff;border:1px solid #eee;border-radius:8px;padding:15px;transition:all .2s}.template-item:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea26}.template-main{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.template-name{color:#333;font-weight:500}.template-category{color:#666;background:#e9ecef;border-radius:10px;padding:3px 8px;font-size:11px}.template-preview{color:#888;margin:0 0 10px;font-size:12px;line-height:1.4}.template-actions{gap:8px;display:flex}.template-actions button{cursor:pointer;opacity:.5;background:0 0;border:none;padding:4px 8px;transition:all .2s}.template-actions button:hover{opacity:1}.save-template-form{border-top:1px solid #ddd;flex-wrap:wrap;gap:10px;margin-top:15px;padding-top:15px;display:flex}.save-template-form input{border:1px solid #ddd;border-radius:8px;flex:1;min-width:200px;padding:10px 15px}.save-template-form button{color:#fff;cursor:pointer;white-space:nowrap;background:#667eea;border:none;border-radius:8px;padding:10px 20px}.form-group label{color:#444;margin-bottom:8px;font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;padding:12px 15px;font-size:14px;transition:all .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group textarea{resize:vertical;min-height:100px}.form-row{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.form-actions{flex-wrap:wrap;align-items:center;gap:15px;margin-top:10px;display:flex}.form-queue-info{color:#666;background:#f0f4ff;border-radius:6px;padding:8px 12px;font-size:13px}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;padding:14px 30px;font-size:16px;font-weight:500;transition:all .2s}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{color:#667eea;cursor:pointer;background:#f0f4ff;border:none;border-radius:8px;padding:14px 25px;font-size:14px;transition:all .2s}.jobs-filters{flex-wrap:wrap;gap:15px;display:flex}.jobs-filters select,.jobs-filters input{border:1px solid #ddd;border-radius:8px;padding:8px 15px;font-size:13px}.jobs-filters input{width:200px}.loading-state,.empty-state{text-align:center;color:#888;padding:40px}.card.jobs-card{flex-direction:column;min-height:400px;max-height:calc(100vh - 250px);display:flex}.jobs-grid-container{flex:1;margin-right:-5px;padding-right:5px;overflow:hidden auto}.jobs-grid-container::-webkit-scrollbar{width:8px}.jobs-grid-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.jobs-grid-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.jobs-grid-container::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.jobs-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;display:grid}.job-card{background:#f8f9fa;border:1px solid #eee;border-radius:12px;transition:all .2s;overflow:hidden}.job-card:hover{box-shadow:0 4px 15px #0000001a}.job-card.job-status-failed{background:#fff8f8;border-color:#ffcdd2}.job-card.job-status-processing{background:#f8fbff;border-color:#bbdefb}.job-card.job-status-pending{background:#fafafa;border-color:#e0e0e0}.job-thumbnail{cursor:pointer;background:#e9ecef;justify-content:center;align-items:center;height:180px;display:flex;position:relative;overflow:hidden}.job-thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.job-thumbnail:hover img{transform:scale(1.05)}.thumb-placeholder{opacity:.3;font-size:48px}.thumb-loading{flex-direction:column;align-items:center;gap:10px;display:flex}.thumb-loading .spinner{border:3px solid #ddd;border-top-color:#667eea;border-radius:50%;width:30px;height:30px;animation:1s linear infinite spin}.thumb-count{color:#fff;background:#000000b3;border-radius:15px;padding:4px 10px;font-size:12px;font-weight:500;position:absolute;bottom:10px;right:10px}.job-info{padding:15px}.job-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.job-filename{color:#333;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.job-status-badge{color:#fff;text-transform:uppercase;border-radius:15px;flex-shrink:0;padding:4px 12px;font-size:11px;font-weight:500}.job-prompt{color:#666;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.job-error{color:#dc3545;background:#ffebee;border-radius:6px;margin:10px 0;padding:8px 12px;font-size:12px}.progress-bar{background:#e9ecef;border-radius:3px;height:6px;margin:10px 0;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;transition:width .3s}.job-actions{border-top:1px solid #eee;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:12px;display:flex}.btn-action{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;align-items:center;gap:5px;padding:6px 12px;font-size:12px;transition:all .2s;display:flex}.btn-action:hover{color:#667eea;background:#f0f4ff;border-color:#667eea}.pagination{border-top:1px solid #eee;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;margin-top:25px;padding-top:20px;display:flex}.pagination button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.pagination button:hover:not(:disabled){background:#f0f4ff;border-color:#667eea}.pagination-info{color:#666;text-align:center;font-size:14px}@media (width<=1200px){.content-wrapper{grid-template-columns:1fr}.sidebar{grid-template-columns:repeat(2,1fr);display:grid}.card.jobs-card{max-height:none}}@media (width<=768px){.header{text-align:center;flex-direction:column;gap:15px}.header-left{flex-direction:column;justify-content:center;gap:10px}.content-wrapper{padding:15px}.sidebar,.form-row,.jobs-grid{grid-template-columns:1fr}.jobs-filters{flex-direction:column}.jobs-filters input{width:100%}.templates-list{grid-template-columns:1fr}.form-actions{flex-direction:column;align-items:stretch}.form-queue-info{text-align:center}.pagination{flex-direction:column;gap:10px}}.image-modifier-page{background:#f5f7fa;min-height:100vh}.image-modifier-page .header{color:#fff;background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);justify-content:space-between;align-items:center;padding:20px 30px;display:flex}.image-modifier-page .header-left{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.image-modifier-page .header h1{margin:0;font-size:28px;font-weight:600}.image-modifier-page .header-subtitle{opacity:.8;background:#fff3;border-radius:20px;padding:4px 12px;font-size:14px}.image-modifier-page .queue-indicator{background:#ffffff40;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:500;animation:2s infinite pulse}.image-modifier-page .back-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.image-modifier-page .back-btn:hover{background:#ffffff4d}.image-modifier-page .toast{z-index:9999;border-radius:10px;max-width:400px;padding:15px 25px;font-weight:500;animation:.3s slideIn;position:fixed;top:20px;right:20px}.image-modifier-page .toast-success{color:#fff;background:#28a745}.image-modifier-page .toast-error{color:#fff;background:#dc3545}.image-modifier-page .content-wrapper{grid-template-columns:280px 1fr;gap:25px;max-width:1600px;margin:0 auto;padding:25px;display:grid}.image-modifier-page .sidebar{flex-direction:column;gap:20px;display:flex}.image-modifier-page .sidebar-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000d}.image-modifier-page .sidebar-section h3{text-transform:uppercase;color:#666;letter-spacing:.5px;margin:0 0 15px;font-size:14px}.image-modifier-page .sidebar-empty{color:#999;text-align:center;padding:20px 0;font-size:13px}.image-modifier-page .recent-jobs-list{flex-direction:column;gap:10px;max-height:300px;display:flex;overflow-y:auto}.image-modifier-page .recent-job-card{cursor:pointer;background:#f8f9fa;border-radius:8px;gap:12px;padding:10px;transition:all .2s;display:flex}.image-modifier-page .recent-job-card:hover{background:#fff0f3;transform:translate(3px)}.image-modifier-page .recent-job-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:50px;height:50px}.image-modifier-page .recent-job-thumb.placeholder{background:#e9ecef;justify-content:center;align-items:center;font-size:20px;display:flex}.image-modifier-page .recent-job-info{flex-direction:column;justify-content:center;gap:4px;min-width:0;display:flex}.image-modifier-page .recent-job-name{color:#333;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.image-modifier-page .recent-job-count{color:#888;font-size:11px}.image-modifier-page .quick-template{color:#f5576c;cursor:pointer;background:#fff0f3;border-radius:6px;margin-bottom:8px;padding:8px 12px;font-size:13px;transition:all .2s}.image-modifier-page .quick-template:hover{background:#ffe0e6}.image-modifier-page .main-content{flex-direction:column;gap:25px;min-width:0;display:flex}.image-modifier-page .card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000000d}.image-modifier-page .card-header{border-bottom:1px solid #eee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;padding-bottom:15px;display:flex}.image-modifier-page .card-header h2{color:#333;margin:0;font-size:20px}.image-modifier-page .btn-templates{color:#f5576c;cursor:pointer;background:#fff0f3;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.image-modifier-page .btn-templates:hover{background:#ffe0e6}.image-modifier-page .templates-panel{background:#f8f9fa;border-radius:10px;margin-bottom:20px;padding:20px}.image-modifier-page .templates-header{margin-bottom:15px}.image-modifier-page .templates-category-filter{border:1px solid #ddd;border-radius:8px;min-width:200px;padding:10px 15px;font-size:14px}.image-modifier-page .templates-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;max-height:250px;display:grid;overflow-y:auto}.image-modifier-page .template-item{cursor:pointer;background:#fff;border:1px solid #eee;border-radius:8px;padding:15px;transition:all .2s}.image-modifier-page .template-item:hover{border-color:#f5576c}.image-modifier-page .template-main{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.image-modifier-page .template-name{color:#333;font-weight:500}.image-modifier-page .template-category{color:#666;background:#e9ecef;border-radius:10px;padding:3px 8px;font-size:11px}.image-modifier-page .template-preview{color:#888;margin:0 0 10px;font-size:12px;line-height:1.4}.image-modifier-page .template-actions{gap:8px;display:flex}.image-modifier-page .template-actions button{cursor:pointer;opacity:.5;background:0 0;border:none;padding:4px 8px}.image-modifier-page .template-actions button:hover{opacity:1}.image-modifier-page .save-template-form{border-top:1px solid #ddd;flex-wrap:wrap;gap:10px;margin-top:15px;padding-top:15px;display:flex}.image-modifier-page .save-template-form input{border:1px solid #ddd;border-radius:8px;flex:1;min-width:200px;padding:10px 15px}.image-modifier-page .save-template-form button{color:#fff;cursor:pointer;background:#f5576c;border:none;border-radius:8px;padding:10px 20px}.image-dropzone{text-align:center;cursor:pointer;background:#fafafa;border:2px dashed #ddd;border-radius:12px;padding:40px;transition:all .2s}.image-dropzone:hover{background:#fff8f9;border-color:#f5576c}.image-dropzone.has-images{cursor:default;background:#fff;border-style:solid;border-color:#e0e0e0;padding:15px}.dropzone-placeholder{pointer-events:none}.dropzone-icon{margin-bottom:15px;font-size:48px;display:block}.dropzone-placeholder p{color:#888;margin:0}.dropzone-hint{color:#aaa;margin-top:8px;font-size:12px}.multi-image-preview{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.preview-item{aspect-ratio:1;background:#f0f0f0;border-radius:10px;position:relative;overflow:hidden}.preview-item img{object-fit:cover;border-radius:10px;width:100%;height:100%;display:block}.preview-item .remove-image-btn{color:#fff;cursor:pointer;opacity:0;background:#dc3545e6;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;transition:opacity .2s;display:flex;position:absolute;top:6px;right:6px;box-shadow:0 2px 6px #0003}.preview-item:hover .remove-image-btn{opacity:1}.preview-info{color:#fff;background:#0009;border-radius:10px;padding:2px 8px;font-size:10px;position:absolute;bottom:6px;left:6px}.preview-item.add-more{cursor:pointer;background:#fafafa;border:2px dashed #ccc;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex}.preview-item.add-more:hover{background:#fff0f3;border-color:#f5576c}.add-more-icon{color:#999;font-size:28px;line-height:1}.add-more-text{color:#999;margin-top:4px;font-size:11px}.preview-item.add-more:hover .add-more-icon,.preview-item.add-more:hover .add-more-text{color:#f5576c}.btn-clear-images{color:#888;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:6px;margin-top:10px;padding:6px 14px;font-size:12px;transition:all .2s}.btn-clear-images:hover{color:#dc3545;background:#fff5f5;border-color:#dc3545}.multi-image-hint{color:#1976d2;background:#e8f4fd;border-left:3px solid #1976d2;border-radius:8px;margin-top:10px;padding:10px 14px;font-size:13px}.label-hint{color:#999;font-size:13px;font-weight:400}.thumb-multi-badge{color:#fff;background:#000000b3;border-radius:12px;padding:3px 8px;font-size:11px;position:absolute;top:10px;left:10px}.image-modifier-page .form-group{margin-bottom:20px}.image-modifier-page .form-group label{color:#444;margin-bottom:8px;font-weight:500;display:block}.image-modifier-page .form-group input,.image-modifier-page .form-group textarea,.image-modifier-page .form-group select{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;padding:12px 15px;font-size:14px;transition:all .2s}.image-modifier-page .form-group input:focus,.image-modifier-page .form-group textarea:focus{border-color:#f5576c;outline:none;box-shadow:0 0 0 3px #f5576c1a}.image-modifier-page .form-group textarea{resize:vertical;min-height:80px}.image-modifier-page .form-row{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.image-modifier-page .form-actions{flex-wrap:wrap;align-items:center;gap:15px;margin-top:10px;display:flex}.image-modifier-page .form-queue-info{color:#666;background:#fff0f3;border-radius:6px;padding:8px 12px;font-size:13px}.image-modifier-page .btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);border:none;border-radius:8px;padding:14px 30px;font-size:16px;font-weight:500;transition:all .2s}.image-modifier-page .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #f5576c66}.image-modifier-page .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.image-modifier-page .jobs-filters{flex-wrap:wrap;gap:15px;display:flex}.image-modifier-page .jobs-filters select,.image-modifier-page .jobs-filters input{border:1px solid #ddd;border-radius:8px;padding:8px 15px;font-size:13px}.image-modifier-page .jobs-filters input{width:200px}.image-modifier-page .loading-state,.image-modifier-page .empty-state{text-align:center;color:#888;padding:40px}.image-modifier-page .card.jobs-card{flex-direction:column;min-height:400px;max-height:calc(100vh - 250px);display:flex}.image-modifier-page .jobs-grid-container{flex:1;margin-right:-5px;padding-right:5px;overflow:hidden auto}.image-modifier-page .jobs-grid-container::-webkit-scrollbar{width:8px}.image-modifier-page .jobs-grid-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.image-modifier-page .jobs-grid-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.image-modifier-page .jobs-grid-container::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.image-modifier-page .jobs-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;display:grid}.image-modifier-page .job-card{background:#f8f9fa;border:1px solid #eee;border-radius:12px;transition:all .2s;overflow:hidden}.image-modifier-page .job-card:hover{box-shadow:0 4px 15px #0000001a}.image-modifier-page .job-card.job-status-failed{background:#fff8f8;border-color:#ffcdd2}.image-modifier-page .job-card.job-status-processing{background:#fff8fb;border-color:#f8bbd9}.image-modifier-page .job-card.job-status-pending{background:#fafafa;border-color:#e0e0e0}.image-modifier-page .job-thumbnail{cursor:pointer;background:#e9ecef;justify-content:center;align-items:center;height:180px;display:flex;position:relative;overflow:hidden}.image-modifier-page .job-thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.image-modifier-page .job-thumbnail:hover img{transform:scale(1.05)}.image-modifier-page .thumb-placeholder{opacity:.3;font-size:48px}.image-modifier-page .thumb-loading{flex-direction:column;align-items:center;gap:10px;display:flex}.image-modifier-page .thumb-loading .spinner{border:3px solid #ddd;border-top-color:#f5576c;border-radius:50%;width:30px;height:30px;animation:1s linear infinite spin}.image-modifier-page .thumb-count{color:#fff;background:#000000b3;border-radius:15px;padding:4px 10px;font-size:12px;position:absolute;bottom:10px;right:10px}.image-modifier-page .job-info{padding:15px}.image-modifier-page .job-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.image-modifier-page .job-filename{color:#333;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.image-modifier-page .job-status-badge{color:#fff;text-transform:uppercase;border-radius:15px;flex-shrink:0;padding:4px 12px;font-size:11px;font-weight:500}.image-modifier-page .job-prompt{color:#666;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:13px;display:-webkit-box;overflow:hidden}.image-modifier-page .job-meta{color:#888;flex-wrap:wrap;gap:15px;margin-bottom:12px;font-size:12px;display:flex}.image-modifier-page .job-error{color:#dc3545;background:#ffebee;border-radius:6px;margin:10px 0;padding:8px 12px;font-size:12px}.image-modifier-page .progress-bar{background:#e9ecef;border-radius:3px;height:6px;margin:10px 0;overflow:hidden}.image-modifier-page .progress-fill{background:linear-gradient(90deg,#f093fb,#f5576c);height:100%;transition:width .3s}.image-modifier-page .job-actions{border-top:1px solid #eee;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:12px;display:flex}.image-modifier-page .btn-action{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;padding:6px 12px;font-size:12px;transition:all .2s}.image-modifier-page .btn-action:hover{color:#f5576c;background:#fff0f3;border-color:#f5576c}.image-modifier-page .btn-action:disabled{opacity:.5;cursor:not-allowed}.image-modifier-page .btn-action.btn-danger{color:#dc3545}.image-modifier-page .btn-action.btn-danger:hover{background:#fff5f5;border-color:#dc3545}.image-modifier-page .pagination{border-top:1px solid #eee;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;margin-top:25px;padding-top:20px;display:flex}.image-modifier-page .pagination button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.image-modifier-page .pagination button:hover:not(:disabled){background:#fff0f3;border-color:#f5576c}.image-modifier-page .pagination button:disabled{opacity:.5;cursor:not-allowed}.image-modifier-page .pagination-info{color:#666;text-align:center;font-size:14px}@media (width<=1200px){.image-modifier-page .content-wrapper{grid-template-columns:1fr}.image-modifier-page .sidebar{grid-template-columns:repeat(2,1fr);display:grid}.image-modifier-page .card.jobs-card{max-height:none}}@media (width<=768px){.image-modifier-page .header{text-align:center;flex-direction:column;gap:15px}.image-modifier-page .header-left{flex-direction:column;justify-content:center;gap:10px}.image-modifier-page .content-wrapper{padding:15px}.image-modifier-page .sidebar,.image-modifier-page .form-row,.image-modifier-page .jobs-grid{grid-template-columns:1fr}.image-modifier-page .jobs-filters{flex-direction:column}.image-modifier-page .jobs-filters input{width:100%}.image-modifier-page .form-actions{flex-direction:column;align-items:stretch}.image-modifier-page .form-queue-info{text-align:center}.image-modifier-page .pagination{flex-direction:column;gap:10px}.multi-image-preview{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.preview-item .remove-image-btn{opacity:1}}.top-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;gap:8px;height:48px;min-height:48px;padding:0 12px;display:flex}.top-toolbar.disabled{opacity:.5;pointer-events:none}.top-toolbar .toolbar-section{flex-flow:row;flex-shrink:0;align-items:center;gap:4px;display:flex}.toolbar-center{flex:1;justify-content:center}.toolbar-right{justify-content:flex-end}.toolbar-divider{background:var(--border-secondary);width:1px;height:24px;margin:0 8px}.toolbar-btn{border-radius:var(--radius-md);min-width:32px;height:32px;color:var(--text-muted);font-size:var(--font-md);cursor:pointer;transition:all var(--transition-normal);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}.toolbar-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-secondary)}.toolbar-btn:active:not(:disabled){transform:scale(.95)}.toolbar-btn.active{background:var(--bg-hover);border-color:var(--border-light)}.toolbar-btn.btn-primary{background:var(--gradient-accent);color:var(--text-white);border-color:var(--accent-light);padding:0 12px}.toolbar-btn.btn-primary:hover:not(:disabled){background:var(--gradient-accent-hover);color:var(--text-white)}.btn-label{font-weight:500}.zoom-display{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);min-width:56px;height:28px;color:var(--text-secondary);font-size:var(--font-base);font-weight:500;font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;padding:0 8px;display:flex}.zoom-display:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.canvas-size-btn{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);height:28px;color:var(--text-muted);font-size:var(--font-sm);font-family:var(--font-mono);cursor:pointer;transition:all var(--transition-normal);align-items:center;gap:6px;padding:0 10px;display:flex}.canvas-size-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-secondary)}.canvas-size-btn svg{color:var(--text-icon)}.toolbar-dropdown{position:relative}.dropdown-menu{background:var(--bg-elevated);border:1px solid var(--border-secondary);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-lg);z-index:1000;animation:dropdownFadeIn var(--transition-normal);padding:6px;position:absolute;top:calc(100% + 4px);right:0}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-icon);padding:6px 10px 4px;font-weight:600}.dropdown-item{border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);font-size:var(--font-md);text-align:left;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;display:flex}.dropdown-item:hover{background:var(--accent-bg);color:var(--text-white)}.dropdown-item svg{color:var(--text-muted);flex-shrink:0}.dropdown-item:hover svg{color:var(--accent-light)}.dropdown-item .shortcut{font-size:var(--font-sm);color:var(--text-disabled);font-family:var(--font-mono);background:var(--bg-tertiary);border-radius:var(--radius-sm);flex-shrink:0;margin-left:auto;padding:2px 6px}.dropdown-item.checked{background:var(--accent-bg-subtle)}.dropdown-item .check{color:var(--accent);margin-left:auto;font-weight:700}.dropdown-item span:not(.shortcut):not(.check){flex:1}.dropdown-divider{background:var(--border-secondary);height:1px;margin:6px 0}.quality-slider{color:var(--text-muted);align-items:center;gap:8px;padding:8px 10px;display:flex}.quality-slider input[type=range]{background:var(--border-secondary);border-radius:var(--radius-xs);-webkit-appearance:none;cursor:pointer;flex:1;height:4px}.quality-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:14px;height:14px;transition:transform var(--transition-fast);border-radius:50%}.quality-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.quality-slider span{min-width:36px;font-size:var(--font-base);font-family:var(--font-mono);color:var(--text-secondary);text-align:right}.export-menu{min-width:240px}@media (width<=900px){.btn-label{display:none}.toolbar-btn.btn-primary{padding:0 10px}.canvas-size-btn span{display:none}}.export-history-menu{min-width:280px}.dropdown-empty{color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:20px;display:flex}.dropdown-empty span{font-size:var(--font-base)}.dropdown-menu .history-item{cursor:default;align-items:center;gap:10px;padding:8px 12px;display:flex}.dropdown-menu .history-item:hover{background:var(--bg-hover)}.history-item-icon{background:var(--bg-tertiary);border-radius:var(--radius-md);width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.history-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.history-item-name{font-size:var(--font-md);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.history-item-time{font-size:var(--font-sm);color:var(--text-muted)}.history-item-quality{font-size:var(--font-sm);color:var(--text-secondary);background:var(--bg-secondary);border-radius:var(--radius-sm);flex-shrink:0;padding:2px 6px}.toolbar-btn .badge{background:var(--accent);min-width:14px;height:14px;color:var(--text-white);border-radius:7px;justify-content:center;align-items:center;padding:0 4px;font-size:9px;font-weight:600;display:flex;position:absolute;top:2px;right:2px}.dropdown-menu .dropdown-item.text-danger{color:var(--error)}.dropdown-menu .dropdown-item.text-danger:hover{background:var(--error-bg-subtle)}.toolbar-btn.btn-save{background:var(--success-bg-subtle,#22c55e1a);color:var(--success,#22c55e);border-color:var(--success-border,#22c55e4d);padding:0 12px}.toolbar-btn.btn-save:hover:not(:disabled){background:var(--success,#22c55e);color:var(--text-white,#fff);border-color:var(--success,#22c55e)}.toolbar-btn.btn-save:active:not(:disabled){background:var(--success-dark,#16a34a)}.toolbar-btn.btn-close-editor{color:var(--text-muted);margin-left:4px}.toolbar-btn.btn-close-editor:hover:not(:disabled){background:var(--error-bg-subtle,#ef44441a);color:var(--error,#ef4444);border-color:var(--error-border,#ef44444d)}.toolbar-btn.btn-close-editor:active:not(:disabled){background:var(--error,#ef4444);color:var(--text-white,#fff)}.dropdown-item.highlight{background:var(--accent-bg-subtle,#6366f11a);border-left:2px solid var(--accent,#6366f1)}.dropdown-item.highlight:hover{background:var(--accent-bg,#6366f133)}@media (width<=900px){.toolbar-btn.btn-save .btn-label{display:none}.toolbar-btn.btn-save{padding:0 8px}}.serial-mode-bar{background:var(--accent-bg-subtle,#6366f11a);border:1px solid var(--accent,#6366f1);border-radius:var(--radius-md,6px);align-items:center;gap:8px;margin-right:8px;padding:6px 12px;display:flex}.serial-label{color:var(--accent-light,#818cf8);font-size:var(--font-xs,11px);letter-spacing:.5px;white-space:nowrap;font-weight:600}.serial-input{background:var(--bg-tertiary,#ffffff0d);border:1px solid var(--border-secondary,#ffffff1a);border-radius:var(--radius-sm,4px);height:28px;color:var(--text-primary,#fff);font-size:var(--font-sm,12px);transition:border-color var(--transition-fast,.15s), background var(--transition-fast,.15s);padding:4px 8px}.serial-input:focus{border-color:var(--accent,#6366f1);background:var(--bg-hover,#ffffff14);outline:none}.serial-input::placeholder{color:var(--text-disabled,#fff6)}.serial-prefix{width:120px}.serial-counter{text-align:center;width:60px;font-family:var(--font-mono,monospace);-moz-appearance:textfield}.serial-counter::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.serial-counter::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.serial-format{cursor:pointer;background:var(--bg-tertiary,#ffffff0d);width:70px}.serial-format option{background:var(--bg-elevated,#1e1b4b);color:var(--text-primary,#fff)}.btn-serial-save{background:var(--gradient-accent,linear-gradient(135deg, #4f46e5 0%, #6366f1 100%));border-radius:var(--radius-sm,4px);height:28px;color:var(--text-white,#fff);font-size:var(--font-xs,11px);font-weight:600;font-family:var(--font-mono,monospace);cursor:pointer;white-space:nowrap;transition:transform var(--transition-fast,.1s), box-shadow var(--transition-normal,.2s);border:none;padding:4px 12px}.btn-serial-save:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-serial-save:active:not(:disabled){transform:translateY(0)}.btn-serial-save:disabled{opacity:.5;cursor:not-allowed}.btn-serial-close{border:1px solid var(--border-secondary,#ffffff26);border-radius:var(--radius-sm,4px);width:24px;height:24px;color:var(--text-muted,#94a3b8);cursor:pointer;transition:color var(--transition-fast,.15s), border-color var(--transition-fast,.15s), background var(--transition-fast,.15s);background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.btn-serial-close:hover{color:var(--error,#ef4444);border-color:var(--error,#ef4444);background:var(--error-bg-subtle,#ef44441a)}.btn-serial-toggle{color:var(--accent-light,#818cf8)}.btn-serial-toggle:hover:not(:disabled){background:var(--accent-bg-subtle,#6366f126);color:var(--accent,#6366f1);border-color:var(--accent,#6366f1)}@media (width<=900px){.serial-mode-bar{gap:6px;padding:4px 8px}.serial-prefix{width:80px}.serial-label{display:none}.btn-serial-save{padding:4px 8px;font-size:10px}}.toolbar-btn.btn-library{color:#fff;border-radius:var(--radius-md,6px);background:linear-gradient(135deg,#8b5cf6 0%,#7c3aed 100%);border:none;gap:6px;padding:0 14px;font-weight:500;transition:all .2s}.toolbar-btn.btn-library:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed 0%,#6d28d9 100%);transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf659}.toolbar-btn.btn-library:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px #8b5cf640}.toolbar-btn.btn-library:disabled{background:var(--bg-tertiary,#3a3a4a);color:var(--text-disabled,#666);cursor:not-allowed;box-shadow:none;transform:none}.toolbar-btn.btn-library .btn-label{white-space:nowrap;font-size:13px}@media (width<=900px){.toolbar-btn.btn-library .btn-label{display:none}.toolbar-btn.btn-library{padding:0 10px}}.left-panel{background:var(--bg-secondary);border-right:1px solid var(--border-primary);scrollbar-width:thin;scrollbar-color:var(--border-secondary) var(--bg-secondary);flex-direction:column;width:140px;min-width:140px;display:flex;overflow:hidden}.left-panel::-webkit-scrollbar{width:6px}.left-panel::-webkit-scrollbar-track{background:var(--bg-secondary)}.left-panel::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}.left-panel::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.left-panel.disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.panel-header{border-bottom:1px solid var(--border-primary);background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.panel-title{font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600}.panel-hint{border-radius:var(--radius-sm);background:var(--warning-bg,#f59e0b26);width:18px;height:18px;color:var(--warning,#f59e0b);cursor:help;justify-content:center;align-items:center;animation:2s ease-in-out infinite pulseHint;display:flex}@keyframes pulseHint{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.tool-groups-container{flex:1;overflow:hidden auto}.tool-group{border-bottom:1px solid var(--border-primary)}.tool-group.has-active{background:#6366f108}.tool-group.has-active .group-header{color:var(--accent)}.group-header{width:100%;color:var(--text-muted);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--transition-normal);background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 10px;font-weight:600;display:flex}.group-header:hover{background:var(--accent-bg-subtle);color:var(--text-secondary)}.group-header:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.group-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;overflow:hidden}.group-info{align-items:center;gap:6px;display:flex}.group-availability{border-radius:var(--radius-xs);background:var(--bg-tertiary);color:var(--text-muted);opacity:.8;padding:1px 4px;font-size:9px;font-weight:500}.group-arrow{color:var(--text-icon);transition:transform var(--transition-slow);justify-content:center;align-items:center;display:flex}.tool-grid{background:#00000026;grid-template-columns:1fr 1fr;gap:4px;padding:6px;display:grid}.tool-button{aspect-ratio:1;background:var(--bg-tertiary);border-radius:var(--radius-md);width:100%;color:var(--text-muted);cursor:pointer;transition:all var(--transition-normal);border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.tool-button:hover:not(:disabled){background:var(--bg-hover);color:var(--text-secondary);border-color:var(--border-light)}.tool-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tool-button:active:not(:disabled){transform:scale(.95)}.tool-button svg{flex-shrink:0}.tool-button.active{background:var(--gradient-accent);color:var(--text-white);border-color:var(--accent-light);box-shadow:0 2px 8px var(--accent-glow);animation:toolActivate var(--transition-slow)}@keyframes toolActivate{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.tool-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:auto}.tool-button.disabled-context{opacity:.5;background:var(--bg-tertiary);border-color:#0000}.tool-button.disabled-context:hover{background:#f59e0b1a;border-color:#f59e0b4d}.tool-requirement-icon{background:var(--warning-bg,#f59e0b33);width:12px;height:12px;color:var(--warning,#f59e0b);opacity:.9;border-radius:50%;justify-content:center;align-items:center;font-size:8px;display:flex;position:absolute;bottom:2px;right:2px}.tool-button.requires-image:not(:disabled):not(.active):after,.tool-button.requires-selection:not(:disabled):not(.active):after{content:"";background:var(--accent);opacity:.4;border-radius:1px;width:60%;height:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.tool-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:var(--radius-xs);pointer-events:none;z-index:1;padding:1px 3px;font-size:7px;font-weight:700;position:absolute;top:-2px;right:-2px}.tool-badge-wip{color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);box-shadow:0 1px 3px #6366f166}.tool-button.work-in-progress{opacity:.6}.tool-button.work-in-progress:hover{opacity:.7;background:#8b5cf61a;border-color:#8b5cf64d}.panel-footer{border-top:1px solid var(--border-primary);background:var(--bg-tertiary);padding:6px 8px}.legend{flex-direction:column;gap:2px;display:flex}.legend-item{color:var(--text-muted);opacity:.7;align-items:center;gap:4px;font-size:8px;display:flex}.legend-item svg{opacity:.6}.tool-group:nth-child(2),.tool-group:nth-child(5),.tool-group:nth-child(7){border-top:2px solid var(--border-secondary)}@media (height<=800px){.panel-header{padding:6px 8px 4px}.panel-title{font-size:9px}.group-header{padding:6px 8px;font-size:9px}.tool-grid{gap:3px;padding:4px}.tool-button{border-radius:var(--radius-sm)}.tool-button svg{width:16px;height:16px}.tool-badge{padding:0 2px;font-size:6px}.panel-footer{padding:4px 6px}.legend-item{font-size:7px}}@media (height<=600px){.panel-header,.panel-footer{display:none}.tool-groups-container{padding-top:4px}}@media (prefers-contrast:high){.tool-button{border:2px solid var(--border-secondary)}.tool-button.active{border-color:var(--accent);border-width:2px}.tool-button:disabled{border-style:dashed}.tool-button.disabled-context{border-color:var(--warning,#f59e0b);border-style:dashed}.tool-badge{border:1px solid}.tool-requirement-icon{border:1px solid var(--warning,#f59e0b)}}@media (prefers-reduced-motion:reduce){.tool-button,.group-header,.group-arrow{transition:none}.tool-button.active,.panel-hint{animation:none}}@media (prefers-color-scheme:dark){.tool-button.disabled-context:hover{background:#f59e0b14;border-color:#f59e0b40}.tool-button.work-in-progress:hover{background:#8b5cf614;border-color:#8b5cf640}}.tool-group:focus-within .group-header{color:var(--text-secondary)}.tool-grid:focus-within{background:#0000002e}@media print{.left-panel{display:none}}.right-panel{background:var(--bg-secondary);border-left:1px solid var(--border-primary);flex-direction:column;width:280px;min-width:280px;display:flex;overflow:hidden}.tabs-header{border-bottom:1px solid var(--border-primary);background:var(--bg-secondary);display:flex}.tab-btn{height:44px;color:var(--text-icon);cursor:pointer;transition:all var(--transition-normal);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;display:flex}.tab-btn:hover{color:var(--text-muted);background:var(--accent-bg-hover)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-bg-subtle)}.tabs-content{scrollbar-width:thin;scrollbar-color:var(--border-secondary) var(--bg-secondary);flex:1;overflow:hidden auto}.tabs-content::-webkit-scrollbar{width:6px}.tabs-content::-webkit-scrollbar-track{background:var(--bg-secondary)}.tabs-content::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}.tab-content{padding:12px}.empty-state{text-align:center;color:var(--text-disabled);flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.empty-state svg{opacity:.5;margin-bottom:12px}.empty-state p{font-size:var(--font-lg);color:var(--text-muted);margin:0}.empty-state span{font-size:var(--font-base);margin-top:4px}.empty-state.small{padding:20px}.empty-state.small svg{margin-bottom:8px}.section{background:var(--bg-elevated);border-radius:var(--radius-lg);margin-bottom:8px;overflow:hidden}.section-header{width:100%;color:var(--text-secondary);font-size:var(--font-base);text-align:left;cursor:pointer;transition:background var(--transition-normal);background:0 0;border:none;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:flex}.section-header:hover{background:var(--accent-bg-subtle)}.section-header svg{color:var(--text-icon)}.section-header .arrow{color:var(--text-disabled);font-size:var(--font-xs);margin-left:auto}.section-content{border-top:1px solid var(--border-primary);padding:8px 12px 12px}.control-row{align-items:center;gap:8px;margin-bottom:10px;display:flex}.control-row:last-child{margin-bottom:0}.control-row label{min-width:80px;font-size:var(--font-sm);color:var(--text-muted);flex-shrink:0;align-items:center;gap:4px;display:flex}.control-row label svg{color:var(--text-icon)}.control-row input[type=range]{background:var(--border-secondary);border-radius:var(--radius-xs);-webkit-appearance:none;cursor:pointer;flex:1;height:4px}.control-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:12px;height:12px}.control-row .value{min-width:32px;font-size:var(--font-xs);color:var(--text-icon);text-align:right;font-family:var(--font-mono)}.control-row select{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);height:28px;color:var(--text-secondary);font-size:var(--font-base);cursor:pointer;flex:1;padding:0 8px}.control-row select:hover{border-color:var(--border-hover)}.control-row select:focus{border-color:var(--accent);outline:none}.color-input{flex:1;align-items:center;gap:4px;display:flex}.color-input input[type=color]{border:2px solid var(--border-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:28px;height:28px;padding:0}.color-input input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-input input[type=color]::-webkit-color-swatch{border-radius:var(--radius-xs);border:none}.btn-small{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);font-size:var(--font-base);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;display:flex}.btn-small:hover{background:var(--bg-hover);color:var(--text-secondary)}.button-row{gap:4px;display:flex}.style-btn{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);height:32px;color:var(--text-muted);font-size:var(--font-lg);cursor:pointer;transition:all var(--transition-normal);flex:1;justify-content:center;align-items:center;display:flex}.style-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.style-btn.active{background:var(--accent);border-color:var(--accent-light);color:var(--text-white)}.action-buttons{border-top:1px solid var(--border-primary);gap:8px;margin-top:16px;padding-top:16px;display:flex}.btn-action{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);height:34px;color:var(--text-secondary);font-size:var(--font-base);cursor:pointer;transition:all var(--transition-normal);flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.btn-action:hover{background:var(--bg-hover);border-color:var(--border-hover)}.btn-action.btn-danger{color:var(--error-light)}.btn-action.btn-danger:hover{background:var(--error-bg);border-color:var(--error-light)}.btn-reset{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);width:100%;height:32px;color:var(--text-muted);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;gap:6px;margin-top:8px;display:flex}.btn-reset:hover{background:var(--bg-hover);color:var(--text-secondary)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);width:100%;height:34px;color:var(--text-secondary);font-size:var(--font-base);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;gap:6px;margin-top:8px;font-weight:500;display:flex}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-hover);color:var(--text-primary)}.btn-secondary:active{background:var(--bg-active);transform:translateY(1px)}.btn-secondary:disabled:hover{background:var(--bg-tertiary);border-color:var(--border-secondary);transform:none}.effects-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.effect-btn{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-normal);padding:8px 4px}.effect-btn:hover{background:var(--bg-hover);color:var(--text-secondary);border-color:var(--border-hover)}.btn-ai{background:var(--gradient-accent-purple);border-radius:var(--radius-md);width:100%;height:36px;color:var(--text-white);font-size:var(--font-md);cursor:pointer;transition:all var(--transition-normal);border:none;justify-content:center;align-items:center;gap:8px;font-weight:500;display:flex}.btn-ai:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-hover) 0%, var(--accent-secondary-hover) 100%);box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.btn-ai:disabled{opacity:.7;cursor:not-allowed;transform:none}.divider{background:var(--border-primary);height:1px;margin:12px 0}.layers-tab{padding:8px}.layers-list{flex-direction:column;gap:4px;display:flex}.right-panel .layers-tab .layer-item{background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);-webkit-user-select:none;user-select:none;border:1px solid #0000;gap:6px;min-width:0;min-height:40px;padding:8px;flex-flow:row!important;align-items:center!important;display:flex!important}.right-panel .layers-tab .layer-item:hover{background:var(--bg-hover)}.right-panel .layers-tab .layer-item.selected{background:var(--accent-bg);border-color:var(--accent)}.right-panel .layers-tab .layer-item.dragging{opacity:.5;transform:scale(.98)}.right-panel .layers-tab .layer-item.drag-over{border-color:var(--accent);background:var(--bg-active);border-style:dashed}.right-panel .layers-tab .layer-drag-handle{cursor:grab;color:var(--text-muted);justify-content:center;align-items:center;width:20px;height:20px;padding:2px;flex-shrink:0!important;display:inline-flex!important}.right-panel .layers-tab .layer-drag-handle:hover{color:var(--text-secondary)}.right-panel .layers-tab .layer-drag-handle:active{cursor:grabbing}.right-panel .layers-tab .layer-btn{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-icon);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;flex-shrink:0!important;display:inline-flex!important}.right-panel .layers-tab .layer-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-secondary)}.right-panel .layers-tab .layer-btn:disabled{opacity:.3;cursor:not-allowed}.right-panel .layers-tab .layer-name{min-width:0;font-size:var(--font-base);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:auto!important;display:inline-block!important}.right-panel .layers-tab .layer-name-input{background:var(--bg-tertiary);border:1px solid var(--accent);border-radius:var(--radius-sm);min-width:0;height:24px;color:var(--text-primary);font-size:var(--font-base);outline:none;padding:2px 6px;font-family:inherit;flex:auto!important}.right-panel .layers-tab .layer-name-input:focus{border-color:var(--accent-light);box-shadow:0 0 0 2px var(--accent-glow)}.right-panel .layers-tab .layer-actions{gap:2px;margin-left:auto;flex-direction:row!important;flex-shrink:0!important;display:inline-flex!important}.assets-tab{padding:8px}.badges-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.badge-btn{aspect-ratio:1;background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;font-size:20px;display:flex}.badge-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:scale(1.05)}.icons-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.icon-btn{aspect-ratio:1;background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:scale(1.1)}.icon-btn svg{opacity:.8}.icon-btn:hover svg{opacity:1}@media (width<=1200px){.right-panel{width:260px;min-width:260px}}.filter-previews-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 0;display:grid}.filter-preview-btn{background:var(--bg-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);border:2px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:4px;display:flex;position:relative;overflow:hidden}.filter-preview-btn:hover{border-color:var(--accent);transform:scale(1.02)}.filter-preview-btn.active{border-color:var(--accent);background:var(--bg-active)}.filter-preview-btn img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);width:100%}.filter-preview-placeholder{aspect-ratio:1;background:var(--bg-tertiary);border-radius:var(--radius-sm);width:100%;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.filter-preview-label{font-size:var(--font-xs);color:var(--text-secondary);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.filter-preview-check{background:var(--accent);width:16px;height:16px;color:var(--text-white);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;right:4px}.shape-buttons{gap:4px;display:flex}.shape-btn{border:1px solid var(--border-secondary);border-radius:var(--radius-sm);background:var(--bg-tertiary);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:14px;display:flex}.shape-btn:hover{background:var(--bg-hover);border-color:var(--border-hover)}.shape-btn.active{background:var(--accent);border-color:var(--accent);color:var(--text-white)}.checkbox-row{justify-content:space-between;align-items:center;display:flex}.checkbox-row label{cursor:pointer;align-items:center;gap:8px;display:flex}.checkbox-row input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.checkbox-row .hint{color:var(--text-disabled);font-size:11px}.control-row.indent{margin-left:24px}.section-divider{background:var(--border-primary);height:1px;margin:12px 0}.eraser-hint{background:var(--accent-bg-subtle);border-radius:var(--radius-md);color:var(--text-secondary);gap:8px;margin-top:8px;padding:8px;font-size:12px;display:flex}.eraser-hint .hint-icon{flex-shrink:0}.keyboard-shortcuts{border-top:1px solid var(--border-primary);color:var(--text-disabled);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;font-size:11px;display:flex}.keyboard-shortcuts .shortcut{align-items:center;gap:4px;display:flex}.keyboard-shortcuts kbd{font-family:var(--font-mono);background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-xs);padding:2px 6px;font-size:11px;display:inline-block}.status-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.status-badge{border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-badge.active{background:var(--success-bg,#22c55e26);color:var(--success,#22c55e);border:1px solid var(--success-border,#22c55e4d)}.status-badge.inactive{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-secondary)}.btn-small.btn-text{width:auto;height:auto;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:4px 8px;font-size:11px}.btn-small.btn-text:hover{color:var(--accent);background:var(--accent-bg-subtle)}.control-row .text-input{border:1px solid var(--border-color,#e2e8f0);background:var(--input-bg,#fff);color:var(--text-color,#1e293b);border-radius:4px;flex:1;padding:6px 10px;font-size:13px;transition:border-color .2s,box-shadow .2s}.control-row .text-input:focus{border-color:var(--primary-color,#6366f1);outline:none;box-shadow:0 0 0 2px #6366f126}.control-row .text-input::placeholder{color:var(--text-muted,#94a3b8)}.section-divider{background:var(--border-color,#e2e8f0);opacity:.6;height:1px;margin:12px 0}.control-row.checkbox-row{justify-content:space-between;align-items:center;display:flex}.control-row.checkbox-row label{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.control-row.checkbox-row input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--primary-color,#6366f1)}.eraser-hint{background:var(--hint-bg,#f1f5f9);color:var(--text-muted,#64748b);border-radius:6px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.4;display:flex}.eraser-hint .hint-icon{flex-shrink:0;font-size:14px}.section-header svg[data-lucide=ruler]{color:var(--primary-color,#6366f1)}.control-row select{transition:border-color .2s}.control-row select:focus{border-color:var(--primary-color,#6366f1);outline:none;box-shadow:0 0 0 2px #6366f126}.control-row .color-input{align-items:center;gap:6px;display:flex}.control-row .color-input input[type=color]{border:2px solid var(--border-color,#e2e8f0);cursor:pointer;background:0 0;border-radius:4px;width:32px;height:32px;padding:0}.control-row .color-input input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.control-row .color-input input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.tab-content.background-tab{padding:0}.tab-content.background-tab .bgr-panel{padding:12px}.bgr-panel{flex-direction:column;gap:12px;height:100%;padding:12px;display:flex;overflow-y:auto}.bgr-header{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border-radius:8px;align-items:flex-start;gap:12px;padding:12px;display:flex}.bgr-header svg{opacity:.9;flex-shrink:0}.bgr-header-text{flex:1}.bgr-header h3{margin:0 0 4px;font-size:14px;font-weight:600}.bgr-header p{opacity:.85;margin:0;font-size:11px;line-height:1.4}.bgr-main-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex;box-shadow:0 2px 8px #6366f14d}.bgr-main-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.bgr-main-btn:active:not(:disabled){transform:translateY(0)}.bgr-main-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.bgr-main-btn.active{background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);box-shadow:0 2px 8px #22c55e4d}.bgr-main-btn.active:hover:not(:disabled){box-shadow:0 4px 12px #22c55e66}.bgr-main-btn .spin{animation:1s linear infinite bgr-spin}@keyframes bgr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bgr-progress{background:#6366f133;border-radius:2px;height:4px;overflow:hidden}.bgr-progress-bar{background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:2px;height:100%;transition:width .3s}.bgr-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.bgr-error svg{flex-shrink:0}.bgr-live-preview-info{color:#3b82f6;background:linear-gradient(135deg,#dbeafe 0%,#e0e7ff 100%);border:1px solid #bfdbfe;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:12px;font-weight:500;display:flex}.bgr-live-preview-info svg{animation:2s ease-in-out infinite bgr-pulse}@keyframes bgr-pulse{0%,to{opacity:1}50%{opacity:.5}}.bgr-preview-thumbnail{aspect-ratio:16/10;background-color:#e5e5e5;background-image:linear-gradient(45deg,#f0f0f0 25%,#0000 25%),linear-gradient(-45deg,#f0f0f0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f0f0f0 75%),linear-gradient(-45deg,#0000 75%,#f0f0f0 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:10px 10px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #e5e7eb;border-radius:8px;width:100%;position:relative;overflow:hidden}.bgr-preview-thumbnail img{object-fit:contain;width:100%;height:100%}.bgr-preview-loading{color:#6b7280;background:#ffffffe6;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;inset:0}.bgr-preview-loading .spin{color:#6366f1}.bgr-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.bgr-section.disabled{opacity:.5;pointer-events:none}.bgr-section-header{cursor:pointer;color:#374151;background:#f9fafb;border:none;align-items:center;gap:8px;width:100%;padding:10px 12px;font-size:12px;font-weight:500;transition:background-color .15s;display:flex}.bgr-section-header:hover{background:#f3f4f6}.bgr-section-header svg{color:#6b7280}.bgr-section-header span:first-of-type{text-align:left;flex:1}.bgr-section-badge{background:#6366f1;border-radius:50%;width:8px;height:8px;font-size:0}.bgr-section-header .chevron{color:#9ca3af;transition:transform .2s}.bgr-section-header .chevron.rotated{transform:rotate(90deg)}.bgr-section-content{border-top:1px solid #e5e7eb;flex-direction:column;gap:10px;padding:12px;display:flex}.bgr-control-row{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.bgr-control-row label{color:#6b7280;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:flex}.bgr-control-row label svg{color:#9ca3af}.bgr-control-row input[type=range]{appearance:none;cursor:pointer;background:#e5e7eb;border-radius:2px;grid-column:1/-1;width:100%;height:4px}.bgr-control-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#6366f1;border-radius:50%;width:14px;height:14px;transition:transform .15s;box-shadow:0 1px 3px #0003}.bgr-control-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.bgr-control-row input[type=range]::-moz-range-thumb{cursor:pointer;background:#6366f1;border:none;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0003}.bgr-control-row input[type=color]{cursor:pointer;border:1px solid #e5e7eb;border-radius:4px;width:32px;height:24px;padding:0}.bgr-value{color:#374151;text-align:right;font-variant-numeric:tabular-nums;min-width:40px;font-size:11px}.bgr-preview-modes{flex-wrap:wrap;gap:4px;display:flex}.bgr-preview-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:all .15s;display:flex}.bgr-preview-btn:hover{background:#f9fafb;border-color:#d1d5db}.bgr-preview-btn.active{color:#6366f1;background:#eef2ff;border-color:#6366f1}.bgr-preview-btn[style*=--accent-color].active{border-color:var(--accent-color);background:color-mix(in srgb, var(--accent-color) 10%, white);color:var(--accent-color)}.bgr-brush-mode{gap:8px;display:flex}.bgr-brush-mode-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;transition:all .15s;display:flex}.bgr-brush-mode-btn:hover{background:#f9fafb;border-color:#d1d5db}.bgr-brush-mode-btn.active{color:#6366f1;background:#eef2ff;border-color:#6366f1}.bgr-mask-actions{border-top:1px solid #f3f4f6;border-bottom:1px solid #f3f4f6;gap:8px;padding:8px 0;display:flex}.bgr-action-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex:1;justify-content:center;align-items:center;padding:8px;transition:all .15s;display:flex}.bgr-action-btn:hover:not(:disabled){color:#374151;background:#f9fafb;border-color:#d1d5db}.bgr-action-btn:disabled{opacity:.4;cursor:not-allowed}.bgr-main-actions{gap:8px;margin-top:4px;display:flex}.bgr-btn-primary,.bgr-btn-secondary{cursor:pointer;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.bgr-btn-primary{color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);box-shadow:0 2px 6px #22c55e4d}.bgr-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #22c55e66}.bgr-btn-secondary{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.bgr-btn-secondary:hover:not(:disabled){color:#374151;background:#e5e7eb}.bgr-btn-secondary:disabled,.bgr-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.bgr-btn-secondary.full-width{width:100%}.bgr-hint{color:#6b7280;margin:0;padding:8px 0;font-size:12px}.bgr-hint-small{color:#9ca3af;margin:0;font-size:10px;line-height:1.4}.bgr-divider{background:#e5e7eb;height:1px;margin:4px 0}.bgr-panel::-webkit-scrollbar{width:6px}.bgr-panel::-webkit-scrollbar-track{background:0 0}.bgr-panel::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.bgr-panel::-webkit-scrollbar-thumb:hover{background:#9ca3af}.error-boundary-fallback{box-sizing:border-box;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1px solid #fecaca;border-radius:8px;justify-content:center;align-items:center;min-height:200px;padding:2rem;display:flex}.error-boundary-content{text-align:center;max-width:480px}.error-boundary-icon-large{margin-bottom:1rem;font-size:3rem;animation:.5s ease-in-out errorShake}@keyframes errorShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.error-boundary-title{color:#991b1b;margin:0 0 .75rem;font-size:1.375rem;font-weight:600;line-height:1.3}.error-boundary-message{color:#7f1d1d;margin:0 0 1.5rem;font-size:.938rem;line-height:1.5}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.error-boundary-btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:background-color .15s,transform .1s;display:inline-flex}.error-boundary-btn:hover{transform:translateY(-1px)}.error-boundary-btn:active{transform:translateY(0)}.error-boundary-btn:focus{outline-offset:2px;outline:2px solid #3b82f6}.error-boundary-btn:focus:not(:focus-visible){outline:none}.error-boundary-btn-primary{color:#fff;background:#dc2626}.error-boundary-btn-primary:hover{background:#b91c1c}.error-boundary-btn-secondary{color:#374151;background:#fff;border:1px solid #d1d5db}.error-boundary-btn-secondary:hover{background:#f9fafb}.error-boundary-btn-small{color:#fff;background:#dc2626;padding:.375rem .75rem;font-size:.813rem}.error-boundary-btn-small:hover{background:#b91c1c}.error-boundary-details{text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-top:1.5rem;overflow:hidden}.error-boundary-details summary{cursor:pointer;color:#6b7280;-webkit-user-select:none;user-select:none;background:#f9fafb;border-bottom:1px solid #0000;padding:.75rem 1rem;font-size:.813rem;list-style:none}.error-boundary-details summary::-webkit-details-marker{display:none}.error-boundary-details summary:before{content:"▶ ";margin-right:.5rem;font-size:.625rem;transition:transform .2s;display:inline-block}.error-boundary-details[open] summary:before{transform:rotate(90deg)}.error-boundary-details summary:hover{background:#f3f4f6}.error-boundary-details[open] summary{border-bottom-color:#e5e7eb}.error-boundary-error-info{padding:1rem;font-size:.813rem}.error-boundary-error-info p{color:#374151;word-break:break-word;margin:0 0 .5rem}.error-boundary-stack{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;border-radius:4px;max-height:180px;margin:.5rem 0;padding:.75rem;font-family:SF Mono,Monaco,Menlo,Ubuntu Mono,monospace;font-size:.688rem;line-height:1.5;overflow:auto}.error-boundary-panel{flex-direction:column;min-height:auto;margin:.5rem;padding:1rem}.error-boundary-panel .error-boundary-content{text-align:left;align-items:center;gap:.75rem;width:100%;max-width:none;display:flex}.error-boundary-panel .error-boundary-icon{flex-shrink:0;font-size:1.5rem}.error-boundary-panel .error-boundary-text{flex:1;min-width:0}.error-boundary-panel .error-boundary-text strong{color:#991b1b;margin-bottom:.25rem;font-size:.875rem;display:block}.error-boundary-panel .error-boundary-text p{color:#7f1d1d;margin:0;font-size:.75rem}.error-boundary-fullscreen{border:none;border-radius:0;min-height:100vh;margin:0}.error-boundary-canvas{z-index:100;border-radius:0;margin:0;position:absolute;inset:0}@media (width<=480px){.error-boundary-fallback{padding:1.5rem 1rem}.error-boundary-icon-large{font-size:2.5rem}.error-boundary-title{font-size:1.125rem}.error-boundary-message{font-size:.875rem}.error-boundary-actions{flex-direction:column}.error-boundary-btn{width:100%}}@media (prefers-color-scheme:dark){.error-boundary-fallback{background:linear-gradient(135deg,#1c1917 0%,#292524 100%);border-color:#7f1d1d}.error-boundary-title{color:#fca5a5}.error-boundary-message{color:#fecaca}.error-boundary-btn-secondary{color:#f3f4f6;background:#374151;border-color:#4b5563}.error-boundary-btn-secondary:hover{background:#4b5563}.error-boundary-details{background:#1f2937;border-color:#374151}.error-boundary-details summary{color:#9ca3af;background:#111827}.error-boundary-details summary:hover{background:#1f2937}.error-boundary-details[open] summary{border-color:#374151}.error-boundary-error-info p{color:#d1d5db}.error-boundary-panel{background:linear-gradient(135deg,#1c1917 0%,#292524 100%)}.error-boundary-panel .error-boundary-text strong{color:#fca5a5}.error-boundary-panel .error-boundary-text p{color:#fecaca}}.photo-editor.dark .error-boundary-fallback,.photo-editor[data-theme=dark] .error-boundary-fallback{background:linear-gradient(135deg,#1c1917 0%,#292524 100%);border-color:#7f1d1d}.photo-editor.dark .error-boundary-title,.photo-editor[data-theme=dark] .error-boundary-title{color:#fca5a5}.photo-editor.dark .error-boundary-message,.photo-editor[data-theme=dark] .error-boundary-message{color:#fecaca}.context-menu{z-index:10000;-webkit-user-select:none;user-select:none;background:#1e1e2e;border:1px solid #3d3d5c;border-radius:8px;min-width:240px;max-width:320px;padding:4px 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;animation:.1s ease-out contextMenuFadeIn;position:fixed;box-shadow:0 4px 20px #0006,0 0 0 1px #ffffff0d}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-section{padding:2px 0}.context-menu-separator{background:linear-gradient(90deg,#0000 8px,#3d3d5c 8px calc(100% - 8px),#0000 calc(100% - 8px));height:1px;margin:4px 0}.context-menu-item{color:#e0e0e0;cursor:pointer;text-align:left;background:0 0;border:none;gap:10px;width:100%;padding:8px 12px;transition:background-color .1s;flex-flow:row!important;align-items:center!important;display:flex!important}.context-menu-item:hover:not(.disabled){background:#2d2d44}.context-menu-item:active:not(.disabled){background:#3d3d5c}.context-menu-item:focus{background:#2d2d44;outline:none}.context-menu-item:focus-visible{outline-offset:-2px;outline:2px solid #6366f1}.context-menu-item.disabled{color:#666680;cursor:not-allowed}.context-menu-item.disabled .context-menu-icon{opacity:.4}.context-menu-icon{color:#a0a0b0;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex!important}.context-menu-item:hover:not(.disabled) .context-menu-icon{color:#c0c0d0}.context-menu-item:hover:not(.disabled) .context-menu-icon svg[data-lucide=trash-2]{color:#f87171}.context-menu-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden;display:inline!important}.context-menu-shortcut{color:#666680;white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:16px;font-size:11px;display:inline!important}.context-menu-item:hover:not(.disabled) .context-menu-shortcut{color:#8080a0}@media (width<=768px){.context-menu{min-width:180px;font-size:14px}.context-menu-item{padding:10px 12px}.context-menu-shortcut{display:none}}@media (prefers-color-scheme:light){.context-menu{background:#1e1e2e;border-color:#3d3d5c}}@media (-webkit-device-pixel-ratio>=2),(resolution>=192dpi){.context-menu{border-width:.5px}.context-menu-separator{height:.5px}}.modal-overlay,.modal-backdrop{background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn var(--transition-normal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--border-secondary);box-shadow:var(--shadow-xl);max-width:90vw;max-height:90vh;animation:slideUp var(--transition-slow);flex-direction:column;display:flex;overflow:hidden}.modal-small{width:90%;max-width:440px}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2,.modal-header h3{font-size:var(--font-xl);color:var(--text-white);align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.modal-icon{margin-right:4px}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);font-size:var(--font-2xl);transition:all var(--transition-normal);background:0 0;border:none;justify-content:center;align-items:center;padding:4px 8px;display:flex}.modal-close:hover{background:var(--border-primary);color:var(--text-white)}.modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-primary);justify-content:flex-end;align-items:center;gap:10px;padding:16px 20px;display:flex}.modal-actions{gap:10px;display:flex}.btn,.btn-primary,.btn-secondary{border-radius:var(--radius-md);font-size:var(--font-md);cursor:pointer;transition:all var(--transition-normal);border:none;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-weight:500;display:inline-flex}.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:var(--text-white)}.btn-primary:disabled{background:var(--border-light);color:var(--text-muted);cursor:not-allowed}.btn-secondary{background:var(--border-primary);color:var(--text-primary);border:1px solid var(--border-secondary)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:16px}.form-label{font-size:var(--font-md);color:var(--text-secondary);margin-bottom:6px;font-weight:500;display:block}.form-input{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);width:100%;color:var(--text-white);font-size:var(--font-lg);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);padding:10px 12px}.form-input::placeholder{color:var(--text-placeholder)}.form-input:focus,.form-input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.form-input.input-error{border-color:var(--error)}.form-input.input-error:focus{box-shadow:0 0 0 3px var(--error-bg)}.form-error{font-size:var(--font-base);color:var(--error);margin-top:6px;display:block}.form-hint{font-size:var(--font-base);color:var(--text-placeholder);margin:8px 0 0}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-secondary);box-shadow:var(--shadow-md);pointer-events:auto;min-width:280px;max-width:420px;animation:toast-slide-in var(--transition-slower);align-items:center;gap:10px;padding:12px 16px;display:flex}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon{font-size:var(--font-2xl);flex-shrink:0}.toast-message{font-size:var(--font-md);color:var(--text-primary);flex:1;line-height:1.4}.toast-close{width:24px;height:24px;color:var(--text-placeholder);font-size:var(--font-2xl);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-normal);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-close:hover{background:var(--border-primary);color:var(--text-white)}.toast-info{border-left:4px solid var(--info)}.toast-success{border-left:4px solid var(--success)}.toast-warning{border-left:4px solid var(--warning)}.toast-error{border-left:4px solid var(--error)}.recovery-message{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:8px}.recovery-message strong{color:var(--text-white)}.recovery-timestamp{font-size:var(--font-base);color:var(--text-muted);margin-bottom:16px}.recovery-question{font-size:var(--font-md);color:var(--text-secondary);margin-bottom:16px}.recovery-hint{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:var(--font-base);color:var(--text-muted);align-items:flex-start;gap:8px;padding:12px;display:flex}.hint-icon{flex-shrink:0}.modal-canvas-size{width:520px}.modal-canvas-size h3{font-size:var(--font-base);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-weight:600}.presets-section{margin-bottom:24px}.presets-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.preset-btn{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-lg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-normal);flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.preset-btn:hover{background:var(--bg-elevated);border-color:var(--border-light);transform:translateY(-1px)}.preset-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.preset-btn.active{background:var(--accent-bg);border-color:var(--accent);color:var(--text-white)}.preset-icon{color:var(--accent);font-size:20px;line-height:1}.preset-name,.preset-label{font-size:var(--font-sm);text-align:center;font-weight:500}.preset-btn.active .preset-label{color:var(--accent)}.preset-size{font-size:var(--font-xs);color:var(--text-placeholder)}.custom-size-section{margin-bottom:24px}.size-inputs{align-items:flex-end;gap:12px;display:flex}.size-input-group{flex:1;position:relative}.size-input-group label{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:6px;display:block}.size-input-group input{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);width:100%;color:var(--text-white);font-size:var(--font-lg);padding:10px 12px}.size-input-group input:focus{border-color:var(--accent);outline:none}.size-input-group input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.size-input-group input[aria-invalid=true]{border-color:var(--error)}.size-input-group input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--error-bg)}.size-input-group .form-error{font-size:var(--font-xs);position:absolute;bottom:-20px;left:0}.swap-btn{background:var(--border-primary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:var(--font-xl);transition:all var(--transition-normal);padding:10px 12px}.swap-btn:hover{background:var(--bg-hover);color:var(--text-white)}.swap-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.background-section{margin-bottom:24px}.background-options{gap:8px;display:flex}.bg-option{border-radius:var(--radius-lg);cursor:pointer;width:40px;height:40px;transition:all var(--transition-normal);border:2px solid #0000;position:relative;overflow:hidden}.bg-option:hover{transform:scale(1.05)}.bg-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bg-option.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.bg-option.transparent{background:var(--bg-input)}.checkerboard-preview{background:repeating-conic-gradient(#3a3a4a 0% 25%,#2a2a3a 0% 50%) 50%/10px 10px;width:100%;height:100%}.bg-option.custom{padding:0;overflow:hidden}.bg-option.custom input{cursor:pointer;border:none;width:100%;height:100%}.preview-section{justify-content:center;display:flex}.canvas-preview{border:1px solid var(--border-secondary);border-radius:var(--radius-sm);font-size:var(--font-base);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.modal-history{width:400px;max-height:500px}.history-empty{color:var(--text-placeholder);flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.history-empty p{margin-top:12px}.history-timeline{flex-direction:column;gap:8px;display:flex}.history-item{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);text-align:left;align-items:center;gap:12px;width:100%;padding:10px;display:flex}.history-item:hover{background:var(--bg-elevated);border-color:var(--border-light)}.history-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.history-item.current{background:var(--accent-bg-subtle);border-color:var(--accent)}.history-thumbnail{background:var(--bg-secondary);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.history-thumbnail img{object-fit:cover;width:100%;height:100%}.history-placeholder{color:var(--text-placeholder)}.history-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.history-label{font-size:var(--font-md);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.history-current-badge{font-size:var(--font-xs);color:var(--accent);border-radius:var(--radius-sm);background:#6366f133;width:fit-content;padding:2px 6px}.modal-export{width:600px}.modal-export-large{width:95vw;max-width:800px}.export-layout{grid-template-columns:200px 1fr;gap:24px;display:grid}@media (width<=600px){.export-layout{grid-template-columns:1fr}}.export-preview{background:var(--bg-input);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:12px;padding:12px;display:flex;position:relative}.export-preview img{border-radius:var(--radius-sm);max-width:100%;max-height:150px;box-shadow:var(--shadow-sm)}.export-preview-info{font-size:var(--font-sm);color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;display:flex}.export-preview-loading{background:var(--bg-input);color:var(--text-placeholder);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.export-preview-loading .spinning{animation:1s linear infinite spin}.export-preview-warning{background:var(--warning-bg);border-radius:var(--radius-sm);color:var(--warning);font-size:var(--font-sm);align-items:center;gap:4px;margin-top:8px;padding:4px 8px;display:flex}.export-options{flex-direction:column;gap:16px;display:flex}.export-group{flex-direction:column;gap:8px;display:flex}.export-group>label{font-size:var(--font-base);color:var(--text-muted);align-items:center;gap:6px;font-weight:500;display:flex}.label-warning{color:var(--warning)}.label-dim{color:var(--text-placeholder);font-size:var(--font-sm)}.export-group input[type=text],.export-group select{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-white);font-size:var(--font-md);padding:8px 12px}.export-group input[type=text]:focus,.export-group select:focus{border-color:var(--accent);outline:none}.export-group input[type=text]:focus-visible,.export-group select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.export-group input[type=range]{background:var(--border-primary);appearance:none;cursor:pointer;border-radius:3px;width:100%;height:6px}.export-group input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.export-group input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px}.export-group input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px}.export-divider{background:var(--border-primary);height:1px;margin:16px 0}.filename-input-wrapper{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);align-items:center;display:flex;overflow:hidden}.filename-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.filename-input-wrapper input{color:var(--text-white);background:0 0;border:none;flex:1;padding:8px 12px}.filename-input-wrapper input:focus{outline:none}.filename-extension{background:var(--bg-primary);color:var(--text-placeholder);font-size:var(--font-md);padding:8px 12px}.input-hint{font-size:var(--font-sm);color:var(--text-placeholder);margin-top:4px;display:block}.input-hint.warning{color:var(--warning)}.format-buttons{gap:8px;display:flex}.format-btn{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:var(--font-base);transition:all var(--transition-normal);flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-weight:500;display:flex}.format-btn:hover{background:var(--bg-elevated);border-color:var(--border-light)}.format-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.format-btn.active{background:var(--accent-bg);border-color:var(--accent);color:var(--text-white)}.marketplace-presets-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px;display:grid}@media (width<=768px){.marketplace-presets-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=480px){.marketplace-presets-grid{grid-template-columns:repeat(2,1fr)}}.quality-presets,.scale-presets{gap:6px;display:flex}.quality-presets button,.scale-presets button{background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:var(--font-sm);transition:all var(--transition-normal);flex:1;padding:6px}.quality-presets button:hover,.scale-presets button:hover{background:var(--bg-elevated);color:var(--text-white)}.quality-presets button:focus-visible,.scale-presets button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.checkbox-label{cursor:pointer;font-size:var(--font-md);align-items:center;gap:8px;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.checkbox-label input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.watermark-options{gap:8px;margin-top:8px;display:flex}.watermark-options input{flex:1}.watermark-options select{width:auto}.export-info{font-size:var(--font-base);color:var(--text-muted);align-items:center;gap:6px;margin-right:auto;display:flex}.export-error{background:var(--error-bg-subtle);border:1px solid var(--error-glow);border-radius:var(--radius-lg);color:var(--error);font-size:var(--font-md);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;display:flex}.export-preset-badge{background:var(--accent-bg);border-radius:var(--radius-xl);color:var(--accent);font-size:var(--font-sm);align-items:center;gap:4px;margin-left:8px;padding:2px 8px;display:inline-flex}@media (width<=520px){.modal-canvas-size{width:95vw}.presets-grid{grid-template-columns:repeat(2,1fr)}.size-inputs{flex-direction:column;gap:16px}.swap-btn{align-self:center;transform:rotate(90deg)}}@media (width<=440px){.modal-small{width:95vw;max-width:none}.modal-history{width:95vw}}:root{--kids-primary:#ff6b6b;--kids-primary-light:#ff8e8e;--kids-primary-dark:#e55555;--kids-secondary:#4ecdc4;--kids-secondary-light:#6ed9d2;--kids-accent-yellow:#ffe66d;--kids-accent-purple:#a66cff;--kids-accent-pink:#ff6eb4;--kids-accent-green:#7ed957;--kids-accent-blue:#45b7d1;--kids-bg-light:#fff9f0;--kids-bg-card:#fff;--kids-bg-hover:#fff0e6;--kids-text-primary:#2d3436;--kids-text-secondary:#636e72;--kids-text-muted:#b2bec3;--kids-shadow-sm:0 2px 4px #00000014;--kids-shadow-md:0 4px 12px #0000001f;--kids-shadow-lg:0 8px 24px #00000029;--kids-shadow-glow:0 0 20px #ff6b6b4d;--kids-radius-sm:8px;--kids-radius-md:12px;--kids-radius-lg:16px;--kids-radius-xl:24px;--kids-space-xs:4px;--kids-space-sm:8px;--kids-space-md:12px;--kids-space-lg:16px;--kids-space-xl:24px;--kids-transition-fast:.15s ease;--kids-transition-normal:.25s ease;--kids-transition-bounce:.3s cubic-bezier(.68, -.55, .265, 1.55)}.kids-toolbar{background:var(--kids-bg-light);border-radius:var(--kids-radius-lg);padding:var(--kids-space-md);gap:var(--kids-space-md);box-shadow:var(--kids-shadow-md);flex-direction:column;min-width:200px;max-width:280px;font-family:Nunito,Segoe UI,sans-serif;display:flex;position:relative}.kids-toolbar--right{border-left:3px solid var(--kids-primary)}.kids-toolbar--left{border-right:3px solid var(--kids-primary)}.kids-toolbar--bottom{border-top:3px solid var(--kids-primary);flex-flow:wrap;max-width:none}.kids-toolbar.compact{min-width:60px;max-width:80px;padding:var(--kids-space-sm)}.kids-toolbar-header{align-items:center;gap:var(--kids-space-sm);padding-bottom:var(--kids-space-sm);border-bottom:2px dashed var(--kids-accent-yellow);display:flex}.kids-toolbar-header .header-icon{font-size:1.5rem}.kids-toolbar-header .header-title{color:var(--kids-text-primary);font-size:1.1rem;font-weight:700}.kids-toolbar-tools{gap:var(--kids-space-sm);flex-direction:column;display:flex}.kids-toolbar--bottom .kids-toolbar-tools{flex-direction:row}.kids-tool-button{align-items:center;gap:var(--kids-space-sm);padding:var(--kids-space-md) var(--kids-space-lg);background:var(--kids-bg-card);border-radius:var(--kids-radius-md);cursor:pointer;transition:all var(--kids-transition-normal);border:2px solid #0000;display:flex;position:relative;overflow:hidden}.kids-tool-button:before{content:"";opacity:0;transition:opacity var(--kids-transition-fast);background:linear-gradient(135deg,#0000 0%,#fff6 100%);position:absolute;inset:0}.kids-tool-button:hover{box-shadow:var(--kids-shadow-md);border-color:var(--kids-primary-light);transform:translateY(-2px)}.kids-tool-button:hover:before{opacity:1}.kids-tool-button:active{transform:translateY(0)}.kids-tool-button.active{background:linear-gradient(135deg, var(--kids-primary) 0%, var(--kids-primary-light) 100%);color:#fff;border-color:var(--kids-primary-dark);box-shadow:var(--kids-shadow-glow)}.kids-tool-button:focus-visible{outline:3px solid var(--kids-accent-blue);outline-offset:2px}.kids-tool-button .tool-emoji{font-size:1.4rem}.kids-tool-button .tool-icon{flex-shrink:0}.kids-tool-button .tool-label{font-size:.9rem;font-weight:600}.kids-tool-button .tool-badge{background:var(--kids-accent-green);border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;font-size:10px;animation:1.5s infinite pulse;display:flex;position:absolute;top:4px;right:4px}.kids-panel{left:calc(100% + var(--kids-space-md));background:var(--kids-bg-card);border-radius:var(--kids-radius-lg);min-width:300px;max-width:400px;max-height:80vh;box-shadow:var(--kids-shadow-lg);z-index:100;animation:slideIn var(--kids-transition-normal);position:absolute;top:0;overflow:hidden}.kids-toolbar--right .kids-panel{left:auto;right:calc(100% + var(--kids-space-md))}.sticker-picker,.template-picker,.brush-picker{flex-direction:column;height:100%;display:flex}.picker-header{padding:var(--kids-space-lg);background:linear-gradient(135deg, var(--kids-primary) 0%, var(--kids-accent-pink) 100%);color:#fff;justify-content:space-between;align-items:center;display:flex}.picker-title{align-items:center;gap:var(--kids-space-sm);margin:0;font-size:1.2rem;font-weight:700;display:flex}.picker-close{cursor:pointer;width:32px;height:32px;transition:background var(--kids-transition-fast);background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.picker-search{align-items:center;gap:var(--kids-space-sm);padding:var(--kids-space-md);background:var(--kids-bg-light);border-bottom:1px solid #eee;display:flex}.picker-search .search-icon{color:var(--kids-text-muted)}.picker-search .search-input{padding:var(--kids-space-sm);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.picker-search .search-input::placeholder{color:var(--kids-text-muted)}.picker-search .search-clear{padding:var(--kids-space-xs);cursor:pointer;color:var(--kids-text-muted);background:0 0;border:none;border-radius:50%}.picker-search .search-clear:hover{background:#0000000d}.picker-content{padding:var(--kids-space-md);flex:1;overflow-y:auto}.picker-footer{padding:var(--kids-space-md);background:var(--kids-bg-light);border-top:1px solid #eee}.footer-hint{color:var(--kids-text-secondary);align-items:center;gap:var(--kids-space-xs);font-size:.85rem;display:flex}.sticker-category{margin-bottom:var(--kids-space-md)}.category-header{align-items:center;gap:var(--kids-space-sm);width:100%;padding:var(--kids-space-sm) var(--kids-space-md);background:var(--kids-bg-light);border-radius:var(--kids-radius-sm);cursor:pointer;transition:background var(--kids-transition-fast);border:none;display:flex}.category-header:hover{background:var(--kids-bg-hover)}.category-icon{font-size:1.2rem}.category-label{text-align:left;color:var(--kids-text-primary);flex:1;font-weight:600}.category-count{color:var(--kids-text-muted);font-size:.85rem}.category-items{gap:var(--kids-space-sm);padding:var(--kids-space-md);border-radius:var(--kids-radius-sm);margin-top:var(--kids-space-sm);background:#fff;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));display:grid}.sticker-button{padding:var(--kids-space-xs);background:var(--kids-bg-light);border-radius:var(--kids-radius-sm);cursor:pointer;transition:all var(--kids-transition-bounce);border:2px solid #0000;justify-content:center;align-items:center;display:flex}.sticker-button:hover{border-color:var(--kids-primary);box-shadow:var(--kids-shadow-md);z-index:1;transform:scale(1.15)}.sticker-button:active{transform:scale(.95)}.sticker-button img{object-fit:contain;width:100%;height:100%}.search-results .results-info{color:var(--kids-text-secondary);margin-bottom:var(--kids-space-md);font-size:.85rem}.search-results .results-grid{gap:var(--kids-space-sm);grid-template-columns:repeat(auto-fill,minmax(48px,1fr));display:grid}.search-results .no-results{text-align:center;padding:var(--kids-space-xl);color:var(--kids-text-secondary)}.search-results .no-results-icon{margin-bottom:var(--kids-space-md);font-size:3rem;display:block}.template-picker .picker-info{padding:var(--kids-space-md);background:linear-gradient(135deg, var(--kids-accent-yellow) 0%, #fff3b0 100%);color:var(--kids-text-primary);font-size:.9rem}.template-picker .picker-info p{margin:0}.template-grid{gap:var(--kids-space-md);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));display:grid}.template-button{align-items:center;gap:var(--kids-space-xs);padding:var(--kids-space-sm);border-radius:var(--kids-radius-md);cursor:pointer;transition:all var(--kids-transition-normal);background:#fff;border:2px solid #eee;flex-direction:column;display:flex}.template-button:hover{border-color:var(--kids-primary);box-shadow:var(--kids-shadow-md);transform:translateY(-4px)}.template-button img{border-radius:var(--kids-radius-sm);width:100%;height:auto}.template-button .template-name{color:var(--kids-text-secondary);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;overflow:hidden}.mandala-generator{background:linear-gradient(135deg, var(--kids-accent-purple) 0%, #c9a0ff 100%);border-radius:var(--kids-radius-md);padding:var(--kids-space-md);margin-bottom:var(--kids-space-md);color:#fff}.mandala-generator .generator-header{align-items:center;gap:var(--kids-space-sm);margin-bottom:var(--kids-space-md);font-weight:700;display:flex}.mandala-generator .generator-controls{gap:var(--kids-space-md);flex-wrap:wrap;align-items:center;display:flex}.mandala-generator .control-group{align-items:center;gap:var(--kids-space-sm);display:flex}.mandala-generator .control-group label{font-size:.85rem}.mandala-generator .control-group input[type=range]{width:80px}.mandala-generator .control-group select{padding:var(--kids-space-xs) var(--kids-space-sm);border-radius:var(--kids-radius-sm);border:none}.mandala-generator .control-value{text-align:center;min-width:20px;font-weight:600}.mandala-generator .generate-btn{align-items:center;gap:var(--kids-space-xs);padding:var(--kids-space-sm) var(--kids-space-md);color:var(--kids-accent-purple);border-radius:var(--kids-radius-sm);cursor:pointer;transition:transform var(--kids-transition-fast);background:#fff;border:none;font-weight:600;display:flex}.mandala-generator .generate-btn:hover{transform:scale(1.05)}.mandala-generator .generator-preview{align-items:center;gap:var(--kids-space-md);margin-top:var(--kids-space-md);padding:var(--kids-space-md);border-radius:var(--kids-radius-md);background:#fff3;flex-direction:column;display:flex}.mandala-generator .generator-preview img{border-radius:var(--kids-radius-sm);background:#fff}.mandala-generator .use-btn{padding:var(--kids-space-sm) var(--kids-space-lg);background:var(--kids-accent-green);color:#fff;border-radius:var(--kids-radius-sm);cursor:pointer;transition:transform var(--kids-transition-fast);border:none;font-weight:600}.mandala-generator .use-btn:hover{transform:scale(1.05)}.brush-selection{gap:var(--kids-space-md);padding:var(--kids-space-md);grid-template-columns:repeat(2,1fr);display:grid}.brush-button{align-items:center;gap:var(--kids-space-xs);padding:var(--kids-space-md);background:var(--kids-bg-light);border-radius:var(--kids-radius-md);cursor:pointer;transition:all var(--kids-transition-normal);border:3px solid #0000;flex-direction:column;display:flex}.brush-button:hover{background:var(--kids-bg-hover);border-color:var(--kids-primary-light)}.brush-button.active{background:linear-gradient(135deg, var(--kids-primary) 0%, var(--kids-accent-pink) 100%);color:#fff;border-color:var(--kids-primary-dark)}.brush-button .brush-emoji{font-size:1.8rem}.brush-button .brush-icon{opacity:.8}.brush-button .brush-name{font-size:.85rem;font-weight:600}.active-brush-info{align-items:center;gap:var(--kids-space-sm);padding:var(--kids-space-md);background:var(--kids-accent-yellow);font-size:.9rem;display:flex}.active-brush-info .info-emoji{font-size:1.2rem}.brush-settings{padding:var(--kids-space-md)}.brush-settings .settings-header{color:var(--kids-text-secondary);margin-bottom:var(--kids-space-md);padding-bottom:var(--kids-space-sm);border-bottom:1px dashed #ddd;font-weight:600}.brush-controls{gap:var(--kids-space-lg);flex-direction:column;display:flex}.slider-control{gap:var(--kids-space-xs);flex-direction:column;display:flex}.slider-control .slider-label{color:var(--kids-text-secondary);justify-content:space-between;font-size:.85rem;display:flex}.slider-control .slider-value{color:var(--kids-primary);font-weight:600}.slider-control .slider-input{-webkit-appearance:none;background:linear-gradient(90deg, var(--kids-accent-blue), var(--kids-primary));border-radius:4px;outline:none;width:100%;height:8px}.slider-control .slider-input::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--kids-primary);cursor:pointer;width:20px;height:20px;box-shadow:var(--kids-shadow-sm);background:#fff;border-radius:50%}.slider-control .slider-input::-moz-range-thumb{border:3px solid var(--kids-primary);cursor:pointer;width:20px;height:20px;box-shadow:var(--kids-shadow-sm);background:#fff;border-radius:50%}.color-palette,.fill-palette{gap:var(--kids-space-sm);flex-direction:column;display:flex}.palette-label{color:var(--kids-text-secondary);font-size:.85rem}.palette-colors,.palette-grid{gap:var(--kids-space-xs);flex-wrap:wrap;display:flex}.color-swatch,.palette-swatch{cursor:pointer;width:28px;height:28px;transition:all var(--kids-transition-fast);border:2px solid #0000;border-radius:50%}.color-swatch:hover,.palette-swatch:hover{transform:scale(1.2)}.color-swatch.active,.palette-swatch.active{border-color:var(--kids-text-primary);box-shadow:var(--kids-shadow-md);transform:scale(1.15)}.neon-swatch{animation:2s ease-in-out infinite alternate neonGlow}@keyframes neonGlow{0%{filter:brightness()}to{filter:brightness(1.3)}}.stamp-shapes{gap:var(--kids-space-sm);flex-direction:column;display:flex}.shapes-label{color:var(--kids-text-secondary);font-size:.85rem}.shapes-grid{gap:var(--kids-space-xs);grid-template-columns:repeat(5,1fr);display:grid}.shape-button{padding:var(--kids-space-sm);background:var(--kids-bg-light);border-radius:var(--kids-radius-sm);cursor:pointer;transition:all var(--kids-transition-fast);border:2px solid #0000;flex-direction:column;align-items:center;display:flex}.shape-button:hover{background:var(--kids-bg-hover)}.shape-button.active{background:var(--kids-primary);color:#fff;border-color:var(--kids-primary-dark)}.shape-button .shape-emoji{font-size:1.2rem}.shape-button .shape-name{margin-top:2px;font-size:.7rem}.stamp-options{gap:var(--kids-space-sm);flex-direction:column;display:flex}.checkbox-label{align-items:center;gap:var(--kids-space-sm);cursor:pointer;font-size:.85rem;display:flex}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--kids-primary)}.no-brush-selected{text-align:center;padding:var(--kids-space-xl);color:var(--kids-text-secondary)}.brush-actions{padding:var(--kids-space-md);border-top:1px solid #eee}.deactivate-btn{width:100%;padding:var(--kids-space-md);background:var(--kids-text-muted);color:#fff;border-radius:var(--kids-radius-md);cursor:pointer;transition:background var(--kids-transition-fast);border:none;font-weight:600}.deactivate-btn:hover{background:var(--kids-text-secondary)}.fill-panel{padding:var(--kids-space-md)}.fill-panel .panel-header{margin-bottom:var(--kids-space-md);justify-content:space-between;align-items:center;display:flex}.fill-panel .panel-header h3{margin:0;font-size:1.1rem}.fill-panel .panel-close{cursor:pointer;padding:var(--kids-space-xs);background:0 0;border:none;border-radius:50%}.fill-panel .panel-close:hover{background:#0000000d}.fill-panel .fill-info{padding:var(--kids-space-md);background:var(--kids-accent-yellow);border-radius:var(--kids-radius-sm);margin:var(--kids-space-md) 0;font-size:.9rem}.fill-panel .fill-info p{margin:0}.active-tool-indicator{align-items:center;gap:var(--kids-space-sm);padding:var(--kids-space-sm) var(--kids-space-md);background:var(--kids-accent-green);color:#fff;border-radius:var(--kids-radius-sm);font-size:.85rem;font-weight:600;display:flex}.active-tool-indicator .indicator-dot{background:#fff;border-radius:50%;width:8px;height:8px;animation:1s infinite pulse}.picker-content::-webkit-scrollbar{width:8px}.picker-content::-webkit-scrollbar-track{background:var(--kids-bg-light);border-radius:4px}.picker-content::-webkit-scrollbar-thumb{background:var(--kids-primary-light);border-radius:4px}.picker-content::-webkit-scrollbar-thumb:hover{background:var(--kids-primary)}@media (width<=768px){.kids-panel{width:90vw;max-width:400px;max-height:80vh;position:fixed;transform:translate(-50%,-50%);top:50%!important;left:50%!important;right:auto!important}.kids-toolbar{max-width:100%}.category-items{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.brush-selection{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){.kids-tool-button,.sticker-button,.template-button,.brush-button{border-width:3px}.kids-tool-button.active,.brush-button.active{border-color:#000}}.picker-content--scrollable{padding:var(--kids-space-md);scroll-behavior:smooth;max-height:50vh;padding-bottom:var(--kids-space-xl);flex:1;overflow-y:auto}.picker-content--scrollable::-webkit-scrollbar{width:10px}.picker-content--scrollable::-webkit-scrollbar-track{background:var(--kids-bg-light,#fff9f0);border-radius:10px;margin:4px}.picker-content--scrollable::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--kids-primary,#ff6b6b) 0%, var(--kids-accent-pink,#ff6eb4) 100%);border:2px solid var(--kids-bg-light,#fff9f0);border-radius:10px;min-height:40px}.picker-content--scrollable::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--kids-primary-dark,#e55555) 0%, var(--kids-primary,#ff6b6b) 100%)}.picker-content--scrollable{scrollbar-width:thin;scrollbar-color:var(--kids-primary,#ff6b6b) var(--kids-bg-light,#fff9f0)}.category-items{transform-origin:top;animation:.25s ease-out accordionOpen}@keyframes accordionOpen{0%{opacity:0;max-height:0;transform:scaleY(.95)}to{opacity:1;max-height:500px;transform:scaleY(1)}}.category-header{transition:background-color var(--kids-transition-fast,.15s) ease, transform var(--kids-transition-fast,.15s) ease}.category-header:active{transform:scale(.98)}.category-header svg:last-child{transition:transform .2s}.category-header[aria-expanded=true] svg:last-child{transform:rotate(0)}.category-header[aria-expanded=false] svg:last-child{transform:rotate(-90deg)}.picker-content--scrollable:after{content:"";background:linear-gradient(to top, var(--kids-bg-card,white) 0%, transparent 100%);pointer-events:none;z-index:1;height:30px;position:sticky;bottom:0;left:0;right:0}.picker-content--scrollable:not(:has(+*)):after{display:none}@media (height<=700px){.picker-content--scrollable{max-height:40vh}}@media (height<=500px){.picker-content--scrollable{max-height:30vh}}@media (pointer:coarse){.picker-content--scrollable::-webkit-scrollbar{width:14px}.picker-content--scrollable::-webkit-scrollbar-thumb{min-height:50px}}:root{--bg-primary:#0f0f1a;--bg-secondary:#1a1a2e;--bg-tertiary:#252538;--bg-hover:#303048;--bg-active:#252545;--bg-input:#12121f;--bg-elevated:#1e1e32;--bg-overlay:#000000bf;--bg-overlay-heavy:#0f0f1aeb;--border-primary:#2d2d44;--border-secondary:#3f3f5a;--border-light:#4a4a6a;--border-hover:#5a5a7a;--accent:#6366f1;--accent-light:#818cf8;--accent-dark:#4f46e5;--accent-hover:#7c7ff7;--accent-glow:#6366f14d;--accent-glow-strong:#6366f166;--accent-bg:#6366f126;--accent-bg-subtle:#6366f11a;--accent-bg-hover:#6366f10d;--accent-secondary:#8b5cf6;--accent-secondary-light:#a855f7;--accent-secondary-hover:#9d7afa;--accent-secondary-bg:#8b5cf626;--text-white:#fff;--text-primary:#e0e0e8;--text-secondary:#c0c0d0;--text-muted:#8888a0;--text-disabled:#5a5a70;--text-placeholder:#666;--text-icon:#6b6b80;--success:#10b981;--success-light:#34d399;--success-dark:#059669;--success-glow:#10b9814d;--success-glow-strong:#10b98166;--warning:#f59e0b;--warning-light:#fbbf24;--warning-glow:#fbbf244d;--warning-bg:#f59e0b1a;--error:#ef4444;--error-light:#f87171;--error-glow:#ef44444d;--error-bg:#ef444426;--error-bg-subtle:#ef44441a;--info:#3b82f6;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-mono:"SF Mono", "Monaco", "Consolas", monospace;--font-xs:10px;--font-sm:11px;--font-base:12px;--font-md:13px;--font-lg:14px;--font-xl:16px;--font-2xl:18px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #0006;--shadow-xl:0 20px 60px #00000080;--shadow-canvas:0 8px 32px #00000080;--transition-fast:.1s ease;--transition-normal:.15s ease;--transition-slow:.2s ease;--transition-slower:.3s ease;--gradient-accent:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);--gradient-accent-hover:linear-gradient(135deg, var(--accent-hover) 0%, var(--accent) 100%);--gradient-accent-purple:linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);--gradient-success:linear-gradient(135deg, var(--success) 0%, var(--success-dark) 100%);--gradient-success-hover:linear-gradient(135deg, var(--success-light) 0%, var(--success) 100%);--gradient-loading:linear-gradient(90deg, var(--accent) 0%, var(--accent-secondary) 50%, var(--accent-secondary-light) 100%)}.photo-editor{background:var(--bg-primary);width:100%;height:100vh;color:var(--text-primary);font-family:var(--font-family);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.photo-editor *,.photo-editor :before,.photo-editor :after{box-sizing:border-box}.editor-main{flex:1;display:flex;overflow:hidden}.loading-overlay{background:var(--bg-overlay-heavy);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;animation:fadeIn var(--transition-slow);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-spinner{width:80px;height:80px;position:relative}.spinner-ring{border:3px solid #0000;border-radius:50%;width:100%;height:100%;animation:1.5s linear infinite spinnerRotate;position:absolute}.spinner-ring:first-child{border-top-color:var(--accent);animation-duration:1.2s}.spinner-ring:nth-child(2){border-right-color:var(--accent-secondary);width:70%;height:70%;animation-duration:1.8s;animation-direction:reverse;top:15%;left:15%}.spinner-ring:nth-child(3){border-bottom-color:var(--accent-secondary-light);width:40%;height:40%;animation-duration:1s;top:30%;left:30%}@keyframes spinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{flex-direction:column;align-items:center;gap:12px;margin-top:24px;display:flex}.loading-text span{color:var(--text-secondary);letter-spacing:.3px;font-size:15px;font-weight:500}.loading-progress{background:var(--bg-tertiary);border-radius:var(--radius-xs);width:200px;height:4px;overflow:hidden}.loading-progress-bar{background:var(--gradient-loading);border-radius:var(--radius-xs);height:100%;transition:width var(--transition-slower)}.loading-percent{font-size:var(--font-md);color:var(--text-muted);font-variant-numeric:tabular-nums}.canvas-container{background:var(--bg-input);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ruler{background:var(--bg-elevated);z-index:10;position:absolute}.ruler-horizontal{height:20px;top:0;left:20px;right:0}.ruler-vertical{width:20px;top:20px;bottom:0;left:0}.ruler-corner{background:var(--bg-elevated);border-right:1px solid var(--border-secondary);border-bottom:1px solid var(--border-secondary);z-index:11;width:20px;height:20px;position:absolute;top:0;left:0}.canvas-wrapper{transition:transform var(--transition-fast);box-shadow:var(--shadow-canvas);position:relative}.canvas-wrapper.with-rulers{margin-top:20px;margin-left:20px}.canvas-checkerboard{pointer-events:none;z-index:0;background-image:linear-gradient(45deg,#2a2a3a 25%,#0000 25%),linear-gradient(-45deg,#2a2a3a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#2a2a3a 75%),linear-gradient(-45deg,#0000 75%,#2a2a3a 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;position:absolute;top:0;left:0}.canvas-wrapper canvas{z-index:1;position:relative}.mode-overlay{pointer-events:none;z-index:100;position:absolute;inset:0}.mode-info{border:1px solid var(--border-secondary);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-lg);pointer-events:all;background:#1a1a2ef2;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:90%;padding:14px 20px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.mode-info span{font-size:var(--font-md);color:var(--text-secondary);font-weight:500}.mode-info .mode-title{color:var(--text-primary);font-weight:600;font-size:var(--font-lg)}.mode-info .mode-hint{font-size:var(--font-base);color:var(--text-muted);background:var(--accent-bg);border-radius:var(--radius-sm);border:1px solid var(--accent-glow);padding:4px 10px;font-style:italic}.mode-info label{font-size:var(--font-base);color:var(--text-secondary);align-items:center;gap:8px;display:flex}.mode-info input[type=range]{background:var(--border-secondary);border-radius:var(--radius-xs);-webkit-appearance:none;cursor:pointer;width:100px;height:4px}.mode-info input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:14px;height:14px;transition:transform var(--transition-fast), background var(--transition-fast);border-radius:50%}.mode-info input[type=range]::-webkit-slider-thumb:hover{background:var(--accent-light);transform:scale(1.1)}.mode-info input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px}.mode-info select{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);height:32px;color:var(--text-secondary);font-size:var(--font-base);cursor:pointer;transition:border-color var(--transition-normal);padding:0 10px}.mode-info select:hover{border-color:var(--border-hover)}.mode-info select:focus{border-color:var(--accent);outline:none}.mode-info button{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);height:32px;color:var(--text-secondary);font-size:var(--font-md);cursor:pointer;transition:all var(--transition-normal);padding:0 16px;font-weight:500}.mode-info button:hover{background:var(--bg-hover);border-color:var(--border-hover)}.mode-info button:first-of-type{background:var(--gradient-success);border-color:var(--success-light);color:var(--text-white)}.mode-info button:first-of-type:hover{background:var(--gradient-success-hover);box-shadow:0 2px 8px var(--success-glow-strong)}.mode-info button:last-of-type{background:var(--bg-tertiary);border-color:var(--error);color:var(--error-light)}.mode-info button:last-of-type:hover{background:var(--error-bg)}.mode-info button.btn-secondary{background:var(--bg-elevated);border-color:var(--border-light);color:var(--text-secondary)}.mode-info button.btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-secondary)}.pipette-preview{border-radius:var(--radius-lg);font-family:var(--font-mono);font-size:var(--font-lg);color:var(--text-white);text-shadow:0 1px 2px #00000080;box-shadow:var(--shadow-md);z-index:100;padding:12px 20px;font-weight:600;position:absolute;top:20px;right:20px}.canvas-container.drag-over:after{content:"Upuść zdjęcie tutaj";background:var(--accent-bg-subtle);border:3px dashed var(--accent);font-size:var(--font-2xl);color:var(--accent);z-index:1000;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.drag-overlay{background:var(--accent-bg);border:3px dashed var(--accent);border-radius:var(--radius-lg);z-index:100;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drag-overlay-content{color:var(--accent);font-size:var(--font-2xl);flex-direction:column;align-items:center;gap:12px;font-weight:500;display:flex}.drag-icon{font-size:48px}.photo-editor ::-webkit-scrollbar{width:8px;height:8px}.photo-editor ::-webkit-scrollbar-track{background:var(--bg-secondary)}.photo-editor ::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:var(--radius-sm)}.photo-editor ::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}[title]{position:relative}.photo-editor.loading:after{content:"";z-index:9999;background:#0f0f1acc;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.photo-editor.loading:before{content:"";border:3px solid var(--border-secondary);border-top-color:var(--accent);z-index:10000;border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;animation:.8s linear infinite spin;position:absolute;top:50%;left:50%}@media (width<=1200px){.photo-editor{font-size:var(--font-md)}.mode-info{gap:10px;padding:12px 16px}.mode-info input[type=range]{width:80px}}@media (width<=900px){.editor-body{flex-direction:column}.canvas-container{order:1}.mode-info{font-size:var(--font-base);gap:8px;padding:10px 14px;bottom:10px}.mode-info button{height:28px;font-size:var(--font-base);padding:0 12px}}@media print{.photo-editor{display:none}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.photo-editor button:focus-visible,.photo-editor input:focus-visible,.photo-editor select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.photo-editor ::selection{background:var(--accent-glow);color:var(--text-white)}.photo-editor .canvas-container[data-tool=cloneStamp]{cursor:crosshair}.photo-editor .canvas-container[data-tool=blur]{cursor:cell}.photo-editor .canvas-container[data-tool=eraser]{cursor:none}.toolbar-project-actions{border-left:1px solid var(--border-secondary);gap:4px;margin-left:8px;padding-left:8px;display:flex}.toolbar-project-actions button{border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-base);cursor:pointer;transition:all var(--transition-normal);background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:6px 10px;display:flex}.toolbar-project-actions button:hover{background:var(--bg-tertiary);border-color:var(--border-secondary);color:var(--text-primary)}.toolbar-project-actions button svg{width:14px;height:14px}.autosave-indicator{border:1px solid var(--border-secondary);border-radius:var(--radius-lg);font-size:var(--font-base);color:var(--text-muted);z-index:100;animation:fadeIn var(--transition-slower);background:#1a1a2ee6;align-items:center;gap:8px;padding:8px 14px;display:flex;position:fixed;bottom:20px;right:20px}.autosave-indicator.saving{color:var(--warning-light);border-color:var(--warning-glow)}.autosave-indicator.saved{color:var(--success);border-color:var(--success-glow)}.autosave-indicator .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.autosave-indicator.saving .dot{animation:1s ease-in-out infinite pulse}.recovery-dialog{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-2xl);z-index:10001;width:90%;max-width:400px;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-slower);padding:24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.recovery-dialog h3{font-size:var(--font-2xl);color:var(--text-primary);margin:0 0 12px;font-weight:600}.recovery-dialog p{font-size:var(--font-lg);color:var(--text-secondary);margin:0 0 20px;line-height:1.5}.recovery-dialog .actions{justify-content:flex-end;gap:12px;display:flex}.recovery-dialog button{border-radius:var(--radius-lg);font-size:var(--font-lg);cursor:pointer;transition:all var(--transition-normal);padding:10px 20px;font-weight:500}.recovery-dialog button.primary{background:var(--gradient-accent-purple);color:var(--text-white);border:none}.recovery-dialog button.primary:hover{box-shadow:0 4px 12px var(--accent-glow-strong)}.recovery-dialog button.secondary{border:1px solid var(--border-secondary);color:var(--text-secondary);background:0 0}.recovery-dialog button.secondary:hover{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text-primary)}.drag-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-slow)}.drag-overlay--active{animation:fadeIn var(--transition-slow), dropzonePulse 2s ease-in-out infinite}@keyframes dropzonePulse{0%,to{border-color:var(--accent);background:var(--accent-bg-subtle)}50%{border-color:var(--accent-secondary);background:var(--accent-secondary-bg)}}.drag-overlay .drag-icon{animation:1s ease-in-out infinite dropzoneBounce}.drag-overlay .drag-icon svg{width:48px;height:48px;stroke:var(--accent);stroke-width:2px;fill:none}@keyframes dropzoneBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.drag-overlay__spinner{border:3px solid var(--border-secondary);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.drag-overlay__progress{background:var(--bg-tertiary);border-radius:3px;width:200px;height:6px;margin-top:8px;overflow:hidden}.drag-overlay__progress-bar{background:var(--gradient-loading);height:100%;transition:width var(--transition-slower);border-radius:3px;position:relative}.drag-overlay__progress-bar:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);animation:1.5s infinite shimmer;position:absolute;inset:0}.drag-overlay__text{color:var(--text-secondary);font-size:15px;font-weight:500}@media (prefers-reduced-motion:reduce){.drag-overlay,.drag-overlay--active,.drag-overlay .drag-icon,.drag-overlay__spinner,.drag-overlay__progress-bar:after{animation:none}.drag-overlay__spinner{animation:2s linear infinite spin}}.canvas-wrapper.is-panning,.canvas-wrapper.is-panning *{cursor:grabbing!important}.floating-toolbar{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#1e1e28f2;border:1px solid #6366f14d;border-radius:12px;min-width:320px;max-width:600px;padding:12px 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:.2s ease-out floatingToolbarSlideDown;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006,inset 0 0 0 1px #ffffff0d}@keyframes floatingToolbarSlideDown{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toolbar-header{border-bottom:1px solid #ffffff1a;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;display:flex}.toolbar-icon{color:#6366f1;flex-shrink:0}.toolbar-title{color:#fff;font-size:14px;font-weight:600}.operations-count,.dimensions-badge,.status-badge{color:#a5b4fc;background:#6366f133;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:500}.processing-indicator{margin-left:8px;animation:1s linear infinite spin;display:inline-block}.operations-info{border-top:1px solid #ffffff1a;justify-content:center;align-items:center;margin-top:4px;padding:6px 0;display:flex}.operations-info .operations-count{color:#9ca3af;background:#ffffff0d;margin-left:0}.status-badge.success{color:#86efac;background:#22c55e33}.status-badge.warning{color:#fcd34d;background:#fbbf2433}.status-badge.error{color:#fca5a5;background:#ef444433}.toolbar-controls{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.slider-control{align-items:center;gap:8px;display:flex}.slider-icon{color:#9ca3af;flex-shrink:0}.slider-label{color:#9ca3af;flex-shrink:0;min-width:60px;font-size:12px}.slider-input{appearance:none;cursor:pointer;background:#ffffff1a;border-radius:2px;outline:none;flex:1;height:4px}.slider-input::-webkit-slider-runnable-track{background:linear-gradient(to right, #6366f1 0%, #6366f1 var(--slider-progress,50%), #ffffff1a var(--slider-progress,50%), #ffffff1a 100%);border-radius:2px;height:4px}.slider-input::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#6366f1;border-radius:50%;width:14px;height:14px;margin-top:-5px;transition:transform .1s,box-shadow .1s;box-shadow:0 2px 6px #6366f166}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 2px 8px #6366f199}.slider-input::-moz-range-track{background:#ffffff1a;border-radius:2px;height:4px}.slider-input::-moz-range-thumb{cursor:pointer;background:#6366f1;border:none;border-radius:50%;width:14px;height:14px;transition:transform .1s}.slider-input::-moz-range-thumb:hover{transform:scale(1.2)}.slider-value{color:#fff;text-align:right;background:#ffffff0d;border-radius:4px;min-width:48px;padding:2px 6px;font-family:SF Mono,Consolas,monospace;font-size:12px}.checkbox-control{color:#9ca3af;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;font-size:12px;display:flex}.checkbox-control:hover{color:#d1d5db}.checkbox-control input[type=checkbox]{accent-color:#6366f1;cursor:pointer;width:16px;height:16px}.preset-dropdown{flex:1;position:relative}.preset-dropdown-trigger{color:#fff;cursor:pointer;text-align:left;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.preset-dropdown-trigger:hover{background:#ffffff26;border-color:#6366f1}.preset-dropdown-trigger:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 2px #6366f133}.preset-icon{flex-shrink:0;font-size:16px}.preset-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chevron{color:#9ca3af;flex-shrink:0;transition:transform .2s}.chevron.open{transform:rotate(180deg)}.preset-dropdown-backdrop{z-index:999;position:fixed;inset:0}.preset-dropdown-menu{z-index:1001;background:#1e1e28fa;border:1px solid #6366f14d;border-radius:8px;max-height:400px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.preset-dropdown-menu::-webkit-scrollbar{width:6px}.preset-dropdown-menu::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.preset-dropdown-menu::-webkit-scrollbar-thumb{background:#6366f180;border-radius:3px}.preset-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#6366f1b3}.preset-group{border-bottom:1px solid #ffffff0d;padding:4px 0}.preset-group:last-child{border-bottom:none}.preset-group-label{text-transform:uppercase;color:#6b7280;letter-spacing:.5px;padding:6px 12px;font-size:10px;font-weight:600}.preset-option{color:#d1d5db;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:12px;transition:background .1s;display:flex}.preset-option:hover{background:#6366f126}.preset-option.active{color:#a5b4fc;background:#6366f140}.preset-option-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px}.preset-option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.preset-option-desc{color:#6b7280;flex-shrink:0;font-size:10px}.toggle-controls{gap:4px;display:flex}.btn-icon{color:#9ca3af;cursor:pointer;background:#ffffff1a;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.btn-icon:hover{color:#fff;background:#ffffff26}.btn-icon:focus{border-color:#6366f1;outline:none}.btn-icon.active{color:#a5b4fc;background:#6366f14d;border-color:#6366f1}.quick-actions{gap:8px;display:flex}.preset-section{align-items:center;gap:8px;display:flex}.custom-ratio-input{background:#ffffff0d;border-radius:6px;align-items:center;gap:8px;padding:8px;display:flex}.custom-ratio-input input{color:#fff;text-align:center;background:#ffffff1a;border:1px solid #fff3;border-radius:4px;width:50px;padding:4px 8px;font-size:12px}.custom-ratio-input input:focus{border-color:#6366f1;outline:none}.custom-ratio-input input::placeholder{color:#6b7280}.custom-ratio-input span{color:#6b7280;font-weight:600}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-actions-main{gap:8px;margin-left:auto;display:flex}.btn-primary,.btn-secondary{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);box-shadow:0 2px 8px #6366f14d}.btn-primary:hover{background:linear-gradient(135deg,#4f46e5 0%,#4338ca 100%);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-primary:active{transform:translateY(0)}.btn-primary:focus{outline:none;box-shadow:0 0 0 2px #6366f166}.btn-secondary{color:#d1d5db;background:#ffffff1a;border:1px solid #fff3}.btn-secondary:hover{color:#fff;background:#ffffff26}.btn-secondary:focus{border-color:#6366f1;outline:none}.btn-secondary.btn-danger{color:#f87171;border-color:#f871714d}.btn-secondary.btn-danger:hover{background:#f8717133;border-color:#f8717180}.btn-small{padding:4px 10px;font-size:11px}.toolbar-hint{color:#6b7280;border-top:1px solid #ffffff1a;align-items:center;gap:6px;margin-top:10px;padding-top:8px;font-size:11px;display:flex}.toolbar-hint svg{flex-shrink:0}.tooltip-wrapper{display:inline-flex;position:relative}.tooltip{color:#fff;white-space:nowrap;z-index:1002;pointer-events:none;background:#1f2937;border:1px solid #ffffff1a;border-radius:6px;padding:6px 10px;font-size:11px;animation:.15s ease-out tooltipFadeIn;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.tooltip:after{content:"";border:5px solid #0000;border-top-color:#1f2937;position:absolute;top:100%;left:50%;transform:translate(-50%)}.tooltip-shortcut{background:#ffffff1a;border-radius:3px;margin-left:8px;padding:2px 6px;font-family:SF Mono,Consolas,monospace;font-size:10px;display:inline-block}@media (width<=640px){.floating-toolbar{min-width:280px;max-width:calc(100vw - 24px);padding:10px 12px}.toolbar-header{flex-wrap:wrap}.operations-count,.dimensions-badge{width:100%;margin-top:4px;margin-left:0}.slider-label{min-width:50px;font-size:11px}.slider-value{min-width:40px}.preset-section{flex-direction:column;align-items:stretch}.toggle-controls{justify-content:center}.toolbar-actions{flex-direction:column;align-items:stretch}.toolbar-actions-main{width:100%;margin-left:0}.toolbar-actions-main .btn-primary,.toolbar-actions-main .btn-secondary{flex:1}}@media (width<=480px){.floating-toolbar{padding:8px 10px;top:8px}.toolbar-title{font-size:13px}.quick-actions,.custom-ratio-input{flex-wrap:wrap}}@media (prefers-contrast:high){.floating-toolbar{border-width:2px;border-color:#6366f1}.btn-primary{background:#4f46e5}.btn-secondary{border-width:2px}}@media (prefers-reduced-motion:reduce){.floating-toolbar,.tooltip{animation:none}.slider-input::-webkit-slider-thumb{transition:none}.btn-primary:hover{transform:none}}.canvas-scrollbar{border-radius:var(--radius-sm);z-index:50;opacity:.7;transition:opacity var(--transition-fast), background var(--transition-fast);background:#ffffff0d;position:absolute}.canvas-scrollbar:hover{opacity:1;background:#ffffff14}.canvas-scrollbar-horizontal{height:10px;bottom:4px;left:4px;right:18px}.canvas-scrollbar-vertical{width:10px;top:4px;bottom:18px;right:4px}.canvas-container:has(.ruler) .canvas-scrollbar-horizontal{left:24px}.canvas-container:has(.ruler) .canvas-scrollbar-vertical{top:24px}.canvas-scrollbar-thumb{background:var(--accent);border-radius:var(--radius-sm);cursor:grab;transition:background var(--transition-fast), box-shadow var(--transition-fast);opacity:.8;position:absolute}.canvas-scrollbar-thumb:hover{background:var(--accent-light);opacity:1;box-shadow:0 0 8px var(--accent-glow)}.canvas-scrollbar-thumb:active{cursor:grabbing;background:var(--accent-hover);box-shadow:0 0 12px var(--accent-glow-strong)}.canvas-scrollbar-horizontal .canvas-scrollbar-thumb{min-width:30px;height:100%;top:0}.canvas-scrollbar-vertical .canvas-scrollbar-thumb{width:100%;min-height:30px;left:0}@media (prefers-reduced-motion:reduce){.canvas-scrollbar,.canvas-scrollbar-thumb{transition:none}}.image-picker-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.image-picker-modal{background:#1e293b;border-radius:12px;flex-direction:column;width:100%;max-width:1000px;max-height:90vh;display:flex;overflow:hidden}.picker-header{border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.picker-header h2{color:#f8fafc;margin:0;font-size:1.25rem}.picker-close{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;transition:background .2s;display:flex}.picker-close:hover{background:#475569}.picker-layout{flex:1;min-height:0;display:flex}.picker-sidebar{background:#0f172a;border-right:1px solid #334155;flex-direction:column;width:220px;display:flex}.picker-sidebar-header{color:#64748b;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #334155;padding:12px 16px;font-size:.75rem;font-weight:600}.picker-folder-tree{flex:1;padding:8px 0;overflow-y:auto}.picker-folder-item{-webkit-user-select:none;user-select:none}.picker-folder-row{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:6px;padding:8px 12px;transition:background .15s;display:flex}.picker-folder-row:hover{background:#6366f11a}.picker-folder-row.selected{background:#6366f133;border-left-color:#6366f1}.picker-folder-expand{color:#64748b;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:14px;height:14px;padding:0;font-size:.5rem;display:flex}.picker-folder-spacer{width:14px}.picker-folder-icon{font-size:.875rem}.picker-folder-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8rem;overflow:hidden}.picker-folder-count{color:#64748b;background:#334155;border-radius:8px;padding:1px 5px;font-size:.7rem}.picker-shared-badge{opacity:.7;font-size:.7rem}.picker-folder-divider{margin-top:8px;padding:10px 16px 6px}.picker-folder-divider span{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.picker-main{flex-direction:column;flex:1;min-width:0;display:flex}.picker-filters{border-bottom:1px solid #334155;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.picker-search{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;width:160px;padding:8px 12px;font-size:.875rem}.picker-search:focus{border-color:#6366f1;outline:none}.picker-filter-select{color:#e2e8f0;cursor:pointer;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:8px 12px;font-size:.875rem}.picker-filter-select:focus{border-color:#6366f1;outline:none}.picker-info{color:#64748b;margin-left:auto;font-size:.8rem}.picker-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-content:start;gap:12px;padding:16px;display:grid;overflow-y:auto}.picker-image{cursor:pointer;background:#0f172a;border:2px solid #0000;border-radius:6px;transition:transform .2s,box-shadow .2s;overflow:hidden}.picker-image:hover{transform:translateY(-2px);box-shadow:0 4px 15px #0000004d}.picker-image.selected{border-color:#6366f1}.picker-image.no-transparency{border-left:3px solid #f59e0b}.picker-image-thumb{aspect-ratio:1;position:relative;overflow:hidden}.picker-image-thumb img{object-fit:cover;width:100%;height:100%}.picker-image-thumb.checkered-bg{background-image:linear-gradient(45deg,#374151 25%,#0000 25%),linear-gradient(-45deg,#374151 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#374151 75%),linear-gradient(-45deg,#0000 75%,#374151 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.picker-checkbox{color:#fff;background:#00000080;border:2px solid #6366f1;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;font-weight:700;display:flex;position:absolute;top:6px;left:6px}.picker-checkbox.checked{background:#6366f1}.picker-transparency-warning{background:#f59e0be6;border-radius:4px;align-items:center;gap:4px;padding:4px 6px;display:flex;position:absolute;top:6px;right:6px}.warning-icon{font-size:.8rem}.warning-action{color:#fff;cursor:pointer;background:#0000004d;border:none;border-radius:3px;padding:2px 4px;font-size:.75rem;transition:background .2s}.warning-action:hover{background:#00000080}.picker-image-info{padding:8px}.picker-image-name{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.75rem;overflow:hidden}.picker-loading,.picker-empty{color:#64748b;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.picker-spinner{border:3px solid #334155;border-top-color:#6366f1;border-radius:50%;width:32px;height:32px;animation:.8s linear infinite picker-spin}@keyframes picker-spin{to{transform:rotate(360deg)}}.picker-empty span{opacity:.5;margin-bottom:8px;font-size:3rem}.picker-pagination{border-top:1px solid #334155;justify-content:center;align-items:center;gap:12px;padding:12px;display:flex}.picker-pagination button{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;width:32px;height:32px;transition:background .2s}.picker-pagination button:hover:not(:disabled){background:#475569}.picker-pagination button:disabled{opacity:.5;cursor:not-allowed}.picker-pagination span{color:#94a3b8;font-size:.8rem}.picker-footer{background:#0f172a;border-top:1px solid #334155;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.picker-selection-info{color:#94a3b8;font-size:.875rem}.picker-footer-actions{gap:12px;display:flex}.picker-btn-secondary{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:8px 16px;font-size:.875rem;transition:background .2s}.picker-btn-secondary:hover{background:#475569}.picker-btn-primary{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:6px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background .2s}.picker-btn-primary:hover:not(:disabled){background:#4f46e5}.picker-btn-primary:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.picker-layout{flex-direction:column}.picker-sidebar{border-bottom:1px solid #334155;border-right:none;width:100%;max-height:150px}.picker-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.stl-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.stl-modal{background:#1e1e2e;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;width:100%;max-width:520px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.stl-header{background:#ffffff05;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.stl-header h2{color:#fff;align-items:center;gap:10px;margin:0;font-size:16px;font-weight:600;display:flex}.stl-header h2 svg{color:#8b5cf6}.stl-close-btn{color:#888;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.stl-close-btn:hover:not(:disabled){color:#fff;background:#ffffff1a}.stl-close-btn:disabled{opacity:.5;cursor:not-allowed}.stl-content{flex-direction:column;gap:20px;padding:20px;display:flex;overflow-y:auto}.stl-preview-section{flex-direction:column;align-items:center;gap:8px;display:flex}.stl-preview{background-color:#1a1a2a;background-image:linear-gradient(45deg,#2a2a3a 25%,#0000 25%),linear-gradient(-45deg,#2a2a3a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#2a2a3a 75%),linear-gradient(-45deg,#0000 75%,#2a2a3a 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:200px;height:150px;display:flex;overflow:hidden}.stl-preview img{object-fit:contain;max-width:100%;max-height:100%}.stl-preview-placeholder{color:#666;flex-direction:column;align-items:center;gap:8px;display:flex}.stl-preview-placeholder svg{opacity:.5}.stl-preview-info{color:#888;font-size:12px}.stl-form{flex-direction:column;gap:16px;display:flex}.stl-field{flex-direction:column;gap:8px;display:flex}.stl-label{color:#ccc;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.stl-label svg{color:#888}.stl-select{color:#fff;cursor:pointer;background:#2a2a3a;border:1px solid #ffffff26;border-radius:8px;width:100%;padding:10px 12px;font-size:14px;transition:all .15s}.stl-select:hover:not(:disabled){border-color:#ffffff40}.stl-select:focus{border-color:#8b5cf6;outline:none;box-shadow:0 0 0 3px #8b5cf633}.stl-select:disabled{opacity:.6;cursor:not-allowed}.stl-input-wrapper{background:#2a2a3a;border:1px solid #ffffff26;border-radius:8px;align-items:center;transition:all .15s;display:flex;overflow:hidden}.stl-input-wrapper:focus-within{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf633}.stl-input-wrapper:has(.stl-input.error){border-color:#ef4444}.stl-input{color:#fff;background:0 0;border:none;flex:1;padding:10px 12px;font-size:14px}.stl-input:focus{outline:none}.stl-input:disabled{opacity:.6;cursor:not-allowed}.stl-input::placeholder{color:#666}.stl-input-suffix{color:#888;background:#ffffff0d;border-left:1px solid #ffffff1a;padding:10px 12px;font-family:monospace;font-size:14px}.stl-field-error{color:#ef4444;align-items:center;gap:6px;font-size:12px;display:flex}.stl-radio-group{flex-direction:column;gap:8px;display:flex}.stl-radio{cursor:pointer;color:#ccc;background:#2a2a3a;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:all .15s;display:flex}.stl-radio:hover{background:#32324a;border-color:#fff3}.stl-radio:has(input:checked){color:#fff;background:#8b5cf626;border-color:#8b5cf6}.stl-radio input{accent-color:#8b5cf6;margin:0}.stl-radio svg{color:#888}.stl-radio:has(input:checked) svg{color:#8b5cf6}.stl-radio-hint{color:#888;text-overflow:ellipsis;white-space:nowrap;max-width:150px;margin-left:auto;font-size:12px;overflow:hidden}.stl-format-group{gap:8px;display:flex}.stl-format-option{cursor:pointer;text-align:center;background:#2a2a3a;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px 8px;transition:all .15s;display:flex}.stl-format-option:hover{background:#32324a;border-color:#fff3}.stl-format-option.selected{background:#8b5cf626;border-color:#8b5cf6}.stl-format-option input{opacity:0;pointer-events:none;position:absolute}.stl-format-label{color:#fff;font-size:14px;font-weight:600}.stl-format-desc{color:#888;font-size:11px;line-height:1.3}.stl-format-option.selected .stl-format-desc{color:#a78bfa}.stl-slider-wrapper{flex-direction:column;gap:6px;display:flex}.stl-slider{appearance:none;cursor:pointer;background:#2a2a3a;border-radius:3px;width:100%;height:6px}.stl-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#8b5cf6;border-radius:50%;width:18px;height:18px;transition:transform .15s}.stl-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.stl-slider::-moz-range-thumb{cursor:pointer;background:#8b5cf6;border:none;border-radius:50%;width:18px;height:18px}.stl-slider:disabled{opacity:.6;cursor:not-allowed}.stl-slider-labels{color:#666;justify-content:space-between;font-size:11px;display:flex}.stl-loading-inline,.stl-error-inline{background:#2a2a3a;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.stl-loading-inline{color:#888}.stl-error-inline{color:#ef4444;background:#ef44441a}.stl-footer{background:#ffffff05;border-top:1px solid #ffffff1a;justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.stl-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.stl-btn:disabled{opacity:.6;cursor:not-allowed}.stl-btn-secondary{color:#ccc;background:#ffffff1a}.stl-btn-secondary:hover:not(:disabled){color:#fff;background:#ffffff26}.stl-btn-primary{color:#fff;background:#8b5cf6}.stl-btn-primary:hover:not(:disabled){background:#7c3aed}.stl-btn-primary:active:not(:disabled){transform:scale(.98)}@media (width<=480px){.stl-modal{border-radius:0;max-width:100%;max-height:100vh}.stl-format-group{flex-direction:column}.stl-preview{width:150px;height:112px}}.bgremover-page{color:#e2e8f0;background:#0f172a;min-height:100vh}.bgremover-header{background:#1e293b;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.bgremover-header .header-left{align-items:center;gap:12px;display:flex}.bgremover-header h1{color:#f8fafc;margin:0;font-size:1.5rem}.header-badge{color:#a5b4fc;background:#6366f133;border-radius:12px;padding:4px 10px;font-size:.75rem}.bgremover-header .back-btn{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:8px 16px;font-size:.875rem;transition:background .2s}.bgremover-header .back-btn:hover{background:#475569}.bgremover-content{max-width:1400px;margin:0 auto;padding:24px}.toast{z-index:9999;cursor:pointer;border-radius:8px;max-width:400px;padding:14px 20px;font-weight:500;animation:.3s slideIn;position:fixed;top:20px;right:20px}.bgremover-upload{text-align:center;cursor:pointer;background:#1e293b;border:2px dashed #475569;border-radius:12px;padding:60px 40px;transition:all .3s}.bgremover-upload:hover,.bgremover-upload.drag-over{background:#6366f11a;border-color:#6366f1}.upload-icon{margin-bottom:16px;font-size:4rem}.bgremover-upload h2{color:#f8fafc;margin:0 0 8px;font-size:1.25rem}.bgremover-upload p{color:#64748b;margin:0}.bgremover-processing{text-align:center;background:#1e293b;border-radius:12px;padding:60px 40px}.processing-spinner{border:4px solid #334155;border-top-color:#6366f1;border-radius:50%;width:60px;height:60px;margin:0 auto 24px;animation:.8s linear infinite spin}.bgremover-processing h3{color:#f8fafc;margin:0 0 8px;font-size:1.25rem}.processing-percent{color:#6366f1;margin:16px 0;font-size:2.5rem;font-weight:700}.progress-bar-large{background:#334155;border-radius:4px;width:100%;max-width:400px;height:8px;margin:0 auto;overflow:hidden}.progress-bar-large .progress-fill{background:linear-gradient(90deg,#6366f1,#8b5cf6);height:100%;transition:width .3s}.bgremover-workspace{background:#1e293b;border-radius:12px;overflow:hidden}.bgremover-toolbar{background:#0f172a;border-bottom:1px solid #334155;flex-wrap:wrap;gap:8px;padding:16px 20px;display:flex}.btn-tool{cursor:pointer;color:#e2e8f0;background:#334155;border:1px solid #475569;border-radius:6px;align-items:center;gap:6px;padding:10px 16px;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.btn-tool:hover{background:#475569}.btn-tool.active{color:#a5b4fc;background:#6366f133;border-color:#6366f1}.btn-tool:disabled{opacity:.5;cursor:not-allowed}.btn-save{color:#fff!important;background:#16a34a!important;border-color:#16a34a!important}.btn-save:hover:not(:disabled){background:#15803d!important}.btn-replace{color:#fff!important;background:#f59e0b!important;border-color:#f59e0b!important}.btn-replace:hover:not(:disabled){background:#d97706!important}.btn-download{color:#fff!important;background:#6366f1!important;border-color:#6366f1!important}.btn-download:hover{background:#4f46e5!important}.toolbar-separator{background:#334155;width:1px;margin:0 8px}.bgremover-main{gap:0;display:flex}.bgremover-preview-area{background:#0f172a;flex:1;justify-content:center;align-items:center;min-height:500px;padding:24px;display:flex}.bgremover-single-preview{max-width:100%;max-height:600px}.preview-image-container{border-radius:8px;overflow:hidden;box-shadow:0 4px 20px #0000004d}.preview-image-container.checkered-bg{background-color:#0000;background-image:linear-gradient(45deg,#374151 25%,#0000 25%),linear-gradient(-45deg,#374151 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#374151 75%),linear-gradient(-45deg,#0000 75%,#374151 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.preview-image-container img{object-fit:contain;max-width:100%;max-height:600px;display:block}.bgremover-compare{aspect-ratio:1;cursor:ew-resize;background:#1e293b;border-radius:8px;width:100%;max-width:800px;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000004d}.compare-layer{width:100%;height:100%;position:absolute;top:0;left:0}.compare-layer img{object-fit:contain;pointer-events:none;width:100%;height:100%}.compare-original{z-index:1;background:#1e293b}.compare-result{z-index:2;background-color:#1e293b;background-image:linear-gradient(45deg,#374151 25%,#0000 25%),linear-gradient(-45deg,#374151 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#374151 75%),linear-gradient(-45deg,#0000 75%,#374151 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.compare-label{color:#fff;z-index:10;pointer-events:none;background:#000c;border-radius:6px;padding:8px 16px;font-size:.8rem;font-weight:600;position:absolute;bottom:16px}.label-left{right:16px}.label-right{left:16px}.compare-slider{z-index:20;pointer-events:none;width:4px;position:absolute;top:0;bottom:0;transform:translate(-50%)}.compare-slider-line{background:#fff;width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 10px #00000080}.compare-slider-handle{color:#6366f1;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 15px #0006}.bgremover-bg-panel{background:#1e293b;border-left:1px solid #334155;width:300px;max-height:600px;padding:20px;overflow-y:auto}.bgremover-bg-panel h3{color:#f8fafc;margin:0 0 20px;font-size:1.125rem}.bg-section{margin-bottom:24px}.bg-section h4{color:#64748b;text-transform:uppercase;margin:0 0 12px;font-size:.75rem;font-weight:600}.bg-presets{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.bg-preset-btn{aspect-ratio:1;cursor:pointer;background:#334155;border:2px solid #475569;border-radius:6px;transition:all .2s;position:relative;overflow:hidden}.bg-preset-btn:hover{border-color:#6366f1;transform:scale(1.05)}.bg-preset-btn.active{border-color:#6366f1;box-shadow:0 0 0 2px #6366f166}.checkered-mini{background-color:#0000;background-image:linear-gradient(45deg,#475569 25%,#0000 25%),linear-gradient(-45deg,#475569 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#475569 75%),linear-gradient(-45deg,#0000 75%,#475569 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;position:absolute;inset:0}.color-picker-row{gap:8px;display:flex}.color-picker-input{cursor:pointer;background:#0f172a;border:1px solid #475569;border-radius:6px;width:48px;height:40px;padding:2px}.color-hex-input{color:#e2e8f0;background:#0f172a;border:1px solid #475569;border-radius:6px;flex:1;padding:10px 12px;font-family:monospace}.color-hex-input:focus{border-color:#6366f1;outline:none}.btn-upload-bg{cursor:pointer;color:#e2e8f0;background:#0f172a;border:2px dashed #475569;border-radius:6px;width:100%;padding:12px;transition:all .2s}.btn-upload-bg:hover{background:#6366f11a;border-color:#6366f1}.custom-bg-preview{border-radius:6px;margin-top:12px;overflow:hidden}.custom-bg-preview img{object-fit:cover;width:100%;height:80px}.fit-mode-options{gap:6px;margin-top:12px;display:flex}.fit-mode-btn{cursor:pointer;color:#e2e8f0;background:#334155;border:1px solid #475569;border-radius:6px;flex:1;padding:8px 4px;font-size:.75rem;transition:all .2s}.fit-mode-btn:hover{background:#475569}.fit-mode-btn.active{color:#fff;background:#6366f1;border-color:#6366f1}.bgremover-info{margin-top:24px}.info-card{background:#1e293b;border-left:4px solid #6366f1;border-radius:8px;padding:20px}.info-card h4{color:#f8fafc;margin:0 0 12px}.info-card ul{margin:0;padding-left:20px}.info-card li{color:#94a3b8;margin-bottom:8px}.info-card li strong{color:#a5b4fc}.modal-content{background:#1e293b;border-radius:12px;width:100%;max-width:450px;padding:24px}.modal-content h2{color:#f8fafc;margin:0 0 16px;font-size:1.25rem}.modal-content p{color:#94a3b8;margin:0 0 20px;line-height:1.6}.modal-actions{justify-content:flex-end;gap:12px;display:flex}.btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:10px 20px;font-weight:500;transition:background .2s}@media (width<=1024px){.bgremover-main{flex-direction:column}.bgremover-bg-panel{border-top:1px solid #334155;border-left:none;width:100%;max-height:none}}@media (width<=768px){.bgremover-header{text-align:center;flex-direction:column;gap:12px}.bgremover-content{padding:16px}.bgremover-upload{padding:40px 20px}.bgremover-toolbar{flex-direction:column}.btn-tool{justify-content:center;width:100%}.toolbar-separator{display:none}}.api-dashboard{max-width:1400px;margin:0 auto;padding:20px}.header{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.header h1{margin:0}.back-btn{color:#fff;cursor:pointer;background:#6c757d;border:none;border-radius:6px;padding:10px 20px;font-weight:600}.loading{text-align:center;color:#666;padding:50px;font-size:1.2em}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px;display:grid}.stat-card{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;padding:30px;box-shadow:0 4px 20px #667eea4d}.stat-icon{margin-bottom:15px;font-size:3em}.stat-value{margin-bottom:10px;font-size:2.5em;font-weight:700}.stat-label{opacity:.9;font-size:1em}.card{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 10px #0000001a}.card h2{margin:0 0 20px}.provider-table{border-collapse:collapse;width:100%}.provider-table th{text-align:left;background:#f8f9fa;border-bottom:2px solid #e0e0e0;padding:12px;font-weight:600}.provider-table td{border-bottom:1px solid #f0f0f0;padding:12px}.provider-table tbody tr:hover{background:#f8f9fa}.users-table{border-collapse:collapse;width:100%}.users-table th{text-align:left;-webkit-user-select:none;user-select:none;background:#f8f9fa;border-bottom:2px solid #e0e0e0;padding:12px;font-weight:600}.users-table th:hover{background:#e9ecef}.users-table td{border-bottom:1px solid #f0f0f0;padding:12px}.users-table tbody tr:hover{background:#f8f9fa}.dashboard-content h2{color:#333;margin-bottom:20px}.api-dashboard .stat-card,.api-dashboard .stat-value,.api-dashboard .stat-label,.api-dashboard .stat-icon{color:#fff!important}.audit-log-page{background:#f5f7fa;min-height:100vh}.audit-log-page .header{color:#fff;background:linear-gradient(135deg,#434343 0%,#000 100%);justify-content:space-between;align-items:center;padding:20px 30px;display:flex}.audit-log-page .header-left{align-items:baseline;gap:15px;display:flex}.audit-log-page .header h1{margin:0;font-size:28px}.audit-log-page .header-subtitle{opacity:.8;background:#ffffff26;border-radius:20px;padding:4px 12px;font-size:14px}.audit-log-page .header-actions{gap:10px;display:flex}.btn-header{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;padding:10px 18px;font-size:14px;transition:all .2s}.btn-header:hover{background:#fff3}.btn-header.btn-danger{background:#dc35454d;border-color:#dc354580}.btn-header.btn-danger:hover{background:#dc354580}.audit-log-page .toast{z-index:9999;border-radius:10px;padding:15px 25px;font-weight:500;animation:.3s slideIn;position:fixed;top:20px;right:20px}.audit-log-page .toast-success{color:#fff;background:#28a745}.audit-log-page .toast-error{color:#fff;background:#dc3545}.audit-content{max-width:1600px;margin:0 auto;padding:25px}.stats-panel{margin-bottom:25px;animation:.3s fadeIn}.stats-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.stat-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000d}.stat-card h4{color:#666;text-transform:uppercase;letter-spacing:.5px;margin:0 0 15px;font-size:14px}.stat-card ul{margin:0;padding:0;list-style:none}.stat-card li{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;display:flex}.stat-card li:last-child{border-bottom:none}.action-name,.user-name,.module-name{color:#333;font-weight:500}.action-count{color:#666;background:#e9ecef;border-radius:12px;padding:2px 10px;font-size:12px}.no-errors{color:#28a745;text-align:center;margin:0;padding:20px 0}.error-item{flex-wrap:wrap;gap:8px}.error-code{color:#dc3545;background:#ffebee;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.filters-panel{background:#fff;border-radius:12px;margin-bottom:20px;padding:20px;box-shadow:0 2px 10px #0000000d}.filters-row{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.filters-row select,.filters-row input{border:1px solid #ddd;border-radius:8px;min-width:150px;padding:10px 15px;font-size:14px}.filters-row select:focus,.filters-row input:focus{border-color:#667eea;outline:none}.btn-reset{cursor:pointer;background:#f8f9fa;border:1px solid #ddd;border-radius:8px;padding:10px 18px;font-size:14px;transition:all .2s}.btn-reset:hover{background:#e9ecef}.logs-table-wrapper{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #0000000d}.loading-state,.empty-state{text-align:center;color:#888;padding:60px 20px;font-size:16px}.logs-table{border-collapse:collapse;width:100%}.logs-table th{text-align:left;color:#666;text-transform:uppercase;letter-spacing:.5px;background:#f8f9fa;border-bottom:2px solid #eee;padding:15px;font-size:13px;font-weight:600}.logs-table td{vertical-align:middle;border-bottom:1px solid #f0f0f0;padding:12px 15px;font-size:14px}.logs-table tbody tr:hover{background:#fafafa}.logs-table tbody tr.expanded{background:#f8f9fa}.date-cell{color:#666;white-space:nowrap;font-size:13px}.user-cell .user-email{color:#333;font-weight:500}.action-badge{color:#fff;text-transform:uppercase;border-radius:12px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-block}.module-cell{color:#666}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.ip-cell{color:#888;font-family:monospace;font-size:12px}.btn-expand{cursor:pointer;background:#f0f0f0;border:none;border-radius:6px;width:28px;height:28px;font-size:10px;transition:all .2s}.btn-expand:hover{background:#e0e0e0}.details-row td{background:#f5f7fa;padding:0!important}.details-content{max-height:300px;padding:20px;overflow:auto}.details-content pre{white-space:pre-wrap;word-break:break-word;background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin:0;padding:15px;font-family:Monaco,Menlo,monospace;font-size:12px}.pagination{background:#fff;border-top:1px solid #eee;border-radius:0 0 12px 12px;justify-content:center;align-items:center;gap:20px;padding:25px;display:flex}.pagination button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;padding:10px 20px;transition:all .2s}@media (width<=1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.audit-log-page .header{text-align:center;flex-direction:column;gap:15px}.audit-log-page .header-actions{flex-wrap:wrap;justify-content:center}.audit-content{padding:15px}.stats-grid{grid-template-columns:1fr}.filters-row{flex-direction:column}.filters-row select,.filters-row input{width:100%}.logs-table-wrapper{overflow-x:auto}.logs-table{min-width:800px}}.image-library-page{color:#e2e8f0;background:#0f172a;min-height:100vh}.header{background:#1e293b;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.header-left h1{color:#f8fafc;margin:0;font-size:1.5rem}.header-subtitle{color:#94a3b8;font-size:.875rem}.back-btn{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:8px 16px;transition:background .2s}.back-btn:hover{background:#475569}.toast{z-index:1000;cursor:pointer;border-radius:8px;padding:12px 20px;font-weight:500;animation:.3s slideIn;position:fixed;top:20px;right:20px}.toast-error{color:#fff;background:#dc2626}.toast-success{color:#fff;background:#16a34a}.library-layout{height:calc(100vh - 73px);display:flex}.library-sidebar{background:#1e293b;border-right:1px solid #334155;flex-direction:column;width:280px;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:16px;display:flex}.sidebar-header h3{color:#f8fafc;margin:0;font-size:1rem}.btn-icon-small{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.875rem;transition:background .2s;display:flex}.btn-icon-small:hover{background:#475569}.folder-tree{flex:1;padding:8px 0;overflow-y:auto}.folder-row{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:8px;padding:8px 12px;transition:background .15s;display:flex}.folder-row:hover{background:#6366f11a}.folder-row.selected{background:#6366f133;border-left-color:#6366f1}.folder-row.drag-over{background:#22c55e33;border-left-color:#22c55e}.folder-row.shared{opacity:.9}.folder-expand-btn{color:#64748b;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.625rem;display:flex}.folder-expand-btn:hover{color:#94a3b8}.folder-expand-spacer{width:16px}.folder-icon{font-size:1rem}.folder-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.875rem;overflow:hidden}.folder-count{color:#64748b;background:#334155;border-radius:10px;padding:2px 6px;font-size:.75rem}.shared-badge{opacity:.7;font-size:.75rem}.folder-section-divider{align-items:center;margin-top:8px;padding:12px 16px 8px;display:flex}.folder-section-divider span{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem}.library-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.library-toolbar{background:#1e293b;border-bottom:1px solid #334155;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.toolbar-left{align-items:center;gap:12px;display:flex}.toolbar-left h2{color:#f8fafc;margin:0;font-size:1.25rem}.shared-info{color:#f59e0b;background:#f59e0b1a;border-radius:4px;padding:4px 8px;font-size:.75rem}.toolbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search-input,.filter-select{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:8px 12px;font-size:.875rem}.search-input{width:180px}.search-input:focus,.filter-select:focus{border-color:#6366f1;outline:none}.bulk-actions{background:#6366f11a;border-radius:6px;align-items:center;gap:8px;padding:4px 12px;display:flex}.selection-count{color:#a5b4fc;font-size:.875rem}.btn-small{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:4px;padding:6px 12px;font-size:.875rem;transition:background .2s}.btn-small:hover{background:#475569}.btn-small.active{background:#6366f1}.btn-small.btn-danger{background:#dc2626}.btn-small.btn-danger:hover{background:#b91c1c}.btn-primary{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:6px;padding:8px 16px;font-weight:500;transition:background .2s}.btn-primary:hover:not(:disabled){background:#4f46e5}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:8px 16px;font-weight:500;transition:background .2s}.btn-secondary:hover{background:#475569}.btn-danger{background:#dc2626!important}.btn-danger:hover{background:#b91c1c!important}.library-info-bar{color:#64748b;background:#0f172a;border-bottom:1px solid #1e293b;padding:8px 24px;font-size:.875rem}.images-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-content:start;gap:16px;padding:24px;display:grid;overflow-y:auto}.image-card{background:#1e293b;border-radius:8px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.image-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000004d}.image-card.selected{outline-offset:2px;outline:2px solid #6366f1}.image-card.no-transparency .image-thumbnail{border-left:3px solid #f59e0b}.image-card[draggable=true]{cursor:grab}.image-card[draggable=true]:active{cursor:grabbing}.image-thumbnail{aspect-ratio:1;cursor:pointer;position:relative;overflow:hidden}.image-thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .2s}.image-thumbnail:hover img{transform:scale(1.05)}.checkered-bg{background-image:linear-gradient(45deg,#374151 25%,#0000 25%),linear-gradient(-45deg,#374151 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#374151 75%),linear-gradient(-45deg,#0000 75%,#374151 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.source-badge,.transparency-warning,.owner-badge{background:#000000b3;border-radius:4px;padding:4px 6px;font-size:.875rem;position:absolute}.source-badge{top:8px;left:8px}.transparency-warning{background:#f59e0be6;top:8px;right:8px}.owner-badge{font-size:.75rem;bottom:8px;left:8px}.selection-checkbox{color:#fff;background:#00000080;border:2px solid #6366f1;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-weight:700;display:flex;position:absolute;top:8px;left:8px}.selection-checkbox.checked{background:#6366f1}.image-info{padding:12px}.image-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:.875rem;overflow:hidden}.image-meta{color:#64748b;font-size:.75rem}.image-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex;position:absolute;bottom:52px;right:8px}.image-card:hover .image-actions{opacity:1}.btn-icon{color:#e2e8f0;cursor:pointer;background:#000000b3;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.875rem;transition:background .2s;display:flex}.btn-icon:hover{background:#000000e6}.btn-icon.btn-danger:hover{background:#dc2626}.btn-icon.btn-remove-bg{background:#f59e0be6}.btn-icon.btn-remove-bg:hover{background:#f59e0b}.loading-state,.empty-state{color:#64748b;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px;display:flex}.empty-icon{opacity:.5;margin-bottom:16px;font-size:4rem}.pagination{background:#1e293b;border-top:1px solid #334155;justify-content:center;align-items:center;gap:16px;padding:16px;display:flex}.pagination button{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:8px 16px;transition:background .2s}.pagination button:hover:not(:disabled){background:#475569}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination-info{color:#94a3b8;font-size:.875rem}.context-menu{z-index:1000;background:#1e293b;border:1px solid #334155;border-radius:8px;min-width:180px;position:fixed;overflow:hidden;box-shadow:0 10px 40px #00000080}.context-menu button{color:#e2e8f0;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-size:.875rem;transition:background .15s;display:block}.context-menu button:hover{background:#6366f133}.context-menu button.danger{color:#f87171}.context-menu button.danger:hover{background:#dc262633}.context-menu-divider{background:#334155;height:1px;margin:4px 0}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-content{background:#1e293b;border-radius:12px;width:100%;max-width:500px;max-height:90vh;padding:24px;position:relative;overflow-y:auto}.modal-content h2{color:#f8fafc;margin:0 0 20px}.modal-close{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;display:flex;position:absolute;top:16px;right:16px}.modal-close:hover{background:#475569}.modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.preview-modal{flex-direction:column;max-width:90vw;max-height:90vh;padding:0;display:flex;overflow:hidden}.preview-modal img{object-fit:contain;background:#0f172a;max-width:100%;max-height:70vh}.preview-info{padding:16px 24px}.preview-info h3{color:#f8fafc;margin:0 0 8px}.preview-actions{gap:12px;display:flex}.folder-modal .form-group{margin-bottom:20px}.folder-modal label{color:#94a3b8;margin-bottom:8px;font-size:.875rem;display:block}.folder-modal input[type=text]{color:#e2e8f0;box-sizing:border-box;background:#0f172a;border:1px solid #334155;border-radius:6px;width:100%;padding:10px 12px;font-size:.875rem}.folder-modal input[type=text]:focus{border-color:#6366f1;outline:none}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;transition:transform .2s,border-color .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#fff;box-shadow:0 0 0 2px #6366f180}.delete-modal .delete-warning{background:#dc26261a;border:1px solid #dc26264d;border-radius:8px;margin-bottom:16px;padding:16px}.delete-modal pre{white-space:pre-wrap;color:#fca5a5;margin:0;font-family:inherit;font-size:.875rem}.share-modal .share-input-row{gap:8px;margin-bottom:12px;display:flex}.share-modal .share-input-row input{color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:6px;flex:1;padding:10px 12px;font-size:.875rem}.share-modal .share-input-row input:focus{border-color:#6366f1;outline:none}.share-modal .share-input-row button{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:6px;padding:10px 16px;transition:background .2s}.share-modal .share-input-row button:hover:not(:disabled){background:#4f46e5}.share-modal .share-input-row button:disabled{opacity:.5;cursor:not-allowed}.share-hint{color:#64748b;margin-bottom:16px;font-size:.75rem}.current-shares{border-top:1px solid #334155;padding-top:16px}.current-shares h4{color:#94a3b8;margin:0 0 12px;font-size:.875rem}.share-item{background:#0f172a;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 12px;display:flex}.share-item span{color:#e2e8f0;font-size:.875rem}.rename-modal input{color:#e2e8f0;box-sizing:border-box;background:#0f172a;border:1px solid #334155;border-radius:6px;width:100%;padding:10px 12px;font-size:.875rem}.rename-modal input:focus{border-color:#6366f1;outline:none}@media (width<=768px){.library-layout{flex-direction:column}.library-sidebar{border-bottom:1px solid #334155;border-right:none;width:100%;max-height:200px}.library-toolbar{flex-direction:column;align-items:stretch}.toolbar-right{justify-content:flex-start}.images-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.selected-images-pro{flex-direction:column;gap:16px;display:flex}.selection-summary{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border:1px solid #e2e8f0;border-radius:12px;gap:12px;padding:16px;display:flex}.summary-item{background:#fff;border:2px solid #e2e8f0;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:12px;transition:all .2s;display:flex;position:relative}.summary-item.ok{background:linear-gradient(135deg,#ecfdf5 0%,#d1fae5 100%);border-color:#10b981}.summary-item.warning{background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border-color:#f59e0b;animation:2s infinite pulseWarning}.summary-item.limit-reached{background:linear-gradient(135deg,#f5f3ff 0%,#ede9fe 100%);border-color:#8b5cf6}@keyframes pulseWarning{0%,to{box-shadow:0 0 #f59e0b00}50%{box-shadow:0 0 0 4px #f59e0b26}}.summary-icon{font-size:24px;line-height:1}.summary-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.summary-count{color:#1e293b;font-size:28px;font-weight:700;line-height:1}.summary-limit{color:#94a3b8;font-size:11px;font-weight:500}.summary-hint{color:#94a3b8;background:#94a3b81a;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:500}.summary-item.warning .summary-hint{color:#b45309;background:#f59e0b33}.selection-warnings{flex-direction:column;gap:8px;display:flex}.warning-item{color:#92400e;background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);border:1px solid #fcd34d;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:13px;font-weight:500;animation:.3s slideIn;display:flex}.level-group{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.level-group-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.level-group-header.master{color:#92400e;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%)}.level-group-header.level2{color:#1e40af;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%)}.level-group-header.level3{color:#5b21b6;background:linear-gradient(135deg,#ede9fe 0%,#ddd6fe 100%)}.level-group-count{background:#fff9;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px}.level-group-items{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.selected-image-card{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;transition:all .2s;overflow:hidden}.selected-image-card:hover{border-color:#94a3b8;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.selected-image-card.level-master{border-color:#fbbf24;box-shadow:0 0 0 2px #fbbf2433}.selected-image-card.level-level2{border-color:#3b82f6}.selected-image-card.level-level3{border-color:#8b5cf6}.card-thumbnail{aspect-ratio:1;cursor:pointer;background:#fff;position:relative;overflow:hidden}.card-thumbnail.checkered{background-image:linear-gradient(45deg,#f0f0f0 25%,#0000 25%),linear-gradient(-45deg,#f0f0f0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f0f0f0 75%),linear-gradient(-45deg,#0000 75%,#f0f0f0 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.card-thumbnail img{object-fit:contain;width:100%;height:100%;padding:8px;transition:transform .3s}.card-thumbnail:hover img{transform:scale(1.05)}.zoom-hint{opacity:0;background:#0009;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;transition:opacity .2s;display:flex;position:absolute;bottom:6px;right:6px}.card-thumbnail:hover .zoom-hint{opacity:1}.card-content{flex-direction:column;gap:8px;padding:10px;display:flex}.card-name{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.card-level-selector{gap:4px;display:flex}.level-btn{cursor:pointer;background:#fff;border:2px solid #e2e8f0;border-radius:6px;flex:1;justify-content:center;align-items:center;height:32px;font-size:14px;transition:all .2s;display:flex}.level-btn:hover{border-color:var(--level-color,#94a3b8);background:#f8fafc;transform:scale(1.05)}.level-btn.active{background:var(--level-bg,#e2e8f0);border-color:var(--level-color,#94a3b8);box-shadow:0 2px 8px #00000026}.level-btn.disabled{opacity:.4;cursor:not-allowed}.level-btn.disabled:hover{transform:none}.card-actions{gap:4px;display:flex}.action-btn{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;flex:1;justify-content:center;align-items:center;height:28px;font-size:12px;transition:all .2s;display:flex}.action-btn:hover{background:#f1f5f9;border-color:#94a3b8}.action-btn.mirror-btn.active{background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);border-color:#3b82f6}.action-btn.remove-btn:hover{color:#ef4444;background:#fef2f2;border-color:#ef4444}.portal-zoom-modal .zoom-modal{z-index:10000;background:#000000e6;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.portal-zoom-modal .zoom-content{background:#fff;border-radius:16px;flex-direction:column;max-width:90vw;max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) zoomIn;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.portal-zoom-modal .zoom-close{color:#fff;cursor:pointer;z-index:1;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.portal-zoom-modal .zoom-close:hover{background:#000c;transform:scale(1.1)rotate(90deg)}.portal-zoom-modal .zoom-content>img{object-fit:contain;background-image:linear-gradient(45deg,#f0f0f0 25%,#0000 25%),linear-gradient(-45deg,#f0f0f0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f0f0f0 75%),linear-gradient(-45deg,#0000 75%,#f0f0f0 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;max-width:80vw;max-height:70vh}.portal-zoom-modal .zoom-info{background:#f8fafc;border-top:1px solid #e2e8f0;padding:16px 20px}.portal-zoom-modal .zoom-info h4{color:#1e293b;margin:0 0 8px;font-size:14px;font-weight:600}.portal-zoom-modal .zoom-level-info{color:#64748b;align-items:center;gap:8px;font-size:13px;display:flex}.level-badge{border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600}.level-badge.master{color:#92400e;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%)}.level-badge.level2{color:#1e40af;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%)}.level-badge.level3{color:#5b21b6;background:linear-gradient(135deg,#ede9fe 0%,#ddd6fe 100%)}@media (width<=768px){.selection-summary{flex-direction:column}.level-group-items{grid-template-columns:repeat(2,1fr)}.card-level-selector{flex-wrap:wrap}.level-btn{min-width:calc(50% - 2px)}}@media (width<=480px){.level-group-items{grid-template-columns:1fr}}.collage-preview-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 2px #0000000d}.preview-header{background:#111827;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.preview-header-left{align-items:center;gap:10px;display:flex}.preview-header h2{color:#fff;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.preview-header h2:before{display:none}.preview-header h2 svg{opacity:.7}.auto-refresh-badge{color:#10b981;background:#10b9811f;border-radius:10px;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:600;display:flex}.btn-fullscreen{cursor:pointer;color:#fff9;background:#ffffff14;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.btn-fullscreen:hover{color:#fff;background:#ffffff26}.preview-content{background:#fafafa;border-radius:0 0 12px 12px;justify-content:center;align-items:center;min-height:300px;padding:20px;display:flex}.preview-generating{text-align:center;padding:40px 20px}.generating-animation{color:#6366f1;margin-bottom:20px}.generating-text{color:#1e293b;margin:0 0 6px;font-size:15px;font-weight:600}.generating-hint{color:#94a3b8;margin:0;font-size:13px}.preview-result{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.preview-image-wrapper{cursor:pointer;background:#fff;border-radius:8px;max-width:360px;max-height:360px;transition:all .2s;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000001a}.preview-image-wrapper:hover{transform:translateY(-2px);box-shadow:0 8px 30px #00000026}.preview-image-wrapper img{object-fit:contain;width:auto;max-width:360px;height:auto;max-height:360px;display:block}.preview-overlay{opacity:0;background:linear-gradient(#0000 60%,#00000080 100%);justify-content:center;align-items:flex-end;padding-bottom:14px;transition:opacity .2s;display:flex;position:absolute;inset:0}.preview-image-wrapper:hover .preview-overlay{opacity:1}.preview-overlay span{color:#fff;background:#6366f1d9;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;display:flex}.preview-info{text-align:center}.info-badge{border-radius:16px;align-items:center;gap:5px;margin-bottom:6px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.info-badge.success{color:#047857;background:#ecfdf5}.preview-info p{color:#94a3b8;margin:0;font-size:12px}.preview-placeholder{text-align:center;color:#d1d5db;padding:30px 20px}.preview-placeholder h4{color:#6b7280;margin:16px 0 6px;font-size:16px;font-weight:600}.preview-placeholder>p{color:#9ca3af;margin:0 0 20px;font-size:13px}.placeholder-steps{justify-content:center;gap:6px;display:flex}.step{color:#9ca3af;background:#fff;border:1px solid #e5e7eb;border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:flex}.step-num{color:#fff;background:#6366f1;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:flex}.portal-lightbox .preview-lightbox{z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000eb;justify-content:center;align-items:center;padding:24px;animation:.25s lbFade;display:flex;position:fixed;inset:0}@keyframes lbFade{0%{opacity:0}to{opacity:1}}.portal-lightbox .lightbox-content{background:#fff;border-radius:12px;flex-direction:column;max-width:95vw;max-height:95vh;animation:.25s cubic-bezier(.16,1,.3,1) lbZoom;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #0006}@keyframes lbZoom{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}.portal-lightbox .lightbox-close{color:#fff;cursor:pointer;z-index:1;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex;position:absolute;top:12px;right:12px}.portal-lightbox .lightbox-close:hover{background:#000c;transform:rotate(90deg)}.portal-lightbox .lightbox-content>img{object-fit:contain;max-width:90vw;max-height:80vh}.portal-lightbox .lightbox-info{text-align:center;background:#fafafa;border-top:1px solid #f3f4f6;justify-content:center;align-items:center;gap:16px;padding:14px 20px;display:flex}.portal-lightbox .lightbox-info p{color:#9ca3af;margin:0;font-size:13px}.btn-download-preview{color:#fff;background:#6366f1;border-radius:6px;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-download-preview:hover{background:#4f46e5}@media (width<=768px){.preview-image-wrapper,.preview-image-wrapper img{max-width:100%;max-height:280px}.placeholder-steps{flex-direction:column;align-items:center}.preview-content{min-height:240px;padding:16px}.step{justify-content:center;width:100%}}.collage-editor{background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);border:1px solid #334155;border-radius:16px;flex-direction:column;gap:16px;padding:20px;display:flex}.editor-toolbar{background:#1e293bcc;border:1px solid #334155;border-radius:12px;flex-wrap:wrap;gap:24px;padding:12px 16px;display:flex}.toolbar-section{flex-direction:column;gap:8px;display:flex}.toolbar-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.toolbar-buttons{gap:6px;display:flex}.toolbar-btn{color:#e2e8f0;cursor:pointer;background:#334155;border:1px solid #475569;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.toolbar-btn:hover:not(:disabled){background:#475569;border-color:#6366f1}.toolbar-btn.active{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border-color:#6366f1}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn.danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.toolbar-export{align-items:center;gap:12px;display:flex}.format-select{color:#e2e8f0;cursor:pointer;background:#334155;border:1px solid #475569;border-radius:8px;padding:8px 12px;font-size:12px}.quality-slider{color:#94a3b8;align-items:center;gap:8px;font-size:11px;display:flex}.quality-slider input[type=range]{appearance:none;cursor:pointer;background:#475569;border-radius:2px;width:80px;height:4px}.quality-slider input[type=range]::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#6366f1;border-radius:50%;width:14px;height:14px}.editor-canvas-container{flex-direction:column;align-items:center;gap:12px;display:flex}.editor-canvas-wrapper{cursor:crosshair;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px #6366f14d,0 25px 50px -12px #00000080}.editor-canvas-wrapper canvas{display:block}.editor-canvas-info{color:#64748b;align-items:center;gap:8px;font-size:11px;display:flex}.editor-layers{background:#1e293bcc;border:1px solid #334155;border-radius:12px;overflow:hidden}.layers-header{color:#e2e8f0;background:#1e293b;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;font-weight:600;display:flex}.layers-reset{cursor:pointer;background:#334155;border:none;border-radius:6px;width:28px;height:28px;font-size:12px;transition:all .2s}.layers-reset:hover{background:#475569}.layers-list{gap:8px;padding:12px;display:flex;overflow-x:auto}.layer-item{cursor:pointer;background:#1e293b;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:6px;min-width:80px;padding:8px;transition:all .2s;display:flex}.layer-item:hover{background:#334155;border-color:#475569}.layer-item.selected{background:#6366f11a;border-color:#6366f1}.layer-thumb{object-fit:contain;background-color:#0000;background-image:linear-gradient(45deg,#374151 25%,#0000 25%),linear-gradient(-45deg,#374151 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#374151 75%),linear-gradient(-45deg,#0000 75%,#374151 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:6px;width:50px;height:50px}.layer-info{flex-direction:column;align-items:center;gap:2px;display:flex}.layer-level{color:#94a3b8;text-transform:capitalize;font-size:10px;font-weight:600}.layer-name{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:70px;font-size:9px;overflow:hidden}.editor-actions{border-top:1px solid #334155;justify-content:flex-end;gap:12px;padding-top:8px;display:flex}.editor-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.editor-btn.primary{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);box-shadow:0 4px 14px #6366f166}.editor-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.editor-btn.secondary{color:#e2e8f0;background:#334155;border:1px solid #475569}.editor-btn.secondary:hover:not(:disabled){background:#475569}.editor-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}@media (width<=768px){.editor-toolbar{flex-direction:column;gap:12px}.toolbar-section{width:100%}.toolbar-buttons{flex-wrap:wrap}.editor-canvas-wrapper{max-width:100%;overflow-x:auto}.layers-list{justify-content:flex-start}.editor-actions{flex-direction:column}.editor-btn{justify-content:center;width:100%}}.exporting{animation:1s ease-in-out infinite pulse}.collage-generator-page{--primary:#6366f1;--primary-dark:#4f46e5;--primary-light:#818cf8;--secondary:#ec4899;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;background:#f5f6fa;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.spin{animation:1s linear infinite spin}.collage-generator-page .header{background:var(--gray-900);color:#fff;z-index:100;justify-content:space-between;align-items:center;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.collage-generator-page .header-left{align-items:center;display:flex}.header-title-group{align-items:center;gap:14px;display:flex}.header-icon{background:linear-gradient(135deg, var(--primary) 0%, #8b5cf6 100%);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.collage-generator-page .header h1{color:#fff;letter-spacing:-.3px;margin:0;font-size:18px;font-weight:700;line-height:1.2}.collage-generator-page .header-subtitle{color:var(--gray-400);font-size:12px;font-weight:400;line-height:1}.collage-generator-page .header-right{align-items:center;gap:10px;display:flex}.mode-toggle{border-radius:var(--radius-sm);background:#ffffff14;padding:3px;display:flex}.mode-btn{color:var(--gray-400);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.mode-btn:hover:not(:disabled){color:#fff;background:#ffffff14}.mode-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 6px #6366f159}.mode-btn:disabled{opacity:.35;cursor:not-allowed}.collage-generator-page .back-btn{color:var(--gray-300);cursor:pointer;background:#ffffff14;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.collage-generator-page .back-btn:hover{color:#fff;background:#ffffff24}.toast{border-radius:var(--radius-sm);z-index:9999;align-items:center;gap:10px;max-width:400px;padding:14px 20px;font-size:14px;font-weight:500;animation:.35s cubic-bezier(.16,1,.3,1) toastSlide;display:flex;position:fixed;top:76px;right:24px;box-shadow:0 12px 40px #00000026}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}@keyframes toastSlide{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.cg-content{max-width:1800px;margin:0 auto;padding:24px}.cg-layout{grid-template-columns:1fr 400px;align-items:start;gap:24px;display:grid}.cg-main{flex-direction:column;gap:16px;display:flex}.cg-sidebar{flex-direction:column;gap:16px;display:flex;position:sticky;top:80px}.collage-generator-page .card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);background:#fff;padding:24px}.collage-generator-page .card h2{color:var(--gray-800);letter-spacing:-.2px;align-items:center;gap:10px;margin:0 0 14px;font-size:15px;font-weight:600;display:flex}.collage-generator-page .card h2:before{display:none}.collage-generator-page .card h2 svg{color:var(--primary);flex-shrink:0}.card-header-row{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.card-header-row h2{margin:0!important}.step-badge{color:var(--primary);white-space:nowrap;background:#eef2ff;border-radius:20px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.card-hint{color:var(--gray-500);margin:-6px 0 16px;font-size:13px;line-height:1.5}.btn-open-library{background:var(--gray-50);border:2px dashed var(--gray-300);border-radius:var(--radius-sm);width:100%;color:var(--gray-600);cursor:pointer;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.btn-open-library:hover{border-color:var(--primary);color:var(--primary);background:#f5f3ff}.btn-open-library svg{flex-shrink:0}.library-count{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-left:auto;font-size:12px;font-weight:700;display:flex}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:16px;display:grid}.setting-group{flex-direction:column;gap:6px;display:flex}.setting-group>label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.setting-group input[type=text],.setting-group input[type=number]{border:1px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--gray-800);background:#fff;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s}.setting-group input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #6366f11a}.setting-group input::placeholder{color:var(--gray-400);font-weight:400}.radio-group{gap:6px;display:flex}.radio-label{cursor:pointer;border:1px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--gray-600);background:#fff;flex:1;justify-content:center;align-items:center;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.radio-label:hover{border-color:var(--primary-light);background:var(--gray-50)}.radio-label:has(input:checked){background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 8px #6366f140}.radio-label input{display:none}.radio-content{flex-direction:column;align-items:center;gap:1px;display:flex}.radio-value{font-size:14px;font-weight:700}.radio-desc{opacity:.7;font-size:10px;font-weight:500}.export-format-group{flex-direction:column;gap:8px;display:flex}.format-select{border:1px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--gray-800);cursor:pointer;background:#fff;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s}.format-select:focus{border-color:var(--primary);outline:none}.quality-control{color:var(--gray-600);align-items:center;gap:10px;font-size:12px;font-weight:500;display:flex}.quality-control input[type=range]{appearance:none;background:var(--gray-200);cursor:pointer;border-radius:2px;flex:1;height:4px}.quality-control input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #6366f14d}.settings-options{background:var(--gray-50);border-radius:var(--radius-sm);border:1px solid var(--gray-100);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:14px 16px;display:flex}.option-chip{cursor:pointer;color:var(--gray-600);border:1px solid var(--gray-200);-webkit-user-select:none;user-select:none;background:#fff;border-radius:20px;align-items:center;gap:7px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.option-chip:hover{border-color:var(--gray-300)}.option-chip:has(input:checked){background:var(--primary);border-color:var(--primary);color:#fff}.option-chip input{display:none}.option-chip-label{line-height:1}.option-divider{background:var(--gray-200);width:1px;height:24px;margin:0 4px}.option-live{margin-left:auto}.option-live:has(input:checked){background:var(--success);border-color:var(--success)}.settings-actions{gap:10px;display:flex}.btn-preview,.btn-generate{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:600;transition:all .15s;display:flex}.btn-preview{color:var(--gray-700);border:1px solid var(--gray-200);background:#fff}.btn-preview:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-preview:disabled,.btn-generate:disabled{opacity:.45;cursor:not-allowed}.btn-generate{background:var(--primary);color:#fff;flex:1;justify-content:center;box-shadow:0 2px 8px #6366f140}.btn-generate:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 14px #6366f159}.jobs-card{flex-direction:column;max-height:520px;display:flex}.jobs-card h2{flex-shrink:0}.jobs-list{flex-direction:column;flex:1;gap:8px;padding-right:4px;display:flex;overflow-y:auto}.jobs-list::-webkit-scrollbar{width:4px}.jobs-list::-webkit-scrollbar-track{background:0 0}.jobs-list::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:2px}.job-item{background:var(--gray-50);border-radius:var(--radius-sm);border:1px solid var(--gray-100);padding:14px;transition:all .15s}.job-item:hover{border-color:var(--gray-200);background:#fff}.job-item.job-status-processing{border-left:3px solid var(--warning)}.job-item.job-status-completed{border-left:3px solid var(--success)}.job-item.job-status-failed{border-left:3px solid var(--danger)}.job-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.job-filename{color:var(--gray-800);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:13px;font-weight:600;overflow:hidden}.job-status-badge{color:#fff;text-transform:uppercase;letter-spacing:.3px;border-radius:10px;padding:3px 8px;font-size:10px;font-weight:700}.job-meta{color:var(--gray-500);gap:14px;margin-bottom:8px;font-size:12px;display:flex}.job-meta span{align-items:center;gap:4px;display:flex}.job-progress{align-items:center;gap:10px;margin-bottom:8px;display:flex}.progress-bar{background:var(--gray-200);border-radius:2px;flex:1;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--warning) 0%, var(--success) 100%);border-radius:2px;height:100%;transition:width .3s}.progress-text{color:var(--gray-600);min-width:36px;font-size:11px;font-weight:700}.job-error{color:var(--danger);margin:4px 0 0;font-size:12px}.job-actions{border-top:1px solid var(--gray-100);gap:6px;margin-top:10px;padding-top:10px;display:flex}.btn-action{border:1px solid var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;width:34px;height:34px;color:var(--gray-500);background:#fff;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.btn-action:hover:not(:disabled){background:var(--gray-50);border-color:var(--primary);color:var(--primary)}.btn-action:disabled{opacity:.35;cursor:not-allowed}.btn-action.btn-danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:#fef2f2}.btn-action[title]:hover:after{content:attr(title);background:var(--gray-900);color:#fff;white-space:nowrap;z-index:100;pointer-events:none;border-radius:6px;padding:6px 10px;font-size:11px;font-weight:500;animation:.15s cubic-bezier(.16,1,.3,1) tooltipPop;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.btn-action[title]:hover:before{content:"";border:5px solid #0000;border-top-color:var(--gray-900);z-index:100;pointer-events:none;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}@keyframes tooltipPop{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.loading-state{text-align:center;color:var(--gray-400);flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.empty-state{text-align:center;color:var(--gray-300);flex-direction:column;align-items:center;gap:8px;padding:40px 20px;display:flex}.empty-state p{color:var(--gray-500);margin:0;font-weight:500}.empty-hint{font-size:13px;color:var(--gray-400)!important;font-weight:400!important}.pagination-small{border-top:1px solid var(--gray-100);justify-content:center;align-items:center;gap:12px;margin-top:14px;padding-top:14px;display:flex}.pagination-small button{border:1px solid var(--gray-200);cursor:pointer;width:30px;height:30px;color:var(--gray-500);background:#fff;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.pagination-small button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pagination-small button:disabled{opacity:.3;cursor:not-allowed}.pagination-small span{color:var(--gray-500);font-size:13px;font-weight:500}.portal-main-lightbox .lightbox-overlay{z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000eb;justify-content:center;align-items:center;animation:.25s lbFadeIn;display:flex;position:fixed;inset:0}@keyframes lbFadeIn{0%{opacity:0}to{opacity:1}}.portal-main-lightbox .lightbox-container{justify-content:center;align-items:center;width:100%;height:100%;padding:60px 100px;display:flex;position:relative}.portal-main-lightbox .lightbox-close{color:#fff;cursor:pointer;z-index:10;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .15s;display:flex;position:absolute;top:20px;right:24px}.portal-main-lightbox .lightbox-close:hover{background:#fff3;transform:rotate(90deg)}.portal-main-lightbox .lightbox-nav{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.portal-main-lightbox .lightbox-nav:hover{background:#ffffff29}.portal-main-lightbox .lightbox-prev{left:24px}.portal-main-lightbox .lightbox-next{right:24px}.portal-main-lightbox .lightbox-content{justify-content:center;align-items:center;max-width:90%;max-height:80vh;display:flex}.portal-main-lightbox .lightbox-content img{object-fit:contain;border-radius:8px;max-width:100%;max-height:80vh;animation:.3s cubic-bezier(.16,1,.3,1) lbZoomIn;box-shadow:0 20px 60px #0006}@keyframes lbZoomIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}.portal-main-lightbox .lightbox-error{color:#fff;flex-direction:column;align-items:center;gap:14px;display:flex}.portal-main-lightbox .lightbox-error a{color:var(--primary-light);align-items:center;gap:6px;text-decoration:none;display:flex}.portal-main-lightbox .lightbox-error a:hover{text-decoration:underline}.portal-main-lightbox .lightbox-footer{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000b3;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:16px;padding:12px 20px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.portal-main-lightbox .lightbox-counter{color:#fff;font-size:13px;font-weight:700}.portal-main-lightbox .lightbox-filename{color:#ffffff80;text-overflow:ellipsis;white-space:nowrap;max-width:250px;font-size:12px;overflow:hidden}.portal-main-lightbox .lightbox-download{background:var(--primary);color:#fff;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.portal-main-lightbox .lightbox-download:hover{background:var(--primary-dark)}@media (width<=1200px){.cg-layout{grid-template-columns:1fr}.cg-sidebar{order:-1;position:static}}@media (width<=768px){.collage-generator-page .header{flex-direction:column;gap:10px;height:auto;padding:14px 16px}.collage-generator-page .header-left{width:100%}.collage-generator-page .header-right{justify-content:space-between;width:100%}.cg-content{padding:12px}.settings-grid{grid-template-columns:1fr}.settings-options{flex-direction:column;align-items:stretch}.option-divider{width:100%;height:1px;margin:4px 0}.option-live{margin-left:0}.settings-actions{flex-direction:column}.btn-preview,.btn-generate{justify-content:center;width:100%}.portal-main-lightbox .lightbox-container{padding:20px}.portal-main-lightbox .lightbox-nav{width:40px;height:40px}.portal-main-lightbox .lightbox-prev{left:8px}.portal-main-lightbox .lightbox-next{right:8px}.portal-main-lightbox .lightbox-footer{flex-direction:column;gap:10px;width:calc(100% - 40px);padding:14px}}:is(.collage-generator-page .card:has(.image-picker),.collage-generator-page .card:has(.folder-browser)){overflow:hidden}.image-picker,.folder-browser{max-height:400px;overflow:hidden auto}.image-picker .images-grid,.folder-browser .images-grid{max-height:350px;padding-right:8px;overflow-y:auto}.image-picker::-webkit-scrollbar{width:4px}.folder-browser::-webkit-scrollbar{width:4px}.images-grid::-webkit-scrollbar{width:4px}.image-picker::-webkit-scrollbar-track{background:0 0}.folder-browser::-webkit-scrollbar-track{background:0 0}.images-grid::-webkit-scrollbar-track{background:0 0}.image-picker::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.folder-browser::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}.images-grid::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#555}.spinner{border:3px solid #f3f3f3;border-top-color:#667eea;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}
