/* Working ledger on galvanised-steel neutrals. System Thai fonts only, so the page needs no internet. */
:root{
  --bg:#f3f5f6;--surface:#fff;--sunk:#e8ecee;--line:#d3dade;--line-soft:#e4e9eb;
  --fg:#16232b;--fg2:#44555f;--fg3:#66767f;
  --accent:#0c5f7d;--accent-soft:#dcebf1;--on-accent:#fff;--neg:#b5462c;
  --ok:#1d7048;--ok-bg:#def0e6;--warn:#8a5a00;--warn-bg:#f8ecd0;--crit:#a82f22;--crit-bg:#f8e0dc;
  --body:"Leelawadee UI","Noto Sans Thai","Segoe UI",Tahoma,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#12191d;--surface:#1a2328;--sunk:#222d33;--line:#33424a;--line-soft:#2a363c;
  --fg:#e6edf0;--fg2:#b3c0c7;--fg3:#90a0a9;
  --accent:#62b4d3;--accent-soft:#1d3a46;--on-accent:#06222d;--neg:#e58a70;
  --ok:#6fcf9f;--ok-bg:#183a2a;--warn:#e6bb62;--warn-bg:#3b2f14;--crit:#f09184;--crit-bg:#43211c;color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.6}
h1,h2,h3,p{margin:0}
h1{font-size:22px;font-weight:700;line-height:1.3}
h2{font-size:18px;font-weight:600;line-height:1.35}
h3{font-size:15px;font-weight:600}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.topbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.topbar-in{max-width:1400px;margin:0 auto;padding:8px 16px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.brand{font-weight:700}
.nav{display:flex;flex-wrap:wrap;gap:2px;flex:1}
.nav a{padding:5px 11px;border-radius:5px;color:var(--fg2);text-decoration:none}
.nav a:hover{background:var(--sunk)}
.nav a.on{background:var(--accent);color:var(--on-accent)}
.who{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--fg2)}
.linkbtn{background:none;border:0;color:var(--accent);cursor:pointer;padding:2px 4px;text-decoration:underline}
.main{max-width:1400px;margin:0 auto;padding:20px 16px 60px;display:grid;gap:18px}
.main>*{min-width:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px 16px;display:grid;gap:10px;min-width:0}
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.controls label{display:grid;gap:2px;font-size:12.5px;color:var(--fg2)}
select,input[type=text],input[type=password],textarea{padding:6px 9px;border:1px solid var(--line);border-radius:5px;background:var(--surface);min-width:0}
.check{display:flex;gap:6px;align-items:center;font-size:13.5px;color:var(--fg2)}
.btn{padding:6px 13px;border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:var(--on-accent);cursor:pointer;text-decoration:none;display:inline-block}
.btn.ghost{background:transparent;color:var(--accent)}
.btn:disabled{opacity:.5;cursor:default}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.tile{display:grid;gap:1px;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.tile span{font-size:12.5px;color:var(--fg2)}
.tile b{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}
.tile small{font-size:12px;color:var(--fg3)}
.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:16px}
.chart{position:relative;min-width:0}
.chart svg{display:block;width:100%;height:auto}
.tip{position:absolute;pointer-events:none;background:var(--fg);color:var(--bg);font-size:12.5px;padding:3px 8px;border-radius:4px;white-space:nowrap;font-variant-numeric:tabular-nums;z-index:2}
.tbl-wrap{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:6px}
.tbl-wrap.tall{max-height:72vh}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}
th,td{padding:5px 10px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
thead th{background:var(--sunk);font-weight:600;color:var(--fg2);font-size:12.5px;white-space:nowrap;position:sticky;top:0;z-index:2}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
.neg{color:var(--neg)}
.muted{color:var(--fg3)}
.small{font-size:13px}
.stmt td:first-child,.stmt th:first-child{position:sticky;left:0;background:var(--surface);min-width:270px;z-index:1}
.stmt thead th:first-child{background:var(--sunk);z-index:3}
.stmt .l1 td:first-child{padding-left:20px}
.stmt .l2 td:first-child{padding-left:36px;color:var(--fg2)}
.stmt .l2 td{font-size:12.5px;color:var(--fg2)}
.stmt tr.sec td,.stmt tr.sec td:first-child{background:var(--sunk);font-weight:600;font-size:12.5px;color:var(--fg2)}
.stmt tr.group td,.stmt tr.group td:first-child{font-weight:600;font-size:13px;color:var(--fg2);padding-top:9px}
.stmt tr.sub td{font-weight:600;border-top:1px solid var(--line)}
.stmt tr.tot td,.stmt tr.tot td:first-child{font-weight:700;background:var(--accent-soft);border-top:1px solid var(--accent)}
.stmt td.tcol{background:var(--sunk)}
.stmt tr.tot td.tcol{background:var(--accent-soft)}
.stmt tr.exp{cursor:pointer}
.caret{display:inline-block;width:14px;color:var(--fg3)}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--accent-soft)}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:4px;white-space:nowrap}
.p-crit{background:var(--crit-bg);color:var(--crit)}
.p-warn{background:var(--warn-bg);color:var(--warn)}
.p-ok{background:var(--ok-bg);color:var(--ok)}
.p-info{background:var(--accent-soft);color:var(--accent)}
.issue{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:10px 18px;border-top:1px solid var(--line-soft);padding-top:12px}
.issue:first-of-type{border-top:0;padding-top:0}
.issue .txt{display:grid;gap:4px;min-width:0}
.issue .form{display:grid;gap:6px;align-content:start}
.issue textarea{width:100%;min-height:58px;resize:vertical}
@media (max-width:640px){.issue{grid-template-columns:minmax(0,1fr)}}
.auth{min-height:100vh;display:grid;place-items:center;padding:16px}
.auth form{width:100%;max-width:370px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px;display:grid;gap:12px}
.auth label{display:grid;gap:3px;font-size:13px;color:var(--fg2)}
.err{color:var(--crit);font-size:13.5px;min-height:1.2em}
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.formgrid label{display:grid;gap:3px;font-size:12.5px;color:var(--fg2)}
.branchpick{display:flex;flex-wrap:wrap;gap:4px 12px}
.note{font-size:13px;color:var(--fg3)}
