:root{color:#18221c;font-synthesis:none;text-rendering:optimizelegibility;background:#eef2ed;font-family:Microsoft YaHei,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,select{font:inherit}button{color:#1d2d22;cursor:pointer;background:#fff;border:1px solid #cfd8d0;border-radius:7px;align-items:center;gap:8px;min-height:38px;padding:0 13px;font-weight:700;display:inline-flex}button:hover{border-color:#7c9781}button:disabled{cursor:not-allowed;opacity:.65}button.primary{color:#fff;background:#1f6b43;border-color:#1f6b43}input,select{color:#1d2d22;background:#fff;border:1px solid #cfd8d0;border-radius:7px;width:100%;min-height:38px;padding:0 10px}input:focus,select:focus{border-color:#2d7a4a;outline:2px solid #2d7a4a24}.app-frame{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#e9f1e8;background:#16251a;flex-direction:column;gap:28px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:6px 8px 14px;display:flex}.brand svg{color:#9bd18f}.brand strong,.brand span{display:block}.brand strong{font-size:17px}.brand span{color:#9bac9e;margin-top:3px;font-size:12px}nav{gap:6px;display:grid}nav button{color:#c9d7cd;background:0 0;border:0;border-radius:7px;justify-content:flex-start;align-items:center;gap:10px;width:100%;min-height:42px;padding:11px 12px;text-decoration:none;display:flex}nav button.active,nav button:hover{color:#fff;background:#28422f}.workspace{gap:18px;padding:22px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:20px;display:flex}.topbar p{color:#647268;margin-top:6px;font-size:14px}.eyebrow{color:#56715d;margin-bottom:5px;font-size:13px;font-weight:800;display:block}h1,h2,p{margin:0}h1{color:#18241b;font-size:28px;line-height:1.2}h2{color:#203127;font-size:18px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat-card,.panel{background:#fff;border:1px solid #d7dfd7;border-radius:8px;box-shadow:0 8px 24px #23372812}.stat-card{grid-template-columns:42px minmax(0,1fr);gap:12px;min-height:118px;padding:18px;display:grid}.stat-icon{color:#1f6b43;background:#eaf3e9;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-card p{color:#657468;font-size:13px;font-weight:700}.stat-card strong{margin:7px 0;font-size:25px;line-height:1.15;display:block}.stat-card span{color:#697a6d;font-size:12px;display:block}.content-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:16px;display:grid}.page-view{gap:16px;display:grid}.dashboard-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:16px;display:grid}.panel{min-width:0;padding:16px}.panel.wide{grid-column:1/-1}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.panel-heading p{color:#647268;margin-top:5px;font-size:13px}.import-box{background:#eef5ee;border:1px dashed #9eb5a2;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:14px;display:flex}.file-input-hidden{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.import-box strong,.import-box span{display:block}.import-box span,.import-status{color:#5f7165;margin-top:3px;font-size:13px}.import-status{border-left:3px solid #8aa28e;flex:220px;margin-top:0;padding-left:10px;line-height:1.45}.import-status.success{color:#1f6a38;border-color:#2f7d46}.import-status.error{color:#a53636;border-color:#c04747}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:820px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e1e7e1;padding:11px 10px;font-size:13px}th{color:#526358;background:#f6f8f5;font-size:12px;font-weight:800}tbody tr:hover{background:#fafcf9}.price-input{width:96px;min-height:32px}.chip{border-radius:999px;justify-content:center;min-width:58px;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.chip-ok{color:#22713f;background:#e6f4e7}.chip-warn{color:#876000;background:#fff3d4}.chip-danger{color:#9d2b19;background:#ffe5df}.exception-list,.ledger-list{gap:10px;display:grid}.form-grid{background:#f6f8f5;border:1px solid #e1e8e1;border-radius:8px;gap:10px;margin-bottom:12px;padding:12px;display:grid}.system-banner{border-radius:7px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:800}.system-banner.loading{color:#315b72;background:#eef3f7}.system-banner.ready{color:#21633a;background:#eaf5eb}.system-banner.error{color:#a13522;background:#ffe9e3}.compact-form{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-form{background:#f2f7f3;grid-template-columns:repeat(2,minmax(0,1fr))}.dispatch-form{background:#f4f8f5;grid-template-columns:repeat(4,minmax(0,1fr))}.inventory-form{background:#f5f7f2;grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid label{color:#596b5f;gap:5px;font-size:12px;font-weight:800;display:grid}.form-grid button{align-self:end}.form-status{color:#526358;background:#edf3ee;border-left:3px solid #8aa28e;border-radius:6px;grid-column:1/-1;padding:9px 10px;font-size:13px;font-weight:800;line-height:1.45;display:block}.form-status.success{color:#1f6a38;background:#eaf5eb;border-color:#2f7d46}.form-status.error{color:#a53636;background:#ffe9e3;border-color:#c04747}.payment-ledger{border:1px solid #e1e8e1;border-radius:8px;margin-bottom:12px;padding:12px}.mini-heading{color:#24382a;align-items:center;gap:8px;margin-bottom:9px;display:flex}.mini-heading span{color:#657468;margin-left:auto;font-size:12px}.payment-list{gap:8px;display:grid}.payment-row{background:#fbfcfa;border:1px solid #edf1ed;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;display:grid}.payment-row strong,.payment-row span,.payment-row b,.payment-row small{display:block}.payment-row span,.payment-row small{color:#657468;font-size:12px}.payment-row small{grid-column:1/-1}.exception-card{border:1px solid #e4d5c7;border-radius:8px;gap:10px;padding:12px;display:grid}.exception-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.severity{color:#7c5c0b;background:#fff4d8;border-radius:5px;padding:4px 7px;font-size:12px;font-weight:900}.severity.high{color:#9a2517;background:#ffdfd8}.impact{color:#7a4b22;font-size:13px;font-weight:800}.reason-block{background:#faf7f1;border-radius:7px;padding:10px}.reason-block span{color:#6e6253;margin-bottom:6px;font-size:12px;font-weight:900;display:block}.reason-block ul{gap:4px;margin:0;padding-left:18px;display:grid}.reason-block li{font-size:13px}.suggestion{color:#314536;align-items:flex-start;gap:7px;font-size:13px;line-height:1.5;display:flex}.suggestion svg{color:#2f7a49;flex:none;margin-top:2px}.ledger-row{border:1px solid #e1e7e1;border-radius:8px;grid-template-columns:minmax(150px,1.3fr) repeat(2,minmax(92px,1fr));align-items:stretch;gap:12px;padding:12px;display:grid}.ledger-row span,.ledger-row strong,.ledger-row b{display:block}.ledger-row span{color:#657468;margin-bottom:3px;font-size:12px}.ledger-row b,.ledger-row strong{color:#1d2d22;overflow-wrap:anywhere;font-size:14px}.ledger-row>div:first-child{grid-column:1/-1}.danger-text{color:#b3301e!important}.row-danger{background:#fdf3f1;border-color:#d98b80}.crosscheck{border-top:1px dashed #e1e7e1;grid-column:1/-1;padding-top:8px}.crosscheck-row{align-items:center;gap:8px;display:flex}.crosscheck-row .price-input{width:120px}.crosscheck-row button{min-height:32px;padding:0 14px}.crosscheck em{font-size:12px;font-style:normal;font-weight:700}.crosscheck-ok{color:#1f6b43}.material-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.material-summary section{background:#f6f8f5;border:1px solid #e1e8e1;border-radius:8px;gap:4px;padding:12px;display:grid}.material-summary strong,.material-summary span,.material-summary b,.material-summary small{display:block}.material-summary span,.material-summary small{color:#617064}.notification-panel{align-self:start}.summary-list{gap:10px;display:grid}.summary-list div,.settings-grid section{background:#f6f8f5;border:1px solid #e1e8e1;border-radius:8px;gap:5px;padding:13px;display:grid}.summary-list span,.settings-grid span{color:#657468;font-size:13px}.summary-list strong,.settings-grid strong{color:#1d2d22;font-size:16px}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.message-preview{color:#eaf2e9;background:#1b2b20;border-radius:8px;gap:8px;padding:14px;display:grid}.message-preview strong{font-size:16px}.message-preview span,.message-preview p{color:#c9d7cd;font-size:13px;line-height:1.55}@media (width<=1100px){.app-frame{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}nav button{justify-content:center}.content-grid,.dashboard-grid,.settings-grid,.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.workspace{padding:14px}.topbar,.panel-heading,.import-box{flex-direction:column;align-items:stretch}h1{font-size:23px}.sidebar{padding:16px 12px}.sidebar nav{grid-template-columns:1fr 1fr}.stats-grid,.content-grid,.dashboard-grid,.settings-grid,.material-summary,.ledger-row,.compact-form,.dispatch-form,.inventory-form,.payment-form{grid-template-columns:1fr}button{justify-content:center;width:100%}}.row-void{opacity:.55}.row-void td{text-decoration:line-through}.muted-text{color:#97a39a;font-size:12px}.link-button{color:#b3301e;cursor:pointer;background:0 0;border:none;width:auto;min-height:auto;padding:0;font-weight:700}.link-green{color:#1f6b43}.ledger-row>div:first-child .link-button{margin-top:4px;margin-right:14px}.empty-hint{color:#657468;padding:6px 0;font-size:13px}.modal-overlay{z-index:50;background:#14211973;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;gap:12px;width:100%;max-width:380px;padding:22px;display:grid;box-shadow:0 18px 48px #14211947}.modal-wide{max-width:640px}.modal-wide .table-wrap{max-height:52vh;overflow-y:auto}.modal h3{margin:0}.modal-sub{color:#526358;margin:0;font-size:13px}.modal label{gap:5px;font-size:13px;display:grid}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.modal-actions button{width:auto}
