:root{--brand-red:#D3232A;--brand-blue:#1B5AA0;--text:#1f2329;--text-2:#8a9099;--border:#e8e8ec;--divider:#ececf0;--divider-soft:#f2f2f5;--green:#2E9E5B;--orange:#E8852B;--purple:#7B5EA7;--bg:#f5f6f8;--invest-bg:#f4f8fd}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}.topbar{height:4px;background:var(--brand-red)}.header{max-width:1180px;margin:0 auto;padding:18px 24px 14px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px}.brand .mark{display:flex;gap:3px}.brand .mark i{width:14px;height:14px;border-radius:3px;display:block}.brand .mark .r{background:var(--brand-red)}.brand .mark .b{background:var(--brand-blue)}.brand .titles h1{font-size:17px;font-weight:600}.brand .titles .sub{font-size:11px;color:var(--text-2);margin-top:2px}.tabs{display:flex;border-radius:13px;overflow:hidden;user-select:none}.tab{padding:7px 20px;font-size:12px;cursor:pointer;border:1px solid var(--border);border-right:none;background:#fff;color:var(--text-2);transition:background .15s,color .15s}.tab:first-child{border-radius:13px 0 0 13px}.tab:last-child{border-radius:0 13px 13px 0;border-right:1px solid var(--border)}.tab.active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.tab:hover:not(.active){background:#f0f2f5}.header-right{display:flex;align-items:center;gap:14px}.datepick{position:relative;display:flex;align-items:center;gap:10px}.seg{display:inline-flex;border-radius:13px;overflow:hidden;border:1px solid var(--border)}.seg-btn{padding:7px 16px;font-size:12px;background:#fff;color:var(--text-2);border:none;border-right:1px solid var(--border);cursor:pointer;font-family:inherit}.seg-btn:last-child{border-right:none}.seg-btn.active{background:var(--brand-blue);color:#fff}.date-label{font-size:12px;color:var(--text-2);min-width:130px}.popup{position:absolute;top:44px;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #0000001f;padding:14px;z-index:30;display:none;min-width:240px}.popup.show{display:block}.mp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px;font-weight:500}.mp-head button{border:1px solid var(--border);background:#fff;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px;line-height:1}.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mp-month{padding:8px 0;text-align:center;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;font-size:12px}.mp-month:hover{background:#f0f2f5}.cp-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;color:var(--text-2)}.cp-row input{font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:6px}.cp-ok{margin-top:4px;width:100%;padding:8px;background:var(--brand-blue);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px}.container{max-width:1180px;margin:0 auto;padding:6px 24px 48px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:12px}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 16px 14px;position:relative;cursor:default}.card.invest{border:1px solid var(--brand-blue);background:var(--invest-bg)}.card-head{display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;background:var(--text-2);flex:none}.dot.purple{background:var(--purple)}.card-title{font-size:13px;font-weight:600}hr.rule{border:none;border-top:1px solid var(--divider);margin:10px 0}hr.rule-soft{border:none;border-top:1px solid var(--divider-soft);margin:10px 0}.row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-left:16px}.row+hr.rule-soft{margin-top:0}.metric{display:flex;flex-direction:column;gap:3px;min-width:0}.metric .label{font-size:12px;color:var(--text-2);white-space:nowrap}.metric .value{font-size:13px;color:var(--text);font-weight:500;white-space:nowrap}.metric .value.roi{color:var(--brand-red)}.metric .value.big{font-size:13px}.table-wrap{margin-top:26px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.tr{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr}.thead{background:var(--brand-blue);color:#fff;font-size:12px;font-weight:500}.thead .td{padding:10px 16px}.tbody .tr{background:#fff;font-size:13px}.tbody .tr:nth-child(2n){background:#f7f8fa}.td{padding:10px 16px;display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis}.td.name{font-weight:500}.prog{width:88px;height:8px;border-radius:4px;background:var(--divider);overflow:hidden;flex:none}.prog>i{display:block;height:100%;border-radius:4px}.prog.ok>i{background:var(--green)}.prog.no>i{background:var(--orange)}.pct{font-size:13px}.footnote{margin-top:14px;font-size:11px;font-style:italic;color:var(--text-2)}@media(max-width:920px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.cards{grid-template-columns:1fr}.tr{grid-template-columns:1.3fr 1fr 1fr 1.3fr}}.back-btn{display:none;align-items:center;gap:6px;padding:7px 18px;font-size:12px;cursor:pointer;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--text)}.back-btn:hover{background:#f0f2f5}.inner-tabs{display:flex;gap:8px;margin-top:18px;border-bottom:1px solid var(--border)}.itab{padding:10px 20px;font-size:13px;cursor:pointer;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px}.itab.active{color:var(--brand-blue);border-bottom-color:var(--brand-blue);font-weight:500}.itab:hover:not(.active){color:var(--text)}.section-title{font-size:13px;font-weight:600;margin:20px 0 10px;color:var(--text)}.core-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:14px}.core-data{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s;text-align:center}.core-data:hover{border-color:#c9d3e0}.core-data.active{border-color:var(--brand-blue);box-shadow:0 0 0 2px #1b5aa01f}.core-data .cl{font-size:12px;color:var(--text-2)}.core-data .cv{font-size:22px;font-weight:700;margin-top:6px;color:var(--text)}.core-data.active .cv{color:var(--brand-blue)}.chart-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-top:18px}.chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.chart-head .ct{font-size:13px;font-weight:600}.chart-head .ct span{color:var(--text-2);font-weight:400;font-size:12px;margin-left:6px}.period-seg{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.period-seg button{padding:5px 14px;font-size:12px;background:#fff;border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--text-2);font-family:inherit}.period-seg button:last-child{border-right:none}.period-seg button.active{background:var(--brand-blue);color:#fff}.trend-svg{display:block;width:100%;height:300px}.axis-label,.axis-title{fill:var(--text-2);font-size:11px}.grid-line{stroke:var(--divider-soft);stroke-width:1}.ai-box{margin-top:14px;background:linear-gradient(90deg,#f4f8fd,#fff);border:1px solid #d6e4f5;border-left:4px solid var(--brand-blue);border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.8;color:#2a2f36}.ai-box b{color:var(--brand-blue)}.ai-tag{display:inline-block;background:var(--brand-blue);color:#fff;font-size:11px;padding:1px 8px;border-radius:4px;margin-right:8px;vertical-align:middle}.metric-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}.mtab{padding:7px 16px;font-size:12px;cursor:pointer;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--text-2)}.mtab.active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.select{font-family:inherit;font-size:12px;padding:7px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);cursor:pointer}.rank-list{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.rank-row{display:grid;grid-template-columns:36px 1.2fr 1fr;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--divider-soft)}.rank-row:last-child{border-bottom:none}.rank-row:nth-child(2n){background:#f7f8fa}.rank-no{width:24px;height:24px;border-radius:50%;background:var(--divider);color:var(--text-2);font-size:12px;display:flex;align-items:center;justify-content:center}.rank-row.top1 .rank-no{background:var(--brand-red);color:#fff}.rank-row.top2 .rank-no{background:var(--orange);color:#fff}.rank-row.top3 .rank-no{background:var(--brand-blue);color:#fff}.rank-name{font-size:13px}.rank-bar-wrap{display:flex;align-items:center;gap:10px}.rank-bar-track{flex:1;height:10px;background:var(--divider-soft);border-radius:5px;overflow:hidden}.rank-bar{height:100%;border-radius:5px;background:var(--brand-blue)}.rank-val{font-size:13px;font-weight:500;min-width:64px;text-align:right}.sum-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:6px}.sum-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px}.sum-card .sl{font-size:12px;color:var(--text-2)}.sum-card .sv{font-size:20px;font-weight:600;margin-top:4px}.sum-card .srank{font-size:11px;color:var(--brand-blue);margin-top:8px}.sub-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}.goods-table{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.goods-table .tr{display:grid;grid-template-columns:2.4fr 1fr 1fr 1fr}.goods-table .thead{background:var(--brand-blue);color:#fff;font-size:12px;font-weight:500}.goods-table .thead .td{padding:10px 16px}.goods-table .tbody .tr{background:#fff;font-size:13px}.goods-table .tbody .tr:nth-child(2n){background:#f7f8fa}.goods-table .td{padding:10px 16px;display:flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis}.placeholder{padding:70px 0;text-align:center;color:var(--text-2);font-size:14px}.funnel{margin:6px 0 4px;display:flex;flex-direction:column;align-items:flex-start}.engine-wrap{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.engine-wrap .funnel{flex:1 1 480px;min-width:420px}.ai-box{flex:0 0 320px;align-self:flex-start;background:#f7f9fc;border:1px solid var(--border);border-left:3px solid var(--brand-blue);border-radius:10px;padding:16px 18px;margin-top:6px}.ai-box .ai-title{font-size:13px;font-weight:600;color:var(--brand-blue);margin-bottom:8px}.ai-box .ai-line{font-size:13px;line-height:2;color:var(--text-1)}.fstep{width:100%;margin:0 auto;background:linear-gradient(135deg,#1b5aa0,#2f74b8);color:#fff;border-radius:10px;padding:15px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #1b5aa029}.fstep .fl{font-size:13px;opacity:.94}.fstep .fv{font-size:20px;font-weight:700;white-space:nowrap}.fstep.red{background:linear-gradient(135deg,#d3232a,#e0464c);box-shadow:0 2px 10px #d3232a2e}.w1{max-width:780px}.w2{max-width:700px}.w3{max-width:620px}.w4{max-width:540px}.w5{max-width:460px}.fconn{height:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.fconn .arrow{color:var(--brand-blue);font-size:13px;line-height:1}.fconn .conv{background:#eef3fa;color:var(--brand-blue);border-radius:11px;padding:2px 11px;font-size:11px;font-weight:500;white-space:nowrap}.fconn .plain{font-size:11px;color:var(--text-2)}.eff-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}.eff-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px}.eff-card .sl{font-size:12px;color:var(--text-2)}.eff-card .sv{font-size:20px;font-weight:600;margin-top:4px}.eff-card .sv.roi{color:var(--brand-red)}@media(max-width:920px){.core-metrics{grid-template-columns:repeat(3,1fr)}.sum-cards{grid-template-columns:1fr}.eff-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.core-metrics{grid-template-columns:repeat(2,1fr)}}.container{padding:0 24px 40px}@media(max-width:900px){.header{flex-wrap:wrap;gap:12px}.card,.table-wrap{overflow-x:auto}.container{padding:0 14px 32px}}.link-btn{appearance:none;border:none;background:none;font:inherit;color:var(--brand-blue);cursor:pointer;padding:0 4px;text-decoration:underline}.link-btn:hover{color:var(--brand-red)}.link-btn.danger{color:var(--brand-red);font-weight:600}.metric .value,.core-data .cv,.sum-card .sv,.eff-card .sv,.rank-val,.pct,.td,.cell-input,.fstep .fv{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.core-data .cv,.sum-card .sv,.eff-card .sv{letter-spacing:-.2px}:focus-visible{outline:2px solid rgba(27,90,160,.55);outline-offset:2px}.cell-input:focus-visible,.field-input:focus-visible,.select:focus-visible{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 3px #1b5aa024}.card{transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}a:hover>.card{border-color:#c9d3e0;box-shadow:0 6px 18px #1f232912;transform:translateY(-1px)}.tab,.itab,.mtab,.seg-btn,.period-seg button,.btn-primary,.btn-ghost,.btn-mini{transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.prog>i,.rank-bar{transition:width .35s ease}.link-out{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);text-decoration:none;padding:7px 14px;border:1px solid var(--border);border-radius:13px;background:#fff}.link-out:hover{color:var(--brand-blue);border-color:#c9d3e0}.link-btn{border-radius:4px}.link-btn:hover{background:#1b5aa00f}.link-btn.danger:hover{background:#d3232a12}.admin-tabs{margin-top:8px}.admin-hint{margin:10px 0 0;font-size:12px;color:var(--text-2)}.admin-alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 4px;padding:10px 14px;border-radius:8px;font-size:12px;line-height:1.7}.admin-alert.warn{background:#fff8ec;border:1px solid #f3d9b0;color:#8a5a12}.admin-alert.error{background:#fdf2f2;border:1px solid #f2c9c9;color:#a32020}.admin-alert.ok{background:#f2faf5;border:1px solid #c8e6d3;color:#1d6b3c}.admin-alert .link-btn{color:inherit;font-weight:600}.admin-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 10px}.toolbar-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.field-label{font-size:12px;color:var(--text-2)}.field-input{font-family:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.field-input.narrow{width:170px}.btn-primary{font-family:inherit;font-size:13px;font-weight:500;padding:8px 22px;border:none;border-radius:8px;background:var(--brand-blue);color:#fff;cursor:pointer}.btn-primary:hover:not(:disabled){background:#18508c}.btn-primary:disabled{background:#c3cbd6;cursor:not-allowed}.btn-ghost{font-family:inherit;font-size:13px;padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-2);cursor:pointer}.btn-ghost:hover:not(:disabled){background:#f0f2f5;color:var(--text)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-mini{font-family:inherit;font-size:12px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);cursor:pointer}.btn-mini:hover:not(:disabled){background:#f0f2f5}.btn-mini:disabled{opacity:.5;cursor:not-allowed}.admin-table-wrap{border:1px solid var(--border);border-radius:10px;overflow:auto;background:#fff;max-height:none}.admin-table{border-collapse:separate;border-spacing:0;width:100%}.admin-table thead th{background:#f7f8fa;border-bottom:1px solid var(--border);font-size:12px;font-weight:500;color:var(--text-2);padding:9px 10px;text-align:right;white-space:nowrap;position:sticky;top:0;z-index:2}.admin-table thead tr.group-row th{padding:7px 10px;font-weight:600;color:var(--text)}.admin-table thead th.group-th{text-align:center;background:#eef3fa;color:var(--brand-blue);border-bottom:1px solid var(--border)}.admin-table th.name-col{position:sticky;left:0;z-index:3;background:#fff;text-align:left;border-right:1px solid var(--border);min-width:150px;padding:10px 12px}.admin-table thead th.name-col{background:#f7f8fa;z-index:4}.admin-table tbody tr:nth-child(2n) th.name-col{background:#fcfcfd}.admin-table tbody tr:nth-child(2n){background:#fcfcfd}.admin-table tbody tr:hover,.admin-table tbody tr:hover th.name-col{background:#f6f9fd}.admin-table tbody tr.row-dirty,.admin-table tbody tr.row-dirty th.name-col{box-shadow:inset 3px 0 0 var(--brand-blue)}.row-name{display:block;font-size:13px;font-weight:600}.row-hint,.row-note{display:block;font-size:11px;color:var(--text-2);font-weight:400;margin-top:2px}.admin-table td{padding:6px;border-bottom:1px solid var(--divider-soft);text-align:right}.cell-input{width:100%;min-width:76px;font-family:inherit;font-size:13px;text-align:right;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text)}.cell-input:hover:not(:disabled){border-color:var(--border);background:#fff}.cell-input:disabled{color:var(--text-2);background:var(--divider-soft);cursor:not-allowed}.td-error .cell-input{border-color:var(--brand-red);background:#fdf4f4}.cell-error{display:block;font-size:11px;color:var(--brand-red);text-align:right;margin-top:2px}.cell-error.inline{margin-left:2px}.admin-empty{padding:26px 0;text-align:center;color:var(--text-2);font-size:13px}.th-mark{display:inline-block;margin-left:3px;width:12px;height:12px;line-height:12px;text-align:center;border-radius:50%;background:var(--divider);color:var(--text-2);font-size:9px;vertical-align:1px}.save-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;position:sticky;bottom:12px;box-shadow:0 1px 2px #1f23290a}.save-bar.dirty{border-color:#bcd0e8;box-shadow:0 6px 20px #1b5aa01f}.save-hint{font-size:12px;color:var(--text-2)}.save-bar.dirty .save-hint{color:var(--brand-blue)}.admin-footer{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px}.admin-footer-hint{font-size:11px;color:var(--text-2)}.admin-inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}@media(max-width:900px){.admin-table th.name-col{min-width:120px}.save-bar{position:static}}
