:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.4;color:#273348;background:#f5f6f8;--blue:#285cb7;--line:#dce1e8;--muted:#7b8493}
*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #d5dbe4;border-radius:3px;background:#fff;color:#344255;padding:5px 11px;height:30px;font-size:13px;white-space:nowrap}button:hover{background:#f0f3f8;border-color:#b3bed0}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.primary:hover{background:#214e9f}button:focus-visible{outline:2px solid #84a4df;outline-offset:2px}input,select{border:1px solid #d5dbe4;background:#fff;color:#273348;border-radius:3px;padding:4px 7px;height:29px;min-width:0;font-size:13px}input:focus,select:focus{outline:1px solid var(--blue);border-color:var(--blue)}input::placeholder{color:#b1b7c1}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}h1,h2,p{margin:0}h1{font-size:17px;font-weight:600}h2{font-size:16px;font-weight:600}.workspace{display:flex;height:100vh;min-height:420px}.sidebar{width:162px;flex-shrink:0;background:#f4f6f9;border-right:1px solid #dce1e8;display:flex;flex-direction:column;padding:19px 10px 12px}.brand{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:650;padding:0 8px 23px;white-space:nowrap}.brand-icon{display:grid;place-items:center;background:#285cb7;color:#fff;width:31px;height:34px;border-radius:4px;font-size:21px;font-weight:400}.brand small{display:block;color:#9199a7;font-size:11px;font-weight:400;margin-top:3px}.sidebar nav{display:grid;gap:4px}.nav-item{border:0;display:flex;align-items:center;gap:10px;background:none;height:38px;width:100%;font-size:14px;text-align:left;padding:8px 13px;color:#5c6779;border-radius:4px}.nav-item.active{background:#e4ebf8;color:#285cb7;font-weight:550}.nav-icon{font-size:19px;line-height:1;font-weight:400}.sidebar-foot{margin-top:auto;border-top:1px solid #dce1e8;padding:12px 8px 0;color:#9299a5;display:flex;align-items:center;justify-content:space-between;font-size:11px}.link-button{border:0;background:none;padding:0;height:auto;color:var(--blue);font-size:12px}.main{flex:1;min-width:0;display:flex;flex-direction:column;padding:0 20px;background:#fff}.page-header{height:59px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4e7ec}.page-header #save-state{font-size:12px;color:var(--muted)}.page-header #save-state.dirty{color:#a07833}#content{display:flex;flex-direction:column;flex:1;min-height:0;padding-top:12px}.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px;min-height:30px;flex-shrink:0}.toolbar .separator{height:19px;width:1px;background:#dfe4eb;margin:0 4px}.toolbar .spacer{margin-left:auto}.sheet-fields{display:flex;align-items:center;gap:17px;flex-wrap:wrap;margin:1px 0 13px;padding:0;flex-shrink:0}.sheet-fields label,.filter-fields label{display:flex;gap:8px;align-items:center;white-space:nowrap;font-size:12px;color:#758094}.sheet-fields .sheet-name{width:208px;color:#2f3f55}.sheet-fields input[type=date]{width:133px}.sheet-fields .default-field{width:93px}.filter-fields{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.filter-fields input[type=month]{width:131px}.filter-fields select{min-width:108px}.search-input{width:200px}.grid-container{flex:1;min-height:0;overflow:auto;border:1px solid #d4dbe5;position:relative;background:#fff}.grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:13px}.grid.delivery-grid{min-width:1034px}.grid th{position:sticky;top:0;z-index:2;background:#f0f3f7;color:#5f6b7c;font-size:12px;font-weight:500;height:29px;text-align:left;border-right:1px solid var(--line);border-bottom:1px solid #cbd4e1;padding:4px 8px;white-space:nowrap}.grid th:last-child{border-right:0}.grid td{height:29px;border-right:1px solid #e0e4eb;border-bottom:1px solid #e0e4eb;padding:0;background:white;vertical-align:middle;overflow:hidden;font-variant-numeric:tabular-nums}.grid td:last-child{border-right:0}.grid .row-number{position:sticky;left:0;z-index:1;text-align:center;background:#f6f7fa;color:#8a94a3;font-size:11px;cursor:pointer;user-select:none}.grid th.row-number{z-index:3;background:#edf1f6;color:#7d8898}.grid tr.selected .row-number{background:#e2eaf9;color:#285cb7}.grid tr.selected td:not(.row-number){background:#f8faff}.grid td:focus-within{box-shadow:inset 0 0 0 1.5px #285cb7;position:relative;z-index:1}.grid input{width:100%;height:28px;border:0;border-radius:0;padding:4px 8px;background:transparent;outline:none;font-size:13px}.grid input:focus{border:0;outline:none}.grid .text-cell{padding:4px 8px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.grid td.readonly{background:#fafbfd;color:#6e7b8d}.grid td.numeric,.grid input.numeric{text-align:right}.grid .row-number button{width:100%;height:28px;border:0;background:none;font-size:11px;color:inherit;padding:0}.grid .missing{color:#bc8735;font-size:12px}.grid .cell-link{display:block;font-size:13px;text-align:left;padding:4px 8px;height:28px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;color:#285cb7;background:none;border:0}.grid.product-grid{min-width:680px}.grid.monthly-grid{min-width:1034px}.grid .empty-row td{height:29px}.total-row{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:34px;padding:5px 12px;border:1px solid #d4dbe5;border-top:0;background:#f7f9fc;color:#697487;font-size:12px;flex-shrink:0}.total-row strong{font-size:14px;color:#273e63;min-width:102px;text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.total-row .missing-total{margin-right:auto;color:#b07f2d}.total-row .line-count{margin-right:auto;color:#8b94a3}.summary-line{display:flex;align-items:center;gap:25px;margin:0 0 12px;min-height:26px;font-size:13px;color:#7d8796;flex-wrap:wrap;flex-shrink:0}.summary-line strong{color:#33435b;margin-left:8px;font-weight:600}.summary-line .sum-amount{color:#285cb7;font-size:17px}.summary-line .missing-summary{color:#b17f2e;font-size:12px}.pager{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:38px;flex-shrink:0;font-size:12px;color:#8a94a3}.pager>div{display:flex;align-items:center;gap:7px}.pager button{height:26px;padding:3px 9px;font-size:12px}#statusbar{min-height:33px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:#9299a5;flex-shrink:0}.empty{padding:35px 18px!important;text-align:center!important;color:#8994a3}.error{color:#b14747;font-size:12px;margin:10px 0}.inline-error{font-size:12px;color:#b14747;margin:0 0 8px;flex-shrink:0}.loading{padding:40px;text-align:center;color:#8691a3}.product-note{font-size:11px;color:#9299a5;margin-left:auto}.toolbar select{height:30px}#suggestions{position:fixed;z-index:40;background:#fff;border:1px solid #b8c6de;box-shadow:0 4px 14px #23364e20;border-radius:2px;max-height:285px;overflow:auto;width:440px;font-size:13px}.suggestion-header,.suggestion{display:grid;grid-template-columns:minmax(155px,1fr) 90px 34px 66px;gap:7px;align-items:center;padding:6px 9px;line-height:1.35}.suggestion-header{position:sticky;top:0;background:#f0f3f8;color:#8390a3;font-size:11px;z-index:1;border-bottom:1px solid #e5e9f0}.suggestion{width:100%;height:auto;background:white;border:0;border-bottom:1px solid #f0f2f5;border-radius:0;text-align:left;font-size:13px;color:#34455c}.suggestion>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion .numeric{text-align:right;font-variant-numeric:tabular-nums}.suggestion.active,.suggestion:hover{background:#eaf0fc}.suggestion-empty{padding:12px 9px;font-size:12px;color:#8390a3}dialog{border:1px solid #d8dee8;border-radius:5px;padding:0;width:min(720px,calc(100vw - 28px));max-height:80vh;box-shadow:0 15px 55px #28364b24;color:#344256}dialog::backdrop{background:#28364b35}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #e2e7ee;background:#fafbfd}.close-button{font-size:23px;line-height:1;border:0;padding:0 5px;height:24px;background:none;color:#8d97a5}.dialog-body{padding:16px 18px;max-height:60vh;overflow:auto;font-size:13px}.dialog-search{width:100%;margin-bottom:12px}.dialog-footer{padding:12px 18px;border-top:1px solid #e2e7ee;display:flex;justify-content:flex-end;gap:8px}#confirm-dialog{width:400px}.file-table{width:100%;border-collapse:collapse;font-size:13px}.file-table th{text-align:left;color:#7a8798;font-size:12px;font-weight:400;background:#f4f6f9}.file-table th,.file-table td{border-bottom:1px solid #e6e9ef;padding:7px 8px}.file-table .numeric{text-align:right}#toast{position:fixed;bottom:17px;left:50%;transform:translateX(-50%);z-index:70;padding:9px 16px;border-radius:4px;background:#33435b;color:white;font-size:13px;max-width:85vw}#auth{min-height:100vh;display:grid;place-items:center}.login-box{width:325px;padding:29px;background:white;border:1px solid #dce2ec;border-radius:5px;display:grid;gap:13px}.login-box h1{font-size:22px}.login-box p{font-size:13px;color:#778497}.login-box label{display:grid;gap:5px;font-size:13px}.login-box input{height:34px}.login-box .primary{height:34px}.login-box .error{color:#b14747}#print-area{display:none}.grid-container.busy{pointer-events:none;opacity:.7}.row-deleted{display:none}
.grid th.filterable{padding:0}.column-filter-button{display:flex;align-items:center;justify-content:space-between;gap:7px;width:100%;height:28px;padding:4px 8px;border:0;border-radius:0;background:transparent;text-align:left;font-size:12px;color:#5f6b7c}.column-filter-button svg{flex-shrink:0;color:#8d98a8}.column-filter-button.filtered,.column-filter-button.filtered svg{color:#285cb7}.column-filter-button.filtered{background:#e9f0fc}.column-filter-button:hover{background:#e6ecf6}.column-filter-popover{position:fixed;z-index:55;background:#fff;border:1px solid #bcc9dc;border-radius:3px;box-shadow:0 5px 18px #29394f22;padding:11px;font-size:12px;color:#405168;max-height:calc(100vh - 16px);overflow:auto}.filter-menu-title{font-weight:600;margin-bottom:9px}.filter-sort-actions{display:flex;gap:5px;margin-bottom:9px}.filter-sort-actions button{font-size:12px;height:27px;padding:3px 7px}.filter-sort-actions button:last-child{margin-left:auto}.column-filter-popover input[type=search]{width:100%;height:28px;margin-bottom:7px}.filter-select-all,.filter-value-option{display:flex;align-items:center;gap:7px;min-height:26px;padding:3px 5px;cursor:pointer}.column-filter-popover input[type=checkbox]{height:13px;width:13px;flex-shrink:0;padding:0;margin:0;accent-color:#285cb7}.filter-select-all{border-bottom:1px solid #e4e9f0;margin-bottom:3px}.filter-value-list{height:174px;overflow:auto;border-bottom:1px solid #e4e9f0}.filter-value-option:hover{background:#f0f4fa}.filter-value-option span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-menu-footer{display:flex;align-items:center;gap:5px;margin-top:9px}.filter-menu-footer>span{margin-right:auto;color:#8a94a4;font-size:11px}.filter-menu-footer button{height:27px;padding:3px 9px;font-size:12px}.filter-menu-error{color:#b14747;font-size:11px;margin-top:4px}.filter-menu-error:empty{display:none}.filter-no-values{padding:16px 5px;color:#8a94a4}.price-filter-range{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:#95a0b0}.price-filter-range input{width:calc(50% - 12px);height:27px;font-size:12px}.monthly-basis{margin-left:auto;font-size:11px;color:#8a95a5}.chart-strip{overflow:hidden;flex-shrink:0;margin-bottom:12px;border:1px solid #dce3ec;background:#fff}.monthly-charts{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:minmax(0,1fr);width:100%;height:220px;transform-origin:top left}.monthly-chart{min-width:0;min-height:0;padding:11px 13px 8px;border-left:1px solid #e4e9f1;display:flex;flex-direction:column}.monthly-chart:first-child{border-left:0}.monthly-chart h2{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:12px;font-weight:550;margin-bottom:5px;color:#405168}.monthly-chart h2 span{font-size:10px;font-weight:400;color:#939ead;white-space:nowrap}.daily-cost-chart{display:block;width:100%;height:164px;flex:1;min-height:0;overflow:visible}.daily-cost-chart text{font-size:10px;fill:#8a95a5}.chart-dot{fill:#3566b8;stroke:white;stroke-width:1.1;cursor:default;outline:none}.chart-dot:hover,.chart-dot:focus,.chart-dot.active{fill:#1b4c9f;stroke:#8eb4ed;stroke-width:4}.ranked-cost-chart{display:flex;flex-direction:column;gap:8px;margin-top:4px;flex:1;justify-content:center}.ranked-cost-chart.eight-bars{gap:5px}.ranked-cost-row{display:grid;grid-template-columns:minmax(70px,1fr) minmax(30px,.8fr) 39px;gap:7px;align-items:center;min-height:17px;font-size:11px;outline:none}.ranked-cost-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6d7b8e}.ranked-cost-track{height:7px;background:#f0f3f8}.ranked-cost-bar{display:block;height:100%;width:0;background:#7295cc;min-width:0}.eight-bars .ranked-cost-bar{background:#81a7ac}.ranked-cost-value{text-align:right;color:#748296;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px}.ranked-cost-row:hover .ranked-cost-bar,.ranked-cost-row:focus .ranked-cost-bar{background:#3566b8}.ranked-cost-row:hover .ranked-cost-label,.ranked-cost-row:focus .ranked-cost-label{color:#285cb7}.chart-empty{display:grid;place-items:center;flex:1;color:#9aa4b2;font-size:12px}
@media(max-width:980px){.sheet-fields{gap:10px}.sheet-fields .sheet-name{width:180px}.sheet-fields .default-field{width:80px}.main{padding:0 14px}.sidebar{width:144px}.brand{font-size:15px;gap:7px;padding-left:5px}.toolbar{gap:5px}.product-note{display:none}}
@media(max-width:640px){.sidebar{width:95px;padding:14px 6px 10px}.brand{gap:6px;font-size:13px;padding:0 3px 19px}.brand-icon{display:none}.brand small{font-size:10px}.nav-item{font-size:12px;padding:8px;gap:6px;height:36px}.nav-icon{font-size:16px}.main{padding:0 10px}.page-header{height:46px}h1{font-size:16px}.page-header #save-state{font-size:11px}.toolbar{gap:4px;margin-bottom:8px}.toolbar button{padding:4px 7px;font-size:12px;height:28px}.toolbar .separator{margin:0 2px}.sheet-fields{gap:8px;margin-bottom:9px}.sheet-fields label{font-size:11px;gap:5px}.sheet-fields .sheet-name{width:143px}.sheet-fields input[type=date]{width:129px}.sheet-fields .default-field{width:72px}.search-input{width:150px}.filter-fields{gap:7px}.filter-fields label{font-size:11px}.filter-fields select{min-width:85px;max-width:115px}.summary-line{gap:10px;font-size:12px}.summary-line .sum-amount{font-size:15px}.summary-line strong{margin-left:4px}.sidebar-foot{font-size:10px;padding:10px 3px 0;display:block}.sidebar-foot button{margin-top:5px}#status-right{display:none}#suggestions{max-height:260px}.suggestion-header,.suggestion{grid-template-columns:minmax(85px,1fr) 65px 24px 55px;padding:6px;gap:4px;font-size:12px}.pager{font-size:11px}.pager button{font-size:11px;padding:3px 5px}.total-row{gap:10px}.total-row strong{font-size:13px}#content{padding-top:9px}}
@media print{body{background:white}.workspace,#auth,dialog,#toast,#suggestions{display:none!important}#print-area{display:block;padding:8px;font-size:11px}#print-area h1{font-size:19px;text-align:center;margin-bottom:13px}#print-area p{margin:8px 0}#print-area table{width:100%;border-collapse:collapse;font-size:11px}#print-area th,#print-area td{border:1px solid #9da6b3;padding:5px;color:#000;text-align:left}#print-area .numeric{text-align:right}#print-area .print-total{text-align:right;font-size:14px;margin-top:12px}thead{display:table-header-group}tr{break-inside:avoid}}

.chart-hit{outline:none;cursor:default;pointer-events:all}.chart-tooltip{position:fixed;z-index:90;pointer-events:none;display:grid;gap:5px;padding:10px 13px;max-width:min(300px,calc(100vw - 16px));background:#fff;border:1px solid #c9d4e3;border-radius:4px;box-shadow:0 4px 15px #26395125;color:#34445c;font-size:12px}.chart-tooltip-label{overflow-wrap:anywhere;color:#778499;font-size:11px}.chart-tooltip strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:#285cb7}.chart-tooltip-note{color:#ad853f;font-size:11px}

.grid .product-name-cell{position:relative;padding-right:39px}.grid .product-history-button{position:absolute;right:2px;top:3px;height:22px;padding:2px 5px;border:0;background:transparent;font-size:11px;color:#6280ad}.grid .product-history-button:hover{background:#e9f0fc;color:#285cb7}#product-history-dialog{width:min(870px,calc(100vw - 28px));max-height:88vh}#product-history-dialog .dialog-body{max-height:72vh;padding:15px 18px}#product-history-subtitle{font-size:11px;color:#8a95a5;margin-top:5px}.history-summary{display:flex;gap:27px;align-items:center;flex-wrap:wrap;margin-bottom:14px;font-size:12px;color:#8a95a5}.history-summary strong{color:#34465f;font-size:14px;margin-left:9px;font-weight:600;font-variant-numeric:tabular-nums}.history-unsaved{font-size:12px;color:#ad853f;margin-bottom:10px}.history-price-section{border:1px solid #e1e7ef;padding:11px 13px;margin-bottom:17px;overflow:hidden}.history-price-section h3,.history-record-section h3{font-size:13px;font-weight:550;color:#40516a;margin:0 0 7px;display:flex;justify-content:space-between}.history-price-section h3 span{font-size:11px;color:#8e9aaa;font-weight:400}.saved-price-chart{display:block;width:100%;height:auto;max-height:215px}.saved-price-chart text{font-size:11px;fill:#8a95a5}.history-note{font-size:11px;color:#97a1af;margin-top:4px}.history-chart-empty{padding:42px 12px;text-align:center;color:#98a3b2;font-size:12px}.history-record-table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:12px}.history-record-table th{background:#f3f6fa;color:#7c899a;text-align:left;font-weight:400;padding:7px 8px;border-bottom:1px solid #dce3ed}.history-record-table td{padding:8px;border-bottom:1px solid #e6ebf2;vertical-align:top;color:#607088;overflow-wrap:anywhere}.history-record-table th:first-child{width:160px}.history-record-table th:nth-child(2){width:90px}.change-detail{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;line-height:1.6}.change-field{min-width:52px;color:#8a95a5}.change-before{color:#96a0ae}.change-arrow{color:#a8b1be}.change-after{color:#3e5879}
@media(max-width:640px){.history-record-table th:first-child{width:105px}.history-record-table th:nth-child(2){width:62px}#product-history-dialog .dialog-body{padding:12px}.history-price-section{padding:10px 6px}.history-summary{gap:15px}.history-summary strong{font-size:13px}}

.sheet-state-tag{display:inline-block;vertical-align:middle;margin-left:7px;padding:1px 5px;background:#f3f0e8;color:#9b824e;font-size:10px;white-space:nowrap}.sheet-state-tag.posted{background:#eaf1fc;color:#5e7cac}

.history-summary #edit-product-detail{margin-left:auto}.product-edit-form{margin-bottom:16px;border:1px solid #d7e1ef;background:#f9fbff;padding:13px}.product-edit-fields{display:grid;grid-template-columns:2fr 1.3fr .7fr 1fr;gap:11px}.product-edit-fields label{display:grid;gap:6px;color:#7b889a;font-size:12px}.product-edit-fields input{width:100%}.product-edit-bottom{display:flex;align-items:center;gap:8px;margin-top:13px;flex-wrap:wrap}.product-active-check{display:flex;align-items:center;gap:6px;color:#8491a3;font-size:11px}.product-active-check input{height:13px;width:13px;accent-color:#285cb7;margin:0;padding:0}.product-price-change{font-size:11px;color:#6b819e;margin-left:auto;font-variant-numeric:tabular-nums}.saved-price-chart .price-history-bar{fill:#7295cc;stroke:none}.saved-price-chart .price-history-bar.active{fill:#285cb7;stroke:none}.saved-price-chart .price-bar-label{fill:#405d89;font-size:12px}.product-edit-form .inline-error{margin:10px 0 0}
@media(max-width:640px){.product-edit-fields{grid-template-columns:1fr 1fr}.product-edit-bottom{gap:6px}.product-price-change{width:100%;margin-left:0}.product-edit-bottom button:first-of-type{margin-left:auto}}
