:root{ color-scheme:light;   /* always the light look, whatever the phone or computer is set to */
  --paper:#F3F4F6; --panel:#FFFFFF; --sunk:#E8EAED; --ink:#1F2937; --muted:#6B7280; --line:#D9DDE3;
  --steel:#FFFFFF; --steel2:#EEF2F7; --on-steel:#1F2937;
  --accent:#1D5FB4; --accent-soft:#E6EEF9;
  --do:#1D5FB4; --empty:#0F766E; --inv:#B45309; --loaded:#15803D; --done:#4B5563; --tools:#6D28D9; --trucks:#0E7490; --trucks-soft:#DDF1F6;
  --do-soft:#E6EEF9; --empty-soft:#E0F2F0; --inv-soft:#FBEEDC; --loaded-soft:#E1F3E7; --done-soft:#E8EAED; --tools-soft:#EDE7FA;
  --ok:#15803D; --ok-soft:#E1F3E7; --warn:#B45309; --warn-soft:#FBEEDC; --bad:#B91C1C; --bad-soft:#FBE3E3;
  --fd:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; --fb:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; --fm:"Inter",system-ui,sans-serif;
  --shadow:0 10px 30px rgba(31,41,55,.15);
}
:root[data-theme="dark"]{
  --paper:#111827; --panel:#1F2937; --sunk:#273244; --ink:#E5E7EB; --muted:#9CA3AF; --line:#374151;
  --steel:#1F2937; --steel2:#273244; --on-steel:#E5E7EB; --accent:#60A5FA; --accent-soft:#1E3A5F;
  --do:#60A5FA; --empty:#2DD4BF; --inv:#F59E0B; --loaded:#4ADE80; --done:#9CA3AF; --tools:#A78BFA; --trucks:#22D3EE; --trucks-soft:#164E63;
  --do-soft:#1E3A5F; --empty-soft:#134E4A; --inv-soft:#3F2A0A; --loaded-soft:#14532D; --done-soft:#273244; --tools-soft:#2E1F5E;
  --ok:#4ADE80; --ok-soft:#14532D; --warn:#F59E0B; --warn-soft:#3F2A0A; --bad:#F87171; --bad-soft:#4A1D1D; --shadow:0 10px 30px rgba(0,0,0,.5);
}
*{box-sizing:border-box} [hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--fb);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-family:var(--fb);line-height:1.2;letter-spacing:-.01em;text-transform:none}
h1{font-size:24px;font-weight:700} h2{font-size:18px;font-weight:600} h3{font-size:15px;font-weight:600}
.eyebrow{font:600 11px/1 var(--fb);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.mono{font-family:var(--fm);font-weight:600} .muted{color:var(--muted)} .num{font-variant-numeric:tabular-nums}
/* ===== shell ===== */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
aside{background:var(--panel);color:var(--ink);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:1px solid var(--line)}
.brand{padding:20px 20px 14px;border-bottom:1px solid var(--line)}.brand h1{margin-top:4px;font-size:18px}
.nav{display:flex;flex-direction:column;padding:10px;gap:2px}
.nav button{display:grid;grid-template-columns:4px 1fr auto;gap:12px;align-items:center;text-align:left;background:transparent;border:0;border-radius:8px;padding:10px 12px 10px 8px;color:var(--ink);cursor:pointer}
.nav button b{display:block;font-size:14.5px;font-weight:600}
.nav button .cnt{font-size:12.5px;font-weight:600;background:var(--sunk);color:var(--muted);padding:3px 8px;border-radius:12px;min-width:30px;text-align:center}
.nav button.on{background:var(--accent-soft)}.nav button.on .cnt{background:var(--sc);color:#fff}.nav button:hover{background:var(--sunk)}.nav button.on:hover{background:var(--accent-soft)}.nav button:focus-visible{outline:2px solid var(--accent)}
.nav .sep{height:1px;background:var(--line);margin:8px 6px}
.aside-foot{margin-top:auto;padding:14px 18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:13px}
.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.live i{width:8px;height:8px;border-radius:50%;background:#9CA3AF}.live.on i{background:var(--ok)}.live.off i{background:var(--bad)}
main{min-width:0;padding:0 0 100px}
.sechead{padding:22px 32px 16px;border-bottom:1px solid var(--line);background:var(--panel);display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end}
.sechead h1{color:var(--ink)}.sechead p{margin:4px 0 0;color:var(--muted);max-width:60ch;font-size:14px}
.sechead .right{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.wrap{padding:20px 32px;display:flex;flex-direction:column;gap:20px}
.wrap.narrow{max-width:800px}
@media (max-width:900px){.shell{grid-template-columns:1fr}aside{position:sticky;height:auto;flex-direction:row;align-items:center;overflow-x:auto;scrollbar-width:none;z-index:20;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:10px 14px;border:0;flex:none}.brand h1{font-size:15px}.brand .eyebrow{display:none}.nav{flex-direction:row;padding:6px;gap:2px}.nav button{grid-template-columns:3px auto auto;padding:8px 10px;white-space:nowrap}.nav button b{font-size:13.5px}.nav .sep{display:none}.aside-foot{display:none}.sechead{padding:16px 16px 12px}.sechead h1{font-size:20px}.wrap{padding:16px}}
/* ===== components ===== */
.stats{display:flex;flex-wrap:wrap;gap:10px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 16px;display:flex;flex-direction:column;min-width:130px;cursor:pointer}
.stat b{font-size:26px;font-weight:700;line-height:1.1;color:var(--ink)}.stat span{font-size:12px;color:var(--muted);margin-top:4px}
.stat.bad b{color:var(--bad)}.stat.warn b{color:var(--warn)}
.stepper{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.stepper button{border:0;border-right:1px solid var(--line);background:transparent;padding:12px 14px;text-align:left;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;cursor:pointer}
.stepper button:last-child{border-right:0}.stepper button:hover{background:var(--sunk)}
.stepper .n{font-size:14px;font-weight:700;width:30px;height:30px;line-height:30px;border-radius:50%;background:var(--sc);color:#fff;text-align:center}
.stepper .t{font-size:13px;font-weight:500;line-height:1.25;color:var(--muted)}.stepper .t small{display:block;font-size:16px;font-weight:700;margin-top:2px;color:var(--ink)}
@media (max-width:900px){.stepper{grid-auto-flow:row;grid-template-columns:1fr 1fr}.stepper button{border-bottom:1px solid var(--line)}}
.lane{display:block;background:var(--panel);border:1px solid var(--line);border-left:5px solid var(--sc);border-radius:8px;overflow:hidden}
.lane summary{list-style:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px;cursor:pointer;user-select:none}
.lane summary::-webkit-details-marker{display:none}.lane summary:hover{background:var(--sunk)}.lane summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.lane .chev{width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;margin-right:2px;flex:none}.lane[open] .chev{transform:rotate(45deg)}
.lane .lt{font-size:16px;font-weight:600}.lane .cnt{font-size:12.5px;font-weight:600;background:var(--sc);color:#fff;padding:2px 9px;border-radius:12px}.lane .lh{color:var(--muted);font-size:13.5px;flex-basis:100%;padding-left:22px}
.lane-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.lane-h h2{color:var(--ink)}.lane-h .cnt{font-size:12.5px;font-weight:600;background:var(--sunk);color:var(--ink);padding:2px 9px;border-radius:12px}.lane-h p{margin:0;color:var(--muted);font-size:13.5px}
.abtn{padding:9px 14px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer;flex:1;min-width:130px}
.abtn.o{background:transparent;color:var(--accent)}.abtn:hover{filter:brightness(1.08)}.abtn:focus-visible{outline:2px solid var(--ink)}
.flag{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:12px;line-height:1.2}
.f-ok{background:var(--ok-soft);color:var(--ok)}.f-warn{background:var(--warn-soft);color:var(--warn)}.f-bad{background:var(--bad-soft);color:var(--bad)}.f-n{background:var(--sunk);color:var(--muted)}.f-i{background:var(--accent-soft);color:var(--accent)}
.empty{padding:22px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:8px}
.tb{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tb input,.tb select{padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:14px}.tb input{min-width:200px}
.btn{padding:9px 14px;border:1px solid var(--line);border-radius:6px;background:var(--panel);cursor:pointer;font-weight:500;white-space:nowrap;font-size:14px}.btn:hover{border-color:var(--accent)}.btn.p{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.btn.sm{padding:5px 10px;font-size:13px}.btn.d{color:var(--bad)}
.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* DO rows */
.dolist{display:flex;flex-direction:column;gap:8px}
.dorow{display:grid;grid-template-columns:150px 1.1fr 1fr 1.5fr auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 16px;cursor:pointer;text-align:left}
.dorow:hover{border-color:var(--accent)}.dorow .bk{font-size:15px;font-weight:700;color:var(--accent)}.dorow .bk small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}
.dorow .dk{font-size:13px;color:var(--muted);line-height:1.45}.dorow .kv b{color:var(--ink);font-weight:500}
.prog{display:flex;flex-direction:column;gap:4px}.prog .bar{height:8px;border-radius:4px;background:var(--sunk);display:flex;overflow:hidden}.prog .bar i{display:block;height:100%}.prog small{font-size:12px;color:var(--muted)}
@media (max-width:1100px){.dorow{grid-template-columns:1fr 1fr}.dorow>*:nth-child(4),.dorow>*:nth-child(5){grid-column:1/-1}}
/* tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th{position:sticky;top:0;background:var(--sunk);text-align:left;padding:11px 10px;font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;border-bottom:1px solid var(--line)}
td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}tr:last-child td{border-bottom:0} tbody tr.row{cursor:pointer}tbody tr.row:hover td{background:var(--sunk)} td.r,th.r{text-align:right}
/* forms (full page) */
.fhead{display:flex;gap:14px;align-items:center}.fhead .n{font-size:20px;font-weight:700;width:48px;height:48px;line-height:48px;border-radius:50%;background:var(--accent);color:#fff;text-align:center;flex:none}.fhead h2{font-size:22px}.fhead p{margin:4px 0 0;color:var(--muted)}
.ctx{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--sc);border-radius:8px;padding:12px 16px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline}.ctx .id{font-size:20px;font-weight:700}.ctx span{color:var(--muted);font-size:14px}
.gform{display:flex;flex-direction:column;gap:16px}
.gf{display:flex;flex-direction:column;gap:6px}.gf>label{font-size:14px;font-weight:600}.gf>label small{font-weight:400;color:var(--muted);display:block;font-size:13px}
.gf input,.gf select,.gf textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:18px;font-weight:500;color:var(--ink);width:100%}
.gf input.mono{font-weight:600;letter-spacing:.04em;text-transform:uppercase}.gf input.bad{border-color:var(--bad)}.gf .row{display:flex;gap:8px}.gf .row input{flex:1;min-width:0}
.choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.choice label{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:16px;font-weight:500;cursor:pointer;min-height:56px}
.choice input{position:absolute;opacity:0;pointer-events:none}.choice label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.choice label:has(input:focus-visible){outline:2px solid var(--accent)}
.gsub{border:1px dashed var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:14px;background:var(--sunk)}
.bar-fixed{position:fixed;left:0;right:0;bottom:0;background:var(--panel);border-top:1px solid var(--line);padding:10px 16px;z-index:15;padding-bottom:max(10px,env(safe-area-inset-bottom))}
.bar-fixed .in{max-width:800px;margin:0 auto;display:flex;gap:10px}
.bb{flex:1;padding:14px;border-radius:8px;border:1px solid var(--line);background:var(--panel);font-size:16px;font-weight:600;cursor:pointer;min-height:52px}.bb.p{background:var(--accent);border-color:var(--accent);color:#fff;flex:2}.bb:focus-visible{outline:2px solid var(--ink)}
.err{color:var(--bad);font-size:14px;font-weight:600;min-height:1.2em}
.note{border-left:4px solid var(--accent);background:var(--accent-soft);padding:12px 16px;border-radius:0 8px 8px 0;font-size:14px}
.note.warn{border-color:var(--warn);background:var(--warn-soft)}.note.bad{border-color:var(--bad);background:var(--bad-soft)}.note.ok{border-color:var(--ok);background:var(--ok-soft)}
/* box detail */
.pbar{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.pbar div{height:8px;border-radius:4px;background:var(--sunk)}.pbar div.done{background:var(--c)}.pbar div.cur{background:var(--c);opacity:.45}.pbar span{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 16px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.kv div b{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:2px}
.tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.tl li{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:7px 10px;border-radius:6px;font-size:14px}.tl li .n{font-size:12px;font-weight:700;text-align:center;border-radius:50%;color:#fff;background:var(--c);height:24px;line-height:24px;width:24px}.tl li.pend{color:var(--muted)}.tl li.pend .n{background:var(--sunk);color:var(--muted)}.tl li.cur{background:var(--accent-soft);font-weight:600}.tl li time{font-size:12.5px;color:var(--muted)}
.hist{margin:0;padding:0;list-style:none;font-size:13.5px}.hist li{display:grid;grid-template-columns:118px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.hist li span:first-child{color:var(--muted);font-size:12.5px}
.alist{display:flex;flex-direction:column;gap:6px}.al{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:8px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--ac,var(--line))}.al.bad{--ac:var(--bad)}.al.warn{--ac:var(--warn)}.al b{cursor:pointer}.al small{display:block;color:var(--muted)}
.set{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.set label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--muted)}.set input{padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:14px;font-weight:400;color:var(--ink)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.panel-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.subtabs{display:flex;gap:4px;flex-wrap:wrap}.subtabs button{padding:7px 14px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:14px;font-weight:500;cursor:pointer}.subtabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
#veil{position:fixed;inset:0;background:rgba(17,24,39,.45);z-index:30}#drawer{position:fixed;top:0;right:0;bottom:0;width:min(640px,100%);background:var(--panel);z-index:31;box-shadow:var(--shadow);display:flex;flex-direction:column}#drawer header{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}#drawer .body{padding:16px 18px;overflow:auto;flex:1}#drawer footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.form .full{grid-column:1/-1}.form label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--muted)}.form input,.form select,.form textarea{padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font-size:14px;font-weight:400;color:var(--ink);text-transform:none;letter-spacing:0}
#login{position:fixed;inset:0;background:var(--paper);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.lbox{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px;width:min(380px,100%);display:flex;flex-direction:column;gap:12px}.lbox label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}.lbox input{padding:12px;border:1px solid var(--line);border-radius:8px;font-size:17px;background:var(--paper);color:var(--ink)}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:8px;font-size:14px;z-index:40;box-shadow:var(--shadow);max-width:90vw}
@media (max-width:700px){.form{grid-template-columns:1fr}}
/* ===== inventory tracker ===== */
:root{--sc:var(--accent);--FACTORY:#B45309;--YARD:#0F766E}
.flags{display:flex;gap:6px;flex-wrap:wrap}.rem{font-size:13px;color:var(--muted)}
.set label:has(textarea){grid-column:span 2}.set textarea{padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:14px;font-weight:400;color:var(--ink)}
.kv{background:var(--paper)}a.btn{text-decoration:none;color:inherit;display:inline-block}
.bb:disabled{opacity:.6}
@media (max-width:900px){.tb input[type=search]{min-width:0;flex:1 1 100%}.abtn{min-width:110px}.bar-fixed .in{gap:6px}.bb{padding:12px 8px;font-size:15px}}
.gf input::placeholder{color:var(--muted);opacity:.55;font-weight:400;letter-spacing:0}
@media (min-width:901px){.bar-fixed{left:240px}}
.btn.off{opacity:.6;pointer-events:none}label.btn{display:inline-block}
.stocksec{display:flex;flex-direction:column;gap:10px}.stocksec .lane-h{padding-bottom:8px;border-bottom:1px solid var(--line)}
.bklist{display:flex;flex-direction:column;gap:8px}.bklist .lane{--sc:var(--accent)}.bklist .lane .lh{flex-basis:auto;padding-left:6px}.bklist .lane .lt{font-variant-numeric:tabular-nums}
.lbl{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.tb .lbl input{min-width:0}.chk{display:flex;align-items:center;gap:6px;font-size:13.5px;cursor:pointer}.chk input{min-width:0;width:16px;height:16px}
.lnk{background:none;border:0;padding:0 10px 0 0;color:var(--accent);font-weight:600;cursor:pointer;font-size:13px}.lnk:hover{text-decoration:underline}
/* ===== reports ===== */
.seg{display:inline-flex;background:var(--sunk);border-radius:8px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:transparent;padding:7px 13px;border-radius:6px;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--muted);white-space:nowrap}
.seg button:hover{color:var(--ink);background:var(--panel)}.seg button.on,.seg button.on:hover{background:var(--accent);color:#fff;font-weight:600}.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.rp-bar{display:flex;gap:14px 22px;flex-wrap:wrap;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.rp-field{display:flex;flex-direction:column;gap:8px}.rp-row{display:flex;gap:10px 14px;flex-wrap:wrap;align-items:center}.rp-sep{width:1px;background:var(--line)}
@media (max-width:900px){.rp-sep{display:none}}
.rp-dates{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.rp-dates input{padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:14px}
.rp-range{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink)}.rp-range svg{color:var(--muted)}.rp-range small{font-size:12.5px;font-weight:500;color:var(--muted)}
.rp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media (max-width:1500px){.rp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.rp-grid{grid-template-columns:1fr}}
.rp-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:16px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.rp-card:hover{border-color:var(--accent)}.rp-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 6px 18px rgba(29,95,180,.10)}
.rp-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.rp-title{flex-basis:100%}.rp-head h2{font-size:16.5px}.rp-head p{margin:3px 0 0;font-size:13px;color:var(--muted);line-height:1.4}
.rp-ico{width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}
.rp-tag{margin-left:auto;font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:12px;background:var(--sunk);color:var(--muted);white-space:nowrap}
.rp-kpis{display:flex;gap:6px 22px;flex-wrap:wrap;align-items:flex-end}.rp-kpis b{display:block;font-size:24px;font-weight:700;line-height:1.05}.rp-kpis div:first-child b{font-size:38px;letter-spacing:-.02em}
.rp-kpis span{font-size:12px;color:var(--muted)}.rp-kpis .bad b{color:var(--bad)}
.rp-viz{min-height:86px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px}
.rp-chart{display:flex;align-items:flex-end;gap:4px;height:64px;border-bottom:1px solid var(--line)}
.rp-chart.few i{max-width:72px}.rp-chart i{flex:1;background:var(--accent);border-radius:4px 4px 0 0;position:relative;display:block}.rp-chart i.zero{background:var(--sunk)}
.rp-chart em{position:absolute;top:-17px;left:0;right:0;text-align:center;font-style:normal;font-size:11.5px;font-weight:600;color:var(--ink)}
.rp-axis{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted)}
.rp-split{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--sunk)}.rp-split i{display:block;height:100%}
.rp-legend{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.rp-legend span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--c);margin-right:6px}
.rp-dl{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:8px;background:var(--accent);color:#fff;font-weight:600;text-decoration:none;font-size:15px;margin-top:auto}
.rp-dl:hover{filter:brightness(1.08)}.rp-dl:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.rp-file{font-size:12px;color:var(--muted);text-align:center;margin-top:-8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-prev{max-height:460px;overflow:auto}
@media (max-width:1150px){.rp-viz{min-height:0}.rp-chart{margin-top:14px}}
/* ===== import ===== */
table.imp td:first-child,table.imp th:first-child{width:34px;text-align:center}table.imp input{width:16px;height:16px}
table.imp tr.picked td{background:var(--accent-soft)}table.imp tbody tr.row.picked:hover td{background:var(--accent-soft)}
/* ===== data entry: finder, selection, tables ===== */
.finder{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 10px}.finder:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.finder input{flex:1;min-width:0;border:0;background:transparent;font-size:17px;padding:8px 6px;outline:none}
.finder kbd{font:600 12px var(--fb);color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:2px 7px;background:var(--paper)}
.pick{width:18px;height:18px;cursor:pointer;accent-color:var(--accent);flex:none}
.lane summary .selall{margin-left:auto}.lane summary .lh{flex-basis:auto}
.wrap.haspick{padding-bottom:90px}
.pickbar .in{max-width:1000px;align-items:center;flex-wrap:wrap}.pickbar .pickn{font-size:15px;padding:0 6px;white-space:nowrap}.pickbar .bb{flex:1 1 auto;min-height:46px;padding:10px 14px;font-size:15px}.pickbar .bb.p{flex:1 1 auto}
#toast{display:flex;align-items:center;gap:14px}#toast button{background:transparent;border:1px solid currentColor;color:inherit;border-radius:6px;padding:5px 12px;font-weight:600;cursor:pointer;font-size:13.5px}
.form .note{font-size:12.5px;font-weight:400;padding:7px 9px;margin-top:2px;color:var(--ink)}.gf .note{font-size:13.5px}
.gridwrap{max-height:calc(100vh - 330px);min-height:220px;overflow:auto}
table.grid{border-collapse:separate;border-spacing:0}table.grid th{position:sticky;top:0;z-index:2}
table.grid td{padding:0;border-right:1px solid var(--line);vertical-align:middle}table.grid td.ro{padding:8px 10px;background:var(--paper);white-space:nowrap}table.grid td.rn{background:transparent;border-right:0;white-space:normal;min-width:120px}
table.grid input,table.grid select{width:100%;border:0;background:transparent;padding:9px 10px;font-size:14px;outline:none;border-radius:0;min-width:0}
table.grid input:focus,table.grid select:focus{box-shadow:inset 0 0 0 2px var(--accent);background:var(--panel)}
table.grid td.need{background:var(--bad-soft)}table.grid td.dirty{background:var(--accent-soft)}table.grid td.warn{background:var(--warn-soft)}
table.grid td:first-child,table.grid th:first-child{position:sticky;left:0;z-index:1}table.grid th:first-child{z-index:3}
/* ===== visual pass: state-coloured compact cards, pipeline, calmer red, icons, phone menu, skeleton, print ===== */
.ico{flex:none;vertical-align:-3px}.btn .ico{margin-right:6px}.btn.p .ico{vertical-align:-3px}
.facts{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:13px;color:var(--muted);line-height:1.5}.facts b{color:var(--ink);font-weight:500}.facts .where{font-weight:600;color:var(--ink)}
.age{border-radius:10px}.age.warn,.age.bad{padding:0 8px}.age.warn{background:var(--warn-soft);color:var(--warn)}.age.bad{background:var(--bad-soft);color:var(--bad)}.age.warn b,.age.bad b{color:inherit;font-weight:700}
.dotflag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.dotflag i{width:7px;height:7px;border-radius:50%;background:var(--bad);display:inline-block;flex:none}
.more{display:flex;gap:4px 14px;flex-wrap:wrap;margin-left:auto}.more button{background:none;border:0;padding:2px 0;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer}.more button:hover{text-decoration:underline}
.lane summary .lh{flex-basis:auto;padding-left:4px}
/* pipeline */
.pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.stage{position:relative;text-align:left;border:0;border-right:1px solid var(--line);background:var(--panel);padding:14px 14px 14px 24px;cursor:pointer;display:flex;flex-direction:column;gap:3px;font:inherit;color:inherit;min-width:0}
.stage:first-child{padding-left:16px}.stage:last-child{border-right:0}
.stage::after{content:"";position:absolute;right:-7px;top:50%;width:12px;height:12px;background:inherit;border-top:1px solid var(--line);border-right:1px solid var(--line);transform:translateY(-50%) rotate(45deg);z-index:1}.stage:last-child::after{display:none}
.stage .st{font-size:12.5px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:7px;white-space:nowrap}.stage .st::before{content:"";width:8px;height:8px;border-radius:50%;background:#9CA3AF;flex:none}
.s-ready .st::before{background:var(--accent)}.s-loaded .st::before{background:var(--ok)}.s-out .st::before{background:transparent;border:2px solid var(--muted);width:4px;height:4px}
.stage>b{font-size:32px;font-weight:700;line-height:1.1;letter-spacing:-.02em}
.stage small{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 10px;align-items:center}.stage small b.bad{color:var(--bad);font-weight:600}
.stage:hover{background:var(--sunk)}.stage.on,.stage.on:hover{background:var(--accent-soft)}.stage.on .st{color:var(--accent)}.stage:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.caps{display:flex;gap:8px 24px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}
.sortby{margin-left:auto;display:inline-flex;gap:8px;align-items:center}.sortby select{padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font-size:13.5px}
/* menu: icons on the desktop, five icon tabs on a narrow screen */
.nav button{grid-template-columns:22px 1fr auto}.nico{display:grid;place-items:center;color:var(--muted)}.nav button.on .nico{color:var(--accent)}.nav button em{display:none;font-style:normal}.brand-out{display:none}.brand>div{cursor:pointer}
@media (max-width:900px){
  aside{flex-direction:column;align-items:stretch;overflow:visible}
  .brand{display:flex;justify-content:space-between;align-items:center;padding:8px 14px 2px}.brand-out{display:inline-block}
  .nav{display:grid;grid-template-columns:repeat(5,1fr);padding:2px 6px 6px;gap:2px}
  .nav button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;position:relative;white-space:normal;grid-template-columns:none}
  .nav button b{display:none}.nav button em{display:block;font-size:11.5px;font-weight:600}
  .nav button .cnt{position:absolute;top:2px;left:55%;font-size:10.5px;padding:1px 6px;min-width:0}
  .pipe{grid-template-columns:repeat(2,minmax(0,1fr))}.stage{padding-left:16px;border-bottom:1px solid var(--line)}.stage::after{display:none}.stage:nth-child(2n){border-right:0}.s-out{grid-column:1/-1;border-bottom:0}
  .sortby{margin-left:0}
}
/* placeholders while the data loads */
.skel{border-radius:10px;background:linear-gradient(90deg,var(--sunk) 25%,var(--panel) 50%,var(--sunk) 75%);background-size:200% 100%;animation:sk 1.3s linear infinite}
.skel.bar{height:54px}.skel.strip{height:98px}@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}
/* printing the gate register */
@media print{aside,.sechead .right,.tb,.bar-fixed,#toast,.finder,#dwrap{display:none!important}.shell{display:block}main{padding:0}body{background:#fff}.wrap{padding:8px 0;gap:12px}.tw{border:0;overflow:visible}.sechead{border:0;padding:0 0 8px}th{position:static;background:none;border-bottom:1.5px solid #000}td{white-space:normal}}
.facts .tag{font-size:11.5px;font-weight:600;padding:1px 8px;border-radius:10px;background:var(--sunk);color:var(--muted)}
/* ===== masters ===== */
.tb .tbr{margin-left:auto;display:inline-flex;gap:8px;flex-wrap:wrap}.lnk:disabled{color:var(--muted);cursor:default;text-decoration:none}
@media (max-width:900px){.nav{grid-template-columns:repeat(6,1fr)}.nav button em{font-size:10.5px}.tb .tbr{margin-left:0}}
/* Masters dropdown in the menu */
.navchev{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;margin-right:6px}.navchev.open{transform:rotate(45deg)}
.subnav{display:flex;flex-direction:column;gap:1px;margin:0 0 4px 22px;padding-left:10px;border-left:1px solid var(--line)}
.nav .subnav button{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;font-weight:500;color:var(--ink);border-radius:6px}
.nav .subnav button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav .subnav button .cnt{font-size:11.5px;padding:2px 7px;min-width:0}.nav .subnav button.on .cnt{background:var(--accent);color:#fff}
.only-narrow{display:none}
@media (max-width:900px){.subnav,.navchev{display:none}.only-narrow{display:inline-flex}}
.brand-out{gap:6px}@media (max-width:900px){.brand-out{display:inline-flex}}
#login .lbox .bb{margin-top:2px}
.caps>span:first-child{font-size:13px}
/* stage tiles of one place: 4 tiles at OWS Yard (nothing is loaded there), 5 at LG Factory */
.pipe.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.s-in .st::before{background:transparent;border:2px solid var(--muted);width:4px;height:4px}
.caps>span:first-child b{color:var(--ink);font-weight:600}
@media (max-width:900px){.pipe.n4{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---- v3 look: user menu, place tabs joined to the stage tiles, one line per container. No extra fonts or images. */
:root{--fmono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono","Roboto Mono",Menlo,Consolas,monospace}
.cno{font-family:var(--fmono);font-size:.95em;font-weight:400;color:var(--muted);white-space:nowrap;letter-spacing:.01em}.cno b{color:var(--ink);font-weight:700}
.nav button{min-height:44px}.aside-foot{padding:12px 18px}
.sechead{flex-wrap:nowrap;align-items:flex-start}.sechead>div:first-child{flex:1 1 auto;min-width:0}.sechead .right{flex:none;max-width:70%;justify-content:flex-end}
.umenu{position:relative}
.ubtn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 8px 0 6px;border:1px solid var(--line);border-radius:20px;background:var(--panel);cursor:pointer;font:inherit;color:inherit}.ubtn:hover{border-color:var(--accent)}.ubtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.uav{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;display:grid;place-items:center;flex:none}
.uname{font-size:14px;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ubtn .navchev{margin:0 6px 4px 2px}
.upop{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:30;display:flex;flex-direction:column}
.uwho{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.uwho b{display:block}.uwho span{font-size:12.5px;color:var(--muted)}
.upop button{text-align:left;border:0;background:transparent;padding:0 10px;min-height:44px;border-radius:6px;font:inherit;font-size:14px;color:inherit;cursor:pointer}.upop button:hover{background:var(--sunk)}
.upop .live{padding:10px 10px 4px;border-top:1px solid var(--line);margin-top:4px}
.locpanel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ptabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.ptab{display:flex;flex-direction:column;gap:7px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--panel);border:0;border-top:3px solid transparent;border-bottom:1px solid var(--line);padding:13px 18px 15px;min-width:0}
.ptab+.ptab{border-left:1px solid var(--line)}.ptab.on{border-top-color:var(--accent);border-bottom-color:transparent}.ptab.off{background:var(--paper)}
.ptab:hover{background:var(--sunk)}.ptab.on:hover{background:var(--panel)}.ptab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ph{display:flex;justify-content:space-between;align-items:center;gap:6px 8px;flex-wrap:wrap;font-size:14px;font-weight:600}
.pn{font-size:14px;color:var(--muted)}.pn b{font-size:32px;font-weight:700;line-height:1;letter-spacing:-.02em;color:var(--ink);margin-right:6px}
.ptrack{display:block;height:6px;background:var(--sunk);border-radius:3px;overflow:hidden}.ptrack i{display:block;height:100%;background:#9CA3AF}.ptrack i.warn{background:var(--warn)}.ptrack i.bad{background:var(--bad)}
.psub{font-size:12.5px;color:var(--muted)}
.locpanel .pipe{border:0;border-radius:0}
.bklist{gap:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.bklist .lane{border:0;border-radius:0;border-top:1px solid var(--line)}.bklist .lane:first-child{border-top:0}
.bklist .lane summary{padding:9px 16px;min-height:44px}.bklist .lane[open]>summary{background:var(--paper)}
.bklist .lane .lt{font-family:var(--fmono);font-size:15px}.bklist .lane .cnt{background:var(--sunk);color:var(--ink)}
.bklist .lane.needs>summary{background:var(--bad-soft)}.bklist .lane.needs>summary .f-bad{background:var(--panel)}
.lmix{font-size:13px;color:var(--muted);white-space:nowrap}
.rows{display:flex;flex-direction:column}.rows.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.rows.panel .crow:first-child{border-top:0}
.crow{display:grid;grid-template-columns:20px 122px 122px minmax(0,1fr) auto auto;align-items:center;gap:6px 12px;padding:8px 16px;min-height:56px;border-top:1px solid var(--line)}
.cid{display:contents}.crow .plate{background:none;border:0;padding:6px 0;cursor:pointer;text-align:left;font-size:15.5px}.crow .plate:hover b{text-decoration:underline}
.crow.needs{background:var(--bad-soft)}.crow.needs .f-bad{background:var(--panel)}.crow.picked{background:var(--accent-soft)}
.crow .facts{align-items:center}.crow .more{flex-wrap:nowrap;margin-left:0}.crow .more button{white-space:nowrap;min-height:32px}
.crow .abtn{flex:none;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;min-height:40px;font-size:13.5px;white-space:nowrap}.cact{display:flex;justify-content:flex-end;min-width:104px}.cact .abtn{width:100%}
.need{font:inherit;font-size:12px;font-weight:600;line-height:1.3;color:var(--bad);background:var(--panel);border:1px dashed var(--bad);border-radius:6px;padding:2px 8px;cursor:pointer;white-space:nowrap}.need:hover{border-style:solid}
.facts .rem{font-style:italic}.age.bad{background:var(--warn-soft);color:var(--warn)}
.gatebar{display:none}.gatebar .bb.p{display:inline-flex;align-items:center;justify-content:center;gap:8px}
@media (max-width:1440px){.crow{grid-template-columns:20px 122px 122px minmax(0,1fr) auto}.crow .more{grid-column:4;grid-row:2;flex-wrap:wrap}.crow .cact{grid-column:5;grid-row:1}}
@media (max-width:900px){
  .sechead{flex-wrap:wrap}.sechead .right{max-width:none;justify-content:flex-start}
  .sechead .umenu,.not-narrow{display:none}.uname{max-width:110px}.ubtn{height:36px}.uav{width:24px;height:24px}
  .gatebar{display:block}
  .ptab{padding:10px 12px 12px}.pn b{font-size:26px}
  .locpanel .pipe{display:flex;gap:8px;overflow-x:auto;padding:10px 12px;scrollbar-width:none}
  .locpanel .stage{flex:none;flex-direction:row;align-items:center;gap:8px;border:1px solid var(--line);border-radius:22px;min-height:44px;padding:0 14px}
  .locpanel .stage::after{display:none}.locpanel .stage>b{font-size:15px}.locpanel .stage small{display:none}.locpanel .stage.on{border-color:var(--accent)}
  .lmix{display:none}
}
@media (max-width:700px){
  .crow{grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"pick cid act" "pick facts facts" "pick more more";padding:10px 12px}
  .crow .pick{grid-area:pick;align-self:start;margin-top:9px}.cid{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;grid-area:cid}.crow .facts{grid-area:facts}
  .crow .more{grid-area:more}.crow .more:empty{display:none}.crow .cact{grid-area:act;min-width:0;align-self:start}.crow .abtn{min-height:44px}.crow .more button{min-height:40px}
}
td.wrapc{white-space:normal;min-width:150px;max-width:260px}
/* ---- dashboard */
.dash{gap:16px}
.dkpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.dkpi{display:flex;flex-direction:column;gap:4px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.dkpi:hover{border-color:var(--accent)}.dkpi:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dk-t{font-size:13px;font-weight:600;color:var(--muted)}.dkpi b{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.02em}.dk-s{font-size:12.5px;color:var(--muted)}
.dkpi.warn b{color:var(--warn)}.dkpi.bad b{color:var(--bad)}
.dplaces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dplace{display:flex;flex-direction:column;gap:8px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px 16px;min-width:0}.dplace:hover{border-color:var(--accent)}
.dstack{display:flex;height:10px;border-radius:5px;background:var(--sunk);overflow:hidden;flex:1;min-width:40px}.dstack i{display:block;height:100%}
.p0{background:#9CA3AF}.p1{background:var(--accent)}.p2{background:var(--ok)}
.dleg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted)}.dleg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:0}
.dpanel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.dp-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.dp-h h2{font-size:16px}.dp-h .muted{font-size:12.5px}
.dchart{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;height:150px;align-items:end}
.dday{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}.dday>span{font-size:11.5px;color:var(--muted)}.dday.now>span{color:var(--ink);font-weight:700}
.dbars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px;border-bottom:1px solid var(--line)}.dbars i{display:block;width:30%;max-width:12px;border-radius:2px 2px 0 0;min-height:0}
.bi{background:#9CA3AF}.bl{background:var(--ok)}.bo{background:var(--accent)}
.dnote{margin:0;font-size:12px;color:var(--muted)}
.dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dlist{display:flex;flex-direction:column;margin:0 -16px}
.drow{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:4px 12px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:none;border:0;border-top:1px solid var(--line);padding:9px 16px;min-height:48px}.drow:hover{background:var(--sunk)}
.dr-a{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.dr-b{display:flex;flex-direction:column;min-width:0}.dr-b small,.dr-c small{font-size:12.5px;color:var(--muted)}.dr-b .mono{font-size:14px}
.dr-c{display:flex;flex-direction:column;align-items:flex-end;font-size:13px;text-align:right}.dbad{color:var(--bad)!important;font-weight:600}
.dlines{display:flex;flex-direction:column;gap:2px}
.dline{display:grid;grid-template-columns:minmax(90px,170px) minmax(0,1fr) 34px;align-items:center;gap:12px;font:inherit;color:inherit;background:none;border:0;border-radius:6px;padding:7px 6px;cursor:pointer;text-align:left}.dline:hover{background:var(--sunk)}
.dl-n{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dline b{text-align:right}
@media (max-width:1150px){.dkpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dgrid{grid-template-columns:1fr}}
@media (max-width:900px){
  .nav .k-imp{display:none}
  .dkpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dkpis .dkpi:first-child{grid-column:1/-1}.dplaces{grid-template-columns:1fr}
  .dchart{gap:3px;height:120px}.dday>span{font-size:10px}.drow{grid-template-columns:78px minmax(0,1fr) auto}
}
.dplace .dstack{flex:none;width:100%}.dr-a .flag{white-space:nowrap}.drow{grid-template-columns:118px minmax(0,1fr) auto}
@media (max-width:900px){.drow{grid-template-columns:96px minmax(0,1fr) auto}}
.gpsw{display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none}.gpsw:hover span{text-decoration:underline}.gpsw small{font-size:12px;color:var(--muted)}.gpsw small.old{color:var(--warn)}
.panel-h .tbr{display:flex;gap:8px;margin-left:auto}
td small.sub{display:block;font-size:12px;color:var(--muted)}
.gpsw .flag{align-self:flex-start}
/* ---- the view-only page for LG (/view) */
.vw{max-width:1440px;margin:0 auto;padding:20px 28px 40px;display:flex;flex-direction:column;gap:16px}
.vw-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 24px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}
.vw-h h1{font-size:26px;margin-top:4px}.vw-h p{margin:4px 0 0;color:var(--muted);font-size:14px}
.vw-by{font-size:12.5px;color:var(--muted);text-align:right;line-height:1.4}.vw-by b{color:var(--ink);font-weight:600}
.vw-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.dkpi.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.vw-tabs{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.vw-tabs input[type=search]{flex:1 1 240px;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;font-size:14px}
.vw-tabs select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;font-size:14px;color:inherit}
.vw .tw{max-height:none}.vw table td{vertical-align:middle}
.vw-note{margin:0;font-size:12.5px;color:var(--muted)}
.vw-f{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
@media (max-width:1150px){.vw-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.vw{padding:14px 16px 32px}.vw-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.vw-by{text-align:left}.vw-tabs .seg{width:100%;overflow-x:auto}}
label.inl{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}label.inl select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font:inherit;font-size:13px;color:var(--ink)}
.vw td.wrapc{min-width:140px;max-width:220px}.vw td.nw{white-space:nowrap}.vw-dl{margin-left:auto}
.vw table th,.vw table td{padding-left:10px;padding-right:10px}
.vw td.nw{white-space:normal;min-width:76px}.vw td.nw .flag{display:table;margin-top:3px;white-space:nowrap}
.vw table th,.vw table td{padding-left:8px;padding-right:8px}
@media (max-width:900px){.vw-kpis .dkpi:first-child{grid-column:auto}}
.newver{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:8px 16px;background:var(--accent-soft);border-bottom:1px solid var(--accent);font-size:14px;font-weight:500}
/* the two places on the LG page */
.vw-places{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.7fr);gap:12px}
.vw-place{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px;display:flex;flex-direction:column;gap:2px;min-width:0}.vw-place.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.vp-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font:inherit;color:inherit;background:none;border:0;border-radius:8px;padding:8px 10px 10px;cursor:pointer;text-align:left}.vp-h:hover{background:var(--sunk)}
.vp-h span{font-size:16px;font-weight:700}.vp-h b{font-size:32px;font-weight:700;line-height:1;letter-spacing:-.02em}
.vp-r{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;font:inherit;font-size:14px;color:inherit;background:none;border:0;border-top:1px solid var(--line);padding:9px 10px;cursor:pointer;text-align:left;min-height:42px}.vp-r:hover{background:var(--sunk)}
.vp-r.on{background:var(--accent-soft);border-radius:6px}.vp-r b{font-size:17px;font-variant-numeric:tabular-nums}
.vd{width:9px;height:9px;border-radius:50%;background:#9CA3AF}.vd.ok{background:var(--ok)}.vd.i{background:var(--accent)}
.vw-out p{margin:0;padding:0 10px;font-size:13px;color:var(--muted)}.vw-out .lnk{align-self:flex-start;margin:6px 10px 8px}
.vw-sec{display:flex;flex-direction:column;gap:8px}.vw-sh{display:flex;align-items:baseline;gap:10px}.vw-sh h2{font-size:18px}.vw-sh .cnt{font-size:12.5px;font-weight:600;background:var(--sunk);padding:2px 9px;border-radius:12px}
@media (max-width:900px){.vw-places{grid-template-columns:1fr}}
/* three places: LG Factory, OWS Yard, LG CDC Warehouse */
.ptabs{grid-template-columns:repeat(3,minmax(0,1fr))}.pipe.n6{grid-template-columns:repeat(6,minmax(0,1fr))}
.dplaces{grid-template-columns:repeat(3,minmax(0,1fr))}.vw-places{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.8fr)}
@media (max-width:1150px){.vw-places{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.dplaces,.vw-places{grid-template-columns:1fr}.ptab .psub{display:none}.ptab .ph{font-size:12.5px}}
.s-cdc .st::before{background:var(--tools)}
/* trips */
.tbox{display:block;white-space:nowrap}.tbox+.tbox{margin-top:4px}.tact{white-space:nowrap;text-align:right}.tact .btn+.btn{margin-left:6px}
.s-road .st::before{background:var(--accent)}.s-at .st::before{background:var(--warn)}.s-done .st::before{background:var(--ok)}.s-free .st::before{background:transparent;border:2px solid var(--muted);width:4px;height:4px}
@media (max-width:900px){.nav .k-set{display:none}}
/* trips on a phone: one card per vehicle, the two buttons full width */
@media (max-width:700px){
  .ttrip thead{display:none}.ttrip,.ttrip tbody{display:block}
  .ttrip tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 12px;padding:12px 14px;border-top:1px solid var(--line)}.ttrip tr:first-child{border-top:0}
  .ttrip td{display:block;border:0!important;padding:0!important;white-space:normal;font-size:13.5px}
  .ttrip td.tact{grid-column:1/-1;display:flex;gap:8px;text-align:left}.ttrip td.tact .btn{flex:1;min-height:44px;margin:0!important}
  .ttrip td.wrapc{grid-column:1/-1;max-width:none}
}
/* OWS Yard: import reuse and fresh pickup */
.bkpart{display:flex;flex-direction:column;gap:8px}.bkpart+.bkpart{margin-top:10px}
.bkpart-h{display:flex;align-items:baseline;gap:10px}.bkpart-h h3{font-size:15px;margin:0}.bkpart-h .cnt{font-size:12.5px;font-weight:600;background:var(--sunk);padding:2px 9px;border-radius:12px}
.bkpart-empty{padding:12px 16px;background:var(--panel);border:1px dashed var(--line);border-radius:10px;font-size:13.5px;color:var(--muted)}
.s-psent .st::before{background:transparent;border:2px solid var(--accent);width:4px;height:4px}.s-ppicked .st::before{background:var(--tools)}
@media (max-width:900px){.pipe.n6{grid-template-columns:repeat(2,minmax(0,1fr))}.pipe.n6 .s-out,.pipe.n6 .s-free{grid-column:auto}}
.pipe.n6 .stage .st{white-space:normal;line-height:1.25}
.pipe.n7{grid-template-columns:repeat(7,minmax(0,1fr))}.pipe.n7 .stage .st{white-space:normal;line-height:1.25}.s-dos .st::before{background:var(--ink)}
@media (max-width:900px){.pipe.n7{grid-template-columns:repeat(2,minmax(0,1fr))}.pipe.n7 .s-dos{grid-column:1/-1}}
.okc{color:var(--ok)}.tdo td{vertical-align:top}
/* a DO's containers, under its booking no. */
.dotog{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:4px 0;font:inherit;color:inherit;cursor:pointer;min-height:32px}.dotog:hover .mono{text-decoration:underline}
.dotog .chev{width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;flex:none}.dotog .chev.up{transform:rotate(45deg)}
.dotog .cnt{font-size:11.5px;font-weight:600;background:var(--sunk);padding:1px 7px;border-radius:10px}
tr.doopen > td{background:var(--paper)}tr.dosub > td{background:var(--paper);padding:0 16px 14px 28px!important}table.dobox td{background:var(--panel)}
table.dobox{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel);border-collapse:separate;border-spacing:0;overflow:hidden}
table.dobox th{background:var(--sunk);font-size:13px}table.dobox td,table.dobox th{padding:7px 10px!important;font-size:13px}
@media (max-width:700px){.ttrip tr.dosub{display:block;padding:0 0 12px}.ttrip tr.dosub td{padding:0 12px!important}
  table.dobox thead{display:none}table.dobox,table.dobox tbody{display:block}table.dobox tr{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;padding:8px 10px;border-top:1px solid var(--line)}table.dobox td{display:block;padding:0!important;border:0!important}}
@media (max-width:700px){.ttrip tr.doopen{background:var(--paper)}.ttrip tr.doopen > td{background:none}table.dobox td[data-l]::before{content:attr(data-l) ' ';color:var(--muted);font-family:var(--fb);font-weight:400}}
@media (max-width:900px){.sechead .right{flex:1 1 100%;flex-wrap:wrap}}
/* Trips: inward and outward legs on their own tabs */
.legtabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:var(--sunk);border-radius:12px;padding:4px}
.legtab{display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:var(--muted);background:transparent;border:0;border-radius:9px;padding:10px 16px;cursor:pointer;min-height:56px}
.legtab:hover{color:var(--ink)}.legtab.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(17,24,39,.12)}.legtab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.lt-t{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}.lt-t .cnt{font-size:12px;font-weight:600;background:var(--accent);color:#fff;padding:1px 8px;border-radius:10px}.lt-s{font-size:13px}
.pipe.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.pipe.n4 .stage .st,.pipe.n3 .stage .st{white-space:normal;line-height:1.25}
@media (max-width:900px){.pipe.n3{grid-template-columns:1fr}.pipe.n3 .stage{border-right:0;border-bottom:1px solid var(--line)}.pipe.n3 .stage:last-child{border-bottom:0}}
/* allocate a vehicle by typing it in the DO's row */
.allocbox{display:flex;flex-direction:column;align-items:flex-end;gap:4px;width:230px}
.ab-row{display:flex;gap:6px;width:100%}.ab-row input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;font-family:var(--fmono);font-size:14px;text-transform:uppercase;color:var(--ink)}
.ab-row input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.ab-row .btn{flex:none}
.ab-err{color:var(--bad);font-size:12.5px;text-align:left;width:100%;white-space:normal}
.ab-mkt{display:flex;flex-wrap:wrap;gap:6px;width:100%}.ab-mkt small{flex:1 1 100%;font-size:12px;white-space:normal;color:var(--warn,#b45309);text-align:left}.ab-mkt input{flex:1 1 45%;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;font-size:14px;color:var(--ink)}
.sub.mkt{color:var(--warn,#b45309)}.mkt-add{display:block;margin:4px 0 2px}
@media (max-width:700px){.ab-mkt input{min-height:44px;font-size:16px}}
@media (max-width:700px){.allocbox{min-width:0;width:100%;align-items:stretch}.ab-row input{min-height:44px;font-size:16px}.ab-row .btn{min-height:44px}.ab-err{text-align:left}}
/* stage 2: container, seal and LR typed in the vehicle's row */
.pickbox{width:auto}.pickbox .ab-row input{flex:none}.ab-hint{font-size:12px;color:var(--muted)}.pb-cancel{display:block;margin:4px 0 0 auto;font-size:12.5px}
@media (max-width:700px){.pickbox .ab-row{flex-wrap:wrap}.pickbox .ab-row input{flex:1 1 40%;width:auto!important}.pickbox .ab-row .btn{flex:1 1 100%}.pb-cancel{margin:6px 0 0}}
.tpick td.pbcell{white-space:normal}.pbact{display:flex;justify-content:flex-end;align-items:flex-start;gap:8px;flex-wrap:wrap}.pbact.col{flex-direction:column;align-items:flex-end;gap:2px}
.pbact .pickbox .ab-row input{flex:0 0 124px;width:auto!important}.pbact .pickbox .ab-err,.pbact .pickbox .ab-hint{text-align:right}.pbact .pb-cancel{margin:2px 0 0}
@media (max-width:700px){.pbact,.pbact.col{width:100%;align-items:stretch}.pbact .pickbox{width:100%}.pbact .pickbox .ab-row input{flex:1 1 40%}.pbact .pickbox .ab-err,.pbact .pickbox .ab-hint{text-align:left}.pbact .pb-cancel{align-self:flex-start;margin-top:6px}}
tr.pgrp > td{background:var(--paper);padding:6px 16px!important;white-space:normal}.pg-meta{color:var(--muted);font-size:13px;margin-left:10px}
@media (max-width:700px){.ttrip tr.pgrp{display:block;padding:8px 14px;background:var(--paper)}.ttrip tr.pgrp > td{padding:0!important;background:none}.pg-meta{display:block;margin:0}}
.grpbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.gb-btns{display:flex;gap:8px}
/* stages 2 and 3: columns sit next to each other under their headings; the next-step boxes fill the right side */
@media (min-width:701px){.tpick th,.tpick td{padding-left:16px;padding-right:16px}.tpick th:first-child{width:200px}.tpick td:first-child{white-space:normal}.tpick th:last-child{width:100%;text-align:right}.tpick td.tact{vertical-align:top}}
/* step 1: the two DO tables line up */
@media (min-width:701px){.tdo th:nth-child(1){width:220px}.tdo th:nth-child(2){width:190px}.tdo th:nth-child(3){width:260px}.tdo th:nth-child(5){text-align:right}}
.bkpart-h .gb-btns{margin-left:auto;align-self:center}.bkpart-h{flex-wrap:wrap}
.fl-h{font-size:14px;margin:16px 0 8px}.fl-h .muted{font-weight:400;font-size:12.5px}
/* gate in: vehicles on their way from the empty yard */
.cm-list{display:flex;flex-direction:column;gap:6px}.cm-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:4px 12px;align-items:center;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;color:inherit;cursor:pointer;min-height:48px}
.cm-item:hover{border-color:var(--accent)}.cm-item.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.cm-item.nolr{background:var(--paper)}
.cm-item small{display:block;color:var(--muted);font-size:12.5px}.cm-v b{font-size:14.5px}
@media (max-width:700px){.cm-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cm-l{grid-column:1/-1}}
.flwarn{display:block;color:var(--bad);font-size:12.5px;font-weight:600;white-space:normal;min-width:220px;max-width:340px}.flwait{display:inline-flex;align-items:center;gap:10px}
.cm-w{grid-column:1/-1;color:var(--bad);font-size:12.5px;font-weight:600}
.pb-lrbox{display:inline-flex;align-items:center;gap:6px;flex:0 0 142px;padding:9px 10px;border:1px dashed var(--line);border-radius:8px;background:var(--sunk);color:var(--muted);font-family:var(--fmono);font-size:13.5px;white-space:nowrap;overflow:hidden}
.pb-lrbox.has{border-style:solid;color:var(--ink)}.pb-lrbox b{font-family:var(--fb);font-size:11px;font-weight:600;color:var(--muted)}
@media (max-width:700px){.pb-lrbox{flex:1 1 100%;min-height:44px}}
/* gate in for the operator: their gate, then one tap per arriving vehicle */
.gate-at{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.gate-at>span{font-weight:600}.seg3{display:flex;gap:6px;flex-wrap:wrap}
.segb{padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:inherit;font-weight:500;cursor:pointer;min-height:44px}.segb.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.coming .cm-item{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.1fr) auto;cursor:default}.coming .cm-item:hover{border-color:var(--line)}
.cm-a{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.cm-a .lnk{font-size:12.5px}.cm-a .btn{min-height:40px}
.manual-in{align-self:flex-start}
@media (max-width:700px){.coming .cm-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cm-a{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.cm-a .btn{flex:1;min-height:44px}.segb{flex:1}}
.lrshow{display:inline-flex;flex-direction:column;align-items:flex-end}.lrshow small{color:var(--muted);font-size:12px}
.coming .panel-h .cnt{font-size:12.5px;font-weight:600;background:var(--sunk);padding:2px 9px;border-radius:12px;vertical-align:middle}
/* review fixes: row errors, flagged rows, search, today at this gate, operator gate-out list */
@media (max-width:700px){.nav .k-rep{display:none}}
.cm-err{grid-column:1/-1;color:var(--bad);font-size:13px;font-weight:600;background:#FBE4E4;border-radius:6px;padding:6px 10px}
.cm-errtxt{display:block;color:var(--bad);font-weight:600}
.cm-item.warnrow{border-color:#E8B4B4}.btn.amber{background:#B45309;border-color:#B45309;color:#fff;font-weight:600}
.cm-a .btn.sm{min-height:36px}.cm-q{padding:9px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;min-width:240px;background:var(--panel)}.cm-q.wide{width:100%;max-width:520px}
.today .td-list{display:flex;flex-direction:column;gap:4px}.td-item{display:grid;grid-template-columns:52px minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line);font-size:13.5px}
.go-item .cm-a{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center}
@media (max-width:700px){.cm-q{min-width:0;width:100%}.td-item{grid-template-columns:44px minmax(0,1fr) auto}.td-item>span:nth-child(3),.td-item>span:nth-child(4){display:none}}
.pb-cancel2{display:block;margin-top:8px;color:var(--bad)}.chk{display:inline-flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;min-height:36px}
@media (max-width:700px){.nav .k-mas,.nav .subnav{display:none}.manual-in{white-space:normal;text-align:left;width:100%}}
.lrfind{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;padding:8px 10px;border:1px dashed var(--accent);border-radius:8px;background:var(--accent-soft)}.lrfind small{display:block;color:var(--muted);font-size:12.5px}
/* booking link check */
.lk-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.lk-no{font-size:17px;font-weight:700}
.lk-list{display:flex;flex-direction:column;gap:6px}.lk-row{display:grid;grid-template-columns:minmax(0,1.3fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.lk-row small{display:block;color:var(--muted);font-size:12.5px}.lk-btns{display:flex;gap:6px}.btn.on-ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok);font-weight:600}.btn.on-bad{background:#FBE4E4;border-color:var(--bad);color:var(--bad);font-weight:600}
.lk-kv,.lk-inline{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.lk-inline{margin-top:4px}.lkbtn{margin-left:auto}.lkbtn.ok{color:var(--ok);border-color:var(--ok)}.lkbtn.bad{color:var(--bad);border-color:var(--bad)}
@media (max-width:700px){.lk-row{grid-template-columns:minmax(0,1fr) auto}.lk-btns{grid-column:1/-1}.lk-btns .btn{flex:1;min-height:40px}}
.sub.rep{color:var(--accent);font-weight:600}.sub.rep.none{color:#B45309}
.cm-v small.rep{color:var(--accent);font-weight:600}.cm-v small.rep.none{color:#B45309}.cm-sep{font-size:12.5px;color:var(--muted);font-weight:600;margin:6px 2px 0}
.cm-else{margin-top:10px}.cm-else summary{cursor:pointer;font-weight:600;color:var(--muted);padding:6px 2px}.cm-else .cm-list{margin-top:6px}
.gate-at>b{font-size:15px}
.ptabs.n1{grid-template-columns:1fr}.ptabs.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Plan arrivals */
.nav button .cnt.warn{background:var(--warn-soft);color:var(--warn)}
.pa{display:flex;flex-direction:column;gap:14px}
.pa-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pa-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.pa-card.tight{border-color:#E9C46A}.pa-card.over{border-color:#E8B4B4;background:var(--bad-soft)}
.pa-name{font-size:16px}.pa-nums{display:flex;gap:6px 20px;flex-wrap:wrap}.pa-nums span{display:flex;flex-direction:column;font-size:12.5px;color:var(--muted)}
.pa-nums b{font-size:24px;font-weight:700;color:var(--ink);line-height:1.1}.pa-card.over .pa-left b{color:var(--bad)}.pa-card.tight .pa-left b{color:var(--warn)}
.pa-todo{border-color:#E9C46A;border-left:4px solid var(--warn)}
.pa-grp .panel-h h2,.pa-todo .panel-h h2{display:flex;align-items:center;gap:8px}.pa-grp .cnt,.pa-todo .cnt{font-size:12.5px;font-weight:600;background:var(--sunk);padding:2px 9px;border-radius:12px}
.pa-todo .cnt{background:var(--warn-soft);color:var(--warn)}
.pa-list{display:flex;flex-direction:column;gap:8px}
.pa-row{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.pa-row.ed{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.pa-row small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}.pa-who{flex:0 0 170px}.pa-who b{font-size:15px}.pa-what{flex:1 1 240px;min-width:0}.pa-pick,.pa-set{margin-left:auto}
.pa-st{font-weight:600;color:var(--ink)}.pa-st.on{color:var(--accent)}
.pa-pick{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pa-q{font-size:13px;font-weight:600;color:var(--muted);margin-right:2px}
.pa-pick .segb{min-height:40px;padding:8px 14px}.pa-pick .segb.on{font-weight:600}
.pa-set{display:flex;align-items:center;gap:12px;justify-content:flex-end}.pa-set small{margin:0}
.pa-foot{margin:0;font-size:13px}
@media (max-width:900px){.pa-cards{grid-template-columns:1fr}.pa-card{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}}
@media (max-width:600px){.pa-cards{gap:8px}.pa-card{padding:10px 14px;gap:4px;flex-direction:column;align-items:flex-start}.pa-nums{gap:2px 14px}.pa-nums span{flex-direction:row;align-items:baseline;gap:4px}.pa-nums b{font-size:17px}.pa-who{flex-basis:100%}.pa-pick,.pa-set{margin-left:0;flex-basis:100%;justify-content:flex-start}.pa-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.pa-pick .segb{min-height:48px;padding:6px 8px;line-height:1.25}.pa-q,.pa-pick .lnk{grid-column:1/-1}}
.pick.ro{cursor:default}.need:disabled{cursor:default;border-style:solid;opacity:.85}
/* move requests (LG Factory team -> OWS Yard team) */
.rq{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.rq-q{font-size:12.5px;font-weight:600;color:var(--muted)}
.rqbtn{display:inline-flex;align-items:center;gap:6px}.cact .lnk{font-size:13px}
.rq-panel{border-left:4px solid var(--warn)}.rq-panel .cnt{background:var(--warn-soft)!important;color:var(--warn)}.cm-l small.rq-by{color:var(--warn);font-weight:600}
/* Upload DO */
.du{display:flex;flex-direction:column;gap:12px}
.du-pick{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px;border:2px dashed var(--line);border-radius:12px;background:var(--paper);cursor:pointer;text-align:center;color:var(--muted)}
.du-pick b{color:var(--accent);font-size:16px}.du-pick:hover,.du-pick.on{border-color:var(--accent);background:var(--accent-soft)}.du-pick .ico{color:var(--accent)}
.du-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:var(--panel)}
.du-card.du-update{border-color:#E9C46A}.du-card.du-saved{border-color:var(--ok);background:var(--ok-soft)}.du-card.du-error{border-color:#E8B4B4}
.du-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.du-h b{font-size:15px}.du-f{font-size:12.5px;color:var(--muted);flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
.du-ch{display:flex;flex-direction:column;gap:2px;font-size:13.5px;background:var(--warn-soft);border-radius:8px;padding:8px 10px}.du-ch s{color:var(--muted)}
.du-m{margin:0;font-size:13px}.du-err{margin:0;color:var(--bad);font-weight:600;font-size:13px}
.do-acts{display:flex;gap:12px;margin-top:4px;font-size:12.5px}.do-acts .lnk{font-size:12.5px}a.dolink{text-decoration:none}
/* LG page: summary and insights */
.vper{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.vper>span:first-child{font-weight:600;font-size:14px}
.vk-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.vk{display:flex;flex-direction:column;gap:3px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 14px 10px;min-width:0}
.vk:hover{border-color:var(--accent)}.vk-t{font-size:13px;font-weight:600;color:var(--muted)}.vk b{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.02em}.vk-s{font-size:12px;color:var(--muted);min-height:16px}
.vk-bars{display:flex;align-items:flex-end;gap:2px;height:30px;margin-top:6px}.vk-bars i{flex:1;background:var(--accent);opacity:.8;border-radius:2px 2px 0 0}.vk-bars i.z{background:var(--sunk);opacity:1}
.vw-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.vc-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.vc-h h2{font-size:17px}.vc-h .muted{font-size:13px}.vc-h .cnt{font-size:12.5px;font-weight:600;background:var(--warn-soft);color:var(--warn);padding:2px 9px;border-radius:12px}
.vw-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.vflow{display:flex;align-items:stretch;gap:8px}.vf{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.vf:hover{border-color:var(--accent)}.vf-t{font-size:13px;font-weight:600;color:var(--muted)}.vf b{font-size:26px;line-height:1.15}.vf small{font-size:12px;color:var(--muted)}
.vf-arr{align-self:center;color:var(--muted);font-size:20px}
.vat{display:flex;flex-direction:column;gap:6px}.vat-r{display:flex;gap:10px;text-align:left;font:inherit;color:inherit;cursor:pointer;background:none;border:1px solid var(--line);border-radius:8px;padding:9px 12px}
.vat-r:hover{border-color:var(--accent)}.vat-r>i{flex:none;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--warn)}.vat-r.bad>i{background:var(--bad)}.vat-r.bad{border-color:#E8B4B4;background:var(--bad-soft)}
.vat-m{font-size:14px}.vat-r small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}.vat-ok{margin:0;color:var(--ok);font-weight:600}
.vst{display:flex;flex-direction:column}.vst-r{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.vst-r:first-child{border-top:0}
.vst-r small{display:block;font-size:12px;color:var(--muted)}.vst-r b{font-size:14px}.vst-v{text-align:right}.vst-v b{font-size:17px}.vst-tot{border-top:2px solid var(--line)}
.vsp,.vln{display:flex;flex-direction:column;gap:8px}.vsp-r{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:12px;align-items:center;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:4px 0;cursor:pointer}
.vsp-n small{display:block;font-size:12px;color:var(--muted)}.vsp-bar,.vln-bar{height:10px;background:var(--sunk);border-radius:5px;overflow:hidden}.vsp-bar i,.vln-bar i{display:block;height:100%;background:var(--accent);border-radius:5px}.vsp-bar i.hi{background:var(--warn)}
.vln-r{display:grid;grid-template-columns:minmax(110px,.6fr) minmax(0,1.4fr) 34px;gap:10px;align-items:center;font-size:14px}.vln-r b{text-align:right}
.vbk-key{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.vbk-key i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.vbk-bar{display:flex;height:20px;border-radius:5px;overflow:hidden;background:var(--sunk)}.vbk-bar i{display:flex;align-items:center;justify-content:center;font-style:normal;font-size:11.5px;font-weight:600;color:#fff;min-width:16px}
.v1{background:#14532D}.v2{background:#15803D}.v3{background:#0F766E}.v4{background:#1D5FB4}.v5{background:#7AA7DE}.v6{background:#C9CED6}.vbk-bar i.v6{color:var(--ink)}
.vchips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.vchip{font:inherit;font-size:13px;border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:5px 12px;cursor:pointer}
.vchip span{font-weight:600;color:var(--muted);margin-left:4px}.vchip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.vact td{padding-top:7px;padding-bottom:7px}
@media (max-width:1150px){.vk-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.vw-two{grid-template-columns:1fr}.vflow{flex-direction:column}.vf-arr{transform:rotate(90deg)}}
@media (max-width:600px){.vk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vk b{font-size:26px}.vsp-r{grid-template-columns:1fr}}
.vact{table-layout:fixed;min-width:860px}
/* booking status preview: one table per booking */
.bkt{display:flex;flex-direction:column;gap:14px;max-height:none}
.bkt-one{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.bkt-h{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap}.bkt-h .lnk{font-size:15.5px;font-weight:700}.bkt-h .muted{font-size:13px}
.bkt-n{display:flex;gap:4px 16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.bkt-n b{color:var(--ink);margin-left:3px}
.bkt-more{margin:0;font-size:13px;font-style:italic}
.cm-lr{width:100%;max-width:190px;padding:8px 10px;border:1px solid var(--warn);border-radius:6px;font:inherit;font-family:var(--fmono);font-size:14px;background:var(--warn-soft);text-transform:uppercase}.cm-lr:focus{outline:2px solid var(--accent);background:var(--panel)}
.syncbtn{display:inline-flex;align-items:center;gap:6px;margin-right:8px}.syncbtn.on .ico{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media (max-width:700px){.syncbtn{margin-right:4px;padding:8px 10px}.syncbtn .sb-t{display:none}}
.pbact .pb-lrbox{flex:none;min-width:142px;overflow:visible}
