:root{--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", "JetBrains Mono", Consolas, "Liberation Mono", monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.875rem;--fs-lg:1rem;--fs-xl:1.3rem;--fs-2xl:1.8rem;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-6:1.5rem;--sp-8:2rem;--track:.06em}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0f;--panel:#14141a;--row-hover:#1c1c24;--sunken:#0a0a0c;--line:#1e1e24;--line-strong:#2f2f38;--ink:#f0f0f2;--ink-2:#c2c2ca;--ink-3:#7a7a84;--overdue:#ff7a1a;--overdue-ink:#1a0d00;--due-soon:#e0a42c;--due-soon-ink:#201600;--ok:#4fa968;--ok-ink:#04140a;--unverified:#a8802f;--accent:#2065ca;--accent-hover:#1a5ab8;--accent-ink:#fff;--danger:#c94141}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f7f6f2;--panel:#fffefa;--row-hover:#eeebe1;--sunken:#efece3;--line:#e2dfd4;--line-strong:#c4c0b2;--ink:#23231f;--ink-2:#4d4a42;--ink-3:#726f66;--overdue:#a33a12;--overdue-ink:#fff;--due-soon:#8a6410;--due-soon-ink:#fff;--ok:#3d6b32;--ok-ink:#fff;--unverified:#8a6410;--accent:#1d5aa8;--accent-hover:#16478a;--accent-ink:#fff;--danger:#a32020}[data-theme=contrast]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#000;--panel:#0b0b0d;--row-hover:#1a1a1f;--sunken:#000;--line:#3a3a44;--line-strong:#5c5c68;--ink:#fff;--ink-2:#e2e2e6;--ink-3:#a6a6b0;--overdue:#ff9d4d;--overdue-ink:#1a0d00;--due-soon:#ffc93f;--due-soon-ink:#201600;--ok:#5fd97a;--ok-ink:#04140a;--unverified:#ffc93f;--accent:#6aa8ff;--accent-hover:#85b8ff;--accent-ink:#001428;--danger:#ff6b6b}*{text-transform:uppercase;box-sizing:border-box}.keep-case,.keep-case *,input[type=password],input[type=email],input[type=url]{text-transform:none}body{font-family:var(--font-sans);font-size:var(--fs-md);background:var(--page);color:var(--ink);margin:0}h1{font-size:var(--fs-2xl);margin:0 0 var(--sp-4);letter-spacing:var(--track);line-height:1.2}h2{font-size:var(--fs-xl);margin:var(--sp-4) 0 var(--sp-2);letter-spacing:var(--track);line-height:1.2}h3{font-size:var(--fs-lg);line-height:1.2}a{color:inherit}label{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3);margin-bottom:var(--sp-1);display:block}input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{font-family:inherit;font-size:var(--fs-md);padding:var(--sp-2);background:var(--sunken);border:1px solid var(--line-strong);color:var(--ink);margin-bottom:var(--sp-2);border-radius:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}input[type=checkbox]{accent-color:var(--accent)}button{font-family:inherit;font-size:var(--fs-sm);letter-spacing:var(--track);padding:var(--sp-2) var(--sp-4);background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:0}button:hover{background:var(--accent-hover)}button.secondary{color:var(--ink-2);border:1px solid var(--line-strong);background:0 0}button.secondary:hover{background:var(--row-hover);color:var(--ink)}button.danger{background:var(--danger);color:#fff}.page{padding:var(--sp-6)}.muted{color:var(--ink-3)}.dim{color:var(--ink-2)}.mono,.id,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num{text-align:right}.tag{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;white-space:nowrap;padding:3px 7px}.tag-overdue{background:var(--overdue);color:var(--overdue-ink)}.tag-due-soon{background:var(--due-soon);color:var(--due-soon-ink)}.tag-ok{background:var(--ok);color:var(--ok-ink)}.tag-quiet{border:1px solid var(--line-strong);color:var(--ink-3)}.tag-unverified{border:1px solid var(--unverified);color:var(--unverified)}table{border-collapse:collapse;width:100%}thead tr{border-bottom:2px solid var(--line-strong);text-align:left}th{padding:var(--sp-2);font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3);text-align:left;font-weight:500}tbody tr{border-bottom:1px solid var(--line)}tbody tr:hover{background:var(--row-hover)}td{padding:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2)}td:first-child{color:var(--ink)}.detail-cell{background:var(--sunken);padding:var(--sp-4)}.detail-cell tbody tr:hover{background:0 0}.app-main{padding:2rem}.app-hamburger{display:none}@media (width<=700px){.page{padding:var(--sp-3)}table,thead,tbody,th,td,tr{display:block}thead{display:none}tbody tr{border:1px solid var(--line);border-left:4px solid var(--line-strong);margin-bottom:var(--sp-2);padding:var(--sp-2)}td{padding:var(--sp-1) var(--sp-2);border:none}td:first-child{font-size:var(--fs-lg);font-family:var(--font-mono)}.app-main{padding:3.25rem .85rem 1rem}.app-sidebar{z-index:40;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:2px 0 14px #00000073}.app-sidebar.open{transform:translate(0)}.app-hamburger{z-index:30;background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);cursor:pointer;border-radius:6px;padding:.3rem .6rem;font-size:1.3rem;line-height:1;display:block;position:fixed;top:.4rem;left:.4rem}.app-backdrop{z-index:35;background:#00000080;position:fixed;inset:0}}.lo-chip{min-width:0;max-width:100%;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;border:1px solid var(--accent);color:var(--ink);flex-wrap:wrap;align-items:center;gap:0 6px;padding:2px 7px;text-decoration:none;display:inline-flex}.lo-chip:hover{background:var(--row-hover)}.lo-chip-name{overflow-wrap:anywhere;min-width:0}.lo-chip-n{color:var(--ok);white-space:nowrap;flex:none}.lo-chip-p{color:var(--danger);white-space:nowrap;flex:none}.lo-chip.has-problem{border-color:var(--danger)}.lo-chip.compact{align-self:flex-start;margin-top:3px;padding:1px 5px}.lo-chip.compact .lo-chip-p{display:none}.lo-prog{align-items:center;gap:var(--sp-2);min-width:0;display:inline-flex}.lo-bar{background:var(--line-strong);border-radius:3px;flex:none;width:90px;height:6px;display:inline-block;position:relative;overflow:hidden}.lo-bar i{position:absolute;top:0;bottom:0;left:0}.lo-bar i.ld{background:var(--ink-3)}.lo-bar i.dl{background:var(--ok)}.lo-frac{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}.lo-frac b{color:var(--ok);font-weight:600}.lo-legend{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);letter-spacing:var(--track);margin:0 0 var(--sp-2);display:flex}.lo-sec>h2{margin-bottom:0}.lo-sec-problems>h2{color:var(--danger)}.lo-head,.lo-line{gap:var(--sp-4);padding:var(--sp-2);grid-template-columns:minmax(200px,1.4fr) 90px 170px minmax(200px,1.2fr) 190px;align-items:center;display:grid}.lo-head{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3);padding-top:var(--sp-1);padding-bottom:var(--sp-1);border-bottom:1px solid var(--line)}.lo-line{all:unset;box-sizing:border-box;cursor:pointer;gap:var(--sp-4);width:100%;padding:var(--sp-2);border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2);text-transform:uppercase;grid-template-columns:minmax(200px,1.4fr) 90px 170px minmax(200px,1.2fr) 190px;align-items:center;display:grid;position:relative}.lo-line:hover{background:var(--row-hover)}.lo-line:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lo-line.has-problem:before{content:"";background:var(--danger);width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.lo-l-name{flex-direction:column;min-width:0;display:flex}.lo-l-t{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lo-l-sub{font-size:var(--fs-xs);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lo-l-crane{color:var(--ink)}.lo-l-last{font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lo-l-tags{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.lo-tag-problem{background:var(--danger);color:#fff}@media (width<=900px){.lo-head{display:none}.lo-line{gap:4px var(--sp-3);grid-template-columns:1fr auto;grid-template-areas:"name crane""prog tags""last last"}.lo-l-name{grid-area:name}.lo-l-crane{text-align:right;grid-area:crane}.lo-prog{grid-area:prog}.lo-l-last{white-space:normal;grid-area:last}.lo-l-tags{grid-area:tags}.lo-line.has-problem:before{left:-6px}}.lo-page-h{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.lo-page-h h1{margin:0}.lo-filters{gap:var(--sp-2);margin:var(--sp-3) 0;flex-wrap:wrap;align-items:center;display:flex}.lo-filters input[type=text]{width:240px;max-width:100%;margin:0}.lo-form{background:var(--panel);border:1px solid var(--line);padding:var(--sp-4);margin-bottom:var(--sp-4);gap:var(--sp-3);max-width:760px;display:grid}.lo-grid{gap:var(--sp-2) var(--sp-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lo-grid .f{flex-direction:column;min-width:0;display:flex}.lo-grid .f.wide{grid-column:span 2}.lo-grid input,.lo-grid select{width:100%;margin-bottom:0}.lo-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.lo-list{border-top:2px solid var(--line-strong)}.lo-row{border-bottom:1px solid var(--line)}.lo-row-h{all:unset;box-sizing:border-box;cursor:pointer;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2);text-transform:uppercase;font-size:var(--fs-sm);color:var(--ink-2);grid-template-columns:18px minmax(200px,1fr) 90px 130px 170px 210px;display:grid;position:relative}.lo-row-h:hover{background:var(--row-hover)}.lo-row-h:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lo-row-h .caret{color:var(--ink-3);font-size:var(--fs-xs)}.lo-st{font-size:var(--fs-xs);letter-spacing:var(--track)}.lo-ship{white-space:nowrap;font-size:var(--fs-xs);color:var(--ink-2)}.lo-st.complete{color:var(--ok)}.lo-st.cancelled{color:var(--ink-3);text-decoration:line-through}.lo-row.has-problem>.lo-row-h:before{content:"";background:var(--danger);width:3px;position:absolute;top:8px;bottom:8px;left:-10px}@media (width<=900px){.lo-row-h{gap:4px var(--sp-2);grid-template-columns:14px 1fr auto;grid-template-areas:"c name crane""c prog tags""c ship ship"}.lo-row-h .caret{grid-area:c;align-self:start;padding-top:3px}.lo-row-h .lo-l-name{grid-area:name}.lo-row-h .lo-l-crane{text-align:right;grid-area:crane}.lo-row-h .lo-prog{grid-area:prog}.lo-row-h .lo-l-tags{grid-area:tags}.lo-row-h .lo-ship{font-size:var(--fs-xs);grid-area:ship}.lo-row.has-problem>.lo-row-h:before{left:-6px}.lo-grid{grid-template-columns:1fr 1fr}.lo-grid .f.wide{grid-column:span 2}}.lo-body{background:var(--sunken);padding:var(--sp-3) var(--sp-4) var(--sp-4);gap:var(--sp-4);display:grid}.lo-block-h{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3);margin-bottom:var(--sp-2);gap:var(--sp-2);align-items:baseline;display:flex}.lo-block-h .c{font-family:var(--font-mono);color:var(--ink);font-weight:700}.lo-kv{gap:var(--sp-2) var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.lo-kv .k{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3)}.lo-kv .v{color:var(--ink);overflow-wrap:anywhere}.lo-problem{border:1px solid var(--danger);background:var(--panel);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);border-left-width:4px;gap:6px;max-width:760px;display:grid}.lo-problem+.lo-problem{margin-top:var(--sp-2)}.lo-problem.resolved{border-color:var(--line-strong);border-left-color:var(--ok);opacity:.8}.lo-problem-h{gap:var(--sp-2);flex-wrap:wrap;align-items:baseline;display:flex}.lo-problem-h .kind{color:var(--danger);letter-spacing:var(--track);font-weight:700}.lo-problem.resolved .kind{color:var(--ink-2)}.lo-problem .who{font-size:var(--fs-xs);color:var(--ink-3)}.lo-problem .note{color:var(--ink)}.lo-resolve{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.lo-resolve input[type=text]{flex:200px;min-width:0;margin:0}.lo-items{max-width:760px;display:grid}.lo-item{padding:var(--sp-2) 0;border-bottom:1px solid var(--line);gap:4px;min-width:0;display:grid}.lo-item-h{gap:var(--sp-2);flex-wrap:wrap;align-items:baseline;min-width:0;display:flex}.lo-item-h .lab{color:var(--ink);font-family:var(--font-mono);overflow-wrap:anywhere}.lo-item-h .typ{color:var(--ink-3);font-size:var(--fs-xs)}.lo-item-h .x{color:var(--danger);padding:0 var(--sp-1);background:0 0;border:none;margin-left:auto}.lo-istat{font-size:var(--fs-xs);letter-spacing:var(--track);min-width:76px}.lo-istat.pending{color:var(--ink-3)}.lo-istat.loaded{color:var(--ink)}.lo-istat.delivered{color:var(--ok)}.lo-tag-field{border:1px solid var(--accent);color:var(--ink)}.lo-ev{gap:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;align-items:baseline;display:flex}.lo-ev .verb{min-width:76px;font-weight:600}.lo-ev .verb.loaded{color:var(--ink)}.lo-ev .verb.delivered{color:var(--ok)}.lo-ev .t{font-family:var(--font-mono);color:var(--ink-2)}.lo-ev a{color:var(--accent);text-decoration:none}.lo-thumbs{gap:var(--sp-2);flex-wrap:wrap;display:flex}.lo-thumbs img{object-fit:cover;border:1px solid var(--line);background:var(--panel);width:72px;height:72px}.lo-thumbs figure{gap:2px;margin:0;display:grid}.lo-thumbs figcaption{letter-spacing:.04em;color:var(--ink-3);max-width:96px;font-size:10px}.lo-thumbs.big img{width:96px;height:96px}.lo-add{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.lo-add select,.lo-add input[type=text]{min-width:0;margin:0}.lo-add .grow{flex:220px}@media (width<=700px){.lo-body{padding:var(--sp-3) var(--sp-2)}.lo-thumbs img{width:64px;height:64px}}.ops-head{align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.ops-head h1{margin:0}.ops-head .spacer{flex:1}.ops-asof{font-size:var(--fs-xs);color:var(--ink-3);font-family:var(--font-mono)}.kpis{background:var(--line);border:1px solid var(--line);margin-bottom:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1px;display:grid}.kpi{background:var(--panel);padding:var(--sp-3) var(--sp-4);text-align:left;color:inherit;cursor:default;border:none;text-decoration:none;display:block}button.kpi{cursor:pointer;font:inherit;letter-spacing:normal}button.kpi:hover,a.kpi:hover{background:var(--row-hover)}.kpi .n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-2xl);color:var(--ink);line-height:1.1}.kpi .l{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3);margin-top:2px}.kpi.is-danger .n{color:var(--danger)}.kpi.is-overdue .n{color:var(--overdue)}.kpi.is-due-soon .n{color:var(--due-soon)}.kpi.is-zero .n{color:var(--ink-3)}.ops-tabs{border-bottom:1px solid var(--line-strong);margin-bottom:var(--sp-4);gap:0;display:flex;overflow-x:auto}.ops-tabs button{color:var(--ink-3);padding:var(--sp-2) var(--sp-4);white-space:nowrap;background:0 0;border-bottom:2px solid #0000}.ops-tabs button:hover{color:var(--ink);background:0 0}.ops-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.ops-tabs .count{font-family:var(--font-mono);margin-left:var(--sp-2);color:var(--ink-3)}.ops-filters{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.ops-filters input[type=text]{width:180px;margin:0}.chip{color:var(--ink-2);border:1px solid var(--line-strong);font-size:var(--fs-xs);background:0 0;padding:4px 10px}.chip:hover{background:var(--row-hover);color:var(--ink)}.chip.on{background:var(--ink);color:var(--page);border-color:var(--ink)}.chip .c{font-family:var(--font-mono);opacity:.75;margin-left:6px}.ops-check{font-size:var(--fs-xs);color:var(--ink-2);align-items:center;gap:6px;margin:0;display:flex}.fleet{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(270px,1fr));display:grid}.unit{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line-strong);padding:var(--sp-3);cursor:pointer;gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.unit:hover{background:var(--row-hover)}.unit.st-down,.unit.st-out_of_service,.unit.st-needs_repair{border-left-color:var(--danger)}.unit.st-operational{border-left-color:var(--line)}.unit-top{align-items:baseline;gap:var(--sp-2);display:flex}.unit-no{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--ink);font-weight:600}.unit-name{font-size:var(--fs-xs);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.unit-tags{flex-wrap:wrap;gap:4px;display:flex}.unit-line{font-size:var(--fs-xs);color:var(--ink-2);gap:var(--sp-2);align-items:center;min-width:0;display:flex}.unit-line .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.unit-detail{border-top:1px solid var(--line);padding-top:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-2);cursor:auto;gap:4px;display:grid}.unit-detail .k{color:var(--ink-3)}.tag-down{background:var(--danger);color:#fff}.tag-needs{border:1px solid var(--danger);color:var(--danger)}.tag-shop{border:1px solid var(--ink-2);color:var(--ink)}.bar{background:var(--line-strong);flex:0 0 60px;height:4px;position:relative}.bar>i{background:var(--ink-2);position:absolute;inset:0 auto 0 0}.bar.full>i{background:var(--ok)}.frac{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}.lane-title{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3);margin:var(--sp-4) 0 var(--sp-2)}.kanban{gap:var(--sp-2);padding-bottom:var(--sp-2);grid-auto-columns:minmax(150px,1fr);grid-auto-flow:column;display:grid;overflow-x:auto}.col{background:var(--sunken);border:1px solid var(--line);flex-direction:column;min-width:0;min-height:120px;display:flex}.col-h{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-2);background:var(--sunken);justify-content:space-between;display:flex;position:sticky;top:0}.col-h .c{font-family:var(--font-mono);color:var(--ink-3)}.col-b{padding:var(--sp-2);gap:var(--sp-2);flex-direction:column;max-height:560px;display:flex;overflow-y:auto}.col-b>div{min-width:0}.card .tag{white-space:normal;overflow-wrap:anywhere}.card{background:var(--panel);border:1px solid var(--line);min-width:0;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--ink-2);gap:4px;display:grid;overflow:hidden}.card .t{color:var(--ink);font-size:var(--fs-sm);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card .row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.card .id{color:var(--ink)}.card.stale{border-left:3px solid var(--line-strong)}.empty{color:var(--ink-3);font-size:var(--fs-xs);padding:var(--sp-2)}.q-group{margin-bottom:var(--sp-6)}.q-group>h2{align-items:baseline;gap:var(--sp-3);display:flex}.q-group>h2 .c{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--ink-3)}.task{background:var(--panel);border:1px solid var(--line);margin-bottom:var(--sp-2)}.task.claimed{border-left:3px solid var(--accent)}.task.failed,.task.needs_approval{border-left:3px solid var(--danger)}.task-h{gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);cursor:pointer;flex-wrap:wrap;align-items:center;display:flex}.task-h .t{min-width:200px;color:var(--ink);flex:1}.task-b{border-top:1px solid var(--line);padding:var(--sp-3);background:var(--sunken);gap:var(--sp-3);display:grid}.kv{gap:4px var(--sp-4);font-size:var(--fs-sm);grid-template-columns:max-content 1fr;display:grid}.kv .k{color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:var(--track);padding-top:2px}.kv .v{color:var(--ink);overflow-wrap:anywhere}.task-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.task-actions input[type=text]{width:220px;margin:0}.err{color:var(--danger);font-size:var(--fs-sm)}.unit-batch{border:1px solid var(--line);background:var(--panel);margin-bottom:var(--sp-2)}.unit-batch-h{gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;display:flex}.unit-batch-h .unit-no{flex:none}.unit-batch table{table-layout:fixed;margin:0}.unit-batch th:first-child{width:230px}.unit-batch th:last-child{width:300px}@media (width<=700px){.kpis{grid-template-columns:repeat(2,1fr)}.kanban{grid-auto-columns:80%}.ops-filters input[type=text]{width:100%}}.kpi.is-ok .n{color:var(--ok)}.mr-sec{margin-bottom:var(--sp-6);scroll-margin-top:var(--sp-4)}.mr-sec>h2{align-items:baseline;gap:var(--sp-3);border-bottom:1px solid var(--line-strong);padding-bottom:var(--sp-2);display:flex}.mr-sec>h2 .c{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--ink-3)}.mr-legend{gap:var(--sp-3);font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;margin-left:auto;display:flex}.mr-legend span{align-items:center;gap:5px;display:inline-flex}.mr-legend i{border-radius:3px;width:16px;height:6px;display:inline-block}.lg-step{background:var(--ink-2)}.lg-overdue{background:var(--overdue)}.lg-due{background:var(--due-soon)}.lg-win{background:color-mix(in srgb, var(--due-soon) 22%, var(--line-strong))}.mr-legend i.lg-tick{background:var(--ink);border-radius:0;width:2px;height:12px}.rrow{border-bottom:1px solid var(--line);position:relative}.rrow.is-down:before{content:"";background:var(--danger);width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.rrow-h{all:unset;box-sizing:border-box;cursor:pointer;align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-2) var(--sp-2);text-transform:uppercase;font-size:var(--fs-sm);color:var(--ink-2);grid-template-columns:170px minmax(200px,300px) minmax(180px,1fr) max-content minmax(130px,220px) auto;display:grid}.rrow-h:hover{background:var(--row-hover)}.rrow-h:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.r-unit{flex-direction:column;min-width:0;display:flex}.r-sub{font-size:var(--fs-xs);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.r-what{gap:var(--sp-2);align-items:center;min-width:0;display:flex}.r-desc{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);overflow:hidden}.r-right{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.r-right b{font-weight:600}.r-tags{justify-content:flex-end;gap:4px;min-width:60px;display:flex}.txt-overdue{color:var(--overdue);font-weight:600}.rrow-b{padding:var(--sp-2) var(--sp-3) var(--sp-4) calc(170px + var(--sp-4) + var(--sp-2));gap:var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2);background:var(--sunken);display:grid}.rrow-b .k{color:var(--ink-3)}.wo-line{gap:6px;max-width:640px;display:grid}.wo-h{gap:var(--sp-3);display:flex}.wo-h .grow{color:var(--ink);flex:1}.svc-grid{gap:6px var(--sp-4);grid-template-columns:max-content minmax(160px,260px) max-content max-content max-content;align-items:center;display:grid}.svc{display:contents}.svc-l{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:var(--track)}.svc-t{font-family:var(--font-mono);font-size:var(--fs-xs)}.steps{grid-template-columns:repeat(5,1fr);gap:3px;display:grid}.step{flex-direction:column;gap:3px;min-width:0;display:flex;position:relative}.step .seg{background:var(--line-strong);border-radius:4px;height:8px;position:relative;overflow:hidden}.step .seg>i{background:var(--ink-2);position:absolute;inset:0 auto 0 0}.step.past .seg{background:var(--ink-2)}.step.now .seg{box-shadow:inset 0 0 0 1.5px var(--ink)}.step.ok .seg{background:var(--ok)}.step .lab{letter-spacing:.04em;color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;visibility:hidden;font-size:9px;overflow:hidden}.step.now .lab{visibility:visible;color:var(--ink-2);overflow:visible}.step.ok:last-child .lab{visibility:visible;color:var(--ink-2);position:absolute;top:11px;right:0;overflow:visible}.sbar .track{background:var(--line-strong);border-radius:4px;height:8px;position:relative}.sbar .win{background:color-mix(in srgb, var(--due-soon) 22%, var(--line-strong));position:absolute;top:0;bottom:0}.sbar .fill{border-radius:4px;position:absolute;top:0;bottom:0;left:0}.sbar .fill.overdue{background:var(--overdue)}.sbar .fill.due-soon{background:var(--due-soon)}.sbar .fill.quiet{background:var(--ink-3)}.sbar .due{background:var(--ink);width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.sbar.compact .track{height:6px}@media (width<=900px){.rrow-h{gap:var(--sp-2);grid-template-columns:1fr auto;grid-template-areas:"unit right""bar bar""what tags"}.r-unit{grid-area:unit}.r-bar{grid-area:bar}.r-what{grid-area:what}.r-right{grid-area:right}.r-tags{grid-area:tags}.rrow-b{padding-left:var(--sp-3)}.svc-grid{grid-template-columns:1fr auto}.svc-grid .svc-l,.svc-grid .sbar{grid-column:1/-1}.mr-legend{margin-left:0}}.r-wo{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.wo-chip{text-decoration:none}a.wo-chip:hover{color:var(--ink);border-color:var(--ink-2)}.new-wo{font-size:var(--fs-xs);letter-spacing:var(--track);border:1px dashed var(--accent);color:var(--ink);cursor:pointer;white-space:nowrap;padding:3px 8px}.new-wo:hover,.new-wo:focus-visible{background:var(--accent);color:var(--accent-ink);outline:none}.wo-modal-bg{z-index:60;padding:var(--sp-4);background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.wo-modal{background:var(--panel);border:1px solid var(--line-strong);width:min(760px,100%);max-height:90vh;padding:var(--sp-6);gap:var(--sp-4);display:grid;overflow-y:auto}.wo-modal-h h2{margin:0}.wf-grid{gap:var(--sp-2) var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}.wf{flex-direction:column;min-width:0;display:flex}.wf.wide{grid-column:span 3}.wf input,.wf select{width:100%;margin-bottom:0}.wf-hint{font-size:var(--fs-xs);color:var(--ink-3);margin-top:2px}@media (width<=900px){.rrow-h{grid-template-areas:"unit right""bar bar""what what""wo tags"}.r-wo{grid-area:wo;justify-content:flex-start}.wf-grid{grid-template-columns:1fr 1fr}.wf.wide{grid-column:span 2}}.mr-msg{border:1px solid var(--line-strong);border-left:3px solid var(--ok);background:var(--panel);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-4);font-size:var(--fs-sm)}.drop{border:1px dashed var(--line-strong);background:var(--panel);padding:var(--sp-6);gap:var(--sp-3);text-align:center;display:grid}.drop:hover{border-color:var(--accent)}.drop-l{font-size:var(--fs-md);color:var(--ink);cursor:pointer;letter-spacing:var(--track);margin:0}.mr-msg.stale-msg{border-left-color:var(--due-soon)}.sync-table td input[type=checkbox]{width:16px;height:16px}.type-h{align-items:baseline;gap:var(--sp-2);margin:var(--sp-4) 0 0;padding:0 var(--sp-2) 6px;font-size:var(--fs-lg);letter-spacing:var(--track);text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--line-strong);font-weight:700;display:flex}.type-h .c{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.mr-sec>h2 .c{font-weight:700}.hide-btn{font-size:var(--fs-xs);letter-spacing:var(--track);border:1px solid var(--line-strong);color:var(--ink-3);cursor:pointer;white-space:nowrap;padding:2px 6px}.hide-btn:hover,.hide-btn:focus-visible{color:var(--ink);border-color:var(--ink-2);outline:none}.hide-btn.on{color:var(--ink-2);border-style:dashed}.rrow.is-hidden{opacity:.45}.rrow.is-hidden:hover{opacity:.8}.wo-chip-group{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:220px;display:inline-flex}.buy-tag{white-space:normal;text-align:left;border:1px solid var(--line-strong);max-width:220px;color:var(--ink-2);white-space:nowrap}.buy-tag b{color:var(--ink);font-family:var(--font-mono);margin-right:2px;font-weight:600}.buy-tag.is-partial{border-style:dashed;border-color:var(--ink-2)}.ptrack{padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);background:var(--panel);gap:6px;display:grid}.ptrack-h{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.ptrack-h .grow{color:var(--ink);flex:1;min-width:160px}.psteps{gap:3px;display:grid}.pstep{flex-direction:column;gap:2px;min-width:0;display:flex}.pstep .seg{background:var(--line-strong);border-radius:3px;height:6px}.pstep.done .seg{background:var(--ink-2)}.pstep.done.partial .seg{background:linear-gradient(90deg, var(--ink-2) 50%, var(--line-strong) 50%)}.pstep .lab{letter-spacing:.03em;color:var(--ink-3);text-transform:uppercase;font-size:10px;line-height:1.25}.pstep.done .lab{color:var(--ink-2)}.pstep .when{font-size:var(--fs-xs);color:var(--ink-2);font-variant-numeric:tabular-nums}.pstep:not(.done) .when{color:var(--ink-3)}.psteps.mini{margin:2px 0}.psteps.mini .pstep .seg{height:4px}@media (width<=900px){.psteps:not(.mini){row-gap:var(--sp-2);grid-template-columns:1fr 1fr!important}}.order{overflow-wrap:anywhere;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line-strong);min-width:0;padding:var(--sp-3) var(--sp-4);gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--fs-sm);display:grid}.order.is-late,.order.is-bad{border-left-color:var(--danger)}.o-head{gap:var(--sp-3);flex-wrap:wrap;align-items:baseline;display:flex}.o-vendor{color:var(--ink);font-weight:700;font-size:var(--fs-md)}.o-desc{color:var(--ink-2);overflow-wrap:anywhere;flex:1;min-width:0}.o-refs{gap:var(--sp-2) var(--sp-6);color:var(--ink);flex-wrap:wrap;display:flex}.o-refs .k{color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:var(--track);margin-right:4px}.o-timing{color:var(--ink-2)}.o-timing b{color:var(--ink)}.txt-late{color:var(--danger);font-weight:600}.o-detail{color:var(--ink-3);font-size:var(--fs-xs)}.o-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.o-actions a{margin-right:auto}.o-actions select{max-width:420px;margin-bottom:0}.shipbar{grid-template-columns:repeat(6,1fr);gap:3px;max-width:760px;display:grid}.ss{flex-direction:column;gap:3px;min-width:0;display:flex}.ss .seg{background:var(--line-strong);border-radius:4px;height:8px}.ss.past .seg{background:var(--ink-2)}.ss.now .seg{background:var(--ink-2);box-shadow:0 0 0 1.5px var(--ink)}.ss.ok .seg{background:var(--ok)}.ss.bad .seg{background:var(--danger)}.ss .lab{letter-spacing:.04em;color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.ss.now .lab,.ss.ok .lab,.ss.bad .lab{color:var(--ink);font-weight:600}.order.post{border-left-color:var(--accent)}.post-imgs{gap:var(--sp-2);flex-wrap:wrap;display:flex}.post-imgs img{border:1px solid var(--line);object-fit:cover;height:96px}@media (width<=700px){.o-actions select{width:100%;max-width:100%}.ss .lab{visibility:hidden}.ss.now .lab,.ss.ok .lab,.ss.bad .lab{visibility:visible;overflow:visible}}.req-no{color:var(--ink-3);font-size:var(--fs-sm)}.req-po{color:var(--ink);border-color:var(--ink-2)}.order.req.is-waiting{border-left-color:var(--danger)}.order.req.is-off{opacity:.6}.req-warn{border-left:3px solid var(--unverified);padding:2px var(--sp-2);color:var(--unverified);font-size:var(--fs-xs)}.req-lines{overflow-x:auto}.req-lines table{margin:0}.req-wo-row{gap:var(--sp-2);align-items:flex-start;display:flex}.req-wo-row select{flex:1;min-width:0}.req-wo-row button{white-space:nowrap}.req-need-wo{gap:var(--sp-3);border:1px dashed var(--accent);background:var(--sunken);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap;align-items:center;display:flex}.req-need-wo span{flex:1;min-width:220px}.req-lines-h{gap:var(--sp-3);margin-top:var(--sp-4);flex-wrap:wrap;align-items:baseline;display:flex}.req-lines-h h3{letter-spacing:var(--track);margin:0}.req-grid{margin-top:var(--sp-2);gap:4px;display:grid}.req-gh,.req-gr{gap:var(--sp-2);grid-template-columns:minmax(120px,1.2fr) minmax(110px,1fr) minmax(150px,2fr) 64px 96px minmax(90px,1fr) 104px 34px;align-items:center;display:grid}.req-gh span{font-size:var(--fs-xs);letter-spacing:var(--track);color:var(--ink-3)}.req-gr input[type=text],.req-gr input[type=number]{width:100%;min-width:0;margin:0}.req-fcc{justify-content:center}.req-fcc input{width:18px;height:18px}.req-fcc-l{display:none}.req-x{width:34px;padding:4px 0}.req-form button:disabled{opacity:.45;cursor:not-allowed}.req-wrap{white-space:normal}.req-problems{margin:var(--sp-3) 0 0;padding-left:var(--sp-6);color:var(--ink-3);font-size:var(--fs-sm)}@media (width<=900px){.req-gh{display:none}.req-gr{padding:var(--sp-2);border:1px solid var(--line);background:var(--panel);grid-template-columns:1fr 1fr}.req-gr>:nth-child(3),.req-gr>:nth-child(6){grid-column:span 2}.req-fcc{justify-content:flex-start}.req-fcc-l{display:inline}.req-x{justify-self:end}.req-wo-row{flex-direction:column;align-items:stretch}}@media (width<=700px){.req-lines td{gap:var(--sp-2);display:flex}.req-lines td:before{content:attr(data-l);color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:var(--track);min-width:96px;font-family:var(--font-sans)}.req-lines td:first-child{font-size:var(--fs-sm)}}.auto-panel{gap:var(--sp-3) var(--sp-6);border:1px solid var(--line-strong);border-left:3px solid var(--ok);background:var(--panel);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;display:flex}.auto-panel.is-waiting{border-left-color:var(--accent)}.auto-panel.is-failed{border-left-color:var(--danger)}.auto-panel .k{color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:var(--track);display:block}.auto-panel .big{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xl);color:var(--ink)}.auto-panel .grow{min-width:200px;color:var(--ink-2);flex:1}.rc-page .k{color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:var(--track)}.rc-kpi{font:inherit;text-align:left;color:inherit;cursor:pointer;border:0;border-radius:0}.rc-kpi:hover{background:var(--row-hover)}.rc-kpi.is-on{box-shadow:inset 0 -3px 0 var(--accent)}.kpi .n.rc-money{font-size:var(--fs-xl);line-height:1.35}.rc-filters select{width:auto;max-width:230px;margin:0}.rc-filters input[type=text][aria-label=Search]{width:240px}.rc-wo{white-space:nowrap;flex-direction:column;gap:2px;display:flex}.rc-table td{vertical-align:top}.rc-table tbody tr{border-bottom:1px solid var(--line);cursor:pointer}.rc-table tbody tr:hover,.rc-table tbody tr.is-open{background:var(--row-hover)}.rc-table .num{text-align:right;white-space:nowrap}.rc-what{flex-direction:column;gap:2px;min-width:0;display:flex}.rc-merchant{color:var(--ink)}.rc-purpose{color:var(--ink-3);font-size:var(--fs-xs)}.rc-more{font-size:var(--fs-xs);color:var(--ink-2);word-break:break-word;gap:2px;margin-top:4px;display:grid}.rc-coding{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.rc-status{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.rc-status .muted{font-size:var(--fs-xs)}.rc-st-enter{border:1px solid var(--ink-2);color:var(--ink)}.rc-st-sent{border:1px solid var(--line-strong);color:var(--ink-2)}.rc-st-problem{border:1px solid var(--danger);color:var(--danger)}.rc-st-done{background:var(--ok);color:var(--ok-ink)}.rc-counted{font-size:var(--fs-xs);white-space:nowrap}@media (width<=700px){.rc-filters select,.rc-filters input[type=text],.rc-filters input[type=text][aria-label=Search]{width:100%;max-width:none}.rc-table thead{display:none}.rc-table,.rc-table tbody,.rc-table tr{width:100%;display:block}.rc-table tr{padding:var(--sp-2) 0}.rc-table td{gap:var(--sp-2);grid-template-columns:84px minmax(0,1fr);padding:3px 0;display:grid}.rc-table td:before{content:attr(data-l);color:var(--ink-3);font-size:var(--fs-xs);letter-spacing:var(--track);padding-top:2px}.rc-table .num{text-align:left}.rc-counted{white-space:normal}}.wo-extra{gap:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-2);flex-wrap:wrap;align-items:baseline;padding:2px 0;display:flex}.wo-extra .tag{flex:none}.wo-extra .grow{flex:1;min-width:160px}
