:root{
  --bg:#0f1724;
  --card:#0b1220;
  --accent:#60a5fa;
  --muted:#94a3b8;
  --glass: rgba(255,255,255,0.03);
}
*{box-sizing:border-box}
body{font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,'Helvetica Neue',Arial; background:linear-gradient(180deg,#071026 0%,#0b1724 100%); color:#e6eef8; margin:0; min-height:100vh; display:flex; align-items:center; justify-content:center; padding:32px}
.card{width:100%;max-width:820px;background:var(--card);border-radius:12px;padding:28px;box-shadow:0 8px 30px rgba(2,6,23,0.6);border:1px solid rgba(255,255,255,0.03)}
.title{margin:0;font-size:14px;color:var(--muted);letter-spacing:1px}
.ip{font-size:48px;margin:8px 0 18px 0;color:var(--accent);font-weight:600}
/* subtle pulsing animation for the IP number */
.ip.pulse{animation:pulse 2.2s ease-in-out infinite}

@keyframes pulse{
  0%{transform:scale(1);text-shadow:0 0 0 rgba(96,165,250,0)}
  50%{transform:scale(1.03);text-shadow:0 6px 20px rgba(96,165,250,0.08)}
  100%{transform:scale(1);text-shadow:0 0 0 rgba(96,165,250,0)}
}

/* spinner for speed test */
.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,0.08);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;display:inline-block;vertical-align:middle;margin-left:10px}
@keyframes spin{to{transform:rotate(360deg)}}

.speed-result{margin-top:8px;color:var(--muted);font-size:14px}
.speed-running .speed-result{color:var(--accent);font-weight:600}
.meta{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
button{background:transparent;border:1px solid rgba(255,255,255,0.06);padding:8px 12px;border-radius:8px;color:var(--muted);cursor:pointer}
/* small presets for download size */
.dl-preset{background:transparent;border:1px solid rgba(255,255,255,0.04);padding:6px 8px;border-radius:6px;font-size:13px;color:var(--muted);cursor:pointer}
.dl-preset.active{background:linear-gradient(90deg, rgba(96,165,250,0.12), rgba(96,165,250,0.06));border-color:rgba(96,165,250,0.35);color:var(--accent);box-shadow:0 4px 12px rgba(96,165,250,0.08)}
table{width:100%;border-collapse:collapse;margin-top:12px}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid rgba(255,255,255,0.03);font-size:13px}
th{color:var(--muted);font-weight:600}
.hidden{display:none}
.foot{margin-top:16px;color:var(--muted);font-size:13px}
