:root{--surface-0:#f4f4f2;--surface-1:#fcfcfb;--border:#e2e1dc;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#77766f;--series-1:#2a78d6;--grid:#e8e7e2;--warn-bg:#fff6e0}@media (prefers-color-scheme:dark){:root{--surface-0:#111110;--surface-1:#1a1a19;--border:#2e2e2b;--text-primary:#f0efec;--text-secondary:#c3c2b7;--text-muted:#96958c;--series-1:#3987e5;--grid:#2a2a27;--warn-bg:#2b2412}}*{box-sizing:border-box}body{margin:0;background:var(--surface-0);color:var(--text-primary);font:15px/1.5 system-ui,-apple-system,Segoe UI,Noto Sans Thai,sans-serif}main{max-width:1080px;margin:0 auto;padding:24px 16px 64px}header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}h1{font-size:22px;margin:0}h2{font-size:16px;margin:0 0 4px}.muted{color:var(--text-muted);font-size:13px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:16px}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:16px}.card.wide{grid-column:1/-1}.big{font-size:32px;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:4px 0}.def{color:var(--text-secondary);font-size:13px;margin:8px 0 0}.def b{color:var(--text-primary);font-weight:600}.warn{background:var(--warn-bg);border-radius:6px;padding:6px 8px;margin-top:8px}.err,.warn{font-size:13px}.err{color:var(--text-secondary)}table{border-collapse:collapse;width:100%;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td,th{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border)}td.num,th.num{text-align:right}svg.chart{display:block;width:100%;height:auto}svg.chart .bar{fill:var(--series-1)}svg.chart .bar:hover{opacity:.8}svg.chart .axis{fill:var(--text-muted);font-size:11px}svg.chart .gridline{stroke:var(--grid);stroke-width:1}button.link{background:none;border:0;color:var(--text-secondary);text-decoration:underline;cursor:pointer;font:inherit;padding:0}.login{max-width:360px;margin:15vh auto;text-align:center}.login a.btn{display:inline-block;margin-top:16px;padding:10px 18px;border-radius:8px;background:var(--series-1);color:#fff;text-decoration:none;font-weight:600}details summary{cursor:pointer;color:var(--text-secondary);font-size:13px;margin-top:8px}