:root{--bg: #ffffff;--ink: #16181d;--dim: #6b7280;--line: #e5e7eb;--accent: #1c65c8;--danger: #b42318;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #16181d;--ink: #e8eaed;--dim: #9aa0aa;--line: #2b2f36}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.signin{max-width:22rem;margin:12vh auto;padding:0 1rem;display:grid;gap:.9rem}.signin h1{font-size:1.15rem;margin:0 0 .5rem}.signin label{display:grid;gap:.3rem;color:var(--dim)}input,select{font:inherit;color:var(--ink);background:var(--bg);padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px}input[type=checkbox]{width:1rem;height:1rem;padding:0}button{font:inherit;padding:.5rem .9rem;border:0;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;color:var(--dim);border:1px solid var(--line)}button.on{background:var(--accent);color:#fff}.error{color:var(--danger);margin:0}.note{color:var(--dim);max-width:46rem}.shell header{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;border-bottom:1px solid var(--line)}.shell nav{display:flex;gap:.4rem;margin-right:auto}.shell nav button{background:transparent;color:var(--ink)}.shell nav button.on{background:var(--accent);color:#fff}.shell .who{color:var(--dim)}.shell .who b{color:var(--danger);font-weight:600}.shell main{padding:1rem;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.45rem .7rem;border-bottom:1px solid var(--line)}th{color:var(--dim);font-weight:500}td.dim{color:var(--dim)}tr.off{opacity:.5}tr.sensitive td{background:color-mix(in srgb,var(--danger) 7%,transparent)}.users{display:grid;grid-template-columns:20rem 1fr;gap:1.5rem;align-items:start}.users aside{position:sticky;top:1rem}.users section{min-width:0}.search{display:grid;grid-template-columns:1fr auto;gap:.4rem;margin-bottom:.8rem}.found{list-style:none;margin:0;padding:0;max-height:70vh;overflow-y:auto}.found button{display:grid;gap:.1rem;width:100%;text-align:left;background:transparent;color:var(--ink);padding:.45rem .6rem;border-radius:6px}.found button.on{background:var(--accent);color:#fff}.found button.on .dim{color:#ffffffbf}.balances{list-style:none;margin:.3rem 0 1rem;padding:0;display:flex;gap:1.2rem;flex-wrap:wrap}.grant{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin:.6rem 0}.warning{flex-basis:100%;margin:.2rem 0 0;color:var(--danger)}.badge{margin-left:.5rem;padding:.05rem .4rem;border-radius:4px;font-size:.8rem;font-weight:500;background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.badge.paid{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.history{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.2rem;margin-top:1.5rem}.history h3{margin:0 0 .4rem;font-size:.95rem}.history ul{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}.history li.off{opacity:.5;text-decoration:line-through}.dim{color:var(--dim)}:root{--pass: #157347;--unknown: #8a6d1f}@media(prefers-color-scheme:dark){:root{--pass: #4ec27f;--unknown: #d3ab4a;--danger: #e5766a}}.dash-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.dash-bar nav{display:flex;gap:.4rem;margin-right:auto}.dash-bar nav button{background:transparent;color:var(--ink);border:1px solid var(--line)}.dash-bar nav button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.dash h3{margin:1.6rem 0 .5rem;font-size:.95rem}.dash h3:first-child{margin-top:0}.dash table{margin-bottom:.5rem}.dash td.value,.dash .verdict b,.dash td{font-variant-numeric:tabular-nums}.verdict{padding:.7rem .9rem;border-radius:8px;margin-bottom:1rem;border:1px solid var(--line)}.verdict.pass{color:var(--pass);border-color:currentColor}.verdict.fail{color:var(--danger);border-color:currentColor}.verdict.unknown{color:var(--unknown);border-color:currentColor}.verdict span{color:var(--ink)}.cohorts{list-style:none;margin:0 0 1rem;padding:0;display:flex;gap:1.6rem;flex-wrap:wrap;align-items:baseline}.cohorts b{font-size:1.15rem;font-variant-numeric:tabular-nums}.cohorts li.pass b{color:var(--pass)}.cohorts li.fail b{color:var(--danger)}.cohorts li.unknown b{color:var(--unknown)}.dash tr.pass td:last-child{color:var(--pass)}.dash tr.fail td:last-child{color:var(--danger)}.dash tr.unknown td:last-child{color:var(--unknown)}.dash .note.unknown{color:var(--unknown)}.npd{padding:.6rem .9rem;border:1px solid var(--line);border-radius:8px}.npd.warn{border-color:var(--unknown);color:var(--unknown)}.npd.over{border-color:var(--danger);color:var(--danger)}.npd .dim{margin-top:.3rem}.bar{height:4px;background:var(--line);border-radius:2px;margin-top:.3rem;max-width:16rem}.bar i{display:block;height:100%;background:var(--accent);border-radius:2px}ul.plain{list-style:none;margin:.3rem 0 .5rem;padding:0;display:grid;gap:.2rem}.runs__body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(22rem,1fr);gap:1.5rem;align-items:start}.runs__body aside{position:sticky;top:1rem;max-height:85vh;overflow-y:auto}.runs tbody tr{cursor:pointer}.runs tbody tr.on{background:color-mix(in srgb,var(--accent) 10%,transparent)}.runs td.fail{color:var(--danger)}.runs .pass{color:var(--pass)}.runs .fail{color:var(--danger)}.content{margin-top:1.5rem;padding:.8rem 1rem;border:1px solid color-mix(in srgb,var(--danger) 40%,var(--line));border-radius:8px}.content pre{white-space:pre-wrap;word-break:break-word;font-size:.85rem;color:var(--dim)}.config{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(24rem,1fr);gap:1.5rem;align-items:start}.config aside{position:sticky;top:1rem;max-height:88vh;overflow-y:auto}.config h3{margin:1.5rem 0 .5rem;font-size:.95rem}.config h3:first-child{margin-top:0}.config input[type=number]{width:6rem}.config label.inline{display:inline-flex;align-items:center;gap:.3rem;margin-right:.8rem}.warning-line{color:var(--unknown)}.phase{padding:.7rem .9rem .9rem;margin-bottom:1.2rem;border:1px solid var(--line);border-radius:8px}.phase .dash-bar{margin-bottom:.5rem}.phase .note{margin:.3rem 0 0}.phase .grant{margin-top:.7rem}
