:root{
  --bg:#f5f7fb; --panel:#ffffff; --text:#1d2433; --muted:#6f7a8b; --line:#e4e8f0;
  --primary:#2457d6; --primary-soft:#eaf0ff; --danger:#c93f3f; --warning:#b7791f; --success:#237a57;
  --sidebar:#172033; --sidebar-2:#202b42; --shadow:0 10px 30px rgba(26,39,68,.08);
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{width:250px;background:var(--sidebar);color:#fff;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:24px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:42px;height:42px;border-radius:12px;background:#fff;color:var(--sidebar);display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:1px}.brand-title{font-weight:750;font-size:17px}.brand-subtitle{font-size:11px;opacity:.65;letter-spacing:1px;margin-top:3px}.nav-menu{padding:14px 10px;display:flex;flex-direction:column;gap:6px}.nav-item{border:0;background:transparent;color:#ccd4e5;padding:12px 14px;text-align:left;border-radius:10px;cursor:pointer;font-weight:600}.nav-item:hover,.nav-item.active{background:var(--sidebar-2);color:#fff}.sidebar-footer{margin-top:auto;padding:16px}.storage-tip{font-size:11px;line-height:1.45;color:#8f9ab0;margin-top:10px}.main{margin-left:250px;width:calc(100% - 250px);padding:22px 28px 40px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.topbar h1{margin:0 0 6px;font-size:26px}.muted{color:var(--muted)}.small{font-size:12px}.top-actions{display:flex;gap:8px;align-items:center}.internal-badge{font-size:11px;font-weight:800;letter-spacing:.8px;padding:7px 9px;border-radius:8px;background:#fff2f2;color:#a53535;border:1px solid #f1d0d0}.page{display:none}.page.active{display:block}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.metric-card{padding:18px}.metric-label{font-size:13px;color:var(--muted)}.metric-value{font-size:30px;font-weight:800;margin-top:6px}.metric-foot{font-size:12px;color:var(--muted);margin-top:6px}.grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-title{font-size:16px;font-weight:750}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{border:1px solid transparent;border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:650}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:#fff;border-color:var(--line);color:#344057}.btn-light{background:#f1f4f8;color:#344057}.btn-danger{background:#fff1f1;color:var(--danger);border-color:#f1d0d0}.full{width:100%}.search{min-width:220px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.select{padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.data-table{width:100%;border-collapse:collapse;min-width:980px}.data-table th{background:#f7f9fc;color:#5d6879;font-size:12px;text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top}.data-table tr:last-child td{border-bottom:0}.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;white-space:nowrap}.status-pending{background:#f3f4f6;color:#687386}.status-producing{background:#fff5df;color:#9a6715}.status-shipped{background:#eaf7ef;color:#237a57}.row-actions{display:flex;gap:6px}.link-btn{border:0;background:transparent;color:var(--primary);cursor:pointer;padding:0;font-weight:650}.danger-link{color:var(--danger)}.empty{padding:28px;text-align:center;color:var(--muted)}.progress-list{display:flex;flex-direction:column;gap:12px}.progress-row{display:grid;grid-template-columns:160px 1fr 56px;gap:12px;align-items:center}.progress-track{height:9px;background:#edf0f5;border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:99px}.tag{display:inline-block;padding:3px 7px;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:11px;margin:2px 4px 2px 0}.modal{position:fixed;inset:0;background:rgba(18,26,42,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.modal.hidden{display:none}.modal-card{width:min(920px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.24)}.modal-header,.modal-footer{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:#fff}.modal-header h2{margin:0 0 4px}.icon-btn{border:0;background:#f2f4f7;width:34px;height:34px;border-radius:50%;font-size:22px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px}.field{display:flex;flex-direction:column;gap:6px}.field.full-span{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:#4f5b6d}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:9px;padding:10px 11px;background:#fff;outline:none}.field textarea{min-height:86px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9cb3f4;box-shadow:0 0 0 3px rgba(36,87,214,.08)}.toast{position:fixed;right:22px;bottom:22px;background:#182234;color:#fff;padding:11px 14px;border-radius:10px;box-shadow:var(--shadow);z-index:50}.toast.hidden{display:none}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.callout{padding:14px;border-radius:11px;background:#f7f9fc;border:1px solid var(--line);font-size:13px;line-height:1.6}.kpi-note{font-size:12px;color:var(--muted);margin-top:10px}.warning{color:var(--warning);font-weight:700}.file-label{display:inline-flex;align-items:center}
@media (max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.sidebar{width:210px}.main{margin-left:210px;width:calc(100% - 210px)}}
@media (max-width:760px){.sidebar{position:static;width:100%;min-height:auto}.app-shell{display:block}.main{margin-left:0;width:100%;padding:16px}.sidebar-footer{margin-top:0}.cards{grid-template-columns:1fr}.topbar{flex-direction:column;gap:12px}.form-grid{grid-template-columns:1fr}.field.full-span{grid-column:auto}.top-actions{flex-wrap:wrap}}
.panel-hint{margin-top:4px;max-width:760px;line-height:1.5}.warn-dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#fff2df;color:#9a6715;font-size:11px;font-weight:800;margin-left:4px}.history-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.6fr);gap:14px}.history-list-panel{align-self:start;position:sticky;top:18px}.history-search{width:100%;min-width:0;margin-bottom:12px}.vehicle-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 250px);overflow:auto}.vehicle-list-item{position:relative;width:100%;text-align:left;padding:12px 86px 12px 12px;border:1px solid var(--line);background:#fff;border-radius:11px;cursor:pointer;color:var(--text)}.vehicle-list-item:hover,.vehicle-list-item.selected{border-color:#9cb3f4;background:#f7f9ff}.vehicle-list-item .status{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.history-detail-panel{padding:0;overflow:hidden}.history-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:22px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f9fbff 0%,#fff 72%)}.history-hero h2{margin:5px 0 7px;font-size:24px}.history-vin{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#4b5870}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-size:11px;font-weight:800}.history-hero-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.history-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 18px 0}.info-card{border:1px solid var(--line);border-radius:12px;padding:15px}.info-title,.section-title{font-weight:800;font-size:14px}.section-title{padding:20px 18px 10px}.kv{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}.kv:last-child{border-bottom:0}.kv span,.note-block span{color:var(--muted)}.kv strong{text-align:right}.note-block{font-size:13px;padding-top:8px}.note-block p{margin:5px 0 10px;white-space:pre-wrap;line-height:1.55}.timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:4px 18px 18px;gap:0}.timeline-item{position:relative;padding:34px 10px 8px;border-top:3px solid #e6eaf2;font-size:12px}.timeline-item.done{border-color:#87a3ed}.timeline-dot{position:absolute;top:-8px;left:8px;width:13px;height:13px;border-radius:50%;background:#d7dce7;border:3px solid #fff;box-shadow:0 0 0 1px #c9d0de}.timeline-item.done .timeline-dot{background:var(--primary);box-shadow:0 0 0 1px #87a3ed}.history-detail-panel>.table-wrap,.compact-empty{margin:0 18px 18px}.compact-empty{padding:18px}.history-detail-panel .data-table{min-width:820px}
@media (max-width:1180px){.history-layout{grid-template-columns:1fr}.history-list-panel{position:static}.vehicle-list{max-height:340px}.timeline{grid-template-columns:1fr}.timeline-item{border-top:0;border-left:3px solid #e6eaf2;padding:8px 8px 16px 28px}.timeline-item.done{border-left-color:#87a3ed}.timeline-dot{left:-8px;top:8px}}
@media (max-width:760px){.history-cards{grid-template-columns:1fr}.history-hero{flex-direction:column}.history-hero-actions{justify-content:flex-start}}
/* V3 additions */
.hidden{display:none!important}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#edf2ff,#f7f9fc 52%,#eef7f3)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(26,39,68,.14);padding:28px}.login-brand{display:flex;align-items:center;gap:12px}.login-brand h1{font-size:20px;margin:0}.login-brand p{margin:4px 0 0;color:var(--muted);font-size:11px;letter-spacing:.08em}.login-title{font-size:18px;font-weight:800;margin:28px 0 14px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700}.login-form input{padding:11px 12px;border:1px solid var(--line);border-radius:9px}.login-demo{font-size:11px;color:var(--muted);background:#f7f9fc;border:1px solid var(--line);border-radius:9px;padding:10px;margin:14px 0}.user-card{padding:11px 12px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.04);margin-bottom:10px}.user-card strong{display:block;font-size:13px}.user-card span{font-size:11px;color:#9ca7ba}.sidebar-footer .btn+.btn{margin-top:8px}.group-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#738096;padding:13px 14px 5px}.nav-menu{overflow:auto}.nav-item.locked{opacity:.45;cursor:not-allowed}.status-draft{background:#f2f4f7;color:#667085}.status-active{background:#eaf7ef;color:#237a57}.status-obsolete{background:#fff1f1;color:#a53535}.status-open{background:#fff5df;color:#9a6715}.status-ordered{background:#eaf0ff;color:#2457d6}.status-partial{background:#f6edff;color:#7847a8}.status-completed{background:#eaf7ef;color:#237a57}.status-cancelled{background:#f2f4f7;color:#7b8493}.metric-grid-6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.master-layout{display:grid;grid-template-columns:minmax(320px,.7fr) minmax(0,1.6fr);gap:14px}.sticky-panel{align-self:start;position:sticky;top:18px}.bom-line-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.mini-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fbfcfe}.mini-card strong{font-size:18px}.danger-text{color:var(--danger);font-weight:750}.success-text{color:var(--success);font-weight:750}.warning-text{color:var(--warning);font-weight:750}.nowrap{white-space:nowrap}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.permission-item{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fafbfc;font-size:12px}.subtle{font-size:11px;color:var(--muted)}.bom-select{min-width:260px}.po-lines{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;padding:12px}.po-line-row{display:grid;grid-template-columns:2fr 1fr .7fr .7fr .7fr 36px;gap:8px;margin-top:8px;align-items:center}.po-line-row select,.po-line-row input{min-width:0;width:100%;padding:8px;border:1px solid var(--line);border-radius:8px}.icon-small{border:0;background:#f4f6f9;border-radius:8px;width:32px;height:32px;cursor:pointer}.audit-box{max-height:300px;overflow:auto}.audit-row{padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.audit-row:last-child{border-bottom:0}.pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:99px;background:#f0f3f7;font-size:11px;font-weight:700}.bom-badge{background:#eef4ff;color:#3158b5}.toolbar-spacer{flex:1}.section-divider{grid-column:1/-1;border-top:1px solid var(--line);margin:4px 0}.readonly-note{padding:9px 11px;border-radius:9px;background:#fff8e9;border:1px solid #f2ddb0;color:#8c6419;font-size:12px;margin-bottom:12px}.input-inline{display:flex;gap:8px;align-items:center}.input-inline>*{min-width:0}.select-wide{min-width:240px}.table-wrap .data-table.compact{min-width:760px}.data-table.compact th,.data-table.compact td{padding:8px 9px}.multi-actions{display:flex;gap:6px;flex-wrap:wrap}.bom-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.price{font-variant-numeric:tabular-nums}.link-like{color:var(--primary);cursor:pointer;text-decoration:none;font-weight:650}
@media(max-width:1300px){.metric-grid-6{grid-template-columns:repeat(3,1fr)}.permission-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1050px){.master-layout{grid-template-columns:1fr}.sticky-panel{position:static}.bom-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.metric-grid-6{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.po-line-row{grid-template-columns:1fr}.bom-summary{grid-template-columns:1fr}}
.status-pendingConfirm{background:#fff5df;color:#9a6715}.status-confirmedPurchase{background:#eaf0ff;color:#2457d6}.status-noPurchaseNeeded{background:#f2f4f7;color:#667085}.po-line-row{grid-template-columns:2fr 1fr .65fr .65fr .65fr .9fr 36px}.toolbar select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}
@media(max-width:760px){.po-line-row{grid-template-columns:1fr}}
/* V5 procurement, incoming inspection and inventory */
.status-notPurchased{background:#fff1f1;color:#a53535}.status-partiallyOrdered{background:#fff5df;color:#9a6715}.status-orderedAwaiting{background:#eaf0ff;color:#2457d6}.status-partiallyAccepted{background:#f6edff;color:#7847a8}.status-purchaseComplete{background:#eaf7ef;color:#237a57}.status-noPurchaseNeeded{background:#f2f4f7;color:#667085}
.po-line-header,.po-line-row{display:grid;grid-template-columns:1.6fr 1fr .62fr .7fr .72fr .9fr .95fr .72fr .9fr 36px;gap:7px;align-items:center}.po-line-header{font-size:10px;color:var(--muted);font-weight:700;padding:0 2px 5px}.po-line-summary{margin:3px 0;line-height:1.8}.po-line-row select,.po-line-row input{min-width:0;width:100%;padding:7px;border:1px solid var(--line);border-radius:8px}
@media(max-width:1000px){.po-line-header{display:none}.po-line-row{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.po-line-row{grid-template-columns:1fr}}
.status-stockSufficient{background:#eaf7ef;color:#237a57}
.status-purchaseWarning{background:#fff5df;color:#9a6715}
.status-materialShortage{background:#fff1f1;color:#a53535}
.status-coveredByOrder{background:#eaf0ff;color:#2457d6}

.status-warehousePending{background:#fff5df;color:#9a6715}.status-warehouseConfirmed{background:#eaf7ef;color:#237a57}.status-warehouseRejected{background:#fff1f1;color:#a53535}
/* V8 searchable selects, photos, vehicle codes and procurement */
.smart-select{position:relative;min-width:180px;width:100%}.smart-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}.smart-select-input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);min-width:0}.smart-select-list{position:absolute;z-index:100;left:0;right:0;top:calc(100% + 4px);max-height:260px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 35px rgba(26,39,68,.16);padding:5px}.smart-option{width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:7px;cursor:pointer;color:var(--text)}.smart-option:hover,.smart-option.selected{background:var(--primary-soft);color:var(--primary)}.smart-empty{padding:12px;color:var(--muted);font-size:12px}.toolbar .smart-select{width:auto;min-width:210px}.field .smart-select{width:100%}.image-uploader{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fafbfc}.image-preview{width:150px;height:110px;border:1px dashed #cfd6e2;border-radius:10px;background:#fff;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:12px}.image-preview img{width:100%;height:100%;object-fit:contain}.image-actions{display:flex;gap:8px;flex-wrap:wrap}.image-paste-zone{grid-column:2;border:1px dashed #b7c4dd;border-radius:9px;padding:14px;background:#fff;color:var(--muted);outline:none;cursor:text}.image-paste-zone:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(36,87,214,.08)}.product-thumb{display:block;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#fff}.empty-thumb{display:grid;place-items:center;color:#a5adba;background:#f7f8fa}.vehicle-code-cell{max-width:380px}.tag-ok{background:#eaf7ef;color:#237a57}.tag-warn{background:#fff5df;color:#9a6715}.code-preview-box{border:1px solid var(--line);border-radius:10px;padding:10px;min-height:46px;background:#fafbfc}.mini-progress{display:inline-block;vertical-align:middle;width:86px;height:7px;background:#edf0f5;border-radius:99px;overflow:hidden;margin-right:8px}.mini-progress>div{height:100%;background:var(--primary);border-radius:99px}.warehouse-group-note{padding:10px 12px;border-radius:9px;background:#f7f9fc;border:1px solid var(--line)}
@media(max-width:760px){.image-uploader{grid-template-columns:1fr}.image-paste-zone{grid-column:1}.toolbar .smart-select{min-width:100%;width:100%}}

/* V9 process flow */
.process-flow-panel{margin-bottom:16px}
.process-flow-v9{display:flex;align-items:stretch;gap:10px;margin-top:14px;overflow-x:auto;padding-bottom:4px}
.process-flow-v9>div{flex:0 0 auto}
.flow-gate,.flow-main{display:flex;align-items:center;justify-content:center;min-width:120px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-weight:700;text-align:center}
.flow-main{min-width:150px;background:var(--primary-soft);border-color:var(--primary)}
.flow-arrow{display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--muted)}
.flow-parallel{min-width:300px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--bg)}
.flow-parallel-title{font-weight:700;margin-bottom:8px;text-align:center}
.flow-parallel span{display:block;padding:5px 8px;margin:4px 0;border-radius:7px;background:var(--panel);border:1px solid var(--line);font-size:12px}
@media(max-width:900px){.process-flow-v9{align-items:center}.flow-parallel{min-width:270px}}
/* V10 */
.danger-banner{border-left:4px solid #b42318}.inbound-panel{margin-bottom:14px}.data-table .bom-badge{white-space:nowrap}.metric-grid-6+.panel{margin-top:14px}

/* ===== V11 ERP interaction polish ===== */
.erp-panel{border-radius:14px;box-shadow:0 1px 2px rgba(20,33,61,.03)}
.data-table thead th{position:sticky;top:0;z-index:3;background:#f5f7fb;white-space:nowrap}
.data-table tbody tr:hover{background:#f8fbff}
.data-table tbody tr:nth-child(even){background:#fcfdff}
.data-table tbody tr:nth-child(even):hover{background:#f8fbff}
.table-wrap{border:1px solid var(--line);border-radius:10px;max-height:68vh;overflow:auto;background:#fff}
.check-col{width:38px;min-width:38px;text-align:center!important}.check-col input{width:16px;height:16px;cursor:pointer}
.bulk-count{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#eef4ff;color:var(--primary);font-size:12px;font-weight:700}
.btn-compact{padding:7px 10px;font-size:12px}.readonly-field{background:#f3f5f8!important;color:#596273}.field-help{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.45}
.po-line-header-order,.po-line-row-order{grid-template-columns:minmax(220px,2.2fr) minmax(140px,1.2fr) minmax(90px,.8fr) minmax(100px,.9fr) minmax(120px,1fr) 36px!important}
.po-inspection-readonly{display:flex;flex-direction:column;justify-content:center;padding:6px 8px;border-radius:8px;background:#f6f8fb;border:1px solid var(--line);font-size:11px;color:var(--muted)}.po-inspection-readonly strong{font-size:13px;color:var(--text)}
.warehouse-workbench{border-left:4px solid var(--primary)}
.toolbar{gap:8px;align-items:center}.toolbar .search{min-width:220px}.panel-head{gap:14px;align-items:flex-start}
.row-actions{gap:8px;flex-wrap:wrap}.link-btn{white-space:nowrap}
.smart-select-input:focus,.search:focus,input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary)!important;box-shadow:0 0 0 3px rgba(36,87,214,.08)}
.modal-card{max-height:92vh}.modal-header{position:sticky;top:0;z-index:5;background:#fff}.modal-footer{position:sticky;bottom:0;z-index:5;background:#fff;border-top:1px solid var(--line)}
@media(max-width:1000px){.toolbar{flex-wrap:wrap}.toolbar-spacer{display:none}.po-line-header-order{display:none}.po-line-row-order{grid-template-columns:1fr 1fr!important}}
/* Let searchable dropdowns escape the modal instead of being clipped by the scroll box. */
.modal{overflow:auto;align-items:flex-start}.modal-card{overflow:visible;max-height:none;margin:auto}.smart-select-list{z-index:1000}
.erp-alert-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin:14px 0;border:1px solid #f1ddb0;border-radius:11px;background:#fff9ec}.erp-alert-strip div{display:flex;gap:10px;align-items:baseline}.erp-alert-strip span{font-size:12px;color:var(--muted)}

/* ===== V11.1 header account tools ===== */
.sidebar{overflow:hidden}
.nav-menu{flex:1;min-height:0}
.topbar-right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:min(860px,70vw)}
.topbar-right .top-actions{justify-content:flex-end;flex-wrap:wrap}
.top-user-card{margin:0;padding:7px 11px;min-width:150px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:none;color:var(--text);line-height:1.25}
.top-user-card strong{font-size:12px;color:var(--text);white-space:nowrap}
.top-user-card span{font-size:10px;color:var(--muted);white-space:nowrap}
.topbar-tool-btn{width:auto;white-space:nowrap}
.top-storage-tip{font-size:10px;line-height:1.35;color:var(--muted);text-align:right;max-width:720px}
@media(max-width:1100px){
  .topbar{gap:16px}
  .topbar-right{max-width:62vw}
  .top-storage-tip{max-width:560px}
}
@media(max-width:760px){
  .topbar-right{margin-left:0;align-items:stretch;max-width:none;width:100%}
  .topbar-right .top-actions{justify-content:flex-start}
  .top-user-card{min-width:145px}
  .top-storage-tip{text-align:left;max-width:none}
}

/* V11.2 dependency / deletion impact assistant */
.dependency-modal{z-index:1200}.dependency-card{max-width:920px;width:min(920px,94vw);max-height:88vh}.dependency-body{padding:4px 24px 18px;overflow:auto;display:flex;flex-direction:column;gap:10px}.dependency-warning{border:1px solid #f3c7c7;background:#fff7f7;border-radius:12px;padding:13px 15px;display:flex;flex-direction:column;gap:4px;color:#7f1d1d}.dependency-warning span{font-size:12px;color:#8b5b5b}.dependency-summary{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border,#d9e1ec);background:#f8fafc;border-radius:10px;padding:9px 12px}.dependency-summary strong{font-size:18px}.dependency-row{display:flex;align-items:center;gap:14px;border:1px solid var(--border,#d9e1ec);border-radius:12px;padding:13px 14px;background:#fff}.dependency-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.dependency-main>div:first-child{display:flex;align-items:center;gap:8px}.dependency-count{display:inline-flex;min-width:24px;height:22px;align-items:center;justify-content:center;padding:0 7px;border-radius:999px;background:#eef2ff;color:#34466b;font-size:12px;font-weight:700}.dependency-examples{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dependency-how{font-size:13px;color:#334155;line-height:1.45}.dependency-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--border,#e5e7eb)}
@media(max-width:720px){.dependency-row{align-items:flex-start;flex-direction:column}.dependency-row .btn{width:100%}.dependency-card{width:96vw}}

/* V12 workbench + readiness */
.v12-context{display:flex;gap:12px;align-items:center;padding:10px 14px;margin-bottom:14px;border:1px solid var(--border,#e4e7ec);border-radius:10px;background:#fff;font-size:13px}.v12-context span{color:#667085}.v12-workbench .panel-head{align-items:flex-start}.v12-task-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-top:14px}.task-card{border:1px solid #e4e7ec;border-radius:10px;background:#fff;text-align:left;padding:13px 14px;cursor:pointer;min-height:86px;transition:.15s ease}.task-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(16,24,40,.07)}.task-card .task-label{display:block;font-size:12px;color:#667085}.task-card strong{display:block;font-size:25px;line-height:1.2;margin-top:7px;color:#101828}.task-card small{display:block;margin-top:4px;color:#98a2b3}.task-danger{border-left:4px solid #d92d20}.task-warn{border-left:4px solid #dc6803}.task-good{border-left:4px solid #039855}.v12-quick{white-space:nowrap}.node-ready{display:flex;flex-direction:column;gap:2px;min-width:54px}.node-ready strong{font-size:13px}.node-ready small{font-size:11px;color:#667085}.node-ok strong{color:#027a48}.node-gap strong{color:#b42318}.selected-row td{background:#f8fafc}.release-chip{max-width:430px;border-radius:9px;padding:9px 12px;display:flex;flex-direction:column;gap:2px;font-size:12px}.release-chip strong{font-size:12px}.release-chip span{color:#475467}.release-ok{background:#ecfdf3;border:1px solid #abefc6}.release-block{background:#fffaeb;border:1px solid #fedf89}.v12-role-note{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-bottom:14px;background:#f8fafc;border:1px solid #e4e7ec;border-radius:10px;font-size:13px}.v12-role-note span{color:#667085}.readiness-node-bar{height:6px;border-radius:6px;background:#eaecf0;overflow:hidden}.readiness-node-bar>i{display:block;height:100%;background:#12b76a}.top-user-card span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1400px){.v12-task-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}}@media(max-width:900px){.v12-task-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.v12-context{align-items:flex-start;flex-direction:column}}

/* ===== V13 batch-centric ERP flow ===== */
.v13-process{margin-bottom:14px;border-left:4px solid var(--primary)}
.v13-flow-ribbon{display:flex;align-items:center;gap:8px;overflow:auto;padding:3px 0 6px}
.v13-flow-ribbon button{flex:0 0 auto;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;color:#344057;font-weight:700;cursor:pointer}
.v13-flow-ribbon button:hover{border-color:#9cb3f4;background:#f7f9ff;color:var(--primary)}
.v13-flow-ribbon span{color:#98a2b3;font-weight:800}
.v13-batch-workbench{margin-top:14px;border-top:3px solid var(--primary)}
.v13-batch-title{font-size:19px;margin-top:3px}.v13-mini-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.v13-mini-metrics>div{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fbfcfe;display:flex;flex-direction:column;gap:4px}
.v13-mini-metrics span{font-size:11px;color:var(--muted)}.v13-mini-metrics strong{font-size:20px}.v13-mini-metrics .v13-date{font-size:14px;margin-top:4px}
.v13-work-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.v13-tabs{display:none}.v13-file-note{margin:-4px 0 10px;line-height:1.5}
.v13-flow-panel{border-top:3px solid var(--primary)}.v13-filterbar{margin-bottom:12px}.v13-filterbar .smart-select{min-width:210px}.v13-filterbar .search{min-width:240px}
.v13-handoff-panel{border-left:4px solid #7c3aed;margin-bottom:14px}.v13-handoff-panel .tag{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.v13-work-grid{grid-template-columns:1fr}.v13-mini-metrics{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media(max-width:760px){.v13-mini-metrics{grid-template-columns:1fr 1fr}.v13-flow-ribbon{align-items:stretch}.v13-filterbar>*{width:100%;min-width:0!important}}

/* ===== V14 manufacturing ERP: receipt allocation, As-Built, shipping & after-sales ===== */
.po-line-row .smart-select{min-width:220px}
.receipt-allocation-grid{border:1px solid var(--line);border-radius:10px;overflow:auto;background:#fff;margin-top:8px}
.receipt-allocation-head,.receipt-allocation-row{display:grid;grid-template-columns:minmax(120px,.9fr) minmax(110px,.75fr) minmax(220px,1.7fr) 90px 100px 100px 120px;gap:8px;align-items:center;padding:9px 10px;min-width:930px}
.receipt-allocation-head{background:#f5f7fb;color:var(--muted);font-size:11px;font-weight:700;position:sticky;top:0;z-index:1}
.receipt-allocation-row{border-top:1px solid var(--line);font-size:12px}.receipt-allocation-row input{width:100%;min-width:80px}
.handover-mini{display:flex;flex-direction:column;gap:4px;min-width:175px;font-size:11px}.handover-mini>span{display:block;border-bottom:1px dashed #edf0f5;padding-bottom:3px}.handover-mini>span:last-child{border-bottom:0}
.v14-vehicle-strip{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;border-radius:9px;border:1px solid var(--line);background:#f8fafc;font-size:12px}.v14-vehicle-strip strong{font-size:14px}
.v14-wide-search{width:100%;max-width:none!important}
.v14-warehouse-flow{border-left:4px solid #7c3aed}
.vehicle-check-grid{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px}.vehicle-check-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;cursor:pointer}.vehicle-check-item:hover{background:#f7f9fc}.vehicle-check-item input{width:16px;height:16px}.vehicle-check-item .meta{font-size:11px;color:var(--muted)}
.photo-file-list{display:flex;flex-direction:column;gap:7px;max-height:300px;overflow:auto}.photo-file-list>div{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfc}.photo-file-list strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trace-alert{border-left:4px solid #dc6803}.status-unapprovedSubstitute,.status-traceMissing{background:#fff5df;color:#9a6715}.status-substituted{background:#eaf0ff;color:#2457d6}.status-asPlannedDefault{background:#eaf7ef;color:#237a57}
@media(max-width:900px){.v14-vehicle-strip{align-items:flex-start;flex-direction:column;gap:5px}}

/* ===== V15 consolidated warehouse / correction UX ===== */
#warehouseReceiptPage .metric-grid-6{margin-top:14px}
#warehouseReceiptPage .section-title{margin-top:20px}
#warehouseReceiptPage .erp-alert-strip,#outboundPage .erp-alert-strip{margin-bottom:14px}
#warehouseReceiptPage .multi-actions,#outboundPage .multi-actions{min-width:120px}
#inventoryPage .data-table.compact td,#warehouseReceiptPage .data-table.compact td{vertical-align:middle}
.erp-alert-strip{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:10px;background:#fafcff;margin-bottom:12px}
.erp-alert-strip>div{display:flex;flex-direction:column;gap:3px}.erp-alert-strip>div span{font-size:12px;color:var(--muted)}
@media(max-width:900px){.erp-alert-strip{align-items:flex-start;flex-direction:column}}

/* V17 production node quick-start */
.production-node-table th:nth-child(n+9):nth-child(-n+13){min-width:150px}
.process-node-cell{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:126px}
.process-node-cell.started{padding:5px 7px;border-radius:8px;background:rgba(34,197,94,.08)}
.process-node-time{font-weight:600;white-space:nowrap;font-size:12px}
.process-node-state{font-size:11px;color:var(--success,#15803d)}
.process-start-btn{padding:4px 10px!important;min-height:28px!important}
.v17-process-hint{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border,#d9e0e8)}
/* V18 barcode / sync */
.sync-pill18[data-state="online"]{border-color:#b7e4c7;background:#effaf3;color:#1f7a45}.sync-pill18[data-state="saving"]{border-color:#b8d6ff;background:#f2f7ff}.sync-pill18[data-state="conflict"],.sync-pill18[data-state="error"]{border-color:#ffc9c9;background:#fff4f4;color:#b42318}.scan-line18{display:flex;gap:8px;margin-top:12px}.scan-input18{min-height:42px}.scan-result{margin-top:12px;padding:12px;border-radius:8px;border:1px solid #e5e7eb}.scan-result.ok{background:#f0fdf4;border-color:#bbf7d0}.scan-result.unknown{background:#fff7ed;border-color:#fed7aa}.camera-wrap18{margin-top:12px}.camera-wrap18 video{width:100%;max-height:280px;background:#111;border-radius:8px}.label-actions18,.scan-stack18{display:grid;gap:10px;margin-top:12px}.scan-ops18{margin-top:14px}.scan-pending18{margin-top:12px}.code39svg{display:block;max-width:100%}

/* Installable web app help and compact phone layout. */
.pwa-install-btn{white-space:nowrap}
.pwa-help-backdrop{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(18,26,42,.56)}
.pwa-help-backdrop.hidden{display:none}
.pwa-help-card{width:min(620px,96vw);max-height:90vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.24)}
.pwa-help-card .modal-header{position:sticky;top:0;background:#fff;z-index:1}
.pwa-help-card .modal-header h2{font-size:19px}
.pwa-help-body{padding:18px 20px;display:grid;gap:14px}
.pwa-help-body p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.6}
@media(max-width:760px){.pwa-help-backdrop{padding:10px}.pwa-help-card{width:100%;max-height:94vh}.pwa-help-card .modal-header{padding:14px}.pwa-help-body{padding:14px}.login-card .pwa-install-btn{margin-top:10px}}

/* Responsive shell for desktop, tablets, and phones. Wide operational tables
   keep their columns readable and scroll inside the table container. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{min-width:320px;overflow-x:hidden}
.app-shell,.main,.page,.panel,.card,.topbar-heading,.page-heading{min-width:0}
.main{padding-inline:clamp(16px,2vw,32px)}
.topbar-heading{display:flex;align-items:flex-start;gap:10px;flex:1}
.page-heading{min-width:0}
.mobile-nav-toggle,.mobile-nav-close{display:none}
.nav-scrim{display:none}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
img,video,canvas{max-width:100%;height:auto}
.table-wrap .data-table{margin:0}

@media(max-width:1024px){
  .app-shell{display:block}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);height:100dvh;min-height:0;transform:translateX(-105%);transition:transform .22s ease;z-index:100;box-shadow:0 18px 52px rgba(8,16,32,.3)}
  .sidebar .brand{flex:0 0 auto;padding-right:14px}
  .brand-copy{min-width:0;flex:1}
  .mobile-nav-close{display:inline-grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font-size:27px;line-height:1;cursor:pointer}
  .nav-menu{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .main{margin-left:0;width:100%;padding:18px 18px 36px}
  .mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font-weight:700;cursor:pointer}
  .nav-scrim{position:fixed;inset:0;z-index:90;background:rgba(14,22,38,.5);opacity:0;pointer-events:none;transition:opacity .22s ease}
  body.mobile-nav-open{overflow:hidden}
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  body.mobile-nav-open .nav-scrim{display:block;opacity:1;pointer-events:auto}
  .topbar{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .topbar-heading{align-items:center}
  .topbar-right{margin-left:0;align-items:stretch;max-width:none;width:100%}
  .topbar-right .top-actions{justify-content:flex-start;flex-wrap:wrap}
  .top-storage-tip{text-align:left;max-width:none}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-2,.master-layout{grid-template-columns:minmax(0,1fr)}
  .sticky-panel{position:static}
  .metric-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .setting-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .modal{padding:12px}
  .modal-card{max-height:min(92dvh,900px)}
}

@media(max-width:640px){
  .main{padding:12px 12px calc(20px + env(safe-area-inset-bottom))}
  .topbar{gap:10px;margin-bottom:14px}
  .topbar-heading{gap:9px;align-items:flex-start}
  .mobile-nav-toggle{min-height:42px;padding:0 10px;font-size:13px}
  .topbar h1{font-size:clamp(19px,5.3vw,23px);line-height:1.25;overflow-wrap:anywhere}
  #pageSubtitle{font-size:12px;line-height:1.45}
  .topbar-right .top-actions{gap:6px}
  .topbar-right .top-actions>*{max-width:100%;font-size:12px}
  .top-user-card{min-width:0;max-width:100%;padding:7px 9px}
  .top-user-card strong,.top-user-card span{max-width:160px;overflow:hidden;text-overflow:ellipsis}
  .top-storage-tip{display:none}
  .btn{min-height:40px;padding:9px 10px;font-size:13px}
  .nav-item{min-height:46px;padding:12px 14px}
  .panel,.metric-card{padding:13px}
  .panel-head{align-items:flex-start;flex-wrap:wrap}
  .panel-head>*,.toolbar{min-width:0;max-width:100%}
  .toolbar{gap:7px}
  .toolbar .search,.toolbar .select,.toolbar .smart-select,.search,.select,.select-wide,.bom-select{width:100%;min-width:0;max-width:100%}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .metric-card{padding:12px}
  .metric-label{font-size:11px}
  .metric-value{font-size:clamp(22px,7vw,28px)}
  .metric-foot{font-size:11px;overflow-wrap:anywhere}
  .metric-grid-6,.permission-grid,.setting-grid,.form-grid{grid-template-columns:1fr 1fr;gap:9px}
  .bom-summary,.v13-mini-metrics,.v12-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .v13-mini-metrics>div{min-width:0;padding:9px}
  .v12-task-grid .task-card{min-width:0;padding:10px}
  .po-line-row,.po-line-row-order{grid-template-columns:1fr!important}
  .field.full-span{grid-column:1/-1}
  .field input,.field select,.field textarea,.login-form input{font-size:16px;max-width:100%}
  .input-inline{flex-wrap:wrap;align-items:stretch}
  .input-inline>*{flex:1 1 100%}
  .data-table{min-width:700px}
  .table-wrap .data-table.compact{min-width:680px}
  .progress-row{grid-template-columns:minmax(76px,.7fr) minmax(80px,1fr) 42px;gap:8px}
  .progress-row>*{min-width:0}
  .history-layout{grid-template-columns:minmax(0,1fr)}
  .history-hero{align-items:flex-start}
  .history-hero-actions{width:100%;flex-wrap:wrap}
  .erp-alert-strip{padding:10px;gap:10px}
  .v14-vehicle-strip{gap:6px;padding:9px}
  .process-node-cell{min-width:112px}
  .modal{align-items:flex-end;padding:8px 8px max(8px,env(safe-area-inset-bottom))}
  .modal-card{width:100%;max-height:94dvh;border-radius:14px}
  .modal-header{position:sticky;top:0;z-index:2;padding:14px;background:#fff}
  .modal-header h2{font-size:18px}
  .modal-footer{position:sticky;bottom:0;z-index:2;justify-content:stretch;padding:12px 14px max(12px,env(safe-area-inset-bottom));background:#fff}
  .modal-footer .btn{flex:1}
  .form-grid{grid-template-columns:1fr;padding:14px}
  .field.full-span{grid-column:auto}
  .pwa-help-backdrop{align-items:flex-end;padding:8px 8px max(8px,env(safe-area-inset-bottom))}
  .pwa-help-card{width:100%;max-height:94dvh;border-radius:14px}
  .login-view{padding:14px max(12px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-bottom))}
  .login-card{padding:20px;border-radius:16px}
  .toast{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));text-align:center}
}

@media(max-width:380px){
  .main{padding-inline:9px}
  .cards,.metric-grid-6,.permission-grid,.setting-grid,.form-grid{grid-template-columns:1fr}
  .bom-summary,.v13-mini-metrics,.v12-task-grid{grid-template-columns:1fr 1fr}
  .panel,.metric-card{padding:11px}
  .topbar-right .top-actions>*{font-size:11px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
