:root{--bg: #f4f5f7;--card: #fff;--text: #1d2330;--muted: #6b7280;--line: #e3e6eb;--brand: #1f2a3c;--accent: #e8590c;--accent-2: #fff1e8;--ok: #1f8a4c;--ok-bg: #e6f5ec;--warn: #b26b00;--warn-bg: #fff6e0;--err: #c62828;--err-bg: #fdecec;--info: #2563eb;--info-bg: #e9f0fe;--radius: 10px;--shadow: 0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.08);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:15px;line-height:1.45}a{color:inherit}h1{font-size:1.45rem;margin:0}h3{font-size:1rem;margin:0 0 .6rem}.muted{color:var(--muted)}.pre{white-space:pre-wrap;margin:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--brand);color:#fff;padding:10px 20px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:600}.brand-mark{background:var(--accent);color:#fff;border-radius:6px;padding:2px 7px;font-weight:800;letter-spacing:.5px}.brand-name{font-size:1.05rem}.user{display:flex;align-items:center;gap:10px}.user-name{font-weight:500}.role-badge{font-size:.75rem;padding:2px 8px;border-radius:999px;background:#ffffff26}.content{max-width:1240px;margin:0 auto;padding:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--text);padding:8px 14px;border-radius:8px;font:inherit;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-ghost{background:transparent;color:#fff;border-color:#ffffff59;padding:5px 12px}.btn-link{border:0;background:none;color:var(--brand);text-decoration:underline;padding:6px}.btn-block{width:100%}.btn-small{padding:4px 10px;font-size:.85rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}.auth-wrap{display:flex;justify-content:center;padding:6vh 0}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px;padding:24px}.lbl{display:flex;flex-direction:column;gap:4px;font-weight:500;font-size:.9rem}input[type=email],input[type=password],input[type=search],select{font:inherit;padding:9px 11px;border:1px solid #cdd2da;border-radius:8px;background:#fff;min-width:0}input:focus,select:focus,.btn:focus-visible,.tab:focus-visible,.prow:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.check{display:flex;align-items:center;gap:8px;font-size:.9rem}.form-msg{color:var(--err);margin:0;min-height:1.2em;font-size:.9rem}.rules{margin:0;padding-left:18px;color:var(--muted);font-size:.9rem}.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;align-items:center}.search{flex:1 1 280px}.plist{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.prow{display:grid;grid-template-columns:92px minmax(150px,2.2fr) 134px 140px 92px 70px 70px 108px minmax(84px,1.2fr) 104px;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.prow:last-child{border-bottom:0}a.prow:hover{background:#fafbfc}.prow-head{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfc;font-weight:600}.prow.is-test{background:repeating-linear-gradient(45deg,#fff,#fff 10px,#fbfbf4 10px 20px)}.c-nr{font-weight:700;font-variant-numeric:tabular-nums}.c-name{display:flex;flex-direction:column;min-width:0}.c-name strong,.c-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-upd{font-size:.85rem;white-space:nowrap}.c-warn{min-width:0;overflow:hidden}.c-deadline .deadline{white-space:nowrap}.mlabel{display:none;font-style:normal;color:var(--muted)}.status{display:inline-block;font-size:.78rem;font-weight:600;padding:3px 9px;border-radius:999px;background:#eef0f3;color:#374151;white-space:nowrap}.status-draft,.status-waiting_info{background:#f1f2f4;color:#5b6170}.status-ready_for_approval{background:var(--info-bg);color:var(--info)}.status-approved_for_production{background:var(--accent-2);color:#b54708}.status-in_production{background:#ede9fe;color:#6d28d9}.status-produced,.status-delivered,.status-completed{background:var(--ok-bg);color:var(--ok)}.status-stopped{background:var(--err-bg);color:var(--err)}.deadline small{color:var(--muted)}.deadline.late{color:var(--err);font-weight:600}.deadline.late small{color:var(--err)}.deadline.soon{color:var(--warn);font-weight:600}.deadline.soon small{color:var(--warn)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#c5cad3;flex:none}.dot-info{background:var(--info)}.dot-warn{background:#f59e0b}.dot-error{background:var(--err)}.warn{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;min-width:0;max-width:100%}.warn-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warn-error{color:var(--err)}.warn-warn{color:var(--warn)}.warn-info{color:var(--info)}.warn-none{color:var(--ok);font-weight:700}.back{display:inline-block;margin-bottom:10px;color:var(--muted);text-decoration:none}.project-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}.pnr{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:center}.test-badge{background:#fde68a;color:#7c5800;font-size:.7rem;padding:1px 6px;border-radius:4px}.head-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.warnbox{border-radius:var(--radius);padding:12px 16px;margin-bottom:14px;border:1px solid}.warnbox ul{margin:6px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:4px}.warnbox-error{background:var(--err-bg);border-color:#f5c2c2}.warnbox-warn{background:var(--warn-bg);border-color:#f3dca2}.warnbox-info{background:var(--info-bg);border-color:#c8d8fb}.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:14px;scrollbar-width:thin}.tab{border:0;background:none;font:inherit;padding:10px 12px;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tab-count{margin-left:6px;font-size:.72rem;background:#eef0f3;color:#4b5563;padding:1px 6px;border-radius:999px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.span2{grid-column:1 / -1}.fields{margin:0;display:grid;grid-template-columns:1fr}.field{display:grid;grid-template-columns:160px 1fr;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line)}.field:last-child{border-bottom:0}.field dt{color:var(--muted);font-size:.88rem}.field dd{margin:0;overflow-wrap:anywhere}.field-warn dd{background:var(--warn-bg);border-radius:6px;padding:2px 6px;margin-left:-6px}.field-warn dt:after{content:" ⚠";color:var(--warn)}.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}.product header{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.product header h3{margin:0;flex:1}.code{background:var(--brand);color:#fff;font-weight:700;font-size:.8rem;padding:2px 7px;border-radius:5px}.note{font-size:.82rem;color:var(--muted);margin:8px 0 0}.fgroup h3{display:flex;align-items:center}.frow{display:grid;grid-template-columns:minmax(200px,2fr) 1fr auto auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.f-name{display:flex;flex-direction:column;min-width:0}.f-name strong{overflow-wrap:anywhere}.f-meta{font-size:.85rem}.f-flags{display:flex;gap:6px;flex-wrap:wrap}.f-notes{font-size:.82rem}.hint{display:block;margin:2px 0 0 26px;font-size:.8rem}.pill{display:inline-block;font-size:.74rem;padding:2px 8px;border-radius:999px;background:#eef0f3;color:#4b5563;white-space:nowrap}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-err{background:var(--err-bg);color:var(--err)}.pill-live{background:var(--brand);color:#fff}.dispatch header{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.placeholder{text-align:center;padding:32px 16px}.state{text-align:center;padding:40px 16px;color:var(--muted)}.state-error h2{color:var(--text)}.spinner{width:28px;height:28px;border:3px solid #d6dae1;border-top-color:var(--accent);border-radius:50%;margin:0 auto 10px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.demo-banner{background:#fde68a;color:#6b4e00;text-align:center;font-size:.82rem;padding:4px 8px;font-weight:600}@media (max-width: 900px){.topbar{padding:10px 14px}.user-name{display:none}.content{padding:14px}.prow-head{display:none}.prow{grid-template-columns:1fr auto;grid-template-areas:"nr status" "name name" "deadline deadline" "resp resp" "prod deliv" "inv inv" "warn warn" "upd upd";gap:4px 10px;padding:12px 14px}.c-nr{grid-area:nr}.c-status{grid-area:status}.c-name{grid-area:name}.c-deadline{grid-area:deadline;font-size:.9rem}.c-resp{grid-area:resp;font-size:.9rem}.c-warn{grid-area:warn}.c-upd{grid-area:upd}.c-prod{grid-area:prod;font-size:.9rem}.c-deliv{grid-area:deliv;font-size:.9rem}.c-inv{grid-area:inv;font-size:.9rem}.status-actions{justify-content:flex-start}.c-name strong,.c-name small{white-space:normal}.mlabel{display:inline}.grid2{grid-template-columns:1fr}.field{grid-template-columns:120px 1fr}.products{grid-template-columns:1fr}.frow{grid-template-columns:1fr auto}.f-meta{grid-column:1 / -1}.f-flags{grid-column:1}.head-meta{align-items:flex-start}}.f-act{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.f-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.f-msg{font-size:.8rem;text-align:right;max-width:260px}.f-msg:empty{display:none}.f-msg-err{color:var(--err)}.btn[aria-busy=true]{cursor:progress}.task-current .f-act{align-items:flex-start;margin-top:10px}.task-current .f-msg{text-align:left}@media (max-width: 900px){.f-act{grid-column:1 / -1;align-items:stretch}.f-btns{justify-content:stretch}.f-btns .btn{flex:1 1 0;min-height:40px}.f-msg{text-align:left;max-width:none}}.mainnav{display:flex;gap:4px;background:#fff;border-bottom:1px solid var(--line);padding:0 20px;overflow-x:auto}.nav-item{padding:11px 14px;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;font-weight:600;white-space:nowrap}.nav-item.active{color:var(--text);border-bottom-color:var(--accent)}.wnav{display:flex;gap:6px;overflow-x:auto;margin-bottom:14px;padding-bottom:2px}.wnav-item{display:inline-flex;flex-direction:column;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;text-decoration:none;font-weight:600;white-space:nowrap;min-height:44px;justify-content:center}.wnav-item.active{background:var(--brand);color:#fff;border-color:var(--brand)}.wnav-item.disabled{color:#9aa1ad;background:#f7f8fa;cursor:not-allowed}.wnav-item small{font-size:.65rem;font-weight:500;line-height:1}.btn-big{min-height:52px;font-size:1.05rem;padding:10px 18px;border-radius:12px}.pill-wait{background:var(--warn-bg);color:var(--warn)}.inv-newpanel{margin-top:10px}.inv-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.inv-cat{min-height:56px;font-weight:600}.inv-info{margin:10px 0 0;color:var(--info);background:var(--info-bg);border-radius:8px;padding:8px 10px;font-size:.9rem}.inv-sessions{display:flex;flex-direction:column;gap:12px;margin-top:14px}.inv-scard{display:flex;flex-direction:column;gap:8px;text-decoration:none;margin:0}.inv-scard.is-pending{border-color:#f3dca2}.inv-scard-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.inv-scard-title{font-size:1.15rem}.inv-scard-code{font-size:.85rem}.inv-progress{display:flex;flex-direction:column;gap:4px;margin:6px 0 10px}.inv-progress-text{font-size:1rem}.inv-progress progress{width:100%;height:12px;accent-color:var(--accent)}.inv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.inv-banner{background:var(--warn-bg);border:1px solid #f3dca2;border-radius:var(--radius);padding:12px 14px;margin:8px 0 14px}.inv-banner ul{margin:8px 0 0;padding-left:18px}.inv-banner-err{background:var(--err-bg);border-color:#f5c2c2}.inv-banner-ok{background:var(--ok-bg);border-color:#b7e2c6}.inv-actions{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin-bottom:12px}.inv-search{width:100%;font-size:1.05rem;padding:12px}.inv-chips{display:flex;gap:6px;overflow-x:auto;margin:10px 0;padding-bottom:2px}.chip{font:inherit;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;white-space:nowrap;min-height:40px;cursor:pointer}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.inv-lines{display:flex;flex-direction:column;gap:8px;padding-bottom:80px}.inv-line{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;margin:0;padding:12px 14px}.inv-line.is-done{background:#fbfdfb}.inv-line-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:6px}.inv-kv{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px 12px}.inv-kv-row dd{margin:0;font-weight:500;overflow-wrap:anywhere}.inv-sticky{position:sticky;bottom:0;padding:10px 0;background:linear-gradient(to top,var(--bg) 70%,transparent)}.inv-count{display:flex;flex-direction:column;gap:14px}.inv-count-title{margin:0;font-size:1.3rem}.inv-count-nav{margin-bottom:6px}.inv-qty-row{display:grid;grid-template-columns:64px 1fr 64px;gap:8px}.inv-qty{font:inherit;font-size:2.2rem;font-weight:700;text-align:center;padding:8px;border:2px solid #cdd2da;border-radius:12px;min-width:0;width:100%}.inv-qty:focus{outline:2px solid var(--accent);border-color:var(--accent)}.inv-step{font-size:1.8rem;min-height:64px;border-radius:12px}.inv-loc{font-size:1.05rem;padding:12px}.inv-note,.inv-count textarea,.inv-count input[type=text]{font:inherit;padding:10px 12px;border:1px solid #cdd2da;border-radius:8px;width:100%}.inv-count-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.form-msg.info{color:var(--info)}.inv-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:10px 0}.inv-stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;text-align:center}.inv-stat-val{font-size:1.7rem;font-weight:800}.inv-stat-lbl{font-size:.82rem;color:var(--muted)}.inv-stat-bad .inv-stat-val{color:var(--err)}.inv-stat-warn .inv-stat-val{color:var(--warn)}.inv-top{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}.pos{color:var(--ok);font-weight:700}.neg{color:var(--err);font-weight:700}.inv-submit{display:flex;flex-direction:column;gap:10px}.inv-submit .check{font-size:1rem;align-items:flex-start}.inv-submit .check input{width:22px;height:22px;flex:none}.inv-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inv-photo{border:2px dashed var(--line);border-radius:10px;padding:18px;text-align:center;color:var(--muted)}.inv-body h2{margin:6px 0 8px}.btn-link{cursor:pointer;font:inherit}@media (max-width: 900px){.mainnav{padding:0 10px}.inv-actions{grid-template-columns:1fr}}.inv-cat{flex-direction:column;gap:2px;text-align:center}.inv-cat small{font-size:.78rem;font-weight:500;color:var(--muted)}.inv-cat.is-active{border-color:var(--accent);background:var(--accent-2)}.inv-unid{margin-top:14px;display:flex;flex-direction:column;gap:8px}.inv-unid h3{margin:0}.inv-unid-card{cursor:default;border-color:#f3dca2}.inv-unid-del{margin-top:8px}.inv-unid-count{color:var(--warn)}.inv-count select,.inv-two select{font-size:1.05rem;padding:12px}.upload-bar{display:flex;justify-content:flex-end;margin-bottom:10px}.modal{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal-box{background:#fff;border-radius:12px;padding:20px;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 50px #00000040}.modal-box h2{margin:0 0 12px;font-size:1.15rem}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.up-fields .field{grid-template-columns:110px 1fr}.up-fields input[type=file]{max-width:100%}.up-fields dd{min-width:0}.up-formats{display:block;margin-top:4px}.radios{display:flex;flex-direction:column;gap:6px}.radio{display:flex;align-items:center;gap:6px;cursor:pointer}.up-sent{margin-top:12px}.up-ok{font-weight:600}.progress{height:8px;background:#eef0f3;border-radius:999px;overflow:hidden;margin-top:12px}.progress-fill{height:100%;width:0;background:var(--accent);transition:width .2s}.frow.f-new{background:var(--ok-bg);border-radius:6px}@media (max-width: 900px){.modal{align-items:flex-end;padding:0}.modal-box{border-radius:14px 14px 0 0;width:100%}.modal-actions .btn{flex:1 1 0;min-height:44px}.upload-bar .btn{width:100%;min-height:44px}.up-fields .field{grid-template-columns:92px minmax(0,1fr)}}.task-full{border-color:#9ad4b1}.task-current h3 .pill{margin-left:8px;vertical-align:middle}.pill-full{background:var(--ok-bg);color:var(--ok);font-weight:700}.ft-confirm{margin:10px 0 8px}.ack{display:flex;gap:8px;align-items:flex-start;font-weight:600;margin:4px 0 10px;cursor:pointer}.ack input{margin-top:3px;width:18px;height:18px;flex:none}.task-mode{display:flex;flex-direction:column;gap:8px}.task-mode .warnbox{margin:0;padding:8px 12px}.task-mode-full{border-color:#9ad4b1}.task-mode-auto{border-color:#f3dca2}.task-mode-missing{border-color:#f1b4b4}.task-block-title{font-size:.85rem;letter-spacing:.06em;margin:0;color:var(--muted)}.task-vis{border-top:1px solid var(--line);padding-top:10px;margin-top:4px}.task-vis h3{font-size:.95rem;margin:0 0 4px}.task-vis p{margin:2px 0}.task-mode-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.pill-warn{background:var(--warn-bg);color:#8a5a00;font-weight:700}@media (max-width: 640px){.task-mode-actions .btn{width:100%;min-height:44px}}.c-prod,.c-deliv{white-space:nowrap;font-size:.85rem}.mark-no{opacity:.55}.status-dates{display:flex;gap:10px;font-size:.85rem;flex-wrap:wrap;justify-content:flex-end}.status-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.modal-box .st-to,.modal-box .st-note{display:flex;flex-direction:column;gap:4px;margin-top:10px}.modal-box .st-to span,.modal-box .st-note span{font-size:.85rem;color:var(--muted)}.modal-box textarea{width:100%;font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;resize:vertical}.st-ev{grid-template-columns:minmax(200px,1fr) auto}.st-ev .st-note{font-size:.85rem;color:var(--muted);margin-top:2px;white-space:pre-wrap}@media (max-width: 900px){.status-dates{justify-content:flex-start}.st-ev{grid-template-columns:1fr}.status-actions .btn{min-height:40px}}.modal-box .st-note[hidden],.modal-box .st-to[hidden]{display:none}@media (min-width: 901px){.c-nr{white-space:nowrap}.c-deadline{min-width:0}.c-deadline .deadline small{display:block;white-space:nowrap}.c-resp{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.modal-box .st-legacy{margin-top:10px;padding:10px 12px;border-radius:8px;background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;font-size:.88rem}.modal-box .st-legacy p{margin:4px 0 0}.modal-box .st-legacy .muted{color:#9a3412}.modal-box .st-legacy[hidden],.modal-box .st-date[hidden]{display:none}.modal-box .st-date{display:flex;flex-direction:column;gap:4px;margin-top:10px}.modal-box .st-date span{font-size:.85rem;color:var(--muted)}.modal-box .st-date input{font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px}.prow.prow-noinv{grid-template-columns:92px minmax(150px,2.2fr) 134px 140px 92px 70px 70px minmax(84px,1.2fr) 104px}.c-inv{font-size:.82rem;min-width:0}.inv-cell{display:flex;flex-direction:column;line-height:1.25}.inv-cell .inv-no{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inv-pay.inv-ok{color:var(--ok)}.inv-pay.inv-warn{color:var(--warn);font-weight:600}.inv-block{margin-bottom:14px}.inv-block .inv-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.inv-block h3{margin:0;font-size:.85rem;letter-spacing:.04em;color:var(--muted)}.inv-block h4{margin:12px 0 4px;font-size:.85rem;color:var(--muted)}.inv-row{display:grid;grid-template-columns:minmax(160px,1fr) 3fr auto;gap:10px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}.inv-kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 12px;margin:0}.inv-kv-row dt{font-size:.75rem;color:var(--muted)}.inv-kv-row dd{margin:0;font-size:.9rem}@media (max-width: 900px){.prow.prow-noinv{grid-template-columns:1fr auto}.inv-row{grid-template-columns:1fr}.inv-kv{grid-template-columns:1fr 1fr}.inv-cell{flex-direction:row;gap:8px;flex-wrap:wrap}}.readonly-pill{display:inline-block;margin:4px 0 8px}.bom-table{width:100%;border-collapse:collapse;font-size:14px}.bom-table th,.bom-table td{text-align:left;padding:6px 8px;border-bottom:1px solid #e5e7eb;vertical-align:top}.bom-table tr.bom-cust td{background:#fffbeb}@media (max-width: 640px){.bom-table{font-size:13px}.bom-table th:nth-child(4),.bom-table td:nth-child(4){display:none}}.stk-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stk-totals{display:flex;gap:16px;flex-wrap:wrap;margin:4px 0 10px}.stk-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.chip{border:1px solid #d1d5db;background:#fff;border-radius:999px;padding:6px 12px;cursor:pointer;font:inherit}.chip.active{background:#111827;color:#fff;border-color:#111827}.stk-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.stk-filters input{flex:1 1 240px;min-height:40px;padding:6px 10px}.stk-filters select{min-height:40px}.stk-wrap{overflow-x:auto}.stk-table{width:100%;border-collapse:collapse;font-size:14px}.stk-table th,.stk-table td{text-align:left;padding:6px 8px;border-bottom:1px solid #e5e7eb;vertical-align:top}.stk-table td.num{text-align:right;white-space:nowrap}.stk-row-nc td{color:#6b7280}.stk-nc{background:#f3f4f6;color:#374151}.stk-last{font-size:12px;color:#6b7280}@media (max-width: 760px){.stk-table thead{display:none}.stk-table,.stk-table tbody,.stk-table tr,.stk-table td{display:block;width:100%}.stk-table tr{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:8px;padding:6px 8px}.stk-table td{border:0;padding:2px 0;display:flex;justify-content:space-between;gap:8px;text-align:right}.stk-table td:before{content:attr(data-label);color:#6b7280;text-align:left}.stk-table td:first-child{display:block;text-align:left}.stk-table td:first-child:before{content:none}}.inv-ofc{border-top:1px solid #e5e7eb;margin-top:12px;padding-top:10px}.inv-ofc h3{margin:0 0 4px;font-size:16px}.inv-ofc-list{list-style:none;padding:0;margin:6px 0}.inv-ofc-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed #e5e7eb}.inv-ofc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inv-ofc-grid input,.inv-ofc-grid select,.inv-ofc-form input{width:100%;min-height:44px}.inv-ofc-form{margin:8px 0;display:grid;gap:8px}.stk-ofc-btn{border:0;background:none;color:#1d4ed8;text-decoration:underline;cursor:pointer;padding:0;font:inherit}.stk-ofc-row td{background:#f9fafb;font-size:13px}.stk-ofc-row ul{margin:0;padding-left:18px}.top-nav{display:flex;gap:14px;margin-left:18px;margin-right:auto}.top-nav a{color:#fff;opacity:.85;text-decoration:none;font-weight:600}.top-nav a:hover{opacity:1;text-decoration:underline}.work-wrap{max-width:760px;margin:0 auto}.work-head h1{margin:4px 0;font-size:1.6rem}.btn-big{padding:14px 18px;font-size:1.05rem;font-weight:700;min-height:54px}.btn-huge{width:100%;padding:22px 18px;font-size:1.35rem;font-weight:800;min-height:76px;letter-spacing:.02em}.work-manual .manual-row{display:flex;gap:8px}.work-manual input{flex:1;font:inherit;font-size:1.15rem;padding:12px;border:1px solid var(--line);border-radius:8px;min-width:0}.work-row{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 4px;border-top:1px solid var(--line);color:inherit;text-decoration:none}.work-row:first-of-type{border-top:0}.work-row .wr-main{font-weight:700;font-size:1.05rem}.work-row .wr-timer{grid-row:1 / span 2;grid-column:2;align-self:center;font-variant-numeric:tabular-nums;font-weight:700}.work-warn{background:#fff7ed;border-color:#fdba74;color:#7c2d12}.work-error h1{font-size:1.5rem;margin:0 0 8px}.wp-head .wp-code{font-size:1.9rem;font-weight:800;letter-spacing:.02em}.wp-head h1{margin:2px 0 4px;font-size:1.25rem}.small{font-size:.85rem}.wp-state{margin:12px 0;padding:16px;border-radius:12px;font-size:1.35rem;font-weight:800;text-align:center;background:#f1f5f9;border:2px solid #cbd5e1}.wp-state-active{background:#ecfdf5;border-color:#34d399;color:#065f46}.wp-state-paused{background:#fff7ed;border-color:#fb923c;color:#9a3412}.wp-state-all_done{background:#f0fdf4;border-color:#22c55e;color:#166534}.work-session{border:2px solid #34d399;background:#f0fdf4;border-radius:12px;padding:14px;margin-bottom:12px}.ws-state{font-weight:800;color:#065f46}.ws-who{font-size:1.2rem;font-weight:700;margin:4px 0}.ws-times{display:flex;gap:18px;flex-wrap:wrap;font-size:1.05rem}.ws-timer{font-variant-numeric:tabular-nums}.ws-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.btn-finish{background:#16a34a;border-color:#16a34a;color:#fff}.btn-pause{background:#f97316;border-color:#f97316;color:#fff}.wp-start .btn-link{margin-top:8px}.op-picker[hidden]{display:none}.wc-chips,.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;align-items:center}.wc-chip,.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;cursor:pointer}.wc-chip.in-route{border-color:var(--brand)}.wc-chip.active,.chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.op-grid,.reason-grid,.who-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.op-btn,.reason-btn,.who-btn{min-height:60px;padding:10px;font:inherit;font-weight:700;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.reason-btn.active{background:#fff7ed;border-color:#f97316}.choice-col{display:flex;flex-direction:column;gap:10px}.route-list{list-style:none;padding:0;margin:0}.route-list li{display:grid;grid-template-columns:1.4fr 1fr 1.4fr auto;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.route-list li:first-child{border-top:0}.pin-dots{font-size:2rem;text-align:center;letter-spacing:.3em;min-height:2.6rem}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:320px;margin:8px auto}.pin-key{min-height:64px;font-size:1.5rem;font-weight:700;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.work-modal{width:min(640px,100%)}.work-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);padding:12px 18px;border-radius:10px;color:#fff;font-weight:700;z-index:60;box-shadow:var(--shadow)}.work-toast-ok{background:#15803d}.work-toast-err{background:#b91c1c}@media (max-width: 560px){.route-list li{grid-template-columns:1fr 1fr}.ws-actions{grid-template-columns:1fr}.work-manual .manual-row{flex-direction:column}}.board-list{display:flex;flex-direction:column;gap:6px}.board-row{display:grid;grid-template-columns:150px minmax(0,2fr) minmax(0,1.2fr) minmax(0,1.6fr) 80px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;background:#fff;border:1px solid var(--line);border-left:5px solid #cbd5e1;border-radius:8px;color:inherit;text-decoration:none}.board-row.st-active{border-left-color:#22c55e}.board-row.st-paused{border-left-color:#f97316}.board-row.st-done{border-left-color:#16a34a;opacity:.8}.board-row.is-stuck{background:#fff7ed}.board-row>span{overflow:hidden;text-overflow:ellipsis}.br-timer{font-variant-numeric:tabular-nums;font-weight:700}.br-flags{color:#b45309;font-weight:600;font-size:.85rem}@media (max-width: 900px){.board-row{grid-template-columns:1fr 1fr}}.prod-matrix td,.prod-matrix th{text-align:left;vertical-align:top}.pm-cell .pm-btn{border:0;background:none;font:inherit;cursor:pointer;padding:4px;text-align:left}.pm-cell.st-active{background:#ecfdf5}.pm-cell.st-paused{background:#fff7ed}.pm-cell.st-done{background:#f0fdf4}.pm-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.pm-head h3{margin:0}.suggest{background:#f0fdf4;border-color:#86efac;font-weight:700}.badge-fix{color:#b45309;font-size:.8rem}tr.voided td{text-decoration:line-through;color:var(--muted)}.route-edit{display:flex;flex-direction:column;gap:4px;padding:6px 0}.tbl-wrap{overflow-x:auto}.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.label{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px dashed #94a3b8;border-radius:6px;padding:10px;background:#fff;break-inside:avoid}.lb-brand{font-weight:900;font-size:1.1rem}.lb-nr{font-size:1.2rem;font-weight:700}.lb-code{font-size:2.2rem;font-weight:900;line-height:1}.lb-name{font-size:.9rem;max-width:150px}@media print{.topbar,.no-print,.demo-banner{display:none!important}.content{padding:0}.label{border-style:solid}}.br-who{display:flex;flex-wrap:wrap;gap:4px 12px}@media (max-width: 640px){.topbar{flex-wrap:wrap;row-gap:6px}.top-nav{order:3;width:100%;margin:0;gap:16px;font-size:.9rem}}.wp-tech{display:grid;grid-template-columns:max-content 1fr;gap:2px 12px;margin:6px 0 10px;font-size:.98rem}.wp-tech dt{color:var(--muted)}.wp-tech dd{margin:0;font-weight:600}.op-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.op-row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px;border:1px solid var(--line);border-radius:10px}.op-row.st-active{border-color:#34d399;background:#f0fdf4}.op-row.st-paused{border-color:#fb923c;background:#fff7ed}.op-row.st-done{opacity:.75}.op-main{display:flex;flex-direction:column;gap:2px;min-width:0}.op-name{font-weight:800;font-size:1.1rem}.op-who{font-weight:700;color:#065f46}.op-row .btn-big{min-width:220px}@media (max-width: 560px){.op-row .btn-big{width:100%;min-width:0}}.route-wc{border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:4px 0}.route-wc legend{font-weight:700}.op-sum{margin:0 0 8px;padding-left:18px}.op-sum li{margin:4px 0}tr.is-long td{background:#fff7ed}.version-banner{position:fixed;right:16px;bottom:16px;z-index:70;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;box-shadow:var(--shadow);font-weight:600}.card.suggest[hidden]{display:none}
