:root{
  --nav:#102643;--nav2:#163454;--brand:#1765d1;--brand2:#0d4fae;--accent:#f4a51c;
  --bg:#edf1f6;--card:#fff;--ink:#162338;--muted:#64738b;--line:#d7dee8;--line2:#e8edf4;
  --green:#17834d;--greenBg:#e2f5ea;--red:#c23636;--redBg:#fde8e8;--amber:#a86900;--amberBg:#fff0d2;
  --blueBg:#e5efff;--purple:#6e4db7;--radius:5px;--shadow:0 6px 24px rgba(27,49,78,.12);
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--body:Inter,Segoe UI,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:13px var(--body);color:var(--ink);background:var(--bg);overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{text-align:right}.negative{color:var(--red)}
#appShell{height:100%;display:grid;grid-template-columns:226px 1fr;grid-template-rows:52px 1fr;grid-template-areas:"brand top" "side main"}
.brandbar{grid-area:brand;background:var(--nav);display:flex;align-items:center;gap:9px;padding:0 14px;color:#fff;border-right:1px solid #264767}.brandbar b{font-size:19px;letter-spacing:.3px}.brandbar small{display:block;font-size:9px;color:#8ea8c5;text-transform:uppercase;letter-spacing:1px}.brandmark{width:28px;height:28px;border-radius:5px;background:linear-gradient(135deg,var(--accent),#ffd06d);display:grid;place-items:center;color:#17253a;font-weight:900;font-size:16px}
.topbar{grid-area:top;background:var(--nav);color:#fff;display:flex;align-items:center;gap:8px;padding:0 12px}.topSpacer{flex:1}.context{display:flex;align-items:center;gap:6px;color:#91aac4}.context select{border:0;background:#1c3a5b;color:#fff;padding:6px 28px 6px 8px;border-radius:4px;max-width:210px}.quickBtn{border:0;background:var(--accent);color:#1b2637;padding:7px 11px;border-radius:4px;font-weight:700}.iconBtn{width:32px;height:32px;border:1px solid #355574;background:#1a3655;color:#fff;border-radius:4px;cursor:pointer}.userChip{display:flex;align-items:center;gap:7px;padding-left:4px}.userChip>span{width:29px;height:29px;border-radius:50%;background:#2f74c7;display:grid;place-items:center;font-weight:700}.userChip b{font-size:11px;display:block}.userChip small{font-size:9.5px;color:#9eb1c7;display:block}
.sidebar{grid-area:side;background:var(--nav2);overflow:auto;padding:8px 0 20px}.navGroup{padding:11px 13px 5px;color:#6f8cac;font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:1.2px}.navItem{display:flex;align-items:center;gap:9px;color:#c5d2e0;padding:7px 12px;text-decoration:none;border-left:3px solid transparent;cursor:pointer}.navItem:hover{background:#1d4165;color:#fff}.navItem.active{background:var(--brand);color:#fff;border-left-color:var(--accent);font-weight:700}.navIcon{width:17px;text-align:center}.navBadge{margin-left:auto;background:#294d71;color:#c6d4e3;padding:1px 5px;border-radius:8px;font-size:9px}.navItem.active .navBadge{background:#fff2}
.main{grid-area:main;overflow:auto;padding:14px 16px 24px}.bottomNav{display:none}.mobileOnly{display:none}
.pageHead{display:flex;gap:12px;align-items:flex-end;margin-bottom:12px}.pageHead h1{margin:0;font-size:25px;line-height:1}.pageHead p{margin:3px 0 0;color:var(--muted);font-size:11.5px}.pageHead .spacer{flex:1}.toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn{border:0;border-radius:4px;padding:7px 11px;background:var(--brand);color:#fff;font-weight:700;font-size:11.5px;cursor:pointer}.btn:hover{background:var(--brand2)}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.warning{background:var(--accent);color:#243043}.btn.danger{background:var(--red)}.btn.sm{padding:4px 8px;font-size:10.5px}.btn:disabled{opacity:.45;cursor:not-allowed}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:11px;overflow:hidden}.cardTitle{min-height:36px;padding:8px 10px;background:#f8fafc;border-bottom:1px solid var(--line2);display:flex;align-items:center;gap:8px}.cardTitle b{text-transform:uppercase;letter-spacing:.65px;font-size:11px}.cardTitle .spacer{flex:1}.cardBody{padding:10px}.grid{display:grid;gap:10px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:5px;padding:9px 10px;min-height:77px}.kpi.green{border-left-color:var(--green)}.kpi.amber{border-left-color:var(--accent)}.kpi.red{border-left-color:var(--red)}.kpi.purple{border-left-color:var(--purple)}.kpi label{display:block;color:var(--muted);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}.kpi strong{display:block;font-size:20px;margin:3px 0 2px;font-family:var(--mono);letter-spacing:-.6px}.kpi small{color:var(--muted);font-size:10px}
.tableWrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{background:#f6f8fb;text-transform:uppercase;font-size:9.8px;letter-spacing:.7px;color:#66758c;text-align:left;padding:6px 8px;border-bottom:1px solid #cfd8e4;position:sticky;top:0;z-index:1}td{padding:5px 8px;border-bottom:1px solid var(--line2);vertical-align:middle}tbody tr:hover td{background:#f8fbff}.right{text-align:right}.center{text-align:center}.docNo{font-weight:800;color:#164e9f}.muted{color:var(--muted);font-size:10.5px}.link{color:var(--brand);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.status{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:9.5px;padding:2px 6px;border-radius:3px;text-transform:uppercase}.status.green{background:var(--greenBg);color:var(--green)}.status.amber{background:var(--amberBg);color:var(--amber)}.status.red{background:var(--redBg);color:var(--red)}.status.blue{background:var(--blueBg);color:#1757a8}.status.grey{background:#e9edf3;color:#5e6c80}.dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.filterbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--line2)}.filterbar input,.filterbar select,.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:4px;padding:6px 7px;min-height:31px}.filterbar input{min-width:210px}.field{display:block}.field>span{display:block;font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:800;margin-bottom:3px}.field input,.field select,.field textarea{width:100%}
.flow{display:flex;align-items:stretch;gap:0;overflow:auto;padding:6px 0 12px}.flowNode{min-width:150px;max-width:180px;border:1px solid var(--line);border-top:3px solid var(--brand);background:#fff;border-radius:5px;padding:8px;cursor:pointer}.flowNode.active{box-shadow:0 0 0 2px #b6d4ff}.flowNode.done{border-top-color:var(--green)}.flowNode.warn{border-top-color:var(--accent)}.flowNode .type{font-size:9px;font-weight:900;color:var(--muted);letter-spacing:.7px;text-transform:uppercase}.flowNode b{display:block;margin:3px 0}.flowNode small{display:block;color:var(--muted);line-height:1.4}.flowArrow{min-width:28px;display:grid;place-items:center;color:#91a0b4;font-size:17px}.flowLegend{display:flex;gap:12px;color:var(--muted);font-size:10px;margin-top:-6px;margin-bottom:8px}
.reportGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.reportItem{border:1px solid var(--line);background:#fff;border-radius:5px;padding:10px;cursor:pointer;min-height:78px}.reportItem:hover{border-color:#87afe8;box-shadow:0 3px 14px #174d8d14}.reportItem b{display:block;margin-bottom:4px}.reportItem small{color:var(--muted);line-height:1.35}.reportCategory{font-size:10px;color:#2b65ae;text-transform:uppercase;font-weight:900;letter-spacing:.7px;margin:12px 0 5px}
.statement{max-width:980px}.statementRow{display:grid;grid-template-columns:1fr 160px 160px;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line2);cursor:pointer}.statementRow:hover{background:#f7fbff}.statementRow.header{background:#edf3fb;font-weight:800;border-top:1px solid #c8d5e4}.statementRow.total{font-weight:900;border-top:1px solid #aebdce;background:#f8fafc}.statementRow .value{text-align:right;font-family:var(--mono)}
.journalBox{background:#10243e;color:#dfe9f5;border-radius:5px;overflow:hidden}.journalHead{padding:7px 10px;background:#173250;color:#ffbe4a;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px;display:flex}.journalHead .spacer{flex:1}.journalBox table th{background:#173250;color:#87a3c1;border-color:#29435d}.journalBox table td{border-color:#223c58}.journalBox tbody tr:hover td{background:#16304b}.balanced{background:#1a7b4c;color:#fff;border-radius:10px;padding:1px 6px}
.attachmentGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.attachment{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#fff}.attachmentPreview{height:82px;background:#eef2f7;display:grid;place-items:center;color:#718097;font-size:30px}.attachmentInfo{padding:7px}.attachmentInfo b{font-size:10.5px;display:block;overflow:hidden;text-overflow:ellipsis}.attachmentInfo small{color:var(--muted);font-size:9px}.requiredBadge{color:var(--red);font-size:10px;font-weight:800}
.timeline{border-left:2px solid #cfd9e7;margin-left:7px;padding-left:14px}.timelineItem{position:relative;padding:0 0 12px}.timelineItem:before{content:"";position:absolute;left:-19px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--brand);border:2px solid #fff}.timelineItem b{display:block;font-size:11px}.timelineItem small{color:var(--muted)}
.overlay{display:none;position:fixed;inset:0;background:#0b1930a8;z-index:50;padding:18px;overflow:auto}.overlay.open{display:block}.dialog{max-width:1040px;margin:0 auto;background:var(--bg);border-radius:7px;box-shadow:var(--shadow);overflow:hidden}.dialogHead{background:var(--nav);color:#fff;padding:11px 13px;display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:4}.dialogHead h2{margin:0;font-size:17px}.dialogHead .spacer{flex:1}.dialogBody{padding:12px}.dialogFoot{background:#fff;border-top:1px solid var(--line);padding:9px 12px;display:flex;justify-content:flex-end;gap:6px;position:sticky;bottom:0}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:10px}.tab{padding:7px 10px;font-weight:700;font-size:10.5px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,100px);opacity:0;background:#10243e;color:#fff;padding:9px 14px;border-radius:5px;border-left:4px solid var(--green);box-shadow:var(--shadow);z-index:90;transition:.22s}.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{border-left-color:var(--red)}
.empty{padding:30px;text-align:center;color:var(--muted)}.empty b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}
@media(max-width:1100px){#appShell{grid-template-columns:205px 1fr}.reportGrid{grid-template-columns:repeat(2,1fr)}.g5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){
 body{font-size:13.5px}#appShell{grid-template-columns:1fr;grid-template-rows:50px 1fr 58px;grid-template-areas:"top" "main" "bottom"}.brandbar{display:none}.sidebar{display:none;position:fixed;top:50px;left:0;bottom:58px;width:260px;z-index:30;box-shadow:var(--shadow)}.sidebar.open{display:block}.mobileOnly{display:inline-grid;place-items:center}.topbar{padding:0 8px}.context select{max-width:128px;padding-right:18px}.context span{display:none}.topbar .quickBtn,.topbar>.iconBtn:not(.mobileOnly){display:none}.userChip div{display:none}.main{padding:9px 9px 12px}.bottomNav{grid-area:bottom;display:grid;grid-template-columns:repeat(5,1fr);background:var(--nav);padding-bottom:env(safe-area-inset-bottom)}.bottomNav a{color:#8fa9c5;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;border-top:3px solid transparent}.bottomNav a b{font-size:17px}.bottomNav a.active{color:#fff;border-top-color:var(--accent)}
 .pageHead{align-items:flex-start}.pageHead h1{font-size:21px}.pageHead .toolbar{width:100%}.pageHead .toolbar .btn{flex:1}.g2,.g3,.g4,.g5{grid-template-columns:1fr}.g4.mobile2,.g5.mobile2{grid-template-columns:1fr 1fr}.reportGrid{grid-template-columns:1fr}.tableWrap table{min-width:720px}.overlay{padding:0}.dialog{min-height:100%;border-radius:0}.dialogBody{padding:9px}.attachmentGrid{grid-template-columns:repeat(2,1fr)}.statementRow{grid-template-columns:1fr 110px}.statementRow .prior{display:none}.flowNode{min-width:135px}.cardBody{padding:8px}
}
@media print{.brandbar,.topbar,.sidebar,.bottomNav,.pageHead .toolbar,.noPrint{display:none!important}#appShell{display:block}.main{overflow:visible;padding:0}body{overflow:visible;background:#fff}.card{border:0}.statement{max-width:none}}
.authGate{position:fixed;inset:0;z-index:120;background:linear-gradient(135deg,#0d2139,#173c62);display:grid;place-items:center;padding:20px}.authGate.hidden{display:none}.loginCard{width:min(420px,100%);background:#fff;border-radius:8px;padding:24px;box-shadow:0 24px 70px #06111f80}.loginBrand{display:flex;align-items:center;gap:10px;margin-bottom:20px}.loginBrand b{font-size:20px}.loginBrand small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:1px}.loginCard h1{margin:0 0 5px;font-size:24px}.loginCard p{margin:0 0 18px;color:var(--muted);font-size:12px}.loginCard .field{margin-bottom:12px}.loginCard .btn{width:100%;padding:10px}.loginError{margin-top:10px;background:var(--redBg);color:var(--red);padding:8px;border-radius:4px;font-size:11px}.loginFoot{display:block;margin-top:14px;color:var(--muted);text-align:center}.liveStrip{display:flex;gap:8px;align-items:center;background:#eaf5ef;border:1px solid #bddfca;padding:7px 10px;border-radius:5px;margin-bottom:10px;color:#23623e;font-size:10.5px}.liveStrip b{font-size:11px}.liveStrip .spacer{flex:1}.liveDot{width:7px;height:7px;border-radius:50%;background:#1d965a}.setupGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}@media(max-width:900px){.setupGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.loginCard{padding:18px}.setupGrid{grid-template-columns:1fr}}
