:root{color:#17211d;background:#f4f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;-webkit-text-size-adjust:100%}button,input{font:inherit}.app-shell{min-height:100vh;padding:32px;background:linear-gradient(180deg,rgba(49,119,91,.08),transparent 260px),#f4f7f5}.boot-screen,.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,rgba(49,119,91,.08),transparent 260px),#f4f7f5}.boot-screen{color:#516159;font-weight:700}.login-panel{width:min(420px,100%);border:1px solid #dbe4e0;border-radius:8px;background:#fff;padding:28px;display:grid;gap:18px;box-shadow:0 18px 50px #2440341f}.login-panel p{margin-top:8px;color:#62706a}.login-panel label{display:grid;gap:8px;color:#33443d;font-weight:700}.login-panel input{min-height:42px;border:1px solid #cdd9d3;border-radius:8px;padding:0 12px;color:#24362f}.login-panel button,.user-box button{min-height:40px;border:1px solid #247657;border-radius:8px;background:#247657;color:#fff;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:700}.login-panel button:disabled{cursor:not-allowed;opacity:.7}.login-error{border:1px solid #f0beb5;border-radius:8px;background:#fff4f2;color:#9f2d1e!important;padding:10px 12px;font-size:14px}.workspace{width:min(1180px,100%);margin:0 auto}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.2}h2{font-size:22px}h3{font-size:16px;line-height:1.3}.topbar p,.result-head p,.upload-copy,.notice span{color:#62706a}.topbar p{margin-top:8px}.status-pill{flex:0 0 auto;border:1px solid #cfd9d4;border-radius:999px;padding:8px 12px;background:#fff;color:#33443d;font-size:14px}.user-box{flex:0 0 auto;display:flex;align-items:center;gap:10px;color:#33443d;font-size:14px}.user-box span{border:1px solid #cfd9d4;border-radius:999px;padding:8px 12px;background:#fff}.user-box button{min-height:36px;padding:0 12px}.upload-zone{width:100%;min-height:210px;border:1.5px dashed #98aba1;border-radius:8px;background:#fff;color:#263a32;display:grid;place-items:center;align-content:center;gap:10px;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.upload-zone:hover,.upload-zone.dragging{border-color:#247657;background:#eef8f3;transform:translateY(-1px)}.upload-title{font-size:20px;font-weight:700}.upload-copy{font-size:14px}.query-panel{margin-top:16px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.query-panel h2{font-size:18px}.query-panel p{margin-top:4px;color:#62706a;font-size:14px}.query-controls{display:flex;align-items:center;gap:10px}.query-controls input{min-height:38px;border:1px solid #cdd9d3;border-radius:8px;padding:0 10px;color:#24362f}.query-controls button{min-height:38px;border:1px solid #247657;border-radius:8px;background:#247657;color:#fff;padding:0 13px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700}.query-controls button:disabled{cursor:not-allowed;opacity:.7}.query-controls .delete-btn{border-color:#c64b3c;background:#c64b3c}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notice{margin-top:18px;display:flex;gap:10px;align-items:flex-start;border-radius:8px;padding:14px 16px}.error-box{background:#fff4f2;color:#9f2d1e;border:1px solid #f0beb5}.notice div{display:grid;gap:4px}.result-panel{margin-top:24px;display:grid;gap:18px}.result-panel>.query-panel{margin-top:0}.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #d9e2de;padding-bottom:14px}.result-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.static-btn{background:#fff;border-color:#247657;color:#16543d}.report-page{display:grid;gap:18px}.report-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border:1px solid #dbe4e0;border-radius:8px;background:#fff;padding:16px}.report-page-head h2{color:#10291f;font-size:22px}.report-page-head p{margin-top:4px;color:#62706a;font-size:14px}.back-btn{min-height:38px;border:1px solid #cdd9d3;border-radius:8px;background:#fff;color:#24362f;padding:0 12px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700}.user-order-chart{border:1px solid #dbe4e0;border-radius:8px;background:#fff;padding:16px;display:grid;gap:12px}.user-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #dbe8e2;padding-bottom:12px}.user-chart-head h3{position:relative;color:#10291f;font-size:21px;font-weight:800;padding-left:12px}.user-chart-head h3:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:999px;background:#2f7d9a}.user-chart-head p{margin-top:4px;color:#62706a;font-size:14px}.user-chart-head span{flex:0 0 auto;border:1px solid #d2e4dd;border-radius:999px;background:#f2f8f5;color:#247657;padding:7px 10px;font-size:13px;font-weight:800}.user-chart-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:2px}.user-chart-scroll svg{height:280px;display:block}.user-grid-line{stroke:#e8efeb;stroke-width:1}.user-axis{stroke:#c8d6d0;stroke-width:1.2}.user-axis-label,.user-name-label{fill:#66756e;font-size:12px}.user-order-bar{fill:#2f7d9a;transition:fill .18s ease,opacity .18s ease}.user-order-bar.active{fill:#1f5f75}.user-chart-tooltip{pointer-events:none}.user-chart-tooltip rect{fill:#15221dc7}.user-chart-tooltip text{fill:#fff;font-size:13px}.user-chart-tooltip .tooltip-title{font-weight:800}.metric-group-grid{display:grid;grid-template-columns:1fr;gap:14px}.metric-group,.stat-section,.product-section{border:1px solid #dbe4e0;border-radius:8px;background:#fff}.metric-group{padding:16px;display:grid;gap:14px}.metric-group:first-child{align-self:start}.metric-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dbe8e2;padding-bottom:12px}.metric-group-head h3{position:relative;color:#10291f;font-size:21px;font-weight:800;padding-left:12px}.metric-group-head h3:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:999px;background:#247657}.stat-section{padding:16px;display:grid;gap:14px}.stat-section h3{color:#24362f}.tone-market{border-top:3px solid #247657}.tone-company{border-top:3px solid #5a6f94}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-group-pickup .summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.nested-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-card{min-height:96px;border:1px solid #e1e9e5;border-radius:8px;padding:12px;background:#f8fbf9;display:grid;align-content:space-between}.metric-card-primary{background:#eef8f3;border-color:#cfe3da}.metric-card span{color:#5d6b65;font-size:14px}.metric-card strong{color:#16231d;font-size:23px;overflow-wrap:anywhere}.metric-card em{color:#6f7e78;font-style:normal;font-size:13px}.chart-panel{border:1px solid #cfddd6;border-radius:8px;background:linear-gradient(180deg,#fff,#f8fbf9);padding:18px;display:grid;gap:16px;box-shadow:0 8px 22px #1c392d12}.chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.chart-head h3{color:#10291f;font-size:20px;font-weight:800}.chart-head p{margin-top:5px;color:#62706a;font-size:14px}.chart-range{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.chart-range label{display:grid;gap:5px;color:#64716b;font-size:12px}.chart-range input{height:38px;min-width:142px;border:1px solid #cddbd4;border-radius:8px;background:#fff;color:#10291f;padding:0 10px;font:inherit}.chart-range button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border:0;border-radius:8px;background:#1e6e52;color:#fff;padding:0 13px;cursor:pointer;font-weight:700;transition:background .16s ease,transform .16s ease}.chart-range button:hover{background:#185941;transform:translateY(-1px)}.chart-range button:disabled{cursor:not-allowed;opacity:.64;transform:none}.chart-range .ghost-btn{border:1px solid #cddbd4;background:#fff;color:#2f473e}.chart-range .ghost-btn:hover{background:#eff7f3}.chart-legend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.legend-column{display:grid;align-content:start;gap:8px;border:1px solid #dce8e2;border-radius:8px;background:#fff;padding:10px}.legend-column strong{color:#17352a;font-size:13px}.legend-check{display:flex;align-items:center;gap:8px;min-height:30px;color:#344841;font-size:13px;cursor:pointer}.legend-check input{width:16px;height:16px;accent-color:#1e6e52}.legend-swatch{width:11px;height:11px;border-radius:999px;box-shadow:inset 0 0 0 1px #15221d1f}.chart-scroll{overflow-x:auto;border:1px solid #e1e9e5;border-radius:8px;background:linear-gradient(180deg,#eff7f3a3,#ffffffeb),#fff;padding:8px}.amount-chart{min-width:820px;width:100%;height:auto;display:block}.grid line{stroke:#dfe9e4;stroke-width:1}.grid text,.x-label,.axis-title,.bar-type-label{fill:#62706a;font-size:12px}.axis-title{font-weight:700}.bar-type-label{fill:#77857f;font-size:11px}.day-backdrop{fill:#263e350f;stroke:#2476571a;stroke-width:1;rx:10;transition:fill .16s ease,stroke .16s ease}.day-backdrop.active{fill:#2476571f;stroke:#24765752}.amount-chart rect{transition:opacity .18s ease,filter .18s ease,transform .18s ease,x .24s ease,y .24s ease,width .24s ease,height .24s ease}.amount-chart rect.dimmed{opacity:.2}.amount-chart rect.highlighted{opacity:1;filter:drop-shadow(0 4px 7px rgba(23,33,29,.24))}.tooltip{pointer-events:none}.tooltip rect{fill:#11221cb8;stroke:#fff3;stroke-width:1}.tooltip text{fill:#fff;font-size:12px}.tooltip-title{font-weight:700}.chart-empty{min-height:160px;display:grid;place-items:center;border:1px dashed #c9d6d0;border-radius:8px;color:#62706a;background:#fff}.product-grid{display:grid;grid-template-columns:1fr;gap:14px}.report-panel{display:grid;gap:14px}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.report-tabs{display:flex;gap:8px;flex-wrap:wrap}.report-tab,.download-btn{min-height:38px;border:1px solid #cdd9d3;border-radius:8px;background:#fff;color:#24362f;padding:0 12px;cursor:pointer}.report-tab.active{border-color:#247657;background:#eaf6f0;color:#16543d;font-weight:700}.download-btn{display:inline-flex;align-items:center;gap:7px;background:#247657;border-color:#247657;color:#fff;font-weight:700}.product-section{overflow:hidden}.product-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f8fbf9;border-bottom:1px solid #e1e9e5}.product-head div{display:grid;gap:4px}.product-head span{color:#62706a;font-size:13px;white-space:nowrap}.table-wrap{overflow:auto;background:#fff}.report-table{border:1px solid #dbe4e0;border-radius:8px}table{width:100%;border-collapse:collapse;min-width:420px}.report-table table{min-width:1100px}.product-table table{min-width:860px}.remaining-cell{display:grid;grid-template-columns:minmax(66px,auto) 108px;align-items:center;gap:10px}.remaining-cell>span{font-weight:700}.remaining-track{height:8px;border-radius:999px;background:#e5ece8;overflow:hidden}.remaining-track span{display:block;height:100%;border-radius:inherit}.remaining-cell.tone-safe .remaining-track span{background:#2f9d68}.remaining-cell.tone-warn .remaining-track span{background:#d99a28}.remaining-cell.tone-danger .remaining-track span{background:#c84b3f}.remaining-cell.tone-safe>span{color:#20764e}.remaining-cell.tone-warn>span{color:#a46b12}.remaining-cell.tone-danger>span{color:#a9362d}th,td{padding:12px 16px;border-bottom:1px solid #e7eeeb;text-align:left;white-space:nowrap}th{background:#edf3f0;color:#2c4038;font-size:13px}td{color:#22332c}@media(max-width:920px){.app-shell{padding:20px}.topbar{display:grid}.query-panel{display:grid;gap:12px}.query-controls{align-items:stretch;flex-wrap:wrap}.query-controls input,.query-controls button{flex:1 1 140px}.result-head,.report-page-head{display:grid}.result-actions{justify-content:flex-start}.metric-group-grid,.nested-section-grid,.product-grid{grid-template-columns:1fr}.report-toolbar{align-items:stretch}.chart-head{display:grid}.chart-range{justify-content:flex-start}.chart-legend-grid{grid-template-columns:1fr}.chart-scroll,.table-wrap{-webkit-overflow-scrolling:touch}.download-btn{justify-content:center}.metric-grid,.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.app-shell{padding:12px}h1{font-size:24px}h2{font-size:19px}.topbar{margin-bottom:14px}.metric-grid,.summary-metrics{grid-template-columns:1fr}.metric-group,.stat-section{padding:12px}.metric-card{min-height:82px;padding:10px}.metric-card strong{font-size:20px}.chart-panel,.result-panel,.report-page{gap:12px}.chart-panel,.query-panel,.report-page-head{padding:12px}.chart-range{display:grid;grid-template-columns:1fr}.chart-range input,.chart-range button{width:100%}.chart-scroll{padding:6px}.amount-chart{min-width:760px}.product-head{display:grid;padding:12px}th,td{padding:10px 12px}.remaining-cell{grid-template-columns:1fr;gap:6px}.remaining-track{width:112px}.result-actions,.report-toolbar,.report-tabs{display:grid;grid-template-columns:1fr}.download-btn,.back-btn{width:100%;justify-content:center}.upload-zone{min-height:180px;padding:18px}.upload-title{font-size:18px}}
