:root{--bg-base: #0a1119;--bg-surface: #101a24;--bg-sunken: #0c141d;--bg-hover: #1a2836;--border-subtle: #1c2b39;--border-default: #2a3d4f;--border-strong: #3c5267;--text-primary: #e9eff6;--text-secondary: #b6c4d2;--text-tertiary: #93a4b5;--accent: #5ec9b7;--money: #f2c14e;--over: #f2a0a0;--good: #7fe0b4;--caution: #f0cf70;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2.25rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease;color-scheme:dark}[hidden]{display:none!important}*{box-sizing:border-box}body{margin:0;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.55;-webkit-text-size-adjust:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1 0 auto;width:100%;max-width:60rem;margin:0 auto;padding:var(--space-xl) var(--space-lg) var(--space-2xl)}a{color:var(--accent)}h1{font-size:1.5rem;line-height:1.25;margin:0 0 var(--space-md);letter-spacing:-.015em}h2{font-size:.9375rem;margin:var(--space-xl) 0 var(--space-sm);color:var(--text-secondary);font-weight:600}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:var(--space-sm)}.brand-mark{display:inline-flex;color:var(--text-tertiary)}.brand-name{font-weight:650;letter-spacing:-.01em}.site-nav{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.ghost-btn,.pill-btn,.primary-btn,.download-btn,.icon-btn,.log-toggle{font:inherit;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),border-color var(--transition-fast)}.ghost-btn,.log-toggle{background:transparent;border:1px solid transparent;color:var(--text-secondary);padding:.4rem .6rem;font-size:.875rem}.ghost-btn:hover,.log-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.log-toggle{display:inline-flex;align-items:center;gap:.4rem;border-color:var(--border-subtle)}.log-count{background:var(--bg-hover);border-radius:999px;padding:0 .4rem;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--text-tertiary)}.primary-btn,.download-btn{background:var(--bg-hover);border:1px solid var(--border-strong);color:var(--text-primary);padding:.55rem .95rem;font-size:.875rem;font-weight:550}.primary-btn:hover:not(:disabled),.download-btn:hover{border-color:var(--accent)}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.pill-btn{background:transparent;border:1px solid var(--border-strong);color:var(--accent);border-radius:999px;padding:.35rem .85rem;font-size:.8125rem;margin-top:var(--space-md)}.pill-btn:hover{background:var(--bg-hover)}.icon-btn{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);min-width:44px;min-height:44px;font-size:1.35rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lede{color:var(--text-secondary);margin:0 0 var(--space-xl);max-width:48rem}.zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--space-lg)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-2xl) var(--space-lg);text-align:center;cursor:pointer;background:var(--bg-sunken);transition:border-color var(--transition-fast),background var(--transition-fast)}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--bg-surface)}.dz-title{margin:0 0 var(--space-xs);font-size:1.0625rem;font-weight:600}.dz-hint{margin:0;color:var(--text-tertiary);font-size:.875rem;overflow-wrap:anywhere}.pickers{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--space-xl);margin:var(--space-xl) 0}.field-label{margin:0 0 var(--space-sm);font-size:.8125rem;color:var(--text-secondary);font-weight:550}.chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.chip{font:inherit;cursor:pointer;text-align:left;background:var(--bg-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);padding:.4rem .6rem;min-height:44px;display:flex;flex-direction:column;gap:.1rem;transition:border-color var(--transition-fast),background var(--transition-fast)}.chip:hover{background:var(--bg-hover)}.chip.on{border-color:var(--accent);color:var(--text-primary);background:var(--bg-hover)}.chip.excluded .chip-name{text-decoration:line-through}.chip-name{font-family:var(--font-mono);font-size:.8125rem}.chip-meta{font-size:.6875rem;color:var(--text-tertiary)}.field-note{margin:var(--space-sm) 0 0;font-size:.8125rem;color:var(--text-tertiary);line-height:1.5;max-width:46rem}.field-note.warn{color:var(--caution)}.controls{margin:var(--space-xl) 0 var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.check{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;color:var(--text-secondary);cursor:pointer;min-height:32px}.check input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.progress-box{margin:var(--space-xl) 0;display:flex;flex-direction:column;gap:var(--space-sm);align-items:flex-start}.progress-track{width:100%;height:8px;background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .12s linear}.progress-line{margin:0;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-secondary)}.headline{margin:var(--space-2xl) 0 var(--space-lg)}.headline-figure{margin:0 0 var(--space-sm);font-size:1.35rem;line-height:1.3;font-weight:650;letter-spacing:-.015em}.headline-figure.bad{color:var(--over)}.headline-figure.good{color:var(--good)}.headline-sub{margin:0;color:var(--text-secondary);font-size:.9375rem}.score-box{background:var(--bg-sunken);border:1px solid var(--border-subtle);border-left:3px solid var(--money);border-radius:var(--radius-md);padding:var(--space-lg);margin:var(--space-xl) 0}.score-figure{margin:0;font-size:1.6rem;font-weight:650;color:var(--money);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.score-sub{margin:var(--space-xs) 0 0;color:var(--text-secondary);font-size:.875rem}.score-note{margin:var(--space-sm) 0 0;color:var(--text-tertiary);font-size:.8125rem}.facts{margin:var(--space-lg) 0;padding-left:1.1rem;color:var(--text-tertiary);font-size:.8125rem;line-height:1.6}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}td,th{padding:.45rem .5rem;text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:top}th{color:var(--text-tertiary);font-weight:550;font-size:.75rem;white-space:nowrap}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);white-space:nowrap}.match-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--over)}.match-text{min-width:20rem;color:var(--text-secondary);line-height:1.55}mark{background:var(--money);color:#16202b;padding:0 .12em;border-radius:2px}.excerpt{margin-top:var(--space-xs);font-size:.75rem;color:var(--text-tertiary);border-left:2px solid var(--border-default);padding-left:var(--space-sm)}.excerpt-label{display:block;color:var(--text-tertiary);font-family:var(--font-mono);font-size:.6875rem;margin-bottom:.1rem}.exports{margin-top:var(--space-2xl);border-top:1px solid var(--border-subtle);padding-top:var(--space-lg)}.export-count{margin:0 0 var(--space-md);font-size:.875rem;color:var(--text-secondary)}.export-row{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.error-box{margin:var(--space-xl) 0;padding:var(--space-lg);border:1px solid var(--over);border-radius:var(--radius-md);background:var(--bg-sunken)}.error-box p{margin:0 0 var(--space-md);color:var(--over)}.glossary-link{font:inherit;background:none;border:none;padding:0;color:inherit;cursor:help;border-bottom:1px dotted var(--text-tertiary)}.glossary-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.glossary-tip{position:fixed;z-index:60;max-width:min(26rem,calc(100vw - 1rem));background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:0 8px 28px #00000073}.glossary-tip strong{display:block;margin-bottom:var(--space-xs);font-size:.8125rem;color:var(--accent)}.glossary-tip p{margin:0;font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.modal-host{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.modal-backdrop{position:fixed;inset:0;background:#03070cbd}.modal-panel{position:relative;z-index:1;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:44rem;width:100%;max-height:min(85vh,48rem);display:flex;flex-direction:column;box-shadow:0 24px 64px #0000008c}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.modal-header h2{margin:0;font-size:1rem;color:var(--text-primary)}.modal-content{overflow-y:auto;padding:var(--space-lg);font-size:.9375rem;color:var(--text-secondary)}.modal-content h3{font-size:.875rem;color:var(--text-primary);margin:var(--space-xl) 0 var(--space-sm)}.modal-content h3:first-child{margin-top:0}.modal-content p,.modal-content li{line-height:1.6}.modal-content code{font-family:var(--font-mono);font-size:.8125em;background:var(--bg-sunken);padding:.1em .3em;border-radius:3px}.modal-content ul li{margin-bottom:var(--space-sm)}.tm-good strong{color:var(--good)}.tm-bad strong{color:var(--over)}.log-drawer{position:fixed;top:0;right:0;bottom:0;width:min(30rem,100vw);z-index:70;background:var(--bg-surface);border-left:1px solid var(--border-strong);display:flex;flex-direction:column;box-shadow:-12px 0 40px #00000073}.log-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle)}.log-header h2{margin:0;flex:1;font-size:.9375rem;color:var(--text-primary)}.log-list{flex:1;overflow-y:auto;padding:var(--space-md);font-family:var(--font-mono);font-size:.75rem;line-height:1.6}.log-line{display:flex;gap:.5rem;padding:.15rem 0}.log-time{color:var(--text-tertiary);flex-shrink:0}.log-marker{flex-shrink:0;width:1.4rem;color:var(--text-tertiary)}.log-text{overflow-wrap:anywhere;color:var(--text-secondary)}.log-good .log-marker{color:var(--good)}.log-warn .log-marker{color:var(--caution)}.log-bad .log-marker,.log-bad .log-text{color:var(--over)}.site-footer{flex-shrink:0;border-top:1px solid var(--border-subtle);background:var(--bg-surface);padding:var(--space-lg)}.footer-inner{max-width:60rem;margin:0 auto;font-size:.8125rem;color:var(--text-tertiary);display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center;justify-content:space-between}@media(max-width:40rem){.main-content{padding:var(--space-lg) var(--space-md) var(--space-2xl)}h1{font-size:1.2rem}.headline-figure{font-size:1.1rem}.score-figure{font-size:1.25rem}.match-table thead{display:none}.match-table,.match-table tbody,.match-table tr,.match-table td{display:block;width:100%}.match-table tr{border-bottom:1px solid var(--border-subtle);padding:var(--space-md) 0;display:grid;grid-template-columns:auto auto auto auto 1fr;grid-template-areas:"drop row longest containment ." "text text text text text";gap:.35rem var(--space-md);align-items:center}.match-table td{border:none;padding:0;width:auto}.match-table td:nth-child(1){grid-area:drop}.match-table td:nth-child(2){grid-area:row}.match-table td:nth-child(3){grid-area:longest}.match-table td:nth-child(4){grid-area:containment}.match-table td:nth-child(2):before{content:"row ";color:var(--text-tertiary)}.match-table td:nth-child(4):before{content:"covered ";color:var(--text-tertiary)}.match-text{grid-area:text;min-width:0;margin-top:var(--space-xs)}.modal-host{padding:0;align-items:flex-end}.modal-panel{max-height:92vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}
