:root{
  --bg: #090b10;
  --bg-2:#0e1117;
  --panel: rgba(16,19,26,.86);
  --panel-2: rgba(20,24,33,.94);
  --glass: blur(12px);
  --border:#1f2640;
  --muted-border:#263050;
  --text:#e7eaf4;
  --muted:#9ea6bb;
  --good:#10b981;
  --warn:#f59e0b;
  --bad:#ef4444;
  --accent:#8b5cf6;
  --accent-2:#06b6d4;
  --radius:16px;
  --radius-sm:12px;
  --shadow:0 14px 42px rgba(0,0,0,.45);
  --t:.25s ease;
  --glow-good:0 0 20px rgba(16,185,129,.4), 0 0 40px rgba(16,185,129,.2);
  --glow-bad:0 0 20px rgba(239,68,68,.4), 0 0 40px rgba(239,68,68,.2);
  --glow-warn:0 0 20px rgba(245,158,11,.4), 0 0 40px rgba(245,158,11,.2);
  --glow-accent:0 0 20px rgba(139,92,246,.4), 0 0 40px rgba(139,92,246,.2);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;color-scheme:dark}
body{
  background:
    radial-gradient(1100px 550px at 12% 6%, rgba(139,92,246,.12), transparent 60%),
    radial-gradient(900px 500px at 88% 0%, rgba(6,182,212,.10), transparent 60%),
    linear-gradient(180deg,#090b10 0%,#0a0d12 100%);
  color:var(--text);
  font:15px/1.5 Inter, ui-sans-serif, system-ui, Segoe UI, Roboto, Ubuntu, Cantarell, sans-serif;
  overflow-x:hidden;
  display:flex; flex-direction:column;
  padding-bottom:88px;
}

.topbar{
  position:sticky;top:0;z-index:10;
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 20px;border-bottom:1px solid var(--border);
  backdrop-filter:var(--glass);
  background:linear-gradient(180deg, rgba(14,17,23,.92), rgba(14,17,23,.66));
}
.brand{display:flex;align-items:center;gap:10px}
.brand .spark{width:18px;height:18px;border-radius:6px;background:conic-gradient(from 180deg,var(--accent),var(--accent-2),var(--good),var(--accent));box-shadow:0 0 20px rgba(139,92,246,.45)}
.topbar h1{font-size:18px;font-weight:800;letter-spacing:.3px;background:linear-gradient(90deg,#e8eaf3,#b7bfd4);-webkit-background-clip:text;background-clip:text;color:transparent}
.controls{display:flex;gap:10px;align-items:center}
select,button{
  background:var(--panel-2);color:var(--text);
  border:1px solid var(--border);border-radius:12px;padding:8px 12px;cursor:pointer;transition:var(--t)
}
select:hover,button:hover{border-color:var(--accent);box-shadow:0 0 0 3px rgba(139,92,246,.15)}

.global{max-width:1240px;margin:14px auto 0;padding:0 20px;width:100%}
.banner{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  background:linear-gradient(135deg, rgba(16,185,129,0.15), rgba(16,185,129,0.05));
  border:2px solid rgba(16,185,129,0.3);border-radius:var(--radius);padding:16px;
  position:relative;overflow:hidden;animation:slideDown .5s ease;transition:all .3s ease;
}
.banner::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg, transparent, rgba(16,185,129,0.1), transparent);pointer-events:none;animation:shimmer 3s infinite}
.banner::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:radial-gradient(circle, rgba(16,185,129,0.2), transparent);opacity:0;transition:opacity .3s ease;pointer-events:none}
.banner:hover{border-color:rgba(16,185,129,0.5);box-shadow:0 0 30px rgba(16,185,129,0.2)}
.banner:hover::after{opacity:1}
@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.banner.partial{background:linear-gradient(135deg, rgba(245,158,11,0.15), rgba(245,158,11,0.05));border-color:rgba(245,158,11,0.3)}
.banner.partial::before{background:linear-gradient(90deg, transparent, rgba(245,158,11,0.1), transparent)}
.banner.partial:hover{border-color:rgba(245,158,11,0.5);box-shadow:0 0 30px rgba(245,158,11,0.2)}
.banner.major{background:linear-gradient(135deg, rgba(239,68,68,0.18), rgba(239,68,68,0.06));border-color:rgba(239,68,68,0.4);animation:pulse-danger .8s ease-in-out infinite, slideDown .5s ease}
.banner.major::before{background:linear-gradient(90deg, transparent, rgba(239,68,68,0.15), transparent)}
.banner.major:hover{border-color:rgba(239,68,68,0.7);box-shadow:0 0 30px rgba(239,68,68,0.3)}
@keyframes pulse-danger{0%,100%{opacity:1}50%{opacity:0.9}}
.banner .title{display:flex;gap:10px;align-items:center;font-weight:800;position:relative;z-index:1}
.banner .muted{color:var(--muted);font-size:13px;position:relative;z-index:1}

