/* Esthétique reprise des quiz historiques : titres à empattement, cartes, mode sombre automatique. */
:root{
  --bg:#f7f4f2; --paper:#fff; --ink:#141214; --muted:#66606a; --line:#e4dde0;
  --btn:#111012; --btn-ink:#fff; --accent:#b0174d; --sel:#fbe8ef;
  --ok:#2c7a4b; --ok-bg:#e3f3e9; --ko:#b3261e; --ko-bg:#fbe5e3;
  --easy:#2c7a4b; --mid:#9a6a1f; --hard:#b0174d;
  --serif:"Bodoni Moda",Didot,Georgia,serif;
  --safe-top:env(safe-area-inset-top,0px); --safe-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0e0d0f; --paper:#19171b; --ink:#f3eff1; --muted:#a59ea8; --line:#332e35;
    --btn:#f3eff1; --btn-ink:#121013; --accent:#ff6a9f; --sel:#3a1f2b;
    --ok:#7fd19c; --ok-bg:#1d3326; --ko:#ff8f86; --ko-bg:#3b2020;
    --easy:#7fd19c; --mid:#e5bd6e; --hard:#ff6a9f;
  }
}
:root[data-theme="dark"]{
  --bg:#0e0d0f; --paper:#19171b; --ink:#f3eff1; --muted:#a59ea8; --line:#332e35;
  --btn:#f3eff1; --btn-ink:#121013; --accent:#ff6a9f; --sel:#3a1f2b;
  --ok:#7fd19c; --ok-bg:#1d3326; --ko:#ff8f86; --ko-bg:#3b2020;
  --easy:#7fd19c; --mid:#e5bd6e; --hard:#ff6a9f;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,system-ui,sans-serif;min-height:100vh;
  padding-bottom:var(--safe-bottom);-webkit-tap-highlight-color:transparent}
a{color:inherit}
.wrap{max-width:720px;margin:0 auto;padding:12px 16px 48px}
.hidden{display:none!important}

/* Barre du haut */
.barre{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;
  padding:calc(10px + var(--safe-top)) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.marque{font-family:var(--serif);font-style:italic;font-weight:700;font-size:24px;text-decoration:none;color:var(--accent)}
.barre nav{display:flex;gap:4px}
.barre nav a{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;text-decoration:none;font-size:20px}
.barre nav a:active{background:var(--line)}

/* Titres */
h1{font-family:var(--serif);font-weight:700;font-style:italic;font-size:clamp(30px,8vw,46px);line-height:1.05;margin:18px 0 4px}
h2{font-family:var(--serif);font-weight:700;font-size:24px;margin:0 0 6px}
.sous{color:var(--muted);margin:0 0 18px}
.lbl{display:block;font-weight:600;margin:22px 0 10px;font-size:14px;letter-spacing:.02em}

/* Cartes */
.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;
  box-shadow:0 1px 0 rgba(0,0,0,.03),0 10px 30px -18px rgba(60,30,20,.35)}
.grille{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.theme-carte{display:block;text-decoration:none;position:relative;overflow:hidden;padding:20px 20px 18px}
.theme-carte::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--c)}
.theme-carte h3{font-family:var(--serif);font-size:23px;margin:0 0 6px;line-height:1.15}
.meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:var(--muted)}
.theme-carte:active{transform:scale(.99)}
.vide{text-align:center;color:var(--muted);padding:40px 10px}

/* Puces de choix */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:transparent;color:var(--ink);min-height:44px;padding:9px 16px;
  border-radius:999px;cursor:pointer;font:inherit;font-weight:500}
.chip[aria-pressed="true"]{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.perso{display:flex;align-items:center;gap:10px;margin-top:10px;color:var(--muted);font-size:14px}
input[type=number],input[type=text],input[type=password]{padding:10px 12px;border:1px solid var(--line);border-radius:10px;
  background:var(--paper);color:var(--ink);font:inherit;min-height:44px}
input[type=number]{width:100px}
.case{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}
.case input{flex:none;width:20px;height:20px;accent-color:var(--accent)}
.dispo{font-size:14px;color:var(--muted);margin-top:16px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--btn);color:var(--btn-ink);border:0;
  border-radius:12px;min-height:50px;padding:12px 24px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.plein{width:100%}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.lien{background:none;border:0;color:var(--muted);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer;padding:8px 0}

/* Partie */
.topbar{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--muted);margin:8px 0 8px}
.progress{height:4px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:18px}
.progress>i{display:block;height:100%;background:var(--accent);transition:width .3s}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid currentColor;
  text-transform:uppercase;letter-spacing:.06em}
.badge.source{color:var(--muted);text-transform:none;letter-spacing:0}
.b-facile{color:var(--easy)} .b-moyen{color:var(--mid)} .b-difficile{color:var(--hard)}
.qtext{font-family:var(--serif);font-size:clamp(22px,5.5vw,28px);font-weight:700;line-height:1.25;margin:14px 0 6px}
.hint{font-size:13px;color:var(--muted);margin-bottom:14px;min-height:1em}
.opts{display:grid;gap:10px}
.opt{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;min-height:52px;border:1px solid var(--line);
  background:var(--paper);color:var(--ink);padding:13px 15px;border-radius:12px;cursor:pointer;font:inherit}
