/* Přijímačky M9 — vzhled ve stylu Duolinga.
   Hravé, barevné, zaoblené. 3D tlačítka s „push" efektem, tučný zaoblený font.
   Bez frameworku; jediná externí věc je webový font Nunito (s fallbackem). */

@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,600;0,700;0,800;0,900&display=swap');

:root {
  /* Vlastní paleta — fialová jako primární (viz DESIGN.md). Názvy --zelena*
     zůstávají kvůli kompatibilitě, ale nesou fialovou brand barvu; zelená pro
     „správně" je vyčleněná do --uspech*. */
  --zelena: #6a5cff;         /* primární / brand */
  --zelena-tmava: #5346d6;   /* stín primárního tlačítka */
  --zelena-svetla: #ece9ff;
  --zelena-pozadi: #f7f6ff;

  --fialova: #6a5cff;
  --fialova-tmava: #5346d6;
  --fialova-svetla: #ece9ff;
  --fialova-pozadi: #f7f6ff;

  --uspech: #22c55e;         /* správně */
  --uspech-tmava: #16a34a;
  --uspech-svetla: #dcfce7;

  --modra: #12c2b8;          /* sekundární akce (tyrkys) */
  --modra-tmava: #0ea79e;
  --modra-svetla: #d5f7f4;

  --oranzova: #ffb020;       /* odměny, série, XP (jantar) */
  --oranzova-tmava: #e0930a;

  --cervena: #ff5470;        /* chyba (korál) */
  --cervena-tmava: #e63958;
  --cervena-svetla: #ffe4e9;

  --zluta: #ffc800;
  --tyrkys: #12c2b8;
  --jantar: #ffb020;
  --jantar-tmava: #e0930a;
  --koral: #ff5470;

  --text: #2b2540;
  --text-tlumeny: #6b6580;
  --ram: #e7e3f0;
  --ram-tmavy: #d3cde3;
  --pozadi: #ffffff;
  --pozadi-tlumene: #f7f6ff;

  --r: 16px;
  --font: 'Nunito', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* Tmavý režim — přepínač nastaví data-tema="tmavy" na <html>. */
html[data-tema="tmavy"] {
  --zelena-svetla: #2a2350;
  --zelena-pozadi: #1c1836;
  --fialova-svetla: #2a2350;
  --fialova-pozadi: #1c1836;
  --uspech-svetla: #14351f;
  --cervena-svetla: #3a1a24;
  --modra-svetla: #10312e;

  --text: #ece9ff;
  --text-tlumeny: #a09cb8;
  --ram: #2a2540;
  --ram-tmavy: #3a3352;
  --pozadi: #16132a;
  --pozadi-tlumene: #201b38;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.5;
  color: var(--text);
  background: var(--pozadi);
  -webkit-font-smoothing: antialiased;
}

/* ---------- hlavička ---------- */

.hlavicka {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 2px solid var(--ram);
  position: sticky;
  top: 0;
  background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(8px);
  z-index: 10;
}

.znacka {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 800;
  font-size: 19px;
  color: var(--zelena);
  cursor: pointer;
  padding: 4px;
}

.znacka-ikona {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: var(--zelena);
  color: #fff;
  font-size: 19px;
  box-shadow: 0 3px 0 var(--zelena-tmava);
}

.hlavicka-vpravo { display: flex; align-items: center; gap: 12px; }

/* série jako plamínek */
.serie {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 17px;
  font-weight: 800;
  color: var(--jantar-tmava);
}

.serie::before { content: '🔥'; font-size: 20px; }

/* ---------- rozvržení ---------- */

main {
  max-width: 640px;
  margin: 0 auto;
  padding: 26px 20px 90px;
}

h1 { font-size: 28px; line-height: 1.2; margin: 0 0 12px; font-weight: 800; }
h2 { font-size: 20px; margin: 34px 0 14px; font-weight: 800; }

.podtitul { color: var(--text-tlumeny); margin: 0 0 26px; font-weight: 600; }

/* ---------- maskot ---------- */

.maskot {
  display: block;
  width: 128px;
  height: 128px;
  margin: 8px auto 18px;
}

.uvod { text-align: center; }
.uvod h1, .uvod .podtitul { text-align: center; }
.uvod h2 { text-align: left; }

/* ---------- tlačítka (3D „push") ---------- */

.tlacitko {
  font: inherit;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: .4px;
  text-transform: uppercase;
  padding: 13px 22px;
  border-radius: var(--r);
  border: none;
  background: var(--pozadi-tlumene);
  color: var(--text);
  cursor: pointer;
  box-shadow: 0 4px 0 var(--ram-tmavy);
  transition: transform .04s, box-shadow .04s, filter .12s;
}

.tlacitko:hover { filter: brightness(1.03); }

.tlacitko:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}

