:root{--bg:#06111f;--panel:rgba(7, 18, 33, 0.72);--panel-border:rgba(130, 170, 255, 0.18);--text:#eaf2ff;--muted:#98a9c7;--high:#ff5f6d;--medium:#ffd166;--normal:#66c7ff;--ok:#57e389;--warn:#ffb454;--shadow:0 20px 50px rgba(0, 0, 0, 0.35)}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at top,#0b1d33 0,#050b14 60%,#02050a 100%);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif}body.panel-open{overflow:hidden}#app{position:relative;width:100%;height:100%}#bg{display:block;width:100%;height:100%}.side-panel{position:static}.hud{position:absolute;inset:0;pointer-events:none}.panel{position:absolute;pointer-events:auto;background:var(--panel);backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:18px;box-shadow:var(--shadow)}.title-panel{top:18px;left:18px;width:360px;padding:18px 18px 16px;z-index:3}.title-panel h1{margin:6px 0 8px;font-size:28px;line-height:1.1;font-weight:700}.eyebrow{font-size:12px;letter-spacing:.14em;color:var(--muted)}.subline{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.08em}.badge-ok{background:rgba(87,227,137,.14);color:var(--ok)}.badge-warn{background:rgba(255,180,84,.14);color:var(--warn)}.summary-panel{top:18px;right:18px;width:360px;padding:16px;z-index:3}.panel-title{font-size:14px;font-weight:700;color:var(--muted);margin-bottom:12px;letter-spacing:.04em}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.summary-item{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.04)}.summary-item .label{font-size:12px;color:var(--muted)}.summary-item .value{margin-top:6px;font-size:28px;font-weight:700}.ranking-tabs-panel{position:absolute;top:270px;right:18px;width:360px;padding:16px;max-height:520px;overflow:hidden;z-index:3}.ranking-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ranking-tab{appearance:none;border:1px solid rgba(130,170,255,.16);background:rgba(255,255,255,.04);color:var(--muted);border-radius:999px;padding:8px 12px;font-size:10px;font-weight:700;cursor:pointer;transition:.18s ease}.ranking-tab:hover{color:var(--text);border-color:rgba(130,170,255,.3);background:rgba(255,255,255,.07)}.ranking-tab.active{color:var(--text);background:rgba(102,199,255,.14);border-color:rgba(102,199,255,.34);box-shadow:0 0 0 1px rgba(102,199,255,.16) inset}.ranking-tab-panels{min-height:260px;max-height:250px;overflow:auto}.tab-panel{display:none}.tab-panel.active{display:block}.event-panel{position:absolute;left:18px;bottom:18px;width:420px;padding:16px;max-height:420px;overflow:auto;z-index:3}.event-list,.list{display:flex;flex-direction:column;gap:10px}.event-list-head{display:grid;grid-template-columns:1fr 88px;gap:10px;align-items:center;padding:0 2px 8px;margin-bottom:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(200,220,255,.58);border-bottom:1px solid rgba(140,180,255,.12)}.event-list-head-main{min-width:0}.event-list-head-side{text-align:right;white-space:nowrap}.event-row,.list-row{display:grid;gap:8px;align-items:center;border-radius:14px;padding:10px 12px;background:rgba(255,255,255,.04)}.list-row .rank-key{display:flex;align-items:center;gap:8px;min-width:0}.list-flag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:14px;flex:0 0 auto;line-height:1}.list-flag-img{display:block;width:18px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}.list-row{grid-template-columns:1fr auto}.event-row{grid-template-columns:auto 1fr 88px;position:relative;transition:background .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease}.event-main,.rank-key{min-width:0}.rank-key{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-port,.rank-val{font-size:12px;font-weight:700}.event-sev{width:10px;height:10px;border-radius:50%}.event-main .line1{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.event-country{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.event-flag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:14px;flex:0 0 auto;line-height:1}.event-flag-img{display:block;width:18px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}.event-country-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-main .line2{margin-top:2px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-port{text-align:right;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sev-high{background:var(--high);box-shadow:0 0 14px rgba(255,95,109,.9)}.sev-medium{background:var(--medium);box-shadow:0 0 12px rgba(255,209,102,.8)}.sev-normal{background:var(--normal);box-shadow:0 0 12px rgba(102,199,255,.8)}.event-row.event-active{animation:eventPulse .45s ease-in-out 0s 4;transform:translateX(-2px)}.event-row.event-active-high{background:rgba(255,95,109,.14);box-shadow:0 0 0 1px rgba(255,95,109,.35),0 0 18px rgba(255,95,109,.18)}.event-row.event-active-medium{background:rgba(255,209,102,.14);box-shadow:0 0 0 1px rgba(255,209,102,.35),0 0 18px rgba(255,209,102,.15)}.event-row.event-active-normal{background:rgba(102,199,255,.12);box-shadow:0 0 0 1px rgba(102,199,255,.28),0 0 16px rgba(102,199,255,.12)}.legend{position:absolute;right:18px;bottom:18px;display:flex;gap:14px;padding:12px 14px;border-radius:14px;background:rgba(7,18,33,.72);border:1px solid var(--panel-border);color:var(--muted);font-size:12px;box-shadow:var(--shadow);z-index:3}.dot{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%}.dot-high{background:var(--high)}.dot-medium{background:var(--medium)}.dot-normal{background:var(--normal)}.toast-container{position:absolute;left:18px;top:130px;width:420px;display:flex;flex-direction:column;gap:10px;pointer-events:none;z-index:4}.toast{background:rgba(34,10,14,.9);border:1px solid rgba(255,95,109,.32);border-radius:16px;padding:12px 14px;box-shadow:var(--shadow);animation:toastIn .25s ease-out}.toast-title{font-size:13px;font-weight:800;color:#ffd7dc}.toast-sub{margin-top:4px;font-size:12px;color:#ffb9c1;line-height:1.4}.event-panel,.ranking-tab-panels,.ranking-tabs-panel{scrollbar-width:thin;scrollbar-color:rgba(120,170,255,0.45) rgba(255,255,255,0.05)}.event-panel::-webkit-scrollbar,.ranking-tab-panels::-webkit-scrollbar,.ranking-tabs-panel::-webkit-scrollbar{width:10px;height:10px}.event-panel::-webkit-scrollbar-track,.ranking-tab-panels::-webkit-scrollbar-track,.ranking-tabs-panel::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:999px}.panel-toggle{display:none}.panel-backdrop{display:none}.panel-close{display:none}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes eventPulse{0%{opacity:1}50%{opacity:.55}100%{opacity:1}}@media (max-width:1400px){.ranking-tabs-panel,.summary-panel{width:320px}.event-panel{width:450px}}@media (max-width:1100px){.event-panel,.legend,.ranking-tabs-panel,.summary-panel,.title-panel,.toast-container{transform:scale(.94);transform-origin:top left}.legend,.ranking-tabs-panel,.summary-panel{transform-origin:top right}}@media (max-width:900px){.title-panel{width:calc(100% - 36px)}.event-panel,.ranking-tabs-panel,.summary-panel{width:calc(100% - 36px);left:18px;right:18px}.summary-panel{top:150px}.ranking-tabs-panel{top:350px}.event-panel{bottom:70px;max-height:260px}.legend{left:18px;right:auto;bottom:18px}.toast-container{width:calc(40% - 36px);top:50px}.event-list-head,.event-row{grid-template-columns:auto 1fr 76px}}@media (max-width:768px){.side-panel{position:fixed;top:0;right:0;width:min(88vw,380px);height:100vh;z-index:40;transform:translateX(100%);transition:transform .26s ease;pointer-events:none;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px;padding-bottom:calc(55px + env(safe-area-inset-bottom))}.side-panel.open{transform:translateX(0);pointer-events:auto}.side-panel .hud{position:static;inset:auto;pointer-events:auto;display:contents}.side-panel .event-panel,.side-panel .ranking-tabs-panel,.side-panel .summary-panel,.side-panel .title-panel{position:static;left:auto;right:auto;top:auto;bottom:auto;width:100%;max-width:none;margin:0;transform:none!important}.side-panel .title-panel{padding:16px 16px 14px}.side-panel .title-panel h1{font-size:24px}.side-panel .event-panel,.side-panel .ranking-tabs-panel,.side-panel .summary-panel{padding:14px}.side-panel .ranking-tabs-panel{max-height:none;overflow:visible}.side-panel .event-panel{max-height:none;overflow:visible;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.panel-toggle{display:flex;align-items:center;justify-content:center;position:fixed;right:0;top:50%;transform:translateY(-50%);width:34px;height:86px;border:1px solid rgba(130,170,255,.22);border-right:none;border-radius:14px 0 0 14px;background:rgba(7,18,33,.88);backdrop-filter:blur(12px);color:var(--text);font-size:22px;line-height:1;cursor:pointer;box-shadow:var(--shadow);z-index:45}.panel-toggle.open{right:min(88vw,380px)}.panel-backdrop{position:fixed;inset:0;display:block;background:rgba(2,6,12,.42);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .26s ease;z-index:38}.panel-backdrop.open{opacity:1;pointer-events:auto}.panel-close{display:inline-flex;align-items:center;justify-content:center;position:sticky;top:0;align-self:flex-end;width:36px;height:36px;border:1px solid rgba(130,170,255,.18);border-radius:10px;background:rgba(255,255,255,.08);color:var(--text);font-size:18px;cursor:pointer;z-index:46;margin-bottom:4px}.panel-close:hover{background:rgba(255,255,255,.09)}.legend{left:10px;right:auto;bottom:10px;gap:10px;padding:10px 12px;font-size:11px;transform:none!important;z-index:32}.summary-grid{gap:10px}.summary-item{padding:10px 12px}.summary-item .label{font-size:11px}.summary-item .value{font-size:24px}.panel-title{font-size:13px;margin-bottom:10px}.ranking-tabs{gap:6px;margin-bottom:10px}.ranking-tab{padding:7px 10px;font-size:10px}.ranking-tab-panels{min-height:0;max-height:none;overflow:visible}.event-list-head,.event-row{grid-template-columns:auto 1fr 64px}.event-list-head{gap:8px;font-size:10px}.event-row{padding:9px 10px;gap:7px}.event-main .line1{font-size:12px;gap:6px}.event-main .line2,.event-port,.rank-key,.rank-val{font-size:11px}}