/* CheckMyReflex — shared styles */
:root{
  --bg:#0b0f14; --card:#121826; --card2:#0e141f; --line:#1f2a3a;
  --text:#e6edf3; --muted:#8b98a5; --green:#22c55e; --green-deep:#16a34a;
  --red:#dc2626; --red-deep:#991b1b; --amber:#f59e0b; --blue:#3b82f6;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.6}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:10;background:rgba(11,15,20,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:14px;height:56px}
.logo{font-weight:800;font-size:17px;letter-spacing:.2px;text-decoration:none;color:var(--text);white-space:nowrap}
.logo b{color:var(--green)}
.nav a{color:var(--muted);text-decoration:none;font-size:13.5px;white-space:nowrap}
.nav a:hover{color:var(--text)}
.nav .spacer{flex:1}
/* compact language dropdown */
.flag{width:17px;height:12px;border-radius:2px;vertical-align:-1.5px;margin-right:7px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.lang-switch{position:relative}
.lang-btn{font:inherit;font-size:12.5px;font-weight:700;color:var(--muted);background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;white-space:nowrap}
.lang-btn:hover{color:var(--text)}
.lang-btn .caret{font-size:9px;margin-left:4px;opacity:.7}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);display:none;flex-direction:column;min-width:132px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 12px 32px rgba(0,0,0,.5);z-index:30}
.lang-switch.open .lang-menu{display:flex}
.lang-menu a,.lang-menu span.active{font-size:13px;font-weight:600;padding:7px 12px;border-radius:8px;color:var(--text);text-decoration:none;white-space:nowrap;text-align:left}
.lang-menu a:hover{background:var(--card2)}
.lang-menu span.active{color:var(--green);background:rgba(34,197,94,.12)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ============ FULL-SCREEN TEST PANEL ============ */
#stage{position:relative;height:calc(100vh - 57px);
  height:calc(100dvh - 57px); /* mobile: exclude browser UI (address bar) */
  min-height:460px;width:100%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;outline:none;
  transition:background-color .06s;overflow:hidden}