.tlacitko.hlavni {
  background: var(--zelena);
  color: #fff;
  box-shadow: 0 4px 0 var(--zelena-tmava);
}

.tlacitko.modra {
  background: var(--modra);
  color: #fff;
  box-shadow: 0 4px 0 var(--modra-tmava);
}

.tlacitko.nebezpecne {
  background: #fff;
  color: var(--cervena);
  box-shadow: 0 4px 0 var(--cervena-svetla);
  margin-top: 32px;
}

.tlacitko:disabled {
  opacity: .55;
  cursor: default;
  transform: translateY(4px);
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  filter: none;
}

.tlacitko-text {
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  border: 0;
  background: none;
  color: var(--modra);
  cursor: pointer;
  padding: 8px 4px;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.tlacitko-text:hover { color: var(--modra-tmava); }

/* ---------- karty režimů ---------- */

.rezimy { display: grid; gap: 14px; margin-bottom: 8px; }

.karta-rezim {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: left;
  font: inherit;
  padding: 20px 22px;
  border: 2px solid var(--ram);
  border-bottom-width: 4px;
  border-radius: var(--r);
  background: #fff;
  cursor: pointer;
  transition: transform .05s, border-color .12s, background .12s;
}

.karta-rezim:hover { border-color: var(--zelena); background: var(--zelena-pozadi); }
.karta-rezim:active { transform: translateY(2px); }

.karta-rezim.hlavni { border-color: var(--zelena); background: var(--zelena-pozadi); }

.karta-stitek { display: block; font-weight: 800; font-size: 18px; }
.karta-popis { display: block; font-size: 15px; color: var(--text-tlumeny); font-weight: 600; }

/* ---------- témata ---------- */

.temata { display: grid; gap: 12px; }

.tema {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  text-align: left;
  font: inherit;
  padding: 14px 16px;
  border: 2px solid var(--ram);
  border-bottom-width: 4px;
  border-radius: var(--r);
  background: #fff;
  cursor: pointer;
  transition: transform .05s, border-color .12s;
}

.tema:hover { border-color: var(--tema-barva, var(--zelena)); background: var(--pozadi-tlumene); }
.tema:active { transform: translateY(2px); }

.tema-kod {
  flex: none;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--tema-barva, var(--zelena));
  font-size: 26px;
  box-shadow: 0 3px 0 var(--tema-stin, var(--zelena-tmava));
}

.tema-nazev { flex: 1; font-weight: 800; font-size: 17px; }

.tema-skore {
  font-size: 15px;
  color: var(--text-tlumeny);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* pokrok tématu jako proužek */
.tema-pokrok {
  flex: none;
  width: 74px;
  height: 12px;
  border-radius: 999px;
  background: var(--ram);
  overflow: hidden;
}

.tema-pokrok > i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--tema-barva, var(--zelena));
}

/* ---------- úloha ---------- */

.uloha-lista, .test-lista {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}

.uloha-info, .test-postup { font-size: 15px; color: var(--text-tlumeny); font-weight: 700; }

/* pruh postupu v hlavičce úlohy */
.uloha-lista { justify-content: flex-start; }
.uloha-lista .tlacitko-text { flex: none; }

