/* ============================================
   oXben SpeedTest – Neon Green Theme
   ============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#080810;
  --bg2:#0c0c18;
  --card:#0f0f1a;
  --card-hover:#151528;
  --accent:#39ff14;
  --accent-dim:rgba(57,255,20,.15);
  --accent-glow:0 0 20px rgba(57,255,20,.25);
  --text:#e0e0f0;
  --text-dim:#8888a0;
  --text-muted:#555570;
  --border:#1a1a30;
  --border-b:#252540;
  --radius:14px;
  --radius-sm:8px;
  --max-w:860px;
  --font:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;
}

/* ── Base ── */
body{
  font-family:var(--font);background:var(--bg);color:var(--text);
  line-height:1.6;min-height:100vh;overflow-x:hidden;
}
body::before{
  content:'';position:fixed;inset:0;
  background-image:radial-gradient(circle at 1px 1px,rgba(57,255,20,.04) 1px,transparent 0);
  background-size:40px 40px;pointer-events:none;z-index:0;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max-w);margin:0 auto;padding:0 16px;position:relative;z-index:1}
.hidden{display:none!important}

/* ── Header ── */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(8,8,16,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);padding:14px 0;
}
.header-inner{display:flex;align-items:center;justify-content:center}
.logo{
  display:inline-flex;align-items:center;gap:8px;
  font-size:19px;font-weight:700;color:var(--accent);cursor:default;
}
.logo-icon{flex-shrink:0}

/* ── Hero ── */
.hero{text-align:center;padding:48px 0 20px}
.hero h1{
  font-size:clamp(28px,5vw,44px);font-weight:800;
  color:var(--accent);text-shadow:var(--accent-glow);margin-bottom:10px;
}
.hero-sub{font-size:16px;color:var(--text-dim);max-width:520px;margin:0 auto}

/* ── Cards ── */
.card{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);padding:36px 28px;margin-bottom:28px;
  box-shadow:0 4px 40px rgba(0,0,0,.35);
}

/* ── Test Card ── */
.test-card{text-align:center}

