.context-menu{max-height:calc(100vh - 16px);overflow-y:auto;outline:none}.context-item{align-items:center}.context-item.active:not(:disabled),.context-item.open{background:var(--surface-2)}.context-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-shortcut{color:var(--muted);font-size:12px}.context-arrow{color:var(--muted)}@media(pointer:coarse){.context-item{padding:10px 12px}}.admin-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center}.admin-filters .input:not(.search){width:auto;min-width:140px}.admin-row-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.temp-password{display:flex;gap:8px;align-items:center;padding:12px;border:1px dashed var(--accent);border-radius:6px;background:var(--accent-soft)}.temp-password code{flex:1;font-size:18px;font-weight:600;letter-spacing:.04em;word-break:break-all}.roles-intro{margin:0 0 12px}.perm-chips{display:flex;flex-wrap:wrap;gap:4px}.roles-table .role-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.roles-table .role-desc{font-size:12px;margin-top:2px}.roles-table td:last-child{width:1%;white-space:nowrap}.role-form{border:1px solid var(--accent);border-radius:var(--radius);padding:14px;margin-bottom:14px;display:flex;flex-direction:column;gap:12px}.role-form h4{margin:0;font-size:15px}.role-form-actions{display:flex;gap:8px;flex-wrap:wrap}.perm-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 20px}.perm-section{border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px 10px;margin:0;min-width:0}.perm-section legend{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 4px;display:flex;gap:8px;align-items:center}.perm-feature{display:flex;flex-wrap:wrap;gap:4px 12px;padding:6px 0;border-bottom:1px solid var(--border)}.perm-feature:last-child{border-bottom:0}.perm-feature-name{flex:0 0 130px;font-weight:600}.perm-feature-opts{flex:1 1 160px;display:flex;flex-wrap:wrap;gap:4px 14px}.perm-opt{display:inline-flex;align-items:center;gap:6px;cursor:pointer;min-height:28px}.perm-opt input,.matrix-cell input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.link-btn{border:0;background:none;padding:0;color:var(--accent);font:inherit;font-size:12px;text-transform:none;letter-spacing:0;cursor:pointer}.perm-note{padding:8px 12px;margin-bottom:12px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:12px}.matrix-wrap{max-height:70vh}.matrix-table th,.matrix-table td{padding:6px 10px;vertical-align:middle}.matrix-table thead th{z-index:2}.matrix-sticky{position:sticky;left:0;background:var(--surface);z-index:1;min-width:200px;white-space:nowrap}.matrix-table thead .matrix-sticky{z-index:3;background:var(--surface-2)}.matrix-role{text-align:center!important;min-width:96px;white-space:normal}.matrix-cell{text-align:center!important}.matrix-section th,.matrix-section td{background:var(--surface-2);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);position:static}.matrix-section .matrix-sticky{position:sticky;background:var(--surface-2)}.matrix-perm{margin-left:8px;color:var(--muted)}.matrix-table tbody tr:not(.matrix-section):hover td{background:var(--surface-2)}.admin-nowrap{white-space:nowrap}.audit-changes{font-size:12px;max-width:420px;white-space:pre-wrap;word-break:break-word;margin:0}@media(max-width:640px){.perm-feature-name{flex-basis:100%}.matrix-sticky{min-width:150px;white-space:normal}.admin-filters>*{flex:1 1 100%}.admin-filters .input:not(.search){width:100%}.admin-hide-sm{display:none}}.tree:focus{outline:none}.tree:focus-visible .tree-row.focused{outline:2px solid var(--accent);outline-offset:-2px}.tree-row{touch-action:pan-y}.tree-row.drop-onto{background:var(--accent-soft)}.tree-row.dimmed{opacity:.45}.tree-dragging .tree-row{cursor:grabbing}.tree-row .tree-twisty{flex:none}.tree-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--border);flex:none}.tree-drag-overlay{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:600;box-shadow:0 4px 14px #0000004d;pointer-events:none;white-space:nowrap;max-width:320px}.tree-drag-label{overflow:hidden;text-overflow:ellipsis}.tree-drag-copy{font-weight:800}.tree-drag-count{background:#ffffff40;padding:0 6px;border-radius:10px;font-size:11px}.small{font-size:12px}.wrap{flex-wrap:wrap}.mfg-narrow{max-width:320px}.mfg-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:16px;align-items:start}@media(max-width:900px){.mfg-layout{grid-template-columns:1fr}}.mfg-ops{display:flex;flex-direction:column;gap:10px}.mfg-op{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mfg-op-head{display:flex;align-items:center;gap:8px}.mfg-step{color:var(--muted);min-width:32px}.mfg-op-name{flex:1;min-width:0}.mfg-op-fields{display:grid;grid-template-columns:70px minmax(160px,2fr) repeat(3,minmax(80px,1fr)) auto;gap:8px}@media(max-width:700px){.mfg-op-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.mfg-wc{grid-column:span 2}}.mfg-flags label{font-size:13px}.mfg-op-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.mfg-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;padding:6px;border:1px dashed var(--border);border-radius:6px;flex:1}.mfg-chips.drop-over{border-color:var(--accent);background:var(--accent-soft)}.mfg-unassigned{min-height:48px;margin-bottom:8px}.mfg-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:13px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:auto}.mfg-chip.selected{border-color:var(--accent);background:var(--accent-soft)}.mfg-chip.dragging{opacity:.4}.mfg-grip{cursor:grab;color:var(--muted);touch-action:none;padding:4px 2px;font-size:16px;line-height:1}.mfg-drag-ghost{position:fixed;z-index:200;pointer-events:none;background:var(--accent);color:var(--accent-ink);padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:var(--shadow)}.mfg-place{font-size:12px}.mfg-issues{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:4px}.mfg-issues .bad{color:var(--bad)}.mfg-issues .warn{color:var(--warn)}.mfg-json{max-height:320px;overflow:auto;background:var(--surface-2);padding:8px;border-radius:6px;font-size:12px;white-space:pre}.mfg-notice{background:var(--warn-soft);color:var(--warn);padding:10px 12px;border-radius:6px}.mfg-floor-pick{font-size:18px;min-height:48px;max-width:420px}.mfg-floor{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}@media(max-width:500px){.mfg-floor{grid-template-columns:1fr}}.mfg-floor-card{background:var(--surface);border:1px solid var(--border);border-left:6px solid var(--accent);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:6px}.mfg-floor-card.in_progress{border-left-color:var(--warn)}.mfg-floor-card h3{margin:4px 0 0;font-size:20px}.mfg-floor-wo{font-size:18px}.mfg-instructions{white-space:pre-wrap;background:var(--surface-2);padding:8px;border-radius:6px;margin:0}.mfg-parts{margin:0;padding-left:18px;font-size:14px}.mfg-big{min-height:52px;font-size:18px;flex:1}.mfg-bar-cell{width:35%}.mfg-bar{position:relative;height:14px;background:var(--surface-2);border-radius:4px;overflow:hidden;min-width:80px}.mfg-bar-fill,.mfg-bar-ready{position:absolute;left:0;top:0;bottom:0}.mfg-bar-fill{background:var(--accent-soft)}.mfg-bar-ready{background:var(--accent)}.traveler{max-width:1000px}.traveler-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:2px solid var(--text);padding-bottom:8px;margin-bottom:12px;flex-wrap:wrap}.traveler-head h1{margin:0;font-size:28px}.traveler-head p{margin:2px 0}.traveler-code{text-align:center}.mfg-barcode{max-width:100%;height:auto}.traveler-notes{white-space:pre-wrap;border:1px solid var(--border);padding:8px;border-radius:6px}.traveler-table{width:100%;border-collapse:collapse;font-size:14px}.traveler-table th,.traveler-table td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.traveler-tier td{background:var(--surface-2);font-weight:600}.traveler-table tr.skipped{color:var(--muted);text-decoration:line-through}.traveler-parts{margin:4px 0 0;padding-left:0;list-style:none;font-size:13px}.traveler-sign{width:130px}@media print{.no-print,.sidebar,.menu-toggle{display:none!important}.shell{display:block!important}.main{padding:0!important}.traveler{max-width:none;color:#000}.traveler-table th,.traveler-table td{border-color:#000}.traveler-table tr{break-inside:avoid}.traveler-tier td{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.wc-pin{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.wc-pin-title{margin:0;font-size:14px;display:flex;gap:8px;align-items:center}.wc-pin input{width:9em}@media(max-width:700px){.mfg-hide-sm{display:none}}.mfg-map-wrap{display:flex;flex-direction:column;gap:4px}.mfg-map-help{font-size:12px;margin:0}.mfg-steps>summary{cursor:pointer;padding:2px 0 10px}.mfg-steps[open]>summary{margin-bottom:8px;border-bottom:1px solid var(--border)}.mfg-steps>*+*{margin-top:10px}.fv{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}.fv-bar{display:flex;align-items:center;gap:6px;padding:6px 8px;padding-top:max(6px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);min-height:48px}.fv-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2;padding:0 6px}.fv-title strong,.fv-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-sub{font-size:12px;color:var(--muted)}.fv-group{display:flex;align-items:center;gap:4px}.fv-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-decoration:none;white-space:nowrap;touch-action:manipulation}.fv-btn:hover:not(:disabled){background:var(--surface-2);text-decoration:none}.fv-btn:disabled{opacity:.45;cursor:default}.fv-btn.fv-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.fv-count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:3em;text-align:center}.fv-sep{width:1px;align-self:stretch;background:var(--border);margin:0 4px}.fv-body{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.fv-message{margin:auto;padding:24px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:12px}.fv-error{color:var(--bad)}.fv-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:6px 8px;padding-bottom:max(6px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border)}.fv-pdf{flex:1;min-height:0;display:flex;flex-direction:column}.fv-pdf-scroll{flex:1;min-height:0;overflow:auto;padding:8px;background:var(--surface-2);display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.fv-pdf-page{margin:0 auto;box-shadow:var(--shadow);background:#fff;flex:none}.fv-pagebox{display:inline-flex;align-items:center;gap:4px}.fv-pageinput{width:3.2em;min-height:40px;text-align:center;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}.fv-image-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.fv-image{flex:1;min-height:0;overflow:hidden;display:grid;place-items:center;background:var(--surface-2);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.fv-image:active{cursor:grabbing}.fv-image img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;will-change:transform}.fv-model{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.fv-model-canvas{flex:1;min-height:0;position:relative;overflow:hidden;touch-action:none;background:radial-gradient(circle at 50% 40%,var(--surface) 0%,var(--surface-2) 100%)}.fv-model-canvas canvas{display:block;width:100%;height:100%}.fv-model-overlay{position:absolute;inset:0 0 56px;display:flex;pointer-events:none}.fv-model-info{position:absolute;left:10px;bottom:64px;font-size:12px;color:var(--muted);pointer-events:none}@media(max-width:600px){.fv-hide-sm{display:none}.fv-btn{min-width:38px;padding:0 8px}.fv-tools{gap:4px}}.items-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.items-filters .search{flex:1 1 240px;max-width:360px}.items-filters select{width:auto;min-width:140px}.items-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.items-actions{justify-content:flex-end;flex-wrap:wrap}.items-actions .btn{padding:4px 8px;min-height:28px}.items-title{flex-wrap:wrap}.items-show-sm{display:none}.items-prewrap{white-space:pre-wrap}.items-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;margin:0}.items-dl dt{font-size:12px;font-weight:600;color:var(--muted)}.items-dl dd{margin:2px 0 0}.items-dl+.items-dl,.items-prewrap+.items-dl{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.items-picklist{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--border);border-radius:6px;max-height:240px;overflow:auto}.items-picklist li{border-bottom:1px solid var(--border)}.items-picklist li:last-child{border-bottom:0}.items-picklist li.muted{padding:8px 10px}.items-picklist button{width:100%;text-align:left;background:none;border:0;padding:8px 10px;font:inherit;color:var(--text);cursor:pointer}.items-picklist button:hover,.items-picklist button:focus{background:var(--surface-2)}.items-grid-wrap{overflow:visible}.items-grid td{padding:4px 6px;vertical-align:top}.items-grid th{padding:6px}.items-grid .input{min-height:30px;padding:4px 8px}.items-col-no{width:36px;text-align:right;padding-top:10px!important}.items-col-comp{width:32%;min-width:220px}.items-col-qty{width:96px}.items-col-uom{width:72px}.items-col-op{width:140px}.items-col-act{width:1%;white-space:nowrap}.items-row-btns .btn{padding:2px 6px;min-height:28px}.items-row-error td{background:var(--bad-soft)}.items-grid-foot{margin-top:10px;flex-wrap:wrap;font-size:12px}.items-combo{position:relative}.items-combo-desc{font-size:12px;padding:2px 2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-height:18px}.items-unresolved{border-color:var(--warn);background:var(--warn-soft)}.items-combo-list{position:absolute;z-index:30;left:0;top:34px;min-width:100%;width:max-content;max-width:min(560px,90vw);list-style:none;margin:0;padding:4px 0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow)}.items-combo-list li{padding:6px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.items-combo-list li.active{background:var(--accent-soft)}.items-asm-row td{background:var(--surface-2);font-weight:600}.items-desc{font-size:12px;font-weight:400}.items-exploded tfoot td,.table tfoot td{border-top:2px solid var(--border);border-bottom:0}.items-qtybox .input{width:90px}.items-details{margin-top:16px}@media(max-width:700px){.items-hide-sm{display:none}.items-show-sm{display:block}.items-filters .search{max-width:none;flex-basis:100%}.items-filters select{flex:1 1 0;min-width:0}.items-grid thead{display:none}.items-grid,.items-grid tbody{display:block}.items-grid tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 8px;padding:10px;border-bottom:1px solid var(--border)}.items-grid td{display:block;border:0;padding:0;width:auto!important;min-width:0}.items-grid td[data-label]:before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:var(--muted)}.items-grid .items-col-no{display:none}.items-grid .items-col-comp,.items-grid td[data-label=Notes],.items-grid .items-col-act{grid-column:1 / -1}.items-grid .items-col-act .row{justify-content:flex-end}.items-combo-list{max-width:calc(100vw - 48px)}}.items-ws{display:grid;grid-template-columns:var(--items-tree-w, 300px) 6px minmax(320px,1fr) 6px var(--items-detail-w, 480px);height:calc(100vh - 150px);min-height:420px}.items-ws-pane{min-width:0;min-height:0;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.items-ws-list{background:transparent;border:0;display:flex;flex-direction:column}.items-ws-tree{padding:6px}.items-ws-detail{padding:12px 14px}.items-ws-pane-head{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}.items-ws-resizer{cursor:col-resize;position:relative}.items-ws-resizer:after{content:"";position:absolute;inset:0 2px;border-radius:2px}.items-ws-resizer:hover:after,.items-ws-resizer:focus-visible:after{background:var(--accent-soft)}.items-ws-resizer:focus{outline:none}.items-ws-table{flex:1;min-height:0;overflow:auto}.items-ws-table:focus{outline:none}.items-ws-table:focus-visible{box-shadow:0 0 0 2px var(--accent)}.items-ws-table .table td{padding:6px 10px}.items-row-selected td{background:var(--accent-soft)!important}.items-row-current td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.items-selbar{display:flex;align-items:center;gap:8px;padding:4px 8px;margin-bottom:8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-weight:600}.items-panes-switch{display:none}.items-small{font-size:12px}.items-nowrap{white-space:nowrap}.items-note{margin:0 0 10px;font-size:13px}.items-swatch-inline{display:inline-block;vertical-align:-1px;margin-right:6px}.items-tree{min-height:100%}.items-tree-inactive{opacity:.55;text-decoration:line-through}.items-folder{color:var(--muted);font-size:12px;flex:none}.items-detail-head{margin-bottom:10px}.items-detail-title{justify-content:space-between;flex-wrap:wrap}.items-detail-title h2{margin:0;font-size:18px}.items-detail-head p{margin:4px 0 0}.items-ws-detail .tabs{flex-wrap:nowrap}.items-ws-detail .items-dl{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.items-links{display:inline-flex;flex-wrap:wrap;gap:4px 8px}.items-linkbtn{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit}.items-linkbtn:hover{text-decoration:underline}.items-fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin:0;display:flex;flex-direction:column;gap:12px}.items-fieldset legend{font-size:12px;font-weight:600;color:var(--muted);padding:0 4px}.items-plain-fieldset{border:0;padding:0;margin:0;min-width:0}.items-color-input{width:40px;height:34px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--surface);flex:none;cursor:pointer}.items-dims{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}.items-material{display:flex;gap:16px;align-items:flex-start}.items-swatch-big{width:96px;height:96px;flex:none;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);overflow:hidden}.items-swatch-big img{width:100%;height:100%;object-fit:cover;display:block}.items-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:18px;text-align:center;color:var(--muted);cursor:pointer;margin-bottom:12px}.items-dropzone.over,.items-dropzone:hover,.items-dropzone:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);outline:none}.items-att-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.items-att{display:flex;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:8px;min-width:0}.items-att.swatch{border-color:var(--accent)}.items-att-thumb{width:72px;height:72px;flex:none;border-radius:6px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.items-att-thumb img{width:100%;height:100%;object-fit:cover}.items-att-ext{font-size:12px;font-weight:700;color:var(--muted)}.items-att-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start}.items-att-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.items-att-meta{font-size:12px}.items-bulk-row{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center}.items-bulk-off{opacity:.5}.items-cat-layout{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:16px;align-items:start}.items-scheme-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.items-scheme-list button{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text);font:inherit;cursor:pointer}.items-scheme-list button:hover{background:var(--surface-2)}.items-scheme-list button.active{background:var(--accent-soft);border-color:var(--accent)}.items-segs{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.items-seg{display:grid;grid-template-columns:120px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.items-seg-kind{font-weight:600;font-size:13px}.items-seg-opts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.items-seg-opts .input{width:auto;flex:1 1 120px;min-width:0}.items-seg-opts label .input{width:72px;display:inline-block;margin-left:4px}.items-seg-add{flex-wrap:wrap;margin-top:8px}.items-preview{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:10px}.items-preview-out{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.items-preview-num{font-size:20px;font-weight:700;color:var(--accent)}@media(max-width:1400px){.items-hide-md{display:none}}@media(max-width:1099px){.items-panes-switch{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:10px}.items-ws{display:block;height:auto;min-height:0}.items-ws-resizer{display:none}.items-ws-pane{display:none;overflow:visible}.items-ws.pane-tree .items-ws-tree,.items-ws.pane-list .items-ws-list,.items-ws.pane-detail .items-ws-detail{display:block}.items-ws.pane-list .items-ws-list{display:flex}.items-ws-tree .tree-row{min-height:40px}.items-cat-layout{grid-template-columns:1fr}}@media(max-width:700px){.items-seg{grid-template-columns:1fr auto}.items-seg-opts{grid-column:1 / -1;grid-row:2}.items-bulk-row{grid-template-columns:1fr;gap:4px}.items-material{flex-direction:column}.items-ws-detail{padding:10px}}.partners-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.partners-filters .search{flex:1 1 220px}.partners-list-notice{margin-bottom:12px;cursor:pointer}.partners-warning{background:var(--warn-soft);color:var(--warn);padding:10px 12px;border-radius:6px}.partners-notice{background:var(--good-soft);color:var(--good);padding:10px 12px;border-radius:6px}.partners-fieldset{border:0;margin:0;padding:0;min-width:0}.partners-fieldset:disabled .input{background:var(--surface-2)}.partners-address{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px 12px;margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}.partners-address legend{font-size:12px;font-weight:600;color:var(--muted);padding:0 4px}.partners-address-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px}.partners-reach{display:flex;flex-direction:column;gap:2px;word-break:break-word}.partners-toggles{display:flex;flex-direction:column;gap:4px;white-space:nowrap}.partners-toggles label,.partners-checks label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.partners-checks{display:flex;gap:8px 16px;flex-wrap:wrap}.partners-actions{width:1%;white-space:nowrap}@media(max-width:600px){.partners-hide-sm{display:none}.partners-address-row{grid-template-columns:1fr 1fr}.partners-address-row>:first-child{grid-column:1 / -1}}.rd-badge-wrap{position:relative;display:inline-block;outline:none}.rd-badge{display:inline-flex;align-items:center;gap:6px}.rd-badge.rd-green{background:var(--good-soft);color:var(--good)}.rd-badge.rd-red{background:var(--bad-soft);color:var(--bad)}.rd-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.rd-badge.rd-green .rd-dot,.rd-dot.rd-green{background:var(--good)}.rd-badge.rd-red .rd-dot,.rd-dot.rd-red{background:var(--bad)}.rd-dot.rd-grey{background:var(--border)}.rd-tip{display:none;position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:240px;max-width:min(340px,86vw);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000002e;padding:8px 10px;font-size:12px;font-weight:400;white-space:normal}.rd-badge-wrap:hover .rd-tip,.rd-badge-wrap:focus .rd-tip,.rd-badge-wrap:focus-within .rd-tip{display:grid;gap:6px}.rd-tip-title{font-weight:600;color:var(--muted)}.rd-tip-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2px 8px}.rd-tip-label{font-weight:600}.rd-tip-val{font-variant-numeric:tabular-nums}.rd-tip-detail{grid-column:2 / 4;color:var(--muted)}.table td.rd-cell{text-align:center;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.table td.rd-green{background:var(--good-soft);color:var(--good)}.table td.rd-red{background:var(--bad-soft);color:var(--bad)}.table td.rd-grey{background:var(--surface-2);color:var(--muted);font-weight:400}.table td.rd-none{color:var(--muted)}.rules-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.rules-set-card{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text)}.rules-set-card:hover{border-color:var(--accent);text-decoration:none}.rules-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:20px 0 8px}.rules-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.rules-preview{position:sticky;top:12px}@media(max-width:1100px){.rules-editor{grid-template-columns:1fr}.rules-preview{position:static}}.rules-columns{display:flex;gap:0;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;background:var(--surface)}.rules-col{flex:1 0 110px;padding:8px 10px;border-right:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-top:0;border-bottom:3px solid transparent;border-left:0}.rules-col:last-child{border-right:0}.rules-col.active{border-bottom-color:var(--accent);background:var(--accent-soft)}.rules-col.off{opacity:.5}.rules-col small{display:block;color:var(--muted);font-size:11px}.rule-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:12px}.rule-card+.rule-card{margin-top:12px}.rule-head{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.rule-head .field{flex:1 1 140px}.rule-head .field.key{flex:0 1 140px}.rule-review{background:var(--warn-soft);color:var(--warn);border-radius:6px;padding:8px 10px;display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:13px}.rule-sub{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.rule-sentence{font-size:13px;color:var(--muted);font-style:italic}.rule-check{display:inline-flex;align-items:center;gap:6px;font-size:13px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.seg button{border:0;background:var(--surface);color:var(--text);padding:6px 12px;font:inherit;cursor:pointer;min-height:32px}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.seg button.on.warn{background:var(--warn);color:var(--surface)}.cond-group{border:1px solid var(--border);border-left:3px solid var(--info);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}.cond-group .cond-group{background:var(--surface)}.cond-group-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}.cond-group-head .input{width:auto}.cond-leaf{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center}.cond-actions{display:flex;gap:6px;flex-wrap:wrap}.cond-actions .btn,.cond-leaf .btn{min-height:30px;padding:4px 10px}@media(max-width:640px){.cond-leaf{grid-template-columns:1fr 1fr}.cond-leaf>:first-child{grid-column:1 / -1}}.parts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px}.rules-preview .table td,.rules-preview .table th{padding:6px 8px;font-size:13px}.rules-preview-meta{font-size:12px;color:var(--muted)}.wip-filters{flex-wrap:wrap;margin-bottom:12px}.wip-filter-select{width:auto;min-width:160px}.wip-check{font-size:13px;color:var(--muted);cursor:pointer}.wip-text-warn{color:var(--warn);font-weight:600}.wip-text-bad{color:var(--bad);font-weight:600}.wip-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.wip-col{flex:1 0 260px;max-width:360px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:200px;scroll-snap-align:start}.wip-col.drop-over{outline:2px dashed var(--accent);outline-offset:-2px}.wip-col.over-limit{border-color:var(--bad);background:var(--bad-soft)}.wip-col-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);position:sticky;top:0}.wip-col-header h2{font-size:15px}.wip-col-count{font-weight:700;font-variant-numeric:tabular-nums}.wip-col-count.over{color:var(--bad)}.wip-col-body{display:flex;flex-direction:column;gap:8px;padding:8px}.wip-col-empty{text-align:center;padding:16px 0}.wip-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow);cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none}.wip-card:focus-visible{outline:2px solid var(--accent)}.wip-card.is-late{border-left-color:var(--warn)}.wip-card.is-blocked{border-left-color:var(--bad);background:var(--bad-soft)}.wip-card.is-dragging{opacity:.35}.wip-card.is-overlay{cursor:grabbing;transform:rotate(1.5deg);box-shadow:0 10px 30px #00000040}.wip-card-top{display:flex;align-items:center;gap:6px}.wip-card-top .wip-card-number{margin-right:auto}.wip-card-number{font-weight:700;font-size:16px;color:var(--text)}.wip-card-hull{font-weight:600}.wip-card-meta{font-size:13px}.wip-card-blocked{margin-top:6px;color:var(--bad);font-weight:600;font-size:13px}.wip-card-actions{display:grid;grid-template-columns:auto 1fr;gap:6px;margin-top:8px}.wip-card-actions .btn{min-height:44px;font-size:15px}@media(min-width:1800px){.wip-board-page{font-size:17px}.wip-col-header h2{font-size:20px}.wip-card-number{font-size:21px}.wip-card-meta,.wip-card-blocked{font-size:16px}.wip-col{max-width:440px}}@media(max-width:800px){.wip-col{flex-basis:82vw}}.wip-num-input{width:90px;text-align:right}.wip-new-stage{max-width:280px}.wip-stage-actions{flex-wrap:wrap}.wip-row-inactive td{opacity:.6}.wip-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.wip-stat{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.wip-pager{justify-content:center;margin-top:12px}.wip-picker{position:relative}.wip-picker-list{position:absolute;z-index:5;left:0;right:0;top:100%;margin:2px 0 0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);max-height:240px;overflow:auto}.wip-picker-list li{padding:0}.wip-picker-list li.muted{padding:6px 10px}.wip-picker-list button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;background:none;font:inherit;color:var(--text);cursor:pointer}.wip-picker-list button:hover{background:var(--surface-2)}.wip-picked{border:1px solid var(--border);border-radius:6px;padding:0 0 0 10px;min-height:34px;background:var(--surface-2)}.wip-title{flex-wrap:wrap}.wip-blocked-banner{margin-bottom:12px;font-weight:600}.wip-detail-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start}@media(max-width:900px){.wip-detail-grid{grid-template-columns:1fr}}.wip-dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0}.wip-dl dt{color:var(--muted);font-size:13px}.wip-dl dd{margin:0}.wip-notes{white-space:pre-wrap}.wip-explain ul{margin:0;padding-left:18px}.wip-explain p{margin:0}.wip-timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--border)}.wip-ev{position:relative;padding:0 0 14px 10px}.wip-ev:before{content:"";position:absolute;left:-21px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.wip-ev-blocked:before{background:var(--bad)}.wip-ev-unblocked:before,.wip-ev-completed:before{background:var(--good)}.wip-ev-late_risk:before{background:var(--warn)}.wip-ev-what{font-weight:600}.wip-ev-note{white-space:pre-wrap}.wip-ev-meta{font-size:12px}.wip-card-model{font-weight:700;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:0 6px;margin-right:4px}.wip-card-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;font-size:12px;margin:4px 0}.wip-build-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:12px}.engine-office{display:grid;gap:8px}.engine-office+.engine-office{border-top:1px solid var(--border);padding-top:12px}.engine-office-serial{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.06em}input.engine-office-serial{text-transform:uppercase}.engine-office-warn{color:var(--warn);font-size:13px}.bl-page{--bl-bar-h: 18px;--bl-segs: 12}.bl-view-toggle{display:inline-flex}.bl-view-toggle .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.bl-view-toggle .btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.bl-split{display:grid;grid-template-columns:minmax(360px,var(--bl-left, 64%)) 6px minmax(320px,1fr);height:calc(100vh - 140px);min-height:480px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.bl-split[data-showing=list]{grid-template-columns:minmax(0,1fr)}.bl-pane{display:flex;flex-direction:column;min-width:0;min-height:0;container-type:inline-size;container-name:blpane}.bl-splitter{cursor:col-resize;background:var(--surface-2);border-left:1px solid var(--border);border-right:1px solid var(--border);touch-action:none}.bl-splitter:hover,.bl-splitter:focus-visible{background:var(--accent-soft);outline:none}.bl-detail{overflow:auto;padding:16px 20px;min-width:0;background:var(--bg);container-type:inline-size}@container (max-width: 760px){.bl-detail .wip-detail-grid{grid-template-columns:1fr}}.bl-slot-label{display:none;font-size:11px;color:var(--muted)}.bl-detail .page-header h1{font-size:22px}.bl-detail .bl-back{margin-bottom:8px}.bl-back-phone{display:none}.bl-filters{padding:10px 12px 8px;border-bottom:1px solid var(--border);display:grid;gap:8px;background:var(--surface)}.bl-page>.bl-filters{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px}.bl-filter-row{display:flex;gap:6px;align-items:center}.bl-search{flex:1;min-width:0}.bl-has-filters{border-color:var(--accent);color:var(--accent);font-weight:600}.bl-chips{display:flex;flex-wrap:wrap;gap:4px}.bl-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;min-height:28px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.bl-chip:hover{background:var(--surface-2)}.bl-chip.is-on{background:var(--info-soft);border-color:var(--info);color:var(--info);font-weight:600}.bl-chip.tone-bad.is-on{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.bl-chip.tone-warn.is-on{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.bl-chip-n{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.bl-chip.is-on .bl-chip-n{color:inherit}.bl-more{display:grid;gap:8px;padding-top:4px;border-top:1px dashed var(--border)}.bl-more-stages{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.bl-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.bl-more-field{display:grid;gap:2px;min-width:0}.bl-more-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-right:4px}.bl-more-field .input{min-height:30px;padding:4px 8px;font-size:13px}.bl-head,.bl-row{display:grid;grid-template-columns:30px minmax(150px,1fr) minmax(calc(var(--bl-segs) * 16px + 44px),3fr) 104px 96px 84px 100px 62px;grid-template-areas:"seq id route stage due ready vendor flags";column-gap:8px;align-items:center;padding:0 12px}.bl-head{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-top:6px;padding-bottom:6px;border-bottom:1px solid var(--border);background:var(--surface-2);overflow-y:hidden;scrollbar-gutter:stable;border-left:3px solid transparent}.bl-list{flex:1;overflow:auto;outline:none;scrollbar-gutter:stable}.bl-list:focus-visible .bl-row.is-selected{outline:2px solid var(--accent);outline-offset:-2px}.bl-row{padding-top:5px;padding-bottom:5px;border-bottom:1px solid var(--border);border-left:3px solid transparent;cursor:pointer;font-size:13px}.bl-row:hover{background:var(--surface-2)}.bl-row.is-selected{background:var(--info-soft)}.bl-row.is-late{border-left-color:var(--warn)}.bl-row.is-blocked{border-left-color:var(--bad)}.bl-seq{grid-area:seq;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.bl-id{grid-area:id;display:grid;min-width:0}.bl-line1,.bl-line2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bl-line1{display:flex;align-items:center;gap:6px}.bl-line1 .wip-card-model{font-size:12px;margin:0}.bl-number{font-size:14px}.bl-hull{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}.bl-line2{font-size:12px}.bl-route{grid-area:route;display:flex;align-items:center;gap:6px;min-width:0}.bl-slot{min-width:0;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden}.bl-stage{grid-area:stage;justify-content:space-between}.bl-stage-name{overflow:hidden;text-overflow:ellipsis;font-weight:600}.bl-days{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.bl-days.is-long{color:var(--warn);font-weight:700}.bl-due{grid-area:due;font-variant-numeric:tabular-nums}.bl-ready{grid-area:ready;overflow:visible}.bl-ready .badge,.bl-vendor .badge,.bl-flags .badge{font-size:11px;padding:0 6px}.bl-vendor{grid-area:vendor}.bl-flags{grid-area:flags;flex-wrap:wrap;gap:2px}.bl-note{grid-column:2 / -1;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.bl-note.is-blocked{color:var(--bad)}.bl-group{position:sticky;top:0;z-index:1;padding:4px 12px;font-size:12px;font-weight:700;background:var(--surface-2);border-bottom:1px solid var(--border)}.bl-empty{padding:24px 16px;text-align:center}.bl-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:5px 12px;font-size:12px;border-top:1px solid var(--border)}.bl-legend{display:inline-flex;align-items:center;gap:4px}.bl-legend .bl-dot{margin-left:6px}.bl-route-main{flex:1;min-width:0;display:grid;gap:2px}.bl-bar,.bl-notes,.bl-head-segs{display:grid;grid-template-columns:repeat(var(--bl-segs),minmax(0,1fr));column-gap:1px}.bl-bar{height:var(--bl-bar-h);background:var(--border);border:1px solid var(--border);border-radius:4px;overflow:hidden}.bl-seg{position:relative;display:grid;grid-auto-rows:minmax(0,1fr);row-gap:1px;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:var(--border);font:inherit;cursor:pointer;touch-action:manipulation}.bl-seg:hover .bl-sub{opacity:.8}.bl-seg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.bl-seg.is-open{outline:2px solid var(--text);outline-offset:-2px;z-index:1}span.bl-seg{cursor:inherit}.bl-sub{display:block;min-height:0}.bl-dot{display:inline-block;width:10px;height:10px;border-radius:2px;border:1px solid var(--border);vertical-align:-1px}:is(.bl-sub,.bl-dot,.bl-seg).st-none{background:repeating-linear-gradient(135deg,var(--surface-2) 0 3px,var(--surface) 3px 6px)}:is(.bl-sub,.bl-dot).st-pending{background-color:var(--surface)}:is(.bl-sub,.bl-dot).st-ready{background-color:var(--info-soft);box-shadow:inset 0 0 0 1px var(--info)}:is(.bl-sub,.bl-dot).st-in_progress{background-color:var(--warn)}:is(.bl-sub,.bl-dot).st-done{background-color:var(--good)}:is(.bl-sub,.bl-dot).st-skipped{background:repeating-linear-gradient(135deg,var(--surface-2) 0 2px,var(--border) 2px 4px)}:is(.bl-sub,.bl-dot).is-outside{background-image:radial-gradient(circle,var(--text) 0 1.5px,transparent 2px)}.bl-notes{height:12px;width:100%;padding:0;margin:0;border:0;background:none;font:inherit;font-size:10px;line-height:12px;text-align:left;color:var(--muted);cursor:pointer}.bl-note-text{grid-row:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-variant-numeric:tabular-nums}.bl-note-text.tone-working{color:var(--warn)}.bl-note-text.tone-ready{color:var(--info)}.bl-note-text.tone-blocked{color:var(--bad)}.bl-notes:hover .bl-note-text{text-decoration:underline}.bl-pct{flex:none;width:38px;padding:2px 0;border:0;background:none;font:inherit;font-size:11px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer}button.bl-pct:hover,.bl-pct.is-open{color:var(--text);text-decoration:underline}button.bl-pct:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.bl-pct-head{cursor:default;font-size:9px}.bl-head .bl-route{align-self:end}.bl-head-seg{display:flex;flex-direction:column;align-items:center;min-width:0;overflow:hidden;font-size:9px;line-height:10px;letter-spacing:0;white-space:nowrap}.bl-pop{position:fixed;z-index:60;width:min(380px,calc(100vw - 16px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 30px #0003;outline:none;font-size:13px}.bl-pop.is-wide{width:min(580px,calc(100vw - 16px))}.bl-pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 6px 12px;border-bottom:1px solid var(--border)}.bl-pop-x{min-width:36px;min-height:36px;border:0;background:none;color:var(--muted);font:inherit;font-size:16px;cursor:pointer;border-radius:6px}.bl-pop-x:hover{background:var(--surface-2);color:var(--text)}.bl-pop-body{overflow:auto;padding:8px 12px;display:grid;gap:8px}.bl-pop-foot{display:flex;justify-content:space-between;gap:8px;padding:8px 12px;border-top:1px solid var(--border)}.bl-pop-step h3{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 2px;font-size:14px}.bl-pop-step+.bl-pop-step{border-top:1px dashed var(--border);padding-top:8px}.bl-pop-small{font-size:11px;font-weight:400}.bl-pop-line{margin:0}.bl-pop-label{margin:6px 0 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.bl-pop-list{margin:0;padding:0;list-style:none;display:grid;gap:3px}.bl-pop-boat{display:grid;gap:2px;padding:6px 8px;border-radius:6px;background:var(--surface-2)}.bl-pop-table{width:100%;border-collapse:collapse;font-size:12px}.bl-pop-table th{text-align:left;font-size:11px;font-weight:600;color:var(--muted);padding:2px 6px;border-bottom:1px solid var(--border)}.bl-pop-table td{padding:2px 6px;border-bottom:1px solid var(--border);vertical-align:middle}.bl-pop-table .num{text-align:right;font-variant-numeric:tabular-nums}.bl-pop-wc{color:var(--muted)}.bl-pop-steplink{display:inline-flex;align-items:center;min-height:30px;color:var(--text);text-decoration:none;text-align:left}.bl-pop-steplink:hover{text-decoration:underline}.bl-abbr{display:inline-block;min-width:30px;font-size:10px;font-weight:700;color:var(--muted)}@media(max-width:600px){.bl-pop,.bl-pop.is-wide{left:0!important;right:0;top:auto!important;bottom:0;width:100%;max-height:80vh;border-radius:var(--radius) var(--radius) 0 0}}@media(pointer:coarse){.bl-page{--bl-bar-h: 24px}}@container blpane (max-width: 980px){.bl-head,.bl-row{grid-template-columns:30px minmax(130px,1.2fr) repeat(5,minmax(0,1fr));grid-template-areas:"seq id route route route route route" "seq stage stage due ready vendor flags";row-gap:3px}.bl-head{grid-template-areas:"seq id route route route route route"}.bl-head>:not(.bl-route){display:none}.bl-flags{flex-wrap:nowrap}.bl-note{grid-column:2 / -1}}@container blpane (max-width: 560px){.bl-head,.bl-row{grid-template-columns:26px minmax(0,1fr) minmax(0,1fr);grid-template-areas:"seq id id" "seq route route" "seq stage due" "seq ready vendor" "seq flags flags"}.bl-head{grid-template-areas:"seq route route"}.bl-slot:empty{display:none}.bl-slot-label{display:inline}}@media(max-width:900px){.bl-split{display:block;height:auto;min-height:0;border:0;background:none;overflow:visible}.bl-pane{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.bl-list{max-height:none;overflow:visible}.bl-head{overflow:visible;scrollbar-gutter:auto}.bl-splitter,.bl-split[data-showing=detail] .bl-pane,.bl-split[data-showing=list] .bl-detail{display:none}.bl-detail{padding:0;background:none}.bl-back-desk{display:none}.bl-back-phone{display:inline}.bl-row{min-height:44px}}@media(min-width:1800px){.bl-page{--bl-bar-h: 22px}.bl-notes{font-size:12px;height:14px;line-height:14px}.bl-head-seg{font-size:11px;line-height:12px}.bl-row{font-size:15px}.bl-number{font-size:17px}}.sheets-wrap{flex-wrap:wrap}.sheets-connections{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.sheets-connection{border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}.sheets-mapping td{vertical-align:middle}.sheets-mapping .input{min-width:180px}.sheets-sample{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheets-options{margin-top:12px}.sheets-counts{flex-wrap:wrap;margin-top:6px}.sheets-steps{gap:6px}.sheets-step-name{display:inline-block;min-width:90px;font-weight:600;font-size:13px}.sheets-messages{margin:6px 0 0;padding-left:18px;max-height:280px;overflow:auto;font-size:13px}.sheets-messages li{margin:2px 0}.sheets-tree{list-style:none;margin:8px 0 0;padding:0;max-height:360px;overflow:auto;font-size:13px}.sheets-tree li{padding-top:2px;padding-bottom:2px;border-bottom:1px solid var(--border)}.sheets-files{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}.sheets-files li{border-bottom:1px solid var(--border)}.sheets-files li:last-child{border-bottom:0}.sheets-files .btn{width:100%;justify-content:flex-start;text-align:left;flex-wrap:wrap}.sheets-last{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.sheets-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;padding:8px 12px;border-radius:6px}.sheets-banner.good{background:var(--good-soft);color:var(--good)}.sheets-export{position:relative}.sheets-export>summary{list-style:none}.sheets-export>summary::-webkit-details-marker{display:none}.sheets-export-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:180px;padding:4px}.sheets-export-menu .btn{justify-content:flex-start}@media(max-width:800px){.sheets-sample{max-width:140px}.sheets-mapping .input{min-width:140px}.sheets-export-menu{right:auto;left:0}}.ns-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;align-items:start}.ns-help{font-size:14px}.ns-help ol{padding-left:20px;margin:8px 0}.ns-help li{margin-bottom:6px}.ns-help h3{font-size:14px;margin:12px 0 4px}.ns-checks{display:flex;flex-wrap:wrap;gap:8px 16px}.ns-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.ns-test{margin-top:12px;display:flex;flex-direction:column;gap:4px;font-size:14px}.ns-runs{display:flex;flex-direction:column;gap:8px}.ns-run{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.ns-run>summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;cursor:pointer;list-style:none}.ns-run>summary::-webkit-details-marker{display:none}.ns-run>summary:before{content:"▸";color:var(--muted)}.ns-run[open]>summary:before{content:"▾"}.ns-run-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}.ns-messages{margin:0;padding:8px 12px 8px 28px;max-height:280px;overflow:auto;background:var(--surface-2);border-radius:6px;font-size:13px}.ns-messages li{margin:2px 0;word-break:break-word}.ns-section-gap{margin-top:16px}@media(max-width:860px){.ns-layout{grid-template-columns:1fr}}.ns-push-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px}.ns-push-run{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.sync-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;align-items:stretch;margin-bottom:16px}.sync-hub{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:22px}.sync-hub strong{font-size:15px;color:var(--text);padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.sync-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0;font-size:14px}.sync-dl dt{color:var(--muted)}.sync-dl dd{margin:0;min-width:0}.sync-last{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.sync-err{flex-basis:100%;word-break:break-word}.sync-owners select{min-width:220px;max-width:100%}@media(max-width:860px){.sync-flow{grid-template-columns:1fr}.sync-hub{flex-direction:row;font-size:18px}.sync-hub span{transform:rotate(90deg)}.sync-dl{grid-template-columns:1fr;gap:2px}.sync-dl dd{margin-bottom:6px}.sync-owners select{min-width:0;width:100%}}.notif-toolbar{flex-wrap:wrap}.notif-status-filter{max-width:200px}.notif-reason{margin:0}.notif-test-form{display:grid;grid-template-columns:160px 1fr auto;gap:12px;align-items:end}.notif-test-result{margin-top:12px}.notif-test-result:empty{display:none}.notif-error{color:var(--bad);font-size:12px;margin-top:4px;max-width:320px;overflow-wrap:anywhere}.notif-msg{max-width:420px;overflow-wrap:anywhere}.notif-fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px 16px;margin:0;min-width:0}.notif-fieldset legend{font-weight:600;padding:0 6px}.notif-checklist{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow:auto;padding:6px 0}.notif-checklist label{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.notif-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.notif-chip{font:12px ui-monospace,SF Mono,Menlo,Consolas,monospace;padding:3px 8px;border-radius:999px;border:1px solid var(--border);background:var(--accent-soft);color:var(--accent);cursor:pointer}.notif-chip:hover{filter:brightness(.96)}.notif-editor{display:grid;grid-template-columns:1fr 1fr;gap:16px}.notif-preview{background:var(--surface-2);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}.notif-preview-subject{font-weight:600}.notif-preview-body{white-space:pre-wrap;overflow-wrap:anywhere}.notif-channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:12px 16px;align-items:start}.notif-status-line{display:flex;flex-wrap:wrap;gap:4px 12px;overflow-wrap:anywhere}.notif-radios{display:flex;flex-wrap:wrap;gap:8px 20px;padding:6px 0}.notif-radios label{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.notif-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px 16px}.notif-flush{margin:0}@media(max-width:800px){.notif-test-form,.notif-editor{grid-template-columns:1fr}.notif-hide-narrow{display:none}}.mat-small{font-size:12px}.mat-nowrap{white-space:nowrap}.mat-wrap{flex-wrap:wrap}.mat-mini{padding:3px 8px;min-height:28px;font-size:13px}.mat-check{font-size:14px;white-space:nowrap;cursor:pointer}.mat-low{color:var(--bad);font-weight:600}.mat-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.mat-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}.mat-type-select{display:none}.mat-types{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px}.mat-type{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}.mat-type:hover{background:var(--surface-2)}.mat-type.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.mat-tree-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:8px}.mat-tree-head{padding:2px 4px 6px}.mat-tree-all{display:block;width:100%;text-align:left;padding:5px 10px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.mat-tree-all:hover{background:var(--surface-2)}.mat-tree-all.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.mat-tree-label{display:inline-flex;align-items:center;gap:6px}.mat-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--border);flex:none}.mat-hint{margin:8px 4px 0}.tree-row.mat-drop-target{outline:2px dashed var(--accent);background:var(--accent-soft)}.mat-main{min-width:0}.mat-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.mat-filters .search{flex:1 1 220px;max-width:360px}.mat-filters select{width:auto;min-width:140px}.mat-view-toggle{display:inline-flex;margin-left:auto}.mat-view-toggle .btn{border-radius:0}.mat-view-toggle .btn:first-child{border-radius:6px 0 0 6px}.mat-view-toggle .btn:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.mat-selbar{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:10px;background:var(--accent-soft);color:var(--accent);border-radius:6px;flex-wrap:wrap}.mat-flash{padding:6px 10px;margin-bottom:10px;background:var(--good-soft);color:var(--good);border-radius:6px}.mat-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:12px}.mat-swatch{display:block;flex:none;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);object-fit:cover}.mat-swatch-sm{width:28px;height:28px}.mat-swatch-md{width:100%;aspect-ratio:4 / 3;height:auto}.mat-swatch-lg{width:56px;height:56px}.mat-swatch-empty{background:repeating-linear-gradient(45deg,var(--surface-2) 0 6px,var(--surface) 6px 12px)}.mat-col-sw{width:44px}.mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.mat-card{display:flex;flex-direction:column;gap:4px;padding:8px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;cursor:pointer;min-width:0}.mat-card:hover{border-color:var(--accent)}.mat-card.selected{outline:2px solid var(--accent);outline-offset:-1px;background:var(--accent-soft)}.mat-card.inactive{opacity:.6}.mat-card[draggable=true]{cursor:grab}.mat-card-num{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-card-desc{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-card-meta{display:flex;justify-content:space-between;gap:6px;font-size:12px;font-variant-numeric:tabular-nums}.mat-drawer-backdrop{position:fixed;inset:0;z-index:40;background:#00000040;display:flex;justify-content:flex-end}.mat-drawer{width:min(520px,100%);height:100%;background:var(--surface);box-shadow:-8px 0 24px #0000002e;display:flex;flex-direction:column}.mat-drawer-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.mat-drawer-title{min-width:0}.mat-drawer-title .muted{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-drawer-body{padding:12px 16px 24px;overflow:auto;flex:1}.mat-drawer-foot{margin:20px 0 0;font-size:13px}.mat-fieldset{border:0;padding:0;margin:0;min-width:0}.mat-sticky-actions{position:sticky;bottom:-24px;background:var(--surface);padding:10px 0;border-top:1px solid var(--border)}.mat-cost-line{padding:10px 12px;background:var(--surface-2);border-radius:6px}.mat-price-card{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mat-price-card.is-default{border-color:var(--accent)}.mat-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:end}.mat-price-val{min-height:34px;display:flex;align-items:center;font-variant-numeric:tabular-nums}.mat-hist{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:6px}.mat-hist li{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;padding:6px 10px;border-bottom:1px solid var(--border);font-size:13px}.mat-hist li:last-child{border-bottom:0}.mat-hist li>:last-child{text-align:right}.mat-add-supplier{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:6px}.mat-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 12px}.mat-color-input{width:40px;height:34px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--surface);flex:none;cursor:pointer}.mat-more summary{cursor:pointer;color:var(--muted);font-size:13px;padding:4px 0}.mat-more>*+*{margin-top:10px}.mat-add-attr .input{max-width:240px}.mat-combo{position:relative}.mat-combo-desc{font-size:12px;min-height:18px;padding-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-combo-list{position:absolute;z-index:60;left:0;top:36px;min-width:100%;max-width:min(560px,90vw);width:max-content;list-style:none;margin:0;padding:4px 0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow)}.mat-combo-list li{padding:8px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-combo-list li.active{background:var(--accent-soft)}.mat-unresolved{border-color:var(--warn);background:var(--warn-soft)}.mat-kinds{display:flex;flex-wrap:wrap;gap:6px}.mat-kinds .btn{flex:1 1 80px}.mat-qty{font-size:20px;font-variant-numeric:tabular-nums;min-height:44px}.mat-txn-log{list-style:none;margin:0;padding:8px 10px;background:var(--good-soft);color:var(--good);border-radius:6px;font-size:13px;display:flex;flex-direction:column;gap:2px}.mat-inv-actions{display:flex;flex-wrap:wrap;gap:6px}@media(max-width:900px){.mat-layout{grid-template-columns:minmax(0,1fr)}.mat-side{position:static;max-height:none}.mat-types{display:none}.mat-type-select{display:block}.mat-tree-box{max-height:280px;overflow:auto}}@media(max-width:700px){.mat-hide-sm{display:none}.mat-filters .search{max-width:none;flex-basis:100%}.mat-filters select{flex:1 1 0;min-width:0}.mat-view-toggle{margin-left:0}.mat-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.mat-price-grid,.mat-add-supplier{grid-template-columns:1fr 1fr}.mat-inv-actions{width:100%}.mat-inv-actions .btn{flex:1 1 30%;min-height:44px}.mat-kinds .btn{min-height:44px}}.table tr.mat-row-selected td{background:var(--accent-soft)}.mat-sort{flex-wrap:nowrap}.mat-sort .btn{min-width:36px;padding-left:8px;padding-right:8px}@media(max-width:600px){.mat-sort{flex:1 1 100%}.mat-sort .filter-select{flex:1 1 auto}}.boat-hint{font-size:13px}.boat-wrap{flex-wrap:wrap}.boat-nowrap{white-space:nowrap}.boat-note{background:var(--warn-soft);color:var(--warn);padding:8px 12px;border-radius:6px}.boat-errors{color:var(--bad);margin:8px 0 0;padding-left:18px}.boat-plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.boat-opts{font-size:13px}.boat-row-off td,li.boat-row-off{opacity:.55}.boat-progress{display:grid;grid-template-columns:minmax(60px,1fr) auto;align-items:center;gap:8px;min-width:90px}.boat-progress.compact{grid-template-columns:1fr;min-width:50px}.boat-progress-track{height:8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden}.boat-progress-fill{height:100%;border-radius:999px;background:var(--info);transition:width .3s}.boat-progress-fill.tone-done{background:var(--good)}.boat-progress-fill.tone-zero,.boat-progress-fill.tone-none{background:transparent}.boat-progress-num{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);min-width:34px;text-align:right}.boat-config{display:flex;flex-direction:column;gap:12px}.boat-config-group{border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px 10px;margin:0}.boat-config-group.is-missing{border-color:var(--bad)}.boat-config-group legend{font-weight:600;padding:0 4px}.boat-config-kind{font-weight:400;font-size:12px}.boat-config-option{display:flex;align-items:flex-start;gap:10px;padding:8px 4px;border-bottom:1px solid var(--border);cursor:pointer;min-height:40px}.boat-config-option:last-child{border-bottom:0}.boat-config-option input{margin-top:3px;width:18px;height:18px}.boat-config-effect{display:block;font-size:12px}.boat-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}.boat-span{grid-column:1 / -1}.boat-dl{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;margin:0}.boat-dl dt{color:var(--muted);font-size:13px}.boat-dl dd{margin:0}.boat-dl-row{display:contents}.boat-notes{white-space:pre-wrap}.boat-matrix input[type=checkbox],.boat-matrix input[type=radio]{width:18px;height:18px}.boat-price-input{width:110px;text-align:right}.boat-steps{display:flex;gap:4px;list-style:none;padding:0;margin:0 0 16px;overflow-x:auto}.boat-steps li button{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 14px;font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap}.boat-steps li.is-current button{border-color:var(--accent);color:var(--accent);font-weight:600}.boat-steps li.is-done button{color:var(--text)}.boat-steps li button:disabled{cursor:default;opacity:.6}.boat-wizard{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.boat-wizard-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}@media(max-width:900px){.boat-wizard{grid-template-columns:1fr}.boat-wizard-side{position:static;order:-1}}.boat-wizard-nav{justify-content:space-between;margin-top:16px}.boat-model-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.boat-model-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font:inherit;color:var(--text);cursor:pointer;min-height:88px}.boat-model-card strong{font-size:18px}.boat-model-card.is-picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.boat-price{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0}.boat-price dd{margin:0}.boat-price-row{display:contents}.boat-price-total{font-weight:700;border-top:1px solid var(--border);padding-top:6px}.boat-bom-added td{background:var(--good-soft)}.boat-bom-replaced td{background:var(--info-soft)}.boat-bom-removed td{background:var(--bad-soft);text-decoration:line-through}.boat-subs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.boat-sub{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,2fr);gap:12px;align-items:center;width:100%;background:none;border:1px solid transparent;border-radius:6px;padding:8px;font:inherit;color:var(--text);text-align:left;cursor:pointer}.boat-sub.is-selected{border-color:var(--accent);background:var(--accent-soft)}@media(max-width:600px){.boat-sub{grid-template-columns:1fr}}.boat-steps-list{list-style:none;margin:0;padding:0}.boat-step{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.boat-step:last-child{border-bottom:0}.boat-step .btn{min-height:44px;min-width:96px}.boat-step-no{width:32px;font-variant-numeric:tabular-nums}.boat-step-meta{display:block;font-size:12px}.boat-step.st-done strong,.boat-step.st-skipped strong{color:var(--muted)}.boat-chip{display:inline-flex;align-items:center;gap:4px;background:var(--warn-soft);color:var(--warn);font-weight:700;border-radius:999px;padding:2px 10px;font-size:13px}.boat-chip button{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0 2px}.boat-inline-form{margin-top:8px;flex-wrap:wrap}.boat-inline-form .input{width:auto;flex:1 1 140px}.boat-grid-wrap{max-height:calc(100vh - 200px)}.boat-grid{font-size:13px}.boat-grid th,.boat-grid td{padding:4px 6px;white-space:nowrap;vertical-align:middle}.boat-grid th.boat-grid-step{writing-mode:vertical-rl;transform:rotate(180deg);text-align:left;height:96px;padding:6px 4px}.boat-grid tr[draggable=true]{cursor:grab}.boat-grid tr.is-dragging{opacity:.4}.boat-grid tr.is-blocked td:first-child{box-shadow:inset 4px 0 0 var(--bad)}.boat-grid-seq{white-space:nowrap}.boat-grip{color:var(--muted);margin-right:4px}.boat-nudge{display:inline-flex;flex-direction:column;margin-left:4px;vertical-align:middle}.boat-nudge button{background:none;border:0;padding:0 2px;font-size:9px;line-height:1.1;color:var(--muted);cursor:pointer}.boat-grid-notes{font-size:11px;font-weight:700;color:var(--warn)}.boat-grid-progress{min-width:70px}.boat-cell{text-align:center;min-width:38px;border-left:1px solid var(--border)}.boat-cell button{width:100%;min-height:32px;border:0;background:none;font:inherit;font-weight:700;color:inherit;cursor:pointer}.boat-cell.st-done,.boat-cell-key.st-done{background:var(--good-soft);color:var(--good)}.boat-cell.st-in_progress,.boat-cell-key.st-in_progress{background:var(--warn-soft);color:var(--warn)}.boat-cell.st-ready,.boat-cell-key.st-ready{background:var(--info-soft);color:var(--info)}.boat-cell.st-skipped,.boat-cell-key.st-skipped{background:var(--surface-2);color:var(--muted);font-style:italic}.boat-cell.st-pending,.boat-cell-key.st-pending{color:var(--muted)}.boat-cell-key{padding:1px 6px;border-radius:4px}.boat-legend{font-size:12px;margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.bomfile-summary{margin:0}.bomfile-counts{flex-wrap:wrap}.bomfile-tree,.bomfile-notes{margin:6px 0 0;max-height:300px;overflow:auto;font-size:13px}.bomfile-tree{list-style:none;padding:0}.bomfile-tree li{padding:3px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.bomfile-notes{padding-left:18px}.bomfile-banner{background:var(--info-soft);padding:8px 12px;border-radius:6px}.bug-report-btn{padding-left:0;color:inherit}.page-header .bug-report-btn{padding-left:14px;color:var(--accent-ink)}.bug-captured{font-size:12px;margin:0}.bugs-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.bugs-filters .input:not(.search){width:auto}.bugs-pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px}.bugs-meta{flex-wrap:wrap}.bugs-detail{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start}.bugs-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 8px}.bugs-h3{font-size:13px;color:var(--muted);margin:12px 0 4px}.bugs-dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;margin:0;font-size:13px}.bugs-dl dt{color:var(--muted)}.bugs-dl dd{margin:0;overflow-wrap:anywhere}.bugs-ua{font-size:12px}.bugs-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.bugs-log-msg{overflow-wrap:anywhere;margin-top:2px}.bugs-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);padding:8px;border-radius:6px;font-size:12px;margin:4px 0 0}.bugs-comment{border-bottom:1px solid var(--border);padding-bottom:8px}@media(max-width:900px){.bugs-detail{grid-template-columns:1fr}.bugs-hide-sm{display:none}}.rma-list-what{display:flex;flex-direction:column;gap:2px;min-width:0}.rma-list-what .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:36ch}.rma-wrap{flex-wrap:wrap}.rma-fieldset{border:0;margin:0;padding:0;min-width:0}.rma-fieldset:disabled .input{background:var(--surface-2)}.rma-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.rma-photo{position:relative;margin:0;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.rma-photo a,.rma-photo img{display:block;width:100%;height:100%}.rma-photo img{object-fit:cover}.rma-photo-pending{display:grid;place-items:center;color:var(--muted);font-size:12px}.rma-photo-remove{position:absolute;top:4px;right:4px;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-size:14px;line-height:1}.rma-photo-remove:hover{background:var(--bad-soft);color:var(--bad)}.rma-photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.rma-photo-actions .btn{min-height:44px}.rma-ai-note{background:var(--info-soft);color:var(--info);padding:10px 12px;border-radius:6px}.rma-sent-banner{background:var(--good-soft);color:var(--good);padding:10px 12px;border-radius:6px}.rma-pick{position:relative}.rma-pick-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);max-height:280px;overflow-y:auto}.rma-pick-list li{padding:0}.rma-pick-list li.muted{padding:8px 12px}.rma-pick-list button{display:block;width:100%;text-align:left;padding:8px 12px;background:none;border:0;color:var(--text);font:inherit;cursor:pointer}.rma-pick-list button:hover,.rma-pick-list button:focus{background:var(--surface-2)}.rma-picked{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px;padding:4px 4px 4px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.rma-picked-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rma-actionbar{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:10px 12px;margin:0 -4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.rma-actionbar-hint{margin-right:auto}.rma-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 12px}.rma-facts dt{color:var(--muted)}.rma-facts dd{margin:0;min-width:0}.rma-description{white-space:pre-wrap;margin:0 0 8px}@media(max-width:600px){.rma-hide-sm{display:none}.rma-photos{grid-template-columns:repeat(3,1fr)}.rma-actionbar .btn{flex:1 1 auto;min-height:44px}.rma-actionbar-hint{flex-basis:100%}}.tp-title{flex-wrap:wrap}.tp-rev-select{width:auto;min-width:180px}.tp-summary{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline}.tp-notes{flex-basis:100%;margin:4px 0 0;white-space:pre-wrap}.tp-note{margin:0 0 8px}.tp-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:18px;text-align:center;color:var(--muted);cursor:pointer;margin-bottom:12px}.tp-dropzone.over,.tp-dropzone:hover,.tp-dropzone:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);outline:none}.tp-group+.tp-group{margin-top:16px}.tp-group-title{font-size:14px;margin:0 0 8px}.tp-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.tp-tile{display:flex;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:8px;min-width:0;background:var(--surface)}.tp-thumb{position:relative;width:96px;height:96px;flex:none;border:0;padding:0;border-radius:6px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;cursor:pointer;color:inherit;font:inherit}.tp-thumb img{width:100%;height:100%;object-fit:contain}.tp-thumb:focus-visible{outline:2px solid var(--accent)}.tp-ext{font-size:13px;font-weight:700;color:var(--muted)}.tp-kind{position:absolute;right:4px;bottom:4px;font-size:11px;font-weight:600;padding:0 6px;border-radius:999px;background:var(--surface);color:var(--text);border:1px solid var(--border)}.tp-tile-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start}.tp-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;font-weight:600;text-align:left}.tp-name:hover{text-decoration:underline}.tp-meta{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-sw{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}.tp-actions{margin-top:2px;flex-wrap:wrap}.tp-actions .btn{padding:4px 8px;min-height:30px}.tp-comp{display:inline-block}.tp-result{background:var(--good-soft);color:var(--good);border-radius:6px;padding:8px 12px;margin-bottom:10px}.tp-result .muted{color:var(--muted)}.tp-signin{max-width:560px}.tp-signin-dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 16px}.tp-signin-dl dt{color:var(--muted)}.tp-signin-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}.tp-code{font-size:20px;font-weight:700;letter-spacing:.08em}.tp-code-input{font-size:20px;letter-spacing:.08em;text-transform:uppercase}.tp-signin-actions .btn{min-width:120px;min-height:44px}.tp-state{border-radius:var(--radius);padding:12px 16px;margin-bottom:8px}.tp-state h2{margin:0 0 4px;font-size:18px}.tp-state p{margin:0}.tp-state-good{background:var(--good-soft);color:var(--good)}.tp-state-bad{background:var(--bad-soft);color:var(--bad)}.tp-addin ul,.tp-addin ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}@media(max-width:700px){.tp-hide-sm{display:none}.tp-tiles{grid-template-columns:1fr}.tp-thumb{width:80px;height:80px}.tp-rev-select{min-width:0;width:100%}}.card-header:has(.tp-rev-select),.card-header:has(.tp-rev-select)>.row{flex-wrap:wrap}.viz-root{--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #6250d6;--series-8: #e34948;--grid-line: var(--border)}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])) .viz-root{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767}}:root[data-theme=dark] .viz-root{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767}.report-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.report-cell{min-width:0}.report-full{grid-column:span 6}.report-half{grid-column:span 3}.report-third{grid-column:span 2}@media(max-width:760px){.report-half,.report-full{grid-column:span 6}.report-third{grid-column:span 3}}@media(max-width:420px){.report-third{grid-column:span 6}}.report-card{height:100%}.report-title{font-size:15px;margin:0 0 10px}.report-count{font-size:12px;margin-top:6px}.report-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);height:100%}.report-tile-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.report-tile-value{font-size:28px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.report-tile-unit{font-size:14px;font-weight:500;color:var(--muted)}.report-tile-good{border-left:4px solid var(--good)}.report-tile-warn{border-left:4px solid var(--warn)}.report-tile-bad{border-left:4px solid var(--bad)}.report-text p{margin:0 0 8px}.report-text h3{margin:0 0 8px;font-size:15px}.report-text ul{margin:0 0 8px;padding-left:20px}.report-list{list-style:none;margin:0;padding:0}.report-list li{padding:8px 0;border-bottom:1px solid var(--border)}.report-list li:last-child{border-bottom:0}.report-grid td.num,.report-grid th.num{text-align:right;font-variant-numeric:tabular-nums}.report-params{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.report-param{display:flex;flex-direction:column;gap:2px;min-width:140px}.report-range{display:inline-flex;gap:4px;align-items:center}.report-num{width:120px}.report-hint,.report-desc{font-size:12px}.report-ask{display:flex;gap:8px}.report-ask .input{flex:1}.report-editor{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.report-editor{grid-template-columns:1fr}}.report-save-row{display:grid;grid-template-columns:2fr 1fr;gap:12px}@media(max-width:600px){.report-save-row{grid-template-columns:1fr}}.report-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;min-height:320px;white-space:pre}.report-log{background:var(--surface-2);border-radius:6px;padding:8px 10px;font-size:12px;max-height:160px;overflow:auto;margin:0}.report-chat{display:flex;flex-direction:column;position:sticky;top:12px;max-height:calc(100vh - 120px)}@media(max-width:900px){.report-chat{position:static;max-height:none}}.report-chat-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:160px;max-height:60vh;padding-bottom:8px}.report-chat-empty p{margin-top:0;color:var(--muted)}.report-chat-idea{display:block;width:100%;text-align:left;margin-bottom:6px;padding:8px 10px;border:1px dashed var(--border);border-radius:6px;background:transparent;color:var(--text);font:inherit;cursor:pointer}.report-chat-idea:hover{border-color:var(--accent)}.report-chat-msg{padding:8px 10px;border-radius:8px;max-width:92%;white-space:pre-wrap;word-break:break-word}.report-chat-msg.user{align-self:flex-end;background:var(--accent-soft);color:var(--text)}.report-chat-msg.assistant{align-self:flex-start;background:var(--surface-2)}.report-chat-msg.failed{background:var(--bad-soft);color:var(--bad)}.report-chat-input{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:10px}.report-chat-actions{justify-content:space-between}.report-chat-dots{display:inline-flex;gap:3px;margin-right:4px}.report-chat-dots i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:report-dot 1s infinite ease-in-out}.report-chat-dots i:nth-child(2){animation-delay:.15s}.report-chat-dots i:nth-child(3){animation-delay:.3s}@keyframes report-dot{0%,80%,to{opacity:.25}40%{opacity:1}}:root{--floor-red: #d0312d;--floor-yellow: #e9a800;--floor-yellow-ink: #2a1f00;--floor-green: #23914f;--floor-grey: #9aa0a6;--floor-urgent: #c2410c;--floor-late: #b3261e;--floor-blocked: #6d4bb3;--floor-purple: #9466ee;--floor-pane: #24262a;--floor-pane-2: #34373c;--floor-pane-sel: #3b4a63;--floor-sel: #3b82f6;--floor-pane-text: #c3c6cb;--floor-pane-bright: #ffffff;--floor-pane-line: rgba(255, 255, 255, .09);--floor-sketch: #8b9096;--floor-metal: #c9cdd2;--floor-metal-seam: #a9aeb5;--floor-metal-ink: #2b2d30;--floor-deck: rgba(43, 45, 48, .05);--floor-ink: #ffffff;--floor-scrim: rgba(13, 14, 16, .82);--floor-strong: #2b2d30;--floor-strong-ink: #ffffff}@media(prefers-color-scheme:dark){:root{--floor-red: #e0443f;--floor-yellow: #f0b72a;--floor-green: #2fae63;--floor-grey: #6b7078;--floor-urgent: #fb923c;--floor-late: #f0857d;--floor-blocked: #b59cf0;--floor-purple: #a47ef5;--floor-pane: #101113;--floor-pane-2: #26282c;--floor-pane-sel: #233552;--floor-sel: #4f8ff7;--floor-sketch: #737880;--floor-metal: #5d636b;--floor-metal-seam: #4a4f56;--floor-metal-ink: #f1f2f4;--floor-deck: rgba(255, 255, 255, .035);--floor-strong: #e8e9eb;--floor-strong-ink: #141517}}.floor-stations{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.floor-station-tile{display:grid;gap:4px;padding:16px;min-height:120px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none;box-shadow:var(--shadow);position:relative;overflow:hidden}.floor-station-tile:hover{border-color:var(--muted);text-decoration:none}.floor-station-tile:hover *{text-decoration:none}.floor-station-swatch{position:absolute;inset:0 auto 0 0;width:5px;background:var(--border)}.floor-station-name{font-size:20px;font-weight:700}.floor-station-code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--muted)}.floor-station-todo{margin-top:auto;color:var(--muted)}.floor-station-todo b{color:var(--text);font-size:18px;font-variant-numeric:tabular-nums}.floor-screen{position:fixed;inset:0;display:grid;grid-template-columns:300px minmax(0,1fr);background:var(--bg);color:var(--text);font-size:16px;overflow:hidden}.floor-screen button{font:inherit}.floor-screen :focus-visible{outline:3px solid var(--info);outline-offset:2px}.floor-muted{color:var(--muted)}.floor-error{color:var(--bad)}.floor-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.floor-pane{background:var(--floor-pane);color:var(--floor-pane-text);display:flex;flex-direction:column;min-width:0;min-height:0;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px)}.floor-pane-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 10px 14px;border-bottom:1px solid var(--floor-pane-line)}.floor-pane-title{display:grid;min-width:0}.floor-back{color:var(--floor-pane-text);font-size:13px;text-decoration:none;min-height:28px;display:inline-flex;align-items:center}.floor-back:hover{color:var(--floor-pane-bright)}.floor-stn{font-weight:700;font-size:22px;color:var(--floor-pane-bright);line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floor-exit{border:1px solid var(--floor-pane-line);background:var(--floor-pane-2);color:var(--floor-pane-bright);border-radius:999px;padding:0 16px;min-height:48px;cursor:pointer;font-size:14px;font-weight:600;flex:none}.floor-filters{display:flex;gap:6px;padding:10px 10px 6px;overflow-x:auto;scrollbar-width:none;flex:none}.floor-chip{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--floor-pane-line);background:transparent;color:var(--floor-pane-text);border-radius:999px;padding:6px 12px;min-height:40px;font-weight:600;font-size:14px;cursor:pointer}.floor-chip b{font-weight:500;font-size:12px;background:var(--floor-pane-line);border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}.floor-chip[aria-pressed=true]{background:var(--floor-pane-bright);color:var(--floor-pane);border-color:var(--floor-pane-bright)}.floor-sort-note{padding:0 14px 6px;font-size:12px;flex:none}.floor-jobs{list-style:none;margin:0;padding:4px 8px 8px;display:grid;gap:4px;overflow-y:auto;align-content:start;flex:1;min-height:0}.floor-jobs li{position:relative}.floor-jobs li.is-dragging{z-index:2}.floor-jobs li.is-dragging .floor-job{background:var(--floor-pane-2);box-shadow:0 10px 24px #00000073,inset 0 0 0 2px var(--floor-pane-bright)}.floor-empty{padding:18px 8px;font-size:14px}.floor-job{display:grid;gap:3px;width:100%;padding:9px 46px 10px 10px;min-height:64px;border-radius:10px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;align-content:center}.floor-job:hover{background:var(--floor-pane-line)}.floor-job[aria-current=true]{background:var(--floor-pane-sel);box-shadow:inset 0 0 0 2px var(--floor-pane-bright),inset 8px 0 0 var(--floor-sel);padding-left:16px}.floor-job[aria-current=true]:hover{background:var(--floor-pane-sel)}.floor-job-viewing{display:none}.floor-job[aria-current=true] .floor-job-viewing{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--floor-sel);color:var(--floor-ink);border-radius:4px;padding:1px 6px;align-self:center}.floor-jobs:has(.floor-job[aria-current=true]) .floor-job:not([aria-current=true]){opacity:.78}.floor-jobs:has(.floor-job[aria-current=true]) .floor-job:not([aria-current=true]):hover{opacity:1}.floor-job-top{display:flex;align-items:baseline;gap:4px 6px;flex-wrap:wrap;min-width:0}.floor-job-no{font-weight:700;font-size:19px;color:var(--floor-pane-bright);line-height:1.15;white-space:nowrap;flex:none}.floor-seq{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;font-weight:400;color:var(--floor-pane-text);flex:none}.floor-job-meta{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floor-job-flags{display:inline-flex;gap:4px;margin-left:auto;align-self:center}.floor-job-flags:empty{display:none}.floor-job .floor-flag{font-size:10px;padding:0 5px;letter-spacing:.04em}.floor-prog{display:block;height:6px;border-radius:999px;overflow:hidden;margin-top:3px;background:var(--floor-red)}.floor-prog.is-yellow{background:var(--floor-yellow)}.floor-prog.is-blocked{background:var(--floor-purple)}.floor-prog.is-green{background:var(--floor-green)}.floor-prog-fill{display:block;height:100%;background:var(--floor-green);box-shadow:1px 0 0 var(--floor-pane)}.floor-prog.is-green .floor-prog-fill{box-shadow:none}.floor-grip{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:56px;border:0;background:transparent;color:var(--floor-pane-text);border-radius:8px;cursor:grab;touch-action:none;display:grid;place-items:center;font-size:20px}.floor-grip:hover{background:var(--floor-pane-line);color:var(--floor-pane-bright)}.floor-grip:active{cursor:grabbing}.floor-pane-foot{padding:8px 14px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--floor-pane-line);font-size:11px;display:flex;gap:4px 10px;flex-wrap:wrap;flex:none}.floor-pane-foot span{display:inline-flex;align-items:center;gap:5px}.floor-legend-swatch{width:14px;height:6px;border-radius:999px;display:inline-block;background:var(--floor-red)}.floor-legend-swatch.is-green{background:var(--floor-green)}.floor-legend-swatch.is-yellow{background:var(--floor-yellow)}.floor-legend-swatch.is-blocked{background:var(--floor-purple)}.floor-flag{font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:1px 6px;color:var(--floor-ink);white-space:nowrap}.floor-flag.is-urgent{background:var(--floor-urgent)}.floor-flag.is-late{background:var(--floor-late)}.floor-flag.is-blocked{background:var(--floor-blocked)}.floor-dot{width:16px;height:16px;border-radius:50%;display:inline-block;flex:none;position:relative;box-sizing:border-box}.floor-dot.is-red{background:var(--floor-red)}.floor-dot.is-yellow{background:conic-gradient(var(--floor-yellow) 0 50%,transparent 50% 100%);border:3px solid var(--floor-yellow)}.floor-dot.is-green{background:var(--floor-green)}.floor-dot.is-green:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid var(--floor-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.floor-dot.is-grey{border:2px dashed var(--floor-grey)}.floor-main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow-y:auto;padding-right:env(safe-area-inset-right,0px)}.floor-placeholder{padding:40px 24px;color:var(--muted);font-size:18px}.floor-strip{background:var(--surface);border-bottom:1px solid var(--border);padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;overflow-x:auto;flex:none}.floor-feed-li{display:inline-flex}.floor-feed{font-size:12px;font-weight:600;border:0;border-radius:6px;padding:2px 8px;min-height:26px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;box-sizing:border-box}button.floor-feed{cursor:pointer}.floor-feed.is-red{background:var(--floor-red);color:var(--floor-ink)}.floor-feed.is-yellow{background:var(--floor-yellow);color:var(--floor-yellow-ink)}.floor-feed.is-green{background:var(--floor-green);color:var(--floor-ink)}.floor-feed.is-grey{background:transparent;color:var(--floor-grey);border:1px dashed var(--floor-grey)}.floor-feed.is-outside{border:2px dashed currentColor}.floor-feed.is-materials{background:var(--surface-2);color:var(--text);border:1px solid var(--border);font-weight:500}.floor-feed small{font-weight:500;opacity:.85}.floor-feed-out{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.floor-inputs{display:grid;gap:8px;background:var(--surface);border:1px solid var(--border);border-left:8px solid var(--floor-grey);border-radius:12px;padding:10px 14px}.floor-inputs.is-green{border-left-color:var(--floor-green)}.floor-inputs.is-yellow{border-left-color:var(--floor-yellow)}.floor-inputs.is-red{border-left-color:var(--floor-red)}.floor-inputs-head{display:flex;align-items:center;gap:8px;font-size:16px}.floor-inputs.is-green .floor-inputs-head b{color:var(--floor-green)}.floor-inputs.is-red .floor-inputs-head b{color:var(--floor-red)}.floor-inputs-row{display:flex;flex-wrap:wrap;gap:8px}.floor-feed.is-big{font-size:15px;min-height:40px;padding:4px 12px;border-radius:8px;gap:6px}.floor-feed.is-big small{font-size:12px}.floor-step-ic{font-size:.8em}.floor-strip{padding-top:calc(6px + env(safe-area-inset-top,0px));padding-bottom:6px}.floor-route{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;gap:3px;width:max-content}.floor-route-tier{display:flex;gap:2px}.floor-route-tier+.floor-route-tier:before{content:"";align-self:center;width:6px;border-top:2px solid var(--floor-grey);margin-right:1px}.floor-route-tier.is-par{border:1px solid var(--border);border-radius:8px;padding:2px}.floor-rstep{position:relative;font:inherit;font-weight:700;font-size:13px;letter-spacing:.02em;border:0;border-radius:6px;padding:0 2px 6px;width:68px;height:36px;flex:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:3px;white-space:nowrap;overflow:hidden}.floor-rstep:disabled{cursor:default}.floor-rstep.is-red{background:var(--floor-red);color:var(--floor-ink)}.floor-rstep.is-yellow{background:var(--floor-yellow);color:var(--floor-yellow-ink)}.floor-rstep.is-green{background:var(--floor-green);color:var(--floor-ink)}.floor-rstep.is-grey{background:transparent;color:var(--floor-grey);border:2px dashed var(--floor-grey);text-decoration:line-through}.floor-rstep.is-here{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--floor-strong)}.floor-rstep-code{overflow:hidden;text-overflow:clip}.floor-rfeeds{position:absolute;bottom:3px;left:0;right:0;display:flex;justify-content:center;gap:2px}.floor-rfeed{width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 1px var(--surface)}.floor-rfeed.is-red{background:var(--floor-red)}.floor-rfeed.is-yellow{background:var(--floor-yellow)}.floor-rfeed.is-green{background:var(--floor-green)}.floor-rfeed.is-grey{background:var(--floor-grey)}.floor-rfeed.is-outside{border-radius:1px}.floor-head{padding:16px 20px 6px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:end;justify-content:space-between}.floor-who{display:grid;gap:4px;min-width:0}.floor-wo{font-weight:700;font-size:30px;line-height:1.05;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.floor-so{color:var(--muted);font-weight:500;font-size:17px}.floor-facts{display:flex;gap:8px;flex-wrap:wrap}.floor-fact{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 12px;display:grid;min-width:84px}.floor-fact b{font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}.floor-fact small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.floor-fact.is-big{background:var(--floor-strong);border-color:var(--floor-strong);color:var(--floor-strong-ink)}.floor-fact.is-big small{color:inherit;opacity:.75}.floor-blocked,.floor-warnbar{flex-basis:100%;border-radius:10px;padding:8px 12px;font-size:15px}.floor-blocked{border:2px solid var(--floor-blocked)}.floor-blocked b{color:var(--floor-blocked);text-transform:uppercase;letter-spacing:.06em;margin-right:6px}.floor-warnbar{background:var(--warn-soft);color:var(--warn)}.floor-stage{padding:6px 20px calc(20px + env(safe-area-inset-bottom,0px));display:grid;gap:12px;align-content:start;min-width:0}.floor-boat{width:100%;height:auto;display:block;max-width:100%;max-height:58vh;user-select:none;-webkit-user-select:none}.floor-boat .sketch{fill:none;stroke:var(--floor-sketch);stroke-width:2}.floor-boat .sketch.thin{stroke-width:1.2;stroke-dasharray:5 5}.floor-boat .deck{fill:var(--floor-deck);stroke:var(--floor-sketch);stroke-width:2;stroke-dasharray:10 6}.floor-boat .note{fill:var(--muted);font-size:15px;letter-spacing:.14em;text-transform:uppercase}.floor-boat .tube-body{stroke:#00000040;stroke-width:2;transition:fill .25s ease}.floor-boat .tube-body.is-open{fill:var(--floor-red)}.floor-boat .tube-body.is-done{fill:var(--floor-green)}.floor-boat .tube-body.is-rolled{fill:var(--floor-metal)}.floor-boat .tube-seam{stroke:var(--floor-metal-seam);stroke-width:2;pointer-events:none}.floor-boat .tlabel.is-dark,.floor-boat .tsub.is-dark{fill:var(--floor-metal-ink)}.floor-boat .seam{stroke:#ffffff47;stroke-width:2}.floor-boat .tlabel{fill:var(--floor-ink);font-weight:700;font-size:26px;letter-spacing:.08em;pointer-events:none}.floor-boat .tsub{fill:var(--floor-ink);opacity:.9;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px;pointer-events:none}.floor-boat .tube-hit{cursor:pointer;outline:none}.floor-boat .tube-hit:hover .tube-body{filter:brightness(1.08)}.floor-boat .tube-hit:focus-visible .tube-body{stroke:var(--info);stroke-width:5}.floor-boat .tube-hit.is-busy{opacity:.6}.floor-boat .lay-fill,.floor-boat .lay-deck,.floor-boat .lay-skin,.floor-boat .lay-wrap{transition:fill .25s ease,stroke .25s ease}.floor-boat .lay-line,.floor-boat .lay-trim,.floor-boat .lay-rail,.floor-boat .lay-cable,.floor-boat .lay-screen{fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s ease}.floor-boat .lay-line{stroke-width:3}.floor-boat .lay-trim{stroke-width:9}.floor-boat .lay-rail{stroke-width:10}.floor-boat .lay-cable{stroke-width:6}.floor-boat .lay-screen{stroke-width:12}.floor-boat .lay-deck{stroke-width:2;stroke-dasharray:10 6}.floor-boat .is-ghost{stroke:var(--floor-green);stroke-opacity:.45}.floor-boat .lay-fill.is-ghost{fill:var(--floor-green);fill-opacity:.16;stroke-width:1.5}.floor-boat .lay-deck.is-ghost{fill:var(--floor-green);fill-opacity:.1;stroke-opacity:.55}.floor-boat .lay-line.is-ghost{stroke-opacity:.3}.floor-boat .lay-skin.is-ghost{fill:var(--floor-green);fill-opacity:.12;stroke-width:3}.floor-boat .lay-wrap.is-ghost{fill:url(#floor-wrap-ghost);stroke-width:1.5}.floor-boat .is-todo{fill:none;stroke:var(--floor-sketch);stroke-width:1.5;stroke-dasharray:6 6}.floor-boat .lay-line.is-todo{stroke-opacity:.35;stroke-width:2;stroke-dasharray:4 6}.floor-boat .lay-rail.is-todo,.floor-boat .lay-trim.is-todo,.floor-boat .lay-cable.is-todo,.floor-boat .lay-screen.is-todo{stroke-width:3;stroke-dasharray:8 8}.floor-boat .cur-open,.floor-boat .cur-prog,.floor-boat .cur-done{stroke:#00000040;stroke-width:2}.floor-boat .lay-fill.cur-open,.floor-boat .lay-deck.cur-open{fill:var(--floor-red)}.floor-boat .lay-fill.cur-prog,.floor-boat .lay-deck.cur-prog{fill:var(--floor-yellow)}.floor-boat .lay-fill.cur-done,.floor-boat .lay-deck.cur-done{fill:var(--floor-green)}.floor-boat .lay-deck.cur-open,.floor-boat .lay-deck.cur-prog,.floor-boat .lay-deck.cur-done{fill-opacity:.55;stroke-dasharray:none}.floor-boat .lay-skin.cur-open,.floor-boat .lay-skin.cur-prog,.floor-boat .lay-skin.cur-done{fill-opacity:.45;stroke-width:4}.floor-boat .lay-skin.cur-open{fill:var(--floor-red);stroke:var(--floor-red)}.floor-boat .lay-skin.cur-prog{fill:var(--floor-yellow);stroke:var(--floor-yellow)}.floor-boat .lay-skin.cur-done{fill:var(--floor-green);stroke:var(--floor-green)}.floor-boat .lay-wrap.cur-open{fill:url(#floor-wrap-red)}.floor-boat .lay-wrap.cur-prog{fill:url(#floor-wrap-yellow)}.floor-boat .lay-wrap.cur-done{fill:url(#floor-wrap-green)}.floor-boat .lay-line.cur-open,.floor-boat .lay-trim.cur-open,.floor-boat .lay-rail.cur-open,.floor-boat .lay-cable.cur-open,.floor-boat .lay-screen.cur-open{stroke:var(--floor-red)}.floor-boat .lay-line.cur-prog,.floor-boat .lay-trim.cur-prog,.floor-boat .lay-rail.cur-prog,.floor-boat .lay-cable.cur-prog,.floor-boat .lay-screen.cur-prog{stroke:var(--floor-yellow)}.floor-boat .lay-line.cur-done,.floor-boat .lay-trim.cur-done,.floor-boat .lay-rail.cur-done,.floor-boat .lay-cable.cur-done,.floor-boat .lay-screen.cur-done{stroke:var(--floor-green)}.floor-boat .lay-line.cur-open,.floor-boat .lay-line.cur-prog,.floor-boat .lay-line.cur-done{stroke-width:7}.floor-boat .lay-trim.cur-open,.floor-boat .lay-trim.cur-prog,.floor-boat .lay-trim.cur-done{stroke-width:14}.floor-boat .lay-rail.cur-open,.floor-boat .lay-rail.cur-prog,.floor-boat .lay-rail.cur-done{stroke-width:16}.floor-boat .lay-cable.cur-open,.floor-boat .lay-cable.cur-prog,.floor-boat .lay-cable.cur-done{stroke-width:9}.floor-boat .lay-screen.cur-open,.floor-boat .lay-screen.cur-prog,.floor-boat .lay-screen.cur-done{stroke-width:16}.floor-boat .wrap-bg{fill:var(--surface)}.floor-boat .wrap-bg.is-ghost{fill:var(--floor-green);fill-opacity:.1}.floor-boat .wrap-stripe.is-ghost{fill:var(--floor-green);fill-opacity:.35}.floor-boat .wrap-stripe.is-red{fill:var(--floor-red)}.floor-boat .wrap-stripe.is-yellow{fill:var(--floor-yellow)}.floor-boat .wrap-stripe.is-green{fill:var(--floor-green)}.floor-boat .part-shape{stroke:var(--surface);stroke-width:3;transition:fill .25s ease,transform .25s ease}.floor-boat .part-shape.is-open{fill:var(--floor-red)}.floor-boat .part-shape.is-done{fill:var(--floor-green)}.floor-boat .part-label{fill:var(--floor-ink);font-weight:800;font-size:17px;letter-spacing:.08em;pointer-events:none}.floor-boat .part-label.is-v{font-size:12px;writing-mode:vertical-rl;letter-spacing:.04em}.floor-boat .part-hit:hover .part-shape{filter:brightness(1.1)}.floor-boat .part-hit:focus-visible .part-shape{stroke:var(--info);stroke-width:5}.floor-boat .area-pad{fill:transparent;pointer-events:fill}.floor-boat .area-hit{cursor:pointer;outline:none}.floor-boat .area-hit:hover .unit-badge{filter:brightness(1.08)}.floor-boat .area-hit:focus-visible .unit-badge{stroke:var(--info);stroke-width:5}.floor-boat .area-hit.is-busy{opacity:.6}.floor-boat .unit-badge.is-prog{fill:var(--floor-yellow);stroke:var(--floor-yellow)}.floor-boat .unit-badge.is-prog~.tlabel,.floor-boat .unit-badge.is-prog~.tsub{fill:var(--floor-yellow-ink)}.floor-boat .area-static .unit-badge{fill:var(--floor-strong);stroke:var(--floor-strong);fill-opacity:.85}.floor-boat .rail-pad{fill:none;stroke:transparent;stroke-width:56;stroke-linecap:round;pointer-events:stroke}.floor-boat .rail-run{fill:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s ease}.floor-boat .rail-run.is-open,.floor-boat .unit-badge.is-open{stroke:var(--floor-red)}.floor-boat .rail-run.is-done,.floor-boat .unit-badge.is-done{stroke:var(--floor-green)}.floor-boat .interior-pad{fill:transparent;pointer-events:fill}.floor-boat .interior-piece{stroke:#00000040;stroke-width:2;transition:fill .25s ease}.floor-boat .interior-piece.is-open{fill:var(--floor-red)}.floor-boat .interior-piece.is-done{fill:var(--floor-green)}.floor-boat .interior-wheel{fill:none;stroke:var(--floor-ink);stroke-opacity:.75;stroke-width:3;pointer-events:none}.floor-boat .unit-badge{stroke-width:2;transition:fill .25s ease}.floor-boat .unit-badge.is-open{fill:var(--floor-red)}.floor-boat .unit-badge.is-done{fill:var(--floor-green)}.floor-boat .unit-hit{cursor:pointer;outline:none}.floor-boat .unit-hit:hover .rail-run,.floor-boat .unit-hit:hover .unit-badge,.floor-boat .unit-hit:hover .interior-piece{filter:brightness(1.08)}.floor-boat .unit-hit:focus-visible .rail-run{stroke:var(--info)}.floor-boat .unit-hit:focus-visible .unit-badge,.floor-boat .unit-hit:focus-visible .interior-piece{stroke:var(--info);stroke-width:5}.floor-boat .unit-hit.is-busy{opacity:.6}.floor-boat .engine-pad{fill:transparent;pointer-events:fill}.floor-boat .engine-cowl,.floor-boat .engine-prop{stroke:#0000004d;stroke-width:2;transition:fill .25s ease}.floor-boat .engine-cowl.is-open,.floor-boat .engine-prop.is-open{fill:var(--floor-red)}.floor-boat .engine-cowl.is-done,.floor-boat .engine-prop.is-done{fill:var(--floor-green)}.floor-boat .engine-leg{stroke:var(--floor-sketch);stroke-width:8;stroke-linecap:round}.floor-boat .engine-bracket{fill:var(--floor-sketch)}.floor-boat .unit-hit:hover .engine-cowl{filter:brightness(1.08)}.floor-boat .unit-hit:focus-visible .engine-cowl{stroke:var(--info);stroke-width:5}.floor-boat .engine-deck-badge{fill:var(--floor-strong);fill-opacity:.9}.floor-boat .engine-model{fill:var(--floor-strong-ink);font-weight:700;font-size:28px;letter-spacing:.02em}.floor-boat .engine-serial-sub{fill:var(--floor-strong-ink);opacity:.85;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:18px;letter-spacing:.06em}.engine-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}.engine-card{border-left:6px solid var(--floor-red)}.engine-card.is-done{border-left-color:var(--floor-green)}.engine-state{font-weight:700}.engine-state.is-open{color:var(--floor-red)}.engine-state.is-done{color:var(--floor-green)}.engine-model-line b{font-size:20px}.engine-form{display:grid;gap:8px}.engine-form-label{font-weight:600;display:block}.engine-form-label small{font-weight:400;color:var(--muted);margin-left:6px}.engine-form-row{display:flex;gap:8px;flex-wrap:wrap}.engine-serial-input,.engine-model-input{flex:1 1 200px;min-width:0;min-height:52px;border:2px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:6px 12px;font-size:22px}.engine-serial-input{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.engine-model-input{font-size:17px}.engine-serial-input:focus,.engine-model-input:focus{outline:none;border-color:var(--info)}.engine-check{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}.engine-serial{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:24px;font-weight:700;letter-spacing:.06em}.engine-serial.is-ok{color:var(--floor-green)}.engine-serial.is-missing{font-family:inherit;font-size:15px;font-weight:600;letter-spacing:0;color:var(--warn)}.engine-summary-row{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}.engine-summary-row b,.engine-summary .engine-serial{font-size:18px}.floor-bar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px 10px 16px}.floor-bar.is-confirm{border:2px solid var(--floor-red)}.floor-bar.is-done{border:2px solid var(--floor-green)}.floor-bar.is-error{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}.floor-bar-msg{font-weight:600;min-width:0}.floor-bar-msg small{display:block;font-weight:400;color:var(--muted);font-size:14px}.floor-acts{display:flex;gap:8px;flex-wrap:wrap}.floor-btn{font-weight:600;font-size:16px;border-radius:10px;border:2px solid var(--border);background:var(--surface);color:var(--text);padding:8px 18px;min-height:52px;cursor:pointer}.floor-btn.is-primary{background:var(--floor-green);border-color:var(--floor-green);color:var(--floor-ink)}.floor-btn.is-warn{border-color:var(--floor-red);color:var(--floor-red)}.floor-btn:disabled{opacity:.45;cursor:default}.floor-link{background:none;border:0;color:var(--info);font-weight:600;cursor:pointer;min-height:44px;padding:0 10px}.floor-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:grid;gap:10px}.floor-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.floor-card h3{margin:0;font-size:20px}.floor-op-status{display:inline-flex;gap:8px;align-items:center;font-weight:600}.floor-instructions{margin:0;white-space:pre-wrap}.floor-signin{position:fixed;inset:0;background:var(--floor-scrim);display:grid;place-items:center;padding:16px;z-index:50;overflow-y:auto}.floor-signin-card{background:var(--surface);color:var(--text);border-radius:18px;padding:22px;width:min(560px,100%);display:grid;gap:12px;justify-items:center;text-align:center}.floor-signin-card h2{margin:0;font-size:24px}.floor-signin-card p{margin:0}.floor-pinpad{display:grid;gap:12px;justify-items:center;text-align:center;padding-top:8px}.floor-pinpad p{margin:0}.floor-pin-dots{display:flex;gap:12px;min-height:18px}.floor-pin-dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--muted)}.floor-pin-dots i.on{background:var(--text);border-color:var(--text)}.floor-keypad{display:grid;grid-template-columns:repeat(3,76px);gap:10px}.floor-key{height:64px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:26px;font-weight:600;cursor:pointer}.floor-key.is-enter{background:var(--floor-green);border-color:var(--floor-green);color:var(--floor-ink)}.floor-key:disabled{opacity:.45;cursor:default}.floor-toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--floor-strong);color:var(--floor-strong-ink);padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px;box-shadow:0 8px 20px #00000040;max-width:calc(100% - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:60}@media(max-width:760px){.floor-screen{position:static;min-height:100dvh;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;overflow:visible}.floor-pane{padding-left:0}.floor-jobs{grid-auto-flow:column;grid-auto-columns:230px;overflow-x:auto;overflow-y:hidden;flex:none}.floor-grip,.floor-sort-note,.floor-pane-foot{display:none}.floor-job{padding-right:10px;min-height:60px}.floor-main{overflow:visible}.floor-strip{padding-top:10px}.floor-wo{font-size:24px}.floor-boat .tsub{display:none}.floor-keypad{grid-template-columns:repeat(3,68px)}}@media(prefers-reduced-motion:reduce){.floor-boat .tube-body,.floor-boat .rail-run,.floor-boat .unit-badge,.floor-boat .interior-piece,.floor-boat .engine-cowl,.floor-boat .engine-prop{transition:none}}.floor-boat .rail-label{fill:var(--floor-ink);font-weight:700;font-size:20px;pointer-events:none}.floor-rail-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.floor-rail-item{width:100%;min-height:56px;display:flex;align-items:center;gap:10px;text-align:left;background:var(--surface);color:inherit;border:2px solid var(--floor-red);border-radius:10px;padding:8px 12px;font:inherit;cursor:pointer}.floor-rail-item.is-done{border-color:var(--floor-green)}.floor-rail-item span{display:grid;flex:1;min-width:0}.floor-rail-item small{color:var(--muted);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floor-rail-item em{font-style:normal;font-size:12px;color:var(--muted)}.floor-outside .is-late{color:var(--floor-red);font-weight:600}.floor-inputs-head{flex-wrap:wrap}.floor-inputs-head small{font-size:13px}.floor-inputs-all{margin-left:auto;min-height:44px}.floor-input-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.floor-input{width:100%;height:100%;min-height:150px;display:grid;grid-template-rows:auto auto auto auto 1fr;gap:2px;justify-items:start;text-align:left;background:var(--surface);color:var(--text);border:3px solid var(--floor-red);border-radius:12px;padding:8px 10px 10px;font:inherit;cursor:pointer;transition:border-color .2s ease,background .2s ease}.floor-input.is-here{border-color:var(--floor-green)}.floor-input:hover{filter:brightness(1.04)}.floor-input:focus-visible{outline:3px solid var(--info);outline-offset:2px}.floor-input.is-busy{opacity:.6}.floor-input-art{justify-self:stretch;display:block;border-radius:8px;background:var(--surface-2);padding:4px}.floor-input-art svg{display:block;width:100%;height:64px}.floor-input-name{font-weight:700;font-size:16px;line-height:1.2;margin-top:4px}.floor-input.is-here .floor-input-name{color:var(--floor-green)}.floor-input.is-open .floor-input-name{color:var(--floor-red)}.floor-input-name em{font-style:normal;font-weight:500;color:var(--muted)}.floor-input-no{color:var(--muted);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floor-input-state{font-size:12px;font-weight:600}.floor-input-up{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px;align-self:end}.floor-input-up .floor-dot{width:12px;height:12px}.floor-input-up .floor-dot.is-green:after{left:3px;top:1px;width:3px;height:6px}.floor-input-up .floor-dot.is-yellow{border-width:2px}.floor-input-art .in-deck{fill:none;stroke:var(--floor-sketch);stroke-width:6;stroke-dasharray:16 10}.floor-input-art .in-faint{fill:none;stroke:var(--floor-sketch);stroke-opacity:.35;stroke-width:12;stroke-linecap:round}.floor-input-art .in-part{stroke:#00000040;stroke-width:2;stroke-linejoin:round;transition:fill .2s ease,stroke .2s ease}.floor-input-art .in-part.is-rail{fill:none;stroke-width:30;stroke-linecap:round}.floor-input-art .in-line{fill:none;stroke:var(--floor-ink);stroke-opacity:.7;stroke-width:2.5}.floor-input.is-open .in-part{fill:var(--floor-red)}.floor-input.is-here .in-part{fill:var(--floor-green)}.floor-input.is-open .in-part.is-rail{fill:none;stroke:var(--floor-red)}.floor-input.is-here .in-part.is-rail{fill:none;stroke:var(--floor-green)}@media(max-width:600px){.floor-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.floor-input{min-height:130px}.floor-input-art svg{height:52px}}@media(prefers-reduced-motion:reduce){.floor-input,.floor-input-art .in-part{transition:none}}html.native-shell body{padding-top:var(--safe-area-inset-top, env(safe-area-inset-top, 0px));padding-bottom:var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));padding-left:var(--safe-area-inset-left, env(safe-area-inset-left, 0px));padding-right:var(--safe-area-inset-right, env(safe-area-inset-right, 0px));-webkit-tap-highlight-color:transparent}:root{--brand-red: #e2242c;--brand-red-deep: #9e161c;--charcoal: #2b2d30;--bg: #f4f4f5;--surface: #ffffff;--surface-2: #eeeff1;--border: #dcdee2;--text: #1e2023;--muted: #5f6368;--accent: #c8161e;--accent-ink: #ffffff;--accent-soft: #fbe8e9;--info: #2f5f8a;--info-soft: #e4edf5;--good: #1f7a4d;--good-soft: #e3f4ea;--warn: #9a6200;--warn-soft: #fbf1dc;--bad: #b3261e;--bad-soft: #fbe5e3;--radius: 8px;--shadow: 0 1px 2px rgba(16, 16, 20, .06), 0 2px 8px rgba(16, 16, 20, .04);--grid: rgba(43, 45, 48, .05);--sidebar-bg: linear-gradient(180deg, #4a4d52 0%, #2b2d30 180px, #1f2023 100%);--sidebar-text: #b9bcc1;--sidebar-bright: #ffffff;--sidebar-hover: rgba(255, 255, 255, .07);--sidebar-line: rgba(255, 255, 255, .08);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #141517;--surface: #1c1d20;--surface-2: #25272b;--border: #34373c;--text: #e8e9eb;--muted: #9a9ea5;--accent: #ff5a60;--accent-ink: #2a0507;--accent-soft: #3d1a1c;--info: #8db8e0;--info-soft: #1b2c3c;--good: #5cc98f;--good-soft: #17392a;--warn: #e9b35a;--warn-soft: #3a2e15;--bad: #f0857d;--bad-soft: #42201d;--grid: rgba(255, 255, 255, .03);--sidebar-bg: linear-gradient(180deg, #34363a 0%, #1f2023 180px, #18191b 100%);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0}h2{font-size:16px;margin:0}.muted{color:var(--muted)}.pad{padding:16px}.row{display:flex;align-items:center}.gap{gap:8px}.link-button{border:0;background:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.grow{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 16px}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100%}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-line);padding:0 10px 16px;display:flex;flex-direction:column;gap:2px}.sidebar-header{margin:0 -10px 8px;padding:20px 16px 16px;border-bottom:1px solid var(--sidebar-line)}.sidebar-logo{display:block;width:150px;max-width:100%;height:auto}.sidebar-subtitle span,.login-wordmark span{color:var(--brand-red)}.sidebar-subtitle{margin-top:10px;font-size:11px;font-weight:700;font-style:italic;letter-spacing:3px;text-transform:uppercase;color:var(--sidebar-bright)}.sidebar-version{margin-top:2px;font-size:10px;letter-spacing:.5px;color:#fff6}.nav-group{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;font:inherit;cursor:pointer;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#ffffff73;padding:14px 10px 4px}.nav-group:hover{color:var(--sidebar-bright)}.nav-group:after{content:"▸";font-size:10px;transition:transform .15s}.nav-group.open:after{transform:rotate(90deg)}.nav-link{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;color:var(--sidebar-text);border-left:3px solid transparent}.nav-link:hover{background:var(--sidebar-hover);color:var(--sidebar-bright);text-decoration:none}.nav-icon{flex:none;opacity:.8}.home-link{display:inline-flex;align-items:center;gap:8px}.home-link .nav-icon,.nav-link:hover .nav-icon,.nav-link.active .nav-icon{opacity:1}.nav-link.active{background:var(--brand-red);border-left-color:var(--brand-red-deep);color:#fff;font-weight:600}.sidebar-foot{margin-top:auto;padding:12px 10px 0;font-size:13px;color:var(--sidebar-bright);border-top:1px solid var(--sidebar-line)}.sidebar-foot .muted,.sidebar-foot .btn-ghost{color:var(--sidebar-text)}.sidebar-foot .btn-ghost:hover{color:var(--sidebar-bright)}.main{padding:24px 28px;min-width:0}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-header p{margin:4px 0 0}.page-header>.row{flex-wrap:wrap}.back-link{display:inline-block;font-size:13px;margin-bottom:4px}.menu-toggle{display:none}@media(max-width:800px){.shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;inset:0 30% 0 0;z-index:20;box-shadow:var(--shadow)}.shell.nav-open .sidebar{display:flex}.menu-toggle{display:inline-flex;margin-bottom:12px}.main{padding:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;min-height:34px}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-danger{color:var(--bad);border-color:var(--bad)}.btn-ghost{border-color:transparent;background:transparent}.btn:not(:disabled):hover{filter:brightness(.96)}.input{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;min-height:34px}.input:focus{outline:2px solid var(--accent);outline-offset:-1px}.password-input{position:relative;display:block}.password-input .input{padding-right:64px}.password-toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%);min-height:28px;padding:0 10px;border:0;border-radius:4px;background:transparent;color:var(--accent);font:inherit;font-size:.85em;font-weight:600;cursor:pointer}.password-toggle:hover{background:var(--surface-2)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.search{max-width:320px}.field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:12px;font-weight:600;color:var(--muted)}.field-hint{font-size:12px;color:var(--muted)}.field-error{font-size:12px;color:var(--bad)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:12px;color:var(--muted);font-weight:600;background:var(--surface-2);position:sticky;top:0}.table tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table .empty{text-align:center;color:var(--muted);padding:24px}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted);white-space:nowrap}.badge-good{background:var(--good-soft);color:var(--good)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-info{background:var(--info-soft);color:var(--info)}.error-box{background:var(--bad-soft);color:var(--bad);padding:10px 12px;border-radius:6px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tab{background:none;border:0;padding:8px 12px;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.modal-backdrop{position:fixed;inset:0;background:#0006;display:grid;place-items:center;z-index:50;padding:16px}.modal{background:var(--surface);border-radius:10px;width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #00000040}.modal-wide{width:min(960px,100%)}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:8px}.modal-header{border-bottom:1px solid var(--border)}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end}.modal-body{padding:16px;overflow:auto}.login{min-height:100%;display:grid;place-items:center;padding:16px;background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0 / 24px 24px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0 / 24px 24px,var(--bg)}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 16px #0000001a;overflow:hidden;padding-bottom:20px}.login-card>:not(.login-brand){margin-inline:28px}.login-brand{background:var(--sidebar-bg);border-bottom:3px solid var(--brand-red);padding:28px 24px 20px;text-align:center;margin-bottom:8px}.login-brand img{width:200px;max-width:100%;height:auto}.login-wordmark{margin-top:12px;font-size:20px;font-weight:800;font-style:italic;letter-spacing:4px;text-transform:uppercase;color:#fff}.login-subtitle{margin-top:2px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--sidebar-text)}.login-foot{text-align:center;font-size:11px;color:var(--muted)}.tree{font-size:13px;-webkit-user-select:none;user-select:none}.tree-row{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;cursor:default;min-height:30px}.tree-row:hover{background:var(--surface-2)}.tree-row.selected{background:var(--accent-soft);color:var(--accent)}.tree-row.drop-onto{outline:2px solid var(--accent)}.tree-row.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.tree-row.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.tree-twisty{width:18px;border:0;background:none;color:var(--muted);cursor:pointer;padding:0;font-size:12px}.tree-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-meta{color:var(--muted);font-size:12px}.context-menu{position:fixed;z-index:100;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000002e;padding:4px}.context-item{display:flex;justify-content:space-between;gap:16px;width:100%;padding:7px 10px;border:0;background:none;color:var(--text);font:inherit;text-align:left;border-radius:5px;cursor:pointer}.context-item:hover:not(:disabled){background:var(--surface-2)}.context-item:disabled{opacity:.5;cursor:default}.context-item.danger{color:var(--bad)}.context-divider{height:1px;background:var(--border);margin:4px 0}.vendor-status{flex-basis:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-left:42px;font-size:13px}.vendor-status-text{flex:1 1 240px;min-width:0}.vendor-status-note{display:block;color:var(--muted);font-style:italic;overflow-wrap:anywhere}@media(max-width:600px){.vendor-status{padding-left:0}}.filter-bar{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.filter-bar-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filter-search{flex:1 1 220px;max-width:340px}.filter-select{width:auto;max-width:220px;flex:0 1 auto}.filter-check{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}.filter-more.active{background:var(--surface-2)}.filter-count{display:inline-block;min-width:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:700;line-height:18px;text-align:center}.filter-clear{font-size:13px}.filter-total{font-size:13px;white-space:nowrap}.filter-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.filter-panel-field{display:flex;flex-direction:column;gap:4px;min-width:0}.filter-panel .filter-select{width:100%;max-width:none}.filter-multi{display:flex;flex-wrap:wrap;gap:6px}.filter-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid var(--border);border-radius:999px;font-size:13px;cursor:pointer;background:var(--surface)}.filter-pill input{position:absolute;opacity:0;pointer-events:none}.filter-pill.on{background:var(--accent-soft);border-color:var(--accent);color:var(--text);font-weight:600}.filter-pill:focus-within{outline:2px solid var(--accent);outline-offset:1px}.filter-dates{display:flex;align-items:center;gap:6px}.filter-dates .input{min-width:0}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;border-radius:999px;background:var(--accent-soft);font-size:12px;font-weight:600}.filter-chip button{border:0;background:none;color:inherit;font:inherit;font-size:15px;line-height:1;padding:0 6px;cursor:pointer;border-radius:999px}.filter-chip button:hover{background:var(--surface-2)}.pager{justify-content:center;margin-top:12px;flex-wrap:wrap}.table th.sortable{padding:0}.th-sort{display:flex;align-items:center;gap:4px;width:100%;padding:8px 12px;border:0;background:none;font:inherit;color:inherit;text-align:inherit;cursor:pointer}.th-sort:hover{color:var(--text)}.table th.num .th-sort{justify-content:flex-end}.sort-mark{font-size:10px;opacity:.35}.sort-mark.on{opacity:1;color:var(--accent)}.table .row-menu-cell{width:1%;padding:2px 4px;text-align:right;vertical-align:middle}.row-menu-btn{border:0;background:none;color:var(--muted);font:inherit;font-size:18px;line-height:1;min-width:32px;min-height:30px;border-radius:6px;cursor:pointer}.row-menu-btn:hover,.row-menu-btn:focus-visible{background:var(--surface-2);color:var(--text)}.table tr.menu-open td{background:var(--accent-soft)}@media(max-width:600px){.filter-search{max-width:none;flex-basis:100%}.filter-select{flex:1 1 140px;max-width:none}.filter-dates{flex-wrap:wrap}}
