@charset "UTF-8";
/* Pages outils du module /apprendre : carnet de mots (mots/), phrases du quotidien (situations/), conversation (conversation/). */
:root{--berry:#8e1449;--pink:#c2185b;--rose:#f8bbd0;--pale:#fff5f8;--cream:#fffaf6;--ink:#3d2130;--muted:#6c4857;--gold:#c9a24b;--green:#2f7d53;--line:#f0dce4;--shadow:0 18px 50px rgba(61,33,48,.1)}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Jost,system-ui,sans-serif;line-height:1.55}
a{color:inherit}
[hidden]{display:none!important}
.shell{width:min(980px,100% - 32px);margin:auto;padding:26px 0 72px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.brand{font:600 1.7rem/1 'Cormorant Garamond',serif;color:var(--berry);text-decoration:none}
.back{color:var(--berry);font-size:.9rem;text-decoration:none}
.back:hover{text-decoration:underline}
.eyebrow{color:var(--pink);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0}
h1{font:600 clamp(2.3rem,6vw,3.6rem)/1 'Cormorant Garamond',serif;color:var(--berry);margin:6px 0 10px}
h2{font:600 1.7rem/1.1 'Cormorant Garamond',serif;color:var(--berry);margin:0 0 6px}
.lead{color:var(--muted);font-size:1.05rem;margin:0 0 18px;max-width:680px}
.hint{color:var(--muted);font-size:.88rem;margin:0}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:clamp(18px,3vw,28px)}
.tool-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.tool-nav a{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--rose);background:#fff;color:var(--berry);text-decoration:none;font-size:.9rem}
.tool-nav a[aria-current=page]{background:var(--pink);border-color:var(--pink);color:#fff}
.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 18px;border:1px solid var(--pink);border-radius:13px;background:var(--pink);color:#fff;font:600 .92rem Jost,system-ui,sans-serif;text-decoration:none;cursor:pointer}
.button:hover{background:var(--berry);border-color:var(--berry)}
.button.ghost{background:#fff;color:var(--berry);border-color:var(--rose)}
.button.ghost:hover{background:var(--pale)}
.button.small{min-height:36px;padding:5px 12px;font-size:.84rem}
.button:disabled{opacity:.55;cursor:not-allowed}
.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:38px;min-width:38px;padding:4px 10px;border:1px solid var(--rose);border-radius:999px;background:var(--pale);color:var(--berry);font:500 .84rem Jost,system-ui,sans-serif;cursor:pointer}
.icon-button:hover{background:#fde4ee}
.icon-button.on{background:#eaf6ef;border-color:#bfe0cb;color:var(--green)}
.icon-button.listening{background:var(--pink);color:#fff;border-color:var(--pink);animation:pulse 1s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(194,24,91,.18)}}
@media(prefers-reduced-motion:reduce){.icon-button.listening{animation:none}}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:5px 13px;border:1px solid var(--rose);border-radius:999px;background:#fff;color:var(--berry);font:500 .86rem Jost,system-ui,sans-serif;cursor:pointer}
.chip[aria-pressed=true]{background:var(--berry);border-color:var(--berry);color:#fff}
input[type=search],input[type=text],select,textarea{min-height:46px;padding:10px 14px;border:1px solid var(--rose);border-radius:13px;background:#fff;color:var(--ink);font:1rem Jost,system-ui,sans-serif}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px rgba(194,24,91,.12)}
:focus-visible{outline:3px solid rgba(194,24,91,.35);outline-offset:2px}
.status{min-height:1.4em;margin:8px 0 0;font-size:.88rem;color:var(--green)}
.status.error{color:#a42d4f}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.summary-stats{display:flex;flex-wrap:wrap;gap:8px}
.summary-stats span{padding:5px 12px;border-radius:999px;background:var(--pale);color:var(--berry);font-size:.86rem}
/* Carnet de mots */
.word-tools{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:12px}
.word-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.word{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.word-icon{font-size:1.5rem;width:36px;text-align:center}
.word-text strong{display:block;font-size:1.05rem}
.word-text span{color:var(--muted);font-size:.9rem}
.word-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
.word-box{font-size:.78rem;padding:3px 9px;border-radius:999px;background:#eaf6ef;color:var(--green)}
.word-box.due{background:#fff4e5;color:#8a5a00}
.word-unit{font-size:.75rem;color:var(--muted)}
.more{margin-top:14px;text-align:center}
.empty{padding:26px;text-align:center;color:var(--muted)}
/* Phrases du quotidien */
.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:22px}
.theme-card{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:left;cursor:pointer;font:inherit;color:inherit}
.theme-card:hover{background:var(--pale)}
.theme-card[aria-pressed=true]{border-color:var(--pink);box-shadow:0 0 0 3px rgba(194,24,91,.15)}
.theme-card .ico{font-size:1.7rem}
.theme-card strong{color:var(--berry)}
.phrase-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.phrase{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.phrase-target{font-size:1.12rem;font-weight:600}
.phrase-help{color:var(--muted)}
.phrase-actions{display:flex;flex-wrap:wrap;gap:6px}
.phrase-note{padding:9px 12px;border-radius:12px;background:#fdf3e3;font-size:.9rem}
.phrase-heard{font-size:.9rem;margin:0}
.phrase-heard.good{color:var(--green)}
.phrase-heard.almost{color:#8a5a00}
.phrase-heard.retry{color:#a42d4f}
/* Conversation */
.scenes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.chat{display:grid;gap:12px}
.chat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.bubbles{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-height:min(58vh,560px);overflow-y:auto;padding:4px}
.bubble{max-width:84%;padding:11px 14px;border-radius:18px;display:grid;gap:5px}
.bubble.them{background:var(--pale);border:1px solid #fbe3ec;border-bottom-left-radius:6px;justify-self:start}
.bubble.me{background:#eaf2fb;border:1px solid #d6e5f6;border-bottom-right-radius:6px;justify-self:end}
.bubble .who{font-size:.78rem;color:var(--muted)}
.bubble .tr{font-size:.86rem;color:var(--muted);font-style:italic}
.bubble .fix{font-size:.86rem;padding:7px 10px;border-radius:10px;background:#fff8e6;border:1px solid #f2dfa6}
.bubble .fix b{color:#7a5300}
.bubble .tools{display:flex;gap:6px;flex-wrap:wrap}
.typing{color:var(--muted);font-size:.9rem}
.compose{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:end}
.compose textarea{min-height:48px;resize:none}
.chat-end{padding:14px;border-radius:14px;background:#eaf6ef;color:#23573a;text-align:center}
@media(max-width:640px){
  .word{grid-template-columns:auto 1fr}
  .word-meta{grid-column:1/-1;justify-content:flex-start}
  .word-tools{grid-template-columns:1fr}
  .compose{grid-template-columns:1fr auto}
  .compose textarea{grid-column:1/-1}
  .bubble{max-width:94%}
}
/* Comment je dis ça ? */
.say-form{display:grid;gap:12px}
.say-form textarea{width:100%;min-height:90px;resize:vertical}
.say-label{display:block;font-weight:600;font-size:.9rem;color:var(--berry)}
.say-result{display:grid;gap:14px;margin-top:16px}
.say-line{display:grid;gap:6px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fff}
.say-line.best{background:var(--pale);border-color:var(--rose)}
.say-line .phrase-target{font-size:1.25rem}
.say-words{margin:6px 0 0;padding-left:20px;display:grid;gap:3px}
.say-history{margin-top:6px}
/* Examen civique et Objectif A2 */
.civic-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.civic-facts .card{display:grid;gap:2px;padding:14px}
.civic-facts .card>span:first-child{font-size:1.5rem}
.civic-exam{display:grid;gap:8px;justify-items:start;background:linear-gradient(150deg,#fff,#fff5f8)}
.civic-run{display:grid;gap:12px}
.civic-progress{height:8px;border-radius:999px;background:var(--pale);overflow:hidden}
.civic-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--gold))}
.civic-question{font:600 1.35rem/1.35 Jost,system-ui,sans-serif;color:var(--ink);margin:4px 0}
.civic-question .blank{color:var(--pink);letter-spacing:.1em}
.civic-time{font-weight:600;color:var(--berry)}
.civic-options{display:grid;gap:8px}
.civic-option{display:grid;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--rose);border-radius:14px;background:#fff;color:var(--ink);font:500 1rem Jost,system-ui,sans-serif;cursor:pointer}
.civic-option:hover:not(:disabled){background:var(--pale)}
.civic-option small{color:var(--muted);font-weight:400}
.civic-option.correct{background:#eaf6ef;border-color:#8fc7a2}
.civic-option.wrong{background:#fde8ed;border-color:#e3a1b3}
.civic-option.picked{background:var(--pale);border-color:var(--pink);box-shadow:0 0 0 2px rgba(194,24,91,.2)}
.civic-option:disabled{cursor:default}
.civic-feedback{padding:12px 14px;border-radius:14px}
.civic-feedback.ok{background:#eaf6ef;color:#23573a}
.civic-feedback.ko{background:#fff4e5;color:#6b4a12}
.civic-feedback p{margin:4px 0 0}
@media(max-width:640px){.tool-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-16px;margin-right:-16px;padding:0 16px 4px}.tool-nav::-webkit-scrollbar{display:none}.tool-nav a{flex:none}}
/* Examens blancs (examen/) */
.exam-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;position:sticky;top:var(--bl-sticky-top,0px);background:var(--cream);padding:8px 0;z-index:2}
.exam-body{display:grid;gap:16px}
.exam-doc{display:grid;gap:12px}
.exam-doc h3,.exam-grid h3{font:600 1.2rem/1.2 Jost,system-ui,sans-serif;color:var(--berry);margin:0}
.exam-text{background:var(--pale);border-radius:14px;padding:12px 16px}
.exam-text p{margin:0 0 8px}.exam-text p:last-child{margin:0}
.exam-q{border:0;padding:0;margin:0;display:grid;gap:8px}
.exam-q legend{font-weight:600;margin-bottom:6px}
.exam-write{width:100%;font:1rem/1.5 Jost,system-ui,sans-serif;padding:12px;border:1px solid var(--rose);border-radius:14px;resize:vertical}
.exam-grid{display:grid;gap:8px}
.exam-check{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.exam-check input{margin-top:5px}
.exam-scores{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px}
.exam-scores li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px;background:var(--pale)}
.exam-scores li.weak{background:#fff4e5;color:#6b4a12}
.exam-ai:empty{display:none}
.exam-ai{padding:10px 14px;border-radius:14px;background:#f5f9ff;border:1px solid #d7e4f7}
details summary{cursor:pointer;color:var(--berry);font-weight:600}