.grid{
  width:100%;max-width:1240px;margin:18px auto 54px;padding:0 20px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;
  align-items:start;
}

.events{margin-top:12px;display:flex;flex-direction:column;gap:12px}
.events-section{display:flex;flex-direction:column;gap:10px}
.events-section h3{font-size:13px;color:var(--muted);margin:0 0 6px 0}
.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.event-card{background:linear-gradient(135deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));border-left:4px solid transparent;border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,0.08);transition:all .3s cubic-bezier(.4,.0,.2,1);position:relative;overflow:hidden}
.event-card::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg, rgba(255,255,255,0.02), transparent);pointer-events:none;border-radius:16px}
.event-card::after{content:'';position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle, rgba(255,255,255,0.08), transparent 70%);opacity:0;transition:opacity .3s ease;pointer-events:none;border-radius:16px}
.event-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(0,0,0,0.6);border-color:rgba(255,255,255,0.12)}
.event-card:hover::after{opacity:1}
.event-card.incident{border-left-color:rgba(239,68,68,0.9);background:linear-gradient(135deg, rgba(239,68,68,0.10), rgba(255,255,255,0.01))}
.event-card.incident.active{border-left-color:var(--bad);box-shadow:0 20px 50px rgba(239,68,68,0.15), inset 0 0 20px rgba(239,68,68,0.05);animation:pulse-incident 2s ease-in-out infinite}
.event-card.maint{border-left-color:rgba(59,130,246,0.9);background:linear-gradient(135deg, rgba(59,130,246,0.10), rgba(255,255,255,0.01))}
.event-card.maint.active{box-shadow:0 20px 50px rgba(139,92,246,0.2), inset 0 0 20px rgba(139,92,246,0.05);animation:pulse-maint 2s ease-in-out infinite}
.event-head{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:12px;position:relative;z-index:1}
.event-title{font-size:16px;font-weight:800;background:linear-gradient(90deg, #e8eaf3, #b7bfd4);-webkit-background-clip:text;background-clip:text;color:transparent}
.event-time{color:var(--muted);font-size:12px;white-space:nowrap}
.event-meta{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap;position:relative;z-index:1}
.svc{display:inline-block;background:linear-gradient(135deg, rgba(139,92,246,0.15), rgba(6,182,212,0.10));padding:6px 12px;border-radius:10px;color:var(--text);font-size:12px;border:1px solid rgba(139,92,246,0.2);font-weight:600}
.sev{font-weight:700;padding:6px 12px;border-radius:8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.sev.info{background:rgba(255,255,255,0.05);color:var(--muted)}
.sev.low{background:linear-gradient(135deg, rgba(16,185,129,0.2), rgba(16,185,129,0.05));color:var(--good);border:1px solid rgba(16,185,129,0.3)}
.sev.medium{background:linear-gradient(135deg, rgba(245,158,11,0.2), rgba(245,158,11,0.05));color:var(--warn);border:1px solid rgba(245,158,11,0.3)}
.sev.high{background:linear-gradient(135deg, rgba(239,68,68,0.2), rgba(239,68,68,0.05));color:var(--bad);border:1px solid rgba(239,68,68,0.3)}
.event-desc{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.6;position:relative;z-index:1}
.event-time-range{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin-top:10px;position:relative;z-index:1}
.event-time-range .clock-icon{color:var(--accent-2);opacity:0.7}
.event-impact{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;position:relative;z-index:1;border:2px solid;transition:all .3s ease}
.event-impact::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:10px;opacity:0;z-index:-1;transition:opacity .3s ease}
.event-impact-major{background:linear-gradient(135deg, rgba(239,68,68,0.25), rgba(239,68,68,0.08));color:var(--bad);border-color:var(--bad);box-shadow:0 0 15px rgba(239,68,68,0.3), inset 0 0 10px rgba(239,68,68,0.1);animation:border-glow-bad 2s ease-in-out infinite}
.event-impact-major::before{background:linear-gradient(90deg, transparent, rgba(239,68,68,0.3), transparent);animation:shimmer 3s infinite}
.event-impact-partial{background:linear-gradient(135deg, rgba(245,158,11,0.25), rgba(245,158,11,0.08));color:var(--warn);border-color:var(--warn);box-shadow:0 0 15px rgba(245,158,11,0.3), inset 0 0 10px rgba(245,158,11,0.1);animation:border-glow-warn 2s ease-in-out infinite}
.event-impact-partial::before{background:linear-gradient(90deg, transparent, rgba(245,158,11,0.3), transparent);animation:shimmer 3s infinite}
.event-impact-degraded{background:linear-gradient(135deg, rgba(59,130,246,0.25), rgba(59,130,246,0.08));color:#3b82f6;border-color:#3b82f6;box-shadow:0 0 15px rgba(59,130,246,0.3), inset 0 0 10px rgba(59,130,246,0.1);animation:border-glow 2s ease-in-out infinite}
.event-impact-degraded::before{background:linear-gradient(90deg, transparent, rgba(59,130,246,0.3), transparent);animation:shimmer 3s infinite}
.event-impact-none{background:linear-gradient(135deg, rgba(16,185,129,0.25), rgba(16,185,129,0.08));color:var(--good);border-color:var(--good);box-shadow:0 0 15px rgba(16,185,129,0.2), inset 0 0 10px rgba(16,185,129,0.1);animation:border-glow-good 2s ease-in-out infinite}
.event-impact-none::before{background:linear-gradient(90deg, transparent, rgba(16,185,129,0.2), transparent);animation:shimmer 3s infinite}

.maint-status{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;border:2px solid;position:relative;z-index:1;transition:all .3s ease}
.maint-status::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:8px;opacity:0;z-index:-1}
.maint-status-planned{background:linear-gradient(135deg, rgba(59,130,246,0.2), rgba(59,130,246,0.05));color:#3b82f6;border-color:#3b82f6;box-shadow:0 0 12px rgba(59,130,246,0.25)}
.maint-status-active{background:linear-gradient(135deg, rgba(139,92,246,0.2), rgba(139,92,246,0.05));color:var(--accent);border-color:var(--accent);box-shadow:0 0 12px rgba(139,92,246,0.3);animation:glow-pulse 2s ease-in-out infinite}
.maint-status-active::before{background:linear-gradient(90deg, transparent, rgba(139,92,246,0.3), transparent);animation:shimmer 3s infinite}
.maint-status-completed{background:linear-gradient(135deg, rgba(16,185,129,0.2), rgba(16,185,129,0.05));color:var(--good);border-color:var(--good);box-shadow:0 0 12px rgba(16,185,129,0.2)}
.maint-status-canceled{background:linear-gradient(135deg, rgba(239,68,68,0.2), rgba(239,68,68,0.05));color:var(--bad);border-color:var(--bad);box-shadow:0 0 12px rgba(239,68,68,0.2)}

@media (max-width:700px){
  .events-grid{grid-template-columns:1fr}
}

.legend{padding:12px}
.legend-head{border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:8px}
.legend-title{font-weight:800}
.legend-body{display:flex;flex-direction:column;gap:8px;padding:6px 0}
.legend-body.secondary{margin-top:8px;border-top:1px dashed var(--muted-border);padding-top:8px}
.legend-item{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px}

.legend-icon{width:18px;height:18px;display:inline-block;border-radius:4px}
.icon{vertical-align:middle;display:inline-block}
.icon svg{display:block}
.icon { width:18px;height:18px }
.icon svg { width:100%;height:100% }

.icon-good{color:var(--good)}
.icon-warn{color:var(--warn)}
.icon-bad{color:var(--bad)}

.card{
  background:linear-gradient(135deg, var(--panel), rgba(20,24,33,.6));border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow);
  backdrop-filter:var(--glass);transition:all .4s cubic-bezier(.4,.0,.2,1);
  contain:layout paint;position:relative;overflow:hidden;
}
.card::before{content:'';position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle, rgba(139,92,246,0.15), transparent 70%);opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:0}
.card::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:2px;background:linear-gradient(90deg, transparent, rgba(139,92,246,0.6), transparent);animation:scan-line 3s ease-in-out infinite;z-index:1}
.card:hover{transform:translateY(-6px);border-color:#3a4560;box-shadow:0 30px 80px rgba(0,0,0,0.6), 0 0 30px rgba(139,92,246,0.2)}
.card:hover::before{opacity:1}

.host{display:flex;flex-direction:column}
.host-head{
  display:grid;grid-template-columns:1fr auto;gap:12px;
  padding:16px;border-bottom:1px solid var(--border);
  background:linear-gradient(135deg, rgba(28,33,46,.95), rgba(20,24,33,.85));
  cursor:pointer;user-select:none;transition:all .3s cubic-bezier(.4,.0,.2,1);position:relative;
}
.host-head::before{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg, var(--accent), var(--accent-2));transition:width .3s ease;z-index:1}
.host-head:hover::before{width:100%}
.host-head:hover{background:linear-gradient(135deg, rgba(28,33,46,1), rgba(20,24,33,1));border-bottom-color:#3a4560}
.host-head h2{font-size:16px;display:flex;gap:10px;align-items:center;font-weight:800;background:linear-gradient(90deg, #e8eaf3, #b7bfd4);-webkit-background-clip:text;background-clip:text;color:transparent}
.group{opacity:.95;transition:opacity .2s ease}
.host-head:hover .group{opacity:1}
.group{opacity:.95}
.badge{border-radius:999px;padding:6px 12px;font-weight:800;font-size:12px;letter-spacing:.3px;border:2px solid;display:inline-flex;align-items:center;gap:6px;transition:all .3s ease;position:relative}
.badge::before{content:'';position:absolute;inset:0;border-radius:999px;opacity:0;z-index:-1;transition:opacity .3s ease}
.badge.good{background:linear-gradient(135deg, rgba(16,185,129,0.25), rgba(16,185,129,0.08));color:var(--good);border-color:var(--good);box-shadow:0 0 15px rgba(16,185,129,0.25);animation:float 3s ease-in-out infinite}
.badge.good::before{background:linear-gradient(90deg, transparent, rgba(16,185,129,0.2), transparent);animation:shimmer 3s infinite}
.badge.warn{background:linear-gradient(135deg, rgba(245,158,11,0.25), rgba(245,158,11,0.08));color:var(--warn);border-color:var(--warn);box-shadow:0 0 15px rgba(245,158,11,0.25);animation:float 3s ease-in-out infinite}
.badge.warn::before{background:linear-gradient(90deg, transparent, rgba(245,158,11,0.2), transparent);animation:shimmer 3s infinite}
.badge.bad{background:linear-gradient(135deg, rgba(239,68,68,0.25), rgba(239,68,68,0.08));color:var(--bad);border-color:var(--bad);box-shadow:0 0 15px rgba(239,68,68,0.25);animation:pulse-danger .8s ease-in-out infinite}
.badge.bad::before{background:linear-gradient(90deg, transparent, rgba(239,68,68,0.3), transparent);animation:shimmer 3s infinite}
.progress-bar{width:100%;height:8px;background:linear-gradient(90deg, rgba(139,92,246,0.1), rgba(6,182,212,0.1));border-radius:4px;overflow:hidden;border:1px solid rgba(139,92,246,0.2);box-shadow:inset 0 0 10px rgba(0,0,0,0.3);position:relative}
.progress-fill{height:100%;background:linear-gradient(90deg, var(--accent), var(--accent-2));transition:width .3s ease;border-radius:4px;box-shadow:0 0 10px rgba(139,92,246,0.5), inset 0 0 5px rgba(255,255,255,0.2);position:relative;overflow:hidden}
.progress-fill::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);animation:shimmer 2s infinite}
.pill{display:inline-block;padding:6px 12px;border-radius:999px;border:2px solid var(--muted-border);font-size:12px;font-weight:700;transition:all .3s ease;position:relative}
.pill::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:999px;opacity:0;transition:opacity .3s ease}
.pill.up{color:var(--good);background:linear-gradient(135deg, rgba(16,185,129,0.2), rgba(16,185,129,0.05));border-color:var(--good);box-shadow:0 0 15px rgba(16,185,129,0.3), inset 0 0 10px rgba(16,185,129,0.1);animation:border-glow-good 2s ease-in-out infinite}
.pill.up::before{background:linear-gradient(90deg, transparent, rgba(16,185,129,0.4), transparent);animation:shimmer 3s infinite}
.pill.down{color:var(--bad);background:linear-gradient(135deg, rgba(239,68,68,0.2), rgba(239,68,68,0.05));border-color:var(--bad);box-shadow:0 0 15px rgba(239,68,68,0.3), inset 0 0 10px rgba(239,68,68,0.1);animation:border-glow-bad 2s ease-in-out infinite}
.pill.down::before{background:linear-gradient(90deg, transparent, rgba(239,68,68,0.4), transparent);animation:shimmer 3s infinite}
.chev{width:16px;height:16px;transition:transform .3s cubic-bezier(.4,.0,.2,1) ease;color:var(--accent);opacity:0.7;transition:all .3s ease}
.host-head:hover .chev{opacity:1;transform:scale(1.1)}