.cas {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  font-size: 18px;
  color: var(--modra);
}

.cas.dochazi { color: var(--cervena); }

.uloha {
  border: 2px solid var(--ram);
  border-radius: 20px;
  padding: 26px;
}

.uloha-pokyn {
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--modra);
  margin: 0 0 14px;
}

.uloha-zadani {
  font-size: 19px;
  font-weight: 600;
  white-space: pre-wrap;
  margin-bottom: 20px;
}

.uloha-zadani .vyraz {
  display: block;
  margin-top: 12px;
  font-size: 24px;
  font-weight: 800;
  color: var(--text);
}

.uloha-obrazek { margin: 20px 0; display: flex; flex-wrap: wrap; gap: 16px; }
.uloha-obrazek svg { max-width: 100%; height: auto; }

/* ---------- odpovědi ---------- */

.odpoved-form { display: grid; gap: 16px; }

.pole { display: grid; gap: 8px; }
.pole-popis { font-size: 16px; color: var(--text); font-weight: 700; }

.vstup-radek { display: flex; align-items: center; gap: 10px; }

input[type="text"] {
  font: inherit;
  font-size: 19px;
  font-weight: 700;
  padding: 14px 16px;
  border: 2px solid var(--ram);
  border-radius: var(--r);
  width: 100%;
  max-width: 280px;
  transition: border-color .12s;
}

input[type="text"]:focus {
  outline: none;
  border-color: var(--modra);
}

.jednotka { color: var(--text-tlumeny); font-size: 17px; font-weight: 700; }

.nabidka { display: grid; gap: 8px; margin-top: 10px; }

.nabidka-polozka {
  font-size: 16px;
  font-weight: 700;
  padding: 12px 16px;
  border: 2px solid var(--ram);
  border-radius: 12px;
  background: var(--pozadi-tlumene);
}

/* ---------- akce pod úlohou ---------- */

.akce {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
}

.akce .tlacitko-text { margin-left: auto; }

/* ---------- nápovědy ---------- */

.napovedy { display: grid; gap: 12px; margin-top: 20px; }

.napoveda {
  border: 2px solid #ffe08a;
  background: #fffaf0;
  border-radius: var(--r);
  padding: 15px 18px;
  position: relative;
}

.napoveda-cislo {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--oranzova-tmava);
  margin-bottom: 5px;
}

.napoveda-cislo::before { content: '💡'; font-size: 15px; }

.napoveda p { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }

/* ---------- výsledek ---------- */

