:root{--paper: #faf7f2;--panel: #f0ebe1;--ink: #0a0a0a;--muted: #6b6258;--accent: #b8232c;--ok: #2f6f4f;--warn: #a8791a;--line: #d8cfc0}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}.masthead{padding:2.5rem 1.5rem 1rem;max-width:1100px;margin:0 auto;border-bottom:1px solid var(--line)}.eyebrow{font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .4rem}.masthead h1{font-family:Georgia,Times New Roman,serif;font-size:2.4rem;margin:0}.dek{color:var(--muted);max-width:60ch}.grid{max-width:1100px;margin:1.5rem auto;padding:0 1.5rem;display:grid;grid-template-columns:360px 1fr;gap:1.5rem;align-items:start}@media(max-width:820px){.grid{grid-template-columns:1fr}}.loading{color:var(--muted);font-family:ui-monospace,monospace}.card,.detail{background:var(--panel);border:1px solid var(--line);padding:1.25rem}.label{font-family:ui-monospace,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0}.device-id{font-family:ui-monospace,monospace;font-size:1.5rem;margin:.2rem 0 .6rem;word-break:break-all}.badge{display:inline-block;font-family:ui-monospace,monospace;font-size:.72rem;padding:.25rem .6rem;border:1px solid;letter-spacing:.05em}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.new{color:var(--accent);border-color:var(--accent)}.badge.warn{color:var(--warn);border-color:var(--warn)}.meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem .8rem;margin:1rem 0;font-size:.9rem}.meta dt{color:var(--muted);font-family:ui-monospace,monospace;font-size:.78rem}.meta dd{margin:0}.actions{display:flex;gap:.5rem;margin:1rem 0}.btn{font:inherit;font-size:.85rem;padding:.5rem .8rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);cursor:pointer}.btn.ghost{background:transparent;color:var(--ink)}.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}.what{border-left:3px solid var(--accent);padding:.5rem .8rem;background:#b8232c0d}.what-title{font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 .3rem}.detail h2{font-family:Georgia,serif;font-size:1.2rem;margin:1.2rem 0 .6rem}.detail h2:first-child{margin-top:0}.thresholds{margin-bottom:1rem}.bar{position:relative;display:flex;height:20px;border:1px solid var(--line);overflow:hidden}.seg.nonlink{background:#e8d8d8}.seg.undecided{background:#efe6cf}.seg.link{background:#d8e8de}.marker{position:absolute;top:-3px;width:2px;height:26px;background:var(--ink)}.tlegend{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--muted);margin:.35rem 0 0}.discount{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--warn);margin:.2rem 0 0}table.breakdown{width:100%;border-collapse:collapse;font-size:.85rem}table.breakdown th{text-align:left;font-family:ui-monospace,monospace;font-size:.7rem;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:.3rem .4rem}table.breakdown td{padding:.3rem .4rem;border-bottom:1px solid var(--line)}td.num{text-align:right;font-family:ui-monospace,monospace}.state.agree{color:var(--ok)}.state.disagree{color:var(--accent)}.state.missing{color:var(--muted)}.visits{list-style:none;padding:0;margin:0;font-size:.82rem}.visits li{display:grid;grid-template-columns:1fr auto auto;gap:.8rem;padding:.35rem 0;border-bottom:1px solid var(--line);align-items:center}.vtime{color:var(--muted)}.vmatch{font-family:ui-monospace,monospace;font-size:.72rem}.vmatch.ok{color:var(--ok)}.vmatch.new{color:var(--accent)}.vmatch.warn{color:var(--warn)}.vnet{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--muted)}.muted{color:var(--muted)}.error{color:var(--accent);font-family:ui-monospace,monospace}.footer{max-width:1100px;margin:1rem auto 3rem;padding:1rem 1.5rem 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;color:var(--muted);font-family:ui-monospace,monospace;flex-wrap:wrap}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