.details{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,.0,.2,1);opacity:0}
.host.open .details{max-height:2000px;opacity:1}
.host.open .chev{transform:rotate(180deg)}

.details-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;padding:16px}
@media (max-width:700px){.details-inner{grid-template-columns:1fr}}

.section-title{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.35px;margin-bottom:8px}

.bars{display:flex;flex-wrap:wrap;gap:3px}
.bar{width:12px;height:12px;border-radius:4px;background:#2b3243;transition:all .3s cubic-bezier(.4,.0,.2,1);cursor:pointer;position:relative;border:1px solid rgba(255,255,255,0.1)}
.bar.good{background:linear-gradient(135deg, var(--good), rgba(16,185,129,0.7));border-color:rgba(16,185,129,0.4);box-shadow:0 0 10px rgba(16,185,129,0.3)}
.bar.warn{background:linear-gradient(135deg, var(--warn), rgba(245,158,11,0.7));border-color:rgba(245,158,11,0.4);box-shadow:0 0 10px rgba(245,158,11,0.3)}
.bar.bad{background:linear-gradient(135deg, var(--bad), rgba(239,68,68,0.7));border-color:rgba(239,68,68,0.4);box-shadow:0 0 10px rgba(239,68,68,0.3)}
.bar:hover{transform:scale(2.2) translateY(-6px);opacity:1;box-shadow:0 12px 30px rgba(0,0,0,0.7)}

.stats{display:grid;gap:8px}
.stat{display:flex;gap:10px;align-items:center;padding:12px 14px;border:2px solid rgba(139,92,246,0.2);border-radius:14px;background:linear-gradient(135deg, rgba(139,92,246,0.08), rgba(6,182,212,0.04));transition:all .3s cubic-bezier(.4,.0,.2,1);color:var(--text);position:relative;overflow:hidden}
.stat::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg, transparent, rgba(139,92,246,0.2), transparent);opacity:0;transition:opacity .3s ease;z-index:-1}
.stat:hover{border-color:rgba(139,92,246,0.6);background:linear-gradient(135deg, rgba(139,92,246,0.15), rgba(6,182,212,0.1));transform:translateY(-4px);box-shadow:0 12px 30px rgba(139,92,246,0.2)}
.stat:hover::before{opacity:1}
.stat strong{color:#fff;font-weight:700}

.table{border-collapse:collapse;width:100%;font-size:14px;color:var(--muted)}
.table th,.table td{padding:8px 10px;border-bottom:1px solid var(--muted-border)}
.table th{color:#d9dcea;text-align:left;font-weight:700}
.cell-up{color:var(--good)} .cell-down{color:var(--bad)}
.muted{color:var(--muted)}
.loader{display:flex;align-items:center;gap:8px;color:var(--muted);padding:6px 0}
.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.22);border-top-color:var(--accent);border-radius:50%;animation:spin .85s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.footer{margin-top:auto;color:var(--muted);padding:12px 20px;font-size:13px;border-top:1px solid rgba(255,255,255,0.04);background:linear-gradient(180deg, rgba(7,9,12,0.6), rgba(7,9,12,0.45));backdrop-filter:var(--glass);position:fixed;left:0;right:0;bottom:0;z-index:60}

.footer-inner{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;padding:6px 10px}
.footer-meta{display:flex;align-items:center;color:var(--muted)}

.legend{padding:8px 6px;max-width:760px;flex:1 1 auto;box-shadow:none;border-radius:0;background:transparent;text-align:center}
.legend-body{flex-wrap:wrap;display:flex;gap:14px;align-items:center;justify-content:center}
.legend-item{gap:8px;background:transparent;padding:6px 8px;border-radius:6px}

@media (max-width:900px){
  .footer-inner{flex-direction:column;align-items:center;gap:8px}
  .legend{order:1}
  .footer-meta{order:2;justify-content:center;padding-left:0}
  body{padding-bottom:140px}
}

@keyframes glow-pulse{0%,100%{box-shadow:var(--glow-accent), 0 0 0 0 rgba(139,92,246,0.7)}50%{box-shadow:var(--glow-accent), 0 0 0 10px rgba(139,92,246,0)}}
@keyframes glow-pulse-good{0%,100%{box-shadow:var(--glow-good), 0 0 0 0 rgba(16,185,129,0.7)}50%{box-shadow:var(--glow-good), 0 0 0 10px rgba(16,185,129,0)}}
@keyframes glow-pulse-bad{0%,100%{box-shadow:var(--glow-bad), 0 0 0 0 rgba(239,68,68,0.7)}50%{box-shadow:var(--glow-bad), 0 0 0 10px rgba(239,68,68,0)}}
@keyframes glow-pulse-warn{0%,100%{box-shadow:var(--glow-warn), 0 0 0 0 rgba(245,158,11,0.7)}50%{box-shadow:var(--glow-warn), 0 0 0 10px rgba(245,158,11,0)}}
@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}
@keyframes rotate-slow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes border-glow{0%{border-color:rgba(139,92,246,0.3)}50%{border-color:rgba(139,92,246,0.8)}100%{border-color:rgba(139,92,246,0.3)}}
@keyframes border-glow-good{0%{border-color:rgba(16,185,129,0.3)}50%{border-color:rgba(16,185,129,0.8)}100%{border-color:rgba(16,185,129,0.3)}}
@keyframes border-glow-bad{0%{border-color:rgba(239,68,68,0.3)}50%{border-color:rgba(239,68,68,0.8)}100%{border-color:rgba(239,68,68,0.3)}}
@keyframes border-glow-warn{0%{border-color:rgba(245,158,11,0.3)}50%{border-color:rgba(245,158,11,0.8)}100%{border-color:rgba(245,158,11,0.3)}}
@keyframes scan-line{0%{top:-100%}100%{top:100%}}

html,body{overflow-x:hidden}
