*,:after,:before{box-sizing:border-box}*,body,html{margin:0;padding:0}*{box-sizing:border-box}:root{--blue:#18a0ff;--green:#86df5a;--red:#ff3b3b;--warn:#18a0ff;--glow:0.6;--bg0:#050a16;--panel-brd:rgba(70,135,205,0.28)}body,html{width:100%;height:100%;font-family:PingFang SC,Microsoft YaHei,Hiragino Sans GB,sans-serif}#stage,body,html{background:#02060f;overflow:hidden}#stage{position:fixed;inset:0}#canvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:1080px;height:1920px;transform-origin:center center;background:radial-gradient(1200px 700px at 50% -8%,rgba(24,90,170,.3),transparent 60%),radial-gradient(900px 600px at 50% 108%,rgba(20,70,140,.2),transparent 60%),linear-gradient(180deg,#060d1d,#050a16 55%,#03070f);padding:26px 24px 24px;display:flex;flex-direction:column;gap:16px;color:#d7e6fb;overflow:hidden}.dash-header{position:relative;height:116px;flex:none;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(70,140,210,.22)}.dash-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--blue),transparent);opacity:.7}.hdr-side{font-size:19px;color:#6f93bd;letter-spacing:1px;min-width:150px;display:flex;align-items:center;gap:9px}.hdr-right{justify-content:flex-end;font-family:Oswald,sans-serif;font-size:26px;color:#aecbed;letter-spacing:2px}.live-dot{width:10px;height:10px;border-radius:50%;background:#36e07f;box-shadow:0 0 10px #36e07f;animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.hdr-title-wrap{position:relative}.hdr-title{background:none;border:none;cursor:pointer;color:#fff;font-size:42px;font-weight:800;letter-spacing:2px;line-height:1;white-space:nowrap;display:flex;align-items:center;gap:8px;text-shadow:0 0 calc(26px * var(--glow)) rgba(70,160,255,.85),0 2px 4px rgba(0,0,0,.5);font-family:PingFang SC,Microsoft YaHei,sans-serif}.hdr-caret{color:var(--blue);opacity:.85}.hdr-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:10px;z-index:40;background:#081428;border:1px solid var(--panel-brd);border-radius:8px;overflow:hidden;min-width:220px;box-shadow:0 18px 50px rgba(0,0,0,.6)}.hdr-menu button{display:block;width:100%;text-align:center;padding:14px 18px;background:none;color:#c2d8f4;font-size:22px;cursor:pointer;font-family:inherit;border:none;border-bottom:1px solid rgba(70,140,210,.12)}.hdr-menu button:hover{background:rgba(30,120,220,.18)}.hdr-menu button.on{color:var(--blue);background:rgba(30,120,220,.12)}.panel{position:relative;flex:none;background:linear-gradient(180deg,rgba(16,32,60,.62),rgba(9,18,36,.78));border:1px solid var(--panel-brd);border-radius:6px;padding:18px 22px 16px;box-shadow:inset 0 1px 0 rgba(120,180,255,.1),0 0 calc(34px * var(--glow)) rgba(20,90,180,.22)}.panel:after,.panel:before{content:"";position:absolute;width:16px;height:16px;border:2px solid var(--blue);opacity:.55}.panel:before{left:-1px;top:-1px;border-right:none;border-bottom:none}.panel:after{right:-1px;bottom:-1px;border-left:none;border-top:none}.panel-head{justify-content:space-between}.panel-head,.panel-title{display:flex;align-items:center}.panel-title{gap:12px;font-size:26px;font-weight:700;color:#eaf3ff;letter-spacing:1px}.title-bar{width:6px;height:24px;border-radius:2px;background:var(--blue)}.period-toggle{display:flex;border:1px solid rgba(90,150,220,.4);border-radius:4px;overflow:hidden}.period-pill{background:rgba(12,26,50,.6);color:#9fbbdd;font-size:22px;font-weight:600;padding:7px 26px;cursor:pointer;font-family:PingFang SC,sans-serif;border:none;border-right:1px solid rgba(90,150,220,.25)}.period-pill:last-child{border-right:none}.period-pill.active{color:#04111f;font-weight:700}.chart-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.chart-scroll::-webkit-scrollbar{display:none}.cz-track{position:relative;height:12px;margin:8px 2px 0;border-radius:6px;background:rgba(12,26,50,.6);border:1px solid rgba(90,150,220,.25)}.cz-thumb{position:absolute;top:1px;left:0;height:8px;border-radius:5px;cursor:-webkit-grab;cursor:grab;background:rgba(120,170,230,.5)}.cz-thumb:hover{background:rgba(150,195,245,.7)}.cz-thumb:active{cursor:-webkit-grabbing;cursor:grabbing;background:var(--blue)}.chart-subhead{display:flex;align-items:baseline;justify-content:space-between;margin:14px 2px 2px}.sub-date{font-size:19px;color:#7f9dc2;font-family:Oswald,sans-serif;letter-spacing:1px;white-space:nowrap;flex:none}.sub-live{font-size:22px;color:#cfe0f6;font-weight:600;display:flex;align-items:baseline;gap:10px;white-space:nowrap}.live-num{font-family:Oswald,sans-serif;font-size:40px;font-weight:700;letter-spacing:1px;text-shadow:0 0 calc(16px * var(--glow)) currentColor}.live-unit{font-size:20px;font-weight:600;margin-left:2px}.bottom-row{flex:1 1;display:flex;gap:16px;min-height:0}.warn-panel{width:462px;flex:none;display:flex;flex-direction:column}.summary-panel{flex:1 1;display:flex;flex-direction:column}.warn-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 12px}.warn-controls .sub-date{white-space:nowrap;font-size:17px}.warn-pills{display:flex;gap:7px;flex:none}.wpill{background:rgba(12,26,50,.6);border:1px solid rgba(90,150,220,.4);color:#9fbbdd;font-size:18px;padding:5px 13px;border-radius:3px;cursor:pointer;font-family:inherit}.wpill.on{background:var(--blue);border-color:var(--blue);color:#04111f;font-weight:700}.wpill.mute.on{background:var(--red);border-color:var(--red);color:#fff}.wrow{display:grid;grid-template-columns:132px 1fr 124px;align-items:center;padding:0 4px;height:50px}.whead,.wrow{font-size:20px}.whead{background:rgba(20,44,82,.7);border:1px solid rgba(80,150,225,.35);border-radius:3px;color:#bcd6f6;font-weight:600;height:48px}.scroll-vp{position:relative;overflow:hidden;margin-top:6px}.scroll-vp:after{content:"";position:absolute;left:0;right:0;bottom:0;height:60px;pointer-events:none;background:linear-gradient(transparent,rgba(7,15,30,.9))}.scroll-track{will-change:transform}.scroll-track .wrow{border-bottom:1px solid rgba(70,130,200,.12)}.scroll-track .wrow:nth-child(odd){background:rgba(255,255,255,.012)}.wcol{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wtime{font-family:Oswald,sans-serif;color:#b9d0ee;font-size:21px}.wplate{display:flex}.plate-badge{display:inline-block;width:132px;padding:5px 0;border-radius:3px;color:#fff;font-weight:700;font-family:Oswald,sans-serif;letter-spacing:1px;box-shadow:0 0 calc(10px * var(--glow)) rgba(40,120,255,.4)}.plate-badge,.wstatus{text-align:center;font-size:20px}.wstatus{color:var(--red);font-weight:600}.wrow.fresh .plate-badge{animation:flash 1.4s ease}@keyframes flash{0%{box-shadow:0 0 0 2px #fff}to{box-shadow:none}}.summary-daterow{margin:14px 0 10px}.datepick{position:relative}.datepick-field{justify-content:space-between;gap:14px;width:360px;background:rgba(12,26,50,.6);border:1px solid rgba(90,150,220,.4);border-radius:4px;color:#bcd6f6;font-size:19px;padding:9px 14px;cursor:pointer;font-family:Oswald,sans-serif;letter-spacing:1px;white-space:nowrap}.datepick-field,.datepick-pop{display:flex;align-items:center}.datepick-pop{position:absolute;top:100%;left:0;margin-top:8px;z-index:30;gap:10px;background:#081428;border:1px solid var(--panel-brd);border-radius:8px;padding:14px;box-shadow:0 16px 44px rgba(0,0,0,.6)}.datepick-pop label{display:flex;align-items:center;gap:6px;color:#9fbbdd;font-size:18px}.datepick-pop input{background:#0c1e3a;border:1px solid var(--panel-brd);color:#dce9fb;padding:6px 8px;border-radius:4px;font-size:16px}.dp-apply{background:var(--blue);color:#04111f;border:none;border-radius:4px;padding:8px 18px;font-weight:700;cursor:pointer;font-size:17px}.kpi-list{flex:1 1;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0}.kpi-row{display:grid;grid-template-columns:22px 1fr auto auto 22px;align-items:center;grid-gap:14px;gap:14px;padding:0 14px;height:70px;border:1px solid rgba(70,140,215,.22);border-radius:5px;background:linear-gradient(90deg,rgba(20,44,84,.5),rgba(12,26,52,.3))}.kpi-dot{width:12px;height:12px;border-radius:50%}.kpi-label{font-size:23px;color:#cde0f8;letter-spacing:1px}.kpi-num{font-family:Oswald,sans-serif;font-size:38px;font-weight:700;color:#fff;text-shadow:0 0 calc(14px * var(--glow)) rgba(120,190,255,.6)}.kpi-unit{font-size:20px;color:#8fb0d6}.kpi-arrow{opacity:.8}