.vysledek {
  margin-top: 20px;
  padding: 18px 20px;
  border-radius: var(--r);
  font-weight: 800;
  font-size: 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.vysledek::first-line { font-size: 19px; }

.vysledek.spravne { background: var(--uspech-svetla); color: var(--uspech-tmava); }
.vysledek.spravne::before { content: '🎉 '; }
.vysledek.spatne { background: var(--cervena-svetla); color: var(--cervena-tmava); }
.vysledek.vzdano { background: var(--modra-svetla); color: var(--modra-tmava); }

.vysledek .spravna-odpoved {
  font-weight: 700;
  color: var(--text);
  font-size: 16px;
}

.vysledek .postup-upozorneni {
  font-weight: 600;
  font-size: 15px;
  color: var(--text-tlumeny);
}

/* ---------- postup řešení po krocích ---------- */

.reseni {
  margin-top: 22px;
  border: 2px solid var(--ram);
  border-radius: 20px;
  padding: 20px 22px;
}

.reseni-hlava {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.reseni-nadpis { font-size: 17px; margin: 0; font-weight: 800; }

.reseni-pocet {
  font-size: 13px;
  color: var(--text-tlumeny);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.kroky { margin: 14px 0 0; padding: 0; list-style: none; counter-reset: krok; }

.krok {
  position: relative;
  margin-bottom: 14px;
  padding: 14px 16px 14px 52px;
  border-radius: 14px;
  background: var(--pozadi-tlumene);
  counter-increment: krok;
}

.krok::before {
  content: counter(krok);
  position: absolute;
  left: 14px;
  top: 14px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--modra);
  color: #fff;
  font-weight: 800;
  font-size: 14px;
  display: grid;
  place-items: center;
}

.krok:last-child { margin-bottom: 0; }

.krok-text { font-weight: 800; font-size: 17px; }

.krok-proc {
  margin: 5px 0 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--text-tlumeny);
  font-weight: 600;
}

.reseni-ovladani {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 2px solid var(--ram);
}

.reseni-test { margin-top: 16px; }

.reseni-test summary {
  cursor: pointer;
  font-weight: 800;
  font-size: 15px;
  color: var(--modra);
  padding: 6px 0;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.uloha-navigace { margin-top: 24px; display: flex; justify-content: flex-end; }

/* ---------- test ---------- */

.test-uloha {
  border: 2px solid var(--ram);
  border-radius: 20px;
  padding: 22px;
  margin-bottom: 16px;
}

.test-uloha-hlava {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.test-cislo {
  font-weight: 800;
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.test-cislo::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--zelena);
}

.test-body { font-size: 14px; color: var(--text-tlumeny); font-weight: 700; }

.test-uloha.chybi {
  background: var(--pozadi-tlumene);
  border-style: dashed;
  color: var(--text-tlumeny);
}

.test-uloha.chybi .test-cislo::before { background: var(--ram-tmavy); }

.test-vyhodnoceni {
  border: 2px solid var(--uspech);
  background: var(--uspech-svetla);
  border-radius: 20px;
  padding: 26px;
  margin-bottom: 22px;
  text-align: center;
}

.test-vyhodnoceni .skore {
  font-size: 42px;
  font-weight: 900;
  display: block;
  color: var(--uspech);
}

.test-vyhodnoceni p { font-weight: 600; color: var(--text-tlumeny); margin: 8px 0 0; }

/* ---------- statistiky ---------- */

.souhrn { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 14px; }

.souhrn-karta {
  border: 2px solid var(--ram);
  border-bottom-width: 4px;
  border-radius: var(--r);
  padding: 18px;
  text-align: center;
}

.souhrn-cislo { display: block; font-size: 32px; font-weight: 900; color: var(--modra); }
.souhrn-popis { font-size: 14px; color: var(--text-tlumeny); font-weight: 700; }

.tabulka { width: 100%; border-collapse: collapse; font-size: 16px; }
.tabulka th { text-align: left; font-size: 13px; color: var(--text-tlumeny); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 10px 6px; border-bottom: 2px solid var(--ram); }
.tabulka td { padding: 12px 6px; border-bottom: 2px solid var(--ram); font-weight: 700; }
.tabulka td:last-child, .tabulka th:last-child { text-align: right; font-variant-numeric: tabular-nums; }

.poznamka-pravni {
  margin-top: 48px;
  font-size: 13px;
  color: var(--text-tlumeny);
  border-top: 2px solid var(--ram);
  padding-top: 16px;
  font-weight: 600;
}

.prazdne { color: var(--text-tlumeny); font-weight: 600; }

/* ---------- tvrzení ANO / NE ---------- */

.pole-tvrzeni {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-top: 2px solid var(--ram);
}

.pole-tvrzeni .pole-popis { font-size: 16px; line-height: 1.45; font-weight: 700; }

.anone { display: flex; gap: 8px; flex: none; }

.anone input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }

.anone label {
  display: grid;
  place-items: center;
  min-width: 62px;
  padding: 10px 16px;
  border: 2px solid var(--ram);
  border-bottom-width: 4px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--text-tlumeny);
  cursor: pointer;
  user-select: none;
  transition: transform .05s, background .12s, border-color .12s, color .12s;
}

.anone label:hover { border-color: var(--modra); color: var(--modra); }
.anone label:active { transform: translateY(2px); }

