:root{--blue:#2b67e8;--blue2:#1d4ed8;--nav:#0d2c50;--bg:#f3f6fb;--card:#fff;--text:#142238;--muted:#6b778c;--line:#e2e8f0;--green:#0b9a67;--orange:#e68612;--red:#d83a3a;--soft:#f8fafc}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}
/* login */
.login-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0b2441,#1f5ec8)}.login-panel{width:min(480px,92vw);background:#fff;border-radius:20px;padding:30px;box-shadow:0 26px 70px rgba(0,0,0,.25)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.brand-mark{width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;display:grid;place-items:center;font-weight:900;font-size:20px}.login-brand h1{margin:0;font-size:25px}.login-brand p{margin:5px 0 0;color:var(--muted)}.login-form{display:grid;gap:14px}.login-form label{font-size:13px;color:#526075}.login-form input{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:12px}.form-error{color:var(--red);font-size:12px;min-height:16px}.login-tip{font-size:12px;color:var(--muted);margin-top:12px}.wide{width:100%}
/* shell */
.app{display:flex;min-height:100vh}.side{width:196px;position:fixed;inset:0 auto 0 0;background:linear-gradient(180deg,#0d2d52,#091f38);color:#fff;padding:15px 11px;overflow:auto;z-index:10}.brand{display:flex;gap:9px;align-items:center;padding:5px 7px 18px}.logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#60a5fa,#2563eb);display:grid;place-items:center;font-weight:900}.brand b{font-size:16px}.brand small{display:block;color:#90abc7;margin-top:2px}.sec{font-size:10.5px;color:#7795b4;margin:16px 8px 6px}.nav button{width:100%;border:0;background:transparent;color:#dce7f2;border-radius:8px;padding:10px;text-align:left;margin:2px 0;cursor:pointer;font-weight:650;display:flex;align-items:center;gap:8px}.nav-icon{width:17px;height:17px;display:block;flex:0 0 17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.nav button.on .nav-icon,.nav button:hover .nav-icon{opacity:1}.nav button.on,.nav button:hover{background:var(--blue);color:#fff}.side-foot{position:absolute;left:18px;right:18px;bottom:18px;border-top:1px solid #264463;padding-top:12px;font-size:12px;color:#b9c9da}.ghost-link{border:0;background:transparent;color:#9fc0e3;padding:5px 0;cursor:pointer}
.main{margin-left:196px;width:calc(100% - 196px)}.top{height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 25px;position:sticky;top:0;z-index:5}.crumb{font-size:12.5px;color:var(--muted)}.top-right{display:flex;gap:8px;align-items:center}.top-right input{width:240px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.content{padding:20px 25px;max-width:none}.page-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.page-title h2{margin:0 0 4px;font-size:22px}.sub{font-size:12.5px;color:var(--muted)}
.primary,.ghost,.danger-btn{border-radius:8px;padding:9px 13px;cursor:pointer;font-weight:750}.primary{border:0;background:var(--blue);color:#fff}.ghost{border:1px solid var(--line);background:#fff;color:var(--text)}.danger-btn{border:1px solid #fecaca;background:#fff;color:#b42318}.link{color:var(--blue);font-weight:700;cursor:pointer;border:0;background:transparent;padding:0}.link:hover{text-decoration:underline}
.grid6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(17,38,68,.035)}.kpi .label{font-size:12px;color:var(--muted)}.kpi .num{font-size:28px;font-weight:850;margin:6px 0}.kpi .foot{font-size:11.5px;color:var(--muted)}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-title h3{margin:0;font-size:15.5px}.badge{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}.bgreen,.tag.green{background:#e9f9f2;color:#0a7e59}.bblue,.tag.blue{background:#eaf1ff;color:#1d4ed8}.borange,.tag.orange{background:#fff4dc;color:#9a6200}.bred,.tag.red{background:#feeceb;color:#b42318}.bgray{background:#f2f4f7;color:#475467}.tag{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}
.progress{height:7px;background:#e8eef7;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--blue)}.progress.green i{background:var(--green)}.progress.orange i{background:var(--orange)}.orange{color:#d97706!important;font-weight:800}.green{color:#0b9a67!important;font-weight:800}.blue{color:#2563eb!important;font-weight:800}.todo{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}.todo:last-child{border-bottom:0}.dot{width:31px;height:31px;border-radius:9px;background:#edf3ff;color:var(--blue);display:grid;place-items:center;font-weight:900}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.mini{background:#f8fafc;border:1px solid #edf1f5;border-radius:9px;padding:12px}.mini small{color:var(--muted)}.mini b{display:block;font-size:17px;margin-top:3px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.toolbar input,.toolbar select,.month-filter input{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px}.toolbar input{min-width:230px}.alert{border-radius:9px;padding:11px 13px;font-size:12px;background:#eef6ff;border:1px solid #cfe2ff;color:#315b8b}.alert.warn{background:#fff7e6;border-color:#fde1a7;color:#855900}.empty{text-align:center;padding:28px;color:var(--muted)}
/* dashboard */.dashboard-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.flow-summary{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.flow-summary .big{font-size:24px;font-weight:850;margin:5px 0}
/* product */
.product-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:20px}.category{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;height:max-content;position:sticky;top:76px}.category h3{margin:0;font-size:15px}.cat-group{margin:2px 0}.cat-head{display:flex;justify-content:space-between;align-items:center;padding:8px 9px;border-radius:8px;cursor:pointer;font-size:13px}.cat-head:hover,.cat-head.on{background:#eaf1ff;color:var(--blue);font-weight:800}.count{background:#eef2f7;border-radius:999px;padding:2px 7px;font-size:10.5px;color:#6b7280}.cat-products{display:none;padding:3px 0 5px 13px}.cat-products.open{display:block}.cat-product{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:7px;cursor:pointer}.cat-product:hover{background:#f3f6fa}.cat-name{font-size:11.5px;font-weight:750;color:#233247}.cat-sku{font-size:10.5px;color:#7a8798}.product-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.product-card{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden;min-width:0;cursor:pointer;transition:.16s}.product-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(17,38,68,.08)}.product-img{aspect-ratio:1/1;width:100%;background:#edf2f7;overflow:hidden;position:relative}.product-img img{width:100%;height:100%;object-fit:cover;display:block}.pending-image{position:absolute;left:8px;top:8px;background:#fff3cd;color:#946100;padding:3px 6px;border-radius:6px;font-size:10px;font-weight:800}.pc-body{padding:20px}.pc-body h4{margin:0 0 4px;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sku{font-size:11.5px;color:var(--muted)}.meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.chip{background:#f3f6fa;padding:3px 6px;border-radius:5px;font-size:10px;color:#536176}.pc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:9px;font-size:11px}.detail-hero{display:grid;grid-template-columns:180px 1fr;gap:20px}.detail-img{aspect-ratio:1/1;border-radius:12px;background:#edf2f7;overflow:hidden}.detail-img img{width:100%;height:100%;object-fit:cover}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.detail-box{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfe}.detail-box small{color:var(--muted);display:block;margin-bottom:4px}.package-list{width:100%;border-collapse:collapse;font-size:12px}.package-list th,.container-list th{background:#f7f9fc;color:#5d6b7d;text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.package-list td,.container-list td{padding:11px 10px;border-bottom:1px solid #edf1f5;vertical-align:middle}.package-main{display:inline-flex;padding:3px 7px;border-radius:999px;background:#eaf1ff;color:#1d4ed8;font-size:10px;font-weight:800}.package-total{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}.summary-box{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfe}.summary-box small{color:var(--muted);display:block}.summary-box b{font-size:20px;display:block;margin-top:4px}.upload{border:2px dashed #cbd8ec;border-radius:12px;padding:17px;background:#f8fbff;display:flex;gap:14px;align-items:center}.upload.drag{border-color:var(--blue);background:#edf4ff}.upload-thumb{width:105px;height:105px;border-radius:10px;background:#dbeafe;display:grid;place-items:center;color:#1d4ed8;font-weight:900;overflow:hidden}.upload-thumb img{width:100%;height:100%;object-fit:cover}.package-row{display:grid;grid-template-columns:45px 1.1fr 1.6fr repeat(4,1fr) 68px;gap:7px;align-items:end;padding:9px;background:#f9fbfd;border:1px solid #edf1f5;border-radius:9px;margin-top:7px}
/* purchase */
.table-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto}.purchase-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:12px;min-width:1500px}.purchase-table th{background:#f7f9fc;color:#5d6b7d;text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:11px}.purchase-table td{padding:10px 8px;border-bottom:1px solid #edf1f5;vertical-align:middle;white-space:nowrap}.purchase-table tbody tr.group-start td{border-top:2px solid #dbe3ef}.po-cell{vertical-align:middle!important;background:#fbfcfe;font-weight:800;min-width:120px}.supplier-cell{vertical-align:middle!important;font-weight:750}.product-cell{min-width:230px}.prodline,.product-row{display:flex;gap:8px;align-items:center}.thumb{width:42px;height:42px;border-radius:7px;background:#eaf1ff;display:grid;place-items:center;color:#2b67e8;font-weight:900;overflow:hidden;flex:0 0 42px}.thumb img{width:100%;height:100%;object-fit:cover}.amount{font-weight:800}
/* containers */
.status-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.status-tab{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 14px;cursor:pointer;font-weight:750;color:#526075}.status-tab.on{background:#eaf1ff;border-color:#b9cffd;color:var(--blue)}.tab-count{display:inline-flex;min-width:22px;height:22px;align-items:center;justify-content:center;border-radius:999px;background:#eef2f7;font-size:11px;margin-left:6px}.container-status-panel{display:none}.container-status-panel.on{display:block}.container-list{width:100%;border-collapse:collapse;font-size:12px}.container-list tr:hover td{background:#fbfdff}.container-no{font-weight:850}.container-meta{font-size:11px;color:var(--muted);margin-top:3px}.month-filter{display:flex;gap:10px;align-items:center}.product-row .name{font-weight:800;font-size:12px}.product-row .sku{font-size:11px;color:var(--muted);margin-top:2px}
/* master/inventory */
.master-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.master-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.master-row{display:grid;grid-template-columns:1fr 1.3fr 1.2fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.master-row:last-child{border-bottom:0}.inventory-table{width:100%;border-collapse:collapse;font-size:12px}.inventory-table th{background:#f7f9fc;color:#5d6b7d;text-align:left;padding:10px}.inventory-table td{padding:12px 10px;border-bottom:1px solid #edf1f5}
/* modal */
.modal{display:flex;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:30;align-items:center;justify-content:center;padding:24px}.modal.hidden{display:none}.modal-box{width:min(980px,94vw);max-height:92vh;overflow:auto;background:#fff;border-radius:15px;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.22)}.modal-box.narrow{width:min(700px,92vw)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.modal-title{font-size:21px;font-weight:850}.modal-sub{color:var(--muted);font-size:12px;margin-top:3px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:8px;width:36px;height:36px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:5px}.field input,.field select,.field textarea,.status-select{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}.field.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.import-note{background:#eef6ff;border:1px solid #cfe2ff;color:#315b8b;padding:11px;border-radius:9px;font-size:12px;line-height:1.6}.toast{position:fixed;right:24px;bottom:24px;background:#102744;color:#fff;border-radius:9px;padding:11px 14px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:60}.toast.show{opacity:1;transform:none}
@media(max-width:1500px){.grid6{grid-template-columns:repeat(3,1fr)}}@media(max-width:1180px){.grid4,.grid3,.grid2{grid-template-columns:repeat(2,1fr)}.product-layout{grid-template-columns:190px 1fr}.dashboard-flow{grid-template-columns:repeat(2,1fr)}.business-row{grid-template-columns:1fr 1fr}.allocation-row{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr}}
/* business workflow additions */
.start-card{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;background:#f8fbff}
.empty.compact{padding:18px 0}
.danger-row .dot{background:#fee2e2;color:#b42318}
.danger-link{color:#b42318!important}
.flow-block{border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:10px;background:#fbfcfe}.flow-block-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.route-line{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:10px 0;border-top:1px solid #e8edf4;margin-top:10px}
.route-blocked{max-width:260px;text-align:right;color:#7a5a1c}
.business-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.2fr auto;gap:10px;align-items:end;border:1px solid #e5ebf3;background:#f9fbfd;border-radius:10px;padding:12px;margin-bottom:10px}.business-row .wide2{min-width:220px}.remove-row{height:38px}
.allocation-row{display:grid;grid-template-columns:1fr 2fr 1fr auto;gap:10px;align-items:end;border:1px solid #e5ebf3;background:#f9fbfd;border-radius:10px;padding:12px;margin-bottom:10px}.allocation-total{text-align:right;padding:10px 2px;font-size:13px}.allocation-total b{font-size:16px}
.wide-container-table{min-width:1750px}
.role-row{display:grid;grid-template-columns:220px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid #edf1f5}.role-row:last-child{border-bottom:0}.permission-codes{font-size:11px;color:#65758b;line-height:1.7}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-card{display:flex;gap:9px;border:1px solid var(--line);border-radius:9px;padding:10px;cursor:pointer}.check-card input{width:auto}.check-card span{display:flex;flex-direction:column;gap:3px}.check-card small{color:var(--muted);font-size:10px}
.search-result{display:flex;justify-content:space-between;gap:14px;padding:11px;border-bottom:1px solid #edf1f5;cursor:pointer}.search-result:hover{background:#f7faff}.search-result span{color:var(--muted);font-size:11px;text-align:right}

/* usability polish: no account avatar, compact business tables, permission/image/workflow feedback */
.top-right #topUser{font-weight:800;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.primary:disabled,.ghost:disabled{opacity:.48;cursor:not-allowed}
.table-card{overflow:hidden}
.purchase-table,.wide-container-table{min-width:0!important;width:100%;table-layout:fixed}
.purchase-table th,.purchase-table td,.wide-container-table th,.wide-container-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.purchase-table{font-size:11px}
.purchase-table th{padding:8px 5px;font-size:10px}.purchase-table td{padding:9px 5px}
.purchase-table .po-cell,.purchase-table .supplier-cell,.purchase-table .product-cell{min-width:0!important}
.purchase-table th:nth-child(1){width:8%}.purchase-table th:nth-child(2){width:6%}.purchase-table th:nth-child(3){width:6%}.purchase-table th:nth-child(4){width:4%}.purchase-table th:nth-child(5){width:14%}.purchase-table th:nth-child(6){width:9%}.purchase-table th:nth-child(7){width:6%}.purchase-table th:nth-child(8),.purchase-table th:nth-child(9),.purchase-table th:nth-child(10),.purchase-table th:nth-child(11),.purchase-table th:nth-child(12),.purchase-table th:nth-child(13),.purchase-table th:nth-child(14){width:5%}.purchase-table th:nth-child(15){width:6%}.purchase-table th:nth-child(16){width:8%}
.wide-container-table{font-size:11px}.wide-container-table th,.wide-container-table td{padding:9px 5px}
.wide-container-table th:nth-child(1){width:8%}.wide-container-table th:nth-child(2){width:6%}.wide-container-table th:nth-child(3){width:8%}.wide-container-table th:nth-child(4){width:4%}.wide-container-table th:nth-child(5),.wide-container-table th:nth-child(6),.wide-container-table th:nth-child(7),.wide-container-table th:nth-child(8){width:5%}.wide-container-table th:nth-child(9){width:6%}.wide-container-table th:nth-child(10),.wide-container-table th:nth-child(11),.wide-container-table th:nth-child(12),.wide-container-table th:nth-child(13){width:7%}.wide-container-table th:nth-child(14){width:6%}.wide-container-table th:nth-child(15){width:9%}
.product-row>div:last-child{min-width:0}.product-row .name,.product-row .sku,.product-cell b,.product-cell .sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.permission-preview{display:flex;gap:7px;flex-wrap:wrap;border:1px solid var(--line);border-radius:9px;background:#f8fafc;padding:10px;min-height:45px}.perm-chip{display:inline-flex;border-radius:999px;background:#eaf1ff;color:#1d4ed8;padding:4px 8px;font-size:11px;font-weight:750}
.success-panel{border:1px solid #bdebd8;background:#f0fbf6;border-radius:10px;padding:14px;line-height:1.7}.success-panel b{color:#087653}
.upload-status{display:flex;gap:8px;align-items:center;min-height:20px;margin-top:8px;font-size:11.5px;color:var(--muted)}.upload-status.ok{color:var(--green)}.upload-status.bad{color:var(--red)}.upload-progress{height:6px;background:#e5eaf2;border-radius:999px;overflow:hidden;margin-top:6px}.upload-progress i{height:100%;display:block;width:0;background:var(--blue);transition:width .15s}
.workflow-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin:14px 0 20px}.workflow-step{display:flex;gap:7px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:9px;background:#f8fafc;color:#69778a;min-width:0}.workflow-step span{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border-radius:50%;background:#e5eaf2;font-size:11px;font-weight:850}.workflow-step b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-step.done{border-color:#bdebd8;background:#f0fbf6;color:#087653}.workflow-step.done span{background:#c8f2df}.workflow-step.current{border-color:#b9cffd;background:#eef4ff;color:#1d4ed8}.workflow-step.current span{background:#dce8ff}.next-action{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#eef6ff;border:1px solid #cfe2ff;border-radius:10px;padding:12px 14px;margin-bottom:18px}.next-action b{font-size:13px}.next-action .sub{margin-top:3px}
.short-reason{margin-top:10px}.count-note{font-size:12px;color:var(--muted);margin-left:auto}.pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:12px}.pager span{font-size:12px;color:var(--muted)}
.audit-filters{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:10px;margin-bottom:14px}.audit-filters input,.audit-filters select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}.audit-detail{font-size:11px;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}.audit-status-ok{color:var(--green);font-weight:800}.audit-status-bad{color:var(--red);font-weight:800}
@media(max-width:1180px){.purchase-table,.wide-container-table{font-size:10px}.purchase-table th,.purchase-table td,.wide-container-table th,.wide-container-table td{padding-left:3px;padding-right:3px}.audit-filters{grid-template-columns:1fr 1fr}}
.detail-table-wrap{overflow:hidden}.detail-table{table-layout:fixed;width:100%;font-size:11px}.detail-table th,.detail-table td{padding:8px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-table th:first-child{width:24%}.detail-table td:first-child{white-space:normal}.compact-table{table-layout:fixed;width:100%}.compact-table th,.compact-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-table th:nth-child(1){width:22%}.compact-table th:nth-child(2){width:18%}.compact-table th:nth-child(3){width:12%}.compact-table th:nth-child(4){width:20%}.compact-table th:nth-child(5){width:28%}


/* v4 business usability: readable tables, wider search, tabs, audit cards */
.top-right input{width:380px;max-width:42vw}
.wide-search{min-width:360px!important;flex:1 1 360px}
.trace-search{width:460px!important;min-width:460px!important;flex:0 1 460px!important}
.inventory-search{height:42px!important;min-width:420px!important;flex:0 1 420px!important;padding:9px 14px!important;border:1px solid #cbd5e1!important;border-radius:11px!important;background:#f8fafc!important;color:var(--text);box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .16s,box-shadow .16s,background .16s}.inventory-search::placeholder{color:#94a3b8}.inventory-search:hover{border-color:#9fb3cc!important;background:#fff!important}.inventory-search:focus{outline:0;border-color:var(--blue)!important;background:#fff!important;box-shadow:0 0 0 3px rgba(43,103,232,.13)}
.table-toolbar{gap:12px}
.roomy-table table th{padding:11px 8px!important;line-height:1.35}
.roomy-table table td{padding:13px 8px!important;line-height:1.45}
.inventory-table th{padding:11px 12px}.inventory-table td{padding:13px 12px;line-height:1.45}
.purchase-table{font-size:11.25px}.wide-container-table{font-size:11.25px}
@media(min-width:1181px){.purchase-table,.purchase-table td{font-size:13px}}
#userTableBody td{font-size:13px}.compact-table th{font-size:13px}
#content table,#content table th,#content table td{font-size:13px}
.purchase-table th:nth-child(3),.purchase-table th:nth-child(4){width:7%!important;text-align:left}.purchase-table td.date-cell{min-width:78px;overflow:visible;text-overflow:clip;white-space:nowrap;text-align:left!important;padding-left:12px!important}
.purchase-table td,.purchase-table td.po-cell,.purchase-table td.supplier-cell{background:#fff!important}
.purchase-table tbody tr.group-start td:nth-child(3),.purchase-table tbody tr:not(.group-start) td:first-child{text-align:left!important;padding-left:12px!important;white-space:nowrap}
.native-search-select{display:none!important}.search-select-input{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 10px;color:var(--text)}.search-select-input:focus{outline:0;border-color:#9bb9f8;box-shadow:0 0 0 3px rgba(43,103,232,.12)}
.seg-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:20px}
.seg-tab{border:0;background:transparent;color:var(--muted);padding:10px 16px;cursor:pointer;font-weight:800;border-bottom:3px solid transparent;margin-bottom:-1px}
.seg-tab.on{color:var(--blue);border-bottom-color:var(--blue)}
.audit-card{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:10px;background:#fff}
.audit-card.bad{border-color:#fecaca;background:#fffafa}
.audit-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.audit-detail{margin-top:10px;padding:9px 11px;border-radius:8px;background:#f8fafc;font-size:12px;color:#475467}
.audit-card.bad .audit-detail{background:#fff1f1;color:#8f2525}
.audit-card details{margin-top:9px;color:var(--muted);font-size:11px}.audit-card summary{cursor:pointer}.audit-tech{margin-top:6px;overflow-wrap:anywhere}
.receipt-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.receipt-summary>div{border:1px solid var(--line);border-radius:10px;padding:13px;background:#f8fafc}.receipt-summary small{display:block;color:var(--muted);margin-bottom:4px}.receipt-summary b{font-size:18px}
.empty-state-help{padding:24px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;text-align:center}.empty-state-help b{display:block;margin-bottom:8px}
@media(max-width:1180px){.top-right input{width:300px}.wide-search{min-width:260px!important}.trace-search{min-width:360px!important;width:360px!important;flex-basis:360px!important}.inventory-search{min-width:260px!important;flex-basis:260px!important}.receipt-summary{grid-template-columns:1fr}.roomy-table table th,.roomy-table table td{padding-left:6px!important;padding-right:6px!important}}

/* v5 page consistency and inventory tabs */
:root{--page-gutter:28px}
.top{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.content{padding-left:var(--page-gutter);padding-right:var(--page-gutter);padding-bottom:36px}
.inventory-tabs{margin-top:20px;margin-bottom:0}
.inventory-tabs .seg-tab{padding-left:18px;padding-right:18px}
.purchase-table,.wide-container-table{margin-left:14px;margin-right:14px;width:calc(100% - 28px)!important}
.purchase-table th:first-child,.purchase-table td:first-child,.wide-container-table th:first-child,.wide-container-table td:first-child{padding-left:10px}
.purchase-table th:last-child,.purchase-table td:last-child,.wide-container-table th:last-child,.wide-container-table td:last-child{padding-right:10px}
.content{padding-top:20px;padding-bottom:20px}
.nav button{margin-top:7px;margin-bottom:7px}
.purchase-table,.wide-container-table{margin-left:0;margin-right:0;width:100%!important}
.purchase-table th:first-child,.purchase-table td:first-child,.wide-container-table th:first-child,.wide-container-table td:first-child{padding-left:20px!important}
.purchase-table th:last-child,.purchase-table td:last-child,.wide-container-table th:last-child,.wide-container-table td:last-child{padding-right:20px!important}
[data-inventory-panel] .table-toolbar select{height:42px;min-width:420px;width:420px;padding:9px 14px;border:1px solid #cbd5e1;border-radius:11px;background:#f8fafc;color:var(--text);box-shadow:0 1px 2px rgba(15,23,42,.04)}
[data-inventory-panel] .table-toolbar select:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(43,103,232,.13)}
.receipt-table th,.receipt-table td{vertical-align:middle}
@media(max-width:1180px){[data-inventory-panel] .table-toolbar select{min-width:260px;width:260px}}
.purchase-table th:nth-child(1){width:8%}.purchase-table th:nth-child(2){width:9%}.purchase-table th:nth-child(3){width:6%}.purchase-table th:nth-child(4){width:6%}.purchase-table th:nth-child(5){width:4%}.purchase-table th:nth-child(6){width:14%}.purchase-table th:nth-child(7){width:6%}
.trace-search{height:42px!important}.trace-search+.primary{height:42px}
[data-inventory-panel] .table-toolbar{display:flex;gap:20px;margin-bottom:20px;align-items:center;flex-wrap:wrap}
.role-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.role-choice{border:1px solid var(--line);border-radius:10px;background:#f8fafc;color:var(--text);padding:13px;text-align:left;cursor:pointer;min-height:76px}.role-choice b{display:block;font-size:13px}.role-choice small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:5px}.role-choice:hover,.role-choice.on{border-color:#9bb9f8;background:#eef4ff;color:#1d4ed8}.role-permission-detail{border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:14px}.role-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.role-detail-head b{font-size:14px}
@media(max-width:1180px){.role-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v7 filter alignment and receipt list stability */
.purchase-toolbar{align-items:center!important;gap:10px!important}
.purchase-toolbar input,.purchase-toolbar select,.purchase-toolbar button{height:42px;box-sizing:border-box}
.purchase-toolbar input,.purchase-toolbar select{padding-top:9px!important;padding-bottom:9px!important}
.receipt-table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed}
.receipt-table thead{display:table-header-group!important}.receipt-table tbody{display:table-row-group!important}.receipt-table tr{display:table-row!important}.receipt-table th,.receipt-table td{display:table-cell!important;height:52px;box-sizing:border-box}.receipt-table th:nth-child(1){width:28%}.receipt-table th:nth-child(2){width:18%}.receipt-table th:nth-child(3){width:18%}.receipt-table th:nth-child(4),.receipt-table th:nth-child(5),.receipt-table th:nth-child(6){width:9%}.receipt-table th:nth-child(7){width:18%}
@media(max-width:1180px){.purchase-toolbar{align-items:center!important}.purchase-toolbar input,.purchase-toolbar select,.purchase-toolbar button{height:42px}.receipt-table{min-width:760px!important}}

/* v8 searchable product picker for inventory adjustments */
.searchable-select-field{position:relative}.searchable-select-field>input{background:#fff}.search-select-options{position:absolute;left:0;right:0;top:63px;z-index:45;max-height:230px;overflow:auto;border:1px solid #b9cffd;border-radius:9px;background:#fff;box-shadow:0 12px 28px rgba(17,38,68,.16);padding:5px}.search-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;background:#fff;border-radius:7px;padding:9px 10px;text-align:left;cursor:pointer}.search-option:hover{background:#eef4ff;color:var(--blue)}.search-option b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-option span{font-size:11px;color:var(--muted);white-space:nowrap}.search-option-empty{padding:13px 10px;color:var(--muted);font-size:12px}

/* v6 homepage command center: prioritize action, bottleneck, risk, and recent plans */
.home-date-note{margin-left:auto;color:var(--muted);font-size:11px;align-self:center;white-space:nowrap}
.home-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.home-kpi{min-height:112px;padding:17px 18px;position:relative;overflow:hidden}
.home-kpi:after{content:"";position:absolute;right:-28px;bottom:-36px;width:92px;height:92px;border-radius:50%;background:#f4f7fc}
.home-kpi .label,.home-kpi .num,.home-kpi .foot{position:relative;z-index:1}
.home-kpi .num{font-size:28px;line-height:1.15;margin:11px 0 7px}
.home-kpi .foot{font-size:11px}
.orange-text{color:#d97706!important}.green-text{color:#078653!important}.red-text{color:#c03535!important}
.home-command-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:20px;margin-top:20px}
.home-bottom-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.55fr);gap:20px;margin-top:20px}
.home-panel{min-width:0}
.home-task-list{display:flex;flex-direction:column}
.home-task-row{display:grid;grid-template-columns:34px minmax(0,1fr) 92px auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #edf1f5}
.home-task-row:last-child{border-bottom:0;padding-bottom:2px}
.home-task-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#edf4ff;color:#2563eb;font-weight:850;font-size:13px}
.home-task-icon.receipt{background:#eefbf5;color:#078653}.home-task-icon.prepare{background:#fff8e8;color:#b77908}.home-task-icon.product{background:#f4efff;color:#7544c5}
.home-task-main{min-width:0}.home-task-main b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-task-owner{font-size:10px;color:var(--muted);line-height:1.4}.home-task-owner span{display:block;color:var(--text);font-weight:750;margin-top:2px}.home-task-action{height:32px;padding:0 10px;white-space:nowrap;color:var(--blue);border-color:#cfe0ff}
.home-stage-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-top:14px}
.home-stage{min-width:0;border:1px solid #e8edf4;border-radius:9px;background:#fbfcfe;padding:11px 10px}.home-stage.base{border-color:#cfe0ff;background:#f7faff}.home-stage-head{display:flex;justify-content:space-between;gap:5px;align-items:baseline}.home-stage-head b{font-size:11px}.home-stage-head span{font-size:10px;color:var(--muted);white-space:nowrap}.home-stage-bar{height:7px;border-radius:99px;background:#e8edf4;overflow:hidden;margin:13px 0 8px}.home-stage-bar i{display:block;height:100%;border-radius:inherit;background:var(--blue)}.home-stage.container-stage .home-stage-bar i{background:#0f9f6e}.home-stage-foot{display:flex;justify-content:space-between;gap:4px;color:var(--muted);font-size:9px}.home-stage-foot span:first-child{color:var(--text);font-weight:750}
.home-bottleneck{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;margin-top:14px;border:1px solid}.home-bottleneck>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:900}.home-bottleneck.warn{background:#fffaf0;border-color:#f6ddb0}.home-bottleneck.warn>span{background:#ffe9b6;color:#a76a00}.home-bottleneck.ok{background:#f0fbf6;border-color:#bdebd8}.home-bottleneck.ok>span{background:#c8f2df;color:#087653}.home-bottleneck>div{min-width:0;flex:1}.home-bottleneck b{font-size:12px}.home-bottleneck .ghost{height:31px;padding:0 10px;white-space:nowrap}
.home-table-wrap{overflow:auto}.home-risk-table,.home-container-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px}.home-risk-table th,.home-risk-table td,.home-container-table th,.home-container-table td{padding:11px 8px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-risk-table th,.home-container-table th{font-size:10px;color:var(--muted);font-weight:750;background:#f8fafc}.home-risk-table th:nth-child(1){width:12%}.home-risk-table th:nth-child(2){width:17%}.home-risk-table th:nth-child(3){width:22%}.home-risk-table th:nth-child(4){width:34%}.home-risk-table th:nth-child(5){width:15%}.home-container-table th:nth-child(1){width:21%}.home-container-table th:nth-child(2){width:18%}.home-container-table th:nth-child(3){width:11%}.home-container-table th:nth-child(4){width:11%}.home-container-table th:nth-child(5){width:14%}.home-container-table th:nth-child(6){width:14%}.home-container-table th:nth-child(7){width:11%}.home-container-table td:first-child{white-space:normal}.home-container-table td .sub{margin-top:3px}.risk-level{display:inline-flex;align-items:center;justify-content:center;min-width:26px;padding:3px 6px;border-radius:999px;font-size:10px;font-weight:850}.risk-level.high{color:#b42318;background:#fee4e2}.risk-level.medium{color:#a15c00;background:#fff0c9}.home-good-state{display:flex;align-items:center;gap:11px;min-height:74px;padding:4px 0}.good-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#c8f2df;color:#087653;font-weight:900}.home-good-state b{font-size:12px}
@media(max-width:1280px){.home-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-stage-flow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.home-command-grid,.home-bottom-grid{grid-template-columns:1fr}.home-task-row{grid-template-columns:34px minmax(0,1fr) auto}.home-task-owner{display:none}.home-date-note{display:none}}
@media(max-width:620px){.home-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-stage-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.home-task-action{padding:0 8px}.home-panel{padding:14px}.home-risk-table,.home-container-table{min-width:620px}}
