/* ═══ Тренажер Examen civique · стиль J'adore Apprendre · mobile-first ═══ */
:root{
  --cream:#FAF1E9; --ink:#26325F; --ink-soft:#4A5680;
  --rose:#D98A97; --rose-deep:#C25E6E; --rose-pale:#F6DCDD;
  --white:#FFFFFF; --green:#2E7D52; --green-pale:#E3F2E9;
  --red:#C0392B; --red-pale:#FBE9E7;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--cream);color:var(--ink);
  min-height:100dvh;display:flex;flex-direction:column;
  -webkit-font-smoothing:antialiased;
}
.top{
  background:var(--white);border-bottom:1.5px solid var(--rose-pale);
  padding:12px 16px;display:flex;align-items:center;gap:10px;
  position:sticky;top:0;z-index:10;
}
.top img{width:38px;height:38px;border-radius:50%}
.top .brand{font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:1rem;line-height:1.2}
.top .brand em{font-family:'Parisienne',cursive;font-style:normal;color:var(--rose-deep);font-size:1.1rem}
.top .demo-badge{
  margin-left:auto;background:var(--rose-pale);color:var(--rose-deep);
  font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;white-space:nowrap;
}
main{flex:1;width:100%;max-width:640px;margin:0 auto;padding:20px 16px 40px}

h1{font-family:'Playfair Display',Georgia,serif;font-size:1.45rem;font-weight:600;line-height:1.3;margin-bottom:6px}
.subtitle{color:var(--ink-soft);font-size:.92rem;margin-bottom:22px}
.theme-tag{
  display:inline-block;background:var(--ink);color:var(--cream);
  font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  padding:5px 12px;border-radius:999px;margin-bottom:12px;
}

/* Список уроків */
.lesson-card{
  display:block;background:var(--white);border:1.5px solid var(--rose-pale);
  border-radius:18px;padding:18px;margin-bottom:14px;text-decoration:none;color:var(--ink);
  transition:transform .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;
}
.lesson-card:active{transform:scale(.98)}
.lesson-card .num{
  font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:700;
  color:var(--rose);font-size:1.3rem;
}
.lesson-card h2{font-family:'Playfair Display',Georgia,serif;font-size:1.12rem;font-weight:600;margin:2px 0 6px}
.lesson-card .meta{font-size:.85rem;color:var(--ink-soft)}
.lesson-card .bar{height:6px;background:var(--rose-pale);border-radius:999px;margin-top:12px;overflow:hidden}
.lesson-card .bar i{display:block;height:100%;background:var(--rose-deep);border-radius:999px}
.lesson-card .score{font-size:.8rem;color:var(--rose-deep);font-weight:600;margin-top:6px;display:block}

/* Конспект */
.conspect{background:var(--white);border:1.5px solid var(--rose-pale);border-radius:18px;padding:20px 18px;margin-bottom:20px}
.conspect p{font-size:.95rem;line-height:1.65;color:var(--ink-soft);margin-bottom:12px}
.conspect p:last-child{margin-bottom:0}
.conspect ul{list-style:none;margin-bottom:12px}
.conspect li{
  font-size:.95rem;line-height:1.6;color:var(--ink);padding:7px 0 7px 22px;position:relative;
  border-bottom:1px dashed var(--rose-pale);
}
.conspect li:last-child{border-bottom:none}
.conspect li::before{content:'';position:absolute;left:4px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--rose)}
.warn{
  background:#FFF6E5;border:1.5px solid #F2D9A6;border-radius:14px;
  padding:12px 14px;font-size:.9rem;line-height:1.55;color:#7A5A1E;margin-bottom:12px;
}
.vocab{
  background:var(--rose-pale);border-radius:14px;padding:12px 14px;
  font-size:.88rem;line-height:1.7;color:var(--ink);margin-bottom:0;
}
.vocab b{color:var(--rose-deep)}

/* Кнопки */
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:54px;padding:15px 20px;border-radius:999px;border:none;cursor:pointer;
  font-family:'Inter',sans-serif;font-weight:600;font-size:1rem;text-decoration:none;
  transition:transform .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.btn:active{transform:scale(.97)}
.btn-rose{background:var(--rose-deep);color:#fff;box-shadow:0 8px 22px rgba(194,94,110,.3)}
.btn-outline{background:var(--white);color:var(--ink);border:1.5px solid var(--rose)}
.btn+.btn{margin-top:10px}

/* Квіз */
.quiz-progress{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.quiz-progress .bar{flex:1;height:8px;background:var(--rose-pale);border-radius:999px;overflow:hidden}
.quiz-progress .bar i{display:block;height:100%;background:var(--rose-deep);border-radius:999px;transition:width .3s}
.quiz-progress span{font-size:.85rem;font-weight:600;color:var(--ink-soft);white-space:nowrap}
.q-card{background:var(--white);border:1.5px solid var(--rose-pale);border-radius:18px;padding:20px 18px}
.q-text{font-size:1.05rem;font-weight:600;line-height:1.5;margin-bottom:18px}
.opt{
  display:block;width:100%;text-align:left;background:var(--cream);
  border:1.5px solid var(--rose-pale);border-radius:14px;
  padding:14px 16px;margin-bottom:10px;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:.97rem;line-height:1.45;color:var(--ink);
  transition:border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.opt:active{transform:scale(.985)}
.opt.correct{background:var(--green-pale);border-color:var(--green);color:var(--green);font-weight:600}
.opt.wrong{background:var(--red-pale);border-color:var(--red);color:var(--red)}
.opt:disabled{cursor:default;opacity:1}
.opt.dim{opacity:.55}
.explain{
  background:var(--rose-pale);border-radius:14px;padding:14px 16px;
  font-size:.92rem;line-height:1.6;color:var(--ink);margin:6px 0 16px;display:none;
}
.explain b{color:var(--rose-deep)}

/* Результат */
.result{text-align:center;background:var(--white);border:1.5px solid var(--rose-pale);border-radius:18px;padding:32px 20px}
.result .script{font-family:'Parisienne',cursive;font-size:1.9rem;color:var(--rose-deep);display:block;margin-bottom:8px}
.result .score-big{font-family:'Playfair Display',Georgia,serif;font-size:2.6rem;font-weight:700;margin-bottom:6px}
.result p{color:var(--ink-soft);font-size:.93rem;margin-bottom:22px}

.back{display:inline-block;font-size:.88rem;color:var(--ink-soft);text-decoration:none;margin-bottom:16px}
.back:hover{color:var(--rose-deep)}

footer{
  background:var(--white);border-top:1.5px solid var(--rose-pale);
  padding:16px;font-size:.72rem;line-height:1.55;color:var(--ink-soft);text-align:center;
}
footer a{color:var(--rose-deep)}

@media(min-width:700px){
  h1{font-size:1.7rem}
  main{padding-top:32px}
}
