:root{--bg-root: #060608;--bg-surface: #0E0E12;--bg-elevated:#16161C;--bg-float: #1C1C24;--bg-card: var(--bg-elevated);--bg-base: var(--bg-root);--border: rgba(255,255,255,.05);--border-strong: rgba(255,255,255,.1);--border-hover: rgba(255,255,255,.15);--border-default: rgba(255,255,255,.1);--border-subtle: rgba(255,255,255,.06);--border-faint: rgba(255,255,255,.04);--surface: var(--bg-elevated);--radius-md: var(--r-md);--radius-sm: var(--r-sm);--radius: var(--r-md);--text-primary: #EDEDF2;--text-secondary: #A1A1AD;--text-muted: #6B6B7A;--text-dim: #7A7A88;--text-inverse: #0A0A0E;--text: var(--text-primary);--amber: #F59E0B;--cyan: #06B6D4;--emerald:#10B981;--violet: #8B5CF6;--rose: #EC4899;--blue: #3B82F6;--teal: #14B8A6;--orange: #F97316;--red: #EF4444;--danger: var(--red);--neutral:#A1A1AA;--accent: var(--amber);--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--fs-3xs:9px;--fs-2xs:10px;--fs-xs:11px;--fs-sm:13px;--fs-base:14px;--fs-md:16px;--fs-lg:20px;--fs-xl:28px;--fs-2xl:40px;--fs-3xl:56px;--fs-4xl:64px;--fs-hero:72px;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.15;--lh-normal:1.5;--lh-relaxed:1.7;--s0:0;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--s20:80px;--s24:96px;--r-none:0;--r-subtle:2px;--r-sm:4px;--r-md:6px;--r-full:9999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 8px 40px rgba(0,0,0,.6);--shadow-glow: 0 0 30px rgba(245,158,11,.08);--ease-out: cubic-bezier(.16,1,.3,1);--ease-spring: cubic-bezier(.34,1.56,.64,1);--dur-fast:.12s;--dur-normal:.25s;--dur-slow:.5s;--dur-glacial:3s;--rail-width:56px;--rail-expanded:200px;--content-max:1440px;--z-rail:300;--z-overlay:400;--z-toast:1000}[data-theme=dawn]{--bg-root: #F7F8FA;--bg-surface: #FFFFFF;--bg-elevated:#F1F3F5;--bg-float: #EAECF0;--bg-card: var(--bg-surface);--bg-base: var(--bg-elevated);--surface: var(--bg-surface);--border: rgba(0,0,0,.08);--border-strong: rgba(0,0,0,.12);--border-hover: rgba(0,0,0,.16);--border-default:rgba(0,0,0,.1);--border-subtle: rgba(0,0,0,.05);--border-faint: rgba(0,0,0,.03);--text-primary: #1A1A1A;--text-secondary: #5C5C5C;--text-muted: #6B6B6B;--text-dim: #8A8A8A;--text-inverse: #FFFFFF;--accent: #2D6A4F;--accent-glow:#2D6A4F18;--amber: #D4A017;--cyan: #0891B2;--emerald: #059669;--violet: #7C3AED;--rose: #DB2777;--blue: #2563EB;--teal: #0D9488;--orange: #EA580C;--red: #DC2626;--neutral: #71717A;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.07);--shadow-lg: 0 8px 24px rgba(0,0,0,.09);--shadow-glow: 0 2px 8px rgba(45,106,79,.1);--r-subtle: 4px;--r-sm: 6px;--r-md: 12px}[data-theme=dawn] body{background:var(--bg-root)!important}[data-theme=dawn] ::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}[data-theme=dawn] ::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=dawn] *{scrollbar-color:rgba(0,0,0,.12) transparent}[data-theme=dawn] ::selection{background:#2d6a4f2e;color:var(--text-primary)}[data-theme=dawn] .icon-rail{background:var(--bg-surface);border-right:1px solid var(--border)}[data-theme=dawn] .rail-item:hover{background:#2d6a4f0f;color:var(--text-secondary)}[data-theme=dawn] .rail-item.active{color:var(--accent);background:#2d6a4f14}[data-theme=dawn] .rail-item.active:before{background:var(--accent);box-shadow:none}[data-theme=dawn] .rail-divider{background:#00000014}[data-theme=dawn] .main-content{background:radial-gradient(circle,rgba(45,106,79,.15) 1px,transparent 1px),var(--bg-root)!important;background-size:16px 16px!important}[data-theme=dawn] .card{border-radius:12px;border:1px solid var(--border)}[data-theme=dawn] .card:after{display:none}[data-theme=dawn] .card:hover{box-shadow:0 6px 20px #2d6a4f1f,0 2px 4px #0000000a!important;border-color:#2d6a4f33;transform:translateY(-1px)}[data-theme=dawn] .prism-hero{background:linear-gradient(180deg,#faf5ee26,#faf5ee8c),url(/img/dawn-hero-study.jpg) center center / cover no-repeat!important;border-radius:12px}[data-theme=dawn] .prism-hero canvas{opacity:.45;mix-blend-mode:screen}[data-theme=dawn] .btn-primary{background:var(--accent);color:#fff;border-radius:6px}[data-theme=dawn] .btn-primary:hover{background:#245a42}[data-theme=dawn] .btn-sm{border-radius:6px}[data-theme=dawn] .btn-secondary:hover{background:var(--bg-elevated);border-color:#00000026}[data-theme=dawn] .btn-ghost:hover{background:#2d6a4f0f;color:var(--accent)}[data-theme=dawn] .input{border-radius:6px;background:var(--bg-surface);border:1px solid var(--border)}[data-theme=dawn] select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B6B6B' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}[data-theme=dawn] select.input option{background:#fff;color:#1a1a1a}[data-theme=dawn] .input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2d6a4f1f}[data-theme=dawn] .badge-dim{background:#0000000d}[data-theme=dawn] .badge-ok{background:#0596691a}[data-theme=dawn] .badge-warn{background:#b453091a}[data-theme=dawn] .badge-err{background:#b91c1c1a}[data-theme=dawn] .badge-info{background:#2563eb1a}[data-theme=dawn] .progress-track{background:#0000000f}[data-theme=dawn] .data-table tr:hover td{background:#2d6a4f0a}[data-theme=dawn] .modal-close:hover{background:#0000000f}[data-theme=dawn] .filter-chip:hover,[data-theme=dawn] .page-btn:hover{border-color:#00000026}[data-theme=dawn] .settings-tab:hover{background:#2d6a4f0a}[data-theme=dawn] .bar-row:hover{background:#00000008}[data-theme=dawn] .bar-track,[data-theme=dawn] .kw-tag:hover{background:#0000000f}[data-theme=dawn] .chapter-row:hover{background:#00000008}[data-theme=dawn] .outline-item.inserting{background:#2d6a4f14;border-color:var(--accent)}[data-theme=dawn] .dropzone.drag-over{background:#2d6a4f0f;border-color:var(--accent)}[data-theme=dawn] .state-error{background:#dc26260d;border-color:#dc26261f}[data-theme=dawn] .state-success{background:#0596690d;border-color:#0596691f}[data-theme=dawn] .skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-float) 50%,var(--bg-elevated) 75%);background-size:200% 100%}[data-theme=dawn] .modal-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg)}[data-theme=dawn] #toast{background:#1a1a1a;color:#fff}[data-theme=dawn] .check-card{background:#fb71850d;border-color:#fb71851a;border-left-color:var(--accent)}[data-theme=dawn] .progress-fill:after{background:linear-gradient(90deg,transparent,rgba(45,106,79,.1),transparent)}[data-theme=dawn] .fact-row:hover{background:#2d6a4f08}[data-theme=dawn] .btn:after{background:radial-gradient(circle at center,rgba(45,106,79,.06),transparent 60%)}[data-theme=dawn] .btn-primary:after{background:radial-gradient(circle at center,rgba(255,255,255,.15),transparent 60%)}[data-theme=dawn] .kpi-item:hover{border-color:#2d6a4f33}[data-theme=dawn] .kbd-hint{background:var(--bg-float);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary)}[data-theme=dawn] .kbd-hint kbd{background:var(--bg-elevated);border-color:var(--border);color:var(--text-primary)}[data-theme=dawn] .stat-card{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent)}.skip-link{position:absolute;top:-100%;left:var(--s4);z-index:9999;background:var(--accent);color:var(--text-inverse);padding:var(--s2) var(--s4);border-radius:0 0 var(--r-sm) var(--r-sm);font-weight:var(--fw-semibold);font-size:var(--fs-sm);transition:top var(--dur-fast)}.skip-link:focus{top:0;outline:2px solid var(--text-inverse);outline-offset:2px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-root)}body{font-family:var(--font-body);color:var(--text-primary);line-height:var(--lh-normal);overflow:hidden;height:100vh;transition:background-color .3s var(--ease-out),color .3s var(--ease-out);background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E"),radial-gradient(ellipse 50% 40% at 50% 30%,rgba(245,158,11,.03) 0%,transparent 55%),var(--bg-root)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;color:inherit}::selection{background:#f59e0b40;color:var(--text-primary)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ffffff1f}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}:root{--anim-state:running}.ambientBreathe,.rail-item.active:before,.glow-center:before{animation-play-state:var(--anim-state)}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-float) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}.skeleton-text{height:14px;margin-bottom:var(--s2);width:100%}.skeleton-text.short{width:60%}.skeleton-circle{width:48px;height:48px;border-radius:50%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}.spinner-lg{width:40px;height:40px;border-width:3px}.state-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s12) var(--s6);text-align:center;gap:var(--s4)}.state-empty .empty-icon{width:56px;height:56px;border-radius:50%;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.state-empty .empty-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.state-empty .empty-desc{font-size:var(--fs-sm);color:var(--text-dim);max-width:320px;line-height:var(--lh-relaxed)}.state-error{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s4);background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--r-md);margin-bottom:var(--s4)}.state-error .err-icon{width:20px;height:20px;color:var(--red);flex-shrink:0;margin-top:1px}.state-error .err-msg{flex:1;font-size:var(--fs-sm);color:var(--red);line-height:var(--lh-relaxed)}.state-error .err-retry{flex-shrink:0;font-size:var(--fs-xs);color:var(--accent);cursor:pointer;font-weight:var(--fw-semibold);padding:var(--s1) var(--s3);border:1px solid var(--accent);border-radius:var(--r-subtle);background:transparent;transition:all var(--dur-fast)}.state-error .err-retry:hover{background:#f59e0b1a}.state-success{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);background:#10b98114;border:1px solid rgba(16,185,129,.2);border-radius:var(--r-md);margin-bottom:var(--s4)}.state-success .ok-icon{width:20px;height:20px;color:var(--emerald);flex-shrink:0}.state-success .ok-msg{font-size:var(--fs-sm);color:var(--emerald);font-weight:var(--fw-medium)}.state-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s10);gap:var(--s4)}.state-loading .loading-msg{font-size:var(--fs-sm);color:var(--text-dim)}[data-state]{display:none}[data-state].active{display:block}.app-shell{display:flex;height:100vh;position:relative}.icon-rail{width:var(--rail-expanded);min-width:var(--rail-expanded);height:100vh;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;padding:var(--s4) 0;gap:var(--s1);z-index:var(--z-rail);transition:width var(--dur-normal) var(--ease-out),min-width var(--dur-normal) var(--ease-out);overflow:visible;position:relative}.icon-rail.collapsed{width:var(--rail-width);min-width:var(--rail-width);align-items:center}.rail-logo{width:100%;min-height:36px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:var(--s6);padding:0 var(--s4);position:relative;gap:var(--s3);flex-shrink:0;z-index:1}.icon-rail.collapsed .rail-logo{justify-content:center;padding:0}.logo-mark{flex-shrink:0;position:relative}.logo-mark img{display:block;width:28px;height:auto;transition:transform var(--dur-slow) var(--ease-out)}.rail-logo:hover .logo-mark img{transform:scale(1.08)}.logo-wordmark{font-family:var(--font-display);font-size:13px;font-weight:400;letter-spacing:.18em;color:var(--text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color var(--dur-normal) var(--ease-out)}.rail-logo:hover .logo-wordmark{color:var(--text-primary)}.icon-rail.collapsed .rail-logo .logo-wordmark{display:none}.rail-divider{width:24px;height:1px;background:var(--border-strong);margin:var(--s2) 0;flex-shrink:0}.rail-item{display:flex;align-items:center;width:100%;height:40px;min-height:40px;padding:0 var(--s4);gap:var(--s3);cursor:pointer;position:relative;transition:all var(--dur-fast) var(--ease-out);color:var(--text-muted);white-space:nowrap}.rail-item:hover{color:var(--text-secondary);background:#ffffff08}.rail-item.active{color:var(--accent);background:#f59e0b0a}.rail-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--accent);border-radius:0 2px 2px 0;box-shadow:0 0 10px var(--accent),0 0 20px var(--accent)}.rail-icon{width:20px;height:20px;min-width:20px;display:flex;align-items:center;justify-content:center;opacity:.55}.rail-item.active .rail-icon{opacity:1}.rail-item:hover .rail-icon{opacity:.8}.rail-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);font-family:var(--font-display);letter-spacing:.02em;transition:opacity var(--dur-fast) var(--ease-out)}.icon-rail.collapsed .rail-label{opacity:0;pointer-events:none}.rail-badge{margin-left:auto;font-size:9px;font-weight:var(--fw-semibold);background:var(--accent);color:var(--text-inverse);padding:1px 5px;border-radius:var(--r-subtle);transition:opacity var(--dur-fast)}.icon-rail.collapsed .rail-badge{opacity:0;pointer-events:none}.rail-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:var(--fw-bold);flex-shrink:0;transition:transform var(--dur-fast)}.rail-item:hover .rail-avatar{transform:scale(1.08)}.icon-rail.collapsed .rail-avatar{width:24px;height:24px;font-size:11px}.rail-spacer{flex:1}.rail-footer{display:flex;align-items:center;gap:var(--s2);padding:0 var(--s4);height:28px}.rail-status{width:8px;height:8px;border-radius:50%;background:var(--emerald);box-shadow:0 0 6px #10b98180;flex-shrink:0}.rail-theme-btn{display:flex;align-items:center;gap:var(--s2);padding:6px var(--s4);border-radius:8px;cursor:pointer;transition:background .15s,color .15s;color:var(--text-secondary);-webkit-user-select:none;user-select:none;width:100%}.rail-theme-btn:hover{background:#2d6a4f0f;color:var(--accent)}.rail-theme-btn .theme-icon{width:18px;height:18px;border-radius:50%;flex-shrink:0;position:relative;overflow:hidden;border:1.5px solid var(--border);transition:border-color .15s}.rail-theme-btn:hover .theme-icon{border-color:var(--accent)}.rail-theme-btn .theme-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:linear-gradient(135deg,#1a1a2e 50%,#f7f8fa 50%)}.rail-theme-btn .theme-icon:after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.rail-theme-btn .theme-label{font-size:var(--fs-2xs);white-space:nowrap;font-weight:var(--fw-medium);transition:opacity var(--dur-fast)}.icon-rail.collapsed .rail-theme-btn .theme-label{opacity:0;pointer-events:none;width:0;overflow:hidden}.rail-version{font-size:var(--fs-3xs);color:var(--text-muted);font-family:var(--font-mono);transition:opacity var(--dur-fast);white-space:nowrap}.icon-rail.collapsed .rail-version{opacity:0;pointer-events:none}.rail-toggle{position:absolute;right:0;top:50%;transform:translate(50%,-50%);width:26px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:calc(var(--z-rail) + 1);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:0 var(--r-sm) var(--r-sm) 0;transition:all var(--dur-normal) var(--ease-out);color:var(--text-muted)}.rail-toggle:before{content:"";position:absolute;left:-5px;top:-1px;bottom:-1px;width:5px;background:var(--bg-surface);border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);transition:all var(--dur-normal) var(--ease-out);box-shadow:0 0 0 transparent}.rail-toggle:hover{color:var(--text-primary);background:var(--bg-elevated);border-color:var(--border-hover);box-shadow:0 0 16px #00000059}.rail-toggle:hover:before{background:var(--bg-elevated)}.rail-toggle:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;z-index:1}.rail-toggle svg{min-width:14px;width:14px;height:14px;transition:transform var(--dur-normal) var(--ease-out)}.icon-rail.collapsed .rail-toggle{right:auto;left:calc(100% - 2px);transform:translateY(-50%);border-radius:0 var(--r-sm) var(--r-sm) 0}.icon-rail.collapsed .rail-toggle:before{display:none}.icon-rail.collapsed .rail-toggle svg{transform:rotate(180deg)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1;background:radial-gradient(ellipse 70% 50% at 50% 35%,var(--accent-glow, rgba(245,158,11,.04)) 0%,transparent 55%),radial-gradient(ellipse 40% 30% at 80% 80%,rgba(139,92,246,.01) 0%,transparent 60%),var(--bg-root);transition:background var(--dur-slow) var(--ease-out)}.page-header{padding:var(--s8) var(--s10) 0;flex-shrink:0}.page-header .page-eyebrow{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-family:var(--font-display);margin-bottom:var(--s2);display:flex;align-items:center;gap:var(--s2)}.page-header .page-eyebrow:before{content:"";width:0;height:0;border-left:5px solid var(--accent);border-top:3px solid transparent;border-bottom:3px solid transparent}.page-header h1{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:var(--lh-tight);color:var(--text-primary)}.page-header .page-desc{font-size:var(--fs-md);color:var(--text-secondary);margin-top:var(--s2)}.content-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--s6) var(--s10) var(--s16)}.content-scroll main{all:unset;display:flex;flex-direction:column;gap:var(--s6);min-height:100%}.page{display:none;animation:pageIn var(--dur-normal) var(--ease-out)}.page.active{display:block}@keyframes pageIn{0%{opacity:0;transform:translateY(4px);filter:brightness(.95)}to{opacity:1;transform:translateY(0);filter:brightness(1)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-subtle)}.rail-item:focus-visible{outline-offset:-2px}.btn{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);font-size:var(--fs-sm);font-weight:var(--fw-medium);font-family:var(--font-display);letter-spacing:.01em;transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;line-height:1.5;position:relative}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent);color:var(--text-inverse);font-weight:var(--fw-semibold);position:relative;box-shadow:0 0 0 transparent}.btn-primary:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:var(--accent);border-radius:inherit;opacity:0;transition:opacity var(--dur-fast);z-index:-1;filter:blur(8px)}.btn-primary:hover:before{opacity:.3}.btn-primary:hover{filter:brightness(1.15);box-shadow:0 0 24px #f59e0b33;transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-strong)}.btn-secondary:hover{background:var(--bg-float);color:var(--text-primary);border-color:#ffffff26}.btn-ghost{color:var(--text-muted)}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0a}.btn-lg{padding:var(--s3) var(--s6);font-size:var(--fs-base)}.btn:disabled{opacity:.35;pointer-events:none}.card{background:var(--bg-surface);border:1px solid var(--border);box-shadow:0 0 0 transparent,0 0 0 transparent;transition:box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);position:relative}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);opacity:.4;transition:opacity var(--dur-normal);z-index:0;pointer-events:none}.card:hover:before{opacity:.8}.card:after{content:"";position:absolute;top:0;left:5%;right:5%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;box-shadow:0 0 0 transparent;transition:opacity var(--dur-normal),box-shadow var(--dur-normal);z-index:1;pointer-events:none}.card:hover:after{opacity:1;box-shadow:0 0 48px var(--accent-glow,rgba(245,158,11,.35))}.card:hover{box-shadow:0 0 64px var(--accent-glow,rgba(245,158,11,.16)),0 4px 24px #00000080;border-color:#ffffff26;transform:translateY(-1px)}.card-header{padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--s3);position:relative}.card-header h3{font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.02em}.card-body{padding:var(--s5)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s1)}.kpi-item{background:var(--bg-surface);border:1px solid var(--border);padding:var(--s5);transition:all var(--dur-fast) var(--ease-out);position:relative;overflow:hidden;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}.kpi-item:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity var(--dur-normal)}.kpi-item:hover:after{opacity:.7}.kpi-item:hover{border-color:var(--border-strong);transform:translateY(-1px)}.kpi-value{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:var(--fw-bold);line-height:1;letter-spacing:-.03em;color:var(--text-primary)}.kpi-label{font-size:var(--fs-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--fw-medium);margin-top:var(--s2)}.kpi-change{font-size:var(--fs-xs);margin-top:var(--s1);font-weight:var(--fw-medium)}.kpi-change.up{color:var(--emerald)}.kpi-change.down{color:var(--red)}.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);font-family:var(--font-display);letter-spacing:.03em;line-height:1.7;clip-path:polygon(4px 0,100% 0,calc(100% - 4px) 100%,0 100%)}.badge-ok{background:#10b9811f;color:var(--emerald)}.badge-warn{background:#f59e0b1f;color:var(--amber)}.badge-err{background:#ef44441f;color:var(--red)}.badge-info{background:#3b82f61f;color:var(--blue)}.badge-dim{background:#ffffff0d;color:var(--text-muted)}.badge-warn{background:#f59e0b1f;color:#f59e0b}.engine-option{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);border:2px solid var(--border-strong);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.engine-option:has(input:checked){border-color:var(--accent);background:#06b6d40a}.input{padding:var(--s2) var(--s3);background:var(--bg-root);border:1px solid var(--border-strong);font-size:var(--fs-sm);outline:none;width:100%;transition:all var(--dur-fast)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f59e0b14}.input::placeholder{color:var(--text-muted)}select.input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:var(--s8);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.progress-track{height:3px;background:#ffffff0f;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width var(--dur-slow) var(--ease-out);position:relative}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);animation:shimmer 2s infinite}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th{text-align:left;padding:var(--s2) var(--s4);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-strong);font-family:var(--font-display)}.data-table td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);color:var(--text-secondary)}.data-table tr:hover td{background:#ffffff05}.data-table tbody tr{transition:background var(--dur-fast)}.data-table tbody tr:hover{background:linear-gradient(90deg,rgba(245,158,11,.03),rgba(255,255,255,.02),transparent)}.appendix-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.appendix-table th{background:#4285f41f;padding:var(--s2) var(--s3);font-weight:var(--fw-semibold);text-align:center;font-size:var(--fs-sm);border:1px solid var(--border-strong);font-family:var(--font-display)}.appendix-table td{padding:var(--s2) var(--s3);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-xs)}.appendix-table td:first-child{text-align:center}.appendix-table .table-caption{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-sm);margin-bottom:var(--s3);color:var(--text-primary);display:flex;align-items:center;gap:var(--s2)}.appendix-table .table-caption:before{content:"";width:3px;height:16px;background:var(--accent);border-radius:2px}.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border-strong);margin-bottom:var(--s6)}.tab-item{padding:var(--s2) var(--s4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);cursor:pointer;transition:all var(--dur-fast);font-family:var(--font-display);letter-spacing:.01em;position:relative}.tab-item:hover{color:var(--text-secondary)}.tab-item.active{color:var(--accent)}.tab-panel{display:none}.tab-panel.active{display:block}.stepper{display:flex;align-items:center;gap:0;margin-bottom:var(--s6)}.step{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--text-muted)}.step-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:var(--fw-semibold);border:2px solid var(--border-strong);font-family:var(--font-display);transition:all var(--dur-normal)}.step.active{color:var(--accent)}.step.active .step-num{background:var(--accent);border-color:var(--accent);color:var(--text-inverse)}.step.done{color:var(--emerald)}.step.done .step-num{background:#10b98126;border-color:var(--emerald);color:var(--emerald)}.step-line{width:28px;height:1px;background:var(--border-strong);margin:0 var(--s1)}.step-line.done{background:var(--emerald)}.outline-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);margin-bottom:var(--s1);background:var(--bg-surface);border:1px solid var(--border);font-size:var(--fs-sm);transition:all var(--dur-fast)}.outline-item:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.outline-pages{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;font-family:var(--font-mono)}.outline-handle{color:var(--text-muted);cursor:grab;font-family:var(--font-mono);font-size:14px;letter-spacing:-1px;-webkit-user-select:none;user-select:none;padding:0 2px;flex-shrink:0}.outline-item.dragging{opacity:.4;border-style:dashed}.outline-item.drag-over{border-color:var(--accent);background:#f59e0b14}.outline-item.deleting{border-color:#ef444459;background:#fef3c71f;cursor:pointer;animation:pulse-delete 1.6s ease-in-out infinite}@keyframes pulse-delete{0%,to{opacity:1;background:#fef3c71f}50%{opacity:.7;background:#fef3c740}}.outline-item.deleting:hover{border-color:#ef444480;background:#fef3c74d}.outline-item.inserting{border-color:var(--accent);background:#f59e0b0f;cursor:pointer;animation:pulse-insert 1.2s ease-in-out infinite}@keyframes pulse-insert{0%,to{border-color:var(--accent)}50%{border-color:#f59e0b40}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--accent-glow,rgba(245,158,11,.3))}50%{box-shadow:0 0 12px 2px var(--accent-glow,rgba(245,158,11,.4))}}.outline-item.inserting:hover{border-color:#d97706;background:#f59e0b1f}.outline-subitem{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);margin-bottom:var(--s1);margin-left:var(--s8);background:var(--bg-surface);border:1px solid var(--border);font-size:var(--fs-sm);transition:all var(--dur-fast)}.outline-subitem:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.outline-subitem .outline-pages{margin-left:auto}.outline-pages-input-inline{width:48px;text-align:right;font-size:inherit;font-family:var(--font-mono);color:var(--text-primary);padding:0 2px;border:1px solid transparent;border-radius:3px;background:transparent;-moz-appearance:textfield}.outline-pages-input-inline::-webkit-outer-spin-button,.outline-pages-input-inline::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.outline-pages-input-inline:focus{border-color:var(--accent);background:var(--card);outline:none}.outline-name{cursor:text;padding:var(--s1) var(--s2);border-radius:var(--r-sm);transition:all var(--dur-fast);flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.outline-name:hover{background:#f59e0b0a;border:none}.outline-name:focus{outline:none;background:#f59e0b14;box-shadow:inset 0 0 0 1px var(--accent);border:none}.outline-pages-input{width:100px;text-align:center;font-family:var(--font-display);font-size:32px;font-weight:var(--fw-bold);background:transparent;border:none;border-bottom:2px solid var(--border);color:var(--accent);padding:var(--s2) 0;border-radius:0;letter-spacing:-.01em;-moz-appearance:textfield}.outline-pages-input::-webkit-outer-spin-button,.outline-pages-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.outline-pages-input:focus{outline:none;border-bottom-color:var(--accent)}.dropzone{border:2px dashed var(--border-strong);padding:var(--s12) var(--s6);text-align:center;cursor:pointer;transition:all var(--dur-fast);position:relative;overflow:hidden;box-shadow:0 0 0 transparent;background:#ffffff05}.dropzone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);background-size:24px 24px;opacity:.6;transition:opacity var(--dur-fast)}.dropzone:hover{border-color:var(--accent);background:#f59e0b0a}.dropzone:hover:before{opacity:.8}.dropzone-icon{opacity:.45;margin-bottom:var(--s4);transition:all var(--dur-normal)}.dropzone:hover .dropzone-icon{opacity:.6;transform:translateY(-2px)}.dropzone-uploaded{display:flex;flex-direction:column;align-items:center;gap:var(--s2);position:relative;z-index:1}.dropzone-uploaded-icon{width:48px;height:48px;border-radius:50%;background:#10b9811a;display:flex;align-items:center;justify-content:center;margin-bottom:var(--s2);animation:dropzone-uploaded-pop .3s var(--ease-out)}.dropzone-uploaded-name{font-size:13px;font-weight:600;color:var(--text-primary);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone-uploaded-label{font-size:11px;color:var(--emerald);font-weight:500;letter-spacing:.02em}.dropzone-uploaded-remove{display:inline-flex;align-items:center;gap:4px;margin-top:var(--s2);font-size:11px;color:var(--text-muted);background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;transition:all var(--dur-fast)}.dropzone-uploaded-remove:hover{color:var(--red);border-color:var(--red);background:#ef44440f}@keyframes dropzone-uploaded-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.checklist-upload{border:1.5px dashed var(--border-strong);padding:var(--s3) var(--s4);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);position:relative}.checklist-upload:hover{border-color:var(--accent);background:#f59e0b08}.checklist-upload.drag-over{border-color:var(--accent);background:#f59e0b0f;box-shadow:inset 0 0 20px #f59e0b0a}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#000000a6;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-normal) var(--ease-out);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-backdrop.open{opacity:1;pointer-events:auto}.modal{background:var(--bg-surface);border:1px solid var(--border-strong);width:min(900px,92vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 16px 80px #00000080,0 0 120px var(--accent-glow,rgba(245,158,11,.08));transform:scale(.95) translateY(8px);transition:transform var(--dur-normal) var(--ease-spring);position:relative}.modal-backdrop.open .modal{transform:scale(1) translateY(0)}.modal:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.6;pointer-events:none}.modal-header{display:flex;align-items:center;gap:var(--s3);padding:var(--s5) var(--s6);border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h3{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-bold)}.modal-close{margin-left:auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--r-subtle);color:var(--text-muted);transition:all var(--dur-fast);font-size:18px;line-height:1}.modal-close:hover{color:var(--text-primary);background:#ffffff0f}.modal-body{padding:var(--s6);overflow-y:auto;flex:1}.filter-bar{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap}.filter-search{background:var(--bg-root);border:1px solid var(--border-strong);padding:var(--s2) var(--s3);font-size:var(--fs-sm);color:var(--text-primary);outline:none;width:220px;transition:border-color var(--dur-fast)}.filter-search:focus{border-color:var(--accent)}.filter-search::placeholder{color:var(--text-muted)}.filter-chip{padding:var(--s1) var(--s3);font-size:var(--fs-xs);font-family:var(--font-display);color:var(--text-muted);cursor:pointer;border:1px solid var(--border-strong);background:transparent;transition:all var(--dur-fast);white-space:nowrap}.filter-chip:hover{color:var(--text-primary);border-color:#ffffff26}.filter-chip.active{color:var(--accent);border-color:var(--accent);background:#f59e0b0f}.filter-chip .count{font-size:9px;margin-left:4px;opacity:.6}.modal-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:var(--s4);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted)}.page-btns{display:flex;gap:var(--s1)}.page-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted);border:1px solid var(--border-strong);transition:all var(--dur-fast);font-family:var(--font-display)}.page-btn:hover{color:var(--text-primary);border-color:#ffffff26}.page-btn.active{background:var(--accent);border-color:var(--accent);color:var(--text-inverse);font-weight:var(--fw-semibold)}.modal-table tr{cursor:pointer}.modal-table td:last-child{text-align:right}.row-action{visibility:hidden;color:var(--accent);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.modal-table tr:hover .row-action{visibility:visible}.stream-panel{background:var(--bg-root);border:1px solid var(--border);color:var(--text-secondary);padding:var(--s4);font-family:var(--font-mono);font-size:var(--fs-sm);overflow-y:auto;line-height:1.8;flex:1}.stream-panel .cursor:after{content:"▊";animation:blink 1s step-end infinite;color:var(--accent)}.cursor-blink{animation:cursor-blink-anim .8s step-end infinite}@keyframes cursor-blink-anim{0%,to{opacity:1}50%{opacity:0}}.score-ring-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.score-ring-wrap svg{transform:rotate(-90deg)}.score-ring-value{position:absolute;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-bold)}.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4)}.glow-center{position:relative}.glow-center:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 28% 55% at 50% 30%,var(--accent-glow,rgba(245,158,11,.08)) 0%,transparent 65%);pointer-events:none;z-index:0;animation:ambientBreathe 7s ease-in-out infinite}@keyframes ambientBreathe{0%,to{opacity:.45}50%{opacity:1}}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4)}.gap-s1{gap:var(--s1)}.gap-s2{gap:var(--s2)}.gap-s3{gap:var(--s3)}.gap-s4{gap:var(--s4)}.gap-s6{gap:var(--s6)}.mb-s2{margin-bottom:var(--s2)}.mb-s4{margin-bottom:var(--s4)}.mb-s6{margin-bottom:var(--s6)}.mb-s8{margin-bottom:var(--s8)}.mt-s2{margin-top:var(--s2)}.mt-s4{margin-top:var(--s4)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}.text-dim{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.font-mono{font-family:var(--font-mono)}.text-warn{color:var(--orange)}.fw-semibold{font-weight:var(--fw-semibold)}.fw-bold{font-weight:var(--fw-bold)}.prism-hero{position:relative;height:280px;margin-bottom:var(--s6);overflow:hidden;background:var(--bg-surface);border-radius:8px}.prism-hero canvas{display:block;width:100%;height:100%}@media(max-width:768px){.prism-hero{height:200px}}@media(max-width:480px){.prism-hero{height:160px}}@media(prefers-reduced-motion:reduce){.prism-hero canvas{animation:none}}.prism-hero+.page-title{position:relative}.prism-hero+.page-title:before{content:"";position:absolute;top:-20px;left:50%;transform:translate(-50%);width:300px;height:40px;background:radial-gradient(ellipse at center,rgba(139,92,246,.06),transparent 70%);pointer-events:none}@media(max-width:768px){.prism-hero{height:200px}.prism-scene{transform:scale(.55);transform-origin:center center}}@media(prefers-reduced-motion:reduce){.prism-3d,.light-orb,.light-beam,.spectrum-band,.s-ray,.dust,.geo-float{animation:none}.prism-hero canvas{opacity:0}.prism-hero{background:linear-gradient(135deg,var(--bg-surface),var(--bg-elevated) 60%,var(--bg-root))!important}[data-theme=dawn] .prism-hero{background:linear-gradient(135deg,#e8f0e4,#f0f4ee 60%,var(--bg-root))!important}}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.settings-tabs{display:flex;gap:0;border-bottom:1px solid var(--border-strong);margin-bottom:var(--s6);overflow-x:auto}.settings-tab{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s5);font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);font-family:var(--font-display);font-weight:var(--fw-medium);border-bottom:2px solid transparent;white-space:nowrap;position:relative}.settings-tab svg{flex-shrink:0;opacity:.5;transition:opacity var(--dur-fast)}.settings-tab:hover{color:var(--text-primary);background:#ffffff05}.settings-tab:hover svg{opacity:.8}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.settings-tab.active svg{opacity:1;color:var(--accent)}.settings-panel{display:none;animation:pageIn var(--dur-normal) var(--ease-out)}.settings-panel.active{display:block}.overview-content{display:flex;flex-direction:column;gap:var(--s6)}.ov-hero-row{display:flex;gap:var(--s6);align-items:stretch}.ov-health-card{display:flex;gap:var(--s5);align-items:center;padding:var(--s5);border-radius:var(--r-md);background:var(--bg-elevated);border:1px solid var(--border);flex-shrink:0}.ov-stat-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);flex:1}.ov-stat-card{padding:var(--s4);border-radius:var(--r-md);background:var(--bg-elevated);text-align:center;border:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;transition:border-color .2s,transform .2s}.ov-stat-card:hover{border-color:var(--accent);transform:translateY(-2px)}.ov-stat-num{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.2}.ov-stat-label{font-size:var(--fs-xs);color:var(--text-dim);margin-top:var(--s1)}.ov-dims{display:flex;flex-direction:column;gap:var(--s3);min-width:180px}.ov-dim-row{display:flex;align-items:center;gap:var(--s2)}.ov-dim-name{font-size:var(--fs-2xs);color:var(--text-dim);width:64px;flex-shrink:0;text-align:right}.ov-dim-track{flex:1;height:4px;border-radius:2px;background:var(--border);overflow:hidden}.ov-dim-fill{height:100%;border-radius:2px;transition:width .4s ease}.ov-dim-score{font-size:var(--fs-2xs);color:var(--text-primary);font-weight:var(--fw-semibold);font-family:var(--font-mono);width:24px;flex-shrink:0;text-align:right}.bar-list{display:flex;flex-direction:column;gap:0;max-height:400px;overflow-y:auto}.bar-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0;min-height:34px}.bar-row:hover{background:#ffffff08}.bar-name{flex-shrink:0;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-xs);color:var(--text-secondary);text-align:right}.bar-track{flex:1;height:8px;border-radius:4px;background:#ffffff0f;overflow:hidden}.bar-fill{height:100%;border-radius:4px;background:var(--blue);opacity:.7;transition:width .3s ease}.bar-row:hover .bar-fill{opacity:1}.bar-val{width:40px;flex-shrink:0;font-size:var(--fs-xs);color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right}.keyword-cloud{display:flex;flex-wrap:wrap;gap:var(--s2)}.kw-tag{padding:var(--s1) var(--s3);font-size:var(--fs-xs);color:var(--text-dim);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-full);cursor:default;-webkit-user-select:none;user-select:none;transition:background .15s}.kw-tag:hover{background:#ffffff0f}@media(max-width:768px){.ov-hero-row{flex-direction:column}.ov-health-card{flex-direction:column;align-items:center}.ov-dims{min-width:0;width:100%}.ov-stat-col{grid-template-columns:1fr 1fr}}.generate-layout{display:grid;grid-template-columns:1fr 340px;gap:var(--s6);height:calc(100vh - 220px)}.chapter-row{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);font-size:var(--fs-sm);border-bottom:1px solid var(--border);transition:background var(--dur-fast)}.chapter-row:hover{background:#ffffff05}.chapter-row.current{background:#f59e0b0f}.chapter-row.viewing{background:#3b82f614;border-left:2px solid var(--accent)}.chapter-row.done,.chapter-row.generating{cursor:pointer}.chapter-row .ch-progress{display:inline-block;height:2px;background:var(--accent);border-radius:1px;vertical-align:middle;margin-left:var(--s1);transition:width .3s}.chapter-pages{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;font-family:var(--font-mono)}.facts-list{max-height:260px;overflow-y:auto}.fact-row{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border-bottom:1px solid var(--border);font-size:var(--fs-xs);transition:background var(--dur-fast)}.fact-row:hover{background:#ffffff04}.fact-row:last-child{border-bottom:none}.fact-cat{flex-shrink:0;width:48px;font-size:10px;padding:1px var(--s1);border-radius:var(--r-subtle);text-align:center;font-weight:var(--fw-medium);white-space:nowrap}.fact-cat.duration{background:#3b82f626;color:#60a5fa}.fact-cat.quality{background:#10b98126;color:#34d399}.fact-cat.personnel{background:#8b5cf626;color:#a78bfa}.fact-cat.equipment{background:#f59e0b26;color:#fbbf24}.fact-cat.other{background:#a1a1aa1f;color:#a1a1aa}.fact-name{flex-shrink:0;width:54px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fact-val{flex:1;min-width:0;background:transparent;border:none;border-bottom:1px dashed var(--border-strong);color:var(--text-secondary);font-size:var(--fs-xs);padding:1px 0;outline:none;transition:all var(--dur-fast);font-family:inherit}.fact-val:focus{border-bottom-color:var(--accent);color:var(--text-primary)}.fact-val::placeholder{color:var(--text-dim)}.fact-dirty{flex-shrink:0;font-size:10px;color:var(--amber);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.facts-footer{font-size:11px;color:var(--text-dim);line-height:1.7;padding:var(--s2) var(--s4);border-top:1px solid var(--border)}.facts-collapsed .facts-list{display:none}.facts-toggle{flex-shrink:0;margin-left:auto;cursor:pointer;color:var(--text-muted);transition:all var(--dur-fast);font-size:14px;line-height:1;padding:0 var(--s1)}.facts-toggle:hover{color:var(--text-primary)}.skeleton{background:linear-gradient(90deg,#ffffff08 25%,#ffffff0f,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.toast{position:fixed;bottom:var(--s6);right:var(--s6);padding:var(--s3) var(--s5);background:var(--bg-float);border:1px solid var(--border-strong);color:var(--text-primary);font-size:var(--fs-sm);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--s3);animation:toastIn var(--dur-normal) var(--ease-spring);font-family:var(--font-display)}@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.g3,.generate-layout{grid-template-columns:1fr}.ov-stat-row{grid-template-columns:repeat(2,1fr)}.page-header{padding:var(--s4) var(--s5) 0}.page-header h1{font-size:var(--fs-xl)}.content-scroll{padding:var(--s4) var(--s5) var(--s10)}}@media(max-width:768px){.icon-rail,.icon-rail:hover{width:44px;min-width:44px}.rail-label,.rail-badge,.rail-version{display:none!important}.kpi-grid,.g2{grid-template-columns:1fr}.prism-hero{height:200px}.prism-scene{transform:scale(.6)}}.analysis-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);align-items:start}.analysis-col{display:flex;flex-direction:column;min-height:440px}.analysis-col-header{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.analysis-col-header h3{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.analysis-col-body{max-height:440px;overflow-y:auto;min-height:200px}.analysis-line{line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-wrap:break-word}.analysis-line-label{color:var(--text-muted);margin-right:var(--s2);white-space:nowrap}.analysis-line-value{color:var(--text-secondary)}.analysis-line-bold{font-weight:var(--fw-bold);color:var(--text-primary)}.analysis-pager{display:flex;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s2) 0;border-top:1px solid var(--border)}.analysis-pager-btn{width:28px;height:28px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);transition:all var(--dur-fast)}.analysis-pager-btn:hover:not(:disabled){background:var(--bg-float);border-color:var(--accent)}.analysis-pager-btn:disabled{opacity:.3;cursor:default}.analysis-pager-info{font-size:var(--fs-xs);color:var(--text-muted);min-width:48px;text-align:center}.analysis-fade-in,.analysis-score-row{animation:fadeIn .3s ease both}@media(max-width:768px){.analysis-two-col{grid-template-columns:1fr}}@media(max-width:375px){.page-header h1{font-size:var(--fs-lg)}.page-header .page-desc{font-size:var(--fs-sm)}.content-scroll{padding:var(--s3) var(--s4) var(--s8)}.kpi-value{font-size:var(--fs-xl)}.card-body{padding:var(--s3)}.btn-lg{padding:var(--s2) var(--s4);font-size:var(--fs-sm)}.prism-hero{height:140px}.tab-item{padding:var(--s1) var(--s2);font-size:var(--fs-xs)}}.reveal{opacity:0;transform:translateY(12px);transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-d1{transition-delay:0ms}.reveal-d2{transition-delay:40ms}.reveal-d3{transition-delay:80ms}.reveal-d4{transition-delay:.12s}.reveal-d5{transition-delay:.16s}.reveal-d6{transition-delay:.2s}.reveal-d7{transition-delay:.24s}.reveal-d8{transition-delay:.28s}.btn{overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,rgba(255,255,255,.15) 0%,transparent 60%);opacity:0;transform:scale(.5);transition:opacity .15s,transform .15s;pointer-events:none}.btn:active:after{opacity:1;transform:scale(1.5);transition:opacity 0s,transform .15s}.btn-primary:after{background:radial-gradient(circle at center,rgba(255,255,255,.25) 0%,transparent 60%)}.kpi-item:hover{transform:translateY(-2px);border-color:#ffffff26}.rail-item.active:before{animation:indicatorPulse 2s ease-in-out infinite}@keyframes indicatorPulse{0%,to{box-shadow:0 0 6px var(--accent),0 0 16px var(--accent)}50%{box-shadow:0 0 12px var(--accent),0 0 28px var(--accent)}}.skeleton{background:linear-gradient(90deg,#ffffff05 25%,#ffffff0f,#ffffff05 75%);background-size:200% 100%;animation:skeletonPulse 2s ease-in-out infinite;border-radius:2px}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}.toast{animation:toastSlideUp .25s cubic-bezier(.34,1.56,.64,1);box-shadow:0 8px 40px #0009}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.tab-item{position:relative}.tab-item:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:0;height:2px;background:var(--accent);transition:width .25s cubic-bezier(.16,1,.3,1)}.tab-item.active:after{width:60%}.tab-item.active:hover:after{width:60%}.tab-item:hover:after{width:30%}.dropzone.drag-over{border-color:var(--accent);background:#f59e0b0f;box-shadow:inset 0 0 40px #f59e0b0a}.dropzone.drag-over:before{opacity:.8}.option-pills{display:inline-flex;gap:var(--s1);background:var(--bg-root);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px}.pill{padding:var(--s1) var(--s3);font-size:var(--fs-xs);font-family:var(--font-display);color:var(--text-muted);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);border-radius:calc(var(--r-sm) - 2px);background:transparent;border:none;white-space:nowrap;box-shadow:0 0 0 transparent}.pill:hover{color:var(--text-primary);background:var(--bg-elevated)}.pill.active{color:var(--text-primary);background:var(--bg-float);box-shadow:0 1px 3px #0000004d}.kbd-hint{position:fixed;bottom:16px;left:50%;transform:translate(-50%);padding:4px 12px;background:#22222ce6;border:1px solid rgba(255,255,255,.1);font-size:10px;color:#6b6b7ab3;font-family:JetBrains Mono,Fira Code,monospace;opacity:.5;pointer-events:none;z-index:var(--z-overlay);letter-spacing:.04em;border-radius:2px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.kbd-hint kbd{display:inline-block;padding:0 4px;background:#060608;border:1px solid rgba(255,255,255,.05);border-radius:2px;font-size:9px;color:#a1a1adcc;margin:0 2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.card-body,.stream-panel,.data-table tbody td{background:linear-gradient(180deg,rgba(245,158,11,.025) 0%,rgba(245,158,11,.012) 50%,transparent 100%)}.card,.kpi-item{background:linear-gradient(180deg,var(--bg-surface) 0%,rgba(245,158,11,.02) 100%)}.outline-item{background:linear-gradient(90deg,var(--bg-surface) 0%,rgba(245,158,11,.012) 100%)}.chapter-row:nth-child(2n){background:#f59e0b04}.section-picker{margin-bottom:var(--s6);animation:fadeIn var(--dur-normal) var(--ease-out)}.section-picker .card-header{display:flex;align-items:center;gap:var(--s2)}.section-picker .scan-badge{font-size:var(--fs-xs);padding:2px 8px;border-radius:999px;background:#10b9811f;color:#10b981;font-weight:var(--fw-semibold);margin-left:auto}.section-list{display:flex;flex-direction:column;max-height:320px;overflow-y:auto}.section-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);cursor:pointer;border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--dur-fast);min-height:48px;position:relative}.section-row:hover{border-color:#3b82f6;background:#3b82f60f}.section-row.selected{border-color:#3b82f6;background:#3b82f614;box-shadow:0 0 0 1px inset #3b82f633}.section-row .section-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}.section-row.selected .section-radio{border-color:#3b82f6;background:#3b82f6}.section-row.selected .section-radio:after{content:"";width:6px;height:6px;border-radius:50%;background:#fff}.section-row .section-info{flex:1;min-width:0}.section-row .section-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.section-row .section-meta{font-size:var(--fs-xs);color:var(--text-dim);margin-top:2px}.section-row .section-pages{font-size:var(--fs-xs);color:var(--text-muted);font-family:var(--font-mono);flex-shrink:0}.section-divider{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);margin:var(--s2) 0;color:var(--text-muted);font-size:var(--fs-xs)}.section-divider:before,.section-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.section-row.no-split{border:1px dashed var(--border-faint);border-style:dashed}.section-row.no-split .section-name{color:var(--text-secondary)}.section-picker-actions{display:flex;gap:var(--s2);padding-top:var(--s4)}.section-picker-actions .btn{flex:1;justify-content:center}.btn:disabled,.btn.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.compare-upload-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5);margin-bottom:var(--s8)}.compare-upload-row .card{cursor:pointer;transition:all var(--dur-normal) var(--ease-out)}.compare-upload-row .card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.compare-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5)}.compare-vs{display:flex;align-items:center;justify-content:center;gap:var(--s6);padding:var(--s4) 0}.compare-vs-score{text-align:center}.compare-vs-score .big{font-size:var(--fs-4xl);font-weight:var(--fw-bold);font-family:var(--font-mono)}.compare-vs-score.lose .big{color:var(--text-muted)}.compare-vs-score.win .big{color:var(--emerald)}.compare-dim-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0}.compare-dim-row .dim-label{font-size:var(--fs-xs);color:var(--text-secondary);width:48px;flex-shrink:0}.compare-dim-row .dim-bars{flex:1;display:flex;align-items:center;gap:var(--s2)}.compare-dim-bar{height:8px;border-radius:4px}.compare-dim-bar.a{background:var(--blue)}.compare-dim-bar.b{background:var(--emerald)}.compare-finding-card{background:var(--surface);border-radius:var(--radius-md);padding:var(--s5);border:1px solid var(--border-subtle)}.compare-finding-card h4{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:var(--s3);color:var(--text-primary)}.compare-upload-row .card.empty{cursor:pointer}.compare-upload-row .card.empty:hover{border-color:var(--accent)}.compare-upload-row .card.empty .empty-icon{width:32px;height:32px;color:var(--text-muted);display:block;transition:color var(--dur-normal)}.compare-upload-row .card.empty:hover .empty-icon{color:var(--accent)}.compare-upload-row .card.empty .empty-hint{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.5;text-align:center}.compare-upload-row .card.empty .empty-hint strong{color:var(--accent);font-weight:var(--fw-semibold)}.compare-upload-row .card.filled{cursor:default}.compare-upload-row .card.filled:hover{transform:none;box-shadow:var(--shadow-sm)}.compare-upload-row .card .file-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0}.compare-upload-row .card .file-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--fs-xs);font-weight:var(--fw-bold)}.compare-upload-row .card .file-icon.pdf{background:#ef44441f;color:#ef4444}.compare-upload-row .card .file-icon.docx{background:#3b82f61f;color:#3b82f6}.compare-upload-row .card .file-meta{flex:1;min-width:0}.compare-upload-row .card .file-name{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compare-upload-row .card .file-size{font-size:10px;color:var(--text-dim);margin-top:2px}.compare-upload-row .card .file-del{width:24px;height:24px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--dur-fast);font-size:16px;line-height:1}.compare-upload-row .card .file-del:hover{background:#ef44441a;color:#ef4444}.compare-upload-row .card .status-dot{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--text-dim)}.compare-upload-row .card .status-dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%}.compare-upload-row .card .status-dot.ready:before{background:var(--emerald)}.compare-upload-row .card .status-dot.waiting:before{background:var(--text-muted)}.compare-upload-row .card .status-dot.active:before{background:var(--accent);animation:pulse 1s ease-in-out infinite}.compare-upload-row .card .status-dot.done:before{background:var(--emerald)}#compare-progress-section{display:none;text-align:center;margin-bottom:var(--s8);animation:fadeIn var(--dur-normal) var(--ease-out)}.compare-progress-steps{display:flex;justify-content:center;gap:var(--s8);margin-bottom:var(--s5)}.compare-progress-step{display:flex;flex-direction:column;align-items:center;gap:var(--s2);font-size:var(--fs-xs);color:var(--text-muted)}.compare-progress-step .step-dot{width:32px;height:32px;border-radius:50%;border:2px solid var(--border-default);display:flex;align-items:center;justify-content:center;transition:all var(--dur-normal);font-size:var(--fs-xs)}.compare-progress-step.active .step-dot{border-color:var(--accent);background:#f973161a;color:var(--accent)}.compare-progress-step.done .step-dot{border-color:var(--emerald);background:#10b9811a;color:var(--emerald)}.compare-progress-bar-wrap{background:var(--border-subtle);border-radius:4px;height:4px;overflow:hidden;max-width:400px;margin:0 auto var(--s6)}.compare-progress-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--amber),var(--accent));background-size:200% 100%;width:0%;transition:width .4s var(--ease-out);animation:progressShimmer 1.5s linear infinite}@keyframes progressShimmer{0%{background-position:200% 0}to{background-position:0 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.chart-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--s3)}.chart-tpl-card{padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s var(--ease-out);background:var(--bg-surface)}.chart-tpl-card:hover{border-color:var(--accent);background:var(--bg-elevated);transform:translateY(-1px);box-shadow:var(--shadow-md)}.chart-tpl-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg-surface));box-shadow:inset 0 0 0 1px var(--accent)}.chart-tpl-name{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);text-align:center}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm,6px);padding:4px 12px;font-size:.85em;transition:all .15s ease}.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow,rgba(59,130,246,.06))}.btn-sm{padding:7px 14px;font-size:calc(var(--fs-sm) * .93)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-base);padding:24px}.login-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg,12px);padding:40px 32px;display:flex;flex-direction:column;gap:16px}.login-logo{text-align:center;margin-bottom:8px}.login-logo h1{font-size:1.8em;font-weight:700;color:var(--accent);margin:0;letter-spacing:2px}.login-subtitle{color:var(--text-muted);font-size:.9em;margin-top:4px}.login-tabs{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm,6px);overflow:hidden}.login-tab{flex:1;padding:10px;text-align:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:.9em;transition:all .15s}.login-tab.active{background:var(--accent);color:#fff;font-weight:600}.login-tab:hover:not(.active){background:var(--accent-glow,rgba(59,130,246,.06))}.login-form{display:flex;flex-direction:column;gap:10px}.login-label{font-size:.8em;color:var(--text-muted);margin-bottom:2px}.login-input{width:100%;padding:12px 14px;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm,6px);color:var(--text-primary);font-size:1em;outline:none;transition:border-color .15s}.login-input:focus{border-color:var(--accent)}.login-phone-display{font-size:.85em;color:var(--text-secondary);text-align:center;padding:4px 0}.login-btn{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm,6px);font-size:1em;font-weight:600;cursor:pointer;transition:opacity .15s}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.85em;padding:4px;opacity:.8}.login-link:hover{opacity:1}.login-link:disabled{opacity:.4;cursor:not-allowed}.login-error{color:#f87171;font-size:.85em;text-align:center;padding:8px;background:#f8717114;border-radius:var(--radius-sm,6px)}.login-mock-hint{font-size:.75em;color:var(--text-muted);text-align:center;padding:8px;background:var(--accent-glow,rgba(59,130,246,.06));border-radius:var(--radius-sm,6px)}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-base)}.auth-loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.profile-page{padding:32px;max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.profile-header h2{margin:0;font-size:1.4em;color:var(--text-primary)}.profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg,12px);padding:24px;display:flex;flex-direction:column;gap:14px}.profile-card h3{margin:0;font-size:1em;color:var(--text-secondary);font-weight:600}.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4em;font-weight:700;flex-shrink:0}.profile-info{display:flex;flex-direction:column;gap:2px}.profile-name{font-size:1.1em;font-weight:600;color:var(--text-primary)}.profile-phone{font-size:.85em;color:var(--text-muted)}.profile-badge{display:inline-block;font-size:.7em;padding:2px 8px;background:#facc1526;color:#facc15;border-radius:999px;width:fit-content;margin-top:2px}.profile-card .profile-avatar{margin-right:16px}.profile-card:first-of-type{flex-direction:row;align-items:center}.profile-loading{color:var(--text-muted);font-size:.9em}.quota-display{display:flex;flex-direction:column;gap:10px}.quota-total{display:flex;align-items:baseline;gap:6px}.quota-number{font-size:2em;font-weight:700;color:var(--accent)}.quota-unit{font-size:.9em;color:var(--text-muted)}.quota-detail{display:flex;gap:24px}.quota-item{display:flex;gap:6px;font-size:.85em}.quota-label{color:var(--text-muted)}.quota-value{color:var(--text-secondary);font-weight:500}.quota-bar-wrap{height:6px;background:var(--bg-base);border-radius:3px;overflow:hidden}.quota-bar{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.plan-card{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:16px;text-align:center;display:flex;flex-direction:column;gap:6px;position:relative}.plan-card-popular{border-color:var(--accent);background:var(--accent-glow,rgba(59,130,246,.06))}.plan-badge{position:absolute;top:-8px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;font-size:.65em;padding:2px 10px;border-radius:999px;font-weight:600}.plan-name{font-weight:600;color:var(--text-primary);font-size:.95em}.plan-quota{font-size:.8em;color:var(--text-secondary)}.plan-price{font-size:1.1em;font-weight:700;color:var(--accent)}.plan-notice{font-size:.75em;color:var(--text-muted);text-align:center;padding:8px 0}.profile-btn{width:100%;padding:10px;border:none;border-radius:var(--radius-sm,6px);cursor:pointer;font-size:.9em;transition:opacity .15s}.profile-btn:hover{opacity:.85}.profile-btn-logout{background:#ef44441a;color:#ef4444}@media(max-width:600px){.plans-grid{grid-template-columns:1fr}.quota-detail{flex-direction:column;gap:4px}}.quota-info-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm,6px);font-size:.85em;margin-bottom:8px}.quota-info-ok{background:#22c55e14;color:#22c55e}.quota-info-warning{background:#facc1514;color:#eab308}.quota-info-insufficient{background:#ef444414;color:#ef4444}.quota-info-action{margin-left:auto;font-weight:500}.announcement-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg,12px);padding:24px;max-width:480px;width:90%;display:flex;flex-direction:column;gap:16px}.announcement-header{display:flex;justify-content:space-between;align-items:center}.announcement-header h3{margin:0;font-size:1.1em;color:var(--text-primary)}.announcement-counter{font-size:.75em;color:var(--text-muted);background:var(--bg-base);padding:2px 8px;border-radius:999px}.announcement-content{color:var(--text-secondary);font-size:.9em;line-height:1.6;white-space:pre-wrap;max-height:50vh;overflow-y:auto}.announcement-footer{display:flex;justify-content:flex-end}.admin-page{padding:24px;max-width:1200px;margin:0 auto}.admin-header{margin-bottom:20px}.admin-header h2{margin:0;font-size:1.5em;color:var(--text-primary)}.admin-tabs{display:flex;gap:2px;margin-bottom:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:4px;overflow-x:auto;flex-wrap:wrap}.admin-tab{padding:10px 16px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.95em;border-radius:var(--r-sm);transition:all var(--dur-fast);display:flex;align-items:center;gap:8px;white-space:nowrap}.admin-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.admin-tab.active{color:var(--accent);background:var(--bg-float);font-weight:var(--fw-semibold)}.admin-tab-icon{width:18px;height:18px}.admin-panel{min-height:300px}.admin-denied{text-align:center;padding:80px 20px;color:var(--text-muted)}.admin-denied h2{color:var(--text-primary)}.admin-loading{padding:40px;text-align:center;color:var(--text-muted)}.admin-error{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ef444414;color:#ef4444;border-radius:var(--r-subtle);margin:12px 0}.admin-section-title{font-size:1.1em;color:var(--text-primary);margin:20px 0 10px}.admin-empty{color:var(--text-muted);text-align:center;padding:32px}.admin-stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg,12px);padding:24px 20px;text-align:center;transition:transform var(--dur-fast),border-color var(--dur-fast)}.stat-card:hover{transform:translateY(-2px);border-color:var(--accent)}.stat-value{font-size:2.2em;font-weight:var(--fw-bold);color:var(--accent)}.stat-label{font-size:.9em;color:var(--text-muted);margin-top:6px}.admin-table-wrap{overflow-x:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md)}.admin-table{width:100%;border-collapse:collapse;font-size:.95em}.admin-table th{text-align:left;padding:12px 16px;border-bottom:2px solid var(--border);color:var(--text-muted);font-weight:var(--fw-semibold);white-space:nowrap;background:var(--bg-elevated)}.admin-table td{padding:11px 16px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.admin-cell-id{font-family:monospace;font-size:.85em}.admin-cell-key{font-family:monospace;font-size:.9em;color:var(--accent);white-space:nowrap}.admin-cell-value{font-family:monospace;font-size:.85em;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-cell-err{font-size:.85em;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ef4444}.admin-input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-subtle);background:var(--bg-base);color:var(--text-primary);font-size:.95em;outline:none;transition:border-color var(--dur-fast)}.admin-input:focus{border-color:var(--accent)}.admin-input-wide{width:100%}.admin-select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-subtle);background:var(--bg-base);color:var(--text-primary);font-size:.95em}.admin-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-subtle);background:var(--bg-base);color:var(--text-primary);font-size:.95em;resize:vertical;outline:none;transition:border-color var(--dur-fast)}.admin-textarea:focus{border-color:var(--accent)}.admin-form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.admin-search-bar{display:flex;gap:8px;align-items:center;margin-bottom:16px}.admin-th-hint{font-size:.78em;color:var(--text-muted);font-weight:400}.admin-num-col{text-align:right}.admin-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-copy-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-subtle);background:var(--bg-base);color:var(--text-secondary);font-size:.85em;cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast);white-space:nowrap}.admin-copy-btn:hover{border-color:var(--accent);color:var(--accent)}.admin-copy-btn .admin-id-full{font-family:monospace;color:var(--text-secondary);max-width:210px;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}.admin-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1001;padding:16px}.admin-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);max-width:760px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000004d}.admin-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.admin-modal-head h3{margin:0;font-size:1.1em;color:var(--text-primary)}.admin-quota-summary{display:flex;gap:24px;padding:14px 20px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap}.admin-quota-summary span{font-size:.95em;color:var(--text-secondary)}.admin-delta-in{color:#16a34a}.admin-delta-out{color:#ef4444}.admin-records-table-wrap{overflow-y:auto;padding:8px 20px 20px}.admin-records-table-wrap .admin-table{font-size:.9em}.admin-empty{padding:24px;text-align:center;color:var(--text-muted)}.admin-quota-info{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-subtle);padding:16px;display:flex;gap:24px;margin:12px 0}.quota-row{display:flex;gap:8px;align-items:center;font-size:1em;color:var(--text-secondary)}.quota-row strong{color:var(--accent)}.admin-quota-add{margin-top:20px}.admin-create-form{margin-bottom:24px;display:flex;flex-direction:column;gap:8px}.admin-announcement-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-subtle);padding:12px 16px;margin-bottom:8px}.announcement-card-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}.announcement-card-header strong{color:var(--text-primary)}.announcement-card-date{font-size:.8em;color:var(--text-muted)}.announcement-card-header .btn-danger{margin-left:auto;color:#ef4444;border-color:#ef4444}.admin-announcement-card p{margin:0;font-size:.95em;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap}.btn-danger:hover{background:#ef44441a}.admin-stats-detail .admin-stat-cards{margin-top:0}.admin-tasks{padding:4px 0}.admin-task-filters{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.admin-task-filter{padding:7px 14px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-card);color:var(--text-muted);cursor:pointer;font-size:.9em;transition:all var(--dur-fast)}.admin-task-filter:hover{border-color:var(--accent);color:var(--text-primary)}.admin-task-filter.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent);font-weight:var(--fw-semibold)}.admin-task-total{margin-left:auto;color:var(--text-muted);font-size:.9em}.admin-task-status{display:inline-block;padding:3px 10px;border-radius:var(--r-full);font-size:.8em;font-weight:var(--fw-semibold)}.admin-task-status.running{background:#22c55e1f;color:#22c55e}.admin-task-status.pending{background:#fbbf241f;color:#fbbf24}.admin-task-status.failed{background:#ef44441f;color:#ef4444}.admin-task-status.done{background:#6382f01f;color:var(--accent)}.admin-task-status.cancelled,.admin-task-status.paused{background:var(--bg-float);color:var(--text-muted)}.admin-icon{flex:none}.profile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:#0006;display:flex;justify-content:flex-end;animation:drawer-fade-in var(--dur-normal) ease}.profile-drawer{width:min(400px,90vw);height:100%;background:var(--bg-surface);border-left:1px solid var(--border-strong);box-shadow:-8px 0 40px #0000004d;position:relative;overflow-y:auto;animation:drawer-slide-in var(--dur-normal) var(--ease-out)}.profile-drawer-close{position:absolute;top:12px;right:12px;z-index:3;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);font-size:1.6rem;line-height:1;cursor:pointer}.profile-drawer-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.profile-drawer .profile-page{padding:48px 24px 32px;max-width:none}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-fade-in{0%{opacity:0}to{opacity:1}}
