:root,[data-theme=midnight]{--bg: #0a0c14;--bg-2: #0f1220;--panel: #141825;--panel-2: #1a1f30;--panel-3: #212740;--border: #2a3050;--border-glow: rgba(100, 140, 255, .15);--text: #e8eaf4;--muted: #8a92a8;--accent: #6c8cff;--accent-2: #a78bfa;--accent-glow: rgba(108, 140, 255, .25);--ok: #34d399;--ok-glow: rgba(52, 211, 153, .25);--warn: #fbbf24;--warn-glow: rgba(251, 191, 36, .25);--danger: #f87171;--danger-glow: rgba(248, 113, 113, .25);--gradient-1: linear-gradient(135deg, #6c8cff 0%, #a78bfa 100%);--gradient-2: linear-gradient(135deg, #34d399 0%, #6c8cff 100%);--gradient-bg: radial-gradient(ellipse 1200px 600px at 80% -10%, #1a2040 0%, var(--bg) 55%);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4), 0 0 1px rgba(108, 140, 255, .1);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5), 0 0 2px rgba(108, 140, 255, .15);--shadow-glow: 0 0 20px var(--accent-glow), 0 4px 20px rgba(0, 0, 0, .4);--radius: 16px;--radius-sm: 10px;--radius-xs: 6px}[data-theme=aurora]{--bg: #0c1220;--bg-2: #101828;--panel: #15202e;--panel-2: #1c2840;--panel-3: #243350;--border: #2a3a58;--border-glow: rgba(56, 189, 248, .15);--text: #e0f2fe;--muted: #7dd3fc;--accent: #38bdf8;--accent-2: #818cf8;--accent-glow: rgba(56, 189, 248, .25);--ok: #4ade80;--ok-glow: rgba(74, 222, 128, .25);--warn: #facc15;--warn-glow: rgba(250, 204, 21, .25);--danger: #fb7185;--danger-glow: rgba(251, 113, 133, .25);--gradient-1: linear-gradient(135deg, #38bdf8 0%, #818cf8 100%);--gradient-2: linear-gradient(135deg, #4ade80 0%, #38bdf8 100%);--gradient-bg: radial-gradient(ellipse 1200px 600px at 20% 0%, #0c2840 0%, var(--bg) 55%);--shadow-glow: 0 0 20px var(--accent-glow), 0 4px 20px rgba(0, 0, 0, .4)}[data-theme=rose]{--bg: #140a10;--bg-2: #1c0f16;--panel: #221420;--panel-2: #2c1a28;--panel-3: #382234;--border: #4a2a40;--border-glow: rgba(244, 114, 182, .15);--text: #fce7f3;--muted: #d8a0b8;--accent: #f472b6;--accent-2: #c084fc;--accent-glow: rgba(244, 114, 182, .25);--ok: #6ee7b7;--ok-glow: rgba(110, 231, 183, .25);--warn: #fcd34d;--warn-glow: rgba(252, 211, 77, .25);--danger: #fb7185;--danger-glow: rgba(251, 113, 133, .25);--gradient-1: linear-gradient(135deg, #f472b6 0%, #c084fc 100%);--gradient-2: linear-gradient(135deg, #6ee7b7 0%, #f472b6 100%);--gradient-bg: radial-gradient(ellipse 1200px 600px at 70% 0%, #2c0a20 0%, var(--bg) 55%);--shadow-glow: 0 0 20px var(--accent-glow), 0 4px 20px rgba(0, 0, 0, .4)}[data-theme=forest]{--bg: #080f0a;--bg-2: #0c160e;--panel: #12201a;--panel-2: #1a2c24;--panel-3: #22382e;--border: #2a4a38;--border-glow: rgba(52, 211, 153, .15);--text: #d1fae5;--muted: #86c8a0;--accent: #34d399;--accent-2: #6ee7b7;--accent-glow: rgba(52, 211, 153, .25);--ok: #6ee7b7;--ok-glow: rgba(110, 231, 183, .25);--warn: #fbbf24;--warn-glow: rgba(251, 191, 36, .25);--danger: #f87171;--danger-glow: rgba(248, 113, 113, .25);--gradient-1: linear-gradient(135deg, #34d399 0%, #6ee7b7 100%);--gradient-2: linear-gradient(135deg, #6ee7b7 0%, #34d399 100%);--gradient-bg: radial-gradient(ellipse 1200px 600px at 50% 0%, #0a2018 0%, var(--bg) 55%);--shadow-glow: 0 0 20px var(--accent-glow), 0 4px 20px rgba(0, 0, 0, .4)}[data-theme=light]{--bg: #f0f2f8;--bg-2: #e8ebf2;--panel: #ffffff;--panel-2: #f5f7fc;--panel-3: #eef0f8;--border: #d0d5e0;--border-glow: rgba(99, 102, 241, .1);--text: #1e293b;--muted: #64748b;--accent: #6366f1;--accent-2: #8b5cf6;--accent-glow: rgba(99, 102, 241, .15);--ok: #10b981;--ok-glow: rgba(16, 185, 129, .15);--warn: #f59e0b;--warn-glow: rgba(245, 158, 11, .15);--danger: #ef4444;--danger-glow: rgba(239, 68, 68, .15);--gradient-1: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-2: linear-gradient(135deg, #10b981 0%, #6366f1 100%);--gradient-bg: radial-gradient(ellipse 1200px 600px at 80% -10%, #e0e8ff 0%, var(--bg) 55%);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 20px rgba(0, 0, 0, .08), 0 0 1px rgba(99, 102, 241, .1);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .1), 0 0 2px rgba(99, 102, 241, .1);--shadow-glow: 0 0 20px var(--accent-glow), 0 4px 20px rgba(0, 0, 0, .08)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--gradient-bg);background-attachment:fixed;color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;transition:background .4s ease,color .3s ease}*{-webkit-touch-callout:none}input,textarea,select{-webkit-touch-callout:default}.app{max-width:1100px;margin:0 auto;padding:28px 20px 80px;animation:appFadeIn .5s ease;position:relative;z-index:1}@keyframes appFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bg-orbs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.12;animation:orbFloat 20s ease-in-out infinite}[data-theme=light] .orb{opacity:.07;filter:blur(100px)}.orb-1{width:500px;height:500px;background:var(--accent);top:-10%;right:-5%;animation-duration:22s}.orb-2{width:400px;height:400px;background:var(--accent-2);bottom:-8%;left:-8%;animation-duration:26s;animation-delay:-5s}.orb-3{width:300px;height:300px;background:var(--ok);top:40%;left:30%;animation-duration:30s;animation-delay:-10s}.orb-4{width:350px;height:350px;background:var(--accent);top:60%;right:20%;animation-duration:24s;animation-delay:-15s}.orb-5{width:250px;height:250px;background:var(--accent-2);top:15%;left:60%;animation-duration:28s;animation-delay:-8s}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}25%{transform:translate(60px,-40px) scale(1.1)}50%{transform:translate(-30px,50px) scale(.95)}75%{transform:translate(40px,20px) scale(1.05)}}.bg-grid{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:60px 60px;opacity:.08;mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,black 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,black 20%,transparent 70%)}[data-theme=light] .bg-grid{opacity:.05}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px;flex-wrap:wrap;padding:18px 24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;overflow:visible;z-index:10}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-1)}.title{font-size:22px;font-weight:700;letter-spacing:.5px;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.title small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px;-webkit-text-fill-color:var(--muted)}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-badge{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;background:var(--panel-2);border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:all .2s ease}.user-badge:hover{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.user-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}.user-name{font-size:13px;font-weight:600;color:var(--text);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-badge-wrapper{position:relative}.user-menu{position:absolute;top:calc(100% + 8px);right:0;width:240px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden;animation:menuFadeIn .15s ease}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.user-menu-header{display:flex;align-items:center;gap:10px;padding:14px 16px}.user-menu-info{min-width:0}.user-menu-name{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-email{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.user-menu-divider{height:1px;background:var(--border);margin:0 12px}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;background:none;border:none;color:var(--text);font-size:13px;cursor:pointer;transition:background .15s}.user-menu-item:hover{background:var(--panel-2)}.user-menu-item.danger{color:var(--danger)}.user-menu-item.danger:hover{background:var(--danger-glow)}.btn.danger{background:var(--danger)!important;color:#fff!important;border:none!important}.btn.danger:hover:not(:disabled){filter:brightness(1.1)}.dialog-field{margin-bottom:10px}.dialog-field input{width:100%;padding:10px 14px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text);font-size:14px;outline:none;transition:border-color .2s;box-sizing:border-box}.dialog-field input:focus{border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.auth-remember{display:flex;align-items:center;gap:8px;margin:4px 0 0;font-size:13px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.auth-remember input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.auth-remember:hover{color:var(--text)}.restart-btn{color:var(--warn)!important;border-color:var(--warn-glow)!important}.restart-btn:hover{background:var(--warn-glow)!important;box-shadow:0 0 12px var(--warn-glow)!important}.badge{font-size:12px;padding:5px 12px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);transition:all .2s ease}.badge.ok{color:var(--ok);border-color:var(--ok-glow);box-shadow:0 0 8px var(--ok-glow)}.theme-switcher{display:flex;align-items:center;gap:6px;padding:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px}.theme-dot{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s ease;position:relative}.theme-dot:hover{transform:scale(1.2)}.theme-dot.active{border-color:var(--text);box-shadow:0 0 8px currentColor;transform:scale(1.15)}.theme-dot[data-t=midnight]{background:linear-gradient(135deg,#6c8cff,#a78bfa)}.theme-dot[data-t=aurora]{background:linear-gradient(135deg,#38bdf8,#818cf8)}.theme-dot[data-t=rose]{background:linear-gradient(135deg,#f472b6,#c084fc)}.theme-dot[data-t=forest]{background:linear-gradient(135deg,#34d399,#6ee7b7)}.theme-dot[data-t=light]{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.stepper{display:flex;gap:0;margin-bottom:24px;flex-wrap:wrap;align-items:center}.step-pill{display:flex;align-items:center;gap:8px;padding:10px 18px;font-size:13px;color:var(--muted);position:relative;transition:all .3s ease}.step-pill+.step-pill{padding-left:10px}.step-pill+.step-pill:before{content:"";display:inline-block;width:28px;height:2px;background:var(--border);margin-right:10px;vertical-align:middle;border-radius:1px;transition:background .3s ease}.step-pill.active+.step-pill:before,.step-pill.done+.step-pill:before{background:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.step-pill.active{color:var(--text)}.step-pill.done{color:var(--ok)}.step-num{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--panel-2);border:1px solid var(--border);transition:all .3s ease}.step-pill.active .step-num{background:var(--gradient-1);color:#fff;border-color:transparent;box-shadow:0 0 12px var(--accent-glow);animation:stepPulse 2s ease-in-out infinite}.step-pill.done .step-num{background:var(--ok);color:#fff;border-color:transparent;box-shadow:0 0 8px var(--ok-glow)}@keyframes stepPulse{0%,to{box-shadow:0 0 12px var(--accent-glow)}50%{box-shadow:0 0 24px var(--accent-glow),0 0 40px var(--accent-glow)}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:28px;margin-bottom:20px;box-shadow:var(--shadow-md);position:relative;overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease;animation:cardSlideIn .4s ease}.card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-lg)}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.card h2{margin:0 0 4px;font-size:18px;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card .hint{color:var(--muted);font-size:13px;margin-bottom:16px}.row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.checkbox-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s ease}.checkbox-row:hover{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.checkbox-row input{width:18px;height:18px;accent-color:var(--accent)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:36px;text-align:center;color:var(--muted);cursor:pointer;transition:all .25s ease;background:var(--panel-2);position:relative;overflow:hidden}.dropzone:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-1);opacity:0;transition:opacity .25s ease;pointer-events:none;border-radius:inherit}.dropzone:hover{border-color:var(--accent);box-shadow:var(--shadow-glow)}.dropzone:hover:after{opacity:.03}.dropzone.drag{border-color:var(--accent);background:var(--panel-3);box-shadow:var(--shadow-glow)}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;font-weight:500}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-1);opacity:0;transition:opacity .2s ease;pointer-events:none}.btn:hover{background:var(--panel-3);border-color:var(--border-glow);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:hover:after{opacity:.05}.btn:active{transform:translateY(0) scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn.sm{padding:7px 14px;font-size:13px;border-radius:var(--radius-xs)}.btn.primary{background:var(--gradient-1);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 2px 12px var(--accent-glow)}.btn.primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-2px);filter:brightness(1.1)}.btn.primary:active{transform:translateY(0) scale(.97)}.btn.ghost{background:transparent}.btn.ghost.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel-2)}.seg button{background:transparent;color:var(--muted);border:none;padding:9px 18px;cursor:pointer;font-size:13px;transition:all .2s ease;position:relative}.seg button:hover{color:var(--text);background:var(--panel-3)}.seg button.active{background:var(--gradient-1);color:#fff;font-weight:600;box-shadow:0 0 12px var(--accent-glow)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.gallery-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.gallery-selected-count{font-size:13px;color:var(--accent);font-weight:500}.tile{position:relative;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel-2);cursor:pointer;aspect-ratio:3 / 4;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.tile:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-lg);border-color:var(--accent);z-index:2}.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.tile:hover img{transform:scale(1.05)}.tile.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow),var(--shadow-md)}.tile.checked{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok-glow),var(--shadow-md)}.tile .tag{position:absolute;left:8px;bottom:8px;font-size:11px;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:3px 8px;border-radius:var(--radius-xs)}.tile .check{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:var(--gradient-1);color:#fff;display:none;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 0 8px var(--accent-glow)}.tile.selected .check{display:flex}.zoom-btn{position:absolute;top:8px;left:8px;width:30px;height:30px;border-radius:var(--radius-xs);background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .2s ease;padding:0}.tile:hover .zoom-btn{opacity:1}.zoom-btn:hover{background:var(--accent);box-shadow:0 0 12px var(--accent-glow);transform:scale(1.1)}.tile-checkbox{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:var(--radius-xs);border:2px solid rgba(255,255,255,.5);background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;cursor:pointer;transition:all .2s ease}.tile-checkbox.checked{background:var(--ok);border-color:var(--ok);box-shadow:0 0 8px var(--ok-glow)}.preview-main{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.preview-img-wrap{position:relative;display:inline-block;cursor:pointer;border-radius:var(--radius-sm);overflow:hidden}.preview-img-wrap img{border-radius:var(--radius-sm);border:1px solid var(--border);max-height:320px;box-shadow:var(--shadow-sm);transition:all .3s ease;display:block}.preview-img-wrap:hover img{box-shadow:var(--shadow-lg);transform:scale(1.02)}.preview-zoom-icon{position:absolute;top:8px;left:8px;width:32px;height:32px;border-radius:var(--radius-xs);background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;pointer-events:none}.preview-img-wrap:hover .preview-zoom-icon{opacity:1}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--muted);font-weight:500}input[type=number],input[type=text]{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:9px 14px;border-radius:var(--radius-sm);font-size:14px;width:120px;transition:all .2s ease}input[type=number]:focus,input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.loading{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.note{font-size:12px;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-left:3px solid;border-image:var(--gradient-1) 1;padding:12px 14px;border-radius:var(--radius-xs);margin-top:14px;line-height:1.6}.actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;flex-wrap:wrap}.actions-right{display:flex;gap:10px}.error{color:var(--danger);font-size:13px;margin-top:10px;padding:8px 12px;background:var(--danger-glow);border-radius:var(--radius-xs);border:1px solid var(--danger);animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.success{color:var(--ok);font-size:13px;margin-top:10px;padding:8px 12px;background:var(--ok-glow);border-radius:var(--radius-xs);border:1px solid var(--ok)}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin:24px 0}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}.download-actions,.download-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.download-progress{font-size:12px;color:var(--accent);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.lightbox-content{position:relative;display:flex;align-items:center;justify-content:center;max-width:92vw;max-height:92vh}.lightbox-image{max-width:88vw;max-height:82vh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 12px 60px #000000b3,0 0 40px var(--accent-glow);-webkit-user-select:none;user-select:none;animation:lightboxZoom .25s ease}@keyframes lightboxZoom{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-close{position:absolute;top:-44px;right:-8px;background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#fff;width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:2}.lightbox-close:hover{background:#fff3;transform:scale(1.1)}.iv-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease;-webkit-user-select:none;user-select:none;touch-action:none}.iv-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.iv-image{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:0 12px 60px #000000b3,0 0 40px var(--accent-glow);transform-origin:center center;will-change:transform}.iv-controls{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;z-index:10;pointer-events:none;opacity:0;transition:opacity .3s ease}.iv-controls.visible{opacity:1}.iv-controls>*{pointer-events:auto}.iv-btn{background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);color:#fff;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:16px;padding:0}.iv-btn:hover:not(:disabled){background:#fff3;box-shadow:0 0 16px var(--accent-glow);transform:scale(1.08)}.iv-btn:disabled{opacity:.25;cursor:not-allowed}.iv-close{width:42px;height:42px;font-size:18px;background:#ffffff14}.iv-close:hover{background:#ff50504d}.iv-zoom-bar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:28px;padding:6px 10px;z-index:10;pointer-events:auto}.iv-zoom-label{color:#ffffffb3;font-size:13px;font-weight:600;min-width:48px;text-align:center;cursor:pointer;padding:4px 6px;border-radius:12px;transition:all .2s}.iv-zoom-label:hover{color:#fff;background:#ffffff1a}.iv-nav-bar{display:flex;align-items:center;gap:8px}.iv-page-info{color:#fff9;font-size:13px;font-weight:500;min-width:56px;text-align:center}.iv-tag{position:fixed;bottom:80px;left:50%;transform:translate(-50%);font-size:13px;color:#ffffff80;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 14px;border-radius:12px;z-index:10;opacity:0;transition:opacity .3s ease;pointer-events:none}.iv-tag.visible{opacity:1}.iv-hint{position:fixed;bottom:80px;left:50%;transform:translate(-50%);font-size:12px;color:#ffffff59;z-index:10;pointer-events:none;white-space:nowrap;animation:fadeIn .5s ease .3s both}.fun-loader{display:flex;flex-direction:column;align-items:center;gap:18px;padding:32px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;position:relative}.fl-anim{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center}.fl-hanger{position:absolute;top:4px;left:50%;transform:translate(-50%);animation:flSwing 2.5s ease-in-out infinite;transform-origin:center top}@keyframes flSwing{0%,to{transform:translate(-50%) rotate(-3deg)}50%{transform:translate(-50%) rotate(3deg)}}.fl-shirt{position:absolute;top:28px;left:50%;transform:translate(-50%);animation:flShirtFloat 3s ease-in-out infinite}@keyframes flShirtFloat{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-6px)}}.fl-shirt-body{animation:flShirtPulse 2s ease-in-out infinite}@keyframes flShirtPulse{0%,to{fill-opacity:.15}50%{fill-opacity:.3}}.fl-shirt-collar{animation:flCollarGlow 2s ease-in-out infinite}@keyframes flCollarGlow{0%,to{stroke-opacity:.6}50%{stroke-opacity:1}}.fl-particles{position:absolute;top:0;right:0;bottom:0;left:0}.fl-particle{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:0;animation:flParticle 3s ease-in-out infinite}.fl-p0{left:10%;top:20%;animation-delay:0s}.fl-p1{left:80%;top:15%;animation-delay:.5s}.fl-p2{left:20%;top:75%;animation-delay:1s}.fl-p3{left:75%;top:70%;animation-delay:1.5s}.fl-p4{left:50%;top:10%;animation-delay:2s}.fl-p5{left:45%;top:85%;animation-delay:2.5s}@keyframes flParticle{0%{opacity:0;transform:scale(0) translateY(0)}30%{opacity:.7;transform:scale(1) translateY(-8px)}to{opacity:0;transform:scale(.5) translateY(-30px)}}.fl-text{text-align:center}.fl-main-msg{font-size:16px;font-weight:600;color:var(--fg);margin-bottom:4px}.fl-sub-msg{font-size:13px;color:var(--muted)}.fl-timer{font-size:12px;color:var(--accent);margin-top:6px;font-variant-numeric:tabular-nums}.fl-tip{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(var(--accent-rgb, 99, 102, 241),.08);border:1px solid rgba(var(--accent-rgb, 99, 102, 241),.15);border-radius:var(--radius-sm);max-width:380px;cursor:pointer;transition:all .2s ease;animation:flTipIn .4s ease}@keyframes flTipIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fl-tip:hover{background:rgba(var(--accent-rgb, 99, 102, 241),.14);border-color:rgba(var(--accent-rgb, 99, 102, 241),.25)}.fl-tip-icon{font-size:18px;flex-shrink:0}.fl-tip-text{font-size:12px;color:var(--muted);line-height:1.5;flex:1}.fl-tip-next{background:none;border:none;cursor:pointer;font-size:16px;padding:4px;border-radius:50%;transition:all .2s;flex-shrink:0}.fl-tip-next:hover{background:#ffffff1a;transform:rotate(180deg)}.fl-progress-track{width:100%;max-width:320px;height:3px;background:rgba(var(--accent-rgb, 99, 102, 241),.1);border-radius:2px;overflow:hidden;position:relative}.fl-progress-bar{position:absolute;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:2px;animation:flProgress 2s ease-in-out infinite}.fl-progress-bar2{animation-delay:1s}@keyframes flProgress{0%{left:-40%}to{left:100%}}.fl-progress-wrap{display:flex;align-items:center;gap:8px;margin-top:8px;width:100%;max-width:320px}.fl-progress-bg{flex:1;height:6px;background:rgba(var(--accent-rgb, 99, 102, 241),.12);border-radius:3px;overflow:hidden}.fl-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .4s ease}.fl-progress-pct{font-size:12px;font-weight:600;color:var(--accent);min-width:32px;text-align:right}.history-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .15s ease}.history-panel{position:fixed;top:0;right:0;bottom:0;width:460px;max-width:92vw;background:var(--panel);border-left:1px solid var(--border);z-index:901;display:flex;flex-direction:column;animation:slideIn .25s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:-8px 0 40px #0006}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.history-panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel-2)}.history-panel-header h3{margin:0;font-size:16px;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.history-retention-hint{padding:8px 22px;font-size:12px;color:var(--text-3);background:var(--panel-2);border-bottom:1px solid var(--border);flex-shrink:0}.history-list{flex:1;overflow-y:auto;padding:12px}.history-item{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);cursor:pointer;margin-bottom:8px;transition:all .2s ease}.history-item:hover{border-color:var(--accent);background:var(--panel-3);box-shadow:0 0 12px var(--accent-glow);transform:translate(-2px)}.history-item-thumb{width:52px;height:68px;border-radius:var(--radius-xs);overflow:hidden;flex-shrink:0;background:var(--bg);box-shadow:var(--shadow-sm)}.history-item-thumb img{width:100%;height:100%;object-fit:cover}.history-item-info{flex:1;min-width:0}.history-item-time{font-size:12px;color:var(--muted);margin-bottom:3px}.history-item-desc{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item-delete{width:28px;height:28px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;transition:all .2s ease}.history-item-delete:hover{background:var(--danger-glow);color:var(--danger);box-shadow:0 0 8px var(--danger-glow)}.history-detail{flex:1;overflow-y:auto;padding:18px 22px}.history-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:14px;padding:14px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.history-meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.history-ref-images{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}.history-ref-item{display:flex;flex-direction:column;gap:4px}.history-ref-item img{width:80px;height:100px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:all .2s ease}.history-ref-item img:hover{box-shadow:var(--shadow-lg);transform:scale(1.05)}.history-detail-actions{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.resume-btn{background:var(--gradient-2)!important;border-color:transparent!important;color:#fff!important;font-weight:600;box-shadow:0 2px 12px var(--ok-glow)}.resume-btn:hover{box-shadow:0 0 20px var(--ok-glow),var(--shadow-md)!important;transform:translateY(-2px)!important;filter:brightness(1.1)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:confirmFadeIn .2s ease}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:32px 36px 28px;max-width:420px;width:90%;text-align:center;box-shadow:0 0 40px var(--accent-glow),0 20px 60px #00000080;animation:confirmSlideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes confirmSlideIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-icon{font-size:40px;margin-bottom:12px;animation:confirmBounce .5s ease .2s both}@keyframes confirmBounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.confirm-title{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--text)}.confirm-message{margin:0 0 24px;font-size:14px;color:var(--muted);line-height:1.6}.confirm-actions{display:flex;gap:12px;justify-content:center}.confirm-actions .btn{min-width:100px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px}.auth-bg-orbs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.auth-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.15}.auth-orb-1{width:600px;height:600px;background:#6c8cff;top:-200px;right:-100px;animation:authOrbFloat1 15s ease-in-out infinite}.auth-orb-2{width:500px;height:500px;background:#a78bfa;bottom:-150px;left:-100px;animation:authOrbFloat2 18s ease-in-out infinite}.auth-orb-3{width:350px;height:350px;background:#34d399;top:50%;left:50%;transform:translate(-50%,-50%);animation:authOrbFloat3 12s ease-in-out infinite}@keyframes authOrbFloat1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-60px,40px) scale(1.1)}66%{transform:translate(30px,-30px) scale(.95)}}@keyframes authOrbFloat2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,-40px) scale(1.05)}66%{transform:translate(-40px,20px) scale(.9)}}@keyframes authOrbFloat3{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.1}50%{transform:translate(-50%,-50%) scale(1.3);opacity:.2}}.auth-card{position:relative;z-index:1;width:100%;max-width:420px;background:#141825d9;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid rgba(108,140,255,.15);border-radius:24px;padding:40px 36px 32px;box-shadow:0 0 80px #6c8cff14,0 20px 60px #0006,inset 0 1px #ffffff0d;animation:authCardIn .6s cubic-bezier(.34,1.56,.64,1)}@keyframes authCardIn{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-2),transparent);border-radius:24px 24px 0 0}.auth-logo{text-align:center;margin-bottom:28px}.auth-logo-icon{display:inline-flex;margin-bottom:16px;animation:authLogoIn .8s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes authLogoIn{0%{opacity:0;transform:scale(.5) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.auth-title{font-size:24px;font-weight:700;margin:0 0 6px;background:linear-gradient(135deg,#6c8cff,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{font-size:13px;color:var(--muted);margin:0}.auth-tabs{display:flex;position:relative;background:var(--panel-2);border-radius:12px;padding:4px;margin-bottom:24px;border:1px solid var(--border)}.auth-tab{flex:1;padding:10px;background:none;border:none;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;position:relative;z-index:1;transition:color .3s ease;border-radius:9px}.auth-tab.active{color:#fff}.auth-tab-indicator{position:absolute;top:4px;bottom:4px;width:calc(50% - 4px);background:var(--gradient-1);border-radius:9px;transition:left .3s cubic-bezier(.4,0,.2,1);box-shadow:0 0 16px var(--accent-glow)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:0 14px;height:48px;transition:all .25s ease}.auth-field:focus-within{border-color:var(--accent);box-shadow:0 0 16px var(--accent-glow);background:var(--panel-3)}.auth-field-icon{color:var(--muted);display:flex;align-items:center;flex-shrink:0;transition:color .25s ease}.auth-field:focus-within .auth-field-icon{color:var(--accent)}.auth-field input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:14px;height:100%;min-width:0}.auth-field input::placeholder{color:var(--muted);opacity:.7}.auth-eye-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s}.auth-eye-btn:hover{color:var(--text)}.auth-error{font-size:13px;color:var(--danger);background:var(--danger-glow);border:1px solid var(--danger);padding:10px 14px;border-radius:10px;animation:authShake .4s ease}@keyframes authShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.auth-submit{width:100%;height:48px;background:var(--gradient-1);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:700;cursor:pointer;position:relative;overflow:hidden;transition:all .25s ease;box-shadow:0 4px 20px var(--accent-glow);margin-top:4px;letter-spacing:4px}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 30px var(--accent-glow);filter:brightness(1.1)}.auth-submit:active:not(:disabled){transform:translateY(0) scale(.98)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-submit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:translate(-100%);transition:transform .5s ease}.auth-submit:hover:not(:disabled):after{transform:translate(100%)}.auth-loading{display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:0}.auth-footer{text-align:center;margin-top:20px;font-size:13px;color:var(--muted)}.auth-footer button{background:none;border:none;color:var(--accent);cursor:pointer;font-weight:600;font-size:13px;padding:0;transition:all .2s}.auth-footer button:hover{color:var(--accent-2);text-shadow:0 0 8px var(--accent-glow)}.clothing-grid{display:flex;flex-wrap:wrap;gap:12px}.clothing-item{position:relative;border-radius:8px;padding:4px;width:130px}.clothing-thumb{height:120px;width:100%;object-fit:cover;border-radius:4px;display:block;cursor:pointer;transition:transform .15s ease}.clothing-thumb:hover{transform:scale(1.03)}.clothing-thumb:active{transform:scale(.98)}.clothing-remove-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#f44;color:#fff;border:none;cursor:pointer;font-size:14px;line-height:20px;padding:0;text-align:center;z-index:2}.clothing-angle-select{width:100%;margin-top:4px;padding:2px 6px;font-size:11px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--text)}@media (max-width: 768px){.app{padding:12px 10px 80px}.auth-card{padding:28px 20px 24px;border-radius:18px;max-width:100%;margin:0 12px}.auth-title{font-size:20px}.header{padding:14px 16px;flex-direction:column;align-items:flex-start;gap:10px}.clothing-grid{gap:8px}.clothing-item{width:calc(50% - 4px)}.clothing-thumb{height:140px}.clothing-angle-select{font-size:12px;padding:4px 6px}.clothing-remove-btn{width:24px;height:24px;font-size:16px;line-height:24px}.title{font-size:18px}.title small{display:block;margin-top:2px}.header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}.card{padding:18px}.gallery{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.step-pill{padding:8px 12px;font-size:12px}.step-pill+.step-pill:before{width:16px}.dropzone{padding:24px 16px}.row{flex-direction:column;align-items:stretch!important;gap:10px}.seg{width:100%}.seg button{flex:1;padding:9px 10px;font-size:12px}.preview-main{flex-direction:column}.preview-img-wrap img{max-height:220px}.checkbox-row{padding:12px 14px}.actions{flex-direction:column}.actions-right{width:100%;justify-content:stretch}.actions-right .btn{flex:1}.btn{padding:10px 14px;font-size:13px}.confirm-dialog{padding:24px 20px 22px;width:94%}.confirm-actions{flex-direction:column;gap:8px}.confirm-actions .btn{width:100%;min-width:unset}.history-panel{width:100%;max-width:100vw}.history-detail{padding:12px}.history-ref-images{flex-direction:column}.note{font-size:11px;padding:10px 12px}.field{width:100%}input[type=number]{width:100%!important}.results-header{flex-direction:column;align-items:flex-start}.download-actions{width:100%}.download-actions .btn{flex:1;text-align:center}.tile img{max-height:180px}.iv-controls{padding:12px 14px}.iv-btn{width:34px;height:34px}.iv-close{width:38px;height:38px}.iv-zoom-bar{bottom:16px;padding:5px 8px;gap:4px}.iv-hint{bottom:64px;font-size:11px}.iv-tag{bottom:64px}.iv-image{max-width:96vw;max-height:80vh}.fun-loader{padding:24px 16px}.fl-anim{width:90px;height:90px}.fl-tip{max-width:100%}.user-badge .user-name{display:none}.theme-switcher{gap:4px}.theme-dot{width:20px;height:20px}}@media (max-width: 420px){.app{padding:10px 8px 80px}.header{padding:12px 14px}.title{font-size:16px}.clothing-item{width:100%}.clothing-thumb{height:160px}.card{padding:14px}.card h2{font-size:16px}.gallery{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.tile img{max-height:150px}.btn{padding:9px 12px;font-size:12px}.iv-zoom-bar{bottom:12px}.iv-btn{width:32px;height:32px}.fl-anim{width:80px;height:80px}.fl-main-msg{font-size:14px}.fl-tip-text{font-size:11px}}
