:root{--ink:#0F1B2D;--mut:#46536A;--line:#DDE3EA;--row:#EEF1F5;--bg:#F4F7F9;--card:#FFFFFF;--field:#FFFFFF;--edge:#9AA7B8;
  --green:#0B6B43;--ontx:#FFFFFF;--warn:#9A2B00;--side:#0F1B2D;--sideon:#23395B;--chart:#2a78d6;
  --okbg:#D9F2E5;--oktx:#084F32;--badbg:#FFE7D6;--badtx:#7A2E0B;--neubg:#E4E9EF;--neutx:#2E3B50}
body[data-theme=royal]{--side:#12296B;--sideon:#2747A8;--green:#1D4ED8;--bg:#F2F5FC}
body[data-theme=forest]{--side:#12382B;--sideon:#1F5A45;--green:#0B6B43;--bg:#F3F7F4}
body[data-theme=sunset]{--side:#3B1F14;--sideon:#6B3420;--green:#B4460F;--bg:#FBF6F2}
body[data-theme=plum]{--side:#2E1A47;--sideon:#4C2C73;--green:#6D28D9;--bg:#F7F4FB}
body[data-mode=dark]{--ink:#E8EDF3;--mut:#A9B4C4;--line:#2C3A4D;--row:#243042;--bg:#0E1622;--card:#17212F;--field:#101A27;--edge:#55657C;
  --warn:#FF9B73;--chart:#3987e5;--okbg:#123A2A;--oktx:#8FE3B8;--badbg:#4A2414;--badtx:#FFC2A3;--neubg:#283548;--neutx:#C9D3DF;color-scheme:dark}
body[data-mode=dark][data-theme=navy],body[data-mode=dark]:not([data-theme]){--side:#0A111B}
body[data-mode=dark] .btn.primary{filter:brightness(1.25)}
*{box-sizing:border-box}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}
a{color:var(--green)}body[data-mode=dark] a{color:#7FD3A8}
h1{font-size:26px;margin:0;font-weight:800}h2{font-size:18px;margin:0;font-weight:800}
.btn{font:inherit;font-weight:700;min-height:44px;padding:0 18px;border-radius:10px;border:1.5px solid var(--edge);background:var(--card);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn.primary{background:var(--green);border-color:var(--green);color:var(--ontx)}
.btn.danger{color:var(--warn);border-color:var(--warn)}
.btn.small{min-height:36px;padding:0 12px;font-size:13px}
.btn:disabled{opacity:.55;cursor:wait}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
label{font-size:13px;font-weight:700;display:flex;flex-direction:column;gap:6px}
label.check{flex-direction:row;align-items:center;gap:10px;font-size:14px;font-weight:600;min-height:32px}
input,select,textarea{font:inherit;min-height:44px;padding:8px 12px;border:1.5px solid var(--edge);border-radius:10px;color:var(--ink);background:var(--field);width:100%}
input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--green);flex:none}
input[type=color]{padding:4px;width:64px}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--mut);padding:10px 8px;border-bottom:1px solid var(--line);font-size:13px}
td{padding:10px 8px;border-bottom:1px solid var(--row);vertical-align:middle}
.tablewrap{overflow-x:auto}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:16px}
.mut{color:var(--mut);font-size:13px}
.pill{font-size:12px;font-weight:800;border-radius:999px;padding:3px 10px;white-space:nowrap;display:inline-block}
.ok{background:var(--okbg);color:var(--oktx)}.bad{background:var(--badbg);color:var(--badtx)}.neutral{background:var(--neubg);color:var(--neutx)}
.msg{padding:12px 14px;border-radius:10px;font-weight:600;font-size:14px}
.layout{display:flex;min-height:100vh}
.side{width:232px;flex:none;background:var(--side);padding:22px 14px;display:flex;flex-direction:column;gap:2px}
.side .brand{color:#fff;font-size:18px;font-weight:800;padding:0 12px 14px}
.side .group{color:#8FA0B8;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:14px 12px 4px}
.groupbox{margin-top:8px;border-radius:10px;border-left:4px solid var(--gc,#8FA0B8);background:rgba(255,255,255,.04)}
.groupbox.g-crm{--gc:#4FA3F7}.groupbox.g-accounting{--gc:#3ECF8E}.groupbox.g-noc{--gc:#F5A623}.groupbox.g-settings{--gc:#B58CF2}
.side .grouphead{width:100%;display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:11px 12px;min-height:42px}
.side .grouphead .chev{color:var(--gc);font-size:14px;transition:transform .15s}
.groupbox.open .chev{transform:rotate(180deg)}
.groupitems{display:none;flex-direction:column;gap:2px;padding:0 6px 8px}
.groupbox.open .groupitems{display:flex}
@media(prefers-reduced-motion:reduce){.side .grouphead .chev{transition:none}}
.side .who{color:#C9D3DF;font-size:13px;padding:8px 12px}
.side button{font:inherit;font-weight:600;font-size:14px;text-align:left;background:none;border:0;color:#C9D3DF;padding:9px 12px;border-radius:8px;cursor:pointer}
.side button.on{background:var(--sideon);color:#fff;font-weight:700}
.side .themepick{min-height:36px;font-size:13px;margin:0 6px 4px;width:auto;background:#fff;color:#0F1B2D}
.main{flex:1;min-width:0;padding:26px 30px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.tile b{display:block;font-size:28px;font-weight:800}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tabs button{font:inherit;font-size:14px;font-weight:700;min-height:40px;padding:0 16px;border-radius:999px;border:1.5px solid var(--edge);background:var(--card);color:var(--ink);cursor:pointer}
.tabs button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.feed{max-height:420px;overflow:auto;display:flex;flex-direction:column}
.feed div{padding:9px 2px;border-bottom:1px solid var(--row);font-size:14px;display:flex;gap:10px}
.feed time{color:var(--mut);font-size:12px;white-space:nowrap;min-width:64px;padding-top:2px}
.dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:7px;background:var(--edge)}
.dot.CRITICAL{background:#D9480F}.dot.WARNING{background:#E8A200}
.chart text{fill:var(--mut);font-size:12px;font-family:inherit}
.tip{position:fixed;pointer-events:none;background:var(--ink);color:var(--bg);font-size:13px;font-weight:600;padding:6px 10px;border-radius:8px;z-index:50;white-space:nowrap}
.doc{white-space:pre-wrap;font-size:14px;line-height:1.6;border:1px solid var(--line);border-radius:10px;padding:16px;max-height:300px;overflow:auto}
.sigpad{border:1.5px dashed var(--edge);border-radius:10px;background:#fff;touch-action:none;width:100%;height:160px;display:block}
.banner{background:var(--neubg);color:var(--neutx);border-radius:12px;padding:28px;font-size:18px;font-weight:700;text-align:center}
dialog{border:0;border-radius:14px;padding:24px;width:min(620px,94vw);background:var(--card);color:var(--ink)}dialog::backdrop{background:rgba(8,14,24,.6)}
.filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:center}
.filters select,.filters input{min-height:44px}.searchbox{font-weight:600}
tr.click{cursor:pointer}tr.click:hover td,tr.click:focus td{background:var(--row)}tr.click:focus{outline:2px solid var(--green);outline-offset:-2px}
tfoot td{border-top:2px solid var(--line);border-bottom:0}
.pager{margin-top:14px}
.clock{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.digits{font-size:44px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.clock .rim{fill:var(--field);stroke:var(--edge);stroke-width:2}.clock .tickmark{stroke:var(--mut);stroke-width:1.5}.clock .hand{stroke:var(--ink)}.clock .hand.sec{stroke:var(--warn)}.clock .pin{fill:var(--ink)}
.alertbar{border:0;font:inherit;font-weight:700;text-align:left;cursor:pointer;width:100%;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{filter:brightness(.93)}}
@media(prefers-reduced-motion:reduce){.alertbar{animation:none}}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:0}
.facts dt{font-size:12px;color:var(--mut);font-weight:700}.facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.mbox{display:flex;flex-direction:column;gap:4px}
.mcell{display:block;border-radius:8px;padding:6px 8px;font-size:13px;font-weight:700;white-space:nowrap;text-align:center}
.mcell.paid{background:var(--okbg);color:var(--oktx)}.mcell.none{background:var(--badbg);color:var(--badtx)}
.mcell.covered,.mcell.exempt{background:var(--neubg);color:var(--neutx)}.mcell.before{color:var(--mut);font-weight:400}
@media(max-width:760px){.filters{grid-template-columns:1fr 1fr}.searchbox{grid-column:1/-1}}
@media(max-width:760px){.layout{flex-direction:column}.side{width:auto;flex-direction:row;flex-wrap:wrap;padding:12px}.side .brand,.side .group{width:100%}.main{padding:18px 14px}}
@media print{.layout,.noprint{display:none!important}dialog{position:static;width:100%;padding:0;box-shadow:none;color:#000;background:#fff}
  dialog::backdrop{display:none}.doc{border:0;max-height:none;overflow:visible;padding:0}body{background:#fff}}

.strip{display:flex;align-items:center;gap:10px;margin:10px 0;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:14px;line-height:1.35;min-height:44px}.striplabel{flex:none;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:var(--okbg);color:var(--oktx)}.striplabel[data-kind=notice]{background:var(--badbg);color:var(--badtx)}.striptext{flex:1;min-width:0;overflow-wrap:anywhere}.striptext a{color:inherit;text-decoration:underline}.stripnext{flex:none;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:transparent;color:inherit;font-size:20px;cursor:pointer}
@media(max-width:520px){.strip{flex-wrap:wrap;gap:6px 10px}.striplabel{max-width:calc(100% - 50px);margin-right:auto}.striptext{order:3;flex-basis:100%}}
