:root{--ink: #1d2430;--muted: #5d6675;--bg: #f6f4ee;--card: #ffffff;--line: #dcd8cf;--brand: #2b4a6f;--brand-ink: #f6f4ee;--in: #2e7d4f;--in-bg: #e3f2e8;--out: #b3261e;--out-bg: #fbe4e2;--none: #7a7f88;--none-bg: #ecedef;--band: rgba(46, 125, 79, .12);--radius: 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{padding:0;-webkit-text-size-adjust:100%}a{color:var(--brand)}button,input,select,textarea{font:inherit}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{background:var(--brand);color:var(--brand-ink);padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h1{font-size:18px;margin:0;font-weight:600}.topbar .who{font-size:14px;opacity:.9}.topbar select{background:#ffffff26;color:inherit;border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:4px 8px}.topbar select option{color:var(--ink)}main{flex:1;padding:14px 14px calc(env(safe-area-inset-bottom) + 76px);max-width:860px;width:100%;margin:0 auto}h2{font-size:17px;margin:18px 0 8px}h2:first-child{margin-top:4px}h3{font-size:15px;margin:14px 0 6px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}p.muted,.muted{color:var(--muted)}.small{font-size:13px}.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 4px calc(env(safe-area-inset-bottom) + 6px)}.tabbar a{flex:1;text-align:center;text-decoration:none;color:var(--muted);font-size:12px;padding:4px 0;border-radius:8px}.tabbar a.active{color:var(--brand);font-weight:600}.tabbar a span{display:block;font-size:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row+.row{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.row .name{font-weight:500}.row .sub{color:var(--muted);font-size:13px}.row .val{font-variant-numeric:tabular-nums;font-weight:600;text-align:right;white-space:nowrap}.row .val small{display:block;font-weight:400;color:var(--muted);font-size:12px}.list-link{text-decoration:none;color:inherit;display:block}.row.list-link{display:flex}.chip{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;font-weight:600}.chip.in{color:var(--in);background:var(--in-bg)}.chip.low,.chip.high{color:var(--out);background:var(--out-bg)}.chip.unranged{color:var(--none);background:var(--none-bg)}.btn{background:var(--brand);color:var(--brand-ink);border:0;border-radius:8px;padding:9px 14px;cursor:pointer;font-weight:600}.btn.secondary{background:var(--card);color:var(--brand);border:1px solid var(--brand)}.btn.danger{background:var(--out)}.btn:disabled{opacity:.5;cursor:default}.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}form.entry label{display:block;margin:10px 0 4px;font-size:13px;color:var(--muted);font-weight:600}form.entry input,form.entry select,form.entry textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}form.entry textarea{min-height:80px}form.entry .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.error{color:var(--out);background:var(--out-bg);padding:8px 10px;border-radius:8px;margin:8px 0}.ok{color:var(--in);background:var(--in-bg);padding:8px 10px;border-radius:8px;margin:8px 0}.error ul{margin:6px 0 0 18px;padding:0}.chart{width:100%;max-width:520px;height:auto;display:block;margin:0 auto}.chart .band{fill:var(--band)}.chart .axis{stroke:var(--line);stroke-width:1}.chart .line{fill:none;stroke:var(--brand);stroke-width:2}.chart .pt{fill:var(--brand)}.chart .pt.out{fill:var(--out)}.chart .pt.sel{stroke:var(--ink);stroke-width:2}.chart .pt.agg{fill:var(--brand);opacity:.9}.chart .spread{fill:var(--brand);opacity:.12}.chart .line.lab{stroke-dasharray:3 3;stroke-width:1.5}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;background:var(--card);color:var(--brand);padding:5px 12px;cursor:pointer;font-weight:600}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--brand);color:var(--brand-ink)}.rangepick{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--brand);font-weight:600}.dates{display:inline-flex;align-items:center;gap:6px}.dates input{padding:4px 6px;border:1px solid var(--line);border-radius:6px;font-size:13px}.spark{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.spark svg path{fill:none;stroke:var(--brand);stroke-width:1.5}.spark svg circle{fill:var(--brand)}.spark .arrow{font-size:12px;width:12px;text-align:center}.spark .arrow.in{color:var(--in)}.spark .arrow.low,.spark .arrow.high{color:var(--out)}.spark .arrow.unranged{color:var(--none)}.chart text{font-size:11px;fill:var(--muted)}.chart .band-label{font-size:10px;fill:var(--in)}.empty{text-align:center;color:var(--muted);padding:28px 10px}.center{display:flex;align-items:center;justify-content:center;min-height:40vh;color:var(--muted)}table.plain{width:100%;border-collapse:collapse;font-size:14px}table.plain th,table.plain td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}table.plain td.num{text-align:right;font-variant-numeric:tabular-nums}details summary{cursor:pointer;color:var(--brand);font-weight:600}.dev-badge{font-size:11px;background:#ffe9a8;color:#6b4e00;padding:2px 6px;border-radius:6px}
