
:root{--text:#23314c;--page:#f3f5f9;--surface:#fff;--sidebar:#14243f;--sidebar-muted:#9aafcd;--sidebar-text:#c5d0e2;--sidebar-active:#2a4164;--muted:#53657e;--link:#275ea8;--accent:#2864b3;--accent-hover:#1f518f;--border:#e0e6ef;--input-border:#cad4e1;--focus:#78a8e6;--soft:#f8fafc;--notice:#e8f2ff}
:root[data-theme="teal"]{--text:#193d3d;--page:#eef6f4;--sidebar:#103c3b;--sidebar-muted:#a1cbc6;--sidebar-text:#d2e9e4;--sidebar-active:#205753;--muted:#486c68;--link:#096b62;--accent:#087b70;--accent-hover:#066157;--border:#d3e4df;--input-border:#b7d1c9;--focus:#4d9f92;--soft:#f4f9f7;--notice:#dff2ed}
:root[data-theme="plum"]{--text:#392c45;--page:#f6f1f7;--sidebar:#36203f;--sidebar-muted:#cbb4d4;--sidebar-text:#e9dcec;--sidebar-active:#573260;--muted:#6f5b7c;--link:#784187;--accent:#804690;--accent-hover:#653571;--border:#e6d9eb;--input-border:#d2bed9;--focus:#b07cc1;--soft:#faf6fb;--notice:#f0e4f5}
:root[data-theme="slate"]{--text:#30383f;--page:#f4f3ef;--sidebar:#292f35;--sidebar-muted:#c2c6cb;--sidebar-text:#e4e7ea;--sidebar-active:#454c54;--muted:#59616a;--link:#805400;--accent:#805400;--accent-hover:#664200;--border:#deded8;--input-border:#c8cbc8;--focus:#bc8a31;--soft:#f8f8f4;--notice:#fff0cf}
.theme-chooser{margin-top:18px;padding-top:14px;border-top:1px solid var(--sidebar-active)}
.theme-chooser label{color:var(--sidebar-text);margin:0 0 4px;font-size:12px}
.theme-chooser select{font-size:13px;padding:7px 8px}
.theme-save{margin-top:8px;padding:7px 10px;font-size:12px;width:100%}
.theme-chooser small{color:var(--sidebar-text);margin-top:4px}
@media(max-width:700px){.theme-chooser{max-width:260px}.theme-chooser label{display:block}.theme-chooser select{display:block}.theme-save{display:block}}
:root{font-family:Segoe UI,Arial,sans-serif;color:var(--text);background:var(--page);font-size:16px}*{box-sizing:border-box}body{margin:0}aside{position:fixed;width:235px;inset:0 auto 0 0;background:var(--sidebar);color:#fff;padding:34px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:white;font-size:21px;font-weight:700;text-decoration:none}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:700;color:var(--muted)}aside .eyebrow{color:var(--sidebar-muted);margin:22px 0}nav a{display:block;padding:14px 18px;color:var(--sidebar-text);text-decoration:none;border-radius:9px;margin:7px 0}nav a.selected{background:var(--sidebar-active);color:#fff}.sidebar-bottom{margin-top:auto;color:var(--sidebar-text);font-size:13px;line-height:1.8}main{margin-left:235px;padding:42px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}h1{font-size:34px;letter-spacing:-1px;margin:10px 0}h2{font-size:18px;margin:26px 0 18px}p{line-height:1.55;color:var(--muted)}header p{margin:0}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}button,.button{border:0;border-radius:7px;background:var(--accent);color:white;font:inherit;font-weight:600;padding:12px 18px;cursor:pointer;display:inline-block;text-decoration:none!important}button:hover,.button:hover{background:var(--accent-hover)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:23px}.metric span{color:var(--muted);font-size:14px}.metric strong{display:block;font-size:34px;margin-top:10px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.filters{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.filters input{flex:1;min-width:210px}.filters select{width:auto;max-width:240px}input,select,textarea{width:100%;border:1px solid var(--input-border);background:var(--surface);color:var(--text);border-radius:7px;padding:11px 12px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:1px}textarea{resize:vertical}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{padding:16px 20px;background:var(--soft);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.6px}td{padding:20px;border-bottom:1px solid var(--border);vertical-align:middle}td a{font-weight:600}small{display:block;color:var(--muted);margin-top:7px;font-size:12px;line-height:1.45}.badge{display:inline-block;background:#edf1f6;padding:6px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge.active{background:#e7f5ed;color:#25704a}.badge.pending{background:#fff2d9;color:#8c641c}.warning{color:#b3631b;font-weight:600}.empty{text-align:center;padding:60px}.empty h3{font-size:21px}footer{padding:20px;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted)}footer a{margin-left:18px}.table-scroll{overflow-x:auto}.form-panel{padding:26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:13px;font-weight:600;line-height:1.6;margin-bottom:14px}label input,label select,label textarea{display:block;margin-top:7px;font-weight:400}.actions{display:flex;align-items:center;gap:20px;margin:8px 0 22px}.sticky{position:sticky;top:0;background:var(--surface);padding:10px 0;z-index:1}.detail-layout{display:grid;grid-template-columns:minmax(450px,1.7fr) minmax(300px,1fr);gap:25px;align-items:start}.activity h2{margin-top:0}.timeline article{border-left:3px solid var(--border);margin:24px 0;padding-left:16px}.timeline p{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.hint{font-size:12px}.notice{padding:15px 18px;border-radius:8px;background:var(--notice);margin-bottom:18px}.notice.error{background:#ffebeb;color:#a53030}.notice.success{background:#e6f4ec;color:#286844}.danger{background:var(--surface);color:#b33d3d;border:1px solid #e5c7c7;font-size:13px}.danger:hover{background:#fff0f0}@media(max-width:1100px){aside{width:190px}main{margin-left:190px;padding:26px}.detail-layout{grid-template-columns:1fr}.metrics{gap:10px}.metric{padding:18px}}@media(max-width:700px){aside{position:static;width:auto;padding:18px}.sidebar-bottom,aside .eyebrow{display:none}nav{display:flex;gap:12px}nav a{padding:8px 12px}main{margin:0;padding:20px}header{align-items:flex-start}h1{font-size:27px}.metrics{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.filters{padding:14px}.filters select{max-width:100%;width:100%}footer{flex-direction:column}}
.promotion-checks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.check-label{display:flex;align-items:center;gap:10px;padding:14px;background:var(--soft);border:1px solid var(--border);border-radius:8px;margin:0;font-size:14px}.check-label input{width:19px;height:19px;margin:0;accent-color:var(--accent)}.promotion-list{display:flex;gap:6px;flex-wrap:wrap;max-width:330px}.promotion-tag{display:inline-block;border-radius:6px;background:#edf4fe;color:#2c568f;font-size:12px;padding:5px 8px;white-space:nowrap}.small-link{display:inline-block;font-size:12px;margin-top:10px}.credit-value{font-size:20px;white-space:nowrap}.dashboard-table{min-width:980px}.credit-cell{min-width:175px}.metric strong{font-size:clamp(22px,2.3vw,34px);overflow-wrap:anywhere}.growth-summary{border-bottom:1px solid var(--border);padding-bottom:28px;margin-bottom:28px}.growth-summary strong{display:block;font-size:32px;margin-top:12px}.ledger-metrics{grid-template-columns:repeat(3,1fr)}.ledger-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;margin-top:8px}.inline-form{display:inline;margin-left:10px}.small-button{padding:5px 10px}.voided{background:#f7f8fa;color:#8a93a3}@media(max-width:700px){.promotion-checks{grid-template-columns:1fr}.ledger-metrics{grid-template-columns:1fr}}
.promotion-list{display:grid;grid-template-columns:1fr;gap:3px;min-width:290px;max-width:360px}.promotion-tag{display:flex;justify-content:space-between;align-items:baseline;gap:8px;white-space:normal;line-height:1.4;padding:3px 7px;border-radius:5px}.promotion-name{min-width:0;overflow-wrap:anywhere}.promotion-status{white-space:nowrap;font-size:11px;flex-shrink:0}.promotion-tag.enrolled{background:#e7f5ed;color:#25704a;border:1px solid #bde0ca}.promotion-tag.not-enrolled{background:#fff6e5;color:#876021;border:1px solid #eed9b1}.dashboard-table td{padding:12px 16px}.dashboard-table th{padding:12px 16px}.dashboard-table .small-link{margin-top:6px}.promotion-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:0 0 18px;font-size:13px}.promotion-legend>span:first-child{color:#25704a}.promotion-legend>span:nth-child(2){color:#876021}.promotion-legend small{flex-basis:100%;margin:0}
.promotion-clusters{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;min-width:225px;max-width:380px}.promotion-cluster{flex-shrink:0}.cluster-label{font-size:9px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);line-height:1.3;margin-bottom:4px}.cluster-boxes{display:flex;gap:4px}.promotion-box{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:5px 7px;border:1px solid;border-radius:4px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.promotion-box.enrolled{background:#e7f5ed;border-color:#bde0ca;color:#25704a}.promotion-box.not-enrolled{background:#fdebed;border-color:#edc4c9;color:#a1414c}.promotion-legend>span:nth-child(2){color:#a1414c}.permit-promotion-category{font-size:14px;margin:18px 0 8px}.permit-promotion-category+.promotion-checks{margin:8px 0 16px}.dashboard-table td{padding:10px 14px}
input[readonly]{background:var(--soft);color:var(--muted)}@media(max-width:700px){nav{flex-wrap:wrap;gap:4px}}

.text-button{background:none;color:var(--link);border:0;padding:0;font:inherit;font-weight:600}.text-button:hover{background:none;text-decoration:underline}
.auth-body{display:grid;place-items:center;min-height:100vh;padding:24px;background:var(--page)}.auth-card{width:100%;max-width:450px;padding:34px}.auth-card h1{font-size:28px}.auth-card button{width:100%}.sidebar-bottom a{color:var(--sidebar-text);display:block;margin-top:10px}.logout-button{padding:7px 12px;font-size:13px;margin-top:8px;background:var(--sidebar-active)}@media(max-width:700px){.sidebar-bottom{display:block;margin-top:12px}.sidebar-bottom form{display:inline-block}.sidebar-bottom a{display:inline-block;margin:0 12px}}

[hidden]{display:none!important}.dual-ledger{min-width:1100px}.dual-ledger th,.dual-ledger td{padding:12px 10px}.dual-ledger td:nth-child(n+3):nth-child(-n+7){white-space:nowrap}.voided .ledger-amount{text-decoration:line-through}

.ledger-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:800px){.ledger-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.ledger-metrics{grid-template-columns:1fr}}

/* Two separate balances: blue postage pool, green client entitlement. */
.ledger-summary{display:grid;grid-template-columns:3fr 2fr;gap:14px;margin-bottom:10px}.ledger-summary-group{border:1px solid #d4deeb;border-radius:10px;padding:16px;min-width:0}.ledger-summary-group h2{margin:0 0 12px;font-size:13px}.ledger-summary-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.client-group .ledger-summary-values{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-summary-values span{font-size:12px;color:#465770}.ledger-summary-values strong{display:block;font-size:clamp(18px,2vw,28px);margin-top:6px;overflow-wrap:anywhere}.postage-group{background:#edf4ff;color:#264d7b}.client-group{background:#edf7f0;color:#285b40}.ledger-balance-help{margin:0 0 18px}.dual-ledger .postage-group{background:#edf4ff;color:#264d7b}.dual-ledger .client-group{background:#edf7f0;color:#285b40}.dual-ledger .ledger-group-head th{vertical-align:middle}.dual-ledger .ledger-group-head .postage-group{background:#dceaff}.dual-ledger .ledger-group-head .client-group{background:#dcefe2;border-left:2px solid #c2d1df}.dual-ledger .group-divider{border-left:2px solid #c2d1df}.dual-ledger .balance-column{font-weight:700}.dual-ledger .voided td{color:var(--muted)}.dual-ledger td:nth-child(2){min-width:160px}.dual-ledger td:last-child{white-space:nowrap}
@media(max-width:1000px){.ledger-summary{grid-template-columns:1fr}.ledger-summary-group{padding:14px}}@media(max-width:480px){.ledger-summary-values{gap:8px}.ledger-summary-values strong{font-size:18px}}

.dual-ledger .deposit-row td{background:#fff4d6;color:#684b10}.dual-ledger .deposit-row td:first-child{border-left:4px solid #d49a20}.dual-ledger .deposit-row .ledger-amount{font-weight:700}.dual-ledger .deposit-row small{color:#786444}

/* Compact, consistent page and table styling. */
:root{font-variant-numeric:tabular-nums}main{padding:30px 32px}header{margin-bottom:22px}h1{font-size:30px;letter-spacing:-.7px}header p{font-size:14px}.metrics{gap:12px;margin-bottom:20px}.metric{padding:18px 20px;border-radius:10px}.metric strong{margin-top:6px}.panel{border-radius:10px}.filters{padding:16px;gap:10px}.filters input,.filters select{font-size:14px;padding:9px 11px}th,td{vertical-align:middle}th{font-size:11px;color:var(--muted);letter-spacing:.4px}td{padding:12px 14px;line-height:1.4}table small{margin-top:4px;color:var(--muted)}table td a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.dashboard-table tbody tr:hover{background:var(--soft)}footer{padding:14px 16px;line-height:1.5}.ledger-summary{gap:12px}.ledger-summary-group h2{font-weight:700;letter-spacing:.2px}.ledger-summary-values>div+div{border-left:1px solid #cbd8e4;padding-left:12px}.client-group .ledger-summary-values>div+div{border-color:#cbded2}.ledger-summary-values span{display:block;min-height:18px}.ledger-summary-values strong{font-size:clamp(19px,2vw,27px)}.ledger-help{margin:10px 0 18px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:10px 14px;font-size:13px}.ledger-help summary{cursor:pointer;color:var(--muted);font-weight:600}.ledger-help p{margin:10px 0 0;font-size:12px}.dual-ledger{min-width:1040px}.dual-ledger th,.dual-ledger td{padding:11px 12px}.dual-ledger th:nth-child(n+3),.dual-ledger td:nth-child(n+3):nth-child(-n+7){text-align:right}.dual-ledger .ledger-group-head th{text-align:left}.dual-ledger thead tr:last-child th{text-align:right}.dual-ledger .ledger-group-head th:last-child{text-align:center}.dual-ledger td:last-child{text-align:center;min-width:125px}.ledger-note{margin-top:4px;color:var(--muted);max-width:320px}.ledger-row-actions{display:inline-flex;align-items:center;gap:8px}.ledger-row-actions .inline-form{margin:0}.ledger-row-actions>a{border:1px solid #cbd6e4;border-radius:6px;background:var(--surface);padding:5px 10px;font-size:12px;line-height:1.4}.ledger-row-actions .small-button{font-size:12px;line-height:1.4}.dual-ledger tbody tr:hover td{box-shadow:inset 0 0 0 999px rgba(20,36,63,.025)}.dual-ledger .deposit-row td{border-bottom-color:#eddcae}.dual-ledger .voided td{background:#f5f6f8}.dual-ledger .voided .balance-column{font-weight:400}.empty{padding:36px!important}
@media(max-width:1100px){main{padding:24px}}@media(max-width:700px){main{margin:0;padding:18px}h1{font-size:26px}header{flex-wrap:wrap;gap:12px}header>.button{padding:9px 13px}.metric{padding:14px}.filters{padding:12px}.ledger-summary-values>div+div{padding-left:8px}.ledger-summary-group{padding:12px}}@media(max-width:480px){.ledger-summary-values span{font-size:11px}.ledger-summary-values strong{font-size:18px}}

.ledger-view-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.ledger-view-toggle{border:1px solid #cbd6e4;border-radius:6px;padding:6px 10px;background:var(--surface);font-weight:600}@media(max-width:480px){.ledger-view-controls{flex-wrap:wrap}}

/* Separate ledger identifiers and notes from the amount columns. */
.dual-ledger{min-width:1320px}
.dual-ledger tbody td:nth-child(n+1):nth-child(-n+4){text-align:left;overflow-wrap:anywhere}
.dual-ledger tbody td:nth-child(2),.dual-ledger tbody td:nth-child(3){min-width:145px;max-width:220px}
.dual-ledger tbody td:nth-child(4){min-width:180px}
.dual-ledger tbody td:nth-child(n+5):nth-child(-n+9){text-align:right}
