:root{--ink:#182420;--ink-2:#5a6b64;--paper:#f2f4f0;--card:#fff;--primary:#0b7a63;--primary-deep:#085546;--danger:#cf3d21;--gold:#b8860b;--line:#e3e8e2;--num-font:"Helvetica Neue", "PingFang SC", -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 500px at 85% -10%, #0b7a630f, transparent 60%), var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,-apple-system,sans-serif}.num{font-family:var(--num-font);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.kpi-value{font-family:var(--num-font);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:30px;font-weight:700;line-height:1.1}.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px 14px;transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}.kpi-card:hover{transform:translateY(-1px);box-shadow:0 6px 24px #18242014}.kpi-card:before{content:"";background:var(--primary);border-radius:2px;width:3px;position:absolute;top:12px;bottom:12px;left:0}.kpi-card.is-main:before{background:var(--gold)}.kpi-card.is-danger:before{background:var(--danger)}.up{color:var(--danger)}.down{color:var(--primary)}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px}.panel-title{align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;display:flex}.panel-title:before{content:"";background:var(--primary);width:8px;height:8px;display:inline-block;transform:rotate(45deg)}.fade-in{animation:.45s both fadeUp}.fade-in:nth-child(2){animation-delay:60ms}.fade-in:nth-child(3){animation-delay:.12s}.fade-in:nth-child(4){animation-delay:.18s}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.login-bg{background:radial-gradient(800px 400px at 20% 20%,#0b7a6324,#0000 55%),radial-gradient(700px 500px at 85% 80%,#b8860b1a,#0000 55%),linear-gradient(160deg,#0d221c 0%,#123328 55%,#0d221c 100%);justify-content:center;align-items:center;height:100vh;display:flex;position:relative}.login-grid{background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}.brand-mark{align-items:center;gap:10px;font-weight:700;display:inline-flex}.brand-mark .dot{background:var(--primary);width:10px;height:10px;transform:rotate(45deg)}.status-dot{border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.status-dot.on{background:var(--primary)}.status-dot.off{background:var(--danger);animation:1.6s infinite blink}.status-dot.none{background:#c4ccc7}@keyframes blink{50%{opacity:.35}}.drill-row{cursor:pointer}.ant-table-content,.ant-table-body{scrollbar-width:auto;scrollbar-color:#93aa9f #edf3ef}.ant-table-content::-webkit-scrollbar{width:10px;height:10px}.ant-table-body::-webkit-scrollbar{width:10px;height:10px}.ant-table-content::-webkit-scrollbar-thumb{background:#93aa9f;border-radius:8px}.ant-table-body::-webkit-scrollbar-thumb{background:#93aa9f;border-radius:8px}.ant-table-content::-webkit-scrollbar-track{background:#edf3ef}.ant-table-body::-webkit-scrollbar-track{background:#edf3ef}.diagnostics-page{--diag-forest:#0a3d33;--diag-forest2:#0b7a63;--diag-paper:#f7f5ef;--diag-paper2:#fbfaf6;--diag-brass:#a8834e;--diag-rust:#b4513a;--diag-rule:#ddd9ce;--diag-ink:#1d2925;--diag-muted:#6f7a75}.diagnostics-toolbar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.diagnostics-toolbar h2{color:var(--diag-forest);margin:0;font-family:Songti SC,serif;font-size:28px}.diagnostics-toolbar p{color:var(--ink-2);margin:4px 0 0}.diagnostics-grid{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:16px;display:grid}.diagnostic-tasks{padding:12px;position:sticky;top:68px}.task-head{justify-content:space-between;align-items:center;padding:5px 4px 12px;font-weight:700;display:flex}.task{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;width:100%;padding:12px 8px;display:block}.task.active{color:var(--primary);background:#edf5f1}.task b{margin-bottom:6px;display:block}.task span{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:11px;display:flex}.diagnostic-upload-panel{margin-bottom:14px;padding:16px}.task-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.task-summary h3{margin:0 0 7px}.upload-zones{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.upload-zone{border:1px solid var(--line);background:#fafcf9;justify-content:space-between;align-items:center;gap:12px;min-height:108px;padding:14px;display:flex}.upload-zone.disabled{opacity:.65;background:repeating-linear-gradient(45deg,#fafafa,#fafafa 8px,#f2f3f2 8px 16px)}.upload-zone p{color:var(--ink-2);margin:5px 0;font-size:12px}.parse-state,.parse-error{background:#edf5f1;margin-top:12px;padding:10px 12px;font-size:12px}.parse-error{color:var(--danger);background:#fff1ef}.report-actions{justify-content:flex-end;margin:8px 0;display:flex}.diag-upload-warnings,.diag-internal-notice{color:#765a26;background:#fff8e8;border-left:3px solid #a8834e;margin:10px 0;padding:10px 12px;font-size:12px}.diag-internal-notice{color:#35554b;background:#eef5f2;border-left-color:#0b7a63}.diagnostic-report{background-color:var(--diag-paper);max-width:1080px;color:var(--diag-ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");margin:0 auto 80px;padding:0 56px 80px;position:relative;overflow:hidden}.diagnostic-report,.diagnostic-report *{box-sizing:border-box}.diag-reveal{animation:.6s both diag-up}@keyframes diag-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.diag-cover{border-bottom:2px solid var(--diag-forest);padding:78px 0 54px}.diag-eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--diag-brass);margin-bottom:25px;font-size:11px;font-weight:600}.diag-eyebrow:after{content:"";background:var(--diag-brass);width:44px;height:2px;margin-top:12px;display:block}.diag-cover h1{color:var(--diag-forest);margin:0 0 8px;font-family:Songti SC,STSong,serif;font-size:54px;font-weight:400;line-height:1.1}.diag-sub{color:var(--diag-muted);margin-bottom:38px;font-size:18px}.diag-meta{flex-wrap:wrap;gap:40px;display:flex}.diag-meta div{min-width:150px}.diag-meta small{letter-spacing:.15em;color:#8a928e;margin-bottom:5px;font-size:10px;display:block}.diag-meta b{font-size:14px;font-weight:500}.diag-verdict{background:var(--diag-forest);color:#e8f0ec;margin:0 -56px;padding:40px 56px}.diag-verdict .lead{max-width:82%;font-family:Songti SC,serif;font-size:24px;line-height:1.55}.diag-verdict .lead b{color:#fff;border-bottom:1px solid var(--diag-brass)}.diag-verdict .foot{color:#e8f0eca6;margin-top:19px;font-size:12px}.diag-section{padding:68px 0 0}.diag-sec-head{align-items:baseline;gap:18px;display:flex}.diag-sec-head span{color:#d6dbd6;font-family:Songti SC,serif;font-size:48px}.diag-sec-head h2{color:var(--diag-forest);margin:0;font-family:Songti SC,serif;font-size:25px;font-weight:400}.diag-section>p{color:var(--diag-muted);margin:4px 0 30px;padding-left:67px;font-size:13px}.diag-scorecard{background:var(--diag-rule);border:1px solid var(--diag-rule);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.diag-scorecard>div{background:var(--diag-paper2);padding:23px 19px}.diag-scorecard small{color:#8a928e;margin-bottom:10px;font-size:11px;display:block}.diag-scorecard b{color:var(--diag-forest);font-variant-numeric:tabular-nums;font-size:27px;font-weight:500}.diag-scorecard b em{color:var(--diag-brass);margin-top:6px;font:15px/1.2 Helvetica Neue,sans-serif;display:block}.diag-pct-list{margin-top:34px}.diag-pct{border-bottom:1px solid var(--diag-rule);grid-template-columns:190px 1fr 145px;align-items:center;gap:20px;padding:16px 0;display:grid}.diag-pct:first-child{border-top:1px solid #bac4be}.diag-pct-name{font-size:14px}.diag-pct-name em{color:#8a928e;margin-top:3px;font-size:10px;font-style:normal;display:block}.diag-track{height:26px;position:relative}.diag-track .base,.diag-track .fill{background:var(--diag-rule);height:2px;position:absolute;top:12px;left:0;right:0}.diag-track .fill{background:var(--diag-forest2);right:auto}.diag-track .fill.warn{background:var(--diag-rust)}.diag-track .tick{background:#bac4be;width:1px;height:10px;position:absolute;top:8px}.diag-track .mark{background:var(--diag-paper2);border:2px solid var(--diag-forest);width:13px;height:13px;margin-left:-6px;position:absolute;top:6px;transform:rotate(45deg)}.diag-track .mark.warn{border-color:var(--diag-rust)}.diag-pct-score{text-align:right;color:var(--diag-forest);font-variant-numeric:tabular-nums;font-size:18px}.diag-pct-score.warn{color:var(--diag-rust)}.diag-pct-score small{color:#8a928e;margin-top:2px;font-size:9px;display:block}.diag-axis{grid-template-columns:190px 1fr 145px;gap:20px;margin-top:8px;display:grid}.diag-axis>div:nth-child(2){color:#8a928e;justify-content:space-between;font-size:9px;display:flex}.diag-pct.fallback{background:#9d772a0e;margin-inline:-10px;padding-inline:10px}.diag-pct.fallback .diag-pct-score small{color:var(--diag-brass)}.diag-note{border-left:3px solid var(--diag-brass);color:var(--diag-muted);background:#a8834e12;margin-top:34px;padding:20px 24px;font-size:13px;line-height:1.8}.diag-note b{color:var(--diag-ink)}.diag-note.matching{border-left-color:var(--diag-forest2)}.diag-note.warn{border-left-color:var(--diag-rust)}.diag-table-wrap{max-height:620px;overflow-x:auto}.diag-compare{border-collapse:separate;border-spacing:0;width:100%;min-width:1080px}.diag-compare th{z-index:2;background:var(--diag-paper);letter-spacing:.08em;color:#8a928e;text-align:right;white-space:nowrap;border-bottom:1px solid #bac4be;padding:0 12px 10px;font-size:10px;position:sticky;top:0}.diag-compare th button{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;padding:0}.diag-compare th:first-child{text-align:left;z-index:3;left:0}.diag-compare td{border-bottom:1px solid var(--diag-rule);text-align:right;white-space:nowrap;padding:14px 12px;font-size:13px}.diag-compare td:first-child{z-index:1;background:var(--diag-paper);text-align:left;position:sticky;left:0}.diag-compare td small{color:#8a928e;padding-left:32px;display:block}.rank{text-align:center;border:1px solid #bac4be;width:22px;height:22px;margin-right:10px;font-size:11px;font-style:normal;line-height:20px;display:inline-block}.rank.top{background:var(--diag-forest);color:#fff;border-color:var(--diag-forest)}.diag-chip{color:var(--diag-forest2);border:1px solid #bac4be;margin-left:3px;padding:2px 6px;font-size:10px;display:inline-block}.diag-group-position{text-align:left;white-space:normal;min-width:190px}.diag-group-position>div{grid-template-columns:62px 48px 1fr;gap:5px;padding:2px 0;font-size:10px;display:grid}.diag-group-position span{color:var(--diag-muted)}.diag-group-position b{font-weight:600}.diag-group-position small{color:var(--diag-brass)!important;padding:0!important}.diag-group-empty{color:var(--diag-muted);font-size:11px}.diag-store{border:1px solid var(--diag-rule);background:var(--diag-paper2);margin-top:34px}.diag-store-head{border-bottom:1px solid var(--diag-rule);background:linear-gradient(#0a3d330b,#0000);justify-content:space-between;align-items:end;padding:21px 25px;display:flex}.diag-store-head h3{color:var(--diag-forest);margin:0;font-family:Songti SC,serif;font-size:19px;font-weight:400}.diag-store-head small{color:#8a928e;margin-top:4px;display:block}.diag-store-head>div:last-child{text-align:right}.diag-store-head>div:last-child b{color:var(--diag-forest);font-size:25px;font-weight:500;display:block}.diag-channels{grid-template-columns:repeat(3,1fr);display:grid}.diag-channel{border-right:1px solid var(--diag-rule);padding:21px 24px}.diag-channel:last-child{border:0}.diag-channel.empty{background:repeating-linear-gradient(45deg,#0000,#0000 7px,#93a49b14 7px 14px)}.diag-channel-name{align-items:center;gap:8px;margin-bottom:15px;display:flex}.diag-channel-name .dot{background:var(--diag-forest2);width:7px;height:7px}.diag-channel-name .dot.tb{background:var(--diag-brass)}.diag-channel-name .dot.off{background:#9aa39f}.diag-kv{border-bottom:1px dotted var(--diag-rule);justify-content:space-between;gap:10px;padding:8px 0;font-size:11px;display:flex}.diag-kv span{color:var(--diag-muted)}.diag-kv b{text-align:right;font-size:12px;font-weight:500}.diag-kv b.bad{color:var(--diag-rust)}.diag-empty{text-align:center;color:#8a928e;padding:28px 0;font-size:12px;line-height:1.8}.diag-rec{border-bottom:1px solid var(--diag-rule);grid-template-columns:42px 1fr;gap:16px;padding:19px 0;display:grid}.diag-rec>i{color:var(--diag-brass);font-size:18px;font-style:normal}.diag-rec b{font-size:14px}.diag-rec p{color:var(--diag-muted);margin:5px 0 0;font-size:12px;line-height:1.7}.diag-footer{border-top:2px solid var(--diag-forest);color:#8a928e;justify-content:space-between;margin-top:70px;padding-top:23px;font-size:10px;display:flex}.diagnostics-page{--diag-paper:#f4f1e9}.diagnostic-report{font-weight:500}.diag-cover h1,.diag-sec-head h2{font-weight:700}.diag-cover h1{font-size:56px}.diag-meta b{font-weight:700}.diag-verdict{justify-content:space-between;align-items:center;gap:28px;display:flex}.diag-verdict .lead{max-width:72%;font-weight:700}.grade-badge{text-align:center;border:2px solid #ffffff59;min-width:150px;padding:14px 20px}.grade-badge small,.grade-badge span{color:#ffffffbf;font-size:10px;display:block}.grade-badge strong{color:#fff;margin:5px 0;font-size:58px;font-weight:800;line-height:1;display:block}.diag-sub-head{color:var(--diag-forest);letter-spacing:.08em;margin:34px 0 12px;font-size:14px;font-weight:800}.diag-scorecard{background:0 0;border:0;gap:10px}.diag-scorecard.c4{grid-template-columns:repeat(4,1fr)}.diag-scorecard>div{border:2px solid var(--diag-rule);background:#fff;padding:22px 18px}.diag-scorecard b{font-size:38px;font-weight:800}.diag-scorecard em{color:var(--diag-muted);margin-top:7px;font-size:11px;font-style:normal;display:block}.diag-rating-table{border-collapse:collapse;border:2px solid var(--diag-rule);background:#fff;width:100%}.diag-rating-table th,.diag-rating-table td{border-bottom:1px solid var(--diag-rule);text-align:right;padding:13px 15px}.diag-rating-table th:first-child,.diag-rating-table td:first-child{text-align:left}.diag-rating-table td small{color:var(--diag-muted);margin-top:3px;font-weight:500;display:block}.diag-rating-table tfoot td{background:#0a3d330d;font-size:18px;font-weight:800}.diag-advice-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.diag-advice{border:2px solid var(--diag-rule);background:#fff;padding:22px 24px}.diag-advice.good{border-top:5px solid var(--diag-forest2)}.diag-advice.bad{border-top:5px solid var(--diag-rust)}.diag-advice h3{margin:0 0 14px;font-size:18px}.diag-advice li{margin:10px 0;font-size:13px;line-height:1.7}.diag-advice.bad li::marker{color:var(--diag-rust)}.diag-store{border:2px solid var(--diag-rule);background:#fff}.diag-store-head{align-items:center}.diag-store-head h3{font-weight:700}.diag-store-grade{align-items:center;gap:10px;display:flex!important}.diag-store-grade small{margin:0}.diag-store-grade b{font-size:30px!important;font-weight:800!important}.diag-store-advice{border-top:2px solid var(--diag-rule);background:#a8834e14;padding:18px 24px;font-size:13px;font-weight:600;line-height:1.7}.diag-kv b{font-weight:700}@media (width<=1000px){.diagnostics-grid{grid-template-columns:1fr}.diagnostic-tasks{position:static}.upload-zones{grid-template-columns:1fr}.diagnostic-report{padding-inline:24px}.diag-verdict{margin-inline:-24px;padding-inline:24px}.diag-scorecard,.diag-scorecard.c4{grid-template-columns:repeat(2,1fr)}.diag-advice-grid{grid-template-columns:1fr}.diag-verdict .lead{max-width:none}.diag-channels{grid-template-columns:1fr}.diag-channel{border-right:0;border-bottom:1px solid var(--diag-rule)}.diag-pct,.diag-axis{grid-template-columns:135px 1fr 100px;gap:10px}}@media print{body{background:#fff}.ant-layout-sider,.ant-layout-header,.diagnostics-toolbar,.diagnostic-tasks,.diagnostic-upload-panel,.report-actions{display:none!important}.ant-layout-content{max-width:none!important;padding:0!important}.diagnostics-grid{display:block}.diagnostic-report{background:#fff;max-width:none;padding:0 8mm 10mm}.diag-verdict{-webkit-print-color-adjust:exact;print-color-adjust:exact;margin:0}.diag-section{padding-top:30px}.diag-store{break-inside:avoid}.diag-reveal{opacity:1;animation:none;transform:none}@page{size:A4;margin:10mm}}
