:root{color:#163b59;background:#f2f9fd;font-family:Inter,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}.shell{grid-template-columns:160px 1fr;min-height:100vh;display:grid}aside{color:#fff;background:linear-gradient(#76c7e7,#4caad4);flex-direction:column;height:100vh;padding:14px 8px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;margin:0 4px 16px;display:flex}.brand>b{color:#238ab9;background:#fff;border-radius:11px;padding:7px;font-size:19px}.brand strong,.brand small,.profile span,.profile small{display:block}.brand small{opacity:.82;margin-top:3px}nav{gap:6px;display:grid}nav button{color:#fff;text-align:left;background:0 0;border:0;border-radius:9px;padding:8px 9px;font-size:13px}nav button.active,nav button:hover{background:#ffffff35}.profile{border-top:1px solid #ffffff42;align-items:center;gap:11px;margin-top:auto;padding:20px 10px;display:flex}.profile>b{color:#238ab9;background:#fff;border-radius:50%;padding:8px}main{min-width:0;padding:16px 20px}header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}header em{letter-spacing:3px;color:#55aada;font-size:11px;font-style:normal;font-weight:800}h1{margin:5px 0 0;font-size:28px}header>span{color:#248250;background:#e4f5ea;border-radius:22px;padding:10px 16px}.cards{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.card,.panel{background:#fff;border:1px solid #dcebf3;border-radius:16px}.card{padding:18px}.card small{color:#718da1}.card b{margin-top:9px;font-size:28px;display:block}.panel{margin-bottom:16px;padding:20px}.title{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.title h2{margin:0;font-size:19px}.title p{color:#718da1;margin:6px 0 0;font-size:13px}button{color:#fff;cursor:pointer;background:#51aedd;border:0;border-radius:9px;padding:10px 15px}button:disabled{opacity:.5}.tabs{text-align:right;margin-bottom:12px}.tabs button{color:#298bbc;background:#fff;border:1px solid #bce0f2;border-radius:20px;margin-left:8px}.tabs button.on{color:#fff;background:#51aedd}.syncbar{color:#2a8d77;background:#e9f7fd;border-radius:12px;justify-content:space-between;margin-bottom:12px;padding:13px 16px;display:flex}.syncbar span{color:#6b91a6;font-size:12px}.table{overflow:auto}.tr{border-top:1px solid #e2eef4;align-items:center;gap:14px;min-width:1050px;padding:13px 4px;display:grid}.tasktable .tr{grid-template-columns:2fr .75fr 1.15fr .8fr .8fr .75fr 1.15fr}.pricetable .tr{grid-template-columns:1.5fr .8fr 1fr 1fr 2fr}.tr.head{color:#7593a8;border:0;font-size:12px}.tr small,.tr b{display:block}.tr small{color:#7892a5;margin-top:4px}.tr a{color:#188cc8;margin-top:4px;font-size:12px;display:block}.status{color:#b36a16;background:#fff1d6;border-radius:18px;padding:5px 9px;font-style:normal}.tr select,.tr input{color:#1674a7;background:#fff;border:1px solid #cfe4ef;border-radius:8px;max-width:150px;padding:9px}.empty{text-align:center;color:#8ba2b2;padding:30px}.tiers{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.tiers>div{background:#f7fbfd;border-radius:13px;padding:14px}.tiers h3 small{color:#7892a5;margin-top:5px;display:block}.tiers article{background:#fff;border:1px solid #dfeaf0;border-radius:10px;margin-top:10px;padding:12px}.tiers article span{float:right}.tiers article p{font-size:13px}.projectwrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:1500px;font-size:13px}table.resizable{table-layout:fixed;width:max-content}th,td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #dfedf4;padding:11px 8px}th{color:#7190a5;font-size:12px;position:relative}td small{color:#7892a5;margin-top:4px;display:block}td input{border:1px solid #cfe4ef;border-radius:7px;width:100%;min-width:80px;padding:8px}.col-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;width:9px;height:100%;position:absolute;top:0;right:-4px}.col-resizer:hover{background:#51aedd55}.project-actions{gap:8px;display:flex}.project-actions button:first-child{color:#268dbd;background:#fff;border:1px solid #a8d7eb}code{overflow-wrap:anywhere;background:#edf6fa;border-radius:8px;margin:8px 0;padding:12px;display:block}@media (max-width:900px){.shell{grid-template-columns:76px 1fr}.brand div,.profile span,nav button:not(.active){font-size:0}.brand{margin-left:0}.cards{grid-template-columns:repeat(2,1fr)}main{padding:20px 12px}.tiers{grid-template-columns:1fr}header>span{display:none}}.result-list{gap:14px;padding:8px 0;display:grid}.result-card{background:#fff;border:1px solid #d9e7f2;border-radius:12px;padding:18px}.result-card-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.result-card h3{color:#123f61;margin:0 0 6px}.result-card p{color:#49677e;margin:14px 0;line-height:1.6}.result-meta{color:#6e8799;gap:24px;font-size:13px;display:flex}.result-modal{width:calc(100vw - 80px);max-width:1200px}.result-modal .title{align-items:flex-start}.result-table-wrap{max-height:65vh;overflow:auto}.result-table-wrap td small{color:#6e8799;margin-top:4px;line-height:1.4;display:block}.level-guide{color:#315e76;background:#eef8fc;border-radius:8px;margin:8px 0 14px;padding:12px 14px;font-size:13px;line-height:1.6}.result-filters{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.result-filters input,.result-filters select{color:#173f5d;background:#fff;border:1px solid #c9dfec;border-radius:7px;padding:9px 12px}.result-table{table-layout:fixed;min-width:1800px}.result-table th,.result-table td{white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;max-width:170px;height:44px;padding:8px 6px;line-height:20px;overflow:hidden}.result-table th{white-space:nowrap}.result-table td:hover{z-index:3;white-space:normal;overflow-wrap:anywhere;background:#fff;max-width:360px;position:relative;overflow:visible;box-shadow:0 2px 10px #163b5926}.result-table th:first-child,.result-table td:first-child{width:54px}.result-table th:nth-child(2),.result-table td:nth-child(2){width:110px}.result-table th:nth-child(3),.result-table td:nth-child(3){width:190px}.result-table th:nth-child(4),.result-table td:nth-child(4),.result-table th:nth-child(5),.result-table td:nth-child(5){width:180px}.result-table th:nth-child(6),.result-table td:nth-child(6){width:110px}.result-table th:nth-child(7),.result-table td:nth-child(7),.result-table th:nth-child(8),.result-table td:nth-child(8){width:82px}.result-table th:nth-child(17),.result-table td:nth-child(17){width:76px}.result-table td button{white-space:nowrap}.result-table{table-layout:fixed;min-width:0!important}.result-table th,.result-table td{white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;width:auto;padding:6px;line-height:20px;overflow:hidden;max-width:none!important}.result-table th{white-space:normal;position:relative;overflow:visible!important}.result-table th .col-resizer{z-index:10;opacity:.72;background:#9bc8dc;border-radius:2px;width:9px;height:100%;display:block;top:0;right:-4px}.result-table th .col-resizer:hover{opacity:1;background:#238fbd}.result-table .header-filter-label{align-items:center;min-height:22px;padding-right:6px;display:flex;position:relative}.result-table .header-filter{color:#173f5d;background:#fff;border:1px solid #cfe4ef;border-radius:5px;width:100%;min-width:0;padding:3px 5px;font-size:11px;display:block}.result-table td:hover{white-space:normal;overflow-wrap:anywhere;background:#fff;overflow:visible;box-shadow:0 2px 10px #163b5926;max-width:none!important}.result-table th .col-resizer{touch-action:none;cursor:col-resize;pointer-events:auto}.result-table th:nth-child(3),.result-table td:nth-child(3),.result-table th:nth-child(4),.result-table td:nth-child(4),.result-table th:nth-child(5),.result-table td:nth-child(5),.result-table th:nth-child(12),.result-table td:nth-child(12),.result-table th:nth-child(14),.result-table td:nth-child(14),.result-table th:nth-child(15),.result-table td:nth-child(15),.result-table th:nth-child(16),.result-table td:nth-child(16){width:76px}.report-link{color:#fff;white-space:nowrap;background:#51aedd;border-radius:9px;margin-right:8px;padding:10px 14px;text-decoration:none;display:inline-block}.report-link:hover{background:#258fc2}.market-summary{color:#2b718f;background:#eef8fc;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:18px;padding:12px 18px;display:flex}.market-summary b{font-size:16px}.market-summary span{color:#6d8b9b;font-size:12px}.market-filters{gap:12px;margin-bottom:18px;display:flex}.market-filters select{color:#173f5d;min-width:125px;font:inherit;background:#fff;border:1px solid #bcdced;border-radius:8px;padding:10px 20px}.market-material-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.market-material-card{background:#fbfdfe;border:1px solid #d6e8f2;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:15px 16px;display:flex}.market-material-card>b{color:#143f60;font-size:16px}.market-material-card>span{color:#9aaebb;text-align:right;font-size:12px}.market-material-value{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.market-material-value strong{color:#245d7b;font-size:13px}.market-material-value em{color:#879eac;font-style:normal}.market-material-value em.up{color:#d56b55}.market-material-value em.down{color:#3b9c7a}.market-table{width:100%!important;min-width:980px!important}.market-table th,.market-table td{white-space:nowrap;text-overflow:ellipsis;height:44px;overflow:hidden}.market-table td:hover{white-space:normal;z-index:2;background:#fff;position:relative;overflow:visible}@media (max-width:900px){.market-material-grid{grid-template-columns:1fr}.market-summary{flex-direction:column;align-items:flex-start;gap:8px}.market-filters{flex-wrap:wrap}}.market-material-card{cursor:pointer;flex-direction:column;align-items:stretch;gap:8px;transition:transform .15s,box-shadow .15s,border-color .15s}.market-material-card:hover{border-color:#9ec5da;transform:translateY(-2px);box-shadow:0 6px 18px #143f601a}.market-material-value{flex-direction:row;justify-content:space-between;align-items:baseline;gap:8px}.market-material-value strong{color:#143f60;font-size:18px;font-weight:700}.market-material-value em{color:#7892a5;font-size:12px;font-style:normal}.market-card-changes{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px;display:grid}.market-card-change{background:#f5f9fb;border:1px solid #e2eef4;border-radius:8px;flex-direction:column;align-items:center;gap:2px;min-height:46px;padding:6px 8px;display:flex}.market-card-change.up{background:#fdecec;border-color:#f0c2c2}.market-card-change.up span{color:#b1352a}.market-card-change.down{background:#e8f5ea;border-color:#c1e2c8}.market-card-change.down span{color:#1f8047}.market-card-change small{color:#7892a5;letter-spacing:.3px;font-size:11px}.market-card-change span{color:#7892a5;font-size:13px;font-weight:600}.task-status-summary{align-items:stretch;gap:10px;margin-bottom:16px;display:flex;overflow-x:auto}.task-summary-total,.task-summary-item{color:#163b59;text-align:left;background:#fff;border:1px solid #dcebf3;border-radius:12px;min-width:118px;padding:12px 15px;box-shadow:0 3px 12px #3b88aa0d}.task-summary-total{background:#e8f6fc;border-color:#c3e4f2}.task-summary-total small,.task-summary-item small{color:#7892a5;font-size:12px;display:block}.task-summary-total b,.task-summary-item b{color:#173f5d;margin-top:6px;font-size:22px;line-height:1;display:block}.task-summary-total.active,.task-summary-item.active{background:#e7f6fd;border-color:#51aedd;box-shadow:0 0 0 2px #51aedd22}.task-summary-item{padding-left:28px;position:relative}.task-summary-item b{color:#2d89b6}.task-status-dot{background:#8ba2b2;border-radius:50%;width:8px;height:8px;position:absolute;top:15px;left:14px}.status-商务中{background:#e1a33b}.status-AI寻源中{background:#8b75d8}.status-待确认{background:#ed8a57}.status-已完成{background:#43ad82}.task-status-select{color:#1674a7;min-width:104px;font:inherit;cursor:pointer;background:#fafdff;border:1px solid #c5deeb;border-radius:7px;padding:7px 26px 7px 9px}.source-row.head{align-items:center}.source-row:not(.head)>span{min-width:0}@media (max-width:900px){.task-status-summary{margin-left:-4px;margin-right:-4px}.task-summary-total,.task-summary-item{min-width:106px}}.project-table-wrap{border:1px solid #e1edf4;border-radius:12px;overflow:auto}.project-table thead th,.result-table thead th,.market-table thead th{z-index:4;background:#f7fbfd;position:sticky;top:0;box-shadow:0 1px #d9e9f1}.source-table{border:1px solid #e1edf4;border-radius:12px;overflow:auto}.source-table .source-row.head{z-index:3;background:#f7fbfd;position:sticky;top:0;box-shadow:0 1px #d9e9f1}.source-table>.empty{min-width:760px}.project-table{table-layout:fixed;width:100%;font-size:12px;min-width:0!important}.project-table th,.project-table td{vertical-align:middle;padding:10px 7px}.project-table th{white-space:nowrap;position:relative}.project-col-resizer{cursor:col-resize;pointer-events:auto;z-index:10;opacity:.7;background:#cfe4ef;border-radius:2px;width:8px;height:100%;display:block;position:absolute;top:0;right:-3px}.project-col-resizer:hover{opacity:1;background:#51aedd66}.project-table th:first-child{width:12%}.project-table th:nth-child(2){width:16%}.project-table th:nth-child(3),.project-table th:nth-child(4){width:8%}.project-table th:nth-child(5),.project-table th:nth-child(6),.project-table th:nth-child(7){width:9%}.project-table th:nth-child(8){width:8%}.project-table th:nth-child(9){width:10%}.project-table th:nth-child(10){width:9%}.project-table .compact-content{color:#163b59;line-height:1.45}.project-table .compact-content small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-field-input{color:#163b59;background:#fbfdff;border:1px solid #cfe4ef;border-radius:7px;width:100%;font-size:12px;min-width:0!important;padding:7px 6px!important}.project-field-input:focus,.project-status-select:focus{outline-offset:1px;border-color:#51aedd;outline:2px solid #8bd0ed}.project-status-select{color:#1674a7;background:#fff;border:1px solid #bcddec;border-radius:7px;width:100%;min-width:0;max-width:none;padding:7px 4px;font-size:12px}.feishu-project-status{color:#6e8799;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}@media (max-width:1100px){.project-table{table-layout:auto;min-width:980px!important}.project-table th{width:auto!important}}.result-modal .title p{white-space:pre-wrap;color:#234b66;background:#f7fbfd;border:1px solid #dcebf3;border-radius:10px;min-width:0;max-height:70vh;padding:18px;font-size:14px;line-height:1.65;overflow:auto}.result-modal .title>div:first-child{flex:1;min-width:0}.result-modal .title{align-items:flex-start;gap:18px}.result-modal .result-table-wrap{display:block}.has-full-report .result-modal .result-table-wrap{display:none}.sidebar-mini-stats{border-top:1px solid #ffffff42;gap:8px;margin-top:auto;padding-top:14px;display:grid}.sidebar-mini-stat{color:#fff;text-align:left;cursor:pointer;background:#ffffff24;border:0;border-radius:10px;padding:10px 12px}.sidebar-mini-stat small{opacity:.85;font-size:11px;display:block}.sidebar-mini-stat b{margin-top:3px;font-size:22px;display:block}.sidebar-mini-stat:hover{background:#ffffff40}.market-material-card{background:#fff;border:1px solid #dcebf3;border-radius:14px;flex-direction:column;gap:10px;min-width:260px;padding:16px;display:flex}.market-card-name{color:#163b59;font-size:15px;font-weight:700}.market-card-price{flex-direction:column;gap:4px;display:flex}.market-card-price b{color:#173f5d;font-size:24px;font-weight:700}.market-card-price em{color:#7892a5;font-size:12px;font-style:normal}.market-card-changes{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.market-change{text-align:left;background:#f5f9fb;border:1px solid #e2eef4;border-radius:8px;padding:8px 10px}.market-change small{color:#7892a5;font-size:11px;display:block}.market-change strong{color:#163b59;margin-top:3px;font-size:13px;display:block}.market-change.up{background:#fdecec;border-color:#f0c2c2}.market-change.up strong{color:#b1352a}.market-change.down{background:#e8f5ea;border-color:#c1e2c8}.market-change.down strong{color:#1f8047}.market-change.flat{background:#f5f9fb}.market-material-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:14px 0;display:grid}.progress-note-input{color:#163b59;background:#fbfdff;border:1px solid #cfe4ef;border-radius:7px;width:100%;min-width:0;padding:6px 9px;font-size:13px}.cell-input{color:#163b59;background:#fbfdff;border:1px solid #cfe4ef;border-radius:6px;width:100%;min-width:0;padding:6px 7px;font-size:12px}.cell-textarea{color:#163b59;resize:vertical;background:#fbfdff;border:1px solid #cfe4ef;border-radius:6px;width:100%;min-width:0;min-height:34px;padding:6px 7px;font-size:12px}.valid-supplier-table td,.history-table td{vertical-align:middle;padding:7px 8px}.valid-contact-cell{white-space:nowrap;color:#2d89b6;align-items:center;gap:5px;font-size:12px;display:inline-flex}.valid-contact-edit{color:#2b6f8e;background:#f3fafe;border-radius:8px;grid-column:1/-1;align-items:center;gap:8px;margin-top:6px;padding:10px 12px;font-size:13px;display:flex}.valid-contact-edit input{width:16px;height:16px}.history-table .old-val{color:#b1352a;white-space:normal;word-break:break-all;max-width:260px}.history-table .new-val{color:#1f8047;white-space:normal;word-break:break-all;max-width:260px}.status-select,.cell-select{color:#163b59;cursor:pointer;background:#fff;border:1px solid #cfe4ef;border-radius:6px;width:100%;min-width:0;padding:6px 7px;font-size:12px}.valid-supplier-table th,.valid-supplier-table td{padding:6px 8px}.add-supplier-panel{margin-top:18px}.add-supplier-form{padding:0 18px 18px}.add-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 14px;margin:12px 0;display:grid}.add-grid label{color:#57708a;flex-direction:column;gap:4px;font-size:12px;display:flex}.add-grid input,.add-grid select{color:#163b59;background:#fbfdff;border:1px solid #cfe4ef;border-radius:6px;padding:6px 8px;font-size:12px}.row-del{color:#c0392b;cursor:pointer;background:#fff5f5;border:1px solid #f0c2c2;border-radius:6px;padding:4px 10px;font-size:12px}.row-del:hover{background:#fde8e8}.feishu-status-pill{color:#3730a3;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;appearance:none;background:#eef2ff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path fill='%233730a3' d='M5 7L1.5 3.5h7z'/></svg>") right 8px center/10px 10px no-repeat;border:1px solid #c7d2fe;border-radius:999px;min-width:48px;padding:3px 24px 3px 10px;font-size:12px;font-weight:500;display:inline-block}.feishu-status-pill:focus{outline-offset:1px;outline:2px solid #818cf8}.title-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.title-actions .primary-action{color:#fff;font:inherit;cursor:pointer;background:linear-gradient(#4ea3d8,#2c7eb1);border:1px solid #2c7eb1;border-radius:9px;padding:8px 16px;font-weight:600;transition:transform 50ms;box-shadow:0 2px 6px #2c7eb133}.title-actions .primary-action:hover{transform:translateY(-1px);box-shadow:0 4px 10px #2c7eb144}.title-actions .primary-action:active{transform:translateY(0)}.filter-bar{background:#f7fbfd;border-bottom:1px solid #e0eef5;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;display:flex}.filter-bar .filter-input{min-width:200px;font:inherit;color:#163b59;background:#fff;border:1px solid #cfe4ef;border-radius:8px;flex:240px;padding:8px 12px}.filter-bar .filter-input:focus{border-color:#51aedd;outline:2px solid #8bd0ed}.filter-bar .filter-select{color:#163b59;min-width:140px;font:inherit;cursor:pointer;background:#fff;border:1px solid #cfe4ef;border-radius:8px;padding:8px 12px}.filter-bar .filter-clear{color:#57708a;cursor:pointer;font:inherit;background:#fff;border:1px solid #d6e8f2;border-radius:8px;padding:8px 14px}.filter-bar .filter-clear:hover{background:#eaf4f9}.filter-bar .filter-meta{color:#57708a;margin-left:auto;font-size:12px}.filter-bar .filter-meta em{color:#d56b55;margin-left:4px;font-style:normal}.valid-supplier-table .seq-cell{color:#2d89b6;text-align:center;background:#f3fafe;width:48px;font-weight:600}.valid-supplier-table td.actions-cell{flex-wrap:wrap;gap:4px;min-width:160px;display:flex}.valid-supplier-table tr.is-dirty{background:#fff7e6}.valid-supplier-table tr.is-dirty td{background:0 0}.valid-supplier-table .row-save{color:#1f8047;cursor:pointer;background:#e8f5dd;border:1px solid #b9d99a;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.valid-supplier-table .row-save:hover{background:#d6ecc6}.valid-supplier-table .row-save:disabled{opacity:.6;cursor:not-allowed}.valid-supplier-table .row-cancel{color:#5a6770;cursor:pointer;background:#f5f6f7;border:1px solid #d4dadc;border-radius:6px;padding:4px 10px;font-size:12px}.valid-supplier-table .row-cancel:hover{background:#e3e7e8}.valid-supplier-table .row-view{color:#1674a7;cursor:pointer;background:#e8f6fc;border:1px solid #b6dff0;border-radius:6px;padding:4px 10px;font-size:12px}.valid-supplier-table .row-view:hover{background:#d6ecf6}.confirm-modal{background:#fff;border-radius:14px;width:90vw;max-width:480px;padding:28px 32px;box-shadow:0 24px 64px #163b5933}.confirm-modal h2{color:#163b59;margin:0 0 12px;font-size:18px}.confirm-modal p{color:#57708a;margin:0 0 20px;font-size:14px;line-height:1.6}.confirm-modal .confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-modal .confirm-actions button{color:#1674a7;cursor:pointer;font:inherit;background:#fff;border:1px solid #cfe4ef;border-radius:8px;padding:8px 18px}.confirm-modal .confirm-actions button.danger{color:#b1352a;background:#fdecec;border-color:#f0c2c2;font-weight:600}.confirm-modal .confirm-actions button.danger:hover{background:#fad6d6}.add-modal-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px 18px;display:grid}.add-modal-grid label{color:#2b6f8e;flex-direction:column;gap:6px;font-size:13px;display:flex}.add-modal-grid input,.add-modal-grid select,.add-modal-grid textarea{color:#163b59;background:#fbfdff;border:1px solid #cfe4ef;border-radius:7px;width:100%;padding:8px 10px;font-size:13px}.add-modal-grid input:focus,.add-modal-grid select:focus,.add-modal-grid textarea:focus{border-color:#51aedd;outline:2px solid #8bd0ed}.add-modal-grid .full-row,.view-modal-grid .full-row{grid-column:1/-1}.detail-modal{width:90vw;max-height:90vh;overflow:auto;max-width:920px!important}.detail-grid textarea{font:inherit}.market-card-clickable{cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.market-card-clickable:hover{border-color:#9ec5da;transform:translateY(-2px);box-shadow:0 6px 18px #143f601a}.market-history-controls{flex-wrap:wrap;align-items:center;gap:14px;margin:10px 0 12px;display:flex}.market-history-controls label{color:#163b59;align-items:center;gap:6px;font-size:13px;display:inline-flex}.market-history-controls label select{color:#163b59;background:#fff;border:1px solid #cfe4ef;border-radius:6px;padding:4px 8px}.market-history-tabs{background:#eef5f9;border-radius:8px;padding:3px;display:inline-flex}.market-history-tab{color:#163b59;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:13px;transition:background .15s,color .15s}.market-history-tab:hover{background:#dde9f0}.market-history-tab.active{color:#fff;background:#163b59}.market-history-summary{color:#163b59;background:#f5f9fb;border:1px solid #e2eef4;border-radius:8px;flex-wrap:wrap;gap:16px;padding:8px 14px;font-size:13px;display:inline-flex}.market-history-summary b{color:#163b59;margin-left:6px;font-weight:700}.market-history-summary.up{background:#fdecec;border-color:#f0c2c2}.market-history-summary.up b{color:#b1352a}.market-history-summary.down{background:#e8f5ea;border-color:#c1e2c8}.market-history-summary.down b{color:#1f8047}.market-chart-wrap{background:#fbfdfe;border:1px solid #dcebf3;border-radius:10px;width:100%;margin-bottom:12px;padding:12px 14px;overflow:hidden}.market-chart{width:100%;height:280px;display:block}.market-history-table-wrap{margin-top:6px}.market-history-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0 8px;display:grid}.market-history-stat{background:#fbfdfe;border:1px solid #dcebf3;border-radius:10px;flex-direction:column;gap:4px;padding:12px 16px;transition:transform .15s,box-shadow .15s;display:flex}.market-history-stat:hover{transform:translateY(-2px);box-shadow:0 4px 14px #143f6014}.market-history-stat small{color:#7892a5;letter-spacing:.5px;font-size:12px}.market-history-stat b{color:#163b59;font-size:22px;font-weight:700;line-height:1.1}.market-history-stat em{color:#7892a5;font-size:11px;font-style:normal}@media (max-width:920px){.market-history-stats{grid-template-columns:repeat(2,1fr)}}.market-chart-wrap{margin-bottom:12px;padding:12px 14px}.market-chart{height:280px}@media (max-width:1280px){.market-chart{height:240px}.market-chart-wrap{padding:10px 12px}}.market-axis-title{letter-spacing:.5px;font-weight:600}.stats-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;padding:0 2px;display:grid}.stat-card{text-align:left;cursor:pointer;background:#fff;border:none;border-radius:18px;flex-direction:column;align-items:flex-start;padding:20px 18px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 10px #163b590d,0 0 1px #163b5915}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #163b5918,0 0 1px #163b5920}.stat-card-icon{border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:12px;font-size:22px;display:flex}.stat-card-icon.task-icon{color:#1a7fc5;background:#e8f4fd}.stat-card-icon.project-icon{color:#4c6ef5;background:#f0f5ff}.stat-card-icon.supplier-icon{color:#2f9e79;background:#f2f9f6}.stat-card-icon.result-icon{color:#7c3aed;background:#f5f0ff}.stat-card-icon.market-icon{color:#d97706;background:#fff5e6}.stat-card-icon.quote-icon{color:#e11d48;background:#fff0f3}.stat-card-body{flex-direction:column;gap:4px;display:flex}.stat-card-body small{color:#5f7a8c;font-size:13px;font-weight:500}.stat-card-body b{color:#163b59;font-size:32px;font-weight:700;line-height:1.1}.stat-card-meta{color:#8aa3b5;margin-top:10px;font-size:12px}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}.stat-card{padding:16px}}.pricing-panel{color:#163b59;background:0 0;min-height:0;padding:0}.pricing-panel-head{margin-bottom:16px}.pricing-panel-head .text-muted{color:#718da1;margin:0;font-size:13px}.pricing-panel .pricing-create,.pricing-panel .pricing-list,.pricing-panel .pricing-detail{background:#fff}.pricing-file-upload{color:#2d607d;cursor:pointer;background:#f7fbfd;border:1px dashed #78a9c0;border-radius:8px;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;min-height:64px;padding:10px 14px;font-size:13px;transition:all .15s;display:flex;position:relative}.pricing-file-upload:before{content:"拖拽规格书 / 参数说明书到这里";font-weight:600}.pricing-file-upload:after{content:"或点击选择文件，可多选 PDF、Word、Excel、TXT";color:#718da1;font-size:12px}.pricing-file-upload.drag-over{background:#eaf7fc;border-color:#238ab9;box-shadow:0 0 0 3px #238ab91f}.pricing-file-upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.pricing-file-list{color:#35647d;flex-wrap:wrap;gap:8px;margin:10px 0;font-size:12px;display:flex}.pricing-file-list span{background:#eef6fa;border:1px solid #d5e7ef;border-radius:6px;padding:6px 9px}.sidebar-todos{background:#ffffff24;border-radius:12px;flex-direction:column;flex:none;gap:8px;max-height:42vh;margin-top:12px;padding:9px;display:flex;overflow:hidden}.sidebar-todos-head{opacity:.96;justify-content:space-between;align-items:center;font-size:12px;display:flex}.sidebar-todos-head button{color:#fff;opacity:.85;cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:11px}.sidebar-todos-head button:hover{opacity:1;text-decoration:underline}.sidebar-todo-quick{gap:4px;display:flex}.sidebar-todo-quick input{color:#163b59;background:#fff;border:0;border-radius:7px;flex:1;min-width:0;padding:5px 7px;font-size:12px}.sidebar-todo-quick button{color:#238ab9;cursor:pointer;background:#fff;border:0;border-radius:7px;width:26px;font-size:16px;font-weight:700;line-height:1}.sidebar-todo-list{flex-direction:column;gap:2px;max-height:24vh;display:flex;overflow-y:auto}.sidebar-todo-item{cursor:pointer;align-items:center;gap:6px;padding:2px 0;font-size:12px;display:flex}.sidebar-todo-item input{accent-color:#238ab9;flex:none;width:14px;height:14px}.sidebar-todo-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-todo-text.pri-urgent{color:#ffe08a;font-weight:700}.sidebar-todo-text.pri-important{color:#fff;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.sidebar-todo-empty{opacity:.7;padding:4px 2px;font-size:11px}.nav-badge{color:#fff;vertical-align:middle;background:#ff5a4d;border-radius:9px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:5px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.todo-panel .title{margin-bottom:12px}.todo-add{background:#fff;border:1px solid #e2eef4;border-radius:12px;flex-direction:column;gap:8px;margin-bottom:12px;padding:12px;display:flex}.todo-add-title{border:1px solid #d6e6ef;border-radius:9px;width:100%;padding:9px 11px;font-size:15px}.todo-add-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.todo-add-meta input[type=date],.todo-add-meta select{color:#163b59;background:#fff;border:1px solid #d6e6ef;border-radius:8px;padding:7px 9px;font-size:13px}.todo-add-meta button{color:#fff;cursor:pointer;background:#238ab9;border:0;border-radius:9px;margin-left:auto;padding:8px 18px;font-size:13px}.todo-add-meta button:disabled{opacity:.5;cursor:not-allowed}.todo-add-note{resize:vertical;color:#163b59;border:1px solid #d6e6ef;border-radius:9px;width:100%;min-height:44px;padding:8px 11px;font-family:inherit;font-size:13px}.todo-list{flex-direction:column;gap:14px;display:flex}.todo-group-items .todo-item{min-width:0}.todo-item{background:#fff;border:1px solid #e7f0f5;border-radius:11px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.todo-item.pri-urgent{border-left:4px solid #e23b2e}.todo-item.pri-important{border-left:4px solid #f0a500}.todo-check input{accent-color:#238ab9;cursor:pointer;flex:none;width:18px;height:18px;margin-top:2px}.todo-body{flex:1;min-width:0}.todo-title{color:#163b59;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.todo-due{color:#6a8295;background:#eef5f9;border-radius:6px;padding:1px 6px;font-size:12px}.todo-source{color:#238ab9;border:1px solid #cfe6f1;border-radius:6px;padding:1px 6px;font-size:11px}.todo-note-edit{resize:vertical;color:#163b59;border:1px solid #e2eef4;border-radius:8px;width:100%;min-height:38px;margin-top:6px;padding:6px 8px;font-family:inherit;font-size:12px}.todo-note-text{color:#5b6b7b;white-space:pre-wrap;margin-top:5px;font-size:12px}.todo-del{color:#b9c6d0;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0 4px;font-size:20px;line-height:1}.todo-del:hover{color:#e23b2e}.todo-item.archived{opacity:.75;background:#f7fafc}.todo-title.done{color:#9aa9b5;text-decoration:line-through}.todo-archived{border-top:1px dashed #d6e6ef;margin-top:16px;padding-top:12px}.todo-archived h3{color:#5b6b7b;margin:0 0 10px;font-size:14px}.project-row-followup{box-shadow:none;background:0 0!important}@media (max-width:640px){.todo-add-meta{flex-direction:column;align-items:stretch}.todo-add-meta button{margin-left:0}.todo-add-title{font-size:16px}.sidebar-todo-quick input{font-size:14px}.todo-item{padding:9px 10px}}.notes-workspace{background:#fff;border:1px solid #dcebf3;border-radius:18px;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 116px);display:grid;overflow:hidden;box-shadow:0 4px 18px #163b5908}.notes-sidebar{background:#f7fbfd;border-right:1px solid #e4eef3;flex-direction:column;min-width:0;display:flex}.notes-sidebar-head{color:#163b59;justify-content:space-between;align-items:center;padding:18px 18px 12px;font-size:18px;display:flex}.notes-sidebar-head button{color:#238ab9;background:#e7f5fb;border-radius:10px;width:32px;height:32px;padding:0;font-size:22px;line-height:1}.notes-search{color:#7892a5;background:#fff;border:1px solid #dbeaf1;border-radius:10px;align-items:center;margin:0 14px 12px;padding:0 10px;display:flex}.notes-search input{color:#163b59;width:100%;font:inherit;background:0 0;border:0;outline:0;padding:9px 6px;font-size:13px}.notes-nav{border-bottom:1px solid #e4eef3;gap:3px;padding:0 10px 10px;display:grid}.notes-nav button{color:#55738a;text-align:left;background:0 0;justify-content:space-between;padding:9px 10px;display:flex}.notes-nav button.active,.notes-nav button:hover{color:#1577a5;background:#e6f5fb}.notes-nav span{opacity:.7;font-size:12px}.notes-list{padding:8px;overflow:auto}.note-list-item{color:#163b59;text-align:left;background:0 0;border-left:3px solid #0000;border-radius:11px;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:12px 10px;display:flex}.note-list-item:hover{background:#edf7fb}.note-list-item.active{background:#dff1f8;border-left-color:#28a0cf}.note-list-item strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;overflow:hidden}.note-list-item span{color:#7690a0;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.note-list-item small{color:#9aadb8;font-size:11px}.notes-sidebar-foot{color:#9aadb8;border-top:1px solid #e4eef3;margin-top:auto;padding:14px 16px;font-size:11px;line-height:1.5}.notes-editor{background:#fff;flex-direction:column;min-width:0;display:flex}.notes-editor-top{border-bottom:1px solid #edf3f6;justify-content:space-between;align-items:center;padding:16px 22px;display:flex}.notes-editor-top>div{gap:8px;display:flex}.notes-editor-top button{color:#668497;background:#fff;border:1px solid #d8e7ed;padding:7px 12px}.notes-editor-top button.primary-action{color:#fff;background:#238fbd;border-color:#238fbd}.notes-breadcrumb{color:#8ca1ad;font-size:12px}.notes-title-input{color:#163b59;background:#fff;border:0;outline:0;padding:32px 42px 8px;font-size:28px;font-weight:700}.notes-editor-meta{color:#9aacb6;border-bottom:1px solid #f0f4f6;align-items:center;gap:14px;padding:0 44px 18px;font-size:12px;display:flex}.notes-editor-meta select{color:#668497;background:#fff;border:1px solid #e0ebef;border-radius:8px;margin-left:auto;padding:6px 9px}.notes-content-editor{resize:none;color:#294b61;background:#fff;border:0;outline:0;flex:1;min-height:480px;padding:26px 44px;font:16px/2 Inter,Microsoft YaHei,sans-serif}.notes-content-editor::placeholder{color:#b5c4cb}.notes-empty-state{color:#8da3b0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.notes-empty-state b{color:#3d6073;font-size:22px}.notes-empty-state span{font-size:13px}.notes-empty-state button{margin-top:10px}@media (max-width:900px){.notes-workspace{grid-template-columns:210px}.notes-title-input{padding-left:26px}.notes-editor-meta,.notes-content-editor{padding-left:28px;padding-right:28px}}@media (max-width:640px){.notes-workspace{grid-template-columns:1fr;min-height:calc(100vh - 95px)}.notes-sidebar{border-bottom:1px solid #e4eef3;border-right:0;max-height:330px}.notes-sidebar-foot{display:none}.notes-content-editor{min-height:360px}.notes-editor-top{padding:12px}.notes-title-input{padding:22px 18px 8px;font-size:23px}.notes-editor-meta,.notes-content-editor{padding-left:18px;padding-right:18px}}.note-rich-editor-wrap{flex-direction:column;flex:1;min-height:480px;display:flex}.note-rich-toolbar{border-bottom:1px solid #f0f4f6;align-items:center;gap:6px;padding:10px 42px;display:flex}.note-rich-toolbar button,.note-file-button{color:#527489;cursor:pointer;background:#fff;border:1px solid #dce9ee;border-radius:7px;padding:6px 10px;font-size:12px}.note-file-button{position:relative;overflow:hidden}.note-file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.note-contenteditable{white-space:normal;min-height:380px;overflow:auto}.note-contenteditable:empty:before{content:attr(data-placeholder);color:#b5c4cb;pointer-events:none}.note-contenteditable img{object-fit:contain;border-radius:8px;max-width:min(680px,100%);max-height:520px;margin:14px 0;display:block;box-shadow:0 2px 12px #163b5915}.note-contenteditable a{color:#1681ad;background:#eef8fc;border-radius:6px;margin:4px 0;padding:4px 8px;text-decoration:none;display:inline-block}.notes-add-folder{font-size:12px;color:#238fbd!important;background:0 0!important}.notes-folder-context-menu{z-index:120;background:#fff;border:1px solid #d8e7ed;border-radius:10px;min-width:170px;padding:6px;position:fixed;box-shadow:0 10px 30px #163b5926}.notes-folder-context-title{color:#8aa0ac;border-bottom:1px solid #edf3f6;margin-bottom:4px;padding:7px 10px;font-size:11px}.notes-folder-context-menu button{color:#35586d;text-align:left;background:#fff;border-radius:7px;width:100%;padding:8px 10px;font-size:13px;display:block}.notes-folder-context-menu button:hover{color:#14779f;background:#eaf7fb}.notes-folder-context-menu button:nth-of-type(2):hover{color:#c23b3b;background:#fff1f1}.profile span{display:none!important}.title p,.resizable th:nth-child(3),.resizable td:nth-child(3),.resizable th:nth-child(4),.resizable td:nth-child(4){display:none}.resizable th:nth-child(2),.resizable td:nth-child(2){white-space:normal;overflow-wrap:anywhere;max-width:150px;width:150px!important}.resizable td:nth-child(2){max-height:5.2em;line-height:1.45;overflow:hidden}.project-main{min-width:700px}.project-main th:first-child{width:160px}.project-main th:nth-child(2){width:240px}.project-main th:nth-child(3){width:180px}.compact-content{white-space:normal;overflow-wrap:anywhere;max-width:240px}.modal-backdrop{z-index:20;background:#1238;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.detail-modal{background:#fff;border-radius:18px;width:min(1150px,96vw);max-height:90vh;padding:24px;overflow:auto}.detail-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.detail-grid label>span{color:#66879b;margin-bottom:5px;font-size:12px;display:block}.detail-grid textarea,.readonly{width:100%;min-height:62px;font:inherit;border:1px solid #cfe4ef;border-radius:8px;padding:9px}.readonly{background:#f5f9fb}@media (max-width:800px){.detail-grid{grid-template-columns:1fr}}.stats-row{gap:10px;margin-bottom:14px;display:flex;overflow-x:auto}.stat{color:#163b59;text-align:left;background:#fff;border:1px solid #dcebf3;flex:1;min-width:110px;padding:10px 14px}.stat small{color:#718da1;display:block}.stat b{margin-top:3px;font-size:23px;display:block}.stat.active{background:#e7f6fd;border-color:#51aedd}.source-table{overflow:auto}.source-row{border-top:1px solid #e2eef4;grid-template-columns:2fr .7fr 1fr 1fr .8fr .8fr 1fr;align-items:center;gap:14px;min-width:1050px;padding:13px 5px;display:grid}.source-row.head{color:#7593a8;border:0;font-size:12px}@media (max-width:900px){.stat{min-width:95px;padding:8px}.stat b{font-size:19px}}.panel>.tabs{display:none!important}.stats-row{flex-wrap:nowrap}.project-actions .project-search{color:#163b59;width:250px;font:inherit;background:#fff;border:1px solid #bcddec;border-radius:9px;padding:10px 12px}.project-actions .project-search:focus{outline-offset:1px;border-color:#51aedd;outline:2px solid #8bd0ed}.project-progress-input{min-width:140px!important}.auth-page{background:linear-gradient(135deg,#eef5ff,#f8fafc);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #e6ebf2;border-radius:20px;flex-direction:column;gap:16px;width:min(420px,100%);padding:36px;display:flex;box-shadow:0 20px 60px #1d416e1f}.auth-card h1{color:#152238;margin:0;font-size:26px}.auth-card p{color:#748096;margin:0 0 8px}.auth-card label,.password-form label{color:#4d5b70;flex-direction:column;gap:8px;font-size:14px;display:flex}.auth-card input,.password-form input{font:inherit;border:1px solid #d7deea;border-radius:10px;outline:none;padding:12px 13px}.auth-card input:focus,.password-form input:focus{border-color:#3467d6;box-shadow:0 0 0 3px #3467d61f}.auth-mark{color:#fff;background:#2164d8;border-radius:14px;place-items:center;width:46px;height:46px;font-size:23px;display:grid}.auth-submit{color:#fff;cursor:pointer;background:#2164d8;border:0;border-radius:10px;padding:12px 18px;font-weight:700}.auth-submit:disabled{opacity:.6;cursor:wait}.settings-panel{max-width:720px}.password-form{flex-direction:column;gap:16px;max-width:420px;padding:8px 0;display:flex}.password-form .auth-submit{align-self:flex-start}.detail-grid textarea{cursor:text;background:#fff!important;display:block!important}.detail-grid .readonly{cursor:default}.detail-grid .editable-detail{outline:none;cursor:text!important;background:#fff!important}.detail-grid .editable-detail:focus{border-color:#51aedd;box-shadow:0 0 0 2px #51aedd22}.detail-grid .editable-detail.changed{border-color:#f0a83a;background:#fffaf1!important}.detail-save{margin-left:auto;background:#24a36a!important}.save-message{color:#287b59;margin-left:10px;font-size:13px}.task-date{color:#176f9d;border:1px solid #cfe4ef;border-radius:8px;width:135px;padding:8px}.source-row button{white-space:nowrap}.source-row>span:last-child a{margin-top:5px;display:block}.task-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.task-actions button{padding:8px 10px}.task-actions .result-button{background:#1c8f69}.report-content{background:#f8fcfe;border:1px solid #dcebf3;border-radius:12px;max-height:66vh;margin-top:14px;overflow:auto}.report-content pre{white-space:pre-wrap;word-break:break-word;color:#173f5d;margin:0;padding:20px;font:14px/1.75 system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif}.result-modal{flex-direction:column;max-height:88vh;display:flex;overflow:hidden}.result-modal .title{flex:none}.result-modal .report-content{flex:auto}.report-shell{color:#113b57;background:#eef7fb;min-height:100vh;padding:28px 4vw 56px;font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif}.report-topbar,.report-hero,.report-metrics,.report-card,.report-shell>footer{max-width:1480px;margin-left:auto;margin-right:auto}.report-topbar{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.report-topbar>a{color:#1379aa;font-weight:700;text-decoration:none}.report-topbar div{gap:10px;display:flex}.report-topbar button,.report-topbar .primary{color:#177bad;background:#fff;border:0;border-radius:10px;padding:11px 18px;font-weight:700;text-decoration:none;box-shadow:0 3px 12px #195b7d18}.report-topbar .primary{color:#fff;background:#1c8f69}.report-hero{color:#fff;background:linear-gradient(125deg,#103d5a,#176b91 70%,#2ca7b8);border-radius:22px;justify-content:space-between;align-items:flex-start;gap:28px;padding:34px 38px;display:flex;box-shadow:0 18px 50px #12445d26}.eyebrow,.section-kicker{letter-spacing:.16em;color:#58c7ed;font-size:12px;font-weight:800}.report-hero h1{margin:10px 0;font-size:36px;line-height:1.25}.report-hero p{color:#d8eff8;margin:0}.report-status{color:#14845d;white-space:nowrap;background:#dff6e9;border-radius:99px;padding:9px 16px;font-weight:800}.report-metrics{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px;display:grid}.report-metrics article{background:#fff;border:1px solid #d8eaf2;border-radius:16px;padding:18px 22px;box-shadow:0 5px 20px #195b7d0a}.report-metrics small{color:#6c8da1;display:block}.report-metrics b{color:#0e608d;margin-right:5px;font-size:28px}.report-metrics span{color:#7893a3}.report-card{background:#fff;border:1px solid #d6e8f0;border-radius:20px;margin-top:18px;padding:28px 30px;box-shadow:0 8px 28px #195b7d0b}.report-card h2{margin:5px 0 0;font-size:24px}.report-summary{grid-template-columns:280px 1fr;align-items:start;gap:30px;display:grid}.report-summary>p{color:#345b70;margin:0;font-size:16px;line-height:1.85}.section-head{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:20px;display:flex}.section-head>p{color:#6c8797;max-width:650px;margin:0;line-height:1.65}.tier-grid{flex-wrap:wrap;gap:12px;display:flex}.tier-grid article{background:#f1f9fc;border:1px solid #d5eaf2;border-radius:14px;min-width:150px;padding:16px}.tier-grid b{color:#177bad;display:block}.tier-grid strong{margin-right:5px;font-size:26px}.tier-grid span{color:#7893a3}.supplier-table-wrap,.md-table-wrap{border:1px solid #dceaf0;border-radius:14px;overflow:auto}.supplier-report-table,.markdown-body table{border-collapse:collapse;width:100%;min-width:1180px}.supplier-report-table th,.supplier-report-table td,.markdown-body th,.markdown-body td{text-align:left;vertical-align:top;border-bottom:1px solid #e3eef3;padding:14px 12px;line-height:1.55}.supplier-report-table th,.markdown-body th{color:#47738a;background:#eef8fc;font-size:13px;position:sticky;top:0}.supplier-report-table td{font-size:14px}.supplier-report-table td small{color:#7b94a2;max-width:240px;margin-top:5px;display:block}.rank-badge{color:#0876a9;background:#dff3fb;border-radius:9px;place-items:center;width:30px;height:30px;font-weight:800;display:inline-grid}.tier-badge{color:#6650bb;background:#eee9ff;border-radius:99px;padding:4px 9px;font-weight:700;display:inline-block}.score{color:#168562;font-size:20px}.risk{color:#b75a35}.markdown-body{color:#294f64;line-height:1.75}.markdown-body h2{border-bottom:1px solid #dcebf2;margin-top:28px;padding-bottom:10px;font-size:25px}.markdown-body h3{color:#116c98;margin-top:24px;font-size:20px}.markdown-body h4{margin-top:20px;font-size:17px}.markdown-body p{margin:9px 0}.md-bullet{gap:10px;margin:8px 0;display:flex}.md-bullet i{background:#27a5bf;border-radius:50%;flex:none;width:7px;height:7px;margin-top:9px}.md-bullet.numbered b{color:#1179a7;background:#e7f5fa;border-radius:7px;place-items:center;width:24px;height:24px;display:inline-grid}.report-shell>footer{text-align:center;color:#8196a2;margin-top:28px}.report-loading,.report-error{text-align:center;background:#fff;border-radius:18px;max-width:700px;margin:18vh auto;padding:35px}.report-error b{font-size:24px}.report-error a{color:#167eae;margin-top:12px;display:inline-block}@media (max-width:900px){.report-shell{padding:16px}.report-hero{padding:26px 22px}.report-hero h1{font-size:28px}.report-metrics{grid-template-columns:repeat(2,1fr)}.report-summary{grid-template-columns:1fr}.section-head{display:block}.section-head>p{margin-top:10px}}@media print{.report-shell{background:#fff;padding:0}.report-topbar{display:none}.report-card,.report-hero,.report-metrics article{box-shadow:none;break-inside:avoid}.supplier-table-wrap{overflow:visible}.supplier-report-table{min-width:0;font-size:10px}.report-shell>footer{margin-top:15px}}.score-rule-grid{grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;display:grid}.score-rule-grid article{background:#f2f9fc;border:1px solid #d9eaf1;border-radius:13px;padding:14px}.score-rule-grid span{color:#456d82;min-height:42px;font-size:13px;display:block}.score-rule-grid b{color:#116f9b;margin-right:4px;font-size:23px}.score-rule-grid small{color:#7893a3}.score-rule-grid .deduction{background:#fff6f1;border-color:#f0d8cc}.score-rule-grid .deduction b{color:#b75a35}.legacy-note{color:#8b6920;background:#fff9e9;border-radius:10px;margin:14px 0 0;padding:11px 14px}.legacy-score,.score-detail summary{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.legacy-score small,.score-detail summary small{color:#8a9ca6;white-space:nowrap}.score-detail summary{cursor:pointer;list-style:none}.score-detail summary::-webkit-details-marker{display:none}.score-detail>div{z-index:5;background:#fff;border:1px solid #d5e8f0;border-radius:12px;width:330px;margin-top:8px;padding:13px;position:absolute;box-shadow:0 12px 34px #113b5730}.score-detail p{justify-content:space-between;gap:16px;margin:5px 0;font-size:12px;display:flex}.score-detail p b{white-space:nowrap}.score-detail .deduct{color:#b75a35;border-top:1px solid #e5edf1;padding-top:7px}@media (max-width:1100px){.score-rule-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:700px){.score-rule-grid{grid-template-columns:repeat(2,1fr)}}.bom-nav-link{color:#fff;text-align:left;border-radius:12px;padding:14px 16px;font-size:15px;text-decoration:none;display:block}.bom-nav-link:hover{background:#ffffff35}.pricing-page{color:#163b59;background:#f2f9fd;min-height:100vh;padding:34px 5vw}.pricing-header{justify-content:space-between;align-items:flex-start;margin-bottom:22px;display:flex}.pricing-header em{letter-spacing:3px;color:#55aada;font-size:12px;font-style:normal;font-weight:800}.pricing-header h1{margin:6px 0;font-size:30px}.pricing-header p,.pricing-detail-head p,.pricing-detail-head a{color:#718da1}.pricing-header>a{color:#248250;background:#e4f5ea;border-radius:22px;padding:10px 16px;text-decoration:none}.pricing-create,.pricing-list,.pricing-detail{background:#fff;border:1px solid #dcebf3;border-radius:16px;padding:20px}.pricing-create h2,.pricing-list h2,.pricing-detail h2{margin:0 0 14px}.pricing-form{grid-template-columns:1.1fr 1.1fr 1.5fr auto auto;gap:10px;display:grid}.pricing-form input,.pricing-upload,.pricing-review textarea{color:#163b59;background:#fff;border:1px solid #cfe4ef;border-radius:8px;padding:10px}.pricing-upload{cursor:pointer;text-align:center}.pricing-upload input{display:none}.pricing-create small{color:#718da1;margin-top:8px;display:block}.pricing-layout{grid-template-columns:260px 1fr;gap:16px;margin-top:16px;display:grid}.pricing-list-head,.pricing-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pricing-card{text-align:left;color:#163b59;background:#f8fcfe;border:1px solid #d9eaf2;width:100%;margin-top:8px;display:block}.pricing-card.active{background:#e7f6fd;border-color:#51aedd}.pricing-card span{color:#718da1;margin-top:5px;font-size:12px;display:block}.pricing-summary{background:#eef8fc;border-radius:10px;flex-wrap:wrap;gap:20px;margin:14px 0;padding:12px;display:flex}.pricing-image{object-fit:contain;border:1px solid #dcebf3;border-radius:10px;max-width:180px;max-height:180px}.pricing-review{grid-template-columns:minmax(260px,.8fr) minmax(450px,1.5fr);gap:18px;margin-top:18px;display:grid}.pricing-review h3{margin:0 0 8px}.pricing-review p{color:#718da1;font-size:12px}.pricing-review textarea{resize:vertical;width:100%;height:180px;margin-bottom:8px;font-family:inherit}.pricing-table-wrap{overflow:auto}.pricing-table-wrap table{width:100%;min-width:620px}.pricing-table-wrap th,.pricing-table-wrap td{text-align:left;border-bottom:1px solid #dfedf4;padding:10px;font-size:12px}.toast{color:#fff;background:#173d59;border-radius:10px;margin-bottom:14px;padding:12px 16px}.toast button{float:right;background:0 0;padding:0}@media (max-width:900px){.pricing-page{padding:20px 12px}.pricing-form,.pricing-layout,.pricing-review{grid-template-columns:1fr}.pricing-header{flex-direction:column;gap:14px}}.pricing-context-menu{z-index:100;background:#fff;border:1px solid #cbdde7;border-radius:9px;min-width:190px;padding:8px;position:fixed;box-shadow:0 8px 28px #173d5933}.pricing-context-title{color:#5f7a8c;white-space:nowrap;text-overflow:ellipsis;padding:4px 8px 8px;font-size:12px;overflow:hidden}.pricing-context-menu button{text-align:left;color:#c44b42;background:#fff;width:100%;padding:8px}.pricing-context-menu button:hover{background:#fff1ef}.manual-bom-editor{background:#fbfdff;border:1px solid #dcebf3;border-radius:12px;padding:14px;transition:all .2s}.manual-bom-editor.is-dragging{background:#eef9ff;border-color:#2c9bd0;box-shadow:0 0 0 3px #2c9bd01f}.manual-bom-editor p{margin:0 0 10px}.bom-file-picker{color:#1977a8;cursor:pointer;background:#f1faff;border:1px solid #8fc7e4;border-radius:8px;justify-content:center;align-items:center;padding:9px 13px;font-size:13px;display:inline-flex}.bom-file-picker input{display:none}.bom-drop-hint{color:#718da1;margin:9px 0;font-size:12px}.manual-bom-editor textarea{min-height:190px}.pricing-form-extra{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.pricing-form-extra textarea{resize:vertical;color:#163b59;background:#fff;border:1px solid #cfe4ef;border-radius:8px;min-height:92px;padding:10px}.pricing-paste-zone{color:#5f829b;background:#f7fbfd;border:1px dashed #8fc7e4;border-radius:12px;outline:none;grid-column:1/-1;padding:12px}.pricing-paste-zone:focus{border-color:#2c9bd0;box-shadow:0 0 0 3px #2c9bd01f}.pricing-previews,.pricing-image-grid{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.pricing-previews img,.pricing-image-grid img{object-fit:contain;background:#fff;border:1px solid #c8ddea;border-radius:10px;width:110px;height:110px}.pricing-facts{white-space:pre-wrap;color:#4d6f86;background:#f7fbfd;border:1px solid #e0edf4;border-radius:10px;padding:12px;line-height:1.6}@media (max-width:900px){.pricing-form-extra{grid-template-columns:1fr}}.shell{grid-template-columns:160px minmax(0,1fr)}.shell>aside{overflow-y:auto}.shell>main,.panel,.pricing-panel,.pricing-layout>*,.pricing-review>*{min-width:0}.pricing-facts{overflow-wrap:anywhere}.todo-date-input[data-empty=true]{color:#0000}.todo-date-input[data-empty=true]:focus{color:#163b59}.todo-date-input[data-empty=true]::-webkit-datetime-edit{color:#0000}.todo-date-input[data-empty=true]:focus::-webkit-datetime-edit{color:#163b59}.report-content{max-width:100%;overflow:auto}.report-rich-text{color:#294f64;line-height:1.75}.report-rich-text h2{border-bottom:1px solid #dcebf2;margin:18px 0 10px;padding-bottom:8px;font-size:22px}.report-rich-text h3{color:#116c98;margin:15px 0 8px;font-size:17px}.report-rich-text p{white-space:pre-wrap;margin:8px 0}.report-bullet{margin:6px 0}.report-table-wrap{border:1px solid #dceaf0;border-radius:10px;margin:12px 0;overflow:auto}.report-table-wrap table{border-collapse:collapse;width:100%;min-width:760px}.report-table-wrap th,.report-table-wrap td{text-align:left;vertical-align:top;border-bottom:1px solid #e3eef3;padding:10px}.report-table-wrap th{color:#47738a;background:#eef8fc}.column-visibility-menu{z-index:51;color:#294f64;background:#fff;border:1px solid #cfe0e9;border-radius:9px;min-width:180px;max-height:min(70vh,520px);padding:10px 12px;font-size:13px;position:fixed;overflow:auto;box-shadow:0 8px 28px #163b592e}.column-visibility-title{color:#163b59;margin-bottom:7px;font-weight:700}.column-visibility-menu label{cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:5px 0;display:flex}.column-visibility-menu input{accent-color:#238ab9}.rating-settings{max-width:900px}.rating-grid{background:#fbfdfe;border:1px solid #dcebf3;border-radius:12px;grid-template-columns:minmax(0,1fr) 150px;gap:0 18px;display:grid;overflow:hidden}.rating-head,.rating-grid>label{display:contents}.rating-head span{color:#245d78;background:#eaf6fb;padding:11px 14px;font-size:12px;font-weight:700}.rating-grid>label>span,.rating-grid>label>input{border-top:1px solid #e5eff4;padding:11px 14px}.rating-grid>label>span{color:#385c70;align-self:center}.rating-grid>label>input{color:#163b59;width:100%;font:inherit;background:#fff;border:0;border-top:1px solid #e5eff4}.rating-grid>label>input:focus{outline-offset:-2px;outline:2px solid #8bd0ed}.result-table th .col-resizer,.valid-supplier-table th .col-resizer{z-index:20;opacity:.85;touch-action:none;background:#9bc8dc;border-radius:2px;width:3px;height:100%;right:-1px;transform:none}.result-table th .col-resizer:hover,.valid-supplier-table th .col-resizer:hover{opacity:1;background:#238fbd}.result-table .header-filter-label,.valid-supplier-table .header-filter-label{padding-right:12px}.valid-supplier-table{table-layout:fixed;width:max-content}.valid-supplier-table th{white-space:nowrap;position:relative;overflow:visible}.pricing-form>*,.pricing-form-extra>*,.todo-editable .todo-body{min-width:0}.todo-title-input{color:#163b59;width:100%;font:inherit;background:0 0;border:1px solid #0000;border-radius:7px;padding:5px 7px}.todo-title-input:hover,.todo-title-input:focus{background:#fff;border-color:#cfe4ef;outline:none}.todo-edit-fields{flex-wrap:wrap;gap:8px;margin-top:7px;display:flex}.todo-edit-fields label{color:#7892a5;align-items:center;gap:5px;font-size:11px;display:inline-flex}.todo-edit-fields select,.todo-edit-fields input{color:#163b59;font:inherit;background:#fff;border:1px solid #d6e6ef;border-radius:6px;padding:4px 6px}.todo-edit-fields select.priority-普通{color:#5d7890;background:#f1f6f9}.todo-edit-fields select.priority-重要{color:#a46600;background:#fff2cf;border-color:#f2c45c}.todo-edit-fields select.priority-紧急{color:#b52b2b;background:#ffe1e1;border-color:#f08b8b;font-weight:700}.todo-item.pri-urgent{background:#fff8f7;border-left-color:#e23b2e}.todo-item.pri-important{background:#fffdf7;border-left-color:#f0a500}.todo-group-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-table-wrap,.result-table-wrap,.market-history-table-wrap,.pricing-table-wrap{max-width:100%;overflow-x:auto}@media (max-width:900px){.shell{display:block}.shell>aside{height:auto;padding:12px;position:relative}.shell .brand{margin:0 0 10px}.shell .brand div{font-size:14px}.shell>aside nav{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.shell>aside nav button,.shell>aside nav button:not(.active){white-space:nowrap;flex:none;min-height:44px;font-size:14px}.shell>main{padding:16px 12px}.shell>main>header{flex-wrap:wrap;gap:12px}.shell>main>header>span{padding:8px 12px;font-size:12px;display:block}.title,.pricing-detail-head,.result-card-head{flex-wrap:wrap;gap:12px}.project-actions{flex-wrap:wrap;width:100%}.project-actions .project-search{width:100%;min-width:0}.pricing-form,.pricing-layout,.pricing-review,.pricing-form-extra{grid-template-columns:minmax(0,1fr)}.pricing-detail-head>div{overflow-wrap:anywhere;min-width:0}.pricing-detail-head button{margin-bottom:6px}.task-status-summary{max-width:100%;overflow-x:auto}}@media (max-width:640px){.todo-group-items{grid-template-columns:1fr}.panel,.pricing-create,.pricing-list,.pricing-detail{border-radius:12px;padding:14px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{min-width:0;padding:14px 12px}.stat-card-body b{font-size:26px}.stat-card-meta{line-height:1.5}.home-todo-add{flex-direction:column}.shell input:not([type=checkbox]):not([type=radio]),.shell textarea,.shell select{font-size:16px}.shell button{min-height:44px}.filter-bar .filter-input,.filter-bar .filter-select{width:100%;min-width:0}.filter-bar .filter-meta{margin-left:0}.modal-backdrop{padding:10px}.detail-modal,.result-modal{width:100%;max-height:90dvh;padding:16px}.detail-grid,.add-modal-grid{grid-template-columns:minmax(0,1fr)}.market-grid,.market-material-grid,.market-history-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.syncbar,.result-meta{flex-wrap:wrap;gap:8px}.confirm-modal{padding:20px}.rating-rule-guide{grid-template-columns:1fr}}.rating-rule-guide{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0;display:grid}.rating-rule-guide>div{color:#31536d;background:#f7fbfd;border:1px solid #d8e8f2;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.rating-rule-guide b{color:#123f60}.score-display{color:#123f60;text-align:center;background:#f5fafc;border:1px solid #d8e8f2;border-radius:7px;padding:7px 10px;font-weight:700;display:block}.score-recalculate-bar{color:#56758d;justify-content:flex-end;align-items:center;gap:12px;margin:0 0 10px;display:flex}
