:root{
  --ink:#15221B; --ink-soft:#3A4A40; --paper:#F4F5F1; --card:#FFFFFF;
  --green:#1E7A55; --green-deep:#0F4D34; --green-soft:#E5F1EA;
  --amber:#B45309; --amber-soft:#FBEEDD; --red:#B42318; --red-soft:#FBEAE8;
  --blue:#175CD3; --blue-soft:#EAF1FD; --line:#E2E6DE; --gray:#667085;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
h1{font:600 24px/1.2 Georgia,serif;margin:0}
h2{font:600 20px/1.2 Georgia,serif;margin:0 0 12px}
h3{font:600 15px/1.3 inherit;margin:0 0 10px}
h4{margin:0 0 8px}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
.mono{font-variant-numeric:tabular-nums;font-family:"SF Mono",ui-monospace,Menlo,monospace}
.muted{color:var(--gray)}
.small{font-size:12.5px}
.up{text-transform:uppercase;letter-spacing:.04em}
.right{text-align:right}
.center{text-align:center}
.mt{margin-top:16px}
.hide{display:none}

/* top bar */
.topbar{background:var(--card);border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px;max-width:1000px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand small{display:block;color:var(--gray);font-size:11px}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--green-deep);color:#fff;font-weight:700}
.brand-mark.big{width:44px;height:44px;font-size:20px}
.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chip{display:flex;align-items:center;gap:8px;font-size:13px}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:12px;font-weight:600}
.avatar.a{background:var(--green-soft);color:var(--green-deep)}
.avatar.s{background:var(--blue-soft);color:var(--blue)}
.tabs{display:flex;gap:2px;overflow-x:auto}
.tab{padding:10px 12px;font-weight:500;color:var(--ink-soft);white-space:nowrap;border-bottom:2px solid transparent}
.tab:hover{text-decoration:none}
.tab.active{color:var(--green-deep);border-bottom-color:var(--green-deep)}

main.wrap{padding-top:20px;padding-bottom:40px}
.foot{color:var(--gray);font-size:12px;padding:20px 16px 40px;text-align:center}

/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.card.warn{border-color:#F0D9A8;background:#FFFCF5}
.card.blue{border-color:#B3CDF2;background:#F5F9FF}
.card.narrow{max-width:460px}
.card.hero{background:var(--green-deep);color:#fff}
.hero .muted,.hero .up{color:#BFDACB}
.hero-name{color:#fff;font-size:22px}
.card-label{font-size:12px;color:var(--ink-soft);margin-bottom:6px}
.big-num{font:600 22px/1.1 inherit;font-variant-numeric:tabular-nums}
.cur-line{margin-top:6px}
.breakdown{margin:4px 0 6px}
.bd-row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-soft);gap:8px}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0}
@media(max-width:760px){.grid2,.grid3,.grid4{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.grid2,.grid3{grid-template-columns:1fr}}

/* rows */
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.between{justify-content:space-between}
.head{margin-bottom:12px}
.tx,.sp,.adv{padding:10px 0;border-top:1px solid var(--line)}
.adv:first-of-type,.tx:first-of-type{border-top:0}
.bu{border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:10px}
.bu-name{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}
.inset{margin-top:10px}

/* badges */
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:#EEF0EC;color:var(--ink-soft)}
.badge.green{background:var(--green-soft);color:var(--green-deep)}
.badge.blue{background:var(--blue-soft);color:var(--blue)}
.badge.amber{background:var(--amber-soft);color:var(--amber)}
.badge.red{background:var(--red-soft);color:var(--red)}
.badge.gray{background:#EEF0EC;color:var(--gray)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);font:500 13px inherit;padding:7px 12px;border-radius:9px;cursor:pointer}
.btn:hover{background:#F7F8F5}
.btn.primary{background:var(--green-deep);border-color:var(--green-deep);color:#fff}
.btn.primary:hover{background:#0c3f2b}
.btn.danger{border-color:#F2C4C0;color:var(--red)}
.btn.danger:hover{background:var(--red-soft)}
.btn.ghost{background:transparent}
.btn.gold{background:#FFC439;border-color:#FFC439;color:#003087;font-weight:700}
.btn.block{width:100%;justify-content:center;margin-top:6px}
.btn.sm{padding:5px 10px;font-size:12.5px}
.btn.xs{padding:3px 8px;font-size:11.5px}
.actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.actbar{display:flex;gap:10px;flex-wrap:wrap;padding:8px 0}
.inline-form{display:inline-flex;gap:6px;align-items:center}

/* forms */
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.formgrid.one{grid-template-columns:1fr}
.formgrid .col2{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--ink-soft)}
input,select,textarea{font:14px inherit;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);width:100%}
input:focus,select:focus{outline:2px solid var(--green-soft);border-color:var(--green)}
@media(max-width:600px){.formgrid{grid-template-columns:1fr}}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);font-weight:600;padding:6px 8px}
.tbl td{padding:9px 8px;border-top:1px solid var(--line);vertical-align:top}
.tbl tr.total td{border-top:2px solid var(--line)}
.bar{height:7px;background:var(--green-soft);border-radius:6px;overflow:hidden;margin:5px 0}
.bar>span{display:block;height:100%;background:var(--green)}

/* flash */
.flash{padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:14px}
.flash.ok{background:var(--green-soft);color:var(--green-deep)}
.flash.err{background:var(--red-soft);color:var(--red)}

/* audit */
.audit-row{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line);align-items:baseline}
.audit-row:first-child{border-top:0}

/* approvals */
.tx-approve{padding:10px 0;border-top:1px solid var(--line)}
.approve-actions{margin-top:6px}

/* auth */
.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.auth{width:100%;max-width:400px}
.auth-brand{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:18px}
.auth-title{font:600 26px Georgia,serif}
.auth-card h2{margin-bottom:14px}
.demo{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.demo code{background:#F2F5F0;padding:1px 5px;border-radius:5px}
code{font-family:"SF Mono",ui-monospace,monospace}

/* announcement / maintenance band */
.announce{display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap;
  background:#FBEEDD;color:#8A4B08;border-bottom:1px solid #F0D9A8;padding:9px 16px;font-size:13.5px}
.announce.maint{background:#FBEAE8;color:#B42318;border-bottom-color:#F2C4C0}
.announce-icon{font-size:15px}
.announce-when{opacity:.85}
.orphan-row{background:#FFF7F6}
