:root{--bg:#070612;--panel:#14142d9e;--line:#7ac1ff59;--text:#d8ebff;--sub:#83a2c7}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);background:radial-gradient(circle at 30% 20%,#171742 0%,#070612 45%,#03030b 100%);margin:0;padding:0;font-family:PingFang SC,Microsoft YaHei,sans-serif}.screen{min-height:100vh;padding:1.4rem;position:relative;overflow:hidden}.screen__bgGlow{pointer-events:none;background:radial-gradient(circle at 20% 10%,#58b8ff3d,#0000 30%),radial-gradient(circle at 80% 80%,#a15aff33,#0000 38%),radial-gradient(circle,#5fffaa1a,#0000 42%);animation:10s ease-in-out infinite alternate drift;position:absolute;inset:-20%}.card{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border-radius:16px;box-shadow:inset 0 0 30px #89bdff14,0 0 34px #4176ff1f}.screen__header{z-index:2;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem 1.2rem;display:flex;position:relative}.subtitle{color:#7dd5ff;letter-spacing:1.5px;margin:0;font-size:.8rem}h1{text-shadow:0 0 16px #50acff99;margin:.3rem 0 0;font-size:clamp(1.3rem,2vw,2rem)}.timeBadge{color:#b4deff;border:1px solid #7fffec80;border-radius:999px;padding:.45rem .85rem;font-size:.84rem}.kpiGrid{z-index:2;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid;position:relative}.kpiCard{padding:.95rem;animation:.7s both rise;position:relative;overflow:hidden}.kpiCard p{color:var(--sub);margin:0}.kpiCard h2{margin:.45rem 0;font-size:1.85rem}.kpiCard span{color:#85f8be;font-size:.9rem}.scanLine{background:linear-gradient(#0000 0%,#8ee1ff38 50%,#0000 100%);animation:3.4s linear infinite scan;position:absolute;inset:0;transform:translateY(-100%)}.contentGrid{z-index:2;grid-template-columns:1.2fr 1.4fr 1.1fr;gap:.9rem;margin-top:.9rem;display:grid;position:relative}.panel,.mapPanel{padding:.95rem}h3{color:#8fd8ff;margin:0 0 .85rem;font-size:1.02rem}.tableHead,.tableRow{grid-template-columns:1.5fr 1fr 1fr;gap:.4rem;padding:.48rem .35rem;display:grid}.tableHead{color:var(--sub);border-bottom:1px solid #89bfff40}.tableRow{border-bottom:1px dashed #7ba3eb38;animation:.6s both slideIn}.mapCore{background:linear-gradient(#2b3e7d8c,#1013329e),repeating-linear-gradient(90deg,#9fd4ff12 0 1px,#0000 1px 24px),repeating-linear-gradient(0deg,#9fd4ff12 0 1px,#0000 1px 24px);border:1px solid #8ab8ff4d;border-radius:14px;height:280px;position:relative;overflow:hidden}.hex{clip-path:polygon(20% 0,80% 0,100% 50%,80% 100%,20% 100%,0 50%);border:1px solid #84bcff73;animation:2.6s ease-in-out infinite pulseMap;position:absolute;inset:14% 18%;box-shadow:0 0 40px #6596ff59}.mapPoint{animation:2.2s ease-in-out infinite alternate float;position:absolute;transform:translate(-50%,-50%)}.mapPoint i{background:#7affbb;border-radius:50%;width:11px;height:11px;display:block;box-shadow:0 0 14px #7affbb}.mapPoint span{margin-top:.3rem;font-size:.74rem;display:block}.alertRow{border-bottom:1px dashed #8fb2f033;grid-template-columns:auto 1fr 1fr 1.8fr;align-items:center;gap:.45rem;padding:.52rem .35rem;animation:.6s both slideIn;display:grid}.alertRow em{color:#a9c8ff;font-style:normal}.tag{border-radius:999px;place-items:center;min-width:2rem;padding:.1rem .45rem;font-size:.75rem;display:inline-grid}.tag-高{color:#ff92ab;background:#ff587a40}.tag-中{color:#ffe082;background:#ffd66140}.tag-低{color:#9effd4;background:#67ffbd3b}.ringGrid{z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;margin-top:.9rem;display:grid;position:relative}.ringCard{align-items:center;gap:1rem;padding:.9rem;display:flex}.ring{filter:drop-shadow(0 0 8px #60b4ff8c);border-radius:50%;place-items:center;width:92px;height:92px;display:grid}.ringInner{background:#0b1330;border-radius:50%;place-items:center;width:64px;height:64px;font-weight:700;display:grid}@keyframes drift{0%{transform:translate(-1.5%,-1.5%)scale(1)}to{transform:translate(1%,1%)scale(1.06)}}@keyframes pulse{0%{box-shadow:0 0 #7effcd00}to{box-shadow:0 0 20px #7effcd59}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes pulseMap{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes float{0%{transform:translate(-50%,-50%)}to{transform:translate(-50%,calc(-50% - 6px))}}.pulse{animation:1.3s ease-in-out infinite alternate pulse}@media (max-width:1200px){.kpiGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.contentGrid,.ringGrid{grid-template-columns:1fr}}
