
/* Colours are tokens so the dark theme can redefine them. theme.js sets data-theme on <html>
   before the first paint; the dark values apply on screen only, so printing stays light. */
:root{color-scheme:light;
--bg:#f4f5f7;--surface:#fff;--subtle:#f8f9fb;--well:#fafbfc;--hover:#f4f5f7;--band:#f4f6f9;
--line:#e2e5ea;--line-soft:#eef0f3;--line-faint:#f1f3f6;--line-strong:#cfd4dc;--rule:#b8bec8;--swatch-line:#d5d9e0;
--text:#1b222c;--text-2:#2c3440;--text-3:#4b5563;--muted:#6b7482;
--accent:#2f5fe0;--accent-bg:#2f5fe0;--accent-soft:#e9effd;--accent-line:#b9c8f5;--on-accent:#fff;
--ok:#1a8f4a;--ok-soft:#e5f5eb;--ok-line:#bfe6cd;--ok-text:#14532d;--bad:#cc2f2f;--bad-soft:#fbe9e9;--bad-line:#f1b8b8;--bad-text:#7f1d1d;
--warn:#c5760b;--warn-soft:#fdf1e0;--none:#8a93a1;--none-soft:#eef0f3;--info:#1d4f9c;--info-soft:#e6f0fb;--info-line:#c5d8f2;
--po:#2a78d6;--csq:#eb6834;--track:#eef0f3;--icon-bg:#e9ecf1;--avatar-bg:#dfe5f3;--avatar-fg:#2f4a86;
--field:#fff;--toast-bg:#1b222c;--toast-fg:#fff;
--shadow:rgba(0,0,0,.14);--shadow-strong:rgba(0,0,0,.3);--scrim:rgba(15,23,42,.35);--scrim-strong:rgba(15,23,42,.45)}
@media screen{
:root[data-theme="dark"]{color-scheme:dark;
--bg:#0e1116;--surface:#161a21;--subtle:#1b2028;--well:#191e25;--hover:#20262f;--band:#1d232b;
--line:#2a313b;--line-soft:#222831;--line-faint:#20262e;--line-strong:#39414d;--rule:#4a5361;--swatch-line:#3a424e;
--text:#e3e7ed;--text-2:#cdd3dc;--text-3:#aab2be;--muted:#8b95a3;
--accent:#7a9bff;--accent-bg:#3d64dc;--accent-soft:rgba(122,155,255,.15);--accent-line:#465c96;--on-accent:#fff;
--ok:#4cc27e;--ok-soft:rgba(76,194,126,.14);--ok-line:#2b6545;--ok-text:#a3e3bd;--bad:#f07474;--bad-soft:rgba(240,116,116,.14);--bad-line:#7a3535;--bad-text:#f5b8b8;
--warn:#e6a646;--warn-soft:rgba(230,166,70,.14);--none:#8a93a1;--none-soft:#252b34;--info:#86b4f0;--info-soft:rgba(134,180,240,.13);--info-line:#33507a;
--po:#4d93ea;--csq:#f07f4c;--track:#262c36;--icon-bg:#232932;--avatar-bg:#2a3654;--avatar-fg:#bccbf5;
--field:#11151b;--toast-bg:#2c3441;--toast-fg:#f1f4f8;
--shadow:rgba(0,0,0,.45);--shadow-strong:rgba(0,0,0,.6);--scrim:rgba(0,0,0,.5);--scrim-strong:rgba(0,0,0,.6)}
/* shadows barely read on a dark page, so the floating panels get an edge instead */
:root[data-theme="dark"] .drawer{border-left:1px solid var(--line)}:root[data-theme="dark"] .modal,:root[data-theme="dark"] .toast{border:1px solid var(--line)}
}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg)}
a{color:inherit}button,select,input,textarea{font:inherit;color:inherit}
h1{font-size:20px;margin:0}h1 small{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:2px}h2{font-size:16px;margin:0 0 8px}h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:16px 0 8px}
.muted{color:var(--muted)}.small{font-size:12.5px}.right{text-align:right}.nowrap{white-space:nowrap}.hidden{display:none!important}.num{font-variant-numeric:tabular-nums}.neg{color:var(--bad)}.pos{color:var(--ok)}.warn-t{color:var(--warn);font-weight:500}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:7px 12px;cursor:pointer;white-space:nowrap;min-height:34px}
.btn.primary{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--on-accent)}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.danger{color:var(--bad)}.btn.sm{padding:4px 9px;font-size:12.5px;min-height:28px}.btn:disabled{opacity:.5;cursor:not-allowed}
.input,select.input,textarea.input{border:1px solid var(--line-strong);background:var(--field);border-radius:7px;padding:8px 10px;width:100%;min-height:36px}textarea.input{min-height:70px;resize:vertical}.input.sm{min-height:30px;padding:4px 8px;font-size:13px}.input[readonly]{background:var(--hover);color:var(--muted)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sp{flex:1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--avatar-bg);color:var(--avatar-fg);font-size:12px;font-weight:600;flex:none}
.tag{display:inline-block;font-size:10.5px;padding:1px 6px;border-radius:4px;background:var(--none-soft);color:var(--text-3);vertical-align:1px;font-weight:500;letter-spacing:.2px}
/* shell */
.top{background:var(--surface);border-bottom:1px solid var(--line);height:56px;display:flex;align-items:center;padding:0 22px;gap:16px;position:sticky;top:0;z-index:20}
.brand{font-weight:600;letter-spacing:.2px}
.dsw{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--subtle);cursor:pointer;position:relative;max-width:60vw}.dsw b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsw .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.menu{position:absolute;top:calc(100% + 6px);left:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px var(--shadow);min-width:280px;padding:6px;z-index:30;cursor:default}
.menu a{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:7px;text-decoration:none;font-size:13.5px;cursor:pointer}.menu a:hover{background:var(--hover)}.menu a.on{background:var(--accent-soft);color:var(--accent)}.menu .sep{border-top:1px solid var(--line);margin:6px 0}
.umenu{position:relative}.umenu .menu{left:auto;right:0}
.tabs{background:var(--surface);border-bottom:1px solid var(--line);padding:0 22px;display:flex;gap:2px;overflow-x:auto;position:sticky;top:56px;z-index:19}
.tabs a{padding:11px 14px;border-bottom:2px solid transparent;color:var(--muted);text-decoration:none;white-space:nowrap;font-weight:500}.tabs a.on{color:var(--accent);border-color:var(--accent)}
.main{max-width:1240px;margin:0 auto;padding:22px}
.ph{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:14px}.card.pad{padding:18px 20px}
.ch{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.ch h2{margin:0}
.filters{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center}.filters .input{flex:1;min-width:160px;width:auto}.filters select.input{flex:0 1 auto;min-width:160px}
.tw{overflow:auto}table.t{width:100%;border-collapse:collapse}table.t th{font-size:12.5px;color:var(--muted);text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);font-weight:500;white-space:nowrap}
table.t td{padding:10px 14px;border-bottom:1px solid var(--line-soft);white-space:nowrap;vertical-align:middle}table.t tbody tr:last-child td{border-bottom:0}table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:var(--subtle)}table.t td.wrap{white-space:normal;min-width:220px}
table.t tfoot td{border-top:1px solid var(--line);background:var(--well);border-bottom:0}table.t.sm th,table.t.sm td{padding:7px 10px;font-size:12.5px}
.foot{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line)}
.banner{border-radius:8px;padding:9px 12px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.banner.ok{background:var(--ok-soft);color:var(--ok-text);border:1px solid var(--ok-line)}.banner.err{background:var(--bad-soft);color:var(--bad-text);border:1px solid var(--bad-line)}
.empty{text-align:center;padding:56px 20px;color:var(--muted)}.empty .ic{width:56px;height:56px;border-radius:50%;background:var(--icon-bg);margin:0 auto 14px;display:grid;place-items:center;font-size:24px;color:var(--none)}.empty h2{font-size:16px;margin:0 0 6px}.empty p{margin:0 0 16px}
.st{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:2px 8px;border-radius:999px;white-space:nowrap}.st i{font-style:normal;font-weight:700;font-size:11px}
.st.ok{background:var(--ok-soft);color:var(--ok)}.st.bad{background:var(--bad-soft);color:var(--bad)}.st.warn{background:var(--warn-soft);color:var(--warn)}.st.none{background:var(--none-soft);color:var(--text-3)}.st.info{background:var(--info-soft);color:var(--info)}.st.acc{background:var(--accent-soft);color:var(--accent)}
.lnk{color:var(--accent);cursor:pointer;text-decoration:none;font-weight:500}.lnk:hover{text-decoration:underline}.lnk.del{color:var(--bad)}
.lock{font-size:11px;opacity:.55;cursor:help;margin-left:3px}
/* tiles */
.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:14px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;border-left:4px solid var(--line-strong)}
.tile.acc{border-left-color:var(--po)}.tile.csq{border-left-color:var(--csq)}.tile.ok{border-left-color:var(--ok)}.tile.bad{border-left-color:var(--bad)}.tile.warn{border-left-color:var(--warn)}
.tile .n{font-size:12.5px;color:var(--muted);font-weight:500}.tile .v{font-size:26px;font-weight:600;line-height:1.1}.tile .b{font-size:12px;color:var(--muted)}
/* bars */
.stack{position:relative;display:block;height:10px;background:var(--track);border-radius:4px;overflow:hidden;min-width:140px}.stack i{position:absolute;top:0;bottom:0;left:0}.stack .po{background:var(--po);border-radius:4px 0 0 4px}.stack .csq{background:var(--csq);border-left:2px solid var(--surface)}.stack.over{box-shadow:inset 0 0 0 1.5px var(--bad)}.stack.qty{min-width:110px}.stack.qty.over .po{background:var(--bad);border-radius:4px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.lg-po{background:var(--po)}.lg-csq{background:var(--csq)}.lg-bal{background:var(--track);border:1px solid var(--swatch-line)}
/* attention */
.alist .al{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft);cursor:pointer}.alist .al:last-child{border-bottom:0}.alist .al>div{flex:1;min-width:0}.alist .al .st{width:26px;justify-content:center;padding:2px 0}
.counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}.cnt{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;font-size:12.5px;color:var(--muted)}.cnt.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);color:var(--text)}.cnt b{font-size:22px;display:block;line-height:1.1;color:var(--text)}
/* budget tree */
tr.hr td{background:var(--well)}tr.hr .tg{display:inline-block;width:18px;color:var(--muted)}tr.sr td:first-child{padding-left:44px}tr.sr td{color:var(--text-2)}
/* drawer */
.scrim{position:fixed;inset:0;background:var(--scrim);display:none;z-index:40}.scrim.open{display:block}
.drawer{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:100vw;background:var(--surface);box-shadow:-10px 0 30px var(--shadow);transform:translateX(100%);transition:.2s;z-index:41;display:flex;flex-direction:column}.drawer.open{transform:none}.drawer.wide{width:820px}
.drawer .dh{padding:20px 24px 10px;border-bottom:1px solid var(--line)}.drawer .dh h2{margin:0;font-size:17px}.drawer .dh .sub{color:var(--muted);font-size:13px;margin-top:3px}.drawer .db{padding:14px 24px;overflow:auto;flex:1}.drawer .df{padding:12px 24px 18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.drawer form.fill{display:flex;flex-direction:column;flex:1;min-height:0}
.field{margin-bottom:14px}.field>label{display:block;font-size:13px;font-weight:500;margin-bottom:5px}.req{color:var(--bad)}.field .hint,.hint{font-size:12px;color:var(--muted);margin-top:4px}
.seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px}.seg label{border:1px solid var(--line-strong);border-radius:8px;padding:8px;text-align:center;cursor:pointer;background:var(--surface);min-height:36px}.seg input{display:none}.seg input:checked+span{color:var(--accent);font-weight:500}.seg label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.kv2{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:12px}.kv2 span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.kv2 b{font-weight:500}
.linkcard{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer}.linkcard:hover{border-color:var(--accent-line);background:var(--subtle)}.linkcard>div:first-child{flex:1;min-width:0}
.pos2{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:10px}.pm{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.pm-h{display:flex;flex-direction:column;margin-bottom:6px}.pm-r{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:2px 0}.pm .st{margin-top:8px}
.check{border:1px solid var(--line);border-radius:10px;padding:10px 12px 4px;background:var(--well);margin-bottom:14px}.check h3{margin:0 0 8px}
.ck{border-left:3px solid;padding:8px 10px;border-radius:6px;margin-bottom:8px;background:var(--surface)}.ck.ok{border-color:var(--ok)}.ck.warn{border-color:var(--warn);background:var(--warn-soft)}.ck.bad{border-color:var(--bad);background:var(--bad-soft)}
.ck-h{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;margin-bottom:4px}.ck-h span{color:var(--muted)}.ck-r{display:flex;justify-content:space-between;gap:8px;font-size:13px}.ck-m{font-size:12px;margin-top:5px;font-weight:500}.ck.warn .ck-m{color:var(--warn)}.ck.bad .ck-m{color:var(--bad)}.ck.ok .ck-m{color:var(--ok)}
.var{display:flex;gap:14px;flex-wrap:wrap;align-items:center;border:1px dashed var(--line-strong);border-radius:8px;padding:8px 10px;font-size:12.5px;margin-bottom:12px}.var b{margin-left:auto}.var.up b{color:var(--bad)}.var.down b{color:var(--ok)}
.ra-name{display:grid;grid-template-columns:82px 1fr;gap:6px}.ra-sum{font-size:13px}.ra-sum b{font-weight:600}.ra-sum.bad b{color:var(--bad)}.ra-sum.ok b{color:var(--ok)}
/* modal (sub-dialogue) */
.mscrim{position:fixed;inset:0;background:var(--scrim-strong);display:none;z-index:50;align-items:center;justify-content:center;padding:16px}.mscrim.open{display:flex}
.modal{background:var(--surface);border-radius:12px;padding:20px 22px;width:540px;max-width:100%;max-height:92vh;overflow:auto;box-shadow:0 20px 60px var(--shadow-strong)}.modal h2{margin:0 0 4px}
/* master */
.mh{padding:14px 16px}.mh-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;flex-wrap:wrap}.mh-subs{display:flex;flex-wrap:wrap;gap:6px}.sub-chip{border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12.5px;background:var(--surface)}.sub-chip[data-act]{cursor:pointer}.sub-chip[data-act]:hover{border-color:var(--accent-line);background:var(--subtle)}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--toast-bg);color:var(--toast-fg);padding:10px 14px;border-radius:8px;font-size:13px;z-index:60;display:none;max-width:90vw}
.demo{background:#0b1220;color:#cbd5e1;font-size:12px;padding:5px 12px;text-align:center}.demo b{color:#fff}.demo a{color:#93c5fd}
.signin{max-width:420px;margin:60px auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px}
.persona{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;cursor:pointer}.persona:hover{border-color:var(--accent-line);background:var(--subtle)}.persona small{display:block;color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
/* item lines */
table.it{table-layout:fixed;width:100%;min-width:660px}table.ilist{min-width:560px}table.it th{padding:6px 5px;font-size:11.5px}table.it td{padding:4px 5px;border-bottom:1px solid var(--line-faint);white-space:normal}table.it .input{min-height:30px;padding:4px 7px;font-size:13px}table.it tfoot td{padding:8px 5px;background:var(--well);border-top:1px solid var(--line)}
.it-tot{font-size:14px;font-weight:600}.itw{border:1px solid var(--line);border-radius:9px;overflow:auto;margin-bottom:8px}
.ilist td.wrap{min-width:0}
/* reports */
.opts{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.opts .l{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-right:-6px}
.opts label{display:inline-flex;gap:6px;align-items:center;cursor:pointer;font-size:13px}
.sheets{display:flex;flex-direction:column;align-items:center;gap:22px}
.sheet{background:var(--surface);box-shadow:0 6px 24px var(--shadow);position:relative;width:820px;max-width:100%;padding:46px 52px 60px;font-size:12.5px;color:var(--text)}
.sheet .shd{display:flex;justify-content:space-between;align-items:baseline;font-size:10.5px;color:var(--muted);border-bottom:1px solid var(--line-soft);padding-bottom:6px;margin-bottom:18px}
.sheet .pg{position:absolute;bottom:22px;left:52px;right:52px;display:flex;justify-content:space-between;font-size:10.5px;color:var(--muted);border-top:1px solid var(--line-soft);padding-top:6px}
.sheet h1{font-size:21px;margin:0 0 4px}.sheet .sub1{color:var(--muted);font-size:13px;margin-bottom:18px}
.sheet h2{font-size:14px;margin:22px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--line)}.sheet h2:first-of-type{margin-top:0}
.sheet h3{font-size:12px;margin:14px 0 6px;color:var(--text-2);text-transform:none;letter-spacing:0}
.sheet table{width:100%;border-collapse:collapse;font-size:11.5px}
.sheet th{text-align:left;font-size:10px;color:var(--muted);padding:6px 7px;border-bottom:1px solid var(--line);font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.sheet td{padding:5px 7px;border-bottom:1px solid var(--line-faint);vertical-align:top;white-space:nowrap}.sheet th{white-space:nowrap}.sheet td.wrap{white-space:normal}
.sheet tr.tot td{border-top:1.5px solid var(--text);border-bottom:0;font-weight:600;background:var(--well)}
.sheet tr.sub td:first-child{padding-left:20px;color:var(--text-3)}
.sheet tr.grp td{background:var(--band);font-weight:600}
.sheet .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:6px}
.sheet .kpis>div{background:var(--surface);padding:10px 12px}.sheet .kpis b{display:block;font-size:17px;line-height:1.2}.sheet .kpis span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.sheet .note{font-size:11px;color:var(--muted);margin-top:8px;margin-bottom:4px}
.sheet .exc{border-left:3px solid var(--warn);background:var(--warn-soft);padding:7px 10px;margin-bottom:6px;font-size:11.5px}.sheet .exc.bad{border-color:var(--bad);background:var(--bad-soft)}.sheet .exc b{display:block}
.sheet .ubar{display:block;height:7px;background:var(--track);border-radius:3px;position:relative;overflow:hidden;min-width:74px}.sheet .ubar i{position:absolute;top:0;bottom:0;left:0;display:block}.sheet .ubar .po{background:var(--po)}.sheet .ubar .csq{background:var(--csq)}
.sheet .sig{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:34px}.sheet .sig div{border-top:1px solid var(--rule);padding-top:5px;font-size:11px;color:var(--muted)}
@media (max-width:900px){.tiles{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}}
@media (max-width:820px){.sheet{padding:20px 16px 44px}.sheet .pg{left:16px;right:16px}}
@media screen and (max-width:820px){.sheet{overflow-x:auto}}
@media (max-width:800px){.top{padding:0 14px;gap:10px}.brand{display:none}.tabs{padding:0 8px}.main{padding:14px}.tile .v{font-size:22px}.drawer{width:100vw}.grid2,.grid3,.pos2,.kv2{grid-template-columns:1fr}.desk{display:none!important}.dsw{max-width:70vw}}
@media print{body{background:#fff}.top,.tabs,.demo,.ph .row,.scrim,.drawer,.toast,.mscrim,.opts,.noprint{display:none!important}.main{max-width:none;padding:0}.sheets{gap:0}.sheet{box-shadow:none;width:auto;max-width:none;padding:26px 30px 44px;page-break-after:always}.sheet:last-child{page-break-after:auto}.sheet table{page-break-inside:auto}.sheet tr{page-break-inside:avoid}.sheet .pg{position:static;margin-top:20px}}

/* ---------------------------------------------------------------- application additions */
.banner.info{background:var(--info-soft);color:var(--info);border:1px solid var(--info-line)}
body.busy{cursor:progress}
body.busy .btn[type=submit],body.busy .btn.primary{opacity:.7;pointer-events:none}
.signin form .field:last-of-type{margin-bottom:18px}
.signin .banner{margin-bottom:14px}
.chkrow input{width:16px;height:16px}
.drawer .db .banner{margin-bottom:12px}
[hidden]{display:none!important}
.empty .ic{animation:none}
/* companies, BOQ and uploads */
.menu a.co-row{font-weight:500}.menu a.pj-row{padding-left:26px;font-size:13px}
.tile.click{cursor:pointer}.tile.click:hover{border-color:var(--accent-line)}
tr.sg td{background:var(--subtle);padding-left:30px;font-size:13px}
table.act tr.day td{background:var(--subtle);font-size:12px;font-weight:600;color:var(--muted);padding-top:6px;padding-bottom:6px}
.act-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;background:var(--accent)}
.act-dot.ok{background:var(--ok)}.act-dot.bad{background:var(--bad)}.act-dot.warn{background:var(--warn)}.act-dot.none{background:var(--none)}
.filters .dt{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.filters .dt .input{min-width:140px;flex:0 1 auto}
table.it.boq{min-width:766px}
.upcols{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px}
table.uprev tr.bad td{background:var(--bad-soft)}
.probs{margin:6px 0 0;padding-left:18px}.probs li{margin:2px 0}
table.coacc th:not(:first-child),table.coacc td:not(:first-child){text-align:center;width:96px}
/* theme switch in the user menu */
.menu .theme{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:13.5px}
.themes{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:7px;background:var(--subtle)}
.themes button{border:0;background:none;border-radius:5px;padding:3px 9px;font-size:12.5px;color:var(--muted);cursor:pointer}.themes button:hover{color:var(--text)}
.themes button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px var(--shadow)}