/* Gauge */
.gauge-wrap{position:relative;width:300px;height:170px;margin:0 auto 12px}
.gauge-svg{width:100%;height:100%}
.gauge-track{fill:none;stroke:#1a1a2e;stroke-width:14;stroke-linecap:round}
.gauge-bar{
  fill:none;stroke:var(--accent);stroke-width:14;stroke-linecap:round;
  stroke-dasharray:314.159;stroke-dashoffset:314.159;
  filter:url(#neon);transition:stroke-dashoffset .35s ease;
}
.gauge-label{fill:var(--text-muted);font-size:11px;font-family:var(--font)}
.gauge-center{
  position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  text-align:center;pointer-events:none;
}
.gauge-num{
  display:block;font-size:52px;font-weight:800;color:var(--accent);
  line-height:1;text-shadow:0 0 30px rgba(57,255,20,.4);
  font-variant-numeric:tabular-nums;
}
.gauge-unit{display:block;font-size:14px;color:var(--text-dim);margin-top:2px}

/* Phases */
.phases{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}
.phase{font-size:13px;color:var(--text-muted);transition:color .3s;font-weight:600}
.phase.active{color:var(--accent);text-shadow:0 0 8px rgba(57,255,20,.5)}
.phase.done{color:var(--text-dim)}
.phase-dot{color:var(--border-b);font-size:10px}

/* Status */
.status{font-size:13px;color:var(--text-dim);min-height:20px;margin-bottom:18px}

/* Start button */
.btn-go{
  display:inline-flex;align-items:center;justify-content:center;
  width:170px;height:56px;font-size:18px;font-weight:800;letter-spacing:3px;
  text-transform:uppercase;background:transparent;
  border:2px solid var(--accent);color:var(--accent);
  border-radius:28px;cursor:pointer;font-family:var(--font);
  transition:all .3s;-webkit-tap-highlight-color:transparent;
}
.btn-go:hover{
  background:var(--accent-dim);
  box-shadow:0 0 30px rgba(57,255,20,.3),inset 0 0 30px rgba(57,255,20,.08);
}
.btn-go:active{transform:scale(.97)}
.btn-go.testing{
  border-color:#ff4444;color:#ff4444;
  animation:pulse-red 1.5s infinite;
}
.btn-go:disabled{opacity:.35;cursor:not-allowed;animation:none}
@keyframes pulse-red{
  0%,100%{box-shadow:0 0 0 0 rgba(255,68,68,.4)}
  50%{box-shadow:0 0 0 14px rgba(255,68,68,0)}
}

/* Results grid */
.results{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
  margin-top:28px;
}
.res-box{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:18px 8px;text-align:center;animation:fadeUp .4s ease both;
}
.res-box:nth-child(2){animation-delay:.08s}
.res-box:nth-child(3){animation-delay:.16s}
.res-box:nth-child(4){animation-delay:.24s}
.res-icon{font-size:20px;display:block;margin-bottom:4px}
.res-dl .res-icon{color:#39ff14}
.res-ul .res-icon{color:#00bcd4}
.res-ping .res-icon{color:#ffc107}
.res-jit .res-icon{color:#ff6b9d}
.res-val{display:block;font-size:26px;font-weight:800;color:var(--text);line-height:1.2}
.res-dl .res-val{color:#39ff14}
.res-ul .res-val{color:#00bcd4}
.res-lbl{display:block;font-size:11px;color:var(--text-muted);margin-top:4px}
.res-lbl small{color:var(--text-muted)}

@keyframes fadeUp{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}

/* Share */
.btn-share{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:18px;padding:10px 22px;font-size:13px;font-weight:600;
  background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);
  border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);transition:all .2s;
}
.btn-share:hover{background:rgba(57,255,20,.25)}

/* ── Info cards ── */
.info-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px;
}
.info-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:16px 12px;text-align:center;animation:fadeUp .4s ease both;
}
.info-ic{font-size:22px;display:block;margin-bottom:4px}
.info-key{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}
.info-val{display:block;font-size:14px;font-weight:600;color:var(--text);margin-top:4px;word-break:break-all}

/* ── History ── */
.history-section{padding:24px 28px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.section-head h2{font-size:18px;font-weight:700;color:var(--accent);margin:0}
.btn-clear{
  background:transparent;border:1px solid var(--border);color:var(--text-muted);
  padding:5px 14px;border-radius:var(--radius-sm);cursor:pointer;
  font-size:12px;font-family:var(--font);transition:all .2s;
}
.btn-clear:hover{border-color:var(--accent);color:var(--accent)}
.history-list{display:grid;gap:8px}
.history-empty{text-align:center;color:var(--text-muted);padding:16px;font-size:13px}
.hist-item{
  display:grid;grid-template-columns:1fr auto auto auto auto;gap:14px;
  align-items:center;padding:10px 16px;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:13px;
}
.hist-item .hi-time{color:var(--text-muted);font-size:12px}
.hist-item .hi-dl{color:#39ff14;font-weight:700}
.hist-item .hi-ul{color:#00bcd4;font-weight:700}
.hist-item .hi-ping{color:#ffc107;font-weight:600}
.hist-item .hi-loc{color:var(--text-dim);font-size:12px;text-align:right}

/* ── Content sections ── */
.content-section{margin:36px 0;position:relative;z-index:1}
.content-section h2{
  font-size:22px;font-weight:700;color:var(--accent);
  margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--accent-dim);
}
.how-list{padding-left:20px}
.how-list li{color:var(--text-dim);font-size:14px;margin-bottom:10px;line-height:1.7}
.how-list strong{color:var(--text)}

/* ── FAQ ── */
.faq-list{display:grid;gap:8px}
.faq-item{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.faq-q{
  padding:14px 16px;cursor:pointer;font-weight:600;font-size:14px;
  display:flex;justify-content:space-between;align-items:center;
  background:var(--card);color:var(--text);transition:background .2s;user-select:none;
}
.faq-q:hover{background:var(--card-hover)}
.faq-q::after{content:'+';font-size:18px;color:var(--accent);transition:transform .2s}
.faq-item.open .faq-q::after{content:'\2212'}
.faq-a{
  padding:0 16px;max-height:0;overflow:hidden;
  transition:max-height .3s ease,padding .3s ease;
  font-size:14px;color:var(--text-dim);line-height:1.7;
}
.faq-item.open .faq-a{max-height:300px;padding:0 16px 16px}

/* ── Ad slots ── */
.ad-slot{
  background:var(--card);border:1px dashed var(--border);border-radius:var(--radius-sm);
  text-align:center;padding:10px;margin:20px auto;max-width:var(--max-w);
  color:var(--text-muted);font-size:11px;min-height:90px;
  display:flex;align-items:center;justify-content:center;position:relative;z-index:1;
}
.ad-bottom-full{
  background:var(--card);border:1px dashed var(--border);border-radius:var(--radius-sm);
  text-align:center;padding:10px;margin:20px auto;max-width:var(--max-w);
  color:var(--text-muted);font-size:11px;min-height:90px;
  display:flex;align-items:center;justify-content:center;position:relative;z-index:1;
}
.ad-sidebar{
  position:fixed;top:50%;transform:translateY(-50%);
  width:160px;z-index:50;
  background:var(--card);border:1px dashed var(--border);border-radius:var(--radius-sm);
  min-height:600px;display:flex;align-items:center;justify-content:center;
  color:var(--text-muted);font-size:11px;padding:8px;
}
.ad-left{left:8px}
.ad-right{right:8px}

/* ── Footer ── */
.footer{
  border-top:1px solid var(--border);padding:24px 0;
  text-align:center;font-size:12px;color:var(--text-muted);margin-top:40px;
  position:relative;z-index:1;
}

/* ── Responsive ── */
@media(max-width:1400px){
  .ad-sidebar{width:120px}
}
@media(max-width:1200px){
  .ad-sidebar{display:none}
}
@media(max-width:640px){
  .header-inner{justify-content:center}
  .logo{font-size:17px}
  .hero{padding:28px 0 14px}
  .hero h1{font-size:26px}
  .hero-sub{font-size:14px}
  .card{padding:24px 14px}
  .gauge-wrap{width:240px;height:140px}
  .gauge-num{font-size:40px}
  .results{grid-template-columns:repeat(2,1fr)}
  .info-row{grid-template-columns:repeat(2,1fr)}
  .hist-item{grid-template-columns:1fr 1fr;gap:8px;font-size:12px}
  .hist-item .hi-loc{grid-column:1/-1}
  .content-section h2{font-size:18px}
}
@media(max-width:380px){
  .gauge-wrap{width:200px;height:120px}
  .gauge-num{font-size:34px}
  .btn-go{width:140px;height:48px;font-size:15px}
}
