:root{--bg:#0a0c0f;--panel:#1c2128;--panel-2:#252b34;--line:#363c46;--line-soft:#2a313a;--txt:#f0f2f5;--txt-dim:#b4bcc7;--txt-faint:#7c8693;--accent:#e9ebef;--accent-soft:rgba(233,235,239,.09);--accent-ink:#16171b;--lime:#cdf564;--cyan:#54d6c4;--violet:#9b8cff;--rose:#ff7a90;--amber:#ffc24b;--lime-bg:color-mix(in srgb,var(--lime) 13%,transparent);--cyan-bg:color-mix(in srgb,var(--cyan) 12%,transparent);--violet-bg:color-mix(in srgb,var(--violet) 12%,transparent);--rose-bg:color-mix(in srgb,var(--rose) 12%,transparent);--amber-bg:color-mix(in srgb,var(--amber) 13%,transparent);--dim-bg:color-mix(in srgb,var(--txt-dim) 12%,transparent);--brand:#d6ef3f;--brand-ink:#232a05;--input-bg:#12151a;--input-bg-focus:#0e1116;--side-bg:var(--panel);--btn-primary-bg:#f3f4f6;--btn-primary-bg-hover:#d9dce2;--btn-primary-txt:#16171b;--link:#7aa2ff;--link-hover:#a6c0ff;--btn-ghost-bg:var(--panel-2);--card-shadow:0 1px 3px rgba(0,0,0,.25);--overlay-shadow:0 8px 24px rgba(0,0,0,.45);--scrim:rgba(0,0,0,.55);--r:16px;--r-sm:10px;--r-xs:8px;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--disp:-apple-system,"SF Pro Display","Segoe UI Variable",Inter,system-ui,sans-serif;--body:-apple-system,"SF Pro Text","Segoe UI Variable",Inter,system-ui,sans-serif;color-scheme:dark}:root[data-theme=light]{--bg:#f7f7f8;--panel:#fff;--panel-2:#f1f2f4;--line:#e6e8eb;--line-soft:#eef0f2;--txt:#17181c;--txt-dim:#5a616e;--txt-faint:#7b8291;--accent:#17181c;--accent-soft:rgba(23,24,28,.06);--accent-ink:#fff;--lime:#1a7f37;--cyan:#0e7f76;--violet:#6342d9;--rose:#d43455;--amber:#b45309;--lime-bg:#e8f5ec;--cyan-bg:#e3f3f1;--violet-bg:#ece8fb;--rose-bg:#fbe7ec;--amber-bg:#fbeee0;--dim-bg:#eceef1;--input-bg:#fff;--input-bg-focus:#fff;--side-bg:#f7f7f8;--btn-primary-bg:#191a1e;--btn-primary-bg-hover:#2e3036;--btn-primary-txt:#fff;--link:#2e6be6;--link-hover:#1d4fb8;--btn-ghost-bg:#fff;--card-shadow:0 1px 2px rgba(16,24,40,.05);--overlay-shadow:0 8px 24px rgba(16,24,40,.12);--scrim:rgba(16,24,40,.28);color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--txt);font-family:var(--body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .15s ease,color .15s ease}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}svg.ico{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}svg.ico.sm{width:16px;height:16px}svg.ico.lg{width:22px;height:22px}.app{min-height:100vh}.app,.side{display:flex}.side{width:244px;flex-shrink:0;background:var(--side-bg);border-right:1px solid var(--line);flex-direction:column;padding:18px 12px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh;z-index:30;transition:transform .25s ease;overflow-y:auto}.side-close,.side-overlay{display:none}.side-close{margin-left:auto;background:none;border:none;color:var(--txt-dim);cursor:pointer;padding:6px;border-radius:8px;align-items:center}.nav-toggle,.side-close:hover{background:var(--panel-2);color:var(--txt)}.nav-toggle{display:none;border:1px solid var(--line);width:38px;height:38px;border-radius:9px;cursor:pointer;flex-shrink:0;align-items:center;justify-content:center}.nav-toggle:hover{background:var(--line)}.brand-logo{display:block;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.brand-logo.dark,:root:not([data-theme=light]) .brand-logo.light{display:none}:root:not([data-theme=light]) .brand-logo.dark{display:block}.topbar-brand{display:none}.brand{display:flex;align-items:center;gap:10px;padding:2px 4px 14px}.brand>div{min-width:0}.brand-name,.brand-sub,.brand>div{overflow:hidden;text-overflow:ellipsis}.brand-name{font-family:var(--disp);font-weight:800;font-size:15px;line-height:1.15;white-space:nowrap}.brand-sub{font-size:10px;color:var(--txt-faint);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.side-cta{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--btn-primary-bg);color:var(--btn-primary-txt);border:1px solid transparent;border-radius:var(--r-sm);padding:10px 12px;font-weight:600;font-size:13px;margin:2px 2px 10px;cursor:pointer;white-space:nowrap}.side-cta:hover{background:var(--btn-primary-bg-hover)}.side-cta.active{background:var(--accent-soft);color:var(--txt);border-color:var(--line)}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-faint);padding:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r-sm);color:var(--txt-dim);font-weight:500;font-size:13px;border:1px solid transparent;white-space:nowrap;min-width:0}.nav-item>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1}.nav-item:hover{background:var(--panel-2);color:var(--txt)}.nav-item.active{background:var(--panel);color:var(--txt);border-color:var(--line);box-shadow:var(--card-shadow)}:root:not([data-theme=light]) .nav-item.active{background:var(--panel-2)}.nav-ico{display:flex;flex-shrink:0;color:var(--txt-faint)}.nav-item.active .nav-ico,.nav-item:hover .nav-ico{color:inherit}.side-collapse{margin-left:auto;background:none;border:none;color:var(--txt-faint);cursor:pointer;padding:3px;border-radius:7px;display:flex;align-items:center;flex-shrink:0}.side-collapse:hover{background:var(--panel-2);color:var(--txt)}.nav-badge{margin-left:auto;font-family:var(--mono);font-size:11px;background:var(--panel-2);color:var(--txt-dim);padding:1px 7px;border-radius:20px;font-weight:600;flex-shrink:0}:root:not([data-theme=light]) .nav-badge{background:var(--line)}.nav-badge.hot{background:var(--rose-bg);color:var(--rose)}.side-foot{margin-top:auto;padding:12px 4px 0;border-top:1px solid var(--line-soft);display:flex;align-items:center;gap:10px}.side-foot-icons{margin-left:auto;display:flex;gap:0;flex-shrink:0}.side-foot-icons .btn-icon{width:28px;min-height:30px;height:30px;border:none;background:none;color:var(--txt-faint);border-radius:8px}.side-foot-icons .btn-icon:hover{background:var(--panel-2);color:var(--txt)}.avatar{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--violet),var(--cyan));display:grid;place-items:center;font-weight:700;color:#fff;font-size:12px;flex-shrink:0}:root:not([data-theme=light]) .avatar{color:#10141a}.avatar.sm{width:26px;height:26px;font-size:10.5px;border-radius:7px}.user-name{font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10.5px;color:var(--txt-faint)}.menu-list{display:flex;flex-direction:column;gap:2px}.menu-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--r-xs);font-size:13px;font-weight:500;color:var(--txt);background:none;border:none;cursor:pointer;text-align:left;width:100%;min-height:40px}.menu-item:hover{background:var(--panel-2)}.menu-item .nav-ico{color:var(--txt-faint)}.menu-item.danger{color:var(--rose)}.menu-sep{height:1px;background:var(--line-soft);margin:6px 0}.main{flex:1 1;display:flex;flex-direction:column;min-width:0;width:100%}.topbar{min-height:60px;flex-shrink:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:10px 24px;flex-wrap:wrap;background:var(--panel)}:root:not([data-theme=light]) .topbar{background:transparent}.page-title{font-family:var(--disp);font-weight:700;font-size:19px;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb{font-weight:500;color:var(--txt-faint)}.crumb a:hover{color:var(--txt)}.crumb-sep{margin:0 8px;color:var(--txt-faint);font-weight:400}.topbar-actions{display:flex;gap:8px;align-items:center}.content{flex:1 1;padding:22px 24px;max-width:1200px;width:100%;margin:0 auto}.btn{border:none;cursor:pointer;font-weight:600;font-size:13px;padding:9px 14px;border-radius:var(--r-sm);display:inline-flex;align-items:center;gap:7px;white-space:nowrap;min-height:38px;line-height:1.2;color:var(--txt)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-txt)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover)}.btn-ghost{background:var(--btn-ghost-bg);color:var(--txt);border:1px solid var(--line)}.btn-ghost:hover:not(:disabled){background:var(--panel-2)}.btn-ghost.btn-active{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}.btn-soft{background:var(--panel-2);color:var(--txt)}.btn-soft:hover:not(:disabled){background:var(--line)}.btn-danger{background:var(--rose-bg);color:var(--rose)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--rose) 22%,transparent)}.btn-icon{padding:0;width:38px;justify-content:center;flex-shrink:0}.btn.lg{min-height:48px;font-size:14px;padding:12px 18px}.btn.lg.btn-icon{width:48px}.btn.sm{min-height:30px;padding:5px 10px;font-size:12px}.btn.sm.btn-icon{width:30px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--btn-ghost-bg);font-size:12.5px;font-weight:600;color:var(--txt-dim);cursor:pointer;white-space:nowrap;min-height:32px;line-height:1.2}.chip:hover{color:var(--txt);background:var(--panel-2)}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip .cnt{font-family:var(--mono);font-size:11px;opacity:.75}.chip-group{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.seg{display:inline-flex;gap:6px}.seg>button{padding:7px 14px;border-radius:10px;font-size:12.5px;font-weight:600;color:var(--txt);text-align:center;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--panel);border:1px solid var(--line);cursor:pointer;min-height:36px;box-shadow:var(--card-shadow)}.seg>button:hover{background:var(--panel-2)}.seg>button.on{background:var(--accent);color:var(--btn-primary-txt);border-color:var(--accent)}.seg>button:focus-visible{outline:2px solid var(--link);outline-offset:2px}.seg.full{display:flex}.seg.full>button{flex:1 1}.seg.lg>button{min-height:46px;font-size:13.5px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:11.5px;color:var(--txt-dim);font-weight:600}.field input,.field select,.field textarea{background:var(--input-bg);border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--txt);font-size:13.5px;outline:none;min-height:40px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);background:var(--input-bg-focus)}.field textarea{resize:vertical;min-height:74px}.field .hint,.field-hint{font-size:11.5px;color:var(--txt-faint);margin-top:0}.field .field-error{font-size:12px;color:var(--rose)}.field-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 18px;gap:0 18px}.field-grid>*{min-width:0}.field.full{grid-column:1/-1}.input{background:var(--input-bg);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;min-height:40px;color:var(--txt);outline:none;width:100%}.input:focus{border-color:var(--accent)}.input.mono{font-family:var(--mono);font-size:13px}.form-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;margin-bottom:18px;max-width:900px}.form-section-title{font-family:var(--disp);font-weight:700;font-size:14px;margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin-bottom:18px;box-shadow:var(--card-shadow);overflow:hidden;overflow-x:auto}.card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line-soft);gap:10px;flex-wrap:wrap}.card-title{font-family:var(--disp);font-weight:700;font-size:14.5px}.card-sub{font-size:12px;color:var(--txt-faint)}.card-body{padding:16px 18px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--txt-faint);font-weight:600;padding:10px 16px;white-space:nowrap}td,th{border-bottom:1px solid var(--line-soft)}td{padding:12px 16px;font-size:13px;vertical-align:middle}tbody tr:hover{background:var(--panel-2)}tbody tr:last-child td{border-bottom:none}.id-cell{font-family:var(--mono);font-size:12px;color:var(--link,var(--accent));font-weight:600}.id-cell,th.w-min{white-space:nowrap}th.w-min{width:1%}.show-wide{display:none}@media(min-width:1400px){td.show-wide,th.show-wide{display:table-cell}}.cust{font-weight:600}.machine-sub{font-size:11.5px;color:var(--txt-faint)}.machine-sub,.mono{font-family:var(--mono)}.dim{color:var(--txt-dim)}.faint{color:var(--txt-faint)}.small{font-size:12px}.xs{font-size:11.5px}.link{color:var(--link)}.link:hover{color:var(--link-hover)}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap;line-height:1.5}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.violet{background:var(--violet-bg);color:var(--violet)}.badge.cyan{background:var(--cyan-bg);color:var(--cyan)}.badge.amber{background:var(--amber-bg);color:var(--amber)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.rose{background:var(--rose-bg);color:var(--rose)}.badge.lime{background:var(--lime-bg);color:var(--lime)}.badge.dim{background:var(--dim-bg);color:var(--txt-dim)}.pill{display:inline-flex;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap;line-height:1.5}.pill.warranty{background:var(--lime-bg);color:var(--lime)}.pill.oow{background:var(--amber-bg);color:var(--amber)}.pill.external{background:var(--violet-bg);color:var(--violet)}.pill.internal{background:var(--dim-bg);color:var(--txt-dim)}.flag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--amber);white-space:nowrap}.stepper{gap:0;min-width:0}.step,.stepper{display:flex;align-items:center}.step{gap:8px;font-size:12px;font-weight:600;color:var(--txt-faint);white-space:nowrap}.step .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:11px;background:var(--panel);flex-shrink:0}.step.done{color:var(--txt-dim)}.step.done .dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.step.now{color:var(--txt)}.step.now .dot{border-color:var(--accent);color:var(--accent)}.step-line{flex:1 1;height:2px;background:var(--line);margin:0 10px;min-width:16px}.step-line.done{background:var(--accent)}.stepper-wrap{display:flex;align-items:center;gap:16px;min-width:0;flex-wrap:wrap}.stepper-wrap .stepper{flex:1 1;min-width:0}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:22px}.kpi,.kpi-row>*{min-width:0}.kpi{display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--card-shadow);color:var(--txt)}.kpi-label{font-size:11.5px;color:var(--txt-dim);text-transform:uppercase;letter-spacing:.07em;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}.kpi-val{font-family:var(--disp);font-weight:800;font-size:30px;line-height:1.1}.kpi-ico{display:flex;flex-shrink:0}.kpi-ico,.kpi-sub{color:var(--txt-faint)}.kpi-sub{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-link{cursor:pointer;transition:border-color .12s,box-shadow .12s}.kpi-link:hover{border-color:var(--txt-faint);box-shadow:0 2px 6px rgba(16,24,40,.08)}.kpi.tone-violet .kpi-val{color:var(--violet)}.kpi.tone-lime .kpi-val{color:var(--lime)}.kpi.tone-amber .kpi-val{color:var(--amber)}.kpi.tone-rose .kpi-val{color:var(--rose)}.kpi.tone-cyan .kpi-val{color:var(--cyan)}.info-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.info-row:last-child{border-bottom:none}.info-row .k{color:var(--txt-faint);flex-shrink:0}.info-row .v{font-weight:600;overflow-wrap:anywhere;text-align:right}.scrim{position:fixed;inset:0;background:var(--scrim);z-index:1000;animation:fade-in .15s ease}.drawer,.sheet{position:fixed;z-index:1001;background:var(--panel);display:flex;flex-direction:column;outline:none}.drawer{top:0;right:0;bottom:0;width:460px;max-width:100vw;border-left:1px solid var(--line);box-shadow:-8px 0 24px rgba(16,24,40,.08);animation:slide-in-right .2s ease}:root:not([data-theme=light]) .drawer{box-shadow:-8px 0 24px rgba(0,0,0,.45)}.sheet{left:0;right:0;bottom:0;max-height:92vh;border-radius:18px 18px 0 0;box-shadow:0 -8px 24px rgba(16,24,40,.12);animation:slide-in-up .2s ease;padding-bottom:env(safe-area-inset-bottom)}.sheet-grip{width:36px;height:4px;border-radius:4px;background:var(--line);margin:8px auto 0;flex-shrink:0}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line-soft);flex-shrink:0}.drawer-title{font-family:var(--disp);font-weight:700;font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-body{padding:20px;flex:1 1;overflow:auto;display:flex;flex-direction:column;gap:16px;min-height:0}.drawer-foot{padding:14px 20px;border-top:1px solid var(--line-soft);display:flex;gap:8px;justify-content:flex-end;flex-shrink:0;flex-wrap:wrap}.dialog{position:fixed;z-index:1001;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--overlay-shadow);display:flex;flex-direction:column;outline:none;animation:pop-in .15s ease}.dialog.md{width:min(560px,calc(100vw - 32px))}.dialog.lg{width:min(760px,calc(100vw - 32px))}.dialog .drawer-body{gap:12px}.popover{position:fixed;z-index:1002;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--overlay-shadow);padding:14px;width:320px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;gap:10px;outline:none;animation:pop-in .12s ease}.popover.menu{padding:6px;width:240px}.toaster{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1100;flex-direction:column;pointer-events:none;max-width:calc(100vw - 32px)}.toast,.toaster{display:flex;gap:8px;align-items:center}.toast{background:#17181c;color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(16,24,40,.2);pointer-events:auto;animation:slide-in-up .2s ease;max-width:100%}:root:not([data-theme=light]) .toast{background:#f3f4f6;color:#16171b}.toast svg{flex-shrink:0}.toast.ok svg{color:var(--lime)}.toast.bad svg{color:var(--rose)}:root[data-theme=light] .toast.ok svg{color:#8fe36b}:root[data-theme=light] .toast.bad svg{color:#ff8ea3}.callout{border-radius:12px;padding:12px 14px;font-size:13px;display:flex;gap:10px;align-items:flex-start}.callout .ico{margin-top:1px}.callout.warn{background:var(--amber-bg);color:var(--amber)}.callout.info{background:var(--panel-2);color:var(--txt-dim)}.callout.ok{background:var(--lime-bg);color:var(--lime)}.callout.bad{background:var(--rose-bg);color:var(--rose)}.inline-confirm{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap}.inline-confirm .q{color:var(--txt-dim)}.inline-confirm .btn{min-height:28px;padding:3px 9px;font-size:12px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-right{0%{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}@keyframes slide-in-up{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}@keyframes pop-in{0%{transform:translate(-50%,-50%) scale(.97);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.popover{animation-name:fade-in}.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-size:12px;font-weight:600;color:var(--txt-dim);cursor:pointer;text-align:center;padding:8px}.tile.on{background:var(--accent-soft);color:var(--txt);border-color:var(--accent)}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:8px;gap:8px}.row-list{display:flex;flex-direction:column}.row-list>*{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);min-height:52px}.row-list>:last-child{border-bottom:none}.thumb{width:72px;height:72px;border-radius:10px;object-fit:cover;background:var(--panel-2);flex-shrink:0}.thumb.sm{width:52px;height:52px}.m-actionbar{display:none}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:34px;width:100%;max-width:380px}.login-card h1{font-family:var(--disp);font-size:22px;margin-bottom:4px}.login-card .sub{color:var(--txt-faint);font-size:13px;margin-bottom:22px}.error{background:var(--rose-bg);color:var(--rose);padding:10px 13px;border-radius:9px;font-size:13px;margin-bottom:14px}.hint{font-size:11.5px;color:var(--txt-faint);margin-top:16px;line-height:1.6}.detail-queue{display:none}@media(min-width:1400px){.content-split{max-width:none;display:grid;grid-template-columns:340px minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.detail-body .grid-2{grid-template-columns:minmax(0,1.7fr) minmax(360px,1fr)}.detail-queue{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--card-shadow);overflow:hidden;position:-webkit-sticky;position:sticky;top:16px;max-height:calc(100vh - 32px)}.dq-head{padding:13px 15px;font-weight:700;font-size:13.5px;border-bottom:1px solid var(--line-soft);font-family:var(--disp)}.dq-list{overflow-y:auto}.dq-item{display:block;padding:10px 13px;border-bottom:1px solid var(--line-soft)}.dq-item:last-child{border-bottom:none}.dq-item:hover{background:var(--panel-2)}.dq-item.active{background:var(--accent-soft)}.dq-info{min-width:0}.dq-row{display:flex;justify-content:space-between;gap:8px;align-items:center}.dq-cust{font-size:12.5px;font-weight:600;margin-top:2px}.dq-cust,.dq-model{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dq-model{font-size:11px;color:var(--txt-faint);margin-top:1px}.dq-item .badge{font-size:10px;padding:2px 8px;flex-shrink:0}}.bottom-nav{display:none}@media(min-width:861px){.sheet{left:auto;top:0;width:460px;max-height:none;border-radius:0;border-left:1px solid var(--line);box-shadow:-8px 0 24px rgba(16,24,40,.08);animation:slide-in-right .2s ease}.sheet .sheet-grip,:root[data-sidenav=collapsed] .side{display:none}:root[data-sidenav=collapsed] .nav-toggle{display:inline-flex}:root[data-sidenav=collapsed] .topbar-brand{display:flex;align-items:center;margin-left:-2px}.hide-desktop{display:none!important}}@media(max-width:860px){.side-collapse{display:none}}.empty{padding:40px;text-align:center;color:var(--txt-faint)}.tabs{display:flex;gap:2px;margin-bottom:18px;border-bottom:1px solid var(--line)}.tab{padding:10px 14px;background:none;color:var(--txt-dim);cursor:pointer;font-size:13.5px;font-weight:600;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}.tab:hover{color:var(--txt)}.tab.active,.tab.on{color:var(--txt);border-bottom-color:var(--accent)}.tab .cnt{font-family:var(--mono);font-size:11px;background:var(--panel-2);color:var(--txt-dim);padding:0 6px;border-radius:20px;font-weight:600}.flex{display:flex;gap:10px;align-items:center}.mb0{margin-bottom:0}.grid-2{display:grid;grid-template-columns:1.6fr 1fr;grid-gap:18px;gap:18px}.grid-2>*{min-width:0}@media(max-width:1280px){td,th{padding:11px 12px}}@media(max-width:860px){.side{position:fixed;left:0;top:0;height:100vh;transform:translateX(-100%);padding-bottom:80px}.side.open{transform:translateX(0);box-shadow:0 0 40px rgba(0,0,0,.5)}.side-overlay{display:block;position:fixed;inset:0;background:var(--scrim);z-index:25;opacity:0;pointer-events:none;transition:opacity .25s ease}.side-overlay.open{opacity:1;pointer-events:auto}.nav-toggle,.side-close{display:inline-flex}.app{display:block}.main{padding-bottom:64px}.content{padding:12px}.topbar{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;padding:8px 12px 0;grid-gap:0;gap:0;min-height:auto;align-items:center}.nav-toggle{grid-row:1;grid-column:1}.page-title{grid-row:1;grid-column:2;font-size:17px;padding:8px 0 8px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{grid-row:2;grid-column:1/-1;display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px 0 10px;margin-left:0!important;scrollbar-width:none}.topbar-actions:empty{display:none;padding:0}.topbar-actions::-webkit-scrollbar{display:none}.kpi-row{grid-template-columns:repeat(2,1fr);gap:10px}.kpi-val{font-size:26px}.kpi{padding:14px}.field-grid,.grid-2{grid-template-columns:1fr}.form-card{padding:16px}.card table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}.card table tbody,.card table thead{display:table;width:100%;min-width:480px}td,th{padding:10px 12px;font-size:12.5px}.card table td:first-child,.card table th:first-child{position:-webkit-sticky;position:sticky;left:0;background:var(--panel);z-index:2}.card table td:first-child .id-cell,.card table td:first-child .machine-sub{display:block;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}tbody tr:hover td:first-child{background:var(--panel-2)}.hide-mobile{display:none!important}.btn{padding:8px 12px;font-size:12.5px;min-height:38px}.btn.lg{min-height:48px;font-size:14px}.tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{min-height:44px}.chip-group{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chip-group::-webkit-scrollbar{display:none}.drawer{top:auto;left:0;right:0;bottom:0;width:auto;max-height:92vh;border-left:none;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -8px 24px rgba(16,24,40,.12);animation:slide-in-up .2s ease;padding-bottom:env(safe-area-inset-bottom)}.drawer-head{padding:12px 16px}.drawer-body{padding:16px}.drawer-foot{padding:12px 16px}.drawer-foot .btn{flex:1 1;justify-content:center;min-height:48px}.dialog{width:calc(100vw - 24px)}.popover{width:calc(100vw - 16px)}.popover.menu{width:240px}.toaster{bottom:76px}.m-actionbar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:64px;padding:10px 12px;background:var(--panel);border-top:1px solid var(--line);z-index:39}.m-actionbar .act{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:52px;border-radius:12px;background:var(--panel-2);color:var(--txt);font-size:11px;font-weight:600;letter-spacing:.02em;border:none;cursor:pointer}.m-actionbar .act.primary{background:var(--btn-primary-bg);color:var(--btn-primary-txt)}.has-actionbar .main{padding-bottom:140px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--panel);border-top:1px solid var(--line);z-index:45;align-items:stretch;overflow:visible;padding:0 4px env(safe-area-inset-bottom)}.bottom-nav-item{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--txt-faint);font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:10px;padding:6px 2px;text-decoration:none;background:none;border:none;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottom-nav-item.active,.bottom-nav-item:hover{color:var(--txt)}.bottom-nav-icon{display:flex;line-height:1}.bottom-nav-scan{overflow:visible;justify-content:flex-start;padding-top:0}.scan-btn{width:48px;height:48px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;margin-top:-18px;margin-bottom:3px;box-shadow:0 4px 12px rgba(16,24,40,.18);border:2px solid var(--panel);flex-shrink:0}.scan-btn svg{width:22px;height:22px;stroke-width:2}}@media(max-width:480px){.kpi-row{grid-template-columns:1fr 1fr}}@media print{.bottom-nav,.dialog,.drawer,.m-actionbar,.popover,.scrim,.sheet,.side,.side-overlay,.toaster,.topbar{display:none!important}body{background:#fff!important}}