
:root{
  --brand:#2a84a8; --brand-strong:#1d6a8a; --brand-tint:#e7f2f7; --charcoal:#2d3135;
  --ground:#ffffff; --surface:#ffffff; --ink:#2d3135; --muted:#5d6a74; --line:#dde4e9; --row:#f5f8fa; --hover:#eef6fa;
  --ok:#1f7a45; --ok-bg:#e8f4ec; --warn:#8f5c06; --warn-bg:#fcf3e0; --bad:#b0272d; --bad-bg:#fbebeb; --code:#f4f7f9;
  --head:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --brand:#5bb3d6; --brand-strong:#86c9e4; --brand-tint:#173544; --ground:#121a20; --surface:#19232a; --ink:#e2e8ec; --muted:#9aa9b4;
  --line:#2f3d47; --row:#1f2b33; --hover:#1d3340; --ok:#7dd29c; --ok-bg:#15301f; --warn:#f0c46c; --warn-bg:#33290f; --bad:#ff8f8a; --bad-bg:#3a1d1d; --code:#141d23;
}}
:root[data-theme="dark"]{
  --brand:#5bb3d6; --brand-strong:#86c9e4; --brand-tint:#173544; --ground:#121a20; --surface:#19232a; --ink:#e2e8ec; --muted:#9aa9b4;
  --line:#2f3d47; --row:#1f2b33; --hover:#1d3340; --ok:#7dd29c; --ok-bg:#15301f; --warn:#f0c46c; --warn-bg:#33290f; --bad:#ff8f8a; --bad-bg:#3a1d1d; --code:#141d23;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45}
a{color:var(--brand)} a:hover{color:var(--brand-strong)}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* Brand bar stays white in both themes so the logo always sits on its own ground */
.top{background:#fff;color:#2d3135;border-bottom:1px solid #dbe2e7;display:flex;align-items:stretch;gap:12px;padding:0 20px;min-height:66px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:#2d3135;padding:8px 0}
.brand img{height:46px;width:auto;display:block}
.brand .sys{font-family:var(--head);font-weight:300;font-size:15px;color:#5d6a74;border-left:1px solid #d4dce2;padding-left:14px;white-space:nowrap}
.mainnav{display:flex;margin-left:auto;align-items:stretch;overflow-x:auto;scrollbar-width:none}
.mainnav a{position:relative;display:flex;align-items:center;padding:0 16px;font-family:var(--head);font-weight:400;font-size:16px;color:#2d3135;text-decoration:none;white-space:nowrap}
.mainnav a:hover{color:#2a84a8}
.mainnav a[aria-current="page"]{color:#2a84a8;font-weight:500}
/* the logo's arrowhead, used as the active-module marker */
.mainnav a[aria-current="page"]::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);border:7px solid transparent;border-bottom:8px solid #2a84a8;border-top:0}
.usr{display:flex;align-items:center;gap:10px;font-size:13px;color:#5d6a74;padding-left:12px;border-left:1px solid #e3e8ec;white-space:nowrap}
.usr button{color:#2a84a8}
.subnav{background:var(--surface);border-bottom:1px solid var(--line);display:flex;gap:4px;padding:0 20px;overflow-x:auto}
.subnav a{padding:10px 12px;color:var(--muted);text-decoration:none;font-size:14.5px;border-bottom:2px solid transparent;white-space:nowrap}
.subnav a:hover{color:var(--ink)}
.subnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}
.proto{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:13px;color:var(--warn);background:var(--warn-bg);padding:7px 20px;border-bottom:1px solid var(--line)}
.proto label{display:flex;gap:6px;align-items:center;color:var(--ink)}
.proto input{width:auto}

main{max-width:1240px;margin:0 auto;padding:22px 18px 60px}
.pagehead{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
h1{font-family:var(--head);font-weight:300;font-size:30px;line-height:1.15;margin:0;color:var(--ink);letter-spacing:-.01em}
h1 .num{font-weight:400;color:var(--brand)}
h2{font-family:var(--head);font-weight:500;font-size:18px;margin:0 0 10px}
h3{font-family:var(--head);font-weight:500;font-size:15.5px;margin:18px 0 8px}
.lede{color:var(--muted);margin:4px 0 0;max-width:72ch}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:20px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px;margin-bottom:18px}
.two{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px}
@media (max-width:860px){.two{grid-template-columns:1fr}}
label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:4px}
input,select,textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:3px}
input[readonly]{background:var(--row);color:var(--muted)}
.sub{font-size:12.5px;color:var(--muted);margin-top:3px;min-height:1.1em}
.sub.bad{color:var(--bad)} .sub.warn{color:var(--warn)}
button,.btn{font:inherit;font-size:14.5px;cursor:pointer;border-radius:3px;padding:8px 15px;border:1px solid var(--brand);background:var(--surface);color:var(--brand);text-decoration:none;display:inline-flex;align-items:center;gap:6px;line-height:1.3}
button:hover,.btn:hover{background:var(--hover)}
.primary{background:var(--brand);color:#fff;font-weight:600}
.primary:hover{background:var(--brand-strong);color:#fff}
:root[data-theme="dark"] .primary{color:#0d1a20}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .primary{color:#0d1a20}}
.link{border:none;background:none;padding:4px;color:var(--muted);text-decoration:underline}
.link:hover{background:none;color:var(--ink)}
.small{padding:5px 11px;font-size:13.5px}
button:disabled{opacity:.55;cursor:not-allowed}
.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}
.toolbar>div{min-width:160px}
.toolbar .grow{flex:1}

.tw{overflow-x:auto;border:1px solid var(--line);border-radius:3px;background:var(--surface)}
table{width:100%;border-collapse:collapse;font-size:14px}
th{background:var(--row);text-align:left;font-weight:600;font-size:12.5px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:none}
tr.click{cursor:pointer} tr.click:hover td{background:var(--hover)}
tfoot td{font-weight:600;background:var(--row);border-top:2px solid var(--line)}
tr.sec td{background:var(--row);font-family:var(--head);font-weight:500}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mono,.mono td{font-family:var(--mono);font-size:12.5px}
table.lines{min-width:980px} table.lines td{padding:5px 6px} table.lines td input,table.lines td select{padding:6px 8px}
td.idx{color:var(--muted);padding-top:12px;width:28px}
.chip{display:inline-block;font-size:12px;padding:1px 9px;border-radius:10px;border:1px solid currentColor;white-space:nowrap}
.chip.open{color:var(--brand)} .chip.closed{color:var(--muted)} .chip.ok{color:var(--ok)} .chip.warn{color:var(--warn)} .chip.bad{color:var(--bad)}
.msg{padding:11px 14px;margin-bottom:16px;border-left:4px solid;border-radius:2px}
.msg.err{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}
.msg.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.msg.warn{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}
.msg ul{margin:6px 0 0;padding-left:18px}
.msg a{color:inherit}
details.raw{margin-top:8px} details.raw summary{cursor:pointer;color:var(--muted);font-size:13.5px}
pre{background:var(--code);border:1px solid var(--line);border-radius:3px;padding:12px;overflow-x:auto;font-family:var(--mono);font-size:12.5px;line-height:1.55;margin:8px 0 12px;white-space:pre}
.totals{min-width:280px}
.totals div{display:flex;justify-content:space-between;gap:20px;padding:3px 0;font-variant-numeric:tabular-nums}
.totals .grand{border-top:2px solid var(--ink);font-family:var(--head);font-weight:500;font-size:18px;margin-top:4px;padding-top:8px}
.formfoot{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-top:16px}
.formfoot>div:first-child{flex:1;min-width:260px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 22px;margin:0}
.facts dt{font-size:12.5px;color:var(--muted);font-weight:600}
.facts dd{margin:2px 0 0}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto}
.tab{border:none;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:8px 13px;border-radius:0;white-space:nowrap}
.tab:hover{background:none;color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.flow a,.flow span.node{border:1px solid var(--line);border-radius:3px;padding:5px 10px;text-decoration:none;color:var(--ink);font-size:13.5px;background:var(--surface)}
.flow a:hover{border-color:var(--brand)}
.flow .here{border-color:var(--brand);background:var(--brand-tint);font-weight:600}
.flow .arr{color:var(--brand)}
.empty{color:var(--muted);padding:16px 4px;text-align:left}
.copyfrom{margin:0 0 12px}
.copylist{border:1px solid var(--line);border-radius:3px;margin-top:8px;background:var(--row);padding:10px}

/* Dashboard */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:18px}
.kpis>div{padding:16px 18px;border-left:1px solid var(--line)}
.kpis>div:first-child{border-left:none}
.kpis .lbl{font-size:13px;color:var(--muted)}
.kpis .val{font-family:var(--head);font-weight:300;font-size:28px;line-height:1.2;margin:4px 0;font-variant-numeric:tabular-nums}
.kpis .note{font-size:12.5px;color:var(--muted)}
@media (max-width:860px){.kpis{grid-template-columns:1fr 1fr}.kpis>div:nth-child(3){border-left:none}.kpis>div:nth-child(n+3){border-top:1px solid var(--line)}}
.attn{list-style:none;margin:0;padding:0}
.attn li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.attn li:last-child{border-bottom:none}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
svg text{font-family:var(--body)}

/* Sign-in */
.signin{max-width:420px;margin:60px auto;padding:0 16px}
.signin .panel{padding:28px}
.signin img{height:56px;display:block;margin:0 auto 18px}
.signin .grid{grid-template-columns:1fr}

/* ===== v3: sidebar layout + dashboards ===== */
:root{--t-blue:#2a84a8;--t-blue-bg:#e7f2f7;--t-red:#d14343;--t-red-bg:#fdecea;--t-green:#1f8a52;--t-green-bg:#e5f5ec;--t-amber:#c27c0e;--t-amber-bg:#fdf2de;
  --t-violet:#6d5bd0;--t-violet-bg:#eeebfb;--t-teal:#16908a;--t-teal-bg:#e2f4f2;--t-slate:#4f5b65;--t-slate-bg:#edf0f2;
  --b0:#22a05b;--b1:#c9b03f;--b2:#e8952e;--b3:#ef8080;--b4:#df4a4a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--t-blue:#5bb3d6;--t-blue-bg:#173544;--t-red:#ff8a80;--t-red-bg:#3a1e1c;--t-green:#7dd29c;--t-green-bg:#15301f;--t-amber:#f0c46c;--t-amber-bg:#33290f;--t-violet:#a99bf0;--t-violet-bg:#262043;--t-teal:#5fd0c8;--t-teal-bg:#12302e;--t-slate:#b4c0c9;--t-slate-bg:#253039}}
:root[data-theme="dark"]{--t-blue:#5bb3d6;--t-blue-bg:#173544;--t-red:#ff8a80;--t-red-bg:#3a1e1c;--t-green:#7dd29c;--t-green-bg:#15301f;--t-amber:#f0c46c;--t-amber-bg:#33290f;--t-violet:#a99bf0;--t-violet-bg:#262043;--t-teal:#5fd0c8;--t-teal-bg:#12302e;--t-slate:#b4c0c9;--t-slate-bg:#253039}
.top{position:relative;align-items:center;gap:16px;min-height:74px;padding:0 24px;flex-wrap:nowrap}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:linear-gradient(90deg,#2d3135 0%,#2a84a8 65%,#6cc3e3 100%);z-index:2}
.top .title{display:flex;flex-direction:column;justify-content:center;border-left:1px solid #d4dce2;padding-left:16px;min-width:0}
.top .title b{font-family:var(--head);font-weight:500;font-size:18px;color:#2d3135;white-space:nowrap}
.top .title span{font-size:13px;color:#5d6a74;white-space:nowrap}
.hright{margin-left:auto;display:flex;align-items:center;gap:10px}
.pill{border:1px solid #dbe2e7;border-radius:8px;padding:7px 12px;font-size:13.5px;color:#5d6a74;white-space:nowrap;background:#fff}
.pill b{color:#2d3135;margin-left:8px;font-weight:600}
.btn-dark{background:#2d3135;color:#fff;border:1px solid #2d3135;border-radius:8px;font-weight:600;padding:8px 14px}
.btn-dark:hover{background:#1d2023;color:#fff}
.btn-dark svg{width:17px;height:17px}
.btn-dark.spin svg{animation:spin .7s linear}
@keyframes spin{to{transform:rotate(360deg)}}
.usr{border-left:1px solid #e3e8ec;padding-left:12px;margin-left:2px}
.menu-btn{display:none;border:none;background:none;color:#2d3135;padding:6px}
.menu-btn svg{width:24px;height:24px}
.app{display:grid;grid-template-columns:252px minmax(0,1fr);align-items:start;background:linear-gradient(to right,var(--surface) 251px,var(--line) 251px,var(--line) 252px,transparent 252px);min-height:calc(100vh - 74px)}
.side{border-right:none!important}
.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);padding:14px 12px 28px}
.side .sec{font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--brand);padding:18px 12px 6px}
.side a{display:flex;align-items:center;gap:11px;padding:8px 12px;margin:1px 0;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14.5px;border-left:3px solid transparent}
.side a:hover{background:var(--hover);color:var(--ink)}
.side a[aria-current="page"]{background:var(--brand-tint);border-left-color:var(--brand);font-weight:600}
.side a svg{width:18px;height:18px;flex:none;color:var(--muted)}
.side a[aria-current="page"] svg{color:var(--brand)}
.demo{margin:22px 4px 0;padding:12px;border:1px dashed var(--line);border-radius:8px;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.demo strong{color:var(--ink);font-size:13px}
.demo label{display:flex;gap:8px;align-items:flex-start;font-weight:400;color:var(--ink);font-size:12.5px;margin:0}
.demo input{width:auto;margin-top:2px}
.demo .link{align-self:flex-start;padding:0;font-size:12.5px}
.demo p{margin:0}
main{max-width:1320px;margin:0;padding:26px 28px 60px;width:100%}
.scrim{display:none}
body.signed-out .top,body.signed-out .side{display:none}
body.signed-out .app{display:block}
body.signed-out main{margin:0 auto}
.dhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.dhead h1{font-weight:600;font-size:30px;letter-spacing:-.02em}
.dsub{color:var(--muted);font-size:15.5px}
.dlede{margin:8px 0 22px}
.kgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.kpi{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px 20px;text-decoration:none;color:var(--ink);min-height:178px;transition:border-color .15s,box-shadow .15s}
.kpi:hover{border-color:var(--brand);color:var(--ink);box-shadow:0 3px 14px rgba(42,132,168,.12)}
.kpi-top{display:flex;align-items:center;gap:12px;min-height:44px}
.ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;flex:none}
.ico svg{width:20px;height:20px}
.ico.sm{width:32px;height:32px;border-radius:8px}.ico.sm svg{width:17px;height:17px}
.ico.blue{background:var(--t-blue-bg);color:var(--t-blue)} .ico.red{background:var(--t-red-bg);color:var(--t-red)} .ico.green{background:var(--t-green-bg);color:var(--t-green)}
.ico.amber{background:var(--t-amber-bg);color:var(--t-amber)} .ico.violet{background:var(--t-violet-bg);color:var(--t-violet)} .ico.teal{background:var(--t-teal-bg);color:var(--t-teal)} .ico.slate{background:var(--t-slate-bg);color:var(--t-slate)}
.kpi-lbl{font-size:14.5px;color:var(--muted);font-weight:600;flex:1;line-height:1.3}
.kpi-valrow{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.kpi-spark{width:120px;height:42px;flex:none;margin-bottom:4px}
.kpi-val{font-family:var(--head);font-weight:600;font-size:30px;letter-spacing:-.02em;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums}
.kpi-cmp{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.delta{font-size:13px;font-weight:600;padding:2px 10px;border-radius:12px}
.delta.good{color:var(--ok);background:var(--ok-bg)} .delta.bad{color:var(--bad);background:var(--bad-bg)}
.meter{display:block;height:7px;border-radius:4px;background:var(--row);overflow:hidden}
.meter>span{display:block;height:100%;border-radius:4px}
.kpi .meter{margin:2px 0}
.kpi-sub{font-size:13.5px;color:var(--muted);line-height:1.5}
.kpi-sub b{color:var(--ink)}
.open-rep{display:inline-block;margin-top:6px;color:var(--brand);font-weight:600}
.dgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;margin-bottom:18px}
.dpanel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:18px}
.dgrid .dpanel{margin-bottom:0}
.dp-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:12px}
.dp-head h2{margin:0;font-weight:600}
.dp-head span{font-size:13.5px;color:var(--muted)}
.stack{display:flex;height:13px;border-radius:7px;overflow:hidden;margin:4px 0 12px;gap:2px}
.stack>span{display:block;height:100%}
.arow{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) minmax(110px,auto);align-items:center;gap:16px;padding:9px 4px;border-radius:6px;color:var(--ink);text-decoration:none}
.arow:hover{background:var(--hover);color:var(--ink)}
.arow .amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.arow .amt small{color:var(--muted);font-size:13px;margin-left:4px}
.rsub{display:block;color:var(--muted);font-size:12px;font-family:var(--mono)}
.ins{list-style:none;margin:0;padding:0}
.ins li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line);line-height:1.5}
.ins li:last-child{border-bottom:none}
@media (max-width:1180px){.kgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.dgrid{grid-template-columns:1fr}}
@media (max-width:1000px){.hide-sm{display:none}}
@media (max-width:900px){
  .app{grid-template-columns:1fr;background:none}
  .side{position:fixed;left:0;top:0;bottom:0;width:272px;height:auto;z-index:60;transform:translateX(-105%);transition:transform .2s ease;padding-top:calc(14px + env(safe-area-inset-top,0px));box-shadow:4px 0 20px rgba(0,0,0,.15)}
  body.nav-open .side{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(20,28,34,.4);z-index:55}
  .menu-btn{display:inline-flex}
  main{padding:20px 16px 50px}
  .top{padding:0 12px;gap:10px;min-height:64px}
  .top .title{display:none}
}
@media (max-width:560px){.kgrid{grid-template-columns:1fr}.brand img{height:34px}.usr .who-db{display:none}.arow{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.arow .meter{grid-column:1/-1;grid-row:2}.kpi-val{font-size:26px}}


/* ===== v4: white look + print ===== */
.app{background:linear-gradient(to right,#fff 251px,var(--line) 251px,var(--line) 252px,transparent 252px)}
.kpi,.dpanel,.panel{border-color:#e1e7ec;box-shadow:0 1px 2px rgba(45,49,53,.04)}
.side .sec{display:flex;align-items:center;gap:7px}
.side .sec::before{content:"";width:10px;height:10px;flex:none;background:var(--brand);clip-path:polygon(0 42%,100% 0,58% 100%,48% 58%)}
.dhead h1,h1{color:var(--ink)}
.btn-light{background:#fff;color:#2d3135;border:1px solid #d4dce2;border-radius:8px;font-weight:600;padding:8px 14px}
.btn-light:hover{background:#eef6fa;color:#2d3135}
.btn-light svg{width:17px;height:17px}
.print-head,#printDoc,.print-foot{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .app{background:linear-gradient(to right,var(--surface) 251px,var(--line) 251px,var(--line) 252px,transparent 252px)}}

/* Printed document (sales order, invoice, PO …) */
.pd{color:#2d3135;font-family:var(--body);font-size:12px}
.pd-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:12px;border-bottom:3px solid #2a84a8}
.pd-top img{height:52px}
.pd-co{font-size:11px;color:#5d6a74;margin-top:6px;line-height:1.4}
.pd-title{text-align:right}
.pd-title h1{font-family:var(--head);font-weight:500;font-size:24px;margin:0;color:#2d3135}
.pd-title .no{font-family:var(--head);font-size:16px;color:#2a84a8;margin-top:2px}
.pd-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin:16px 0}
.pd-box{border:1px solid #cfd7dd;border-radius:4px;padding:10px 12px}
.pd-box h4{margin:0 0 6px;font-size:10.5px;color:#2a84a8;letter-spacing:.06em;text-transform:uppercase}
.pd-kv{display:grid;grid-template-columns:auto 1fr;gap:3px 14px}
.pd-kv span:nth-child(odd){color:#5d6a74}
.pd table{font-size:11.5px}
.pd th{background:#eef6fa!important;color:#2d3135;font-size:10.5px}
.pd td,.pd th{padding:6px 8px;border-bottom:1px solid #dde4e9}
.pd-sum{display:flex;justify-content:space-between;gap:24px;margin-top:12px}
.pd-sum .totals{min-width:250px}
.pd-sum .totals .grand{font-size:15px}
.pd-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:46px}
.pd-sign div{border-top:1px solid #2d3135;padding-top:5px;font-size:11px;color:#5d6a74}
.pd-sign b{display:block;color:#2d3135;font-weight:600}
.pd-note{margin-top:22px;font-size:10px;color:#8a96a0;border-top:1px dashed #cfd7dd;padding-top:6px}

@media print{
  @page{size:A4;margin:12mm 11mm 16mm}
  :root,:root[data-theme="dark"],:root:not([data-theme="light"]){--ground:#fff;--surface:#fff;--ink:#2d3135;--muted:#55616b;--line:#d3dbe1;--row:#f3f6f8;--hover:#fff;--brand:#2a84a8;--brand-tint:#e7f2f7;
    --ok:#1f7a45;--ok-bg:#e8f4ec;--warn:#8f5c06;--warn-bg:#fcf3e0;--bad:#b0272d;--bad-bg:#fbebeb;--code:#f4f7f9;
    --t-blue:#2a84a8;--t-blue-bg:#e7f2f7;--t-red:#d14343;--t-red-bg:#fdecea;--t-green:#1f8a52;--t-green-bg:#e5f5ec;--t-amber:#c27c0e;--t-amber-bg:#fdf2de;--t-violet:#6d5bd0;--t-violet-bg:#eeebfb;--t-teal:#16908a;--t-teal-bg:#e2f4f2;--t-slate:#4f5b65;--t-slate-bg:#edf0f2}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html,body{background:#fff!important;color:#2d3135;font-size:12px}
  .top,.side,.scrim,.menu-btn,.actions,.tabs,details.raw,.demo,.dlede,.lede.dlede,.open-rep,button,.copyfrom,.i-del{display:none!important}
  .app{display:block;background:none!important;min-height:0}
  main{padding:0!important;max-width:none}
  .print-head{display:flex;align-items:center;gap:14px;padding:0 0 10px;margin-bottom:14px;border-bottom:3px solid #2a84a8}
  .print-head img{height:40px}
  .ph-mid{display:flex;flex-direction:column;border-left:1px solid #cfd7dd;padding-left:12px}
  .ph-mid b{font-family:var(--head);font-weight:500;font-size:14px}
  .ph-mid span,.ph-right span{font-size:10.5px;color:#5d6a74}
  .ph-right{margin-left:auto;text-align:right;display:flex;flex-direction:column}
  .ph-right b{font-family:var(--head);font-weight:500;font-size:14px}
  h1,.dhead h1{font-size:20px}
  .pagehead,.dhead{margin-bottom:10px}
  .kgrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px}
  .kpi{min-height:0;padding:10px 12px;border-radius:8px;box-shadow:none;gap:4px}
  .kpi-val{font-size:19px}
  .kpi-lbl{font-size:11px}
  .kpi-sub,.kpi-cmp{font-size:10.5px}
  .ico{width:28px;height:28px;border-radius:7px}.ico svg{width:15px;height:15px}
  .kpi-spark{width:70px;height:26px}
  .dp-head h2,.panel h2{font-size:14px}.dp-head span{font-size:10.5px}
  .arow{padding:5px 2px;font-size:11px;grid-template-columns:minmax(90px,150px) minmax(0,1fr) auto}
  .ins li{padding:7px 0;font-size:11px}
  .delta{font-size:10.5px;padding:1px 6px}
  .dgrid{grid-template-columns:1.5fr 1fr!important;gap:10px}
  .two{grid-template-columns:1.4fr 1fr!important}
  .kpi,.dpanel,.panel,tr,.arow,.ins li{break-inside:avoid}
  .dpanel,.panel{padding:12px 14px;margin-bottom:10px;box-shadow:none;border-radius:8px}
  .tw{overflow:visible!important;border-color:#d3dbe1}
  table,table.lines{min-width:0!important;font-size:10.5px}
  th,td{padding:5px 7px}
  thead{display:table-header-group}
  a{color:inherit!important;text-decoration:none!important}
  input,select,textarea{border:none;background:none;padding:0;-webkit-appearance:none;appearance:none;font-size:11px}
  .toolbar{gap:14px;margin-bottom:8px}
  .toolbar label{font-size:10px}
  pre{white-space:pre-wrap;font-size:9.5px}
  details[open].raw{display:block!important}
  body.print-doc .print-head,body.print-doc main{display:none!important}
  body.print-doc #printDoc{display:block}
}


/* ===== v5: modern navy sidebar + light canvas ===== */
:root{--ground:#eef2f6;--c1:#1f6fb2;--c2:#93c5ea;--navy:#0d2740;--navy-2:#13355a;--side-txt:#b8c8d8;--side-active:#2a84c4}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--c1:#4ea3e0;--c2:#2b5f86;--navy:#0a1622;--navy-2:#122435}}
:root[data-theme="dark"]{--c1:#4ea3e0;--c2:#2b5f86;--navy:#0a1622;--navy-2:#122435}
.top{background:#fff;min-height:64px;padding:0 18px 0 0;gap:14px;border-bottom:1px solid #e3e8ee;flex-wrap:nowrap;position:sticky;top:0;z-index:40}
.top::after{display:none}
.top .brand{width:248px;flex:none;padding:0 18px 0 22px;gap:10px;align-self:stretch}
.top .brand img{height:38px}
.brand-tag{font-family:var(--head);font-size:12px;font-weight:600;color:#fff;background:#2a84a8;border-radius:6px;padding:2px 7px}
.search{position:relative;flex:1;max-width:520px;margin-left:8px}
.search>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:#7b8b99;pointer-events:none}
.search input{border-radius:10px;background:#f3f6fa;border:1px solid #e3e8ee;padding:9px 12px 9px 38px;color:#2d3135}
.search input:focus{background:#fff}
.hright{margin-left:auto;gap:4px}
.pop-wrap{position:relative}
.icon-btn{width:40px;height:40px;border-radius:10px;border:none;background:none;color:#4a5a6a;display:grid;place-items:center;position:relative;padding:0}
.icon-btn:hover{background:#f1f5f9;color:#2d3135}
.icon-btn svg{width:20px;height:20px}
.icon-btn.spin svg{animation:spin .7s linear}
.badge{position:absolute;top:4px;right:4px;min-width:17px;height:17px;border-radius:9px;background:#e04646;color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px;border:2px solid #fff}
.user-btn{display:flex;align-items:center;gap:9px;border:none;background:none;padding:5px 8px;border-radius:10px;color:#2d3135;margin-left:6px}
.user-btn:hover{background:#f1f5f9}
.user-btn>svg{width:16px;height:16px;color:#7b8b99}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2a84a8,#1f6fb2);color:#fff;font-weight:600;font-size:13px;display:grid;place-items:center;flex:none}
.avatar.lg{width:42px;height:42px;font-size:15px}
.uname{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.uname b{font-size:13.5px;font-weight:600}.uname small{font-size:11.5px;color:#7b8b99}
.pop{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #e3e8ee;border-radius:12px;box-shadow:0 14px 36px rgba(13,39,64,.18);min-width:300px;padding:8px;z-index:90;color:#2d3135;text-align:left}
.search .pop{left:0;right:0;min-width:0}
.pop-title{font-family:var(--head);font-weight:600;font-size:14.5px;padding:6px 8px 8px}
.pop-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;color:#2d3135;text-decoration:none;font-size:14px;width:100%;border:none;background:none;text-align:left}
.pop-item:hover{background:#f1f5f9;color:#2d3135}
.pop-item small{display:block;color:#7b8b99;font-size:12px}
.pop-item b{font-weight:600}
.pop-item>svg{width:18px;height:18px;color:#7b8b99}
.pop .empty{padding:8px}
.pop-check{display:flex;gap:8px;align-items:flex-start;font-weight:400;color:#2d3135;font-size:13.5px;padding:6px 8px;margin:0}
.pop-check input{width:auto;margin-top:3px}
.pop .link{margin:4px 4px 0}
.pop-note{font-size:12px;color:#7b8b99;margin:6px 8px 4px}
.pop-user{display:flex;gap:12px;align-items:center;padding:8px 8px 12px;border-bottom:1px solid #eef2f6}
.pop-user b{display:block}.pop-user small{color:#7b8b99;font-size:12px}
.pop-kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:10px 8px;font-size:13px;color:#7b8b99;border-bottom:1px solid #eef2f6}
.pop-kv b{color:#2d3135;font-weight:600}
.btn-signout{margin-top:4px;color:#b0272d}
.btn-signout:hover{color:#b0272d}
.app{grid-template-columns:248px minmax(0,1fr);background:linear-gradient(to right,var(--navy) 248px,var(--ground) 248px)!important;min-height:calc(100vh - 64px)}
.side{background:var(--navy);border:none;padding:16px 12px 24px;top:64px;height:calc(100vh - 64px);color:var(--side-txt)}
.side a,.side .grp-btn{border-left:none}
.side .home,.side .grp-btn{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;margin:2px 0;border-radius:9px;color:#dbe6f0;font-size:14.5px;font-weight:500;background:none;border:none;text-decoration:none;font-family:var(--body)}
.side .home svg,.side .grp-btn svg{width:19px;height:19px;color:#8fa7bf;flex:none}
.side .home:hover,.side .grp-btn:hover{background:rgba(255,255,255,.07);color:#fff}
.side .home[aria-current="page"]{background:var(--side-active);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(42,132,196,.35)}
.side .home[aria-current="page"] svg{color:#fff}
.grp-btn span{flex:1;text-align:left}
.grp-btn .chev{width:16px!important;height:16px!important;transition:transform .2s}
.grp.open .chev{transform:rotate(180deg)}
.grp.current>.grp-btn{color:#fff}.grp.current>.grp-btn svg{color:#cfe3f3}
.grp-items{display:none;padding:2px 0 6px;position:relative}
.grp-items::before{content:"";position:absolute;left:23px;top:4px;bottom:8px;width:1px;background:rgba(255,255,255,.12)}
.grp.open .grp-items{display:block}
.side .grp-items a{display:block;padding:7px 12px 7px 44px;margin:1px 0;border-radius:8px;color:var(--side-txt);font-size:14px;text-decoration:none}
.side .grp-items a:hover{background:rgba(255,255,255,.06);color:#fff}
.side .grp-items a[aria-current="page"]{background:var(--side-active);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(42,132,196,.3)}
.side-foot{margin:26px 14px 0;font-size:11.5px;color:#6f89a3;line-height:1.5}
.kpi,.dpanel,.panel{border:1px solid #e4e9ef;box-shadow:0 1px 3px rgba(13,39,64,.06);border-radius:12px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .kpi,:root:not([data-theme="light"]) .dpanel,:root:not([data-theme="light"]) .panel{border-color:var(--line)}}
.kpi:hover{border-color:#bcd6e8;box-shadow:0 6px 18px rgba(13,39,64,.1)}
.hgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.05fr);gap:16px;margin-bottom:16px}
.hgrid2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}
.hgrid .dpanel,.hgrid2 .dpanel{margin:0}
.mini-select{width:auto;font-size:13px;padding:5px 10px;border-radius:8px;background:var(--surface)}
.legend{display:flex;gap:16px;font-size:12.5px;color:var(--muted);margin:-4px 0 4px}
.legend i,.dlegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.viewall{font-size:13.5px;font-weight:600;text-decoration:none}
.plist{list-style:none;margin:0;padding:0}
.plist a{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:13.5px}
.plist li:last-child a{border-bottom:none}
.plist a:hover{background:var(--hover);color:var(--ink)}
.pl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-name small{display:block;color:var(--muted);font-size:11.5px}
.plist b{font-variant-numeric:tabular-nums;font-weight:600}
.up{color:var(--ok);font-size:12.5px;font-weight:600;min-width:34px;text-align:right}
.ord{color:var(--brand);font-size:12px;white-space:nowrap}
td.mono,.tw.flat td:nth-child(2){white-space:nowrap}
.tw.flat{border:none;border-radius:0}
.tw.flat th{background:var(--row)}
.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}
.donut{width:190px;height:190px;flex:none}
.dlegend{list-style:none;margin:0;padding:0;flex:1;min-width:170px}
.dlegend a{display:flex;align-items:center;gap:8px;padding:9px 4px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:13px}
.dlegend li:last-child a{border-bottom:none}
.dlegend span{flex:1}.dlegend b{display:block;font-size:14.5px}
.dlegend em{font-style:normal;color:var(--muted);font-size:13px}
@media (max-width:1280px){.hgrid{grid-template-columns:1fr 1fr}.hgrid .span2{grid-column:1/-1}}
@media (max-width:1000px){.hgrid,.hgrid2{grid-template-columns:1fr}.uname{display:none}}
@media (max-width:900px){.app{background:var(--ground)!important}.side{top:0;height:auto}.top .brand{width:auto;padding:0}.search{display:none}}
@media print{.app{background:none!important}.hgrid{grid-template-columns:1.5fr 1fr 1fr!important;gap:10px}.hgrid2{grid-template-columns:1.6fr 1fr!important;gap:10px}.donut{width:140px;height:140px}.plist a{padding:5px 2px;font-size:11px}.legend{font-size:10.5px}}

h1{font-weight:600;font-size:27px;letter-spacing:-.02em}
.dhead h1{font-size:28px}
:root{--ground:#ffffff}
.app{background:linear-gradient(to right,var(--navy) 248px,#ffffff 248px)!important}
main{background:#fff}
.kpi,.dpanel,.panel{border-color:#e3e9ef;box-shadow:0 1px 4px rgba(13,39,64,.06)}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:#2d3135;color:#fff;padding:11px 18px;border-radius:10px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.2);z-index:100;max-width:90vw}
.toast.warn{background:#8f5c06}
@media print{.toast{display:none!important}}
[hidden]{display:none!important}
@media (max-width:700px){.top{padding:0 12px;flex-wrap:wrap}.brand img{height:38px}.usr .who-db{display:none}.kpis .val{font-size:21px}.proto label{font-size:12.5px}.brand .sys{display:none}.mainnav{order:3;width:100%;margin-left:0;border-top:1px solid #e3e8ec}.mainnav a{padding:12px 12px}.usr{margin-left:auto;border-left:none}h1{font-size:25px}}
@media (prefers-reduced-motion:no-preference){.msg{animation:fade .2s ease-out}@keyframes fade{from{opacity:0}to{opacity:1}}}

/* ===== live app additions ===== */
.loading{color:var(--muted);padding:40px 4px;display:flex;align-items:center;gap:10px}
.loading::before{content:"";width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}
.pager-note{color:var(--muted);font-size:13px;margin:8px 2px}
.ok-dot,.bad-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:1px}
.ok-dot{background:var(--ok)}.bad-dot{background:var(--bad)}
.kv{display:grid;grid-template-columns:minmax(160px,auto) 1fr;gap:6px 18px;margin:0}
.kv dt{color:var(--muted);font-size:13.5px}.kv dd{margin:0}
.search-hit small{display:block}
td .sub{font-size:12px}
.actions button,.actions .btn{white-space:nowrap}
button>svg,.btn>svg{width:16px;height:16px;flex:none}

/* Company database badge (TEST / LIVE) */
.env-pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;letter-spacing:.04em;padding:5px 11px;border-radius:999px;white-space:nowrap;align-self:center}
.env-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.env-pill.test{background:#fff4dc;color:#9a5b00;border:1px solid #f1d39a}
.env-pill.live{background:#e5f5ec;color:#16703f;border:1px solid #b9e0c9}
.env-pill small{font-weight:400;letter-spacing:0;opacity:.85}
@media (max-width:900px){.env-pill small{display:none}}
.db-switch{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:6px}
.db-switch select{min-width:240px}
@media print{.env-pill{display:none}}

/* Lot numbers pop-up */
dialog.modal{border:none;border-radius:8px;padding:0;width:min(760px,96vw);max-height:90vh;box-shadow:0 18px 60px rgba(13,36,58,.28);color:var(--ink)}
dialog.modal::backdrop{background:rgba(13,36,58,.45)}
.modal-body{padding:22px 24px;display:flex;flex-direction:column;gap:10px;max-height:90vh;overflow:auto}
.modal-body h2{margin:0;font-size:20px}
.modal-body .lede{margin:0}
.modal-body table.lines{min-width:0;width:100%;table-layout:fixed}
.modal-body table.lines input{width:100%;min-width:0;box-sizing:border-box}
.modal-body table.lines th:last-child,.modal-body table.lines td:last-child{width:110px}
.modal-body table.lines th:first-child,.modal-body table.lines td:first-child{width:auto}
@media (max-width:640px){.modal-body .tw{overflow-x:auto}.modal-body table.lines{min-width:560px}}
.lot-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.lot-sum{font-weight:600;font-size:14px}
.lot-sum.ok,.lot-badge.ok{color:#16703f}
.lot-sum.bad,.lot-badge.bad{color:#b03030}
.lot-badge{display:inline-block;font-size:12.5px;font-weight:600;margin-top:4px;white-space:nowrap}
.sub.lots{color:#40606f;margin-top:3px;line-height:1.45}
dd.addr{white-space:pre-line}
button.link.small-link{font-size:13.5px;padding:2px 0;margin-top:2px}
.modal-body .grid{grid-template-columns:1fr 1fr}

/* ---- Phones and small tablets (v1.3.1): the sidebar becomes a slide-in menu, the page uses the full width ---- */
@media (max-width:900px){
  .app{display:block!important;grid-template-columns:minmax(0,1fr)!important}
  main#view{width:auto;max-width:100%;min-width:0}
  .top{flex-wrap:nowrap}
  .hright{gap:4px;margin-left:auto}
  #printBtn{display:none}
  .env-pill small{display:none}
  .pagehead{align-items:flex-start}
  .pagehead .actions{width:100%;justify-content:flex-start}
  .toolbar{flex-wrap:wrap}
  .toolbar>div{flex:1 1 140px;min-width:0}
  .toolbar .grow{flex-basis:100%}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important}
  .formfoot{grid-template-columns:1fr!important}
  dl.facts{grid-template-columns:1fr 1fr!important}
}
@media (max-width:420px){
  .brand img{height:30px}
  .brand-tag{display:none}
  .hright .icon-btn{width:36px;height:36px}
  dl.facts{grid-template-columns:1fr!important}
}
@media (max-width:900px){
  .top{gap:8px}
  .user-btn>svg{display:none}
  .user-btn{padding:0}
  .env-pill{padding:4px 9px;font-size:11.5px}
  html,body{max-width:100%;overflow-x:hidden}
}
.dperiod{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.dperiod .dlede{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- v1.6 dashboards (executive + department overviews) ---------- */
.xhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;margin-bottom:18px}
.xhead h1{font-weight:600;font-size:28px;letter-spacing:-.02em;margin:0 0 2px}
.xhead .dsub{font-size:14px;color:var(--muted)}
.xhead-r{display:flex;align-items:center;gap:10px}
.xpill{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:5px 10px;background:var(--surface);white-space:nowrap}
.fy-sel{min-width:150px}
.xgrid{display:grid;gap:18px;margin-bottom:18px}
.xgrid .dpanel{margin-bottom:0;min-width:0}
.xgrid.g21{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}
.xgrid.g11{grid-template-columns:repeat(2,minmax(0,1fr))}
.xgrid.g111{grid-template-columns:repeat(3,minmax(0,1fr))}
.xchart{display:block;overflow:visible}
.xlegend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 16px;font-size:12.5px;color:var(--muted);margin:-6px 0 6px}
.xlegend i{display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px;border:2px solid var(--c);border-radius:50%}
.xlegend i.sq{border-radius:3px;background:var(--c)}
.xlegend i.dash{border-radius:0;border-width:0;border-top:2px dashed var(--c);height:0;width:16px;vertical-align:3px}
.rlist{display:flex;flex-direction:column}
.ritem{display:block;padding:8px 4px 9px;border-radius:6px;color:var(--ink);text-decoration:none}
a.ritem:hover{background:var(--hover);color:var(--ink)}
.rtop{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:6px;font-size:14px}
.rname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;letter-spacing:.01em}
.rname small{font-weight:400;color:var(--muted);margin-left:4px}
.rtop b{font-variant-numeric:tabular-nums;white-space:nowrap}
.neg{color:var(--bad)}
.ritem .meter{height:6px}
.pl{display:flex;flex-direction:column;gap:2px}
.plrow{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr) minmax(90px,auto);align-items:center;gap:16px;padding:9px 4px;font-size:14px}
.plrow b{text-align:right;font-variant-numeric:tabular-nums}
.plrow.sum{font-weight:600}
.plrow small{font-weight:400;color:var(--muted);margin-left:6px;font-size:12.5px}
.plrow .meter{height:9px}
.ratios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ratio{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.ratio span{font-size:13px;color:var(--muted);font-weight:600}
.ratio b{font-family:var(--head);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}
.ratio small{font-size:12.5px;color:var(--muted)}
.kpi.nolink:hover{border-color:var(--line);box-shadow:none}
.xfoot{font-size:12.5px;color:var(--muted);margin:-4px 0 12px}
.dlegend .dl-row{display:flex;align-items:center;gap:8px;padding:9px 4px;border-bottom:1px solid var(--line);font-size:13px}
.dlegend li:last-child .dl-row{border-bottom:none}
@media (max-width:1280px){.xgrid.g111{grid-template-columns:repeat(2,minmax(0,1fr))}.xgrid.g111>:last-child{grid-column:1/-1}}
@media (max-width:1100px){.xgrid.g21,.xgrid.g11,.xgrid.g111{grid-template-columns:1fr}.xgrid.g111>:last-child{grid-column:auto}}
@media (max-width:560px){.xhead h1{font-size:22px}.plrow{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.plrow .meter{grid-column:1/-1;grid-row:2}.ratios{grid-template-columns:1fr}.xlegend{justify-content:flex-start}}
@media print{.xgrid.g21{grid-template-columns:1.6fr 1fr!important}.xgrid.g11{grid-template-columns:1fr 1fr!important}.xgrid.g111{grid-template-columns:1fr 1fr 1fr!important}.fy-sel{display:none}}
.kpi{overflow:hidden}
.kpi-valrow .kpi-spark{flex:0 1 120px;min-width:56px}
.kpi-lbl::first-letter{text-transform:uppercase}
.delta{white-space:nowrap}

/* ---------- v1.6 profiles (customer, vendor, item) ---------- */
.crumb{margin:0 0 10px;font-size:14px}.crumb a{text-decoration:none}.crumb a::before{content:"‹ "}
.phead{padding:22px 24px 18px}
.ph-top{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.ph-av{width:56px;height:56px;border-radius:14px;background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--head);font-weight:600;font-size:20px;flex:none}
.ph-av svg{width:28px;height:28px}
.ph-title{flex:1;min-width:220px}
.ph-title h1{font-size:24px;font-weight:600;margin:2px 0 8px;letter-spacing:-.01em;line-height:1.2}
.ph-chips{display:flex;flex-wrap:wrap;gap:6px}
.ph-act{display:flex;gap:8px;flex-wrap:wrap}
.ph-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px 22px;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.ph-facts dt{font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:2px}
.ph-facts dd{margin:0;font-size:14.5px;overflow-wrap:anywhere}
.kpi-val small.u{font-family:var(--body);font-size:14px;font-weight:400;color:var(--muted)}
.recon{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:13.5px}
.recon div{display:flex;justify-content:space-between;gap:12px;padding:3px 4px}
.recon span{color:var(--muted)} .recon b{font-variant-numeric:tabular-nums}
.recon .tot span{color:var(--ink);font-weight:600}
.recon .note{display:block;color:var(--muted);font-size:12.5px;padding-top:6px}
.dchip{display:inline-block;min-width:38px;text-align:center;font-size:12.5px;font-weight:600;padding:1px 8px;border-radius:10px;font-variant-numeric:tabular-nums}
.dchip.bad{background:var(--bad-bg);color:var(--bad)} .dchip.warn{background:var(--warn-bg);color:var(--warn)} .dchip.mild{background:var(--row);color:var(--ink)} .dchip.ok{background:var(--ok-bg);color:var(--ok);font-weight:400}
.rsub2{font-size:12.5px;color:var(--muted);margin-top:4px}
@media (max-width:560px){.ph-facts{grid-template-columns:1fr 1fr}.ph-title h1{font-size:20px}}
.ag-tight .arow{grid-template-columns:96px minmax(40px,1fr) auto;gap:12px;padding:7px 4px}
.ph-sub{font-weight:400;color:var(--muted);font-size:18px;margin-left:6px}
.pl.tight .plrow{grid-template-columns:minmax(120px,1.1fr) minmax(60px,1fr) auto;gap:12px}
tr.sel td{background:var(--brand-tint)}
tr.pick{cursor:pointer}tr.pick:hover td{background:var(--hover)}

/* v1.13: page tabs (Details | Relationship map), relationship map, print choice */
.ptabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:-4px 0 14px;overflow-x:auto}
.ptab{border:none;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:9px 14px;border-radius:0;white-space:nowrap;font-size:14.5px}
.ptab:hover{color:var(--ink)}
.ptab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}
.rm-wrap{overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--row);padding:6px;max-height:70vh}
.rm{position:relative}
.rm-svg{position:absolute;left:0;top:0;pointer-events:none}
.rm-edge{fill:none;stroke:#9fb3c3;stroke-width:2}
.rm-edge.hot{stroke:var(--brand);stroke-width:2.4}
.rm-head{fill:#9fb3c3}.rm-head.hot{fill:var(--brand)}
.rm-box,.rm-bp{position:absolute;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;color:var(--ink);text-decoration:none;box-shadow:0 1px 2px rgba(13,36,58,.06)}
.rm-box{width:184px;height:104px;overflow:hidden}
.rm-box .num{text-align:left}
.rm-bp{min-width:184px;max-width:320px;padding:7px 10px}
a.rm-box:hover{border-color:var(--brand);box-shadow:0 3px 10px rgba(13,36,58,.14)}
.rm-box.root{border:2px solid var(--brand);background:color-mix(in srgb, var(--brand) 8%, var(--surface))}
.rm-t{font-size:11.5px;font-weight:700;color:var(--brand);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-n{font-size:16px;font-weight:600;margin-top:2px}
.rm-d{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-top:2px}
.rm-d .chip{font-size:10.5px;padding:1px 6px}
.rm-a{font-size:13px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-x{font-size:11px;color:var(--muted);margin-top:1px}
.pchoice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:6px;padding:11px 12px;cursor:pointer}
.pchoice:has(input:checked){border-color:var(--brand);background:color-mix(in srgb, var(--brand) 6%, transparent)}
.pchoice input{margin-top:3px}
.pchoice > span{display:flex;flex-direction:column;gap:2px}
#printDlg{width:min(540px,96vw)}
.pchoice input[type=radio]{width:auto;min-width:0;flex:none;margin:3px 0 0}
.pchoice > span{flex:1}
/* v1.14.1: bill-to / ship-to as on SAP's Logistics tab */
.addr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 18px}
.addr-txt{margin-top:6px;width:100%;box-sizing:border-box;resize:vertical;font-size:14px;line-height:1.4}
/* v1.15: Report generator */
.rg-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.rg-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:6px;padding:12px;cursor:pointer;background:var(--surface)}
.rg-card:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset;background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.rg-card input{width:auto;min-width:0;flex:none;margin-top:3px}
.rg-card>span{display:flex;flex-direction:column;gap:3px}.rg-card .sub{line-height:1.35}
.rg-period{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.rg-period input{width:auto}
.rg-presets{display:flex;flex-wrap:wrap;gap:6px}
.rg-run{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.rg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.rg-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}
.rg-kpi{border:1px solid var(--line);border-top:3px solid #C9A24D;border-radius:4px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.rg-kpi b{font-size:20px}.rg-kpi span{color:var(--muted);font-size:13px}.rg-kpi em{color:var(--muted);font-size:12px;font-style:normal}
.rg-summary,.rg-ins{margin:6px 0 0;padding-left:20px;line-height:1.5}
.rg-ins{background:color-mix(in srgb,#C9A24D 12%,var(--surface));border-left:3px solid #C9A24D;padding:10px 12px 10px 30px;border-radius:0 4px 4px 0;margin-top:12px}
.rg-big{display:inline-block;background:#1B1A17;color:#e8e2d2;padding:8px 14px;border-radius:4px;margin-bottom:10px}.rg-big b{color:#C9A24D;font-size:20px;margin-right:6px}
.rg-bars{display:flex;flex-direction:column;gap:5px;margin:6px 0 12px}
.rg-bars>div{display:grid;grid-template-columns:minmax(120px,240px) 1fr auto;gap:10px;align-items:center;font-size:13px}
.rg-bars span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.rg-bars i{display:block;height:14px;background:#C9A24D;border-radius:2px}.rg-bars b{font-weight:600;font-variant-numeric:tabular-nums}
@media (max-width:640px){.rg-bars>div{grid-template-columns:110px 1fr auto}}

/* ===================================================================
   v1.20 New design — html[data-ui="new"]. Classic is everything above.
   Soft cards, 42px fields with a clear border, filter card with chips,
   calmer tables with pills and avatars, sign-in card, Ctrl+K search.
   =================================================================== */
:root{--n-radius:12px;--n-radius-sm:9px;--n-field:#d5dde6;--n-field-hover:#8fbcd2;--n-ring:rgba(42,132,168,.18);
  --n-shadow:0 1px 2px rgba(16,40,60,.05),0 6px 20px rgba(16,40,60,.06);--n-shadow-lg:0 2px 4px rgba(16,40,60,.06),0 18px 46px rgba(16,40,60,.12);
  --n-head:#f4f7fa;--n-zebra:#fafcfd;--n-login-bg:radial-gradient(1200px 520px at 50% -140px,#dceef6 0%,rgba(220,238,246,0) 70%),var(--ground)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--n-field:#34444f;--n-field-hover:#4f7e95;--n-ring:rgba(91,179,214,.25);
  --n-shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);--n-shadow-lg:0 2px 4px rgba(0,0,0,.35),0 18px 46px rgba(0,0,0,.4);
  --n-head:#1d2930;--n-zebra:#1b252c;--n-login-bg:radial-gradient(1200px 520px at 50% -140px,#173544 0%,rgba(23,53,68,0) 70%),var(--ground)}}
:root[data-theme="dark"]{--n-field:#34444f;--n-field-hover:#4f7e95;--n-ring:rgba(91,179,214,.25);
  --n-shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);--n-shadow-lg:0 2px 4px rgba(0,0,0,.35),0 18px 46px rgba(0,0,0,.4);
  --n-head:#1d2930;--n-zebra:#1b252c;--n-login-bg:radial-gradient(1200px 520px at 50% -140px,#173544 0%,rgba(23,53,68,0) 70%),var(--ground)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.search .kk{display:none}

/* --- fields and buttons --- */
[data-ui="new"] input:not([type="checkbox"]):not([type="radio"]),[data-ui="new"] select,[data-ui="new"] textarea{border:1.5px solid var(--n-field);border-radius:var(--n-radius-sm);padding:9px 12px;transition:border-color .15s,box-shadow .15s}
[data-ui="new"] input:not([type="checkbox"]):not([type="radio"]),[data-ui="new"] select{min-height:42px}
[data-ui="new"] input:not([readonly]):not([disabled]):hover,[data-ui="new"] select:not([disabled]):hover,[data-ui="new"] textarea:hover{border-color:var(--n-field-hover)}
[data-ui="new"] input:focus,[data-ui="new"] select:focus,[data-ui="new"] textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--n-ring)}
[data-ui="new"] input[type="checkbox"]{accent-color:var(--brand);width:16px;height:16px}
[data-ui="new"] label{font-size:12.5px;letter-spacing:.01em}
[data-ui="new"] table.lines td input,[data-ui="new"] table.lines td select{min-height:38px;padding:7px 9px;border-radius:8px}
[data-ui="new"] button,[data-ui="new"] .btn{border-radius:var(--n-radius-sm);padding:9px 16px;font-weight:600;transition:background .15s,box-shadow .15s,transform .05s}
[data-ui="new"] button.small,[data-ui="new"] .btn.small{padding:6px 12px}
[data-ui="new"] .primary{box-shadow:0 4px 12px rgba(42,132,168,.28)}
[data-ui="new"] .primary:hover{box-shadow:0 6px 16px rgba(42,132,168,.34)}
[data-ui="new"] button:active:not(:disabled),[data-ui="new"] .btn:active{transform:translateY(1px)}
[data-ui="new"] button.link,[data-ui="new"] .tab,[data-ui="new"] .pop-item,[data-ui="new"] .icon-btn,[data-ui="new"] .user-btn,[data-ui="new"] .grp-btn,[data-ui="new"] .upb{box-shadow:none;transform:none;font-weight:inherit}

/* --- surfaces --- */
[data-ui="new"] .panel{border-radius:16px;box-shadow:var(--n-shadow);border-color:var(--line);padding:22px}
[data-ui="new"] .dpanel,[data-ui="new"] .kpi{box-shadow:var(--n-shadow)}
[data-ui="new"] .msg{border-radius:10px;border-left-width:4px}
[data-ui="new"] h1{font-weight:400}
[data-ui="new"] .pagehead{margin-bottom:20px}

/* --- tables --- */
[data-ui="new"] .tw{border-radius:14px;border-color:var(--line);box-shadow:var(--n-shadow)}
[data-ui="new"] .tw.flat{box-shadow:none;border-radius:0}
[data-ui="new"] th{background:var(--n-head);text-transform:uppercase;font-size:11.5px;letter-spacing:.06em;padding:12px 14px;color:var(--muted)}
[data-ui="new"] td{padding:12px 14px;vertical-align:middle}
[data-ui="new"] table.lines td{padding:7px 8px;vertical-align:top}
[data-ui="new"] tbody tr:last-child td{border-bottom:none}
[data-ui="new"] tr.click td{transition:background .12s}
[data-ui="new"] tr.click:hover td{background:var(--hover)}
[data-ui="new"] tr.click td:first-child a{font-weight:600;text-decoration:none}
[data-ui="new"] .chip{border:none;padding:3px 10px;font-weight:600;font-size:11.5px;background:var(--t-slate-bg)}
[data-ui="new"] .chip.open{background:var(--t-blue-bg)} [data-ui="new"] .chip.ok{background:var(--ok-bg)} [data-ui="new"] .chip.warn{background:var(--warn-bg)} [data-ui="new"] .chip.bad{background:var(--bad-bg)} [data-ui="new"] .chip.closed{background:var(--t-slate-bg)}
.avcell{display:inline-flex;align-items:center;gap:10px;min-width:0}
.av{flex:none;width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:hsl(var(--h) 55% 32%);background:hsl(var(--h) 60% 92%)}
:root[data-theme="dark"] .av{color:hsl(var(--h) 70% 80%);background:hsl(var(--h) 35% 24%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .av{color:hsl(var(--h) 70% 80%);background:hsl(var(--h) 35% 24%)}}
.upager{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:12px 4px 0;font-size:13.5px;color:var(--muted)}
.upbtns{display:flex;gap:6px;align-items:center}
.upb{min-width:34px;height:34px;padding:0 10px;border-radius:9px;border:1.5px solid var(--n-field);background:var(--surface);color:var(--ink);font-size:13.5px;cursor:pointer}
.upb:hover:not(:disabled){border-color:var(--brand);color:var(--brand);background:var(--surface)}
.upb.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.upgap{color:var(--muted);padding:0 2px}

/* --- filter card --- */
.fcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--n-shadow);padding:14px 18px 16px;margin-bottom:16px}
.fhead{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-family:var(--head);font-size:16px}
.fhead b{font-weight:500}
.fico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--n-head);color:var(--muted)}
.fico svg{width:17px;height:17px}
.fcount{font-family:var(--body);font-size:11.5px;font-weight:700;color:var(--t-violet);background:var(--t-violet-bg);padding:3px 10px;border-radius:999px}
.fsp{flex:1}
.fclear{font-size:13.5px;color:var(--muted)!important;font-weight:600}
.fclear:hover{color:var(--bad)!important}
.fcard .toolbar{margin-bottom:0;gap:12px 14px}
.fcard .toolbar>div{min-width:170px}
.fsearch{position:relative;display:block}
.fsearch>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted);pointer-events:none}
.fsearch>input{padding-left:38px!important}
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}
.fcard.has-chips .fchips{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.fchip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;padding:4px 6px 4px 11px;border-radius:999px;color:var(--ink);background:var(--n-head);border:1px solid var(--line)}
.fchip b{font-weight:600}
.fchip.t-blue{color:var(--t-blue);background:var(--t-blue-bg);border-color:transparent}.fchip.t-green{color:var(--t-green);background:var(--t-green-bg);border-color:transparent}
.fchip.t-violet{color:var(--t-violet);background:var(--t-violet-bg);border-color:transparent}.fchip.t-amber{color:var(--t-amber);background:var(--t-amber-bg);border-color:transparent}
.fchip.t-teal{color:var(--t-teal);background:var(--t-teal-bg);border-color:transparent}
.fchip .fx{display:grid;place-items:center;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:transparent;color:inherit;cursor:pointer;min-height:0}
.fchip .fx:hover{background:rgba(0,0,0,.08)}
.fchip .fx svg{width:12px;height:12px}

/* --- Ctrl+K search --- */
[data-ui="new"] .search .kk{display:inline-flex;position:absolute;right:10px;top:50%;transform:translateY(-50%);font:600 11px var(--body);color:#2a84a8;background:#e7f2f7;border:1px solid #cfe3ec;border-radius:7px;padding:3px 7px;pointer-events:none}
[data-ui="new"] .search input{border-radius:12px;min-height:44px;padding-right:64px;border:1.5px solid #e1e8ef;box-shadow:0 6px 18px rgba(0,120,190,.06)}
[data-ui="new"] .search input:focus{border-color:#4facfe;box-shadow:0 0 0 3px rgba(79,172,254,.18),0 12px 28px rgba(0,120,190,.12)}
[data-ui="new"] .search:focus-within .kk{opacity:0}
.pop-head{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7b8b99;padding:6px 8px 4px}
.recent-clear{justify-content:center;font-size:12.5px!important;color:#7b8b99!important;margin-top:4px;border-top:1px solid #eef2f5!important;border-radius:0 0 8px 8px!important}
.ui-toggle small{display:block;font-size:11.5px;color:#7b8b99}
.ui-toggle svg{width:18px;height:18px;color:#7b8b99}

/* --- sign-in card --- */
.signin2{min-height:calc(100vh - 140px);display:grid;place-items:center;padding:40px 16px;background:var(--n-login-bg)}
.lcard{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--n-shadow-lg);padding:30px 30px 28px;display:flex;flex-direction:column;gap:12px;text-align:center}
.llogo{height:44px;align-self:center;margin-bottom:6px}
.lavatar{align-self:center;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:var(--brand);background:var(--brand-tint);box-shadow:inset 0 0 0 1px rgba(42,132,168,.12)}
.lavatar svg{width:26px;height:26px}
.lcard h1{font-size:26px;font-weight:500;margin:4px 0 0}
.lsub{margin:-6px 0 6px;color:var(--muted);font-size:14.5px}
.lfield{position:relative}
.lfield>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none}
.lfield input{min-height:48px!important;padding-left:44px!important;border-radius:12px!important;font-size:15px}
.lfield input#p{padding-right:46px!important}
.leye{position:absolute;right:6px;top:50%;transform:translateY(-50%)!important;width:36px;height:36px;padding:0!important;border:none;background:none;color:var(--muted);display:grid;place-items:center;box-shadow:none!important}
.leye:hover{background:var(--hover)}
.leye svg{width:18px;height:18px}
.lrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;font-size:13.5px;text-align:left}
.lcheck{display:flex;gap:8px;align-items:center;margin:0;font-weight:500;color:var(--ink);font-size:13.5px}
.lhelp{color:var(--brand);font-weight:600;cursor:help}
.lbtn{min-height:48px;border-radius:12px!important;font-size:15.5px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}
.lbtn svg{width:18px;height:18px}
body.signed-out .signin2{min-height:calc(100vh - 80px)}
@media (max-width:480px){.lcard{padding:24px 18px}}
@media print{.fcard .fhead,.fchips,.upager{display:none}.fcard{border:none;box-shadow:none;padding:0}}
[data-ui="new"] .search input{padding-left:40px}
[data-ui="new"] body.signed-out .app,[data-ui="new"] .signed-out .app{background:var(--ground)!important;grid-template-columns:1fr}
[data-ui="new"] body.signed-out main{max-width:none;padding:0}
[data-ui="new"] table.lines .i-item{min-width:210px}
.lhelp{padding:0!important;font-size:13.5px;box-shadow:none!important}
[data-ui="new"] .search input#gsearch{padding-left:40px}
/* v1.20.1: relationship map fits the screen (rows wrap); sales order picker pop-up */
.rm-wrap{max-height:none}
.th-sort{padding:0!important;font:inherit!important;color:inherit!important;text-decoration:none!important;text-transform:inherit;letter-spacing:inherit;font-weight:600!important;box-shadow:none!important;min-height:0!important;white-space:nowrap}
.th-sort:hover{color:var(--brand)!important}
th[aria-sort="ascending"] .th-sort,th[aria-sort="descending"] .th-sort{color:var(--brand)!important}
.so-pick-t tr.so-row{cursor:pointer}
.so-pick-t tr.so-row:hover td{background:var(--hover)}
.so-pick-t tr.so-row.sel td{background:var(--brand-tint)}
.so-pick-t thead th{position:sticky;top:0;z-index:1}
/* v1.21 Gross profit tab */
.gp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.gp-k{display:flex;flex-direction:column;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--n-shadow)}
.gp-l{font-size:12.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.gp-k>b{font-family:var(--head);font-weight:600;font-size:24px;letter-spacing:-.01em}
.gpbar{position:relative;height:8px;border-radius:4px;background:var(--row);overflow:visible;min-width:80px;margin-top:4px}
.gpfill{position:absolute;left:0;top:0;bottom:0;border-radius:4px}
.gpfill.ok{background:var(--ok)}.gpfill.warn{background:var(--t-amber)}.gpfill.bad{background:var(--bad)}.gpfill.closed{background:var(--muted)}
.gptick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.55;border-radius:1px}
.gp-mcell{display:flex;flex-direction:column;gap:2px}
.gp-t td{vertical-align:top}
.gp-dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px}
.gp-dot.ok{background:var(--ok)}.gp-dot.warn{background:var(--t-amber)}.gp-dot.bad{background:var(--bad)}
.gp-brands{display:flex;flex-direction:column;gap:8px}
.gp-br{display:grid;grid-template-columns:minmax(70px,120px) minmax(0,1fr) auto;gap:10px;align-items:center}
.gp-bn{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gp-bt{height:10px;background:var(--row);border-radius:5px;overflow:hidden}
.gp-bf{display:block;height:100%;background:var(--t-blue);border-radius:5px}
.gp-bf.neg{background:var(--bad)}
.gp-bv{font-size:13px;white-space:nowrap}
.gp-what .kv{margin:0}
@media (max-width:1000px){.gp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.gp-kpis{grid-template-columns:1fr}}
.gp-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.gp-t td,.gp-t th{padding-left:10px;padding-right:10px}
.gp-what .kv{grid-template-columns:minmax(130px,auto) minmax(0,1fr)}
.tw.flat .gp-t td:nth-child(2){white-space:normal;min-width:180px}
.gp-t td:last-child{white-space:normal;min-width:150px}
.gp-t td:last-child .sub{white-space:nowrap}
.gp-t td,.gp-t th{padding-left:8px;padding-right:8px}
.tw.flat .gp-t td:nth-child(2){min-width:160px}
.gp-t th{letter-spacing:.03em}
/* v1.22 matched links, map legend, long customer names */
.rm-edge.matched{stroke-dasharray:6 5}
.rm-legend{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:12.5px;color:var(--muted);margin-top:10px}
.rm-legend span{display:inline-flex;align-items:center;gap:8px}
.rm-lg{display:inline-block;width:28px;height:0;border-top:2px solid var(--brand)}
.rm-lg.dashed{border-top-style:dashed}
.rm-possible{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.rm-possible h3{margin:0 0 4px}
.rm-possible ul{margin:0;padding-left:18px;line-height:1.7;font-size:14px}
.rm-bp{max-width:min(560px,calc(100% - 24px))}
.rm-bp a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-je{white-space:nowrap}

/* v1.25: copy menus (SO → PR / PO, PO ← SO / PR) and the demand plan */
.copymenu{position:relative;display:inline-block}
.copymenu-pop{position:absolute;z-index:30;top:calc(100% + 6px);left:0;display:flex;flex-direction:column;gap:6px;min-width:210px;padding:8px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(13,36,58,.18)}
.copymenu-pop[hidden]{display:none}
.copymenu-pop .btn,.copymenu-pop button{width:100%;justify-content:flex-start;text-align:left;white-space:nowrap}
.pagehead .copymenu-pop{left:auto;right:0}
#f-demandpanel{margin-top:12px}
.dp-t td{vertical-align:top}
.dp-t td{white-space:normal}
.dp-t td.num,.dp-t th.num{white-space:nowrap}
.dp-t td:first-child{min-width:200px}
.dp-t td:nth-child(10){min-width:130px}
#f-demandpanel{margin-top:14px}
.dp-b summary{cursor:pointer;margin-top:4px}

/* v1.26: data import */
.im-steps{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0 0 16px;padding:0;counter-reset:s}
.im-steps li{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;font-size:14px}
.im-steps li span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);font-size:12px}
.im-steps li.cur{color:var(--ink)}.im-steps li.cur span{background:var(--t-blue,#2b7bb9);border-color:var(--t-blue,#2b7bb9);color:#fff}
.im-steps li.done span{background:var(--ok);border-color:var(--ok);color:#fff}
.im-chains{display:grid;gap:14px}
.im-chain{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px}
.im-obj{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-width:190px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font:inherit;color:inherit;box-shadow:none}
.im-obj:hover{border-color:var(--t-blue,#2b7bb9)}
.im-obj b{font-size:15px}
.im-obj.done{border-color:var(--ok)}.im-obj.cur{outline:2px solid var(--t-blue,#2b7bb9);outline-offset:1px}
.im-arr{align-self:center;color:var(--muted);font-size:20px}
.im-sep{flex-basis:100%;height:0}
.im-drop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 16px;border:2px dashed var(--line);border-radius:14px;text-align:center;margin-bottom:12px;background:var(--row)}
.im-drop.over,.im-drop:focus{border-color:var(--t-blue,#2b7bb9);outline:none}
.im-val{display:inline-block;padding:1px 7px;margin:1px 2px 1px 0;border-radius:6px;background:var(--row);font-size:12.5px;font-family:var(--mono,monospace)}
.im-map tr.im-miss td{background:rgba(214,69,65,.06)}
.im-map select{min-width:200px}
.im-iss li{align-items:flex-start}
.im-iss button{margin-left:4px}
.im-fill{display:inline-flex;gap:6px;align-items:center;margin-left:6px;flex-wrap:wrap}
.im-grid-w{max-height:460px;overflow:auto}
.im-grid td,.im-grid th{white-space:nowrap;padding:7px 10px}
.im-grid thead th{position:sticky;top:0;z-index:1}
.im-c{cursor:text}
.im-c.c-bad{background:rgba(214,69,65,.12);box-shadow:inset 0 0 0 1px rgba(214,69,65,.45)}
.im-c.c-warn{background:rgba(240,181,74,.16)}
.im-grid tr.im-skip td{opacity:.45}
.im-prog{height:10px;border-radius:5px;background:var(--row);overflow:hidden;margin:6px 0}
.im-prog span{display:block;height:100%;width:0;background:var(--ok);transition:width .25s}
@media (max-width:640px){.im-obj{min-width:0;flex:1 1 140px}.im-arr{display:none}}
/* v1.27.1 reports grouped by process area */
.side .grp-sec{display:block;margin:12px 0 3px;padding-left:44px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--side-txt);opacity:.55}
.rep-area{font-size:15px;margin:22px 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.rg-area{font-size:12.5px;margin:16px 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.rg-area:first-child{margin-top:4px}
/* v1.28 smart import (prototype) */
.im-wbin .im-drop-sm{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:10px 14px;padding:14px 16px;min-height:0}
.im-tag{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:1px 7px;border-radius:5px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);margin-right:4px;vertical-align:1px}
.im-create input[data-mkname]{min-width:180px;width:100%}
.im-create td{vertical-align:middle}
.im-wbfill{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:8px 0;border-top:1px solid var(--line)}
.im-wbfill:first-of-type{border-top:0}
/* v1.28 label printing (prototype) */
.lb-steps li button{display:flex;align-items:center;gap:8px;color:inherit;font:inherit;padding:0;text-decoration:none}
.lb-steps li button:disabled{opacity:.55;cursor:default}
.lb-pick{grid-template-columns:minmax(200px,1fr) minmax(200px,1fr) auto;align-items:start}
.lb-t tr.sel td{background:color-mix(in srgb,var(--brand) 6%,transparent)}
.lb-bar{align-items:center;flex-wrap:wrap}
.lb-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.lb-col h3{margin:0 0 6px;font-size:15px}
.lb-col label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.lb-col textarea,.lb-col input{width:100%}
.lb-ar{font-family:'Noto Sans Arabic','Segoe UI',Tahoma,Arial,sans-serif;font-size:15px;line-height:1.6}
.lb-ed{border-color:var(--warn)!important;background:color-mix(in srgb,var(--warn) 7%,var(--surface))}
.lb-acts{justify-content:flex-start;flex-wrap:wrap;margin-top:10px}
.lb-chk:empty{display:none}.lb-chk{margin-top:10px}
.lb-langs{display:flex;gap:16px;padding-top:8px}.lb-langs label{display:flex;gap:6px;align-items:center;margin:0}
.lb-items-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}.lb-items-bar:empty{display:none}
.lp-wrap{background:var(--row);border-radius:10px;padding:12px;overflow:hidden}
.lp-scale{transform-origin:top left}
.lp{background:#fff;color:#000;box-sizing:border-box;position:relative;margin:0 0 14px;box-shadow:0 1px 5px rgba(0,0,0,.2);overflow:hidden}
.lp-h{display:flex;align-items:center;justify-content:center;letter-spacing:.01em;color:#000}
.lp-g{display:grid;justify-content:center;align-content:start}
.lb{display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;color:#000}
.lb-box>*,.lb>*{flex:none}
.lb-box{box-sizing:border-box;border:1px solid;box-shadow:2px 2px 1px rgba(0,0,0,.22);display:flex;flex-direction:column;overflow:hidden;background:#fff;flex:none}
.lb-n{white-space:nowrap;overflow:hidden;letter-spacing:-.01em;text-align:left}
.lb-an{white-space:nowrap;overflow:hidden;text-align:start}
.lb-ai{text-align:start;margin-top:.05in;overflow-wrap:anywhere}
.lb-ao{text-align:start;margin-top:auto;padding-top:.03in}
.lb-ei{text-align:center;padding:.11in .04in 0;overflow-wrap:anywhere}
.lp-foot{position:absolute;left:0;right:0;bottom:.2in;text-align:center;font:600 7.5pt Arial,sans-serif;color:#666;letter-spacing:.06em}
#lblPrint{display:none}
.lb-master p{margin:2px 0 10px}
@media (max-width:760px){.lb-cols,.lb-pick{grid-template-columns:1fr}}
@media print{body.lbl-printing>*:not(#lblPrint){display:none!important}body.lbl-printing #lblPrint{display:block!important}#lblPrint .lp{margin:0;box-shadow:none;break-after:page;page-break-after:always}#lblPrint .lp:last-child{break-after:auto;page-break-after:auto}body.lbl-printing{background:#fff!important}}
.lb-x{font-size:15px;line-height:1.6}
.lb-langbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.lb-langbar label{margin:0;font-weight:600}.lb-langbar select{width:auto;min-width:200px}
.lb-size{margin-top:12px}.lb-size summary{cursor:pointer;font-weight:600}
.lb-sz{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.lb-tr{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.lb-col h3 select{width:auto;font-size:14px}
/* v1.28 reports with many columns (monthly P&L, month-end balance sheet): account and name stay in view while scrolling across */
.rep-wide th.num,.rep-wide td.num{white-space:nowrap;font-size:13px;padding-left:10px;padding-right:10px}
.rep-wide th:first-child,.rep-wide td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);min-width:84px}
.rep-wide th:nth-child(2),.rep-wide td:nth-child(2){position:sticky;left:84px;z-index:1;background:var(--surface);min-width:230px;box-shadow:1px 0 0 var(--line)}
.rep-wide tr.sec td{position:sticky;left:0}
.rep-wide thead th:first-child,.rep-wide thead th:nth-child(2){z-index:2}
@media print{.rep-wide th:first-child,.rep-wide td:first-child,.rep-wide th:nth-child(2),.rep-wide td:nth-child(2){position:static;box-shadow:none}}
/* v1.28.4 typeahead picker */
.ac-list{position:fixed;z-index:1000;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(15,30,40,.18);overflow-y:auto;padding:4px 0;font-size:14px}
.ac-list.busy{opacity:.7}
.ac-head{padding:6px 12px 4px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ac-it{display:grid;grid-template-columns:minmax(84px,auto) 1fr auto;gap:10px;align-items:center;padding:7px 12px;cursor:pointer}
.ac-it.on,.ac-it:hover{background:var(--hover)}
.ac-code{color:var(--muted);font-size:13px;white-space:nowrap}
.ac-main{min-width:0;display:flex;flex-direction:column}
.ac-title{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-info{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-list mark{background:none;color:inherit;font-weight:700;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:2px}
.ac-tags{display:flex;gap:4px}
.ac-tag{font-size:11.5px;padding:1px 7px;border-radius:9px;background:var(--row);color:var(--muted);white-space:nowrap}
.ac-tag.k-A{background:var(--brand-tint);color:var(--brand-strong)}
.ac-tag.k-C{background:var(--ok-bg);color:var(--ok)}
.ac-tag.k-S{background:var(--warn-bg);color:var(--warn)}
.ac-tag.warn{background:var(--bad-bg);color:var(--bad)}
.ac-note{padding:10px 12px;color:var(--muted);font-size:13px}
.ac-lab{display:flex;align-items:baseline;gap:8px;min-width:0}
.ac-picked{font-weight:400;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;max-width:340px}
.ac-picked .ac-tag{font-size:11px;padding:0 6px}
.ac-picked:empty{display:none}
@media (max-width:560px){.ac-it{grid-template-columns:1fr auto}.ac-code{grid-column:1/-1}}
/* v1.28.4 several accounts in one box */
.ac-host{flex:1 1 460px;max-width:720px}
.ac-field{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:4px;border:1px solid var(--line);border-radius:3px;background:var(--surface);cursor:text}
[data-ui="new"] .ac-field{border-radius:8px}
.ac-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.ac-field>input,.ac-field .fsearch>input{border:none!important;box-shadow:none!important;background:none!important;padding-top:4px;padding-bottom:4px;min-width:150px}
.ac-field>input{flex:1 1 150px;width:auto}
.ac-field .fsearch{flex:1 1 170px;min-width:0}
.ac-toks{display:contents}
.ac-tok{display:inline-flex;align-items:center;gap:6px;max-width:230px;padding:3px 4px 3px 8px;border-radius:12px;font-size:12.5px;background:var(--row);color:var(--ink)}
.ac-tok.k-A{background:var(--brand-tint)}.ac-tok.k-C{background:var(--ok-bg)}.ac-tok.k-S{background:var(--warn-bg)}
.ac-tok b{font-weight:600;font-size:12px}
.ac-tok span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ac-tok button{border:none;background:none;padding:0 4px;font-size:15px;line-height:1;color:var(--muted);cursor:pointer;min-width:0;width:auto}
.ac-tok button:hover{color:var(--bad)}
/* v1.29 BP reconciliation */
.rc-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 14px}
.rc-tabs a{padding:8px 12px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}
.rc-tabs a[aria-current]{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}
.rc-h{font-size:17px;margin:6px 0 2px}
.rc-bps{margin:4px 0 12px;line-height:1.7}
.rc-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;padding:10px 12px;margin-bottom:10px;background:var(--surface);border:1px solid var(--line);border-radius:6px}
.rc-sum{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}
.rc-sum .ok b{color:var(--ok)} .rc-sum .bad b{color:var(--bad)}
.rc-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rc-acts button{width:auto}
.rc-tbl tr.sel td{background:var(--hover)}
.rc-tbl tr.rc-fc td{color:var(--muted)}
.rc-tbl .rc-amt{min-width:110px;max-width:150px}
.rc-sugp ul{margin:8px 0 10px;padding-left:4px;list-style:none;line-height:1.9}
.rc-sugp label{display:inline;font-weight:400}
.rc-lines{margin:6px 0 0;padding-left:16px;font-size:13px;line-height:1.7}