#stage[data-state="idle"]{background:radial-gradient(120% 90% at 50% 30%, #17222f 0%, #0b0f14 70%)}
#stage[data-state="armed"]{background:var(--red)}
#stage[data-state="go"]{background:var(--green)}
#stage[data-state="result"]{background:var(--green-deep)}
#stage[data-state="false"]{background:var(--red-deep)}
#stage:focus-visible{box-shadow:inset 0 0 0 4px rgba(255,255,255,.65)}
.st-center{display:flex;flex-direction:column;align-items:center;text-align:center;padding:130px 24px 160px;gap:10px}
.st-title{font-size:clamp(30px,6.5vw,60px);font-weight:800;letter-spacing:-1px;line-height:1.08;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.st-hint{font-size:clamp(14px,2vw,17px);color:rgba(255,255,255,.92)}
.st-hint .hl{font-weight:800}
#stage[data-state="idle"] .st-hint{color:var(--muted)}
#stage[data-state="idle"] .st-hint .hl{color:var(--green)}
@keyframes invite{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
#stage[data-state="idle"] .st-title{animation:invite 2.4s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* HUD overlays */
.hud{position:absolute;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:10px;z-index:3;transition:opacity .18s}
.hud-top{top:16px;flex-wrap:wrap}
.hud-bottom{bottom:16px;flex-wrap:wrap;padding:0 14px}
#stage[data-state="armed"] .hud,#stage[data-state="go"] .hud{opacity:.12;pointer-events:none}
.modes{display:flex;gap:8px}
.mode-btn{font:inherit;font-size:13.5px;font-weight:700;color:rgba(255,255,255,.85);
  background:rgba(10,15,22,.55);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:8px 20px;cursor:pointer}
.mode-btn.active{color:#04120a;background:var(--green);border-color:var(--green)}
.stat-chip{background:rgba(10,15,22,.55);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:7px 16px;text-align:center;min-width:86px}
.stat-chip small{display:block;color:rgba(255,255,255,.55);font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;line-height:1.3}
.stat-chip b{font-size:16px;font-variant-numeric:tabular-nums;color:#fff;line-height:1.3}
.dots{display:flex;gap:7px;margin-left:6px}
.dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.15)}
.dot.done{background:#fff;border-color:#fff}
/* F1 lights gantry */
.lights{position:absolute;top:74px;left:50%;transform:translateX(-50%);display:none;gap:16px;z-index:3;
  background:rgba(10,15,22,.6);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1);
  border-radius:16px;padding:14px 18px}
.lights.show{display:flex}
.light{width:38px;height:38px;border-radius:50%;background:#1a2230;border:2px solid #2a3648;transition:background .06s,box-shadow .06s}
.light.on{background:#ff2d2d;border-color:#ff2d2d;box-shadow:0 0 22px rgba(255,45,45,.85)}
.light.out{background:#0a0d12;border-color:#1c2532;box-shadow:none}
/* result scroll hint */
.scroll-hint{position:absolute;bottom:86px;left:0;right:0;text-align:center;display:none;z-index:3;
  color:rgba(255,255,255,.9);font-size:13.5px;font-weight:600}
.scroll-hint span{display:inline-block;animation:bounce 1.4s ease-in-out infinite}
#stage[data-state="result"] .scroll-hint{display:block}

/* below-the-fold cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:26px}
.result{display:none;padding:20px 16px;grid-template-columns:1fr 320px;gap:16px;align-items:center}
.result.show{display:grid}
@media(max-width:720px){.result.show{grid-template-columns:1fr}}
.r-num{font-size:42px;font-weight:800;color:var(--green);font-variant-numeric:tabular-nums;line-height:1.05}
.r-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
.chip{font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px}
.chip.good{background:rgba(34,197,94,.15);color:var(--green)}
.chip.mid{background:rgba(245,158,11,.15);color:var(--amber)}
.chip.bad{background:rgba(239,68,68,.15);color:var(--red)}
.chip.info{background:rgba(59,130,246,.15);color:var(--blue)}
.r-pct{color:var(--muted);font-size:13.5px;margin-top:6px}
.actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.btn{font:inherit;font-size:14px;font-weight:700;border-radius:10px;padding:10px 18px;cursor:pointer;border:1px solid var(--line);background:var(--card2);color:var(--text)}
.btn.primary{background:var(--green);border-color:var(--green);color:#04120a}
.btn:hover{filter:brightness(1.1)}
.history{padding:16px}
.history h3{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.history h3 button{font:inherit;font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{color:var(--muted);text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:6px 8px;border-bottom:1px solid var(--line)}
td{padding:7px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:none}

/* content sections */
section{padding:38px 0 8px}
section h2{font-size:24px;letter-spacing:-.3px;margin-bottom:6px}
section .lead{color:var(--muted);font-size:14.5px;margin-bottom:18px;max-width:720px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:720px){.grid3{grid-template-columns:1fr}}
.mini{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}
.mini b{display:block;margin-bottom:4px}
.mini p{color:var(--muted);font-size:13.5px}
.tblnote{color:var(--muted);font-size:12.5px;margin-top:8px}
details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px}
summary{cursor:pointer;font-weight:700;font-size:15px}
details p{color:var(--muted);font-size:14px;margin-top:8px}
footer{border-top:1px solid var(--line);margin-top:44px;padding:22px 0 34px;color:var(--muted);font-size:13px}
footer b{color:var(--text)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--green);color:#04120a;font-weight:700;font-size:14px;border-radius:10px;padding:10px 18px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:20}
.toast.show{opacity:1}
@media (prefers-reduced-motion: reduce){
  *{animation:none!important}
}

/* ============ MOBILE (<=640px) ============ */
@media(max-width:640px){
  /* header: keep logo + language switcher on one line; anchor links live below the fold anyway */
  .nav{gap:10px;height:52px}
  .nav > a:not(.logo){display:none}
  .logo{font-size:16px}

  .hud-top{top:10px}
  .mode-btn{font-size:12.5px;padding:7px 14px}

  /* F1 gantry slightly smaller */
  .lights{top:58px;gap:10px;padding:10px 12px}
  .light{width:30px;height:30px}

  /* stats bar: 4 chips must fit one row */
  .hud-bottom{gap:6px;bottom:12px;padding:0 8px}
  .stat-chip{min-width:0;padding:5px 8px;border-radius:10px;flex:1;max-width:96px}
  .stat-chip small{font-size:9px;letter-spacing:.3px}
  .stat-chip b{font-size:13px}
  .dots{display:none}

  .scroll-hint{display:none}
  #stage[data-state="result"] .scroll-hint{display:none}

  .st-center{padding:104px 16px 120px}
  .st-title{font-size:clamp(23px,7vw,32px)}
  .st-hint{font-size:13px}

  .r-num{font-size:34px}
  .actions .btn{flex:1;min-width:130px}

  /* tables: long German/Polish words must not break the page width */
  table{font-size:12px}
  th{padding:6px 6px}
  td{padding:6px 6px;overflow-wrap:anywhere}
  .card{overflow-x:auto}
}
