:root{--nav:#11272c;--nav2:#18383d;--mint:#127d65;--mint-soft:#e8f6ee;--blue:#487ba6;--bg:#f4f6f4;--ink:#1d3334;--muted:#708083;--line:#e1e8e5;--white:#fff;--amber:#a57628;--red:#b84c43}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.55}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.sidebar{width:228px;height:100vh;position:fixed;inset:0 auto 0 0;background:var(--nav);color:#cbdedc;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:750;letter-spacing:.7px;color:white}.brandmark{width:42px;height:46px;border:1px solid #5a8e83;color:#8ee2bc;display:grid;place-items:center;border-radius:13px 13px 13px 2px;font-size:30px;line-height:1;font-weight:800}.brand small{display:block;font-size:10px;letter-spacing:1px;font-weight:450;color:#9ab8b4;margin-top:4px}.navgroup{font-size:10px;color:#6f9992;letter-spacing:1.5px;margin:43px 12px 17px}nav button{background:transparent;border:0;color:#9bb9b5;border-radius:9px;padding:13px 16px;display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin:6px 0;font-size:13px}nav button span{font-size:20px;width:21px}nav button.active{background:#284b45;color:#a4efd0;font-weight:650;box-shadow:inset 3px 0 #74c9a5}nav button:hover{background:var(--nav2)}.sidebar-foot{margin-top:auto;padding:19px 12px 0;border-top:1px solid #2a474a;font-size:12px;color:#a8c7bd}.sidebar-foot p{color:#7e9c98;font-size:11px;margin:12px 0 22px}.version{font-size:9px;letter-spacing:1.8px}main{margin-left:228px;padding:32px 36px 15px;max-width:1900px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--mint);font-weight:650}h1{font-size:29px;margin:7px 0 5px;letter-spacing:-.6px}header p{margin:0;color:var(--muted);font-size:12px}.account{display:flex;align-items:center;gap:10px;font-size:12px}.avatar{border-radius:50%;width:33px;height:33px;background:#dce8df;color:var(--mint);display:grid;place-items:center}.quiet{border:0;background:none;color:var(--muted);padding:9px}.toolbar{background:white;border:1px solid var(--line);border-radius:12px;padding:13px 15px;display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.filters{display:flex;gap:13px;flex-wrap:wrap}.filters label{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:4px}select,input[type=date]{border:1px solid var(--line);border-radius:6px;padding:7px 10px;color:var(--ink);background:#fafcfa;font-size:12px;min-width:100px;max-width:190px}.toolbar-actions{display:flex;gap:8px;white-space:nowrap}.button{border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);padding:9px 13px;font-size:12px}.button:hover{border-color:var(--mint)}.accent{background:var(--mint);color:white;border-color:var(--mint)}.statusline{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);padding:11px 2px;flex-wrap:wrap}.statusline label{display:flex;align-items:center;margin-right:12px}.small-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4baf8a;margin-right:5px}.statusline .offline{background:var(--amber)}.spacer{flex:1}.notice{background:#edf2ef;border:1px solid #dce7e0;border-radius:8px;padding:11px 15px;margin:0 0 17px;font-size:11px;color:#627973}.notice.scope{margin-bottom:22px}.notice b{color:var(--mint);margin-right:8px}.demo{background:#fff6df;border-color:#edd69e;color:#77540f;font-weight:650}.danger{background:#fff0ed;border-color:#f1c7c1;color:var(--red)}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;margin-bottom:22px}.kpi{padding:18px 17px;background:white;border:1px solid var(--line);border-radius:11px;position:relative;min-width:0}.kpi.primary{background:var(--nav);color:white;border-color:var(--nav)}.kpi .label{font-size:11px;color:var(--muted);white-space:nowrap}.kpi.primary .label{color:#adc8bf}.kpi .value{font-size:30px;font-weight:750;letter-spacing:-1px;margin:8px 0 4px;font-variant-numeric:tabular-nums}.kpi.primary .value{color:#99e3bf}.kpi small{font-size:10px;color:#80918c;line-height:1.5;display:block}.four{grid-template-columns:repeat(4,1fr)}.two-col{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:20px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:start;gap:10px;margin-bottom:12px}.card h2{font-size:14px;font-weight:650;margin:0 0 6px;letter-spacing:.1px}.card-head p,.muted{margin:0 0 10px;font-size:11px;color:var(--muted)}.tag{font-size:9px;background:#f0f4f0;color:#6c8277;padding:4px 8px;border-radius:5px;white-space:nowrap}.legend{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);white-space:nowrap;padding-top:3px}.key{width:7px;height:7px;border-radius:3px;display:inline-block}.mint{background:var(--mint)}.blue{background:var(--blue)}.chart{height:215px;position:relative}.chart svg{width:100%;height:100%;overflow:visible}.chart text{fill:#8c9b96;font-size:10px;font-family:inherit}.chart .grid{stroke:#eaf0ea;stroke-dasharray:3 4}.chart .series{fill:none;stroke:#127d65;stroke-width:2.5;stroke-linejoin:round}.chart .series-new{fill:none;stroke:#6d9dc0;stroke-width:2;stroke-dasharray:5 5}.chart .area{fill:#eaf4eb}.chart circle{fill:#127d65}.chart-foot{display:flex;justify-content:space-between;border-top:1px solid #eef1ed;padding-top:13px;font-size:11px;color:#7a8b83}.chart-foot b{color:var(--ink);font-size:15px;margin-right:5px}.retention-row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid #edf0ea}.retention-row strong{font-size:12px;display:block}.retention-row small{font-size:10px;color:#8a968e}.retention-row .pct{font-size:24px;font-weight:700;color:var(--mint);margin-left:auto;letter-spacing:-.7px}.hint{font-size:10px;color:#8a958b;line-height:1.65;margin-top:15px}.bottom{margin-top:20px}.insights p{font-size:12px;color:#677d72;margin:0;padding:13px 0 13px 24px;border-bottom:1px solid #edf1ec;position:relative}.insights p:before{content:'↗';color:var(--mint);position:absolute;left:0;font-size:15px}.insights p:last-child{border:0}.mode-row{margin:17px 0;font-size:11px}.mode-top{display:flex;justify-content:space-between;margin-bottom:7px}.mode-top span:last-child{color:var(--muted)}.bar-svg{display:block;width:100%;height:6px}.bar-bg{fill:#eef3ee}.bar-fill{fill:#80b5a1}.tablewrap{overflow:auto;margin-top:15px}table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}th{text-align:left;background:#f7f9f6;color:#7a8a80;font-weight:500;padding:10px 11px}td{padding:11px;border-bottom:1px solid #edf1eb;font-variant-numeric:tabular-nums;color:#435e51}tr:last-child td{border:0}.heat{font-weight:600;color:#416254;border-radius:3px;text-align:center}.heat.h0{color:#99a19b;background:#f6f7f4}.heat.h1{background:#eff5eb}.heat.h2{background:#d8ebd9}.heat.h3{background:#b5dbc6}.heat.h4{background:#76b69a;color:white}.heat.h5{background:#287e65;color:white}.empty{padding:55px 10px;text-align:center;color:#91a196;font-size:12px}.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:22px}.policy-grid strong{color:var(--mint);font-size:18px}.policy-grid p{font-size:11px;color:var(--muted)}.kv-row{padding:13px 0;border-bottom:1px solid #edf1ed;display:flex;gap:16px;align-items:start;font-size:12px}.kv-row span{color:var(--muted);min-width:95px}.kv-row b{font-weight:500;overflow-wrap:anywhere}.kv{margin-bottom:20px}.danger-button{color:var(--red);margin-top:16px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--nav);color:white;padding:12px 25px;border-radius:10px;box-shadow:0 5px 30px #0003;z-index:10}footer{display:flex;justify-content:space-between;color:#8d9b90;font-size:10px;padding:25px 0 8px}.hidden{display:none!important}a{color:var(--mint)}.login-body{background:var(--nav);min-height:100vh;display:grid;place-items:center;padding:30px}.login-shell{display:grid;grid-template-columns:1fr 1fr;max-width:870px;border-radius:18px;overflow:hidden;background:white;box-shadow:0 35px 100px #0004}.login-art{background:#193e3e;padding:45px;color:#dbeee5;display:flex;flex-direction:column}.login-art .brand{margin-bottom:72px}.login-art h2{font-size:28px;line-height:1.6}.login-art p{font-size:12px;color:#91b3a8;line-height:1.9}.login-form{padding:48px 40px}.login-form h1{font-size:24px}.login-form p{font-size:12px;color:var(--muted)}.login-form label{display:block;font-size:12px;margin-top:22px}.login-form input{width:100%;padding:12px 14px;background:#f7f9f6;border:1px solid var(--line);border-radius:7px;margin-top:7px}.login-form button{width:100%;margin-top:28px}.login-form .hint{margin-top:28px}.login-message{color:var(--red);font-size:12px;min-height:20px;margin-top:14px}
@media(min-width:1600px){.chart{height:265px}.kpi .value{font-size:36px}.card{padding:27px}}
@media(max-width:1200px){main{padding:25px 23px;margin-left:200px}.sidebar{width:200px}.kpis{grid-template-columns:repeat(3,1fr)}.toolbar{align-items:start;flex-direction:column}.two-col{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr)}}
@media(max-width:850px){.sidebar{position:static;width:100%;height:auto;padding:15px}.brand small,.sidebar-foot,.navgroup{display:none}nav{display:flex;overflow:auto;margin-top:12px}nav button{min-width:120px;margin:0}nav button span{display:none}.brandmark{width:30px;height:33px;font-size:22px}.brand{font-size:17px}main{margin:0;padding:20px 16px}.two-col{grid-template-columns:1fr}header{align-items:start}h1{font-size:24px}.account{font-size:11px}.account .avatar{display:none}.kpis{grid-template-columns:repeat(3,1fr);gap:8px}.kpi{padding:14px 12px}.kpi .value{font-size:27px}.filters{gap:9px}.toolbar-actions{align-self:end}.four{grid-template-columns:repeat(2,1fr)}footer{display:block}footer span{display:block;margin-top:5px}.login-shell{grid-template-columns:1fr}.login-art{display:none}}
@media(max-width:460px){.kpis{grid-template-columns:repeat(2,1fr)}.account #adminName{display:none}.filters select,.filters input{min-width:115px;max-width:135px}.policy-grid{grid-template-columns:1fr}.card{padding:18px}.notice.scope{font-size:10px}}

.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kv-row b{overflow-wrap:anywhere}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4ad4b6;outline-offset:3px}#healthChecks{border-left:3px solid #e3b25e;padding-left:14px;margin-bottom:18px}#accountInfo p{overflow-wrap:anywhere}@media(max-width:720px){.kpis.three{grid-template-columns:1fr}.sidebar nav{gap:4px}.sidebar nav button{min-height:44px}#logoutOthers,#prune{margin-top:10px;max-width:100%}}

section.stale {position:relative;min-height:180px;}
section.stale > * {visibility:hidden;}
section.stale::before {content:'所选范围的数据尚未就绪，旧结果暂不显示。';position:absolute;inset:30px 12px auto;color:var(--muted,#a2b4c8);font-size:15px;visibility:visible;}
#reliabilityInfo .kv-row b {max-width:62%;text-align:right;overflow-wrap:anywhere;}
#backupNow,#downloadDiagnostics {margin:10px 6px 12px 0;}
