:root{color-scheme:dark;--ink:#f2f4f7;--muted:#aeb8c6;--line:#344054;--paper:#182230;--bg:#0b111b;--blue:#9cbcff;--blue2:#2563eb;--navy:#101828;--green:#6ce9a6;--amber:#fec84b;--red:#fda29b;--surface:#101828;--surface-soft:#1f2a3a;--surface-hover:#253247;--focus:#84adff;--radius:16px;--shadow:0 10px 28px #00000035}
html[data-theme="light"]{color-scheme:light;--ink:#17202f;--muted:#667085;--line:#d9e0e8;--paper:#fff;--bg:#f4f6f8;--blue:#175cd3;--blue2:#2563eb;--navy:#253858;--green:#067647;--amber:#8a5700;--red:#b42318;--surface:#fff;--surface-soft:#f8fafc;--surface-hover:#eef4ff;--focus:#84adff;--shadow:0 1px 2px #1018280d}
body[data-ue-access]:not(.ue-access-ready):not(.ue-access-error){overflow:hidden}
body[data-ue-access]:not(.ue-access-ready)>*:not(.ue-boot-panel){visibility:hidden!important}
body[data-ue-access]:not(.ue-access-ready):not(.ue-access-error)::before{content:"Loading secure workspace…";position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:#f5f7fa;color:#344054;font-size:1rem;font-weight:800;letter-spacing:.01em;visibility:visible}
.ue-boot-panel{position:fixed;inset:0;z-index:10001;display:grid;place-items:center;padding:24px;background:#f5f7fa;visibility:visible!important}
.ue-boot-panel section{width:min(520px,100%);padding:26px;border:1px solid #d6dee8;border-radius:16px;background:#fff;box-shadow:0 20px 70px #1018281f}
.ue-boot-panel h1{margin:.35rem 0 .5rem}.ue-boot-panel p{color:var(--muted);line-height:1.5}.ue-boot-panel .row{margin-top:18px}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}.sandbox{min-height:40px;padding:10px 16px;background:#7a4e00;color:#fff;text-align:center;font-size:.82rem;font-weight:900;letter-spacing:.045em}.shell{width:min(1200px,100%);margin:auto;padding:28px 24px 56px}.page-head,.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-head{align-items:flex-start;margin-bottom:22px}.page-head h1{margin:0;font-size:clamp(2rem,4vw,2.75rem);letter-spacing:-.035em}.page-head p{margin:.25rem 0 0;color:var(--muted)}.head-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.breadcrumb{display:flex;gap:7px;align-items:center;margin:0 0 14px;color:var(--muted);font-size:.875rem}.breadcrumb a{color:var(--blue);text-decoration:none;font-weight:750}.card{margin:14px 0;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card h2,.card h3{margin-top:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.home-card{display:flex;min-height:250px;flex-direction:column;padding:24px;background:#fff;color:inherit;border:1px solid var(--line);border-radius:18px;text-decoration:none;box-shadow:var(--shadow);transition:.15s}.home-card:hover,.nav-card:hover{border-color:var(--blue2);box-shadow:0 8px 22px #175cd316;transform:translateY(-2px)}.home-card.primary{background:#172b4d;color:#fff;border-color:#172b4d}.home-card .kicker{font-size:.75rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#667085}.home-card.primary .kicker,.home-card.primary p{color:#d6e2f5}.home-card h2{margin:auto 0 8px;font-size:1.5rem}.home-card p{margin:0;color:var(--muted)}.nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.nav-card{display:flex;gap:15px;min-height:112px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:inherit}.nav-card h3{margin:0 0 4px}.nav-card p{margin:0;color:var(--muted)}.nav-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:11px;background:#eef4ff;color:var(--blue);font-weight:900}.btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:0;border-radius:9px;background:var(--blue2);color:#fff;font:inherit;font-weight:850;text-decoration:none;cursor:pointer}.btn:hover{filter:brightness(.96)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#344054}.btn.success{background:var(--green)}.btn.warning{background:#b54708}.btn.danger{background:var(--red)}.btn.ghost{background:#eef2f6;color:#344054}.btn.small{min-height:38px;padding:7px 11px;font-size:.875rem}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:800}.field small{color:var(--muted)}input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #b9c4d2;border-radius:9px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus,a:focus{outline:3px solid #84adff;outline-offset:2px}.muted{color:var(--muted)}.hint{font-size:.875rem;color:var(--muted)}.status,.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:#eef2f6;font-size:.78rem;font-weight:800}.status.ok,.pill.ok{background:#ecfdf3;color:var(--green)}.status.warn,.pill.warn{background:#fff3cd;color:var(--amber)}.status.bad,.pill.bad{background:#fef3f2;color:var(--red)}.notice{margin:12px 0;padding:12px 14px;border-radius:10px;background:#eff8ff;color:var(--blue);border:1px solid #b2ddff}.notice.success{background:#ecfdf3;color:var(--green);border-color:#abefc6}.notice.warning{background:#fff8e7;color:var(--amber);border-color:#fedf89}.notice.danger{background:#fef3f2;color:var(--red);border-color:#fecdca}.ue-viewport-notice{position:fixed;top:56px;right:24px;z-index:1400;display:flex;width:min(480px,calc(100vw - 32px));align-items:flex-start;gap:14px;padding:16px 16px 16px 18px;border:2px solid;border-radius:14px;background:#fff;box-shadow:0 18px 48px #102a4340;opacity:0;transform:translateY(-10px);pointer-events:none;transition:transform .18s ease}.ue-viewport-notice[hidden]{display:none!important}.ue-viewport-notice.show{opacity:1;transform:translateY(0);pointer-events:auto}.ue-viewport-notice.success{border-color:#12b76a;background:#ecfdf3;color:#05603a}.ue-viewport-notice.danger{border-color:#f04438;background:#fef3f2;color:#912018}.ue-viewport-notice-copy{display:grid;gap:3px;min-width:0}.ue-viewport-notice-copy strong{font-size:1rem}.ue-viewport-notice-copy span{overflow-wrap:anywhere}.ue-viewport-notice button{flex:0 0 36px;width:36px;height:36px;margin-left:auto;border:0;border-radius:8px;background:#ffffffaa;color:inherit;font:800 1.35rem/1 system-ui;cursor:pointer}.ue-viewport-notice button:focus{outline:3px solid #84adff;outline-offset:2px}@media(max-width:600px){.ue-viewport-notice{top:12px;right:16px}}.metric{padding:15px;background:#fafbfc;border:1px solid #e4e7ec;border-radius:12px}.metric span{display:block;color:var(--muted);font-size:.875rem}.metric strong{display:block;margin-top:3px;font-size:1.7rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 10px;border-bottom:1px solid #e4e7ec;text-align:left;vertical-align:top}th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.035em}.station-card{padding:16px;border:1px solid #dfe4ea;border-radius:13px;background:#fff}.station-card.inactive{opacity:.65;background:#f8fafc}.station-card h3{margin:0 0 2px}.operator{margin-top:10px;padding:10px;border-radius:10px;background:#f8fafc}.operator strong{display:block}.progress{height:9px;overflow:hidden;border-radius:999px;background:#e4e7ec}.progress i{display:block;height:100%;background:var(--green)}.hidden{display:none!important}.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed #b9c4d2;border-radius:12px}.mobile-only{display:none}.footer{margin-top:30px;color:var(--muted);font-size:.78rem;text-align:center}.steps{counter-reset:step;display:grid;gap:12px}.step{position:relative;padding:18px 18px 18px 64px;border:1px solid var(--line);border-radius:13px;background:#fff}.step:before{counter-increment:step;content:counter(step);position:absolute;left:18px;top:17px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#172b4d;color:#fff;font-weight:900}.shot{margin:14px 0;border:1px solid #cfd6df;border-radius:13px;overflow:hidden;background:#fff}.shot figcaption{padding:10px 13px;color:var(--muted);font-size:.82rem;border-top:1px solid #e4e7ec}.shot img{display:block;width:100%;height:auto}.definition{display:grid;grid-template-columns:170px 1fr;gap:8px 18px}.definition dt{font-weight:850}.definition dd{margin:0;color:var(--muted)}
@media(max-width:900px){.home-grid,.grid.four,.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-list{grid-template-columns:1fr}}@media(max-width:640px){html{font-size:15px}.shell{padding:20px 14px 42px}.home-grid,.grid,.grid.two,.grid.four{grid-template-columns:1fr}.home-card{min-height:180px}.head-actions{width:100%;margin-left:0}.head-actions .btn{flex:1}.page-head h1{font-size:2rem}.mobile-only{display:initial}.definition{grid-template-columns:1fr;gap:2px}.definition dd{margin-bottom:10px}}
.metric-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:.15s}.metric-link:hover{border-color:var(--blue2);box-shadow:0 8px 22px #175cd316;transform:translateY(-2px)}.metric-link small{display:block;margin-top:8px;color:var(--blue);font-weight:800}
.metric.compact{padding:10px}.metric.compact strong{font-size:1.15rem}.station-guidance{gap:16px;margin-top:10px;color:var(--muted);font-size:.82rem}.station-guidance strong{color:var(--ink)}.timing-history summary{cursor:pointer;font-weight:800}.timing-card{border-color:#b2ddff}.timing-card>.grid .metric{background:#fff}
.operator-performance{border-color:#c7d7fe}.operator-stats-table{min-width:1120px}.operator-stats-table td strong,.operator-stats-table td small{display:block}.operator-stats-table td small{margin-top:3px;color:var(--muted);white-space:nowrap}.operator-stats-table th{white-space:nowrap}.operator-stats-table td:first-child,.operator-stats-table td:nth-child(2){min-width:150px}
.live-staffing{border-color:#abefc6}.live-staffing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.live-staff-card{padding:13px;border:1px solid #dfe4ea;border-radius:12px;background:#fff}.live-staff-card.needs-staff{border-color:#fedf89;background:#fffcf5}.live-staff-card h3{margin:0}.live-staff-card small{display:block;color:var(--muted)}.live-person{margin-top:10px;padding:10px;border-radius:9px;background:#f7f9fc}.live-person a{color:inherit;text-decoration:none}.live-person a:hover{text-decoration:underline}.live-person-metrics{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px;font-size:.78rem}.live-person-metrics span{padding:5px 7px;border-radius:7px;background:#fff}.open-position{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding:8px;border:1px dashed #f5b544;border-radius:8px;color:var(--amber);font-size:.78rem;font-weight:750}.staffing-dialog{width:min(620px,calc(100% - 30px));border:0;border-radius:16px;padding:0;box-shadow:0 20px 80px #10182844}.staffing-dialog::backdrop{background:#10182899}.movement-detail>td{padding-top:0;background:#fbfcfe}.movement-detail details{padding:7px 0}.movement-detail summary{cursor:pointer;font-weight:800;color:var(--blue)}.movement-table{min-width:980px;margin-top:8px}.movement-table td small{display:block;color:var(--muted)}.task-breakdown{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.task-breakdown .pill{font-size:.72rem}@media(max-width:900px){.live-staffing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.live-staffing-grid{grid-template-columns:1fr}.open-position{align-items:stretch;flex-direction:column}}
.live-layout-scroll{margin-top:16px;overflow:auto;max-height:760px;border:1px solid #cfd8e5;border-radius:14px;background:#f8fafc;scrollbar-gutter:stable both-edges}.live-layout-canvas{position:relative;width:1600px;height:860px;overflow:hidden;background-color:#f8fafc;background-image:linear-gradient(#e5ebf2 1px,transparent 1px),linear-gradient(90deg,#e5ebf2 1px,transparent 1px);background-size:28px 28px}.live-layout-lane{position:absolute;z-index:0;border:2px dashed #84adff;border-radius:18px;background:#eff6ff66}.live-layout-lane.lane-b{border-color:#b692f6;background:#f4f3ff66}.live-layout-lane span{position:absolute;top:8px;left:11px;color:#667085;font-size:.7rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.live-layout-edges{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.live-layout-edges path{fill:none;stroke:#2563eb;stroke-width:.28;stroke-linecap:round;opacity:.55;vector-effect:non-scaling-stroke}.live-layout-edges marker path{fill:#2563eb;stroke:none}.live-layout-node{position:absolute;z-index:2;width:210px;min-height:142px;transform:translate(-50%,-50%);padding:10px;border:2px solid #9fb3cb;border-radius:13px;background:#fff;box-shadow:0 4px 12px #172b4d18}.live-layout-node.type-glue{border-color:#7f56d9}.live-layout-node.type-weld{border-color:#f79009}.live-layout-node.type-solder{border-color:#2e90fa}.live-layout-node.type-qc{border-color:#12b76a}.live-layout-node.type-packing{border-color:#e5484d}.live-layout-node.state-blocked,.live-layout-node.state-unstaffed{box-shadow:0 0 0 4px #fecdca;background:#fff7f7}.live-layout-node.state-starved{box-shadow:0 0 0 4px #fedf89;background:#fffcf5}.live-layout-node-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.live-layout-node-head strong,.live-layout-node-head small{display:block}.live-layout-node-head small{color:var(--muted);font-size:.72rem}.live-layout-station-metrics{display:flex;gap:5px;margin-top:6px;font-size:.7rem}.live-layout-station-metrics span{padding:3px 6px;border-radius:6px;background:#f2f4f7}.live-layout-person{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px;padding:7px;border-radius:8px;background:#eef4ff;cursor:grab}.live-layout-person:active{cursor:grabbing}.live-layout-person a{color:inherit;text-decoration:none}.live-layout-person a:hover{text-decoration:underline}.live-layout-person strong,.live-layout-person small{display:block}.live-layout-person strong{font-size:.78rem}.live-layout-person small{color:var(--muted);font-size:.65rem}.btn.tiny{min-height:30px;padding:4px 7px;font-size:.68rem}.live-layout-open{width:100%;margin-top:7px;padding:6px;border:1px dashed #f5b544;border-radius:7px;background:#fff8e7;color:var(--amber);font:inherit;font-size:.7rem;font-weight:850;cursor:pointer}.live-release-zone{margin-top:10px;padding:13px;border:2px dashed #f97066;border-radius:11px;background:#fff7f7;color:var(--red);text-align:center;font-weight:850}@media(max-width:640px){.live-layout-canvas{width:1320px;height:760px}.live-layout-node{width:190px}.live-layout-scroll{max-height:70vh}}
.line-capacity{grid-column:1/-1}.physical-flow,.recipe-flow{display:flex;align-items:stretch;gap:10px;overflow-x:auto;padding:8px 2px 14px}.physical-stop,.flow-step-card{display:flex;align-items:center;gap:10px;flex:0 0 220px;min-height:82px;padding:12px;border:1px solid #cfd8e5;border-radius:12px;background:#fff}.physical-stop small,.flow-step-card small{display:block;color:var(--muted)}.flow-number{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#172b4d;color:#fff;font-weight:900}.flow-arrow{align-self:center;color:var(--blue);font-size:1.6rem;font-weight:900}.flow-move{display:flex;gap:4px;margin-left:auto}.flow-move .btn{min-width:34px;padding:6px}.flow-step-card{position:relative;flex-basis:205px;flex-direction:column;align-items:flex-start}.flow-step-card .flow-move{width:100%;margin-top:auto}.flow-step-card.start{border-color:#75e0a7}.flow-step-card.finish{border-color:#84adff}.routing-reference{border-left:5px solid var(--blue2)}.part-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.part-chips .pill{font-size:.7rem}.flow-summary{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:8px 0}.flow-summary .pill{flex:0 0 auto;padding:8px 12px}
.line-lead-coverage{margin:16px 0 4px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.line-lead-coverage>span,.line-lead-coverage>strong{display:block}.line-lead-coverage>span,.line-lead-coverage legend{color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.line-lead-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:10px 0 12px}.line-lead-options label{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--paper);cursor:pointer}.line-lead-options input{width:20px;height:20px;min-height:20px}.line-lead-options strong,.line-lead-options small{display:block}.line-lead-options small{color:var(--muted)}
.line-lead-run-summary{margin-top:7px;color:var(--muted);font-size:.86rem}.line-lead-run-summary strong{color:var(--ink)}
@media(max-width:640px){.physical-stop,.flow-step-card{flex-basis:185px}.flow-arrow{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.status.danger,.pill.danger{background:#fef3f2;color:var(--red)}.flow-board{display:flex;align-items:stretch;gap:10px;overflow-x:auto;padding:4px 2px 14px;scroll-snap-type:x proximity}.flow-board-step{min-width:245px;max-width:290px;flex:1;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;scroll-snap-align:start}.flow-board-step.running,.flow-board-step.ready{border-color:#86efac;background:#f0fdf4}.flow-board-step.blocked,.flow-board-step.unstaffed{border-color:#fca5a5;background:#fff1f2}.flow-board-step.starved{border-color:#fcd34d;background:#fffbeb}.flow-board-step.inactive{opacity:.68}.flow-board-arrow{align-self:center;font-size:1.5rem;color:var(--muted);font-weight:800}.flow-board-metrics{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:13px 0;font-size:.88rem}.flow-board-metrics span{padding:7px;border-radius:8px;background:#f6f8fb}.flow-wip-bar{height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden;margin-bottom:8px}.flow-wip-bar i{display:block;height:100%;background:#2563eb;border-radius:999px}.flow-board-step.blocked .flow-wip-bar i,.flow-board-step.unstaffed .flow-wip-bar i{background:#dc2626}.flow-unit-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.flow-unit-chips .pill{font-size:.75rem}.flow-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:.86rem}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;background:#94a3b8}.legend-dot.running{background:#16a34a}.legend-dot.blocked,.legend-dot.unstaffed{background:#dc2626}.legend-dot.starved{background:#d97706}@media(max-width:640px){.flow-board-step{min-width:82vw}.flow-board-arrow{display:none}}
.floor-layout-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:22px 0 10px}.floor-layout-head h3{margin:0 0 3px}.floor-layout-head p{margin:0;color:var(--muted)}.floor-scroll{overflow:auto;max-height:min(70vh,760px);border:1px solid #cfd8e5;border-radius:14px;background:#f8fafc;overscroll-behavior:contain;scrollbar-gutter:stable both-edges}.floor-canvas{position:relative;min-width:1800px;min-height:980px;overflow:hidden;background-color:#f8fafc;background-image:linear-gradient(#dfe7f0 1px,transparent 1px),linear-gradient(90deg,#dfe7f0 1px,transparent 1px);background-size:28px 28px;isolation:isolate}.floor-lane{position:absolute;border:2px dashed #c8d3e1;border-radius:18px;background:#ffffff80;z-index:0;transition:left .12s,top .12s,width .12s,height .12s}.floor-lane-a{border-color:#84adff;background:#eff6ff66}.floor-lane-b{border-color:#b692f6;background:#f4f3ff66}.floor-lane span{position:absolute;top:9px;left:12px;color:#667085;font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.floor-edges{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}.floor-edge{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;opacity:.72;vector-effect:non-scaling-stroke;transition:opacity .12s,stroke-width .12s}.floor-edges marker path{fill:#2563eb}.floor-node{position:absolute;z-index:2;display:flex;width:150px;min-height:88px;transform:translate(-50%,-50%);flex-direction:column;justify-content:center;padding:10px 12px;border:2px solid #9fb3cb;border-radius:12px;background:#fff;box-shadow:0 4px 12px #172b4d18;user-select:none}.floor-node.editable{cursor:grab;touch-action:none}.floor-node.dragging{cursor:grabbing;box-shadow:0 9px 22px #172b4d28;outline:3px solid #84adff}.floor-node strong,.floor-node small{display:block}.floor-node small{color:var(--muted)}.floor-node-type{margin-bottom:3px;color:var(--blue);font-size:.68rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.floor-node-lane{position:absolute;right:7px;top:6px;padding:2px 5px;border-radius:999px;font-size:.58rem;font-weight:900;text-transform:uppercase}.floor-node-lane.lane-a{background:#dbeafe;color:#175cd3}.floor-node-lane.lane-b{background:#ede9fe;color:#6941c6}.floor-node-lane.lane-shared{background:#f2f4f7;color:#667085}.floor-node.type-glue{border-color:#7f56d9}.floor-node.type-weld{border-color:#f79009}.floor-node.type-solder{border-color:#2e90fa}.floor-node.type-qc{border-color:#12b76a}.floor-node.type-packing{border-color:#e5484d}.floor-key-help{margin:7px 2px 0}.material-paths{margin-top:16px;padding:15px;border:1px solid #dfe4ea;border-radius:12px;background:#fbfcfd}.material-paths p{margin:2px 0 0}.path-editor{display:grid;grid-template-columns:minmax(220px,.8fr) auto minmax(360px,1.7fr) auto;align-items:end;gap:10px;margin-top:12px}.path-editor-arrow{align-self:center;margin-top:24px;color:var(--blue);font-size:1.5rem;font-weight:900}.path-targets{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:6px;max-height:230px;margin:0;padding:10px;overflow:auto;border:1px solid #b8c5d6;border-radius:10px;background:#fff}.path-targets legend{padding:0 5px;font-size:.88rem;font-weight:850}.path-targets label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;min-height:40px;padding:5px 7px;border:1px solid #e4e7ec;border-radius:8px;cursor:pointer}.path-targets label:hover{border-color:#84adff;background:#eff6ff}.path-targets label.disabled{background:#f7f8fa;color:#98a2b3;cursor:not-allowed}.path-targets input{width:20px;height:20px;min-height:20px}.path-targets small{color:var(--muted);font-size:.72rem}.path-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.path-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #cfd8e5;border-radius:999px;background:#fff;font-size:.78rem}.path-chip b{color:var(--blue)}.path-chip button{display:grid;place-items:center;width:22px;height:22px;margin-left:2px;padding:0;border:0;border-radius:50%;background:#fef3f2;color:var(--red);font:inherit;font-size:1rem;font-weight:900;cursor:pointer}.workstation-inventory{margin-top:16px;border-top:1px solid #e4e7ec;padding-top:14px}.workstation-inventory summary{cursor:pointer;font-weight:850}.inventory-actions{margin:12px 0}.workstation-inventory .operator{max-width:900px}.compact-select{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:.78rem;font-weight:850}.compact-select select{width:auto;min-height:38px;padding:7px 28px 7px 9px}@media(max-width:900px){.floor-layout-head{align-items:flex-start;flex-direction:column}.path-editor{grid-template-columns:1fr}.path-editor-arrow{display:none}.path-editor .btn{width:100%}.path-targets{grid-template-columns:1fr 1fr}}@media(max-width:560px){.path-targets{grid-template-columns:1fr}.compact-select{width:100%;margin-left:0}}


/* 2026-08 staffing board release: reserve enough vertical space for staffed
   cards so adjacent stations and their assignment controls cannot overlap. */
.live-layout-canvas{height:1200px}
.live-layout-node{display:flex;width:200px;height:210px;min-height:210px;overflow-y:auto;flex-direction:column;box-sizing:border-box;scrollbar-gutter:stable}
.live-layout-node .live-layout-open{margin-top:auto}
.live-layout-person,.live-layout-open{flex-shrink:0}
@media(max-width:640px){.live-layout-canvas{height:1080px}.live-layout-node{height:210px;min-height:210px}}
/* 2026-08 visual hierarchy refinement */
:root{--radius:12px}
body{background:var(--bg)}
.sandbox{
  min-height:32px;
  padding:7px 16px;
  border-bottom:1px solid #d7a429;
  background:#f4b740;
  color:#102a43;
  font-size:.75rem;
  letter-spacing:.055em;
}
.shell{width:min(1380px,100%);padding:24px 28px 52px}
.breadcrumb{margin-bottom:12px;font-size:.84rem}
.page-head{margin-bottom:20px}
.page-head h1{font-size:clamp(2rem,3vw,2.45rem);line-height:1.08;letter-spacing:-.03em}
.page-head p{max-width:780px;margin-top:.35rem;color:var(--muted)}
.head-actions{align-items:center}
.card{
  margin:12px 0;
  padding:18px 20px;
  border-color:var(--line);
  border-radius:12px;
  box-shadow:var(--shadow);
}
.card h2{margin-bottom:6px;font-size:1.45rem;line-height:1.2}
.card h3{line-height:1.25}
.nav-list{gap:12px}
.nav-card{
  min-height:98px;
  gap:14px;
  padding:16px;
  border-color:var(--line);
  border-radius:10px;
  box-shadow:0 1px 2px #102a4308;
}
.nav-card h3{margin-bottom:3px;font-size:1.12rem;line-height:1.22}
.nav-card p{font-size:.96rem;line-height:1.42}
.nav-icon{flex:0 0 64px;min-width:64px;height:40px;padding:0 8px;border-radius:9px;background:#eaf1ff;color:#175cd3;font-size:.75rem;letter-spacing:.02em}
.btn{min-height:42px;padding:9px 14px;border-radius:8px;font-weight:800}
.btn.small{min-height:36px;padding:7px 10px}
.btn.secondary{background:#253858}
.btn.ghost{background:#edf2f7;color:#253858}
input,select,textarea{min-height:42px;border-color:#b8c5d6;border-radius:8px}
.metric{padding:14px;border-color:#dde4ec;border-radius:10px;background:#f8fafc}
.metric span{color:var(--muted)}
.metric strong{font-size:1.55rem;line-height:1.2}
.station-card{padding:15px;border-color:var(--line);border-radius:10px}
.empty{padding:22px;border-color:#c5d0dd;border-radius:10px;background:#f8fafc}
.home-card{border-radius:12px}
.notice{border-radius:9px}
.step,.shot{border-radius:10px}
.status,.pill{padding:3px 8px}

/* The performance summary is one visual unit, not three nested cards. */
.card .perf-hero{gap:0}
.card .perf-hero .metric{
  min-height:94px;
  padding:4px 20px;
  border:0;
  border-left:1px solid #dde4ec;
  border-radius:0;
  background:transparent;
}
.card .perf-hero .metric:first-child{padding-left:0;border-left:0}
.card .perf-hero .metric:last-child{padding-right:0}
.card .perf-hero .metric strong{font-size:1.55rem}
.card .perf-hero .metric small{display:block;margin-top:4px;color:#344054}

/* Keep operator decision states and touch targets visually dominant. */
.operator-workstation-page .weld-stage h2{font-size:clamp(1.8rem,3.4vw,3rem)}
.operator-workstation-page .weld-test-button{border-radius:10px}
.operator-workstation-page .result-stage.pass{background:#f4fbf7}
.operator-workstation-page .result-stage.fail{background:#fff8f7}

@media(min-width:1600px){
  .shell{width:min(1480px,calc(100% - 64px))}
}
@media(max-width:900px){
  .page-head{flex-direction:column}
  .page-head>div:first-child{width:100%}
  .head-actions{width:100%;margin-left:0}
  .breadcrumb{width:100%;margin-left:0;padding-left:0}
}
@media(max-width:800px){
  .card .perf-hero{grid-template-columns:1fr}
  .card .perf-hero .metric{
    min-height:auto;
    padding:14px 0;
    border-left:0;
    border-top:1px solid #dde4ec;
  }
  .card .perf-hero .metric:first-child{padding-top:0;border-top:0}
  .card .perf-hero .metric:last-child{padding-bottom:0}
}
@media(max-width:640px){
  .shell{padding:18px 14px 40px}
  .page-head h1{font-size:1.9rem}
  .card{padding:16px}
  .nav-card{min-height:92px}
}

.btn-spinner{display:none;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}
.btn.busy .btn-spinner{display:inline-block;animation:btn-spin .7s linear infinite}
@keyframes btn-spin{to{transform:rotate(360deg)}}

/* Dark is the manufacturing default. Light remains available from the header control. */
html:not([data-theme="light"]) body{background:var(--bg);color:var(--ink)}
html:not([data-theme="light"]) body[data-ue-access]:not(.ue-access-ready):not(.ue-access-error)::before,
html:not([data-theme="light"]) .ue-boot-panel{background:var(--bg);color:var(--ink)}
html:not([data-theme="light"]) .ue-boot-panel section,
html:not([data-theme="light"]) :where(.card,.home-card,.nav-card,.station-card,.step,.shot,.metric,.live-staff-card,.live-layout-node,.physical-stop,.flow-step-card,.flow-board-step,.floor-node){background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow)}
html:not([data-theme="light"]) .home-card.primary{background:linear-gradient(145deg,#17315d,#10213d);border-color:#31558f}
html:not([data-theme="light"]) :where(.home-card,.nav-card,.metric-link){color:var(--ink)}
html:not([data-theme="light"]) :where(.home-card,.nav-card,.metric-link):hover{border-color:#528bff;box-shadow:0 12px 28px #0008,0 0 0 1px #528bff55}
html:not([data-theme="light"]) .nav-icon{background:#223a65;color:#b2ccff}
html:not([data-theme="light"]) :where(input,select,textarea){background:#101828;color:var(--ink);border-color:#475467;box-shadow:inset 0 1px 0 #ffffff0a}
html:not([data-theme="light"]) :where(input,textarea)::placeholder{color:#7f8da3}
html:not([data-theme="light"]) :where(input,select,textarea):focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}
html:not([data-theme="light"]) option{background:#101828;color:var(--ink)}
html:not([data-theme="light"]) :where(input,select,textarea,button,a):focus{outline-color:var(--focus)}
html:not([data-theme="light"]) .btn.ghost{background:#263244;color:#e4e7ec;border:1px solid #475467}
html:not([data-theme="light"]) .btn.secondary{background:#344054;color:#fff}
html:not([data-theme="light"]) .btn.success{background:#067647;color:#fff}
html:not([data-theme="light"]) .btn.danger{background:#b42318;color:#fff}
html:not([data-theme="light"]) :where(.status,.pill){background:#293548;color:#d0d5dd}
html:not([data-theme="light"]) .status.ok,html:not([data-theme="light"]) .pill.ok{background:#12382c;color:#75e0a7}
html:not([data-theme="light"]) .status.warn,html:not([data-theme="light"]) .pill.warn{background:#3b2c0e;color:#fec84b}
html:not([data-theme="light"]) .status.bad,html:not([data-theme="light"]) .status.danger,html:not([data-theme="light"]) .pill.bad,html:not([data-theme="light"]) .pill.danger{background:#431f26;color:#fda29b}
html:not([data-theme="light"]) .notice{background:#152d52;color:#b2ccff;border-color:#315f9e}
html:not([data-theme="light"]) .notice.success{background:#12382c;color:#75e0a7;border-color:#237a57}
html:not([data-theme="light"]) .notice.warning{background:#3b2c0e;color:#fec84b;border-color:#8a5f13}
html:not([data-theme="light"]) .notice.danger{background:#431f26;color:#fda29b;border-color:#9e3c4a}
html:not([data-theme="light"]) .ue-viewport-notice{background:#182230;box-shadow:0 20px 58px #0009}
html:not([data-theme="light"]) .ue-viewport-notice.success{background:#12382c;color:#a6f4c5}
html:not([data-theme="light"]) .ue-viewport-notice.danger{background:#431f26;color:#fecdca}
html:not([data-theme="light"]) .ue-viewport-notice button{background:#ffffff12}
html:not([data-theme="light"]) :where(th,td){border-color:var(--line)}
html:not([data-theme="light"]) th{color:#aeb8c6}
html:not([data-theme="light"]) tbody tr:hover{background:#1d2939}
html:not([data-theme="light"]) :where(.operator,.live-person,.movement-detail>td,.flow-board-metrics span,.live-layout-station-metrics span){background:var(--surface-soft)}
html:not([data-theme="light"]) :where(.live-person-metrics span,.open-position,.live-layout-open){background:#101828}
html:not([data-theme="light"]) .live-staff-card.needs-staff{background:#3b2c0e;color:var(--ink);border-color:#b57a0a}
html:not([data-theme="light"]) :where(.live-layout-scroll,.live-layout-canvas,.floor-scroll,.floor-canvas){background-color:#0f1724;border-color:var(--line);background-image:linear-gradient(#263244 1px,transparent 1px),linear-gradient(90deg,#263244 1px,transparent 1px)}
html:not([data-theme="light"]) :where(.live-layout-lane,.floor-lane){background:#18223099}
html:not([data-theme="light"]) .live-layout-node.state-blocked,html:not([data-theme="light"]) .live-layout-node.state-unstaffed,html:not([data-theme="light"]) .flow-board-step.blocked,html:not([data-theme="light"]) .flow-board-step.unstaffed{background:#341d24}
html:not([data-theme="light"]) .live-layout-node.state-starved,html:not([data-theme="light"]) .flow-board-step.starved{background:#34290f}
html:not([data-theme="light"]) .flow-board-step.running,html:not([data-theme="light"]) .flow-board-step.ready{background:#123226}
html:not([data-theme="light"]) .live-layout-person{background:var(--surface-soft);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) .empty{background:#101828;border-color:#475467}
html:not([data-theme="light"]) .progress{background:#344054}
html:not([data-theme="light"]) .station-card.inactive{background:#101828}
html:not([data-theme="light"]) .staffing-dialog{background:var(--paper);color:var(--ink)}
html:not([data-theme="light"]) .staffing-dialog::backdrop{background:#02050bcc}
html:not([data-theme="light"]) .rule-card{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow)}
html:not([data-theme="light"]) .rule-card .locked-setting{border-color:var(--line)}
html:not([data-theme="light"]) .rule-card .locked-setting span{color:var(--muted)}
html:not([data-theme="light"]) .rule-card .lock-badge{background:#293548;color:#d0d5dd}
html:not([data-theme="light"]) .card .perf-hero .metric{background:transparent;box-shadow:none}
html:not([data-theme="light"]) .card .perf-hero .metric{border-color:var(--line)}
html:not([data-theme="light"]) .card .perf-hero .metric small{color:var(--muted)}
html:not([data-theme="light"]) .timing-card>.grid .metric{background:var(--surface-soft);color:var(--ink);border-color:var(--line);box-shadow:none}
html:not([data-theme="light"]) .timing-card>.grid .metric :where(span,small){color:var(--muted)}
html:not([data-theme="light"]) .theme-toggle{white-space:nowrap}

/* Auxiliary page styles load after this file. These higher-specificity rules
   keep their light-only cards, states, and controls readable in dark mode. */
html:not([data-theme="light"]) :where(.muted,.count,.credential-caption){color:var(--muted)}
html:not([data-theme="light"]) :where(.q,.details,.staffing-plan-row,.break-row){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) :where(.access-note,.pin-first-card,.staffing-plan-bar){background:#152d52;color:#b2ccff;border-color:#315f9e}
html:not([data-theme="light"]) .pin-first-card strong{color:var(--ink)}
html:not([data-theme="light"]) .staffing-plan-bar.has-errors{background:#431f26;color:#fda29b;border-color:#9e3c4a}
html:not([data-theme="light"]) .operator.staged,html:not([data-theme="light"]) .live-draft-summary,html:not([data-theme="light"]) .live-layout-person.draft-outgoing,html:not([data-theme="light"]) .live-layout-person.draft-arrival{background:#3b2c0e;color:#fec84b;border-color:#b57a0a}
html:not([data-theme="light"]) :where(.staffing-plan-bar small,.staffing-plan-row small,.live-draft-summary small){color:var(--muted)}
html:not([data-theme="light"]) .draft-direction{color:#fec84b!important}
html:not([data-theme="light"]) .btn.light,html:not([data-theme="light"]) .ue-feedback-toggle.inline{background:#263244;color:#e4e7ec;border-color:#475467}
html:not([data-theme="light"]) .ue-feedback-toggle.inline:hover{background:#344054}
html:not([data-theme="light"]) .pill.good,html:not([data-theme="light"]) .pin-state.ready{background:#12382c;color:#75e0a7}
html:not([data-theme="light"]) .pill.train,html:not([data-theme="light"]) .pin-state.required{background:#431f26;color:#fda29b}
html:not([data-theme="light"]) .pill.trainer,html:not([data-theme="light"]) .pill.pin-only{background:#152d52;color:#b2ccff}
html:not([data-theme="light"]) .ok{background:#12382c;color:#75e0a7}
html:not([data-theme="light"]) .err{background:#431f26;color:#fda29b}
html:not([data-theme="light"]) .warn{background:#3b2c0e;color:#fec84b}
html:not([data-theme="light"]) .info{background:#152d52;color:#b2ccff}
html:not([data-theme="light"]) .available{color:#75e0a7!important}
html:not([data-theme="light"]) .unavailable{color:#fda29b!important}
html:not([data-theme="light"]) .badge-card{background:#fff;color:#17202f}

/* Electrical diagnostic and analytics components have their own light
   palettes; preserve state meaning with dark, high-contrast surfaces. */
html:not([data-theme="light"]) :where(.group-limit-toolbar,.hioki-pack-card){background:#152d52;color:var(--ink);border-color:#315f9e}
html:not([data-theme="light"]) :where(.group-limit-toolbar small,.group-limit-toolbar label){color:#b2ccff}
html:not([data-theme="light"]) .hioki-result-view{color:var(--ink)}
html:not([data-theme="light"]) :where(.hioki-result-summary>div,.hioki-point-card,.hioki-readings-wrap,.hioki-limit-strip,.diagnostic-record-note,.evidence-point){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) .hioki-point-card.pass{background:#12382c;border-color:#25966b}
html:not([data-theme="light"]) .hioki-point-card.fail,html:not([data-theme="light"]) .hioki-point-card.equipment_error{background:#431f26;border-color:#e5484d}
html:not([data-theme="light"]) .hioki-point-card.pass_with_observation{background:#3b2c0e;border-color:#dc9d18}
html:not([data-theme="light"]) :where(.hioki-result-summary span,.hioki-point-values small,.hioki-readings-table tbody th small){color:var(--muted)}
html:not([data-theme="light"]) .hioki-readings-table thead th{background:#101828;color:#d0d5dd}
html:not([data-theme="light"]) .hioki-readings-table tr.fail{background:#341d24}
html:not([data-theme="light"]) .hioki-readings-table tr.equipment_error{background:#34290f}
html:not([data-theme="light"]) :where(.chart-axis-text,.chart-limit-text,.empty-chart){fill:#aeb8c6}
html:not([data-theme="light"]) .chart-grid-line{stroke:#344054}
html:not([data-theme="light"]) .chart-limit-band{fill:#7a4e00}
html:not([data-theme="light"]) :where(.failure-track,.evidence-point){background:#293548}
html:not([data-theme="light"]) .result-pass{color:#75e0a7}
html:not([data-theme="light"]) .result-fail{color:#fda29b}
html:not([data-theme="light"]) .loading-panel{color:var(--muted)}
html:not([data-theme="light"]) .widget-toggle{background:var(--paper);color:var(--ink);border-color:var(--line)}
.widget-toggle input[type="checkbox"]{width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--blue2)}
html:not([data-theme="light"]) .planning-note{color:var(--muted)}
html:not([data-theme="light"]) .availability-row{border-color:var(--line)}

/* Legacy and integration pages still carry embedded light-only CSS. */
html:not([data-theme="light"]) :where(.small:not(.btn),.planning-note){color:var(--muted)}
html:not([data-theme="light"]) :where(.outline,.status-pill,.matrix td:first-child,.matrix th:first-child,.rework-card,.rework-meta>div,.review-meta>div,.reading,.reset-card code){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) :where(details summary,.credential-panel){color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) :where(.scan-target,.hm-identity>div,.hm-card,.qc-identity>div,.disposition-card){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) :where(.scan-target.ready,.workbench-note){background:#152d52;color:#b2ccff;border-color:#315f9e}
html:not([data-theme="light"]) :where(.scan-target.good,.ranking tr.good,.operator-ranking.good){background:#12382c;color:#75e0a7;border-color:#25966b}
html:not([data-theme="light"]) :where(.review-meta>div,.rework-meta>div,.recipe-facts span,.metric-chip){background:var(--surface-soft)}
html:not([data-theme="light"]) .reading.fail{background:#431f26;color:#fda29b;border-color:#9e3c4a}
html:not([data-theme="light"]) .hm-mode.engineering{background:#3b2c0e;color:#fec84b}
html:not([data-theme="light"]) .hm-card.result-card.pass,html:not([data-theme="light"]) .qc-step.done{background:#12382c;color:#75e0a7;border-color:#25966b}
html:not([data-theme="light"]) .hm-card.result-card.fail,html:not([data-theme="light"]) .measurements tr.fail-row,html:not([data-theme="light"]) .pill-result.fail,html:not([data-theme="light"]) .pack-group.fail .cell,html:not([data-theme="light"]) .fault-detail,html:not([data-theme="light"]) .qc-check .fail-btn,html:not([data-theme="light"]) .defect-box{background:#431f26;color:#fda29b;border-color:#9e3c4a}
html:not([data-theme="light"]) .qc-step{background:#293548;color:#d0d5dd}
html:not([data-theme="light"]) .qc-step.active{background:#152d52;color:#b2ccff}
html:not([data-theme="light"]) .approval-card{background:#3b2c0e;color:#fec84b;border-color:#b57a0a}

/* Operator workstation components use a separate dense stylesheet. */
html:not([data-theme="light"]) .operator-workstation-page :where(.workstation-complete,.next-assignment-card,.key,.paused-panel,.issue-shortcut,.secondary-actions>summary,.secondary-panel,.issue-card,.affected-components,.scrap-stepper button,.material-context-value,.remove-material,.bom-item,.metric-choice,.help-close,.instruction-tabs button){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) .operator-workstation-page .workstation-complete,html:not([data-theme="light"]) .operator-workstation-page .next-assignment-card.ready{background:#12382c;color:var(--ink);border-color:#25966b}
html:not([data-theme="light"]) .operator-workstation-page .next-assignment-card.waiting,html:not([data-theme="light"]) .operator-workstation-page .paused-panel{background:#3b2c0e;color:var(--ink);border-color:#b57a0a}
html:not([data-theme="light"]) .operator-workstation-page .material-issue-error{background:#431f26;color:#fda29b;border-color:#9e3c4a}

/* Embedded page styles appear after app.css. The access marker supplies the
   extra specificity needed for those legacy rules without using !important. */
html:not([data-theme="light"]) body[data-ue-access] :where(.matrix td:first-child,.matrix th:first-child,.scan-target,.draft-action-toast,.hm-identity>div,.hm-card,.recipe-facts span,.metric-chip,.outline,.status-pill,.qc-identity>div,.qc-step,.disposition-card,.rework-card,.rework-meta>div,.workbench-note,.reset-card code,.review-meta>div,.reading,.staffing-plan-bar,.staffing-plan-row,.live-draft-summary){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) body[data-ue-access] :where(.scan-target.ready,.workbench-note,.qc-step.active){background:#152d52;color:#b2ccff;border-color:#315f9e}
html:not([data-theme="light"]) body[data-ue-access] :where(.scan-target.good,.ranking tr.good,.result-card.pass,.qc-step.done){background:#12382c;color:#75e0a7;border-color:#25966b}
html:not([data-theme="light"]) body[data-ue-access] :where(.result-card.fail,.measurements tr.fail-row,.pill-result.fail,.pack-group.fail .cell,.fault-detail,.qc-check .fail-btn,.defect-box,.reading.fail,.staffing-plan-bar.has-errors){background:#431f26;color:#fda29b;border-color:#9e3c4a}
html:not([data-theme="light"]) body[data-ue-access] :where(.hm-mode.engineering,.approval-card,.operator.staged,.live-draft-summary,.live-layout-person.draft-outgoing,.live-layout-person.draft-arrival){background:#3b2c0e;color:#fec84b;border-color:#b57a0a}
html:not([data-theme="light"]) body[data-ue-access] .group-limit-toolbar{background:#152d52;color:var(--ink);border-color:#315f9e}
html:not([data-theme="light"]) body[data-ue-access] .group-limit-toolbar :is(label,small){color:#b2ccff}

/* Feedback is injected after the page stylesheet, so its dark panel needs a
   more specific theme rule and explicit label contrast. */
.ue-feedback-panel>strong{display:block;color:var(--ink);font-size:1.05rem}
.ue-feedback-panel label{display:block;margin-top:10px;color:var(--ink);font-weight:800}
.ue-feedback-panel .muted{color:var(--muted)}
html:not([data-theme="light"]) .ue-feedback-panel{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:0 20px 64px #000a}

/* The home page shows both appearance choices instead of an ambiguous one-word toggle. */
.home-theme-control{display:grid;gap:2px;min-height:42px;padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:var(--shadow)}
.home-theme-title{color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.home-theme-switch{position:relative;display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none}
.home-theme-switch input{position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;opacity:0;pointer-events:none}
.home-theme-track{position:relative;width:36px;height:20px;flex:0 0 36px;border:1px solid #667085;border-radius:999px;background:#98a2b3;transition:background .15s,border-color .15s}
.home-theme-track span{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0005;transition:transform .15s}
.home-theme-switch input:checked+.home-theme-track{border-color:#84adff;background:#2970ff}
.home-theme-switch input:checked+.home-theme-track span{transform:translateX(16px)}
.home-theme-switch input:focus-visible+.home-theme-track{outline:3px solid var(--focus);outline-offset:2px}
.home-theme-choice,.home-theme-track{pointer-events:none}
.home-theme-choice{color:var(--muted);font-size:.78rem;font-weight:800}
html[data-theme="light"] .home-theme-choice.light,html:not([data-theme="light"]) .home-theme-choice.dark{color:var(--ink)}
@media(max-width:640px){.home-theme-control{width:100%}.home-theme-switch{justify-content:center}}

/* Dark-mode route visibility: clearly separate staffing flow from the floor grid. */
.live-layout-edges>path{
  stroke:#67e8f9;
  stroke-width:3.25;
  opacity:1;
  filter:drop-shadow(0 0 1px #06101f);
}
.live-layout-edges marker path{
  fill:#67e8f9;
  stroke:#06101f;
  stroke-width:.4;
  opacity:1;
}
html[data-theme="light"] .live-layout-edges>path{
  stroke:#2563eb;
  stroke-width:2.25;
  opacity:.86;
  filter:drop-shadow(0 0 1px #fff);
}
html[data-theme="light"] .live-layout-edges marker path{
  fill:#2563eb;
  stroke:#fff;
  stroke-width:.35;
  opacity:1;
}

html:not([data-theme="light"]) .home-card:not(.primary) .kicker,html:not([data-theme="light"]) body[data-ue-access] :where(.empty-rework,.field small){color:var(--muted)}
html:not([data-theme="light"]) body[data-ue-access] :where(.material-paths,.path-targets,.path-targets label,.path-chip){background:var(--paper);color:var(--ink);border-color:var(--line)}
html:not([data-theme="light"]) body[data-ue-access] .path-targets label:hover{background:var(--surface-hover)}
html:not([data-theme="light"]) body[data-ue-access] .path-targets label.disabled{background:var(--surface-soft);color:var(--muted)}
html:not([data-theme="light"]) body[data-ue-access] .battery-advanced summary small{color:var(--muted)}
input[type="checkbox"],input[type="radio"]{width:20px;height:20px;min-height:20px;flex-shrink:0}
label.check{min-height:44px}

html:not([data-theme="light"]) body[data-ue-access] .floor-lane span{color:var(--ink)}
html:not([data-theme="light"]) body[data-ue-access] .path-chip button{background:#431f26;color:#fda29b}

html:not([data-theme="light"]) body[data-ue-access] :where(.health-metric.critical strong,.health-finding.critical strong){color:#fda29b}
html:not([data-theme="light"]) body[data-ue-access] :where(.health-metric.warning strong,.health-finding.warning strong,.queue-number.attention){color:#fec84b}
html:not([data-theme="light"]) body[data-ue-access] :where(.health-metric.pass strong,.health-pass){color:#75e0a7}

/* Keep state text above WCAG AA after late-loaded component styles. */
html[data-theme="light"] :where(.status,.pill){color:#475467}
html:not([data-theme="light"]) .live-layout-lane span{color:var(--muted)}
html[data-theme="light"] .lock-badge{color:#475467}
html:not([data-theme="light"]) .live-release-zone{background:#431f26;color:#fda29b;border-color:#e5484d}
html:not([data-theme="light"]) body[data-ue-access] :where(.staffing-plan-bar small,.staffing-plan-row small,.live-draft-summary small){color:#d0d5dd}
html:not([data-theme="light"]) body[data-ue-access] .draft-action-toast{background:#12382c;color:#a6f4c5;border-color:#25966b}
html:not([data-theme="light"]) body[data-ue-access] .draft-action-toast small{color:#a6f4c5}
html:not([data-theme="light"]) .ue-boot-panel p{color:#aeb8c6}
