/* ================================================================
   VARIABLES & THÈME
   ================================================================ */
:root {
    --bg: #eef2ff;
    --card-bg: #ffffff;
    --text: #1e293b;
    --text-muted: #64748b;
    --accent: #6366f1;
    --accent2: #8b5cf6;
    --french: #3b82f6;
    --arabic: #10b981;
    --english: #f59e0b;
    --shadow: 0 25px 70px rgba(99,102,241,0.14);
    --shadow-sm: 0 4px 16px rgba(0,0,0,0.07);
    --border: #e2e8f0;
    --ill-bg: linear-gradient(135deg,#ede9fe 0%,#dbeafe 100%);
    --quiz-bg: #f8faff;
    --ghost: #f1f5f9;
    --tab-bg: #ffffff;
}
[data-theme="dark"] {
    --bg: #0f172a;
    --card-bg: #1e293b;
    --text: #e2e8f0;
    --text-muted: #94a3b8;
    --accent: #818cf8;
    --accent2: #a78bfa;
    --french: #60a5fa;
    --arabic: #34d399;
    --english: #fbbf24;
    --shadow: 0 25px 70px rgba(0,0,0,0.45);
    --shadow-sm: 0 4px 16px rgba(0,0,0,0.3);
    --border: #334155;
    --ill-bg: linear-gradient(135deg,#1e1b4b 0%,#172554 100%);
    --quiz-bg: #0f172a;
    --ghost: #334155;
    --tab-bg: #1e293b;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family:'Nunito',sans-serif;
    background:var(--bg);
    color:var(--text);
    min-height:100vh;
    padding:20px 14px 60px;
    overflow-x:hidden;
    transition:background .4s,color .4s;
}

/* ── BLOBS ── */
.blob {
    position:fixed; z-index:-1; border-radius:50%;
    filter:blur(80px); opacity:.3; pointer-events:none;
    animation:blobF 20s ease-in-out infinite;
}
.blob1 { width:500px;height:500px; background:radial-gradient(circle,#818cf8,transparent); top:-120px;left:-120px; }
.blob2 { width:400px;height:400px; background:radial-gradient(circle,#a78bfa,transparent); bottom:-100px;right:-100px; animation-delay:-10s; }
@keyframes blobF {
    0%,100%{transform:translate(0,0) scale(1);}
    50%{transform:translate(25px,-25px) scale(1.04);}
}

.wrap { max-width:820px; margin:0 auto; }

/* ── HEADER ── */
header {
    display:flex; justify-content:space-between; align-items:center;
    margin-bottom:22px; flex-wrap:wrap; gap:10px;
}
.logo { display:flex; align-items:center; gap:13px; }
.logo-icon {
    width:50px;height:50px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-radius:15px; display:flex; align-items:center; justify-content:center;
    font-size:24px; box-shadow:0 6px 18px rgba(99,102,241,.35);
}
.logo h1 {
    font-size:1.35rem; font-weight:900;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.logo p { font-size:.40rem; color:var(--text-muted); font-weight:600; }

.chip {
    background:var(--card-bg); border:2px solid var(--border);
    border-radius:50px; padding:8px 16px; cursor:pointer;
    font-family:'Nunito',sans-serif; font-size:.62rem; font-weight:700;
    color:var(--text); box-shadow:var(--shadow-sm);
    display:flex; align-items:center; gap:7px; transition:all .25s;
}
.chip:hover { border-color:var(--accent); color:var(--accent); }
.chip-settings { border-color:var(--accent); color:var(--accent); }
.chip-settings:hover { background:var(--accent); color:#fff; }

/* ── STATS BAR ── */
.stats-bar {
    display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap;
}
.stat-pill {
    background:var(--card-bg); border:1.5px solid var(--border);
    border-radius:50px; padding:6px 14px;
    font-size:.56rem; font-weight:800; color:var(--text-muted);
    box-shadow:var(--shadow-sm);
}
.stat-pill span { color:var(--accent); }

/* ── SÉLECTEUR DE NIVEAU ── */
.level-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    /* Scroll horizontal — pas de wrap */
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
    scrollbar-width: none;
}
.level-bar::-webkit-scrollbar { display: none; }

/* Le label "📶 Niveau :" reste visible à gauche pendant le scroll */
.level-label {
    font-size: .75rem;
    font-weight: 800;
    color: var(--text-muted);
    white-space: nowrap;
    flex-shrink: 0;
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--bg);
    padding-right: 4px;
}
.level-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;        /* empêche la compression des boutons */
    background: var(--card-bg);
    border: 2px solid var(--border);
    border-radius: 50px;
    padding: 6px 16px;
    font-family: 'Nunito', sans-serif;
    font-size: .78rem;
    font-weight: 800;
    color: var(--text-muted);
    cursor: pointer;
    transition: all .25s;
    box-shadow: var(--shadow-sm);
}
.level-btn:hover:not(:disabled):not(.active) {
    border-color: var(--accent);
    color: var(--accent);
}
.level-btn.active {
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 14px rgba(99,102,241,.35);
}
.level-btn:disabled {
    opacity: .65;
    cursor: default;
}
.level-btn.locked {
    opacity: .5;
    cursor: not-allowed;
    border-style: dashed;
    filter: grayscale(.6);
}

/* ── POPOVER NIVEAU VERROUILLÉ ── */
#lockPopover {
    position: fixed;
    z-index: 999;
    background: var(--card-bg);
    border: 1.5px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    padding: 12px 16px;
    max-width: 240px;
    font-size: .78rem;
    font-weight: 600;
    color: var(--text);
    line-height: 1.5;
    pointer-events: auto;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .18s, transform .18s;
    display: none;
}
#lockPopover.visible {
    display: block;
    opacity: 1;
    transform: translateY(0);
}
#lockPopover .lock-msg {
    margin-bottom: 10px;
    color: var(--text-muted);
}
#lockPopover .lock-quiz-btn {
    display: block;
    width: 100%;
    padding: 7px 0;
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    color: #fff;
    border: none;
    border-radius: 8px;
    font-family: 'Nunito', sans-serif;
    font-size: .78rem;
    font-weight: 800;
    cursor: pointer;
    transition: opacity .2s;
}
#lockPopover .lock-quiz-btn:hover { opacity: .85; }

/* ── CATEGORY TABS ── */
.cat-wrap {
    margin-bottom:16px;
    overflow-x:auto;
    padding-bottom:6px;
    scrollbar-width:thin;
    scrollbar-color:var(--border) transparent;
}
.cat-wrap::-webkit-scrollbar { height:4px; }
.cat-wrap::-webkit-scrollbar-track { background:transparent; }
.cat-wrap::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

.cat-tabs {
    display:flex; gap:8px; white-space:nowrap;
    padding:4px 2px;
}
.cat-tab {
    display:inline-flex; align-items:center; gap:6px;
    background:var(--tab-bg); border:2px solid var(--border);
    border-radius:50px; padding:7px 14px;
    font-family:'Nunito',sans-serif; font-size:.8rem; font-weight:800;
    color:var(--text-muted); cursor:pointer;
    transition:all .25s; white-space:nowrap;
    box-shadow:var(--shadow-sm);
}
.cat-tab:hover { border-color:var(--accent); color:var(--accent); }
.cat-tab.active {
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent; color:#fff;
    box-shadow:0 4px 14px rgba(99,102,241,.35);
}
.cat-count {
    background:rgba(255,255,255,.25); color:inherit;
    border-radius:99px; padding:1px 7px;
    font-size:.72rem; font-weight:900;
}
.cat-tab:not(.active) .cat-count {
    background:var(--border); color:var(--text-muted);
}

/* ── PROGRESS ── */
.prog-wrap { margin-bottom:16px; }
.prog-meta {
    display:flex; justify-content:space-between;
    margin-bottom:6px; font-size:.8rem; color:var(--text-muted); font-weight:700;
}
.prog-bar { height:7px; background:var(--border); border-radius:99px; overflow:hidden; }
.prog-fill {
    height:100%;
    background:linear-gradient(90deg,var(--accent),var(--accent2));
    border-radius:99px; transition:width .5s cubic-bezier(.4,0,.2,1);
}

/* ── MAIN CARD ── */
.card {
    background:var(--card-bg); border-radius:28px;
    box-shadow:var(--shadow); overflow:hidden;
    transition:background .4s;
}

.illustration {
    background:var(--ill-bg); padding:10px 10px 10px;
    display:flex; flex-direction:column; align-items:center; gap:12px;
    position:relative; border-bottom:1.5px solid var(--border); overflow:hidden;
}
.ic1,.ic2 {
    position:absolute; border-radius:50%; opacity:.12; pointer-events:none;
}
.ic1 { width:160px;height:160px;background:var(--accent); top:-40px;right:-40px; }
.ic2 { width:110px;height:110px;background:var(--accent2); bottom:-30px;left:-20px; }

.main-emoji {
    font-size:88px; line-height:1;
    animation:floatY 3s ease-in-out infinite;
    filter:drop-shadow(0 10px 20px rgba(0,0,0,.12));
    position:relative; z-index:1;
}
@keyframes floatY {
    0%,100%{transform:translateY(0);}
    50%{transform:translateY(-10px);}
}
.extra-emojis { font-size:28px; display:flex; gap:12px; z-index:1; }
.scene-badge {
    font-size:.73rem; font-weight:800; color:var(--text-muted);
    background:var(--card-bg); border:1.5px solid var(--border);
    padding:4px 13px; border-radius:99px; z-index:1;
}
.cat-badge {
    font-size:.7rem; font-weight:900; color:white;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    padding:3px 12px; border-radius:99px; z-index:1;
    letter-spacing:.5px;
}

/* ── PHRASES ── */
.content { padding:24px 26px 20px; }
.phrases { display:flex; flex-direction:column; gap:12px; margin-bottom:22px; }

.phrase-item {
    display:flex; align-items:center; gap:13px;
    padding:14px 17px; border-radius:16px; border:2px solid transparent;
    transition:transform .25s,box-shadow .25s;
}
.phrase-item:hover { transform:translateX(5px); box-shadow:var(--shadow-sm); }
.phrase-item.fr { background:rgba(59,130,246,.07); border-color:rgba(59,130,246,.18); }
.phrase-item.ar { background:rgba(16,185,129,.07); border-color:rgba(16,185,129,.18); }
.phrase-item.en { background:rgba(245,158,11,.08); border-color:rgba(245,158,11,.22); }

.lang-flag { font-size:24px; flex-shrink:0; }
.phrase-body { flex:1; }
.lang-tag {
    font-size:.64rem; font-weight:900; text-transform:uppercase;
    letter-spacing:1.2px; margin-bottom:3px;
}
.fr .lang-tag { color:var(--french); }
.ar .lang-tag { color:var(--arabic); }
.en .lang-tag { color:var(--english); }

.phrase-text { font-size:1.06rem; font-weight:700; line-height:1.4; color:var(--text); }
.ar .phrase-text { font-family:'Amiri',serif; font-size:1.26rem; direction:rtl; }
.en-text .w:hover { color:var(--english); }

/* ── BUTTONS ── */
.btn-row {
    display:flex; gap:10px; justify-content:center;
    flex-wrap:wrap; margin-bottom:8px;
}
.btn {
    display:inline-flex; align-items:center; gap:7px;
    padding:11px 20px; border:none; border-radius:50px;
    font-family:'Nunito',sans-serif; font-size:.86rem; font-weight:800;
    cursor:pointer; transition:all .25s; touch-action: pan-y;
}
.btn:active { transform:scale(.95); }

.btn-prev { background:var(--ghost); color:var(--text); border:2px solid var(--border); }
.btn-prev:hover { border-color:var(--accent); color:var(--accent); }

.btn-next {
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff; box-shadow:0 5px 16px rgba(99,102,241,.35);
}
.btn-next:hover { box-shadow:0 8px 26px rgba(99,102,241,.5); transform:translateY(-2px); }

.btn-listen {
    background:linear-gradient(135deg,#10b981,#059669);
    color:#fff; box-shadow:0 5px 16px rgba(16,185,129,.3);
}
.btn-listen:hover { box-shadow:0 8px 26px rgba(16,185,129,.5); transform:translateY(-2px); }
.btn-listen.speaking { animation:speakP .8s ease-in-out infinite alternate; }
@keyframes speakP {
    from{box-shadow:0 5px 16px rgba(16,185,129,.3);}
    to{box-shadow:0 5px 28px rgba(16,185,129,.8);}
}

.btn-quiz {
    background:linear-gradient(135deg,#f59e0b,#d97706);
    color:#fff; box-shadow:0 5px 16px rgba(245,158,11,.3);
}
.btn-quiz:hover { box-shadow:0 8px 26px rgba(245,158,11,.5); transform:translateY(-2px); }
.btn-quiz.off { background:linear-gradient(135deg,#ef4444,#dc2626); box-shadow:0 5px 16px rgba(239,68,68,.3); }

/* ── DOTS ── */
.dots {
    display:flex; justify-content:center; gap:6px; margin-top:16px;
    flex-wrap:wrap;
}
.dot {
    height:7px; width:7px; border-radius:99px;
    background:var(--border); cursor:pointer; transition:all .3s;
}
.dot.active { background:var(--accent); width:20px; }
.dot:hover:not(.active) { background:var(--accent); opacity:.5; }

/* ── SLIDE TRANSITION ── */
.slide-wrap { transition:opacity .22s,transform .22s; }
.slide-wrap.out { opacity:0; transform:translateX(36px); }

/* ── QUIZ ── */
.quiz-section {
    margin-top:0; background:var(--card-bg); border-radius:28px;
    box-shadow:var(--shadow); padding:28px 24px 24px;
    display:block; animation:slideUp .4s ease; transition:background .4s;
    touch-action: manipulation;
}
@keyframes slideUp {
    from{opacity:0;transform:translateY(28px);}
    to{opacity:1;transform:translateY(0);}
}

.quiz-head { text-align:center; margin-bottom:20px; }
.quiz-head h2 { font-size:1.3rem; font-weight:900; margin-bottom:4px; }
.quiz-head p { font-size:.7rem; color:var(--text-muted); font-weight:600; }

.score-row {
    display:flex; gap:10px; justify-content:center;
    margin-bottom:20px; flex-wrap:wrap;
}
.sc-chip {
    background:var(--quiz-bg); border:2px solid var(--border);
    border-radius:14px; padding:10px 18px; text-align:center; min-width:80px;
}
.sc-v { font-size:1.5rem; font-weight:900; color:var(--accent); line-height:1; }
.sc-l { font-size:.67rem; font-weight:700; color:var(--text-muted); text-transform:uppercase; letter-spacing:.8px; }

.quiz-q {
    background:var(--quiz-bg); border:2px solid var(--border);
    border-radius:16px; padding:18px 20px; text-align:center; margin-bottom:16px;
}
.quiz-q .ql { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); margin-bottom:7px; }
.quiz-q .qs { font-size:1.18rem; font-weight:800; color:var(--text); }

.quiz-opts {
    display:grid; grid-template-columns:1fr 1fr;
    gap:10px; margin-bottom:16px;
}
.qopt {
    padding:13px 14px; border-radius:13px; border:2px solid var(--border);
    background:var(--card-bg); cursor:pointer;
    font-family:'Nunito',sans-serif; font-size:.86rem; font-weight:700;
    color:var(--text); text-align:center; transition:all .25s; line-height:1.3;
    touch-action: manipulation;
}
.qopt:not(:disabled):hover { border-color:var(--accent); transform:translateY(-2px); }
.qopt.correct { background:rgba(16,185,129,.12); border-color:#10b981; color:#059669; pointer-events:none; }
.qopt.wrong   { background:rgba(239,68,68,.09);  border-color:#ef4444; color:#dc2626; pointer-events:none; }
[data-theme="dark"] .qopt.correct { color:#34d399; }
[data-theme="dark"] .qopt.wrong   { color:#f87171; }

.quiz-fb {
    text-align:center; font-size:.92rem; font-weight:800;
    padding:12px 14px; border-radius:12px; margin-bottom:14px; display:none;
}
.quiz-fb.show { display:block; }
.quiz-fb.ok  { background:rgba(16,185,129,.1); color:#059669; }
.quiz-fb.err { background:rgba(239,68,68,.08); color:#dc2626; }
[data-theme="dark"] .quiz-fb.ok  { color:#34d399; }
[data-theme="dark"] .quiz-fb.err { color:#f87171; }

/* ── MEDAL ── */
.medal {
    position:fixed; top:50%; left:50%;
    transform:translate(-50%,-50%) scale(0);
    font-size:88px; z-index:9999; pointer-events:none;
    transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s;
    opacity:0;
}
.medal.show { transform:translate(-50%,-50%) scale(1); opacity:1; }

/* ── Logo image ────────────────────────────────────── */
.logo-img {
    width:100%; height:100%;
    object-fit:contain; border-radius:10px;
}

/* ── Popup installation PWA ─────────────────────────── */
.install-popup-overlay {
    position:fixed; inset:0; z-index:9000;
    background:rgba(0,0,0,.55); backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center;
    padding:16px;
    animation:fadeIn .25s ease;
}
.install-popup-overlay[hidden] { display:none; }
.install-popup {
    position:relative;
    background:var(--card-bg); border-radius:24px;
    padding:32px 28px 24px;
    max-width:360px; width:100%;
    text-align:center;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
    animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);
}
.install-popup-close {
    position:absolute; top:14px; right:16px;
    background:none; border:none; cursor:pointer;
    font-size:1.1rem; color:var(--text-muted);
    line-height:1; padding:4px 6px; border-radius:8px;
}
.install-popup-close:hover { background:var(--bg); }
.install-popup-logo {
    width:72px; height:72px; border-radius:18px;
    box-shadow:0 6px 20px rgba(99,102,241,.35);
    margin-bottom:16px;
}
.install-popup-title {
    font-size:1.25rem; font-weight:900;
    color:var(--text); margin:0 0 10px;
}
.install-popup-desc {
    font-size:.88rem; color:var(--text-muted);
    margin:0 0 16px; line-height:1.5;
}
.install-popup-perks {
    list-style:none; padding:0; margin:0 0 22px;
    display:flex; flex-direction:column; gap:7px;
    text-align:left;
}
.install-popup-perks li {
    font-size:.88rem; color:var(--text);
    background:var(--bg); border-radius:10px;
    padding:8px 14px; font-weight:600;
}
.install-popup-btn {
    width:100%; padding:13px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff; border:none; border-radius:14px;
    font-size:1rem; font-weight:800; cursor:pointer;
    box-shadow:0 4px 16px rgba(99,102,241,.4);
    margin-bottom:10px;
    transition:transform .15s, box-shadow .15s;
}
.install-popup-btn:active { transform:scale(.97); box-shadow:none; }
.install-popup-later {
    background:none; border:none; cursor:pointer;
    color:var(--text-muted); font-size:.85rem;
    text-decoration:underline; padding:4px;
}
@keyframes slideUp {
    from { transform:translateY(40px); opacity:0; }
    to   { transform:translateY(0);    opacity:1; }
}
@keyframes fadeIn {
    from { opacity:0; } to { opacity:1; }
}

/* ── Footer ─────────────────────────────────────────── */
.app-footer {
    display:flex; flex-direction:column; align-items:center;
    gap:6px; margin-top:36px; padding:24px 16px 20px;
    border-top:1px solid var(--border);
    color:var(--text-muted); font-size:.78rem;
}
.footer-brand {
    display:flex; align-items:center; gap:8px;
}
.footer-logo {
    width:28px; height:28px; border-radius:7px;
    box-shadow:0 2px 8px rgba(99,102,241,.25);
}
.footer-name {
    font-weight:800; font-size:.95rem;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}
.footer-meta { opacity:.75; }
.footer-author { font-weight:700; color:var(--text); font-size:.82rem; }
.footer-copy { opacity:.55; font-size:.72rem; }
.footer-version { opacity:.4; font-size:.68rem; font-weight:700; letter-spacing:.04em; margin-top:2px; }

@media(max-width:560px){
    .main-emoji { font-size:64px; }
    .phrase-text { font-size:.96rem; }
    .ar .phrase-text { font-size:1.1rem; }
    .quiz-opts { grid-template-columns:1fr; }
    .content { padding:18px 16px 16px; }
    .quiz-section { padding:22px 16px 18px; }
}

/* ══════════════════════════════════════
   SECTION NAVIGATION
   ══════════════════════════════════════ */
.sec-nav {
    display:flex;
    flex-wrap:nowrap;          /* nowrap : tout sur une ligne, scroll si dépassement */
    gap:8px;
    margin-bottom:20px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:6px;
    scrollbar-width:none;
}
.sec-nav::-webkit-scrollbar { display:none; }
.sec-btn {
    flex-shrink:0;             /* les boutons ne se compriment pas */
    display:inline-flex; align-items:center; gap:7px;
    padding:10px 20px; border:2px solid var(--border);
    border-radius:50px; background:var(--card-bg);
    font-family:'Nunito',sans-serif; font-size:.88rem; font-weight:800;
    color:var(--text-muted); cursor:pointer;
    transition:all .25s; box-shadow:var(--shadow-sm);
    white-space:nowrap;
}
.sec-btn:hover { border-color:var(--accent); color:var(--accent); }
.sec-btn.active {
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent; color:#fff;
    box-shadow:0 5px 18px rgba(99,102,241,.35);
}

/* ══════════════════════════════════════
   SETTINGS
   ══════════════════════════════════════ */
.settings-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
    gap:16px;
}
.setting-card {
    background:var(--card-bg); border:2px solid var(--border);
    border-radius:22px; padding:22px 24px;
    box-shadow:var(--shadow-sm);
    transition:background .4s;
}
.setting-card-title {
    font-size:.75rem; font-weight:900; text-transform:uppercase;
    letter-spacing:1.2px; color:var(--text-muted); margin-bottom:16px;
    display:flex; align-items:center; gap:8px;
}
.setting-row {
    display:flex; align-items:center; justify-content:space-between;
    gap:12px; margin-bottom:16px;
}
.setting-row:last-child { margin-bottom:0; }
.setting-label {
    font-size:.88rem; font-weight:700; color:var(--text); flex:1;
}
.setting-sublabel {
    font-size:.72rem; color:var(--text-muted); font-weight:600; margin-top:2px;
}
.setting-slider-wrap { display:flex; align-items:center; gap:10px; }
.setting-slider {
    -webkit-appearance:none; appearance:none;
    width:130px; height:6px;
    border-radius:99px; background:var(--border);
    outline:none; cursor:pointer;
}
.setting-slider::-webkit-slider-thumb {
    -webkit-appearance:none; appearance:none;
    width:18px; height:18px; border-radius:50%;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    cursor:pointer; box-shadow:0 2px 6px rgba(99,102,241,.4);
}
.slider-val {
    font-size:.82rem; font-weight:900; color:var(--accent);
    min-width:34px; text-align:center;
    background:var(--ghost); border-radius:8px; padding:3px 7px;
}
.toggle-wrap { display:flex; align-items:center; gap:10px; }
.toggle {
    position:relative; width:44px; height:24px; flex-shrink:0;
}
.toggle input { opacity:0; width:0; height:0; }
.toggle-track {
    position:absolute; inset:0; border-radius:99px;
    background:var(--border); cursor:pointer; transition:background .3s;
}
.toggle input:checked + .toggle-track { background:var(--accent); }
.toggle-track::after {
    content:''; position:absolute; left:3px; top:3px;
    width:18px; height:18px; border-radius:50%;
    background:#fff; transition:transform .3s;
    box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.toggle input:checked + .toggle-track::after { transform:translateX(20px); }
.setting-select {
    background:var(--ghost); border:2px solid var(--border);
    border-radius:10px; padding:7px 12px;
    font-family:'Nunito',sans-serif; font-size:.84rem; font-weight:700;
    color:var(--text); cursor:pointer; max-width:160px;
    outline:none; transition:border-color .25s;
}
.setting-select:focus { border-color:var(--accent); }
#voiceSelect { max-width:100%; width:100%; }
.quiz-lang-pills { display:flex; gap:8px; flex-wrap:wrap; }
.qlp {
    padding:6px 14px; border-radius:99px; border:2px solid var(--border);
    background:var(--ghost); font-family:'Nunito',sans-serif;
    font-size:.8rem; font-weight:800; color:var(--text-muted);
    cursor:pointer; transition:all .25s; touch-action: pan-y;
}
.qlp.active { background:linear-gradient(135deg,var(--accent),var(--accent2)); border-color:transparent; color:#fff; }
.btn-save {
    width:100%; padding:12px; border:none; border-radius:14px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    color:#fff; font-family:'Nunito',sans-serif;
    font-size:.9rem; font-weight:900; cursor:pointer;
    margin-top:6px; transition:all .25s;
    display:flex; align-items:center; justify-content:center; gap:8px;
    box-shadow:0 4px 14px rgba(99,102,241,.35);
}
.btn-save:hover { opacity:.9; transform:translateY(-1px); }
.save-toast {
    text-align:center; font-size:.82rem; font-weight:700;
    color:#059669; margin-top:10px; display:none;
}
.save-toast.show { display:block; animation:fadeInOut 2s ease forwards; }
@keyframes fadeInOut {
    0%{opacity:0} 15%{opacity:1} 75%{opacity:1} 100%{opacity:0}
}

/* ── SECTION WRAPPERS ── */
.section { display:none; animation:slideUp .35s ease; }
.section.active { display:block; }

/* ══════════════════════════════════════
   PRONONCIATION
   ══════════════════════════════════════ */
.phon-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
    gap:16px; margin-top:4px;
}
.phon-card {
    background:var(--card-bg); border-radius:22px;
    box-shadow:var(--shadow-sm); border:2px solid var(--border);
    overflow:hidden; transition:transform .25s,box-shadow .25s;
}
.phon-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.phon-top {
    background:var(--ill-bg);
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 20px;
}
.phon-symbol {
    font-size:2.8rem; font-weight:900;
    color:var(--accent); line-height:1; font-family:'Nunito',sans-serif;
}
.phon-emoji { font-size:2.4rem; }
.phon-ipa {
    font-size:.85rem; font-weight:800; color:var(--text-muted);
    background:var(--card-bg); padding:4px 10px;
    border-radius:99px; border:1.5px solid var(--border);
}
.phon-body { padding:16px 20px; }
.phon-word {
    font-size:1.3rem; font-weight:900; color:var(--text);
    margin-bottom:6px;
}
.phon-word span { color:var(--accent); text-decoration:underline wavy var(--accent); }
.phon-tip {
    font-size:.78rem; color:var(--text-muted); font-weight:600;
    margin-bottom:10px; line-height:1.5;
}
.phon-langs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.phon-lang-pill {
    font-size:.75rem; font-weight:700; padding:3px 10px;
    border-radius:99px; border:1.5px solid var(--border);
    color:var(--text-muted); background:var(--ghost);
}
.phon-lang-pill.fr-p { border-color:rgba(59,130,246,.3); color:var(--french); }
.phon-lang-pill.ar-p { border-color:rgba(16,185,129,.3); color:var(--arabic); font-family:'Amiri',serif; font-size:.85rem; }
.phon-example {
    background:var(--quiz-bg); border:1.5px solid var(--border);
    border-radius:12px; padding:10px 13px; margin-bottom:12px;
    display:flex; flex-direction:column; gap:5px;
}
.phon-ex-en {
    font-size:.82rem; font-weight:700; color:var(--english);
    line-height:1.45;
}
.phon-ex-tr {
    font-size:.8rem; font-weight:600; line-height:1.45;
}
.phon-ex-tr.fr-ex { color:var(--french); }
.phon-ex-tr.ar-ex {
    color:var(--arabic); font-family:'Amiri',serif;
    font-size:.92rem; direction:rtl; text-align:right;
}
.phon-listen {
    width:100%; padding:9px; border:none; border-radius:12px;
    background:linear-gradient(135deg,#10b981,#059669);
    color:#fff; font-family:'Nunito',sans-serif;
    font-size:.82rem; font-weight:800; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:6px;
    transition:all .25s;
}
.phon-listen:hover { opacity:.9; transform:translateY(-1px); }

.sec-header { text-align:center; margin-bottom:24px; }
.sec-header h2 { font-size:1.4rem; font-weight:900; margin-bottom:6px; }
.sec-header p  { font-size:.82rem; color:var(--text-muted); font-weight:600; }

/* ══════════════════════════════════════
   VOCABULAIRE
   ══════════════════════════════════════ */
.vocab-filter {
    display:flex; gap:8px; margin-bottom:16px;
    overflow-x:auto; padding-bottom:6px;
    scrollbar-width:thin;
    scrollbar-color:var(--border) transparent;
}
.vocab-filter::-webkit-scrollbar { display:none; }
.vf-btn {
    flex-shrink:0; padding:7px 16px; border-radius:50px;
    border:2px solid var(--border); background:var(--card-bg);
    font-family:'Nunito',sans-serif; font-size:.8rem; font-weight:800;
    color:var(--text-muted); cursor:pointer; transition:all .25s;
    white-space:nowrap;
}
.vf-btn:hover { border-color:var(--accent); color:var(--accent); }
.vf-btn.active {
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent; color:#fff;
}

.vocab-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
    gap:14px;
}
.flip-wrap { perspective:800px; height:185px; cursor:pointer; }
.flip-listen {
    position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
    padding:4px 13px; border:none; border-radius:99px;
    background:linear-gradient(135deg,#10b981,#059669);
    color:#fff; font-family:'Nunito',sans-serif;
    font-size:.7rem; font-weight:800; cursor:pointer;
    display:flex; align-items:center; gap:5px;
    transition:opacity .2s; z-index:2; white-space:nowrap;
    box-shadow:0 2px 8px rgba(16,185,129,.3);
}
.flip-listen:hover { opacity:.85; }
.flip-inner {
    width:100%; height:100%;
    position:relative; transform-style:preserve-3d;
    transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.flip-wrap.flipped .flip-inner { transform:rotateY(180deg); }
.flip-face {
    position:absolute; width:100%; height:100%;
    backface-visibility:hidden; border-radius:18px;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    gap:8px; border:2px solid var(--border);
    box-shadow:var(--shadow-sm);
}
.flip-front { background:var(--card-bg); }
.flip-back { background:linear-gradient(135deg,#ede9fe,#dbeafe); transform:rotateY(180deg); }
[data-theme="dark"] .flip-back { background:linear-gradient(135deg,#1e1b4b,#172554); }
.flip-emoji { font-size:2.6rem; }
.flip-en { font-size:1rem; font-weight:900; color:var(--text); }
.flip-hint { font-size:.68rem; color:var(--text-muted); font-weight:600; }
.flip-fr { font-size:.85rem; font-weight:800; color:var(--french); }
.flip-ar { font-size:1rem; font-weight:700; color:var(--arabic); font-family:'Amiri',serif; }
.flip-tap { font-size:.65rem; color:var(--text-muted); font-weight:600; margin-top:2px; }

/* ══════════════════════════════════════
   CONJUGAISON
   ══════════════════════════════════════ */
.verb-selector {
    display:flex; gap:8px; flex-wrap:wrap;
    justify-content:center; margin-bottom:24px;
}
.verb-btn {
    padding:8px 18px; border-radius:50px;
    border:2px solid var(--border); background:var(--card-bg);
    font-family:'Nunito',sans-serif; font-size:.85rem; font-weight:800;
    color:var(--text-muted); cursor:pointer; transition:all .25s;
}
.verb-btn:hover { border-color:var(--accent); color:var(--accent); }
.verb-btn.active {
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent; color:#fff;
    box-shadow:0 4px 14px rgba(99,102,241,.3);
}
.conj-card {
    background:var(--card-bg); border-radius:24px;
    box-shadow:var(--shadow); overflow:hidden;
    border:1.5px solid var(--border);
}
.conj-top {
    background:var(--ill-bg); padding:24px;
    display:flex; align-items:center; gap:18px; flex-wrap:wrap;
}
.conj-emoji { font-size:3rem; }
.conj-verb-name { font-size:1.8rem; font-weight:900; color:var(--accent); }
.conj-translations { display:flex; flex-direction:column; gap:4px; }
.conj-tr { font-size:.85rem; font-weight:700; color:var(--text-muted); }
.conj-tr span { font-weight:800; color:var(--text); }
.conj-body { padding:22px; }
.tense-tabs { display:flex; gap:8px; margin-bottom:20px; flex-wrap:wrap; }
.tense-btn {
    padding:8px 18px; border-radius:50px; border:2px solid var(--border);
    background:var(--ghost); font-family:'Nunito',sans-serif;
    font-size:.82rem; font-weight:800; color:var(--text-muted);
    cursor:pointer; transition:all .25s;
}
.tense-btn.active { background:var(--english); border-color:var(--english); color:#fff; }
.conj-table {
    width:100%; border-collapse:separate; border-spacing:0 8px;
    margin-bottom:20px;
}
.conj-table td { padding:10px 14px; font-size:.9rem; }
.conj-table tr td:first-child {
    font-weight:800; color:var(--text-muted); font-size:.8rem;
    text-transform:uppercase; letter-spacing:.8px; width:80px;
}
.conj-table tr td:nth-child(2) {
    font-weight:900; color:var(--accent); font-size:1rem;
    background:var(--ghost); border-radius:10px 0 0 10px;
    padding-left:16px;
}
.conj-table tr td:nth-child(3) {
    font-weight:700; color:var(--text-muted); font-size:.82rem;
    background:var(--ghost); border-radius:0 10px 10px 0;
    padding-right:16px;
}
.conj-example {
    background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.04));
    border:2px solid rgba(245,158,11,.25);
    border-radius:14px; padding:16px 18px;
}
.conj-ex-label {
    font-size:.68rem; font-weight:900; text-transform:uppercase;
    letter-spacing:1px; color:var(--english); margin-bottom:8px;
}
.conj-ex-en { font-size:1.05rem; font-weight:800; color:var(--text); margin-bottom:4px; }
.conj-ex-fr { font-size:.82rem; font-weight:700; color:var(--french); margin-bottom:3px; }
.conj-ex-ar {
    font-size:.95rem; font-weight:700; color:var(--arabic);
    font-family:'Amiri',serif; direction:rtl;
}
.conj-listen-btn {
    margin-top:10px; padding:8px 18px; border:none; border-radius:99px;
    background:linear-gradient(135deg,#10b981,#059669);
    color:#fff; font-family:'Nunito',sans-serif;
    font-size:.8rem; font-weight:800; cursor:pointer;
    display:inline-flex; align-items:center; gap:6px;
    transition:all .25s;
}
.conj-listen-btn:hover { opacity:.9; }

/* ══════════════════════════════════════
   PWA – BARRE PERMANENTE D'INSTALLATION
   ══════════════════════════════════════ */
.install-bar {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 9998;
    background: var(--card-bg);
    border-top: 2px solid var(--border);
    box-shadow: 0 -6px 24px rgba(99,102,241,.12);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px 20px;
    transition: transform .4s ease, opacity .4s ease;
}
.install-bar--hiding {
    transform: translateY(100%);
    opacity: 0;
}
.install-bar-icon {
    width: 36px; height: 36px;
    border-radius: 10px;
    flex-shrink: 0;
    box-shadow: 0 3px 10px rgba(99,102,241,.2);
}
.install-bar-label {
    font-size: .88rem;
    font-weight: 800;
    color: var(--text);
    flex: 1;
}
.install-bar-btn {
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: 9px 22px;
    font-family: 'Nunito', sans-serif;
    font-size: .86rem;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(99,102,241,.35);
    transition: all .25s;
    flex-shrink: 0;
}
.install-bar-btn:hover  { box-shadow: 0 6px 20px rgba(99,102,241,.5); transform: translateY(-2px); }
.install-bar-btn:active { transform: scale(.95); }
.install-bar-btn:disabled {
    background: var(--ghost);
    color: var(--text-muted);
    box-shadow: none;
    cursor: default;
    transform: none;
}

/* Bloc installation dans les paramètres */
.pwa-install-block {
    max-width: 400px;
    margin: 24px auto 0;
    background: var(--card-bg);
    border: 2px solid var(--border);
    border-radius: 18px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: var(--shadow-sm);
}
.pwa-install-icon {
    width: 46px; height: 46px;
    border-radius: 12px;
    flex-shrink: 0;
    box-shadow: 0 3px 10px rgba(99,102,241,.2);
}
.pwa-install-info { flex: 1; min-width: 0; }
.pwa-install-title {
    font-size: .9rem;
    font-weight: 900;
    color: var(--text);
    margin-bottom: 3px;
}
.pwa-install-sub {
    font-size: .73rem;
    color: var(--text-muted);
    font-weight: 600;
    line-height: 1.4;
}
.pwa-install-btn {
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: 9px 20px;
    font-family: 'Nunito', sans-serif;
    font-size: .84rem;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(99,102,241,.3);
    transition: all .25s;
}
.pwa-install-btn:hover  { box-shadow: 0 6px 20px rgba(99,102,241,.5); transform: translateY(-2px); }
.pwa-install-btn:active { transform: scale(.95); }
.pwa-install-btn:disabled {
    background: var(--ghost);
    color: var(--text-muted);
    box-shadow: none;
    cursor: default;
    transform: none;
}

/* Tooltip instructions manuelles */
.install-tooltip {
    position: absolute;
    bottom: calc(100% + 10px);
    right: 0;
    width: 280px;
    background: var(--card-bg);
    border: 2px solid var(--accent);
    border-radius: 18px;
    padding: 16px 18px;
    box-shadow: var(--shadow);
    z-index: 10000;
    animation: fadeInUp .25s ease;
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
.install-tooltip-title {
    font-size: .88rem;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 10px;
}
.install-tooltip-steps {
    font-size: .8rem;
    font-weight: 600;
    color: var(--text);
    line-height: 1.7;
    padding-left: 18px;
    margin-bottom: 12px;
}
.install-tooltip-steps strong {
    color: var(--accent2);
}
.install-tooltip-close {
    width: 100%;
    padding: 8px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    color: #fff;
    font-family: 'Nunito', sans-serif;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
    transition: opacity .2s;
}
.install-tooltip-close:hover { opacity: .85; }

/* Compenser la hauteur de la barre quand elle est visible */
body:has(#installBar:not([hidden])) { padding-bottom: 80px; }

/* ══════════════════════════════════════
   PWA – BANNIÈRE D'INSTALLATION
   ══════════════════════════════════════ */
.install-banner {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(120px);
    width: calc(100% - 32px);
    max-width: 520px;
    background: var(--card-bg);
    border: 2px solid var(--border);
    border-radius: 22px;
    box-shadow: var(--shadow);
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    z-index: 9999;
    transition: transform .4s cubic-bezier(.34,1.56,.64,1), opacity .4s;
    opacity: 0;
}
.install-banner--visible {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}
.install-banner--hiding {
    transform: translateX(-50%) translateY(120px);
    opacity: 0;
}

.install-banner-left {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}
.install-banner-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(99,102,241,.25);
}
.install-banner-title {
    font-size: .92rem;
    font-weight: 900;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.install-banner-sub {
    font-size: .72rem;
    color: var(--text-muted);
    font-weight: 600;
    margin-top: 2px;
}

.install-banner-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.install-btn-dismiss {
    background: none;
    border: none;
    font-size: 1rem;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 8px;
    transition: color .2s, background .2s;
    font-family: 'Nunito', sans-serif;
}
.install-btn-dismiss:hover {
    color: var(--text);
    background: var(--ghost);
}
.install-btn-cta {
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    color: #fff;
    border: none;
    border-radius: 50px;
    padding: 9px 18px;
    font-family: 'Nunito', sans-serif;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 4px 14px rgba(99,102,241,.35);
    transition: all .25s;
}
.install-btn-cta:hover {
    box-shadow: 0 6px 20px rgba(99,102,241,.5);
    transform: translateY(-2px);
}
.install-btn-cta:active { transform: scale(.95); }

/* ══════════════════════════════════════
   HISTOIRES
   ══════════════════════════════════════ */

/* — Grille de cartes — */
.story-list {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
    gap:18px;
    padding:4px 0 24px;
}
.no-stories {
    grid-column:1/-1;
    text-align:center;
    color:var(--text-muted);
    font-size:1rem;
    padding:40px 0;
}
.story-card {
    background:var(--card-bg);
    border-radius:18px;
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    border:1.5px solid var(--border);
    cursor:pointer;
    transition:transform .2s, box-shadow .2s;
}
.story-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.story-card:active { transform:scale(.97); }
.story-card-img-wrap {
    position:relative;
    aspect-ratio:16/9;
    background:var(--ghost);
    overflow:hidden;
}
.story-card-img {
    width:100%; height:100%;
    object-fit:cover;
    display:block;
    transition:transform .3s;
}
.story-card:hover .story-card-img { transform:scale(1.04); }
.story-card-placeholder {
    position:absolute; inset:0;
    display:none;
    align-items:center; justify-content:center;
    font-size:52px;
    background:var(--ill-bg);
}
.story-card-body { padding:14px 16px 16px; }
.story-card-title {
    font-weight:900; font-size:1rem;
    color:var(--accent); margin-bottom:4px;
}
.story-card-sub {
    font-size:.82rem; color:var(--text-muted);
    margin-top:2px; line-height:1.4;
}
.story-card-sub.ar {
    font-family:'Amiri',serif;
    direction:rtl; font-size:.9rem;
}
.story-card-pages {
    font-size:.75rem; color:var(--text-muted);
    margin-top:8px; font-weight:700;
    display:flex; align-items:center; gap:5px;
}
.story-card-pages::before { content:'📄'; font-size:.8rem; }

/* — Lecteur d'histoire — */
.story-back {
    display:inline-flex; align-items:center; gap:6px;
    background:none; border:none; cursor:pointer;
    color:var(--accent);
    font:700 .92rem 'Nunito',sans-serif;
    padding:6px 0; margin-bottom:14px;
    transition:color .2s;
}
.story-back:hover { color:var(--accent2); }

.story-title {
    font-size:1.3rem; font-weight:900;
    color:var(--text); text-align:center;
    margin-bottom:18px; line-height:1.3;
}

.story-img-wrap {
    position:relative;
    border-radius:20px; overflow:hidden;
    aspect-ratio:16/9;
    background:var(--ghost);
    display:flex; align-items:center;
    box-shadow:var(--shadow-sm);
    user-select:none;
}
.story-img {
    width:100%; height:100%;
    object-fit:cover; display:block;
    transition:opacity .18s ease;
}
.story-img.out { opacity:0; }

.story-arrow {
    position:absolute; top:50%; transform:translateY(-50%);
    width:44px; height:44px; border-radius:50%;
    border:none; cursor:pointer;
    background:rgba(0,0,0,.45);
    color:#fff; font-size:1.6rem; font-weight:300;
    display:flex; align-items:center; justify-content:center;
    z-index:2;
    transition:background .18s, transform .18s;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}
.story-arrow:hover { background:rgba(0,0,0,.7); }
.story-arrow:active { transform:translateY(-50%) scale(.9); }
.story-prev { left:10px; }
.story-next { right:10px; }

.story-counter {
    text-align:center;
    font-size:.85rem; font-weight:700;
    color:var(--text-muted);
    margin:12px 0 6px;
}

.story-dots {
    display:flex; justify-content:center; gap:7px;
    margin-bottom:18px;
}

.story-texts {
    display:flex; flex-direction:column; gap:12px;
    margin-top:4px;
}
/* Réutilise .phrase-item, .phrase-body, .lang-tag, .phrase-text, .en-text, .lang-flag existants */

/* — Responsive mobile — */
@media(max-width:560px) {
    .story-list { grid-template-columns:1fr; gap:14px; }
    .story-arrow { width:36px; height:36px; font-size:1.3rem; }
}

/* ── Lecteur d'histoire — plein écran sur mobile ──────────────── */
@media(max-width:700px) {

    /* Couvre tout l'écran */
    .story-reader {
        position: fixed;
        top: 0; right: 0; bottom: 0; left: 0;
        z-index: 800;
        background: var(--bg);
        overflow-y: auto;
        overscroll-behavior: contain;
        touch-action: pan-y;
        padding-bottom: 80px;
    }

    /* Bouton retour — barre sticky en haut */
    .story-back {
        position: sticky;
        top: 0;
        z-index: 10;
        display: flex;
        align-items: center;
        width: 100%;
        background: var(--card-bg);
        border-bottom: 1.5px solid var(--border);
        border-radius: 0;
        padding: 16px 20px;
        margin-bottom: 0;
        font-size: 1rem;
        font-weight: 800;
        color: var(--accent);
        box-shadow: 0 2px 12px rgba(0,0,0,.09);
    }

    .story-title {
        padding: 20px 16px 10px;
        font-size: 1.15rem;
        margin-bottom: 8px;
    }

    .story-img-wrap {
        margin: 0 12px;
        border-radius: 14px;
    }

    .story-counter { margin: 10px 0 4px; }

    .story-dots { margin-bottom: 14px; }

    .story-texts { padding: 4px 12px; }
}

/* ══════════════════════════════════════
   QUIZ ULTIME
   ══════════════════════════════════════ */

/* Bouton dans la level-bar */
.ultimate-quiz-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border: none;
    border-radius: 50px;
    padding: 6px 16px;
    font-family: 'Nunito', sans-serif;
    font-size: .78rem;
    font-weight: 800;
    color: #fff;
    cursor: pointer;
    transition: all .25s;
    box-shadow: 0 4px 14px rgba(245,158,11,.35);
    margin-left: 4px;
    white-space: nowrap;
}
.ultimate-quiz-btn:hover {
    box-shadow: 0 6px 20px rgba(245,158,11,.5);
    transform: translateY(-1px);
}
.ultimate-quiz-btn:active { transform: scale(.95); }

/* Overlay */
.uq-overlay {
    position: fixed;
    inset: 0;
    z-index: 9100;
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    animation: fadeIn .25s ease;
}
.uq-overlay[hidden] { display: none; }

/* Modal — structure flex-colonne pour que le header reste fixe */
.uq-modal {
    background: var(--card-bg);
    border-radius: 24px;
    max-width: 420px;
    width: 100%;
    max-height: 88vh;
    box-shadow: 0 20px 60px rgba(0,0,0,.3);
    animation: slideUp .3s cubic-bezier(.34,1.56,.64,1);
    display: flex;
    flex-direction: column;
    overflow: hidden;   /* le scroll est sur .uq-modal-body, pas ici */
}

/* En-tête fixe : la croix ne scrolle JAMAIS */
.uq-modal-hdr {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    padding: 10px 12px 0;
}

/* Corps scrollable */
.uq-modal-body {
    flex: 1;
    overflow-y: auto;
    padding: 4px 24px 24px;
    text-align: center;
}
.uq-modal-body::-webkit-scrollbar { width: 4px; }
.uq-modal-body::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }

/* Bouton fermer — plus position:absolute, fait partie du flex header */
.uq-close {
    background: none; border: none; cursor: pointer;
    font-size: 1.2rem; color: var(--text-muted);
    line-height: 1; padding: 6px 8px; border-radius: 8px;
    min-width: 32px; min-height: 32px;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s, color .2s;
}
.uq-close:hover { background: var(--ghost); color: var(--text); }

/* Écran démarrage */
.uq-trophy {
    font-size: 56px;
    margin-bottom: 10px;
    display: block;
    animation: floatY 3s ease-in-out infinite;
}
.uq-title {
    font-size: 1.4rem; font-weight: 900;
    color: var(--text); margin-bottom: 8px;
}
.uq-subtitle {
    font-size: .82rem; color: var(--text-muted);
    font-weight: 600; margin-bottom: 14px; line-height: 1.5;
}
.uq-info {
    font-size: .78rem; font-weight: 800; color: var(--accent);
    background: rgba(99,102,241,.1); border-radius: 10px;
    padding: 7px 14px; margin-bottom: 14px;
    display: inline-block;
}
.uq-loading {
    font-size: .86rem; font-weight: 700;
    color: var(--text-muted); margin-bottom: 10px;
}
.uq-rules {
    text-align: left;
    background: var(--ghost);
    border-radius: 14px;
    padding: 12px 16px;
    margin-bottom: 14px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.uq-rule {
    font-size: .78rem; font-weight: 700;
    color: var(--text-muted); line-height: 1.4;
}
.uq-rule-best { color: var(--accent); }
.uq-rule-none { color: #ef4444; }

/* Écran quiz */
.uq-quiz-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: .82rem; font-weight: 800;
    color: var(--text-muted);
}
.uq-prog-wrap {
    height: 6px;
    background: var(--border);
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 16px;
}
.uq-prog-fill {
    height: 100%;
    background: linear-gradient(90deg, #f59e0b, #d97706);
    border-radius: 99px;
    transition: width .4s cubic-bezier(.4,0,.2,1);
}

/* Écran résultats */
.uq-result-trophy {
    font-size: 72px; display: block;
    margin-bottom: 10px;
    animation: floatY 3s ease-in-out infinite;
}
.uq-result-score {
    font-size: 1.15rem; font-weight: 900;
    color: var(--text); margin-bottom: 4px;
}
.uq-result-pct {
    font-size: 2.4rem; font-weight: 900;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 10px;
}
.uq-result-msg {
    font-size: .86rem; font-weight: 700;
    color: var(--text-muted); margin-bottom: 16px;
}
.uq-result-levels { margin-bottom: 6px; }
.uq-result-unlock-title {
    font-size: .78rem; font-weight: 800;
    color: var(--text-muted); margin-bottom: 8px;
    text-align: left;
}
.uq-level-chip {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 14px; border-radius: 50px;
    font-size: .78rem; font-weight: 800;
    margin: 3px;
}
.uq-level-chip.unlocked {
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
    box-shadow: 0 3px 10px rgba(16,185,129,.3);
}

@media(max-width:440px) {
    .uq-modal-body { padding: 0 16px 18px; }
    .uq-trophy { font-size: 42px; }
    .uq-result-pct { font-size: 1.8rem; }
}


/* ══════════════════════════════════════════════════════════════
   SECTIONS PLEIN ÉCRAN MOBILE (PHRASES + QUIZ)
   ══════════════════════════════════════════════════════════════ */

/* Cachés sur desktop uniquement — sur mobile ils sont toujours visibles
   (cachés via leur section parente display:none quand inactive) */
@media (min-width: 701px) {
    .phrases-header,
    .quiz-header-mobile { display: none; }
}

/* ── Phrases plein écran ── */
@media (max-width: 700px) {
    .phrases-header {
        display: flex;
        align-items: center;
        gap: 10px;
        position: sticky;
        top: 0;
        z-index: 10;
        background: var(--card-bg);
        border-bottom: 1.5px solid var(--border);
        padding: 14px 20px;
        box-shadow: 0 2px 12px rgba(0,0,0,.09);
    }
    .phrases-back {
        background: none; border: none; cursor: pointer;
        color: var(--accent);
        font: 800 .95rem 'Nunito', sans-serif;
        padding: 0; display: flex; align-items: center; gap: 5px; flex-shrink: 0;
    }
    .phrases-back:hover { color: var(--accent2); }
    .phrases-header-title {
        flex: 1; text-align: center;
        font-size: .95rem; font-weight: 900; color: var(--text);
        padding-right: 68px;
    }
    #sec-phrases {
        animation: none;
        position: fixed;
        top: 0; right: 0; bottom: 0; left: 0;
        z-index: 700;
        background: var(--bg);
        overflow-y: auto;
        overscroll-behavior: contain;
        touch-action: pan-y;
        padding-bottom: 80px;
    }
}

/* ── Quiz plein écran ── */
@media (max-width: 700px) {
    .quiz-header-mobile {
        display: flex;
        align-items: center;
        gap: 10px;
        position: sticky;
        top: 0;
        z-index: 10;
        background: var(--card-bg);
        border-bottom: 1.5px solid var(--border);
        padding: 14px 20px;
        box-shadow: 0 2px 12px rgba(0,0,0,.09);
    }
    .quiz-back-mobile {
        background: none; border: none; cursor: pointer;
        color: var(--accent);
        font: 800 .95rem 'Nunito', sans-serif;
        padding: 0; display: flex; align-items: center; gap: 5px; flex-shrink: 0;
    }
    .quiz-back-mobile:hover { color: var(--accent2); }
    .quiz-header-title {
        flex: 1; text-align: center;
        font-size: .95rem; font-weight: 900; color: var(--text);
        padding-right: 68px;
    }
    #sec-quiz {
        animation: none;
        position: fixed;
        top: 0; right: 0; bottom: 0; left: 0;
        z-index: 700;
        background: var(--bg);
        overflow-y: auto;
        overscroll-behavior: contain;
        touch-action: pan-y;
        padding-bottom: 80px;
    }
}

/* ══════════════════════════════════════════════════════════════
   PSEUDO MODAL
   ══════════════════════════════════════════════════════════════ */
.pseudo-overlay {
    position: fixed; inset: 0; z-index: 9200;
    background: rgba(0,0,0,.6); backdrop-filter: blur(5px);
    display: flex; align-items: center; justify-content: center;
    padding: 16px; animation: fadeIn .25s ease;
}
.pseudo-overlay[hidden] { display: none; }
.pseudo-modal {
    background: var(--card-bg); border-radius: 24px;
    padding: 36px 28px 24px; max-width: 360px; width: 100%;
    text-align: center; box-shadow: 0 24px 64px rgba(0,0,0,.35);
    animation: slideUp .3s cubic-bezier(.34,1.56,.64,1);
}
.pseudo-modal-icon { font-size: 3.2rem; margin-bottom: 12px; }
.pseudo-modal h2 {
    font-size: 1.35rem; font-weight: 900; color: var(--text);
    margin: 0 0 8px;
}
.pseudo-modal p {
    font-size: .85rem; color: var(--text-muted);
    margin: 0 0 20px; line-height: 1.5;
}
.pseudo-input {
    width: 100%; padding: 13px 16px; border-radius: 12px;
    border: 2px solid var(--border); background: var(--bg);
    font-size: 1.05rem; font-family: 'Nunito', sans-serif; font-weight: 700;
    color: var(--text); outline: none; transition: border .2s;
    text-align: center; letter-spacing: .02em;
}
.pseudo-input:focus { border-color: var(--accent); }
.pseudo-msg {
    font-size: .78rem; font-weight: 700; min-height: 22px;
    margin: 8px 0 12px;
}
.pseudo-msg.error   { color: #ef4444; }
.pseudo-msg.success { color: #10b981; }
.pseudo-modal-btn {
    width: 100%; padding: 13px;
    background: linear-gradient(135deg, var(--accent), var(--accent2));
    color: #fff; border: none; border-radius: 14px; cursor: pointer;
    font-size: 1rem; font-family: 'Nunito', sans-serif; font-weight: 800;
    transition: transform .15s, box-shadow .15s;
    box-shadow: 0 6px 18px rgba(99,102,241,.35);
}
.pseudo-modal-btn:hover  { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(99,102,241,.45); }
.pseudo-modal-btn:active { transform: scale(.97); box-shadow: none; }
.pseudo-modal-skip {
    background: none; border: none; cursor: pointer;
    color: var(--text-muted); font-size: .82rem;
    font-family: 'Nunito', sans-serif; text-decoration: underline;
    margin-top: 10px; padding: 4px;
}

/* ── Setting input (profil) ── */
.setting-input {
    flex: 1; padding: 9px 13px; border-radius: 10px;
    border: 2px solid var(--border); background: var(--bg);
    font-size: .88rem; font-family: 'Nunito', sans-serif; font-weight: 700;
    color: var(--text); outline: none; transition: border .2s; min-width: 0;
}
.setting-input:focus { border-color: var(--accent); }
.pseudo-edit-msg { font-size: .76rem; font-weight: 700; min-height: 18px; margin-top: 6px; }
.pseudo-edit-msg.error   { color: #ef4444; }
.pseudo-edit-msg.success { color: #10b981; }
