:root{
  --ink:#16202c; --ink2:#4a5868; --ink3:#7b8796; --line:#dfe4ea; --line2:#eef1f4;
  /* brand — sampled from the logo */
  --brand-blue:#2a75b6; --brand-green:#08b653; --brand-yellow:#ffbe25;
  --bg:#f4f7fa; --card:#fff; --navy:#123a63; --navy2:#0d2c4c; --gold:var(--brand-yellow);
  --accent:#2a75b6; --accent-hover:#215f95; --accent-bg:#e7f0f9; --ok:#067a38; --ok-bg:#e3f6ea;
  --stripe:linear-gradient(90deg,var(--brand-green) 0 33.3%,var(--brand-yellow) 33.3% 66.6%,var(--brand-blue) 66.6%);
  --warn:#9a6200; --warn-bg:#fdf3dc; --bad:#b42318; --bad-bg:#fdecea; --info:#475467; --info-bg:#eef1f4;
  --r:8px; --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
  --font:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Mono",Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font:14px/1.45 var(--font);color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.hidden{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
h1{font-size:20px;margin:0}
h2{font-size:16px;margin:0 0 10px}
h3{font-size:14px;margin:0 0 8px}
small,.muted{color:var(--ink3)}

/* shell */
.shell{display:flex;min-height:100vh}
.side{width:236px;flex:none;background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);color:#cfd9e6;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;padding:18px 16px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand b{color:#fff;display:block;font-size:15px}
.brand small{color:#9fb0c5;display:block;font-size:12px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logo{width:34px;height:34px;border-radius:8px;background:#fff;flex:none;display:flex;align-items:center;justify-content:center;padding:4px}
.logo svg{width:100%;height:100%;display:block}
.logo-old:after{content:"";position:absolute;inset:8px 7px 7px;background:linear-gradient(90deg,var(--navy) 0 25%,transparent 25% 40%,var(--navy) 40% 63%,transparent 63% 78%,var(--navy) 78%);clip-path:polygon(0 0,25% 0,25% 100%,40% 100%,40% 35%,63% 35%,63% 100%,78% 100%,78% 60%,100% 60%,100% 100%,0 100%)}
#nav{padding:8px 8px 24px}
#nav a{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:6px;color:#d7e0eb;font-size:13.5px}
#nav a:hover{background:rgba(255,255,255,.07);text-decoration:none}
#nav a.active{background:rgba(255,255,255,.12);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--brand-yellow)}
#nav a.cta{color:var(--gold);font-weight:600}
.navh{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8396ad;padding:14px 10px 4px}
.badge{background:var(--bad);color:#fff;border-radius:10px;padding:0 7px;font-size:11px;font-weight:700}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{min-height:56px;background:var(--card);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:0 20px;position:sticky;top:0;z-index:20}
.period{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.period label{font-size:12px;color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin-right:4px}
.period input,.period select{height:32px;border:1px solid var(--line);border-radius:6px;padding:0 8px;background:#fff}
/* top-bar search with suggestions (initSearch) */
.gs{position:relative;flex:1 1 240px;max-width:340px;min-width:150px}
#p-quick{width:130px}
@media (max-width:1180px){.period label{display:none}}
.gs{--gs-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238595a8' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E")}
.gs input{width:100%;height:32px;border:1px solid var(--line);border-radius:6px;padding:0 10px 0 30px;background:#fff var(--gs-ico) no-repeat 9px 50%/15px}
html[data-theme="dark"] .gs input{background:var(--field) var(--gs-ico) no-repeat 9px 50%/15px;border-color:var(--field-line);color:var(--ink)}
.gs-list{position:absolute;top:calc(100% + 4px);right:0;width:max(100%,380px);max-height:min(460px,70vh);overflow:auto;z-index:60;
  background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 36px rgba(13,26,51,.22);padding:4px 0}
.gs-head{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);padding:8px 12px 3px}
.gs-sep{border-top:1px solid var(--line);margin:4px 0}
.gs-item{display:flex;align-items:baseline;gap:10px;padding:6px 12px;cursor:pointer;font-size:13.5px}
.gs-item.on{background:var(--accent-bg)}
.gs-l{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-s{flex:none;font-size:12px;color:var(--ink3);white-space:nowrap}
.gs-act .gs-l{color:var(--accent);font-weight:600}
#shell.blank #gs{visibility:hidden}
.spacer{flex:1}
.user{display:flex;align-items:center;gap:10px;font-size:13px}
.user .role{font-size:11px;background:var(--accent-bg);color:var(--accent);padding:1px 7px;border-radius:9px;text-transform:capitalize}
.iconbtn{border:0;background:none;font-size:20px;cursor:pointer;padding:4px 8px}
.menu{display:none}
.view{padding:20px 24px 60px;max-width:100%}

/* generic */
.pagehead{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.pagehead .sub{color:var(--ink3);font-size:13px;margin-top:2px}
.pagehead .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.card.pad{padding:16px}
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.kpi{padding:14px 16px}
.kpi .l{font-size:12px;color:var(--ink3);text-transform:uppercase;letter-spacing:.05em}
.kpi .v{font-size:22px;font-weight:650;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .s{font-size:12px;color:var(--ink3);margin-top:2px}
.two{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:550;white-space:nowrap}
.btn:hover{border-color:#c5ccd5;background:#fafbfc;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.danger{color:var(--bad);border-color:#f0c4bf}
.btn.danger:hover{background:var(--bad-bg)}
.btn.sm{height:28px;padding:0 10px;font-size:13px}
.btn.ghost{border-color:transparent;background:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.tabs a,.tabs button{padding:8px 14px;border:0;background:none;cursor:pointer;color:var(--ink2);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:550}
.tabs a:hover,.tabs button:hover{color:var(--ink);text-decoration:none}
.tabs .on{color:var(--accent);border-bottom-color:var(--accent)}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.toolbar input[type=search],.toolbar select{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:#fff;min-width:220px}
.chip{display:inline-block;font-size:11px;font-weight:650;padding:1px 6px;border-radius:4px;background:var(--line2);color:var(--ink2);margin-right:3px;letter-spacing:.02em}
.chip.vt{background:#e7f1fb;color:#1d5594}
.chip.wt{background:#f3ecfb;color:#6b3fa0}
.chip.book{background:#e9f3ee;color:#1e6b43}
.chip.none{background:var(--warn-bg);color:var(--warn)}
.empty{padding:40px;text-align:center;color:var(--ink3)}

/* tables */
.tablewrap{overflow:auto;max-height:calc(100vh - 230px);border:1px solid var(--line);border-radius:var(--r);background:#fff}
table.t{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}
table.t th{position:sticky;top:0;background:#f7f8fa;color:var(--ink2);font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:2}
table.t td{padding:6px 10px;border-bottom:1px solid var(--line2);vertical-align:top}
table.t tr:hover td{background:#fafbfd}
table.t tr.click{cursor:pointer}
table.t td.n,table.t th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.t td.d{white-space:nowrap}
table.t td.wrap{min-width:180px;max-width:360px}
table.t tfoot td{position:sticky;bottom:0;background:#f7f8fa;font-weight:700;border-top:1px solid var(--line);border-bottom:0}
table.t tr.beg td{font-style:italic;color:var(--ink2);background:#fcfcfd}
table.t .sticky1{position:sticky;left:0;background:#fff;z-index:1}
table.t th.sticky1{z-index:3;background:#f7f8fa}
table.t tr.grp td{background:#f3f5f8;font-weight:650;color:var(--ink2);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.neg{color:var(--bad)}
.zero{color:#b7bec8}

/* forms */
.form{display:grid;gap:12px}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:12px;font-weight:600;color:var(--ink2)}
.field input,.field select,.field textarea{height:34px;border:1px solid #cfd6de;border-radius:6px;padding:0 10px;background:#fff;min-width:0}
.field textarea{height:auto;min-height:60px;padding:8px 10px;resize:vertical}
.field .hint{font-size:12px;color:var(--ink3)}
input:focus,select:focus,textarea:focus{outline:2px solid #9fc3e6;outline-offset:0;border-color:var(--accent)}
.seg{display:inline-flex;border:1px solid #cfd6de;border-radius:6px;overflow:hidden;height:34px}
.seg button{border:0;background:#fff;padding:0 14px;cursor:pointer;font-weight:600;color:var(--ink2);border-right:1px solid #cfd6de}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--navy);color:#fff}
.errors{background:var(--bad-bg);border:1px solid #f4c7c2;color:var(--bad);border-radius:6px;padding:10px 14px}
.errors ul{margin:4px 0 0;padding-left:18px}

/* entry editor */
.lines{width:100%;border-collapse:collapse}
.lines th{font-size:12px;color:var(--ink2);text-align:left;padding:6px;border-bottom:1px solid var(--line)}
.lines td{padding:5px 6px;border-bottom:1px solid var(--line2);vertical-align:middle}
.lines td input,.lines td select{width:100%;height:32px;border:1px solid #cfd6de;border-radius:5px;padding:0 8px;background:#fff}
.lines td.amt input{text-align:right;font-variant-numeric:tabular-nums}
.lines tr.tagrow td{background:#f8fafc;padding:10px 12px 12px}
.tagbox{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.tagbox .field input,.tagbox .field select{height:30px}
.flags{display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px}
.flags label{display:flex;gap:4px;align-items:center;font-weight:500;color:var(--ink2)}
.helper{grid-column:1/-1;display:flex;gap:8px;align-items:center;background:#fff;border:1px dashed #c8d4e3;border-radius:6px;padding:7px 10px;font-size:13px;flex-wrap:wrap}
.totbar{display:flex;gap:22px;justify-content:flex-end;align-items:center;padding:12px 6px;font-variant-numeric:tabular-nums;flex-wrap:wrap}
.totbar b{font-size:15px}
.diff-ok{color:var(--ok);font-weight:600}
.diff-bad{color:var(--bad);font-weight:600}
.stickyfoot{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:12px 16px;display:flex;gap:8px;align-items:center;border-radius:0 0 var(--r) var(--r);flex-wrap:wrap}

/* statements */
.stmt{max-width:640px}
.stmt table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.stmt td{padding:5px 4px}
.stmt td.n{text-align:right;width:160px}
.stmt tr.h td{font-weight:700;padding-top:14px;color:var(--ink2);text-transform:uppercase;font-size:12px;letter-spacing:.05em}
.stmt tr.i td:first-child{padding-left:18px}
.stmt tr.s td{font-weight:650;border-top:1px solid var(--line)}
.stmt tr.g td{font-weight:750;border-top:2px solid var(--ink);border-bottom:3px double var(--ink);font-size:15px}

/* tally / checks */
.cellok{color:var(--ok)}
.cellbad{background:var(--bad-bg);color:var(--bad);font-weight:700}
.sev{font-size:11px;font-weight:700;text-transform:uppercase;padding:2px 7px;border-radius:4px;letter-spacing:.04em}
.sev.error{background:var(--bad-bg);color:var(--bad)}
.sev.warning{background:var(--warn-bg);color:var(--warn)}
.sev.info{background:var(--info-bg);color:var(--info)}
.banner{border-radius:var(--r);padding:12px 16px;margin-bottom:14px;display:flex;gap:10px;align-items:center}
.banner.ok{background:var(--ok-bg);color:var(--ok)}
.banner.bad{background:var(--bad-bg);color:var(--bad)}
.banner.warn{background:var(--warn-bg);color:var(--warn)}

/* chart */
.chart svg{width:100%;height:auto;display:block}
.legend{display:flex;gap:14px;font-size:12px;color:var(--ink2);margin-top:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}

/* modal + toasts */
.modal{position:fixed;inset:0;background:rgba(16,24,40,.45);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto}
.modal-card{background:#fff;border-radius:10px;box-shadow:0 20px 50px rgba(0,0,0,.25);width:min(620px,100%)}
.modal-card .mh{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center}
.modal-card .mb{padding:18px 20px}
.modal-card .mf{padding:12px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:60}
.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:7px;box-shadow:var(--shadow);max-width:420px;font-size:13.5px}
.toast.err{background:var(--bad)}
.toast.ok{background:var(--ok)}

/* auth */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--navy) 0 45%,var(--bg) 45%)}
.auth .card{width:min(400px,92vw);padding:28px}
.auth h1{margin-bottom:4px}

@media (max-width:900px){
  .side{position:fixed;left:-250px;z-index:40;transition:left .2s}
  .side.open{left:0;box-shadow:0 0 40px rgba(0,0,0,.3)}
  .menu{display:block}
  .two{grid-template-columns:1fr}
  .view{padding:16px}
  .top{padding:0 12px;height:auto;min-height:56px;flex-wrap:wrap}
  .toolbar input[type=search]{min-width:0;flex:1}
}
@media print{
  .side,.top,.actions,.toolbar,.tabs,.stickyfoot{display:none!important}
  .view{padding:0}
  .tablewrap{max-height:none;overflow:visible;border:0}
  body{background:#fff}
}
.lines td input[type=checkbox]{width:auto;height:auto}
.flags label{white-space:nowrap}
table.t td.sticky1{min-width:230px}
table.t td{white-space:nowrap}
table.t td.wrap{white-space:normal}
.banner{flex-wrap:wrap}

/* ---- brand accents (logo colors) */
.kpi{border-top:3px solid var(--line)}
.kpi.k-blue{border-top-color:var(--brand-blue)}
.kpi.k-green{border-top-color:var(--brand-green)}
.kpi.k-yellow{border-top-color:var(--brand-yellow)}
.chip.book{background:#e3f6ea;color:#067a38}
.chip.vt{background:var(--accent-bg);color:#1f5f99}
.chip.wt{background:#fff4d6;color:#8a5a00}
.badge{background:var(--brand-yellow);color:#3a2a00}
.seg button.on{background:var(--accent);color:#fff}
.banner.ok{background:var(--ok-bg);color:var(--ok);border-left:4px solid var(--brand-green)}
.banner.warn{border-left:4px solid var(--brand-yellow)}
.banner.bad{border-left:4px solid var(--bad)}
.cellok{color:var(--brand-green);font-weight:700}
.diff-ok{color:var(--ok)}
.auth .card{background:var(--stripe) top/100% 5px no-repeat,#fff;padding-top:32px}
.auth .brandmark{width:56px;height:56px;margin-bottom:10px}
table.t th{border-bottom:2px solid #d5e3f1}
.stmt tr.g td{border-top-color:var(--navy);border-bottom-color:var(--navy)}
.top{background:var(--stripe) top/100% 3px no-repeat,var(--card)}

/* ================================================================ dark theme
   The app sets <html data-theme="light|dark"> (System follows the OS setting). */
html[data-theme="dark"]{
  color-scheme:dark;
  --ink:#e6edf5; --ink2:#b4c0cf; --ink3:#8593a5; --line:#2b3a4d; --line2:#223042;
  --bg:#0d1520; --card:#141f2e; --surface2:#1a2738; --hover:#1b2a3c; --field:#0f1926; --field-line:#34465c;
  --navy:#0b1a2c; --navy2:#07111d;
  --accent:#5b9ee0; --accent-hover:#76b0e8; --accent-bg:#17314d;
  --ok:#4fd18a; --ok-bg:#10301e; --warn:#f2c35b; --warn-bg:#352a0f; --bad:#ff8a7a; --bad-bg:#3a1916;
  --info:#b4c0cf; --info-bg:#223042;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.3);
}
html[data-theme="dark"] .btn,
html[data-theme="dark"] .seg button,
html[data-theme="dark"] .tablewrap,
html[data-theme="dark"] .modal-card,
html[data-theme="dark"] table.t .sticky1{background:var(--card)}
html[data-theme="dark"] .btn{border-color:var(--field-line)}
html[data-theme="dark"] .btn:hover{background:var(--hover);border-color:#46607d}
html[data-theme="dark"] .btn.primary{background:#2a75b6;border-color:#2a75b6;color:#fff}
html[data-theme="dark"] .btn.primary:hover{background:#3584c8;border-color:#3584c8}
html[data-theme="dark"] .btn.ghost{background:none;border-color:transparent}
html[data-theme="dark"] .btn.danger{border-color:#6b2c26}
html[data-theme="dark"] .seg{border-color:var(--field-line)}
html[data-theme="dark"] .seg button{border-right-color:var(--field-line)}
html[data-theme="dark"] .seg button.on{background:#2a75b6;color:#fff}
html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .lines td input,html[data-theme="dark"] .lines td select,
html[data-theme="dark"] .period input,html[data-theme="dark"] .period select,
html[data-theme="dark"] .toolbar input[type=search],html[data-theme="dark"] .toolbar select{background:var(--field);border-color:var(--field-line);color:var(--ink)}
html[data-theme="dark"] input:focus,html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{outline-color:#2f5f8f}
html[data-theme="dark"] table.t th,html[data-theme="dark"] table.t tfoot td,html[data-theme="dark"] table.t th.sticky1{background:var(--surface2);border-bottom-color:var(--line)}
html[data-theme="dark"] table.t tr:hover td{background:var(--hover)}
html[data-theme="dark"] table.t tr.beg td{background:#162334}
html[data-theme="dark"] table.t tr.grp td{background:var(--surface2)}
html[data-theme="dark"] .zero{color:#4c5c70}
html[data-theme="dark"] .lines tr.tagrow td{background:#111b28}
html[data-theme="dark"] .helper{background:var(--card);border-color:#34506e}
html[data-theme="dark"] .errors{border-color:#6b2c26}
html[data-theme="dark"] .chip{background:var(--line2);color:var(--ink2)}
html[data-theme="dark"] .chip.book{background:#10301e;color:#6fdc9e}
html[data-theme="dark"] .chip.vt{background:#17314d;color:#8fc0f0}
html[data-theme="dark"] .chip.wt{background:#352a0f;color:#f5cf75}
html[data-theme="dark"] .chip.none{background:#352a0f;color:#f2c35b}
html[data-theme="dark"] .auth .card{background:var(--stripe) top/100% 5px no-repeat,var(--card)}
html[data-theme="dark"] .auth{background:linear-gradient(160deg,#0b1a2c 0 45%,var(--bg) 45%)}
html[data-theme="dark"] .stmt tr.g td{border-top-color:var(--ink2);border-bottom-color:var(--ink2)}
html[data-theme="dark"] .modal{background:rgba(0,0,0,.6)}
html[data-theme="dark"] .toast{background:#2a3a50}
html[data-theme="dark"] .toast.err{background:#9b2c22}
html[data-theme="dark"] .toast.ok{background:#14763f}
html[data-theme="dark"] table.t th{border-bottom:2px solid #2d4a68}

/* theme switch */
.themesw{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;height:30px}
.themesw button{border:0;background:transparent;color:var(--ink3);padding:0 9px;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600}
.themesw button+button{border-left:1px solid var(--line)}
.themesw button svg{width:15px;height:15px}
.themesw button.on{background:var(--accent-bg);color:var(--accent)}
.themesw button:hover:not(.on){color:var(--ink)}
@media (max-width:900px){.themesw button span{display:none}}
/* printing always uses the light palette */
@media print{
  html[data-theme="dark"]{color-scheme:light;--ink:#16202c;--ink2:#4a5868;--ink3:#7b8796;--line:#dfe4ea;--line2:#eef1f4;
    --bg:#fff;--card:#fff;--surface2:#f7f8fa;--hover:#fff;--accent:#2a75b6;--ok:#067a38;--bad:#b42318}
  .themesw{display:none}
}
/* comparative statements */
.stmt.cmp{max-width:1020px}
.stmt.cmp td.n{width:150px}
.stmt.cmp td.n:last-child{width:90px}
.stmt.cmp thead th{font-size:12px;color:var(--ink2);text-align:right;padding:6px 4px;border-bottom:2px solid var(--line);white-space:nowrap}
.stmt.cmp thead th:first-child{text-align:left}
.cmpbar{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px}
/* SLP excluded lines */
table.t tr.excl td{color:var(--ink3);background:repeating-linear-gradient(135deg,transparent 0 8px,var(--line2) 8px 9px)}
table.t tr.excl td.n{text-decoration:line-through;text-decoration-color:var(--ink3)}
table.t td[data-noopen]{cursor:default}
table.t td[data-noopen] input{width:16px;height:16px;cursor:pointer}

/* ---- sidebar footer: theme switch + signed-in user (lower left) */
.side{display:flex;flex-direction:column;overflow:hidden}
.side #nav{flex:1;overflow-y:auto;min-height:0}
.side-foot{flex:none;border-top:1px solid rgba(255,255,255,.1);padding:12px 12px 14px;display:flex;flex-direction:column;gap:10px;background:rgba(0,0,0,.12)}
.side-foot .themesw{display:flex;width:100%;height:32px;border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.04)}
.side-foot .themesw button{flex:1;justify-content:center;color:#a9b8ca;padding:0 4px}
.side-foot .themesw button+button{border-left-color:rgba(255,255,255,.16)}
.side-foot .themesw button.on{background:rgba(255,255,255,.14);color:#fff}
.side-foot .themesw button:hover:not(.on){color:#fff}
.side-foot .user{gap:9px;min-width:0}
.side-foot .avatar{width:32px;height:32px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#0d2c4c;background:var(--brand-yellow)}
.side-foot .who{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}
.side-foot .who b{color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-foot .who .role{align-self:flex-start;margin-top:2px;background:rgba(255,255,255,.12);color:#cfe0f3;font-size:10.5px;padding:0 7px;border-radius:9px;text-transform:capitalize}
.side-foot #logout{color:#d7e0eb;padding:0 8px;height:28px}
.side-foot #logout:hover{background:rgba(255,255,255,.1);color:#fff}
html[data-theme="dark"] .side-foot .btn.ghost{background:none}
@media (max-width:900px){.side-foot .themesw button span{display:inline}}
/* compare bar: editable current and comparison periods */
.cmpbar{gap:10px 18px}
.cmpbar .grp{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.cmpbar input[type=date]{height:34px;border:1px solid #cfd6de;border-radius:6px;padding:0 8px;background:#fff;color:var(--ink)}
.cmpbar select{height:34px;border:1px solid #cfd6de;border-radius:6px;padding:0 8px;background:#fff;color:var(--ink)}
html[data-theme="dark"] .cmpbar input[type=date],html[data-theme="dark"] .cmpbar select{background:var(--field);border-color:var(--field-line);color:var(--ink)}

.brand{padding:18px 18px 14px}
/* slashed zero in the product name, so "0" never reads as the letter O */
.slash0{position:relative;display:inline-block;color:inherit;font-weight:inherit}
.slash0::after{content:"";position:absolute;left:50%;top:52%;width:.11em;min-width:2px;height:.62em;background:currentColor;border-radius:1px;transform:translate(-50%,-50%) rotate(32deg);pointer-events:none}
/* column chooser */
.colbar{display:flex;justify-content:flex-end;margin:0 0 8px}
.colwrap{position:relative}
.colpop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(16,24,40,.18);padding:10px 12px;width:300px}
.colpop-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.colpop-list{max-height:320px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.colpop-list label{display:flex;gap:8px;align-items:center;padding:4px 4px;border-radius:5px;font-size:13px;cursor:pointer}
.colpop-list label:hover{background:var(--line2)}
.stmt .colbar{margin-top:6px}
@media print{.colbar{display:none}}
/* tagline */
.brand .tagline{display:block;color:var(--brand-yellow);font-size:11.5px;font-weight:600;letter-spacing:.03em;margin-top:1px}
.brand small{margin-top:3px}
.tagline-auth{color:var(--ink3);font-style:italic}
/* column filters */
.colbar{align-items:center;gap:8px}
.colbar .fstatus{margin-right:auto;font-size:12.5px}
table.t thead tr.frow th{top:35px;padding:4px 6px;border-bottom:1px solid var(--line);z-index:2}
table.t thead tr.frow th.sticky1{z-index:3}
.fin{width:100%;min-width:64px;height:26px;font-size:12px;font-weight:400;border:1px solid #cfd6de;border-radius:5px;padding:0 6px;background:#fff;color:var(--ink)}
.fin::placeholder{color:#a3adb9}
html[data-theme="dark"] .fin{background:var(--field);border-color:var(--field-line)}
.stmt thead tr.frow th{padding:4px 4px 8px;border-bottom:1px solid var(--line)}
.stmt thead th:first-child{text-align:left}
@media print{tr.frow{display:none}}
/* company switcher (sidebar) */
.co-switch{position:relative;margin-top:6px}
.co-btn{display:flex;align-items:center;gap:4px;max-width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#e6eef8;border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer;text-align:left}
.co-btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.co-btn:hover{background:rgba(255,255,255,.14)}
.co-menu{position:absolute;left:0;top:calc(100% + 6px);z-index:60;width:250px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(0,0,0,.25);padding:6px}
.co-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);padding:6px 8px 4px}
.co-opt{display:block;width:100%;text-align:left;border:0;background:none;color:var(--ink);padding:7px 8px;border-radius:5px;cursor:pointer;font-size:13px}
.co-opt:hover{background:var(--line2);text-decoration:none}
.co-opt.on{font-weight:650;color:var(--accent)}
.co-opt.manage{border-top:1px solid var(--line);border-radius:0;margin-top:4px;padding-top:9px;color:var(--accent)}
.brand{overflow:visible}
.side{overflow:visible}
/* company picker + checkbox lists */
.colist{display:flex;flex-direction:column;gap:8px}
.coitem{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:12px 14px;cursor:pointer;font-size:14px}
.coitem:hover{border-color:var(--accent);background:var(--accent-bg)}
.coitem span{color:var(--accent);font-size:13px}
.cochecks{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.cochecks label{display:flex;gap:8px;align-items:center;font-weight:500;font-size:13px;color:var(--ink)}
/* Excel-style column filter dropdown */
th.fth{cursor:pointer;user-select:none;white-space:nowrap}
th.fth:hover{background:var(--accent-bg)}
th.fth .fico{display:inline-block;margin-left:5px;font-size:10px;color:var(--ink3);width:12px;text-align:center}
th.fth.n .fthl{}
th.fth.filtered,th.fth.sorted{color:var(--accent)}
th.fth.filtered .fico,th.fth.sorted .fico{color:var(--accent);font-size:12px;font-weight:700}
th.fth:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.stmt th.fth{padding:6px 4px}
.fpop{position:fixed;z-index:80;width:300px;max-width:calc(100vw - 16px);background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px rgba(16,24,40,.25);padding:10px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.fp-h{display:flex;align-items:center;justify-content:space-between}
.fp-h b{font-size:13.5px}
.fp-sort{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--line);padding-bottom:6px}
.fp-btn{border:0;background:none;text-align:left;padding:6px 8px;border-radius:6px;cursor:pointer;color:var(--ink);font-size:13px}
.fp-btn:hover{background:var(--line2)}
.fp-btn.on{background:var(--accent-bg);color:var(--accent);font-weight:600}
.fp-search,.fp-condin{height:32px;border:1px solid #cfd6de;border-radius:6px;padding:0 9px;background:var(--card);color:var(--ink);width:100%}
html[data-theme="dark"] .fp-search,html[data-theme="dark"] .fp-condin{background:var(--field);border-color:var(--field-line)}
.fp-list{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:4px}
.fp-list label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:5px;cursor:pointer}
.fp-list label:hover{background:var(--line2)}
.fp-list input{flex:none;width:15px;height:15px}
.fp-val{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-n{color:var(--ink3);font-size:11.5px;font-variant-numeric:tabular-nums}
.fp-all{border-bottom:1px solid var(--line2);margin-bottom:2px}
.fp-more{font-size:11.5px;padding:6px}
.fp-cond summary{cursor:pointer;color:var(--ink2);font-size:12.5px;padding:2px 0 4px}
.fp-f{display:flex;gap:6px;align-items:center}
.fstatus .fpill{display:inline-block;background:var(--accent-bg);color:var(--accent);font-weight:600;border-radius:10px;padding:0 8px;margin-right:4px;font-size:11.5px}
.fstatus .fhint{font-size:12px}
@media print{.fstatus,th.fth .fico{display:none}}
.form{align-content:start}
/* Export ▾ menu */
.expwrap{position:relative;display:inline-flex}
.exppop{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:250px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(16,24,40,.2);padding:5px;display:flex;flex-direction:column}
.exppop.hidden{display:none}
.exppop button{border:0;background:none;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--ink);font-size:13px;display:flex;flex-direction:column;gap:1px}
.exppop button:hover{background:var(--accent-bg)}
.exppop button .muted{font-size:11.5px}
#pack .exppop{left:0;right:auto}
@media print{.expwrap{display:none}}

/* reference / document number checks */
.field input.bad{border-color:var(--bad);box-shadow:0 0 0 2px color-mix(in srgb,var(--bad) 18%,transparent)}
.field input.warn{border-color:var(--warn);box-shadow:0 0 0 2px var(--warn-bg)}
.numchk{display:block;line-height:1.35}
.numchk .numbad{color:var(--bad);font-weight:600}
.numchk .numwarn{color:var(--warn);font-weight:600}
.numchk a{color:inherit;text-decoration:underline}
.numchk .numok{display:flex;gap:6px;align-items:center;margin-top:3px;font-weight:500;color:var(--ink2,inherit);cursor:pointer}

.tabs .tabsep{width:1px;align-self:stretch;background:var(--line);margin:6px 8px}

/* collapsible sidebar groups */
.navgh{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;border:0;background:none;border-radius:6px;color:#d7e0eb;font:inherit;font-size:13.5px;cursor:pointer;text-align:left}
.navgh:hover{background:rgba(255,255,255,.07)}
.navgh .chev{font-size:11px;color:#8396ad;transition:transform .15s}
.navgrp.closed .navgh .chev{transform:rotate(-90deg)}
.navgrp.closed .navsub{display:none}
.navgrp.closed.has-active .navgh{background:rgba(255,255,255,.12);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--brand-yellow)}
.navsub{margin:1px 0 4px 12px;padding-left:8px;border-left:1px solid rgba(255,255,255,.12)}
#nav .navsub a{font-size:13px;padding:5px 10px}
#nav .navsub a small{font-size:10.5px;letter-spacing:.03em;color:#8396ad;font-weight:600}
#nav .navsub a.active small{color:var(--brand-yellow)}

/* sidebar "New entry": green button, navy text */
#nav a.cta{justify-content:center;gap:6px;margin:4px 10px 10px;height:32px;padding:0 12px;border-radius:7px;
  background:#08b653;color:#0f2f52;border:1px solid rgba(15,47,82,.25);font-weight:650;font-size:13px;box-shadow:0 1px 2px rgba(0,0,0,.25)}
#nav a.cta:hover{background:#0aa64d;color:#0f2f52}
#nav a.cta.active{background:#0aa64d;color:#0f2f52;box-shadow:0 0 0 2px #3ddc84}
#nav a.cta .cta-plus{margin:0}

/* larger brand name and tagline */
.brand b.brandname{font-size:21px;line-height:1.15;letter-spacing:.01em}
.brand .tagline{font-size:13.5px;margin-top:3px}

/* sidebar icons */
#nav a,.navgh{justify-content:flex-start;gap:10px}
#nav a .nl,.navgh .nl{flex:1;min-width:0}
#nav .ni{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.82}
#nav a:hover .ni,#nav a.active .ni,.navgh:hover .ni{opacity:1}
#nav a.active .ni{color:var(--brand-yellow)}
#nav .navsub .ni{width:15px;height:15px}
#nav a.cta{justify-content:center}
#nav a.cta .ni{width:16px;height:16px;stroke-width:2.6;opacity:1}
/* room for icons: slightly wider sidebar, tighter sub-lists, labels on one line */
.side{width:262px}
@media (max-width: 900px){ .side{left:-280px} }
.navsub{margin-left:10px;padding-left:6px}
#nav .navsub a{gap:8px;padding:5px 8px}
#nav a .nl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* schedules: abbreviation as the icon */
#nav .nabbr{flex:none;width:40px;text-align:center;font-size:10px;font-weight:700;letter-spacing:.03em;line-height:17px;
  border:1px solid rgba(255,255,255,.28);border-radius:4px;color:#d7e0eb;opacity:.9}
#nav a:hover .nabbr{opacity:1}
#nav a.active .nabbr{color:var(--brand-yellow);border-color:var(--brand-yellow);opacity:1}

/* account types */
.stmt td.subh{padding-left:14px;font-weight:600;font-style:italic;color:var(--ink2)}
table.coa tr.grp.needs td{background:var(--warn-bg);color:var(--warn)}
.field label .req{color:var(--bad)}
.setupcard{max-width:900px}

/* nested Account Type → Account Detail → account rows */
.lv{display:inline-flex;align-items:center;gap:4px;padding-left:calc(var(--lv,0) * 18px)}
button.caret{border:0;background:none;cursor:pointer;color:var(--ink3);width:18px;padding:0;font-size:12px;line-height:1}
button.caret:hover{color:var(--accent)}
tr.nest[data-key]{cursor:pointer}
tr.nest.grp td{font-weight:700}
tr.nest.det td{font-weight:600}
tr.nest.det td:first-child{font-style:italic}
.stmt tr.nest td:first-child{padding-left:4px}
tr.collapsed-row{display:none}
.collbar{gap:6px;margin:6px 0 8px;font-size:12.5px}
table.tbtree tr.nest.grp td{background:var(--surface2,#f6f8fa)}
table.tbtree tfoot td{font-weight:700;border-top:2px solid var(--line)}
table.coa tr.child td:first-child{padding-left:10px}
table.coa .sub-arrow{color:var(--ink3);margin-right:4px}
table.coa tr.parent td{background:var(--surface2,#f6f8fa)}
@media print{button.caret,.collbar{display:none}}

/* account & account details manager */
.modal-card.wide{width:min(820px,94vw);max-width:none}
.typesmodal .row{flex-wrap:wrap}
.tyabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:10px}
.tyabs button{border:0;background:none;padding:8px 12px;cursor:pointer;color:var(--ink2);border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:600}
.tyabs button.on{color:var(--accent);border-bottom-color:var(--accent)}
.tyadd{margin-bottom:6px}
.tyadd select[multiple]{height:auto}

/* new entry: filled in from the customer's/supplier's last entry */
.banner.info{background:var(--info-bg);color:var(--info);border-left:4px solid var(--brand-blue)}
.banner.prefill{margin:12px 0 0;font-size:13px}
.banner.prefill .spacer{flex:1}
.banner.prefill a{font-weight:600}
#seg-book{display:flex;width:100%}
#seg-book button{flex:1;padding:0 6px;min-width:0}
.banner.prefill > span:first-child{flex:1 1 360px}
.banner.prefill .spacer{display:none}
.banner.prefill .btn{white-space:nowrap}

/* Sales book: a firmer line where the next entry starts */
table.t tr.ent-start td{border-top:2px solid var(--line2)}

/* column chooser: arrange */
.colpop{width:330px}
.colrow{display:flex;align-items:center;gap:4px;border-radius:5px}
.colrow:hover{background:var(--line2)}
.colrow label{flex:1;display:flex;gap:8px;align-items:center;padding:4px 2px;font-size:13px;cursor:pointer}
.colrow .grip{cursor:grab;color:var(--ink3);padding:0 2px;letter-spacing:-2px;user-select:none}
.colrow .mv{display:flex;opacity:.55}
.colrow:hover .mv{opacity:1}
.colrow .mv .btn{padding:0 6px;min-height:22px;height:22px}
.colrow.dragging{opacity:.5;background:var(--info-bg)}
.toolbar .colbar{margin:0;justify-content:flex-end}
/* resizable columns */
table.t th{position:sticky}
th .rz{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;z-index:4;touch-action:none}
th .rz:hover{background:linear-gradient(to right,transparent 5px,var(--brand-blue) 5px,var(--brand-blue) 8px)}
body.rz-active{cursor:col-resize;user-select:none}
table.rz-fixed td,table.rz-fixed th{overflow:hidden;text-overflow:ellipsis}
table.rz-fixed td{white-space:normal;overflow-wrap:anywhere}
table.rz-fixed td.n{white-space:nowrap}
@media print{th .rz{display:none}}
.colrow.moved{background:var(--info-bg)}

/* logo (concept A · rising zero): ring follows the text color, line green, dot yellow */
.brand .brandmark{width:46px;height:46px;flex:none;color:#fff;align-self:flex-start;margin-top:2px}
.brand .slash0,.auth .slash0{color:var(--brand-green)}
.auth .brandmark{display:block;width:56px;height:56px;margin:0 0 10px;color:#123a63}
html[data-theme="dark"] .auth .brandmark{color:#fff}
@media (max-width:860px){.brand .brandmark{width:36px;height:36px}}

/* sign-in screens: follow the computer's light/dark setting; logo at the left of the name */
.auth{background:linear-gradient(160deg,#123a63 0 45%,#f4f7fa 45%)}
html[data-theme="dark"] .auth{background:linear-gradient(160deg,#0b1a2c 0 45%,#0d1520 45%)}
.auth .card.auth-card{background:var(--stripe) top/100% 5px no-repeat,var(--card);color:var(--ink);
  width:min(410px,92vw);padding:30px 32px 28px;gap:16px;box-shadow:0 18px 40px rgba(11,26,44,.22)}
html[data-theme="dark"] .auth .card.auth-card{box-shadow:0 18px 40px rgba(0,0,0,.45)}
.auth-lockup{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line2)}
.auth .auth-lockup .brandmark{width:48px;height:48px;margin:0;color:#123a63;flex:none}
html[data-theme="dark"] .auth .auth-lockup .brandmark{color:#fff}
.auth-name{font-size:24px;font-weight:700;color:#123a63;letter-spacing:.01em;line-height:1.1}
html[data-theme="dark"] .auth-name{color:#fff}
.auth-tag{font-size:13px;color:var(--ink2);font-weight:600;margin-top:2px}
html[data-theme="dark"] .auth-tag{color:var(--brand-yellow)}
.auth-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.auth-head h1{margin:0;font-size:20px}
.auth-head .muted{flex-basis:100%;font-size:13px}
.auth-seg{height:32px}
.auth-seg button{padding:0 14px;font-size:13px}
.auth .seg button.on{background:#123a63;color:#fff}
html[data-theme="dark"] .auth .seg button.on{background:#2a75b6;color:#fff}
.auth .auth-go{width:100%;justify-content:center;height:40px;font-size:14.5px}
.auth-hint{font-size:12.5px;text-align:center}
.auth-code{display:flex;gap:8px}
.auth-code input{flex:1;min-width:0}
.auth-code .btn{white-space:nowrap}
.auth-trust{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13.5px;font-weight:600;cursor:pointer}
.auth-trust input{margin:0;transform:translateY(1px)}
.auth-trust .muted{flex-basis:100%;font-size:12px;font-weight:400;padding-left:22px}
.pin-input{letter-spacing:.35em;font-size:18px}
.auth .colist{margin-top:0}


/* entry form: "Save & new / Save & close" split button (menu opens upward from the sticky footer) */
.splitbtn{position:relative;display:inline-flex}
.splitbtn #save-alt{border-top-right-radius:0;border-bottom-right-radius:0}
.splitbtn .split-caret{border-top-left-radius:0;border-bottom-left-radius:0;border-left:0;padding:0 9px;min-width:0}
.savepop{position:absolute;left:0;bottom:calc(100% + 6px);z-index:50;min-width:260px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(16,24,40,.25);padding:5px;display:flex;flex-direction:column}
.savepop.hidden{display:none}
.savepop button{border:0;background:none;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--ink);font-size:13px;display:flex;flex-direction:column;gap:1px}
.savepop button:hover,.savepop button:focus-visible{background:var(--line2)}
.savepop .muted{font-size:12px}
/* sidebar: the company button stays inside the sidebar (long names are cut with … ; full name on hover) */
.brand > div{flex:1;min-width:0}
.co-switch{max-width:100%}
.co-btn{max-width:100%;min-width:0}
.co-btn span{flex:1 1 auto;min-width:0;max-width:none}

/* show / hide password and PIN */
.pwwrap{position:relative;display:block}
.pwwrap > input{width:100%;padding-right:40px;box-sizing:border-box}
.pweye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:32px;height:30px;border:0;background:none;color:var(--ink3);
  cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px}
.pweye:hover,.pweye:focus-visible{color:var(--ink);background:var(--line2)}
.pweye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.auth-pin summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:600;padding:2px 0}
.auth-pin[open] summary{margin-bottom:10px}

/* entry lines: Document date / Document # per line, shown only for CDB and GJ */
table.lines .c-doc{display:none}
table.lines.with-doc .c-doc{display:table-cell}
table.lines th.c-acct{width:30%}
table.lines.with-doc th.c-acct{width:24%}
table.lines th.c-dd{width:132px}
table.lines th.c-dn{width:120px}
table.lines th.c-amt{width:13%}
table.lines td.c-doc input{width:100%;box-sizing:border-box}
table.lines td.c-doc input.warn{border-color:var(--warn);background:var(--warn-bg)}

/* company logos */
.co-logo-thumb{max-height:32px;max-width:56px;object-fit:contain;display:block;background:#fff;border-radius:4px;padding:2px}
.co-logo-edit{display:flex;gap:14px;align-items:center}
.co-logo-prev{width:160px;height:72px;border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden}
.co-logo-prev img{max-width:150px;max-height:64px;object-fit:contain}
.co-logo-prev .muted{font-size:12px;color:#7b8796}

/* CDB with several payees */
input.various::placeholder{font-style:italic;color:var(--ink2);opacity:1}

/* blank workspace: no company open (all inactive / none yet) — only Get started, Companies, Audit log */
#shell.blank #nav > :not([data-blank]){display:none}
#shell:not(.blank) [data-blankonly]{display:none}
#shell.blank #period{visibility:hidden}

/* bank reconciliation */
.recsum td:last-child{width:1%;white-space:nowrap}
.recsum tr.b td{font-weight:600}
.recsum tr.tot td{border-top:2px solid var(--line)}
.recsum tr.bad td{color:var(--bad)}
tr.unmatched td:first-child{box-shadow:inset 3px 0 0 var(--warn, #e0a100)}
.seg a{display:inline-flex;align-items:center;background:#fff;padding:0 14px;font-weight:600;color:var(--ink2);border-right:1px solid #cfd6de;text-decoration:none}
.seg a:last-child{border-right:0}
.seg a.on{background:var(--navy);color:#fff}
html[data-theme="dark"] .seg a{background:transparent;border-color:var(--field-line)}
html[data-theme="dark"] .seg a.on{background:#2a75b6;color:#fff}
.chip.ok{background:var(--ok-bg);color:var(--ok)}
.brpick{margin-bottom:14px}
.brfixed{display:flex;align-items:center;gap:10px;min-height:36px}
/* Settings: two columns that end at the same line — the cards of the shorter column grow to fill it */
.setcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.setcol{display:flex;flex-direction:column;gap:14px;min-width:0}
.setcol > .card{flex:1 1 auto;margin:0}
@media (max-width:900px){.setcols{grid-template-columns:1fr}}

.chipbtn{border:1px solid var(--line);background:var(--card,#fff);color:var(--ink2);border-radius:999px;padding:4px 11px;
  font-size:12.5px;cursor:pointer;text-align:left}
.chipbtn:hover{border-color:var(--accent);color:var(--accent)}
.brain-cat{display:grid;gap:10px;max-height:460px;overflow:auto;font-size:13.5px}
.brain-cat a{color:var(--accent)}

/* Knewit: floating chat, lower-right on every page (above the sidebar, below dialogs) */
.knewit{position:fixed;right:18px;bottom:18px;z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  pointer-events:none}
.knewit > *{pointer-events:auto}
body.has-knewit .toasts{bottom:100px}
.kw-fab{width:64px;height:70px;padding:0;border:0;background:none;cursor:pointer;transition:transform .15s}
.kw-fab .kw-robot{width:100%;height:100%;display:block;filter:drop-shadow(0 6px 8px rgba(13,26,51,.35))}
.kw-fab:hover,.kw-fab:focus-visible{transform:translateY(-2px) rotate(-5deg)}
/* antenna bulb blinks while greeting / hovered: flashes white, grows and glows */
.kw-robot{overflow:visible}
.kw-bulb{transform-box:fill-box;transform-origin:center}
.kw-fab:hover .kw-bulb,.knewit.greet .kw-bulb{animation:kw-glow .9s ease-in-out infinite}
@keyframes kw-glow{0%,100%{fill:var(--kr-bulb);transform:scale(1);filter:none}
  50%{fill:#fffbe6;transform:scale(1.45);filter:drop-shadow(0 0 7px var(--kr-bulb)) drop-shadow(0 0 3px var(--kr-bulb))}}
/* robot colours by theme: light = navy head (no outline), green ears/antenna, darker yellow bulb; dark = mint head (no outline), white visor, yellow ears */
.kw-robot{--kr-bulb:#e09b00;--kr-head:#12305a;--kr-edge:#12305a;--kr-face:#e8f1ff;--kr-eye:#08b653;--kr-smile:#12305a;--kr-ear:#08b653;--kr-stick:#08b653}
html[data-theme="dark"] .kw-robot{--kr-bulb:#ffbe25;--kr-head:#3ddc84;--kr-edge:#3ddc84;--kr-face:#fff;--kr-eye:#12305a;--kr-smile:#12305a;--kr-ear:#ffbe25;--kr-stick:#3ddc84}
.kr-head{fill:var(--kr-head);stroke:var(--kr-edge)}.kr-face{fill:var(--kr-face)}.kr-eye{fill:var(--kr-eye)}
.kr-smile{stroke:var(--kr-smile)}.kr-ear{fill:var(--kr-ear)}.kr-stick{stroke:var(--kr-stick)}.kw-bulb{fill:var(--kr-bulb)}
.knewit.open .kw-fab{width:50px;height:55px}
.kw-hi{position:absolute;right:74px;bottom:18px;white-space:nowrap;background:var(--card);color:var(--ink);border:1px solid var(--line);
  border-radius:14px 14px 4px 14px;padding:8px 13px;font-weight:700;font-size:14px;line-height:1.3;
  box-shadow:0 8px 24px rgba(13,26,51,.18);opacity:0;transform:translateX(8px);transition:opacity .25s,transform .25s}
.knewit > .kw-hi{pointer-events:none}
.kw-hi span{display:block;font-weight:400;font-size:12.5px;color:var(--ink3)}
/* the greeting takes the opposite theme so it stands out: navy bubble on light pages, white bubble on dark pages */
.kw-hi{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 8px 24px rgba(13,26,51,.35)}
.kw-hi span{color:#c9d7e8}
html[data-theme="dark"] .kw-hi{background:#fff;color:#12305a;border-color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.5)}
html[data-theme="dark"] .kw-hi span{color:#4a5d75}
.knewit.greet .kw-hi,.knewit:has(.kw-fab:hover) .kw-hi{opacity:1;transform:none}
.knewit.open .kw-hi{display:none}
.kw-panel{display:none;width:400px;height:min(600px,calc(100vh - 110px));background:var(--card);border:1px solid var(--line);
  border-radius:16px;box-shadow:0 18px 50px rgba(13,26,51,.28);flex-direction:column;overflow:hidden}
.knewit.open .kw-panel{display:flex}
.kw-head{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 12px;background:var(--navy);color:#fff}
.kw-logo .kw-robot{width:30px;height:33px;display:block}
.kw-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.kw-title b{font-size:15px}
.kw-co{font-size:11.5px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kw-ico{width:30px;height:30px;border-radius:8px;border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;font-size:14px}
.kw-ico:hover{background:rgba(255,255,255,.22)}
.kw-body{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.kw-hello{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:13.5px}
.kw-chips{display:flex;flex-wrap:wrap;gap:6px}
.kw-me{align-self:flex-end;max-width:85%;background:var(--accent);color:#fff;padding:7px 11px;border-radius:12px 12px 2px 12px;
  font-size:13.5px}
.kw-bot{align-self:flex-start;max-width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px 12px 12px 2px;
  padding:9px 11px;font-size:13.5px}
.kw-bot.miss{border-left:3px solid var(--warn)}
.kw-kind{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
.kw-text{font-weight:600;line-height:1.4}
.kw-tbl{margin-top:8px;overflow:auto;max-height:220px;border:1px solid var(--line);border-radius:8px}
.kw-tbl table.t{font-size:12px}
.kw-tbl table.t th,.kw-tbl table.t td{padding:5px 7px}
.kw-more{font-size:11.5px;color:var(--ink3);margin-top:4px}
.kw-link{display:inline-block;margin-top:7px;font-size:12.5px;font-weight:600;color:var(--accent)}
.kw-bot .kw-chips{margin-top:8px}
.kw-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--card)}
.kw-q{flex:1;min-width:0}
@media (max-width:700px){
  .knewit{right:12px;bottom:12px;left:12px;align-items:flex-end}
  .kw-panel{width:100%;height:calc(100vh - 96px)}
  .knewit.open{left:12px}
}
@media print{.knewit{display:none!important}}
@media (max-width:700px){.gs{flex:1 1 100%;max-width:none;margin-bottom:8px}.gs-list{width:100%}}
/* class subtotal rows in the lapsing schedule (stay in place when sorting, unlike fixed .s rows) */
.t tr.subtot td{font-weight:700;background:var(--surface2,#f3f6f9)}
.addbox{margin-top:8px;padding:10px;border:1px dashed var(--line);border-radius:8px;background:var(--surface2,#f6f8fb)}
.simlist{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px}
.simlist .simbtn{font:inherit;border:1px solid var(--line);border-radius:999px;background:var(--card);color:inherit;padding:2px 10px;cursor:pointer}
.simlist .simbtn.other{opacity:.65}
