:root{--bg-base: #080b14;--bg-surface: #0d1220;--bg-card: #111827;--bg-card-hover: #141d2e;--bg-elevated: #1a2540;--border: rgba(99, 130, 220, .12);--border-hover: rgba(99, 130, 220, .28);--accent-primary: #6366f1;--accent-cyan: #22d3ee;--accent-violet: #a78bfa;--accent-rose: #f43f5e;--accent-emerald: #10b981;--accent-amber: #f59e0b;--text-primary: #f0f4ff;--text-secondary: #8b97b8;--text-muted: #4a5578;--success-bg: rgba(16, 185, 129, .08);--success-border: rgba(16, 185, 129, .3);--error-bg: rgba(244, 63, 94, .08);--error-border: rgba(244, 63, 94, .3);--grad-primary: linear-gradient(135deg, #6366f1, #8b5cf6);--grad-cyan: linear-gradient(135deg, #06b6d4, #6366f1);--grad-header: linear-gradient(135deg, #0f1629 0%, #111827 100%);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .4), 0 1px 0 rgba(255,255,255,.04) inset;--shadow-glow: 0 0 40px rgba(99, 102, 241, .15);--shadow-btn: 0 4px 20px rgba(99, 102, 241, .4);--shadow-success: 0 0 30px rgba(16, 185, 129, .2);--shadow-error: 0 0 30px rgba(244, 63, 94, .2);--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;background-image:radial-gradient(ellipse 80% 50% at 20% -10%,rgba(99,102,241,.08) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 110%,rgba(34,211,238,.05) 0%,transparent 60%)}.header{position:sticky;top:0;z-index:100;background:var(--grad-header);border-bottom:1px solid var(--border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.header-inner{max-width:1280px;margin:0 auto;padding:0 2rem;height:68px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:14px}.logo-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--grad-primary);border-radius:var(--radius-md);color:#fff;box-shadow:var(--shadow-btn);flex-shrink:0}.logo-text h1{font-size:1.125rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);line-height:1.2}.logo-text p{font-size:.72rem;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.05em}.header-badge{display:flex;align-items:center;gap:8px;background:#6366f11a;border:1px solid rgba(99,102,241,.25);border-radius:999px;padding:6px 14px;font-size:.78rem;font-weight:500;color:var(--accent-violet)}.badge-dot{width:7px;height:7px;background:var(--accent-emerald);border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.main{max-width:1280px;margin:0 auto;padding:2.5rem 2rem 3rem;display:flex;flex-direction:column;gap:2rem}.grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}@media (max-width: 900px){.grid{grid-template-columns:1fr}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:1.5rem;transition:border-color .2s}.card:hover{border-color:var(--border-hover)}.card-header{display:flex;align-items:center;gap:12px}.card-tag{font-family:var(--font-mono);font-size:.68rem;font-weight:500;color:var(--accent-primary);background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-sm);padding:3px 8px;letter-spacing:.08em}.card-header h2{font-size:1.05rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.drop-zone{border:2px dashed rgba(99,130,220,.2);border-radius:var(--radius-lg);background:#0d122099;cursor:pointer;transition:all .25s ease;overflow:hidden;position:relative;min-height:260px;display:flex;align-items:center;justify-content:center}.drop-zone:hover,.drop-zone:focus-visible{border-color:var(--accent-primary);background:#6366f10a;box-shadow:0 0 0 4px #6366f114;outline:none}.drop-zone.dragging{border-color:var(--accent-cyan);background:#22d3ee0a;box-shadow:0 0 0 4px #22d3ee1a,var(--shadow-glow);transform:scale(1.01)}.drop-zone.has-preview{cursor:default;border-style:solid;min-height:unset}.drop-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;padding:2.5rem;text-align:center}.drop-icon{width:72px;height:72px;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--accent-primary);margin-bottom:6px;transition:transform .2s}.drop-zone:hover .drop-icon{transform:translateY(-3px)}.drop-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.drop-subtitle{font-size:.875rem;color:var(--text-secondary)}.drop-link{color:var(--accent-primary);text-decoration:underline;text-underline-offset:3px}.drop-hint{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);letter-spacing:.05em;margin-top:4px}.preview-wrapper{position:relative;width:100%}.preview-img{width:100%;height:auto;display:block;border-radius:calc(var(--radius-lg) - 2px)}.preview-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#080b14e6);padding:12px 16px 10px;display:flex;justify-content:space-between;align-items:flex-end;border-radius:0 0 calc(var(--radius-lg) - 2px) calc(var(--radius-lg) - 2px)}.preview-name{font-size:.8rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.preview-size{font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary)}.button-row{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:var(--radius-md);border:none;font-family:var(--font-sans);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-primary{flex:1;justify-content:center;background:var(--grad-primary);color:#fff;box-shadow:var(--shadow-btn)}.btn-primary:hover:not(.btn-disabled){filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 6px 28px #6366f18c}.btn-primary:active:not(.btn-disabled){transform:translateY(0)}.btn-primary.btn-disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:#ffffff0a;border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost:hover{background:#ffffff14;color:var(--text-primary);border-color:var(--border-hover)}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-radius:var(--radius-md);padding:12px 16px;font-size:.85rem;font-weight:500}.alert-error{background:var(--error-bg);border:1px solid var(--error-border);color:#fca5a5}.results-idle{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:3rem 2rem;text-align:center}.idle-graphic{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center}.idle-ring{position:absolute;border-radius:50%;border:1px solid rgba(99,102,241,.15);animation:ring-expand 3s ease-in-out infinite}.ring-1{width:60px;height:60px;animation-delay:0s}.ring-2{width:80px;height:80px;animation-delay:.5s}.ring-3{width:100px;height:100px;animation-delay:1s}@keyframes ring-expand{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.1;transform:scale(1.05)}}.idle-icon{font-size:2rem;z-index:1;filter:drop-shadow(0 0 8px rgba(99,102,241,.4))}.idle-text{font-size:.9rem;color:var(--text-secondary);max-width:260px;line-height:1.6}.results-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 2rem}.loading-bars{display:flex;align-items:flex-end;gap:5px;height:48px}.loading-bar{width:8px;border-radius:4px;background:var(--grad-primary);animation:bar-bounce .8s ease-in-out infinite alternate}@keyframes bar-bounce{0%{height:12px;opacity:.4}to{height:48px;opacity:1}}.loading-text{font-size:.95rem;font-weight:600;color:var(--text-primary)}.loading-sub{font-size:.82rem;color:var(--text-muted)}.results-api-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 2rem;text-align:center}.api-error-icon{font-size:2.5rem}.api-error-title{font-size:1.05rem;font-weight:700;color:#fca5a5}.api-error-msg{font-size:.85rem;color:var(--text-secondary);max-width:280px}.api-error-hint{font-size:.8rem;color:var(--text-muted);line-height:1.8}.api-error-hint code{font-family:var(--font-mono);background:#ffffff0d;border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;font-size:.78rem;color:var(--accent-cyan);display:inline-block;margin-top:4px}.results-content{display:flex;flex-direction:column;gap:1.25rem;animation:fade-in .4s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:var(--radius-lg);border:1px solid}.banner-success{background:var(--success-bg);border-color:var(--success-border);box-shadow:var(--shadow-success)}.banner-error{background:var(--error-bg);border-color:var(--error-border);box-shadow:var(--shadow-error)}.banner-icon{width:56px;height:56px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.banner-success .banner-icon{background:#10b98126;color:var(--accent-emerald)}.banner-error .banner-icon{background:#f43f5e26;color:var(--accent-rose)}.banner-title{font-size:1.05rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.banner-sub{font-size:.82rem;color:var(--text-secondary);margin-top:2px}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 12px;text-align:center;transition:border-color .2s}.metric-card:hover{border-color:var(--border-hover)}.metric-value{font-size:1.5rem;font-weight:800;background:var(--grad-cyan);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em;line-height:1.1}.metric-label{font-size:.72rem;color:var(--text-muted);margin-top:4px;font-weight:500;letter-spacing:.03em}.conf-bars{display:flex;flex-direction:column;gap:10px}.conf-bar-wrapper{display:flex;flex-direction:column;gap:6px}.conf-bar-header{display:flex;justify-content:space-between;align-items:center}.conf-bar-label{font-size:.8rem;color:var(--text-secondary)}.conf-bar-value{font-size:.82rem;font-weight:700;font-family:var(--font-mono)}.conf-bar-track{height:6px;background:#ffffff0f;border-radius:999px;overflow:hidden}.conf-bar-fill{height:100%;border-radius:999px;transition:width .8s cubic-bezier(.16,1,.3,1);box-shadow:0 0 8px currentColor}.annotated-wrapper{display:flex;flex-direction:column;gap:8px}.annotated-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.annotated-img{width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--border);display:block}.notfound-tips{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 20px}.tips-heading{font-size:.85rem;font-weight:600;color:var(--text-primary);margin-bottom:10px}.tips-list{list-style:none;display:flex;flex-direction:column;gap:6px}.tips-list li{font-size:.82rem;color:var(--text-secondary);display:flex;align-items:baseline;gap:8px}.tips-list li:before{content:"→";color:var(--accent-primary);font-size:.75rem;flex-shrink:0}.model-info{display:flex;align-items:flex-start;gap:10px;background:#111827b3;border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 18px;font-size:.8rem;color:var(--text-secondary)}.info-icon{color:var(--accent-primary);margin-top:1px;flex-shrink:0}.info-details{display:flex;flex-wrap:wrap;gap:6px 4px;line-height:1.6}.info-sep{color:var(--text-muted);margin:0 2px}.info-details strong{color:var(--text-primary);font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#6366f14d}