.opt .box{flex:none;width:20px;height:20px;margin-top:2px;border:2px solid var(--muted);border-radius:50%;display:grid;place-items:center}
.multi .opt .box{border-radius:5px}
.opt.sel{background:var(--sel);border-color:var(--accent)}
.opt.sel .box{border-color:var(--btn);background:var(--btn)}
.opt.sel .box::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--btn-ink)}
.opt.good{background:var(--ok-bg);border-color:var(--ok)}
.opt.bad{background:var(--ko-bg);border-color:var(--ko)}
.opt.missed{border-color:var(--ok);border-style:dashed}
.opt:disabled{cursor:default}
.opt .tag{margin-left:auto;font-size:12px;font-weight:600;white-space:nowrap;padding-left:8px}
.opt.good .tag,.opt.missed .tag{color:var(--ok)} .opt.bad .tag{color:var(--ko)}
.feedback{margin-top:16px;padding:12px 15px;border-radius:12px}
.feedback b{display:block}
.feedback.ok{background:var(--ok-bg);color:var(--ok)} .feedback.ko{background:var(--ko-bg);color:var(--ko)}
.feedback p{margin:6px 0 0;color:var(--ink);font-size:15px}
details.sources{margin-top:10px;font-size:13px;color:var(--muted)}
details.sources a{word-break:break-all}
.pied-question{position:sticky;bottom:0;padding:12px 0 calc(8px + var(--safe-bottom));background:linear-gradient(transparent,var(--bg) 30%)}

/* Résultat */
.center{text-align:center}
.score-big{font-family:var(--serif);font-size:clamp(64px,18vw,96px);font-weight:700;font-style:italic;line-height:1;color:var(--accent);margin:10px 0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}
.stat{border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
.stat b{display:block;font-size:20px}
.stat span{font-size:12px;color:var(--muted)}
.bloc-stat{text-align:left;margin:0 0 20px}
.bloc-stat h3{font-size:14px;font-weight:600;letter-spacing:.02em;margin:0 0 8px;color:var(--muted)}
.ligne-stat{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:10px;padding:6px 0;font-size:14px}
.ligne-stat .lib{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ligne-stat b{min-width:44px;text-align:right}
.jauge{height:6px;background:var(--line);border-radius:6px;overflow:hidden}
.jauge>i{display:block;height:100%;background:var(--accent)}
.badge.portee{color:var(--accent)}
.revue{text-align:left;margin-top:20px}
.rev{border-top:1px solid var(--line);padding:12px 0;font-size:14px}
.rev .q{font-weight:600}
.rev .a{color:var(--ok)} .rev .y{color:var(--ko)}

/* Listes */
.liste{list-style:none;padding:0;margin:0}
.liste li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:12px 0}
.liste li:first-child{border-top:0}

.bandeau{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 18px}

/* Création et suivi */
h2.section{font-size:20px;margin:28px 0 12px}
.fab{position:fixed;right:20px;bottom:calc(20px + var(--safe-bottom));width:60px;height:60px;border-radius:50%;
  background:var(--accent);color:#fff;display:grid;place-items:center;font-size:32px;line-height:1;text-decoration:none;
  box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:6}
.champ{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);
  font:inherit;min-height:46px}
.liste-sugg{display:grid;gap:10px}
.sugg{text-align:left;font:inherit;color:var(--ink);cursor:pointer;padding:16px 18px;width:100%}
.sugg b{font-family:var(--serif);font-size:19px}
.sugg .desc{margin-top:6px;font-size:14px}
.sugg .deja{margin-top:8px;font-size:13px;font-weight:600;color:var(--ok)}
.sugg.choisie{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.etapes{margin:0;padding-left:22px;color:var(--muted)}
.etapes li{padding:4px 0}
.etapes li.fait{color:var(--ok)}
.etapes li.fait::marker{content:"✓  "}
.etapes li.courant{color:var(--ink);font-weight:600}
.wrap{padding-bottom:110px}
.toast{position:fixed;left:50%;bottom:calc(20px + var(--safe-bottom));transform:translateX(-50%);background:var(--btn);color:var(--btn-ink);
  padding:12px 18px;border-radius:12px;font-size:14px;max-width:90vw;z-index:10;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.chargement{color:var(--muted);text-align:center;padding:40px 0}

/* Configuration d'une partie */
.card+.card{margin-top:14px}
.card>.lbl:first-child{margin-top:0}
.bloc-st{border-top:1px solid var(--line);padding:6px 0}
.bloc-st:first-of-type{border-top:0}
.ligne-st{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ligne-st .case{flex:1;min-width:0}
.detail-st{padding:4px 0 10px 32px}
.detail-st.seul{padding-left:0}
.sous-lbl{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;font-weight:600;color:var(--muted);margin:12px 0 4px}
.sous-lbl .lien{padding:0 0 0 10px;font-size:13px}
.chips.petites .chip{min-height:38px;padding:6px 13px;font-size:14px}
.chip small{opacity:.65;font-weight:400;margin-left:4px}
.case .meta{display:inline}
.nb-chap{display:flex;align-items:center;gap:10px;font-size:14px;margin-top:6px}
/* Serveur injoignable */
.hors-ligne{text-align:center;padding:48px 20px}
.hors-ligne .icone{font-size:44px;line-height:1}
.hors-ligne h2{margin:14px 0 8px}
.hors-ligne p{color:var(--muted);margin:0 0 22px}
@media (max-width:480px){.card{padding:18px}}
