:root{
  --ink:#e2e8f0;
  --cyan:#22d3ee;
}
*{ box-sizing:border-box; }
body{
  margin:0;
  font-family:'Bricolage Grotesque', system-ui, sans-serif;
  color:var(--ink);
  background:#050914;
}
.mono{ font-family:'IBM Plex Mono', monospace; }
.display{ font-family:'Bricolage Grotesque', sans-serif; letter-spacing:-0.02em; }

.bg-app{
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(1000px 500px at 90% 0%, rgba(139,92,246,.10), transparent 55%),
    linear-gradient(180deg, #060b18 0%, #04070f 100%);
  min-height:100vh;
}

.panel{
  background:linear-gradient(160deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.04);
  backdrop-filter:blur(6px);
}

.header-bar{
  background:linear-gradient(180deg, rgba(9,15,28,.96), rgba(9,15,28,.82));
  border-bottom:1px solid rgba(34,211,238,.15);
  backdrop-filter:blur(10px);
  box-shadow:0 4px 20px rgba(0,0,0,.4);
}

.ticker-bar{
  background:linear-gradient(180deg, rgba(9,15,28,.9), rgba(4,7,15,.98));
  border-top:1px solid rgba(34,211,238,.18);
  backdrop-filter:blur(10px);
}

.btn-primary{
  background:linear-gradient(135deg, #22d3ee, #0ea5e9);
  color:#04121a;
  border:none;
  box-shadow:0 4px 18px rgba(34,211,238,.35);
  transition:transform .12s ease, box-shadow .2s ease, filter .2s;
  cursor:pointer;
}
.btn-primary:hover:not(.opacity-40){ transform:translateY(-1px); filter:brightness(1.08); box-shadow:0 6px 24px rgba(34,211,238,.5); }
.btn-primary:active{ transform:translateY(0); }

.emerg-btn{
  width:100%;
  text-align:left;
  padding:.65rem .85rem;
  border-radius:.6rem;
  font-size:.85rem;
  color:#fca5a5;
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.25);
  transition:all .15s;
  cursor:pointer;
}
.emerg-btn:hover{ background:rgba(239,68,68,.18); color:#fecaca; border-color:rgba(239,68,68,.5); }

.bar-fill{ transition:width .6s cubic-bezier(.22,1,.36,1), background .4s; }

.flag-shine{ position:relative; overflow:hidden; }
.flag-shine::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 40%, rgba(255,255,255,.25) 50%, transparent 60%);
}

@keyframes reveal{ from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }
.reveal{ animation:reveal .45s cubic-bezier(.22,1,.36,1) both; }

@keyframes scroll-ticker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.ticker-track{ display:inline-block; animation:scroll-ticker 40s linear infinite; }
.ticker-track:hover{ animation-play-state:paused; }

input[type=range]{ height:4px; border-radius:4px; background:rgba(255,255,255,.12); appearance:none; cursor:pointer; }
input[type=range]::-webkit-slider-thumb{ appearance:none; width:15px; height:15px; border-radius:50%; background:var(--cyan); box-shadow:0 0 8px rgba(34,211,238,.6); cursor:pointer; }
input[type=range]::-moz-range-thumb{ width:15px; height:15px; border:none; border-radius:50%; background:var(--cyan); box-shadow:0 0 8px rgba(34,211,238,.6); cursor:pointer; }

::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.12); border-radius:4px; }