*{box-sizing:border-box}body{margin:0;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f3f4f6;color:#111}
.preview{background:#fde047;padding:6px 12px;font-size:13px;text-align:center;font-weight:600}
.demo{background:#7c3aed;color:#fff;padding:8px 12px;font-size:13px;text-align:center}
header{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#111827;color:#fff;flex-wrap:wrap}header h1{margin:0;font-size:20px}.logo{height:36px;background:#fff;border-radius:6px;padding:2px}
header .muted{color:#cbd5e1}.ds{margin-left:auto;display:flex;gap:4px}.ds button{background:#374151;color:#fff;border:0;padding:8px 12px;border-radius:6px}.ds button.on{background:#22c55e;color:#000;font-weight:700}
main{padding:12px;max-width:1300px;margin:0 auto}.card{background:#fff;border-radius:10px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px #0001}h2{margin:0 0 8px;font-size:18px}h3{font-size:15px;margin:14px 0 6px}
.muted{color:#6b7280;font-size:13px}.pill{background:#ef4444;color:#fff;border-radius:10px;padding:0 7px;font-size:12px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-bottom:12px}.tile{background:#fff;border-radius:10px;padding:10px;box-shadow:0 1px 2px #0001}.tile b{display:block;font-size:19px}.tile span{font-size:12px;color:#6b7280}
.branches{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}
.br{background:#fff;border-radius:10px;padding:12px;border-left:8px solid #9ca3af;box-shadow:0 1px 2px #0001}.br.green{border-color:#16a34a}.br.amber{border-color:#f59e0b}.br.red{border-color:#dc2626}
.br h3{margin:0 0 6px;display:flex;justify-content:space-between;align-items:center}.dot{font-size:12px;padding:2px 8px;border-radius:10px;color:#fff}.dot.green{background:#16a34a}.dot.amber{background:#f59e0b;color:#000}.dot.red{background:#dc2626}
.kv{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2px 10px;font-size:14px}.kv .h{grid-column:1/3;font-weight:700;margin-top:6px;font-size:12px;color:#374151;text-transform:uppercase}
.bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin:4px 0}.bar i{display:block;height:100%;background:#2563eb}
table{border-collapse:collapse;width:100%;font-size:14px}td,th{padding:7px 6px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}th{font-size:12px;color:#6b7280}td.r,th.r{text-align:right}
tr.sel{background:#dbeafe}.age{font-size:12px;padding:1px 6px;border-radius:8px;background:#fef3c7}.age.old{background:#fecaca}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:900px){.cols{grid-template-columns:1fr}}
.sticky{position:sticky;bottom:0;background:#111827;color:#fff;padding:10px;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;z-index:4}
.sticky input{flex:1;min-width:180px;padding:9px;border-radius:6px;border:0;font-size:15px}.sticky .sum{font-size:14px}
button{font:inherit;padding:9px 14px;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer;min-height:40px}button.primary{background:#2563eb;color:#fff;border-color:#2563eb}button.warn{background:#f59e0b;border-color:#f59e0b}button:disabled{opacity:.5}button.dlOff{opacity:.5;cursor:not-allowed}#dayLock button{touch-action:manipulation;min-height:44px}.dlMsg{margin:8px 0 2px;padding:10px 12px;border-radius:6px;background:#fef3c7;border:1px solid #f59e0b;color:#78350f;font-weight:600}
input,select,textarea{font:inherit;padding:8px;border:1px solid #d1d5db;border-radius:6px;width:100%}label{display:block;font-size:13px;color:#374151;margin:6px 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 10px}@media(max-width:600px){.grid2{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}}
.err{background:#fee2e2;color:#991b1b;padding:8px;border-radius:6px;margin-top:8px;white-space:pre-wrap}.ok{background:#dcfce7;color:#166534;padding:8px;border-radius:6px;margin-top:8px}
.warnbox{background:#fef3c7;padding:8px;border-radius:6px;margin:6px 0;font-size:13px}.sug{font-size:12px;color:#2563eb;cursor:pointer;text-decoration:underline}
.gate{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;z-index:9}
input[type=checkbox]{width:22px;height:22px}
[hidden]{display:none!important}

.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.scroll table{min-width:520px}
@media(max-width:600px){}

/* Review r2 fix 7: phone (390px) must not scroll sideways. Grid children may shrink; long text wraps; check-tab tables fit. */
.cols>*{min-width:0}.grid2>*,.grid4>*,.tiles>*,.branches>*{min-width:0}
td,th,.tile span,.warnbox,label,.sticky .sum{overflow-wrap:break-word}.wrap{overflow-wrap:anywhere}.age,.dot{white-space:nowrap}
td.r,th.r{white-space:nowrap;overflow-wrap:normal}
code.wrap{display:block;font-size:12px;background:#f3f4f6;padding:4px;border-radius:4px;word-break:break-all}
.tile-wide{grid-column:span 2}
@media(max-width:600px){
 .scroll table.fit{min-width:0}table.fit td,table.fit th{padding:6px 4px}table.fit{font-size:13px}
 .sticky{padding:8px;gap:6px}.sticky input{min-width:0;flex-basis:100%;padding:7px}.sticky button{flex:1 1 auto;min-height:36px;padding:6px 8px;font-size:14px}
 .grid4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid2{grid-template-columns:minmax(0,1fr)}
 .tile-wide{grid-column:1/-1}
 header .ds{margin-left:0}
}
/* full-width desktop (same as cash-up 1.5.3-fullwidth); mobile (<=860px) untouched */
@media(min-width:861px){main{max-width:1800px;padding:12px clamp(12px,3vw,48px)}}
#c5sales td,#c5sales th{padding:4px 8px;border-bottom:1px solid #e5e7eb;white-space:nowrap}#c5sales .num{text-align:right}

/* r7 redesign: home layout */
.admin{position:relative}.admin>button{background:#374151;color:#fff;border:0;padding:8px 12px;border-radius:6px}
.admin .menu{display:none;position:absolute;right:0;top:110%;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);z-index:20;min-width:200px;padding:4px}
.admin.open .menu{display:block}.admin .menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:10px 12px;font-size:15px;color:#111;border-radius:6px}.admin .menu button:hover{background:#f1f5f9}
#adminBar{padding:8px 14px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.k{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px}
.k .h{font-size:13px;color:#64748b}.k b{display:block;font-size:24px;margin:4px 0}.k small{font-size:13px}
.att ul{list-style:none;margin:6px 0 0;padding:0}.att li{padding:7px 4px;border-bottom:1px solid #f1f5f9;display:flex;gap:8px;align-items:flex-start}.att li.go{cursor:pointer}.att li.go:hover{background:#f8fafc}
.dt{display:inline-block;width:10px;height:10px;border-radius:50%;margin-top:5px;flex:none;background:#94a3b8}.dt.r{background:#dc2626}.dt.a{background:#f59e0b}
.tag{display:inline-block;font-size:12px;padding:2px 8px;border-radius:10px;font-weight:600}.tok{background:#dcfce7;color:#166534}.tno{background:#fee2e2;color:#991b1b}.tam{background:#fef3c7;color:#92400e}
.btab{width:100%;border-collapse:collapse}.btab th,.btab td{padding:8px 6px;border-bottom:1px solid #eee}.btab td.n,.btab th.n{text-align:right;white-space:nowrap}
.btab tr.row{cursor:pointer}.btab tr.row:hover{background:#f8fafc}.btab tr.det{display:none}.btab tr.det.open{display:table-row}.btab tr.det>td{background:#f8fafc;padding:10px}.btab tr.tot td{font-weight:700;border-top:2px solid #cbd5e1}
.car{display:inline-block;width:14px;color:#64748b}
details.fold{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin:12px 0}details.fold>summary{cursor:pointer;padding:12px 14px;font-weight:700;font-size:16px}details.fold[open]>summary{border-bottom:1px solid #eee}details.fold>section{padding:6px 10px}
.mgrid{border-collapse:collapse;font-size:13px;white-space:nowrap}.mgrid th,.mgrid td{padding:5px 7px;border-bottom:1px solid #eee;text-align:right}.mgrid th:first-child,.mgrid td:first-child{text-align:left;position:sticky;left:0;background:#fff}
.mgrid small{display:block;font-size:11px}.mgrid td.ytd{background:#f8fafc;font-weight:600}
.gap{color:#94a3b8;font-style:italic}.ok{color:#15803d}.bad{color:#b91c1c}.amb{color:#b45309}
@media(max-width:600px){.kpis{grid-template-columns:1fr 1fr}.k b{font-size:19px}.hide-m{display:none}.btab th,.btab td{padding:7px 4px;font-size:14px}header h1{font-size:17px}.ds button,.admin>button{padding:7px 9px}}
.att em{margin-left:auto;font-style:normal;white-space:nowrap}.att .link{background:none;border:0;color:#2563eb;padding:8px 4px;cursor:pointer}
.k b.ok,.k b.amb,.mgrid small.ok,.mgrid small.bad,#dayLock b.ok,#dayLock b.bad{background:none;padding:0;margin:0;border-radius:0}

.att .atth{display:flex;align-items:center;justify-content:space-between;gap:8px}.att .atttog{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;padding:6px 12px;min-height:36px;font-size:14px;color:#1e293b;cursor:pointer}.att.collapsed #attBody{display:none}
/* Ryan 24 Oct 14:45: day picker + PDF */
.dpick{display:inline-flex;gap:4px;align-items:center}
.dpick button{min-width:36px;font-size:18px;line-height:1;padding:6px 10px}
@media(max-width:600px){.daybar{gap:6px}.daybar #pdfBtn{width:100%}}

/* r18 branch card month nav + days */
.brh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.mnav{display:flex;gap:4px;align-items:center;font-size:14px;font-weight:400}.mnav input{width:auto;padding:4px 6px}.mnav button{padding:4px 9px}.dtab td,.dtab th{font-size:13px}.dtab tr.dayrow.hasp{cursor:pointer}.dtab tr.dsplit td{background:#f8fafc;font-size:13px}
/* r18: phone — days table and branch table scroll sideways instead of clipping */
#brDays,#brCard .brwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dtab td:first-child,.dtab th:first-child{white-space:nowrap;position:sticky;left:0;background:#fff;z-index:1}
.dtab td,.dtab th{white-space:nowrap}
.dtab tr.dsplit td{white-space:normal;position:static}


/* Total sales headline at top (27 Oct 2026 go-live) */
.total-hero{background:#0f172a;color:#fff;border-radius:12px;padding:18px 20px;margin:12px 0 10px;text-align:center;box-shadow:0 2px 8px #0003}
.total-hero .th-label{display:block;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.total-hero .th-amount{display:block;font-size:44px;font-weight:800;line-height:1.1;margin:8px 0 10px;letter-spacing:-.02em;color:#fff}
.total-hero .th-amount.th-nodata{font-size:22px;line-height:1.3;color:#fbbf24}
.total-hero .th-sub{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;align-items:center;font-size:15px;color:#e2e8f0;font-weight:600}
.total-hero .th-dot{color:#64748b;font-weight:400}
@media(max-width:600px){
  .total-hero{padding:14px 12px;margin:10px 0 8px}
  .total-hero .th-amount{font-size:32px}
  .total-hero .th-sub{font-size:13px;gap:6px}
}

/* Pending settlement (Ryan 3 Nov 2026): neutral blue, not an error */
.dot.pending{background:#2563eb}.br.pending{border-color:#2563eb}.pendbox{background:#dbeafe;color:#1e3a8a;padding:2px 6px;border-radius:6px;margin:2px 0;font-size:13px}.tag.pend{background:#dbeafe;color:#1e3a8a;border-radius:10px;padding:1px 8px;font-size:12px;white-space:nowrap}

/* rule C reconciliation (v1.6.0-rulec-preview) */
.recon summary{cursor:pointer}.rc-blk{margin:8px 0 12px}.rc-blk h4{margin:0 0 4px;font-size:14px}table.rc{border-collapse:collapse;width:100%;max-width:760px}table.rc td{padding:3px 6px;border-bottom:1px solid #eee}table.rc .n{text-align:right;white-space:nowrap}
.rc-sales td,.rc-fund td{border-top:2px solid #ccc}.rc-l{margin:2px 0 2px 18px;padding:0}.rc-l li{margin:2px 0}.rc-l li.neg{color:#8a4b00}.rc-l li.pos{color:#17603a}.rc-l li.memo{color:#555;font-style:italic}
.rc-ok{color:#17603a;margin-top:4px}.rc-bad{background:#fff3cd;border:1px solid #e0b100;padding:6px 8px;border-radius:6px;margin-top:4px}.rc-lock{margin-top:4px}
.adjmark{color:#8a4b00;font-weight:bold}tr.dadj td{font-size:12px;color:#555;background:#faf6ee}table.adjt{border-collapse:collapse;width:100%;font-size:13px}table.adjt th,table.adjt td{padding:4px 6px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}table.adjt .n{text-align:right}table.adjt tr.rev{color:#888;text-decoration:line-through}table.adjt tr.rev td:last-child{text-decoration:none}.adjform{margin:8px 0;padding:8px;border:1px solid #ddd;border-radius:8px}.tw{overflow-x:auto}
.na{border-left:4px solid #b36b00}.na h3{color:#8a4b00}.poIn{width:9.5em}