.anone input:checked + label {
  background: var(--modra);
  border-color: var(--modra-tmava);
  color: #fff;
}

.anone input:focus-visible + label { outline: 3px solid var(--modra-svetla); outline-offset: 2px; }
.anone input:disabled + label { cursor: default; opacity: .8; }

/* ---------- tabulka jako podklad úlohy ---------- */

.graf-tabulka { overflow-x: auto; }
.graf-titulek { margin: 0 0 10px; font-weight: 800; font-size: 15px; }
.graf-tabulka table { border-collapse: collapse; font-size: 15px; min-width: 320px; }
.graf-tabulka th, .graf-tabulka td { border: 2px solid var(--ram); padding: 9px 14px; text-align: left; }
.graf-tabulka thead th { background: var(--pozadi-tlumene); font-weight: 800; font-size: 14px; }
.graf-tabulka tbody th { font-weight: 700; }
.graf-tabulka td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }

/* ---------- responzivita ---------- */

@media (max-width: 520px) {
  body { font-size: 16px; }
  main { padding: 20px 16px 70px; }
  .uloha { padding: 20px; }
  h1 { font-size: 24px; }
  .akce { gap: 10px; }
  .akce .tlacitko-text { margin-left: 0; width: 100%; text-align: left; }
  .pole-tvrzeni { grid-template-columns: 1fr; gap: 12px; }
  .anone { justify-content: flex-start; }
  .tema-pokrok { display: none; }
}

/* ---------- adaptivní režim: důvod výběru úlohy ---------- */

.duvod {
  display: inline-block;
  margin: 4px 0 2px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--modra-svetla);
  color: var(--modra-tmava);
  font-size: 14px;
  font-weight: 700;
}

/* ---------- ikonová tlačítka v hlavičce ---------- */

.ikona-btn {
  border: 0;
  background: none;
  font-size: 20px;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  border-radius: 8px;
}
.ikona-btn:hover { background: var(--pozadi-tlumene); }

.uroven-odznak {
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  background: var(--fialova);
  padding: 3px 9px;
  border-radius: 999px;
  box-shadow: 0 2px 0 var(--fialova-tmava);
}

.znacka-ikona svg { width: 26px; height: 26px; display: block; }

/* ---------- denní cíl ---------- */

.denni-cil {
  text-align: left;
  border: 2px solid var(--ram);
  border-bottom-width: 4px;
  border-radius: var(--r);
  padding: 14px 18px;
  margin-bottom: 20px;
  background: var(--pozadi);
}
.denni-cil.splneno { border-color: var(--uspech); background: var(--uspech-svetla); }

.denni-cil-hlava {
  display: flex;
  justify-content: space-between;
  font-weight: 800;
  font-size: 15px;
  margin-bottom: 8px;
}
.denni-cil-pocet { color: var(--text-tlumeny); font-variant-numeric: tabular-nums; }

.denni-cil-pruh {
  height: 12px;
  border-radius: 999px;
  background: var(--ram);
  overflow: hidden;
}
.denni-cil-pruh > i {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--jantar);
  transition: width .4s ease;
}
.denni-cil.splneno .denni-cil-pruh > i { background: var(--uspech); }

/* ---------- zisk XP u výsledku ---------- */

.xp-zisk {
  display: inline-block;
  font-weight: 800;
  color: var(--jantar-tmava);
  font-size: 15px;
}

/* ---------- odznaky ---------- */

.odznaky-mrizka {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.odznak {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  padding: 10px 6px;
  border: 2px solid var(--ram);
  border-radius: 14px;
}
.odznak-ikona { width: 48px; height: 48px; }
.odznak-ikona svg { width: 100%; height: 100%; display: block; }
.odznak-nazev { font-size: 12px; font-weight: 700; line-height: 1.2; color: var(--text-tlumeny); }
.odznak.zamceny { opacity: .38; filter: grayscale(1); }
.odznak.zamceny .odznak-nazev { color: var(--text-tlumeny); }
