:root{
  --anchor:#265D76; --blue:#006FA1; --orange:#ED7D31;
  --ink:#1c2b33; --mid:#5a6b74; --line:#d8e0e5; --bg:#f4f7f9; --white:#fff;
  --ok:#2e7d55; --warn:#b26a00; --bad:#b3261e;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);
  font-family:Montserrat,"Segoe UI",-apple-system,system-ui,Roboto,Arial,sans-serif;
  font-size:14px;line-height:1.5}
a{color:var(--blue)}
.appbar{background:var(--anchor);color:#fff;padding:11px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.appbar .brand{font-weight:700;font-size:15px}
.appbar .brand em{font-style:normal;opacity:.65;font-weight:500}
.appbar .right{font-size:12.5px;opacity:.92;display:flex;align-items:center;gap:12px}
.appbar .right form{margin:0}
.appbar .right button{background:none;border:1px solid rgba(255,255,255,.45);color:#fff;border-radius:3px;padding:3px 10px;font:inherit;font-size:12px;cursor:pointer}
.tabs{display:flex;gap:2px;background:#1e4c60;padding:0 12px;flex-wrap:wrap}
.tabs a{color:#cfe2ea;text-decoration:none;font-size:12.5px;padding:9px 13px;border-bottom:3px solid transparent}
.tabs a.on{color:#fff;border-bottom-color:var(--orange);font-weight:600}
.tabs a:hover{color:#fff}
.wrap{max-width:1400px;margin:0 auto;padding:20px 18px 60px}
.wrap.narrow{max-width:900px}
h1{font-size:20px;color:var(--anchor);margin:0 0 4px}
h2{font-size:16px;color:var(--anchor);margin:26px 0 10px}
.lede{color:var(--mid);margin:0 0 18px;max-width:75ch}
.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:18px;margin-bottom:18px}
.card.tight{padding:0;overflow:hidden}
.card h3{margin:0;background:#eef3f6;padding:9px 14px;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--mid);border-bottom:1px solid var(--line)}
.card .body{padding:14px}
.formrow{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}
.formrow.three{grid-template-columns:repeat(3,1fr)}
.f label{display:block;font-size:11.5px;font-weight:700;color:var(--mid);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.f .req{color:var(--bad)}
input[type=text],input[type=date],input[type=email],input[type=password],input[type=file],select,textarea{
  width:100%;border:1px solid #c3ced5;border-radius:4px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff;color:var(--ink)}
textarea{min-height:64px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}
.hint{font-size:11.5px;color:var(--mid);margin-top:5px}
.btn{display:inline-block;background:var(--orange);color:#fff;border:none;border-radius:4px;padding:10px 20px;font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(.94)}
.btn.blue{background:var(--blue)}
.btn.ghost{background:#fff;color:var(--anchor);border:1px solid var(--anchor);font-weight:600}
.btn:disabled{opacity:.5;cursor:not-allowed}
.msg{padding:11px 14px;border-radius:4px;font-size:13px;margin-bottom:16px}
.msg.ok{background:#eef8f2;border-left:3px solid var(--ok);color:#1f6344}
.msg.warn{background:#fff8ef;border-left:3px solid var(--orange);color:#8a4d10}
.msg.bad{background:#fdf1ef;border-left:3px solid var(--bad);color:#8f231a}
.note{background:#fff8ef;border-left:3px solid var(--orange);padding:10px 13px;font-size:12.5px;margin:14px 0;color:#6b4a22}
table.grid{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff}
table.grid th{background:#eef3f6;text-align:left;padding:8px 10px;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--mid);border-bottom:1px solid var(--line);white-space:nowrap}
table.grid td{padding:9px 10px;border-bottom:1px solid #eef2f4;vertical-align:middle}
table.grid tbody tr:hover td{background:#f7fbfc}
table.grid td a{text-decoration:none;font-weight:600}
.num{text-align:right;font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace;white-space:nowrap}
.neg{color:var(--bad);font-weight:700}
.zero{color:var(--ok)}
.pill{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap}
.s-variance_open{background:#fbe9e7;color:#a3271c}
.s-reconciled{background:#e3f2ea;color:#1f6344}
.s-resolved{background:#e9eef1;color:#3d5058}
.s-awaiting_remit{background:#fdf0e6;color:#a2560f}
.s-ready_to_post{background:#e7f2f8;color:#0b5b7d}
.own{font-weight:700;font-size:11.5px}
.own-Client{color:var(--blue)} .own-RCS{color:var(--orange)}
.age{font-weight:700;font-variant-numeric:tabular-nums}
.age.hot{color:var(--bad)} .age.warm{color:var(--warn)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:5px;padding:12px 14px}
.kpi .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--mid);font-weight:700}
.kpi .val{font-size:23px;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums}
.kpi .val.bad{color:var(--bad)} .kpi .val.ok{color:var(--ok)}
.kpi .sub{font-size:11px;color:var(--mid);margin-top:1px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px;background:#fff;border:1px solid var(--line);border-radius:5px;padding:12px}
.filters .f{min-width:130px}
.filters .f.grow{flex:1;min-width:220px}
.filters select,.filters input{padding:7px 9px;font-size:12.5px}
.split{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;align-items:start}
.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 10px;font-size:12.5px;margin:0}
.kv dt{color:var(--mid)} .kv dd{margin:0;font-weight:600}
.hist{font-size:12.5px;color:var(--mid);line-height:1.7}
.hist b{color:var(--ink)}
.bar{height:9px;background:#eef2f4;border-radius:5px;overflow:hidden;margin-top:4px;min-width:60px}
.bar i{display:block;height:100%;background:var(--blue)}
.signin{max-width:400px;margin:70px auto;background:#fff;border:1px solid var(--line);border-radius:7px;padding:26px}
.signin h1{margin-bottom:14px}
.muted{color:var(--mid);font-size:12px}
.right{text-align:right}
.pastegrid{width:100%;border-collapse:collapse;font-size:12.5px}
.pastegrid th{background:#eef3f6;padding:7px 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--mid);text-align:left}
.pastegrid td{padding:5px 8px;border-bottom:1px solid #eef2f4}
.pastegrid input,.pastegrid select{padding:5px 7px;font-size:12.5px}
.pastegrid tr.skip{opacity:.4}
.pastegrid tr.bad td{background:#fdf1ef}
@media(max-width:900px){.split,.formrow,.formrow.three{grid-template-columns:1fr}}
