:root{--bg:#0f1115;--surface:#171a21;--surface-2:#1e222b;--border:#2a2f3a;--text:#e8eaed;--text-dim:#9aa1ae;--text-faint:#6b7280;--accent:#c8f135;--accent-ink:#1a1f0a;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;--radius:10px;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}@media (prefers-color-scheme:light){:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f0f2f5;--border:#dcdfe5;--text:#15181d;--text-dim:#5a616e;--text-faint:#8b93a1;--accent:#7fa908;--accent-ink:#fff;--ok:#16a34a;--warn:#b45309;--bad:#dc2626}}*{box-sizing:border-box}#__nuxt,body,html{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit}.wrap{max-width:760px;margin:0 auto;padding:40px 20px 80px}.masthead{margin-bottom:32px}.masthead h1{letter-spacing:-.01em;margin:0 0 6px;font-size:20px;font-weight:600}.masthead p{color:var(--text-dim);margin:0;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card+.card{margin-top:16px}.btn{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);line-height:1.4;font:inherit;cursor:pointer;border-radius:8px;padding:9px 16px;font-weight:500;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){border-color:var(--text-faint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.mono{font-family:var(--mono)}.small{font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{justify-content:space-between}.note{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:14px 16px;font-size:14px}.note-bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--border))}.note-warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}.note-title{align-items:center;gap:7px;margin-bottom:4px;font-weight:600;display:flex}.note-bad .note-title{color:var(--bad)}.note-warn .note-title{color:var(--warn)}.dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.stub-banner{border:1px dashed color-mix(in srgb,var(--warn) 55%,var(--border));background:color-mix(in srgb,var(--warn) 8%,transparent);color:var(--text);border-radius:8px;margin-bottom:18px;padding:12px 14px;font-size:13px}.progress{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.progress>i{background:var(--accent);height:100%;transition:width .2s;display:block}.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.metric{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.metric .label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.metric .value{letter-spacing:-.02em;margin-top:4px;font-size:26px;font-weight:600}.metric .unit{color:var(--text-dim);margin-left:3px;font-size:14px;font-weight:400}table.kv{border-collapse:collapse;width:100%;font-size:13px}table.kv td{border-bottom:1px solid var(--border);padding:6px 0}table.kv td:first-child{color:var(--text-dim);width:45%}table.kv tr:last-child td{border-bottom:none}details summary{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;font-size:13px}pre.json{background:var(--bg);border:1px solid var(--border);font-family:var(--mono);border-radius:8px;margin:12px 0 0;padding:14px;font-size:12px;line-height:1.5;overflow-x:auto}.dropzone{border:1.5px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface);padding:44px 24px;transition:border-color .15s,background .15s}.dropzone.over,.dropzone:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.dropzone h2{margin:0 0 6px;font-size:16px;font-weight:600}.dropzone p{color:var(--text-dim);margin:0;font-size:13px}.spin{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:none;width:13px;height:13px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spin{animation-duration:2s}.progress>i{transition:none}}
