:root{--bg:#f4f6f9;--surface:#ffffff;--surface-2:#f8fafc;--border:#e3e7ed;--border-strong:#cbd2db;--text:#0f172a;--text-2:#475569;--muted:#64748b;--primary:#2a78d6;--primary-600:#1c5cab;--primary-700:#184f95;--primary-50:#edf4fd;--primary-100:#cde2fb;--good:#15803d;--good-bg:#e9f7ee;--good-border:#a7dcb9;--info:#1c5cab;--info-bg:#edf4fd;--info-border:#b7d3f6;--warning:#8a5300;--warning-bg:#fff5df;--warning-border:#f3cf7f;--critical:#b42323;--critical-bg:#fdeeee;--critical-border:#efb1b1;--neutral:#475569;--neutral-bg:#f1f4f8;--neutral-border:#d5dbe3;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px rgba(15,23,42,0.04),0 1px 3px rgba(15,23,42,0.06);--shadow-lg:0 8px 24px rgba(15,23,42,0.12);--font:"Inter","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"Cascadia Mono","SFMono-Regular",Consolas,monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;font-feature-settings:"tnum" 1}a{color:var(--primary-600);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.01em}h1{font-size:22px;font-weight:650}h2{font-size:16px}h2,h3{font-weight:620}h3{font-size:14px}p{margin:0}.muted,small{color:var(--muted)}.text-2{color:var(--text-2)}.mono{font-family:var(--mono);font-size:13px}.nowrap{white-space:nowrap}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page{max-width:1440px;margin:0 auto;padding:24px;display:grid;grid-gap:20px;gap:20px}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}.page-header .subtitle{color:var(--muted);margin-top:4px;max-width:820px}.page-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-header .hint{color:var(--muted);font-size:13px}.card-body{padding:16px 18px}.card-body.flush{padding:0}.card-footer{padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius)}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}.stack{display:grid;grid-gap:12px;gap:12px;align-content:start}.row,.spread{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.spread{justify-content:space-between}.stats{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.stat{padding:16px 18px}.stat-label{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:28px;font-weight:650;margin-top:6px;letter-spacing:-.02em;line-height:1.1}.stat-sub{color:var(--muted);font-size:13px;margin-top:4px}.stat.is-critical .stat-value{color:var(--critical)}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));grid-gap:14px 20px;gap:14px 20px;margin:0}.facts dt{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.facts dd{margin:4px 0 0;font-weight:550}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:separate;border-spacing:0}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);padding:10px 14px;white-space:nowrap}.table td,.table th{border-bottom:1px solid var(--border)}.table td{padding:11px 14px;vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:#fafcff}.table tr.is-late td:first-child{box-shadow:inset 3px 0 0 var(--critical)}.table tr.is-done td{color:var(--muted)}.table .cell-main{font-weight:600;white-space:nowrap}.table .cell-sub{display:block;color:var(--muted);font-size:12px;font-weight:400;min-width:140px}.empty{padding:28px 18px;text-align:center;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid transparent;line-height:18px}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge.no-dot:before{display:none}.badge-good{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.badge-info{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.badge-warning{color:var(--warning);background:var(--warning-bg);border-color:var(--warning-border)}.badge-critical{color:var(--critical);background:var(--critical-bg);border-color:var(--critical-border)}.badge-neutral{color:var(--neutral);background:var(--neutral-bg);border-color:var(--neutral-border)}.badge-live:before{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.badge-live:before{animation:none}}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid}.alert-icon{font-size:16px;line-height:20px}.alert-critical{color:#7a1515;background:var(--critical-bg);border-color:var(--critical-border)}.alert-good{color:#14532d;background:var(--good-bg);border-color:var(--good-border)}.alert-info{color:#173f73;background:var(--info-bg);border-color:var(--info-border)}.btn,button{font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:550;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s}.btn:hover,button:hover{background:var(--surface-2);border-color:#b4bdc9;text-decoration:none}.btn[aria-disabled=true],button:disabled{opacity:.55;cursor:not-allowed}.btn-primary,button.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover,button.btn-primary:hover{background:var(--primary-600);border-color:var(--primary-600)}.btn-danger,button.btn-danger{color:var(--critical);border-color:var(--critical-border)}.btn-danger:hover,button.btn-danger:hover{background:var(--critical-bg)}.btn-sm,button.btn-sm{height:28px;padding:0 10px;font-size:13px}.btn-ghost,button.btn-ghost{border-color:transparent;background:transparent}.g-bar .g-txt:empty{display:none}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 10px;height:34px;min-width:0;transition:border-color .12s,box-shadow .12s}textarea{height:auto;padding:8px 10px;resize:vertical}input[type=checkbox]{height:16px;width:16px;padding:0;accent-color:var(--primary)}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(42,120,214,.22)}.field{display:grid;grid-gap:5px;gap:5px;min-width:0}.field-label,.field>span{font-size:12px;font-weight:600;color:var(--text-2)}.form-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr))}.form-grid .span-2{grid-column:span 2}.form-grid .span-all{grid-column:1/-1}.inline-form{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.form-msg{font-size:13px;flex-basis:100%}.form-msg.ok{color:var(--good)}.form-msg.err{color:var(--critical)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:500}.chip:has(input:checked){border-color:var(--primary);background:var(--primary-50);color:var(--primary-700)}.chip.is-disabled{opacity:.5;cursor:not-allowed}.segmented{display:inline-flex;background:var(--neutral-bg);border:1px solid var(--border);border-radius:8px;padding:3px;gap:2px}.segmented a{padding:4px 12px;border-radius:6px;color:var(--text-2);font-weight:550;white-space:nowrap}.segmented a:hover{text-decoration:none;color:var(--text)}.segmented a[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.meter{position:relative;height:8px;background:#e8ecf1;border-radius:999px;overflow:hidden;min-width:80px;flex:1 1}.meter>.fill{position:absolute;inset:0 auto 0 0;background:var(--primary);border-radius:999px}.meter>.down{position:absolute;inset:0 0 0 auto;background:repeating-linear-gradient(135deg,#b8c0cc 0 3px,transparent 3px 6px)}.meter.is-high>.fill{background:var(--primary-700)}.meter-row{display:flex;align-items:center;gap:10px}.meter-value{font-weight:650;min-width:44px;text-align:right}.steps{list-style:none;margin:0;padding:0}.step{display:grid;grid-template-columns:30px minmax(150px,1.2fr) minmax(130px,1fr) minmax(200px,1.4fr) 210px;grid-gap:12px;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--border)}.step:last-child{border-bottom:none}.step-index{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--neutral-bg);color:var(--neutral);border:1px solid var(--neutral-border)}.step.is-running .step-index{background:var(--primary);border-color:var(--primary);color:#fff}.step.is-done .step-index{background:var(--good-bg);border-color:var(--good-border);color:var(--good)}.step-title{font-weight:600}.step-meta{color:var(--muted);font-size:12px}.step-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.machine-card{display:flex;flex-direction:column}.machine-card .card-body{display:grid;grid-gap:14px;gap:14px;align-content:start;flex:1 1}.machine-card.is-inactive{opacity:.65}.machine-card.is-down{border-color:var(--critical-border)}.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.kv div{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.kv b{display:block;font-size:15px}.kv span{color:var(--muted);font-size:12px}.queue{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.queue li{border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;display:grid;grid-gap:6px;gap:6px}.queue li.is-running{border-color:var(--info-border);background:var(--info-bg)}details.settings summary{cursor:pointer;color:var(--text-2);font-weight:550;list-style:none}details.settings summary::-webkit-details-marker{display:none}details.settings summary:before{content:"▸ "}details.settings[open] summary:before{content:"▾ "}.gantt-scroll{overflow-x:auto}.gantt{min-width:900px;padding:4px 18px 14px}.g-row{display:grid;grid-template-columns:190px 1fr;align-items:stretch;min-height:46px;border-top:1px solid var(--border)}.g-row.g-head{border-top:none;min-height:40px}.g-label{padding:8px 12px 8px 0;z-index:3;display:grid;align-content:center}.g-label a{color:var(--text);font-weight:600}.g-label small{font-size:12px}.g-track{position:relative}.g-bar{position:absolute;top:9px;height:28px;border-radius:5px;font-size:12px;font-weight:550;line-height:28px;padding:0 7px;white-space:nowrap;cursor:default;box-shadow:0 1px 2px rgba(15,23,42,.15)}.g-txt{display:block;overflow:hidden;text-overflow:ellipsis}.g-bar:focus,.g-bar:hover{z-index:6;outline:2px solid var(--text);outline-offset:1px}.g-tip{display:none;position:absolute;left:0;top:34px;z-index:10;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow-lg);font-size:12px;font-weight:400;line-height:1.6;white-space:nowrap}.g-tip strong{font-size:13px}.g-bar.is-tapped .g-tip,.g-bar:focus .g-tip,.g-bar:hover .g-tip{display:block}.g-down{position:absolute;top:5px;bottom:5px;border-radius:4px;font-size:11px;font-weight:600;padding:2px 5px;overflow:hidden;white-space:nowrap}.g-axis{position:relative;height:40px}.g-tick{top:6px;bottom:0;border-left:1px solid var(--border-strong);font-size:12px;font-weight:600;color:var(--text-2);padding-left:6px;white-space:nowrap}.g-hour,.g-tick{position:absolute}.g-hour{top:24px;font-size:10px;color:var(--muted);transform:translateX(-50%)}.g-grid{border-left:1px dashed #edf0f4}.g-day,.g-grid{position:absolute;top:0;bottom:0;pointer-events:none}.g-day{border-left:1px solid var(--border)}.g-now{position:absolute;top:0;bottom:0;border-left:2px solid var(--critical);pointer-events:none;z-index:4}.g-now-label{position:absolute;top:2px;transform:translateX(-50%);background:var(--critical);color:#fff;font-size:10px;font-weight:700;padding:0 5px;border-radius:3px;z-index:5}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--text-2);align-items:center}.sw{display:inline-block;width:18px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:6px}.order-layout{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1.3fr) minmax(340px,1fr);align-items:start}.order-aside{position:-webkit-sticky;position:sticky;top:76px}.plan-hero{padding:14px 16px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.plan-steps{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.plan-steps li{grid-template-columns:26px 1fr auto;grid-gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm)}.load-row,.plan-steps li{display:grid;gap:10px;align-items:center}.load-row{grid-template-columns:minmax(110px,160px) 1fr 72px;grid-gap:10px;font-size:13px}.load-row>:last-child{text-align:right}.inline-form:has(.field){align-items:flex-end}.stack>button{justify-self:start}.card-footer.stack>button{justify-self:stretch}@media (max-width:1100px){.order-layout{grid-template-columns:1fr}.order-aside{position:static}}@media (max-width:1180px){.step{grid-template-columns:30px 1fr}.step>:nth-child(n+3){grid-column:2}.step-actions{justify-content:flex-start}}@media (max-width:640px){.page{padding:16px 12px;gap:14px}.card-body,.card-header{padding-left:14px;padding-right:14px}.stat-value{font-size:24px}.kv{grid-template-columns:1fr 1fr}.form-grid .span-2{grid-column:1/-1}}.queue-more{display:block;margin-top:8px;font-size:13px;font-weight:550}.btn-lg,button.btn-lg{height:52px;min-width:52px;padding:0 22px;font-size:17px;border-radius:8px}a.btn.btn-lg{display:inline-flex;align-items:center;justify-content:center}.input-lg{height:52px;font-size:20px;padding:0 14px}dialog.modal{border:none;border-radius:var(--radius);padding:0;width:min(480px,calc(100vw - 24px));max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);color:var(--text)}dialog.modal.modal-wide{width:min(760px,calc(100vw - 24px))}dialog.modal::-webkit-backdrop{background:rgba(15,23,42,.45)}dialog.modal::backdrop{background:rgba(15,23,42,.45)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-close{width:40px;height:40px;font-size:22px;line-height:1;border-color:transparent;background:transparent}.modal-body{padding:18px;overflow-y:auto;max-height:calc(100vh - 220px)}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2)}.modal-footer .form-msg{flex-basis:auto}.modal-ask{background:var(--warning-bg);justify-content:space-between;font-weight:550}.modal-form{display:grid;grid-gap:14px;gap:14px}.choice-list{border:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.choice{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border:1px solid var(--border-strong);border-radius:8px;font-size:16px;font-weight:550;cursor:pointer}.choice:has(input:checked){border-color:var(--primary);background:var(--primary-50)}.choice input{width:20px;height:20px;accent-color:var(--primary)}.floor-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}a.floor-card{display:grid;grid-gap:10px;gap:10px;min-height:140px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text)}a.floor-card:hover{text-decoration:none;border-color:var(--primary)}.floor-card h2{font-size:19px}.floor-card .floor-now{font-size:15px;color:var(--text-2)}.floor-card .floor-queue{font-size:28px;font-weight:700;line-height:1}.floor-current{border:2px solid var(--primary)}.floor-current.is-paused{border-color:var(--warning-border)}.floor-title{font-size:24px;font-weight:700;line-height:1.25}.floor-facts{display:grid;grid-gap:12px 20px;gap:12px 20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));margin:16px 0}.floor-facts dt{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.floor-facts dd{margin:2px 0 0;font-size:18px;font-weight:600}.floor-clock{font-size:36px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.floor-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.floor-queue-list{list-style:none;margin:0;padding:0}.floor-queue-list li{display:grid;grid-template-columns:40px 1fr auto;grid-gap:14px;gap:14px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);min-height:76px}.floor-queue-list li:last-child{border-bottom:none}.floor-queue-list .step-index{width:36px;height:36px;font-size:15px}@media (max-width:700px){.floor-queue-list li{grid-template-columns:36px 1fr}.floor-queue-list li>:last-child{grid-column:2}}button.btn-quiet{height:48px;min-width:72px;padding:0 16px;font-size:15px;font-weight:500;color:var(--muted);background:transparent;border-color:var(--border)}button.btn-quiet:hover{color:var(--text-2);background:var(--surface-2)}.floor-actions .badge{font-size:14px;padding:5px 12px}:root{--sidebar-w:236px;--sidebar-w-collapsed:68px;--sidebar-bg:#0f1b2d;--sidebar-fg:#c3cddb}.app-shell{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:100vh}.app-main{min-width:0}.logo{display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:15.5px;letter-spacing:-.01em;white-space:nowrap}.logo-mark{flex-shrink:0;display:block}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;width:var(--sidebar-w);display:flex;flex-direction:column;background:var(--sidebar-bg);color:var(--sidebar-fg);border-right:1px solid #0b1422;transition:width .15s ease;z-index:40}.sidebar.is-collapsed{width:var(--sidebar-w-collapsed)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 16px;flex-shrink:0}.sidebar-brand:hover{text-decoration:none}.sidebar-cta{margin:4px 14px 10px;height:38px;gap:8px}.sidebar-nav{flex:1 1;overflow-y:auto;padding:4px 10px 12px;scrollbar-width:thin}.sidebar-group+.sidebar-group{margin-top:14px}.sidebar-group-title{padding:0 10px 6px;font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:#7f8ea3}.sidebar-link{display:flex;align-items:center;gap:12px;width:100%;height:38px;padding:0 10px;border:none;border-radius:8px;background:transparent;color:var(--sidebar-fg);font:inherit;font-weight:500;justify-content:flex-start;cursor:pointer;white-space:nowrap}.sidebar-link .icon{flex-shrink:0;opacity:.9}a.sidebar-link:hover,button.sidebar-link:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none;border-color:transparent}.sidebar-link[aria-current=page]{background:rgba(57,135,229,.24);color:#fff;box-shadow:inset 3px 0 0 #5b9ff0}.icon-btn:focus-visible,.sidebar-cta:focus-visible,.sidebar-link:focus-visible{outline:2px solid #8bbcf5;outline-offset:2px;box-shadow:none}.sidebar-foot{border-top:1px solid rgba(255,255,255,.08);padding:10px;display:grid;grid-gap:2px;gap:2px;flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:10px;padding:6px 8px 8px;min-width:0}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#22344f;color:#dbe7f6;font-size:12.5px;font-weight:700}.sidebar-user-text{display:grid;min-width:0;line-height:1.25}.sidebar-user-text strong{color:#fff;font-size:13.5px;overflow:hidden;text-overflow:ellipsis}.sidebar-user-text small{color:#8d9bb0;font-size:12px}.sidebar.is-collapsed .sidebar-group-title,.sidebar.is-collapsed .sidebar-label{display:none}.sidebar.is-collapsed .sidebar-head{justify-content:center;padding:0}.sidebar.is-collapsed .sidebar-cta{margin:4px 14px 10px;padding:0}.sidebar.is-collapsed .sidebar-link,.sidebar.is-collapsed .sidebar-user{justify-content:center;padding:0}.sidebar.is-collapsed .sidebar-group+.sidebar-group{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.07)}.sidebar.is-collapsed .sidebar-collapse .icon{transform:rotate(180deg)}.icon-btn{width:44px;height:44px;padding:0;border:none;border-radius:8px;background:transparent;color:inherit}.icon-btn:hover{background:rgba(255,255,255,.08);border-color:transparent}.drawer-backdrop,.drawer-close,.mobile-bar{display:none}@media (max-width:899px){.app-shell{display:block}.mobile-bar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;height:56px;padding:0 8px 0 4px;background:var(--sidebar-bg);color:#fff}.mobile-brand{flex:1 1;min-width:0}.mobile-brand:hover{text-decoration:none}.mobile-cta{height:36px;gap:6px;padding:0 12px}.sidebar,.sidebar.is-collapsed{position:fixed;left:0;top:0;width:min(300px,86vw);transform:translateX(-102%);transition:transform .18s ease;visibility:hidden}.sidebar.is-open{transform:none;visibility:visible;box-shadow:0 0 40px rgba(0,0,0,.35)}.sidebar.is-collapsed .sidebar-group-title,.sidebar.is-collapsed .sidebar-label{display:revert}.sidebar.is-collapsed .sidebar-link,.sidebar.is-collapsed .sidebar-user{justify-content:flex-start;padding:0 10px}.sidebar.is-collapsed .sidebar-head{justify-content:space-between;padding:0 16px}.drawer-close{display:inline-flex}.sidebar-collapse{display:none}.drawer-backdrop{display:block;position:fixed;inset:0;z-index:35;background:rgba(15,23,42,.5)}body.drawer-open{overflow:hidden}}@media (max-width:380px){.mobile-cta span{display:none}.mobile-cta{width:40px;padding:0}}@media (prefers-reduced-motion:reduce){.sidebar,.sidebar.is-collapsed{transition:none}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.login-brand{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 0 0,#1d3557 0,#0f1b2d 55%,#0a1220 100%);color:#fff;display:flex;align-items:center;padding:48px clamp(32px,6vw,88px)}.login-pattern{position:absolute;inset:0;width:100%;height:100%}.login-brand-inner{position:relative;display:grid;grid-gap:18px;gap:18px;max-width:420px}.login-brand .logo-text{font-size:24px}.login-tagline{margin:0;font-size:17px;line-height:1.5;color:#c6d3e4}.login-swatches{display:flex;gap:8px}.login-swatches span{width:28px;height:8px;border-radius:4px}.login-form-col{display:grid;place-items:center;padding:32px 24px;background:var(--surface)}.login-form-box{width:min(380px,100%);display:grid;grid-gap:20px;gap:20px}.login-form-box h1{font-size:24px}.login-mobile-logo{display:none}.login-mobile-logo .logo-text{color:var(--text)}.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:52px}.password-toggle{position:absolute;right:4px;top:4px;color:var(--muted)}.password-toggle:hover{background:var(--surface-2);color:var(--text)}.password-toggle:focus-visible{outline:2px solid var(--primary)}input[aria-invalid=true]{border-color:var(--critical)}input[aria-invalid=true]:focus{box-shadow:0 0 0 3px rgba(180,35,35,.18)}.login-error{align-items:center}@media (max-width:899px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-form-col{align-items:start;padding-top:12vh;background:var(--bg)}.login-form-box{background:var(--surface);padding:28px 22px;border-radius:var(--radius);box-shadow:var(--shadow)}.login-mobile-logo{display:block}}.grid>*,.page>*,.stats>*{min-width:0}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}@media (max-width:899px){.page{padding:18px 16px 28px;gap:16px}.table-wrap .table td:first-child,.table-wrap .table th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--border)}.table-wrap .table th:first-child{background:var(--surface-2);z-index:2}.table-wrap .table tr.is-late td:first-child{box-shadow:inset 3px 0 0 var(--critical),1px 0 0 var(--border)}.table td,.table th{padding-left:12px;padding-right:12px}.page-header{align-items:flex-start}.page-header h1{font-size:22px}}@media (max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:12px 14px}.stat-value{font-size:22px}.stat-sub{font-size:12px}.page-actions{width:100%}.page-actions>.segmented{max-width:100%;overflow-x:auto}.card-header{flex-wrap:wrap;padding-left:14px;padding-right:14px}.table-wrap .table td:first-child .cell-sub{min-width:0;max-width:46vw;white-space:normal}.table-wrap .table td:first-child{max-width:52vw}}a.g-bar{color:inherit;padding:0 4px;cursor:pointer;container-type:inline-size;overflow:visible}a.g-bar:hover{text-decoration:none}a.g-bar:focus-visible{outline:2px solid var(--text);outline-offset:1px;box-shadow:none}.g-txt{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@container (max-width: 170px){.g-title{display:none}}@container (max-width: 62px){.g-pre,.g-warn{display:none}}@container (max-width: 30px){.g-no{display:none}}.g-tip{width:max-content;max-width:320px;white-space:normal}.g-tip-left{left:auto;right:0}.g-tip-up{top:auto;bottom:34px}.gantt{padding-bottom:18px}a.floor-card{grid-template-rows:auto 1fr auto;align-content:start}.floor-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;grid-gap:10px;gap:10px}.floor-card-head h2{line-height:1.25}.floor-card-head .badge{margin-top:1px}.floor-type{font-size:13px;color:var(--muted);margin-top:2px}.floor-now{display:grid;grid-gap:8px;gap:8px;align-content:start;font-size:14px;color:var(--text-2)}.floor-job{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floor-card-foot{display:flex;align-items:baseline;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.grid-2-wide{grid-template-columns:repeat(auto-fit,minmax(min(100%,600px),1fr))}@media (max-width:640px){.table-wrap .table td:first-child .cell-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.floor-more{border-top:1px solid var(--border)}.floor-more>summary{display:flex;align-items:center;min-height:52px;padding:0 18px;font-weight:600;color:var(--primary);cursor:pointer}.g-label{position:-webkit-sticky;position:sticky;left:0;z-index:7;background:var(--surface);box-shadow:1px 0 0 var(--border)}.machine-card .card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;grid-gap:10px;gap:10px}@media (max-width:640px){.table-stack thead{display:none}.table-stack,.table-stack tbody{display:block}.table-stack tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 14px;gap:8px 14px;padding:12px 14px;border-bottom:1px solid var(--border)}.table-stack tbody tr:last-child{border-bottom:none}.table-wrap .table-stack td,.table-wrap .table-stack td:first-child{display:block;position:static;padding:0;border:none;box-shadow:none;max-width:none;background:none;text-align:left;white-space:normal}.table-stack td.stack-full,.table-stack td:first-child{grid-column:1/-1}.table-stack td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.table-stack tr.is-late{box-shadow:inset 3px 0 0 var(--critical)}.table-wrap .table-stack tr.is-late td:first-child{box-shadow:none}.table-stack td.stack-full .row{justify-content:flex-start!important;flex-wrap:wrap!important}.table-stack td:first-child .cell-sub{display:block;max-width:none;-webkit-line-clamp:unset}.table-stack tbody tr:hover td{background:none}}.stock-actions{justify-content:flex-end;gap:6px}@media (min-width:1300px){.stock-actions{flex-wrap:nowrap}}@media (max-width:640px){.table-stack td .nowrap{white-space:normal}.g-row{grid-template-columns:120px 1fr}.g-label small{display:none}}.table tfoot .table-total td{border-top:2px solid var(--border-strong);background:var(--surface-2);font-weight:650;padding-top:12px;padding-bottom:12px}