/* KSK – Alap: reset, tipográfia, lapkonténer, téma-gomb.
   Szerkezet és méret. Színt kizárólag tokenből vesz (css/themes/). */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
  /* A felhasználó böngésző-beállítása érvényesül: a 87.5% a 16px-es
     alapértelmezéshez képest adja a korábbi 14px-et, de nagyítható marad. */
  font-size:calc(87.5% * var(--font-scale,1));
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

body{
  background:var(--surface-0);
  color:var(--text-primary);
  font-family:var(--font-body);
  min-height:100vh;
  font-feature-settings:"cv01","cv02";
  -webkit-font-smoothing:antialiased;
}

button{font-family:var(--font-body);cursor:pointer}
input,select,textarea{font-family:var(--font-body)}

.page{display:none;min-height:100vh;flex-direction:column}
.page.active{display:flex}

/* Fókuszgyűrű – globális alap. Egyetlen komponens sem kapcsolhatja ki
   pótlás nélkül; lásd css/README.md. */
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:var(--radius-sm);
}

/* Csak képernyőolvasónak szánt szöveg */
.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;
}

/* Ugrás a tartalomra */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:1000;
  background:var(--accent);color:var(--text-on-accent);
  padding:10px 18px;border-radius:0 0 var(--radius) 0;font-weight:600;
}
.skip-link:focus{left:0}

/* Téma-gomb */
.btn-theme{
  background:var(--surface-2);border:1px solid var(--border-strong);
  color:var(--text-secondary);border-radius:20px;padding:5px 12px;
  font-size:.82rem;cursor:pointer;transition:var(--transition);
  font-family:var(--font-body);display:flex;align-items:center;gap:5px;
  white-space:nowrap;
}
.btn-theme:hover{border-color:var(--accent);color:var(--accent)}

/* Toast */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%);
  background:var(--surface-2);border:1px solid var(--accent);
  color:var(--accent);padding:10px 22px;border-radius:20px;
  font-size:.93rem;z-index:9999;font-family:var(--font-body);
  box-shadow:var(--shadow-hero);max-width:90vw;text-align:center;
}
