:root{--bg-base: #0b0d11;--bg-surface: #101319;--bg-elevated: #161a22;--bg-panel: #0e1116;--bg-hover: #1b2029;--bg-active: #222834;--border-subtle: #1e232c;--border-default: #2a313d;--border-strong: #3a4453;--text-primary: #e8ecf3;--text-secondary: #a3aec0;--text-tertiary: #6f7b8d;--text-muted: #4d5769;--accent-primary: #f0932b;--accent-primary-hover: #ffa844;--accent-soft: rgba(240, 147, 43, .12);--status-good: #35c46b;--status-warn: #e8a63c;--status-bad: #ff4646;--status-info: #4a9eff;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", "Consolas", ui-monospace, monospace;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .8125rem;--font-size-lg: .9375rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.625rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .14s ease;--surface: var(--bg-elevated);--text: var(--text-primary);--border: var(--border-default);--accent: var(--accent-primary);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0;height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}a{color:var(--accent-primary);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}.topbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.brand{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.brand-mark{width:22px;height:22px;color:var(--accent-primary);flex:0 0 auto}.brand-name{font-size:var(--font-size-lg);font-weight:650;letter-spacing:-.015em}.topnav{display:flex;align-items:center;gap:var(--space-xs)}.navbtn{padding:6px 10px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);white-space:nowrap}.navbtn:hover{color:var(--text-primary);background:var(--bg-hover)}.navbtn-log.on{color:var(--accent-primary);border-color:var(--border-default);background:var(--accent-soft)}.main-content{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.intake{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-2xl) var(--space-lg);text-align:center}.intake-title{margin:0;font-size:var(--font-size-2xl);font-weight:640;letter-spacing:-.025em;line-height:1.2}.intake-sub{margin:0;max-width:46rem;color:var(--text-secondary);font-size:var(--font-size-lg);line-height:1.55}.dropzone{width:min(38rem,100%);padding:var(--space-2xl) var(--space-xl);border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.dropzone:hover,.dropzone.over{border-color:var(--accent-primary);background:var(--accent-soft)}.dz-icon{width:46px;height:46px;color:var(--accent-primary);margin-bottom:var(--space-sm)}.dz-primary{margin:0;font-size:var(--font-size-xl);font-weight:600}.dz-secondary{margin:var(--space-xs) 0 0;color:var(--text-secondary)}.dz-formats{margin:var(--space-md) 0 0;color:var(--text-tertiary);font-size:var(--font-size-sm);font-family:var(--font-mono)}.samplebtn{padding:8px 14px;background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.samplebtn:hover{color:var(--text-primary);border-color:var(--border-strong)}.trustline{margin:var(--space-sm) 0 0}.trustbtn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:8px 14px;background:#35c46b14;border:1px solid rgba(53,196,107,.28);border-radius:99px;color:var(--status-good);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast)}.trustbtn:hover{background:#35c46b29}.trust-ico{width:15px;height:15px;flex:0 0 auto}.workspace{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 25rem;grid-template-rows:minmax(0,1fr)}.viewport{position:relative;min-width:0;min-height:0;background:#0b0d11;border-right:1px solid var(--border-subtle)}#gl{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#gl:active{cursor:grabbing}.viewport-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;color:var(--text-secondary)}.vp-toolbar{position:absolute;top:var(--space-md);left:var(--space-md);display:flex;gap:var(--space-xs);flex-wrap:wrap}.vpbtn{padding:6px 10px;background:#101319e6;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;backdrop-filter:blur(6px);transition:color var(--transition-fast),border-color var(--transition-fast)}.vpbtn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong)}.vpbtn[aria-pressed=true]{color:var(--accent-primary);border-color:var(--accent-primary);background:var(--accent-soft)}.vpbtn:disabled{opacity:.4;cursor:not-allowed}.vp-hint{position:absolute;bottom:var(--space-md);left:var(--space-md);color:var(--text-muted);font-size:var(--font-size-xs);font-family:var(--font-mono);pointer-events:none}.panel{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-lg);background:var(--bg-panel)}.panel-file{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;padding-bottom:var(--space-md);border-bottom:1px solid var(--border-subtle)}.pf-name{flex:1 1 auto;min-width:0;font-weight:600;overflow-wrap:anywhere}.pf-meta{color:var(--text-tertiary);font-size:var(--font-size-sm);font-family:var(--font-mono)}.pf-change{padding:4px 8px;background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer}.pf-change:hover{color:var(--text-primary);border-color:var(--border-strong)}.verdict{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;padding:var(--space-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface)}.verdict-mark{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%}.verdict-mark svg{width:19px;height:19px}.verdict[data-state=ok]{border-color:#35c46b66}.verdict[data-state=ok] .verdict-mark{background:#35c46b26;color:var(--status-good)}.verdict[data-state=warn]{border-color:#e8a63c66}.verdict[data-state=warn] .verdict-mark{background:#e8a63c26;color:var(--status-warn)}.verdict[data-state=bad]{border-color:#ff464666}.verdict[data-state=bad] .verdict-mark{background:#ff464626;color:var(--status-bad)}.verdict[data-state=pending] .verdict-mark{background:var(--bg-active);color:var(--text-tertiary)}.verdict-title{font-size:var(--font-size-lg);font-weight:640}.verdict-sub{color:var(--text-secondary);font-size:var(--font-size-sm)}.progress{margin:var(--space-lg) 0}.progress-track{height:5px;border-radius:99px;background:var(--bg-active);overflow:hidden}.progress-fill{height:100%;width:0;border-radius:99px;background:var(--accent-primary);transition:width .18s ease}.progress-label{margin-top:var(--space-sm);color:var(--text-tertiary);font-size:var(--font-size-sm);font-family:var(--font-mono)}.sec-title{margin:var(--space-xl) 0 var(--space-sm);color:var(--text-tertiary);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase}.checks{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.check-row{display:flex;gap:var(--space-sm);align-items:flex-start}.check-icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-top:1px;border-radius:50%}.check-icon svg{width:11px;height:11px}.check-row[data-state=ok] .check-icon{background:#35c46b26;color:var(--status-good)}.check-row[data-state=warn] .check-icon{background:#e8a63c26;color:var(--status-warn)}.check-row[data-state=bad] .check-icon{background:#ff464626;color:var(--status-bad)}.check-label{font-weight:560}.check-detail{color:var(--text-secondary);font-size:var(--font-size-sm)}.kv{display:grid;grid-template-columns:1fr auto;gap:2px var(--space-md);align-items:baseline}.kv-key{color:var(--text-secondary);padding:3px 0}.kv-val{text-align:right;font-family:var(--font-mono);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;padding:3px 0;overflow-wrap:anywhere}.unitrow{display:flex;gap:var(--space-sm);align-items:flex-end;margin-top:var(--space-sm)}.field{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:3px}.field-wide{flex:2 1 0}.field-label{color:var(--text-tertiary);font-size:var(--font-size-xs)}.field select,.field input{width:100%;min-width:0;padding:7px 8px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font:inherit;font-size:var(--font-size-sm)}.field select:focus,.field input:focus{outline:none;border-color:var(--accent-primary)}.minibtn{flex:0 0 auto;padding:7px 12px;background:var(--bg-hover);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer}.minibtn:hover{border-color:var(--border-strong);background:var(--bg-active)}.toggles{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-md)}.check{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-secondary);cursor:pointer}.check input{accent-color:var(--accent-primary);width:15px;height:15px}.footnote{margin:var(--space-sm) 0 0;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.45}.actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}.btn{flex:1 1 auto;min-height:38px;padding:8px 14px;background:var(--bg-hover);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:550;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn:hover{background:var(--bg-active);border-color:var(--border-strong)}.btn-primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#16110a;font-weight:640}.btn-primary:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.actionmsg{margin:var(--space-sm) 0 0;color:var(--text-secondary);font-size:var(--font-size-sm);min-height:1.2em}.actionmsg[data-tone=error]{color:var(--status-bad)}.errorbox{padding:var(--space-lg);border:1px solid rgba(255,70,70,.35);border-radius:var(--radius-md);background:#ff46460f}.err-title{font-weight:620;margin-bottom:var(--space-xs)}.err-body{margin:0 0 var(--space-md);color:var(--text-secondary)}.site-footer{flex-shrink:0;padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-tertiary);font-size:var(--font-size-sm);text-align:center}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(26rem,100%);display:flex;flex-direction:column;background:var(--bg-elevated);border-left:1px solid var(--border-default);box-shadow:-18px 0 48px #00000073;z-index:60}.drawer-topbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.drawer-heading{font-weight:620}.drawer-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-right:-6px;background:none;border:0;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer}.drawer-close:hover{background:var(--bg-hover);color:var(--text-primary)}.drawer-close svg{width:17px;height:17px}.drawer-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono)}.drawer-clear{padding:3px 8px;background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer}.drawer-clear:hover{color:var(--text-primary)}.drawer-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-sm) var(--space-lg) var(--space-lg);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.6}.ev{display:grid;grid-template-columns:auto auto 1fr;gap:var(--space-sm);padding:2px 0;border-bottom:1px solid rgba(255,255,255,.03)}.ev-ts{color:var(--text-muted)}.ev-cat{color:var(--text-tertiary);text-transform:uppercase;font-size:.625rem;letter-spacing:.05em;padding-top:1px}.ev-msg{color:var(--text-secondary);overflow-wrap:anywhere}.ev[data-level=ok] .ev-msg{color:var(--status-good)}.ev[data-level=warn] .ev-msg{color:var(--status-warn)}.ev[data-level=err] .ev-msg{color:var(--status-bad)}.modal{width:min(40rem,calc(100vw - 2rem));max-height:min(80vh,46rem);padding:0;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-elevated);color:var(--text-primary);overflow:hidden}.modal::backdrop{background:#030508b8}.modal-close{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:none;border:0;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;z-index:2}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-close svg{width:17px;height:17px}.modal-body{max-height:min(80vh,46rem);overflow-y:auto;padding:var(--space-xl)}.modal-body h2{margin:0 0 var(--space-md);padding-right:2rem;font-size:var(--font-size-xl);font-weight:640;letter-spacing:-.015em}.modal-body h3{margin:var(--space-lg) 0 var(--space-xs);font-size:var(--font-size-base);font-weight:620;color:var(--accent-primary)}.modal-body p,.modal-body li{color:var(--text-secondary);line-height:1.62}.modal-body ul,.modal-body ol{margin:0;padding-left:1.15rem}.modal-body li{margin-bottom:var(--space-sm)}.modal-body strong{color:var(--text-primary)}.steps li::marker{color:var(--accent-primary);font-weight:700}.keys{list-style:none;padding:0}kbd{display:inline-block;min-width:1.6em;padding:1px 6px;margin-right:var(--space-sm);border:1px solid var(--border-default);border-bottom-width:2px;border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-align:center}.glossary-link{color:var(--accent-primary);border-bottom:1px dashed rgba(240,147,43,.5);cursor:help}.glossary-link:hover{border-bottom-style:solid}.glossary-tip{position:fixed;z-index:90;padding:var(--space-md);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:0 18px 44px #0000008c}.glossary-tip strong{display:block;margin-bottom:var(--space-xs);color:var(--accent-primary);font-size:var(--font-size-sm)}.glossary-tip p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5}@media(min-width:901px){#app{height:100vh;height:100dvh;overflow:hidden}.intake{min-height:0;overflow-y:auto}}@media(max-width:900px){.workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(14rem,48vh) auto}.viewport{border-right:0;border-bottom:1px solid var(--border-subtle)}.panel{overflow-y:visible}.main-content{display:block;overflow-y:visible}.vp-hint{display:none}.intake{min-height:70vh}.intake-title{font-size:1.375rem}.topnav{gap:0}.navbtn{padding:6px 7px;font-size:var(--font-size-xs)}.drawer{width:100%}}@media(prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}
