:root{
  color-scheme:dark;
  --bg:#12141a; --card:#1b1e27; --input-bg:#21242e; --ink:#eef0f6; --ink-soft:#9aa1b3; --line:#2f3341;
  --accent:#6d8bff; --accent-ink:#0d1020; --accent-soft:#25304f;
  --good:#3ecf8e; --good-soft:#183828; --good-ink:#8fe6b8; --warn:#f0a352; --warn-soft:#3a2c18;
  --bad:#ff6b5e; --bad-soft:#3a201d; --bad-ink:#ffb4a8; --shadow:0 1px 2px rgba(0,0,0,.35),0 4px 20px rgba(0,0,0,.35);
  --radius:16px;
}
*{box-sizing:border-box;}
html{background:var(--bg);}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}
input, textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;}
#app-shell{max-width:980px;margin:0 auto;padding-bottom:60px;}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;flex-wrap:wrap;gap:10px;}
.topbar h1{font-size:1.2em;margin:0;cursor:pointer;}
#main-nav{display:flex;gap:6px;flex-wrap:wrap;}
#main-nav button{border:none;background:transparent;color:var(--ink-soft);padding:8px 12px;border-radius:10px;
  font-size:.92em;cursor:pointer;transition:background .15s,color .15s;}
#main-nav button:hover{background:var(--accent-soft);color:var(--accent);}
#main-nav button.active{background:var(--accent);color:var(--accent-ink);}

main#view{padding:0 20px;}
.screen{display:none;animation:fadein .18s ease;}
.screen.active{display:block;}
@keyframes fadein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}

h2{margin:6px 0 16px;font-size:1.4em;}
.hint{color:var(--ink-soft);font-size:.92em;margin:0 0 10px;}

.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:16px;}
.section-title{font-weight:700;margin-bottom:10px;font-size:.95em;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;}

.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:12px;padding:11px 18px;
  font-size:.95em;font-weight:600;cursor:pointer;background:var(--accent-soft);color:var(--accent);transition:transform .1s,filter .1s;}
.btn:hover{filter:brightness(0.97);}
.btn:active{transform:scale(.97);}
.btn.primary{background:var(--accent);color:var(--accent-ink);}
.btn.danger{background:var(--bad-soft);color:var(--bad);}
.btn.ghost{background:transparent;color:var(--ink-soft);}
.btn.small{padding:7px 12px;font-size:.85em;}
.btn.big{width:100%;justify-content:center;padding:16px;font-size:1.1em;margin-top:12px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* ===== Accueil ===== */
.hello-row{display:flex;justify-content:space-between;align-items:center;margin:10px 0 16px;}
.hello{font-size:1.6em;font-weight:700;}
.sub{color:var(--ink-soft);font-size:.9em;}
.streak-badge{background:var(--warn-soft);color:var(--warn);padding:8px 14px;border-radius:20px;font-weight:700;font-size:.9em;}
.today-title{font-weight:700;color:var(--ink-soft);font-size:.9em;text-transform:uppercase;}
.today-num{font-size:1.7em;font-weight:700;margin:6px 0;}
.quick-title{font-weight:700;margin-bottom:10px;}
.quick-durations{display:flex;gap:8px;flex-wrap:wrap;}
.quick-durations button{flex:1;min-width:70px;}
.exam-title{font-weight:700;margin-bottom:10px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:720px){.two-col{grid-template-columns:1fr;}}

.lesson-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.lesson-row:last-child{border-bottom:none;}
.lesson-row:hover{color:var(--accent);}
.lesson-row .pct{font-weight:700;color:var(--ink-soft);}
.mini-progress{height:6px;background:var(--line);border-radius:4px;overflow:hidden;width:90px;margin-top:4px;}
.mini-progress span{display:block;height:100%;background:var(--accent);}

.diff-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:.92em;}
.diff-row:last-child{border-bottom:none;}
.diff-row .rate{font-weight:700;}
.rate.low{color:var(--bad);} .rate.mid{color:var(--warn);} .rate.high{color:var(--good);}

.empty-note{color:var(--ink-soft);font-size:.9em;padding:8px 0;}

/* ===== Formulaires ===== */
.text-input, textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 14px;
  font-size:1em;font-family:inherit;margin-bottom:10px;background:var(--input-bg);color:var(--ink);}
textarea{resize:vertical;min-height:160px;}
.text-input:focus, textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
.text-input::placeholder, textarea::placeholder{color:var(--ink-soft);opacity:.7;}

/* ===== Import / review de leçon ===== */
.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.item-group{margin-bottom:18px;}
.item-group h4{margin:0 0 8px;font-size:.9em;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;}
.item-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--input-bg);border:1px solid var(--line);margin-bottom:6px;flex-wrap:wrap;}
.item-row .imp-dot{font-size:1.1em;}
.item-row input{border:1px solid transparent;background:transparent;color:var(--ink);padding:4px 6px;border-radius:6px;font-size:.92em;}
.item-row input:focus{border-color:var(--line);background:var(--card);outline:none;}
.item-row .en-field{flex:1;min-width:120px;font-weight:600;}
.item-row .fr-field{flex:1;min-width:120px;}
.item-row select{border:1px solid var(--line);border-radius:6px;font-size:.82em;padding:3px 4px;background:var(--card);color:var(--ink);}
.item-row .del-btn{background:none;border:none;color:var(--bad);cursor:pointer;font-size:1em;padding:2px 6px;}
.review-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;}

/* ===== Détail leçon ===== */
.detail-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.detail-header h2{margin:0;flex:1;}
.detail-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px;}
.essential-only-toggle{display:flex;align-items:center;gap:6px;font-size:.88em;color:var(--ink-soft);cursor:pointer;}

.keybind-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);}
.keybind-row:last-child{border-bottom:none;}
.keybind-row span{font-size:.92em;}
.keybind-key{min-width:70px;text-align:center;font-family:monospace;}

/* ===== Session ===== */
.session-header{display:flex;align-items:center;gap:12px;margin:14px 0;}
.session-progress-bar{flex:1;height:8px;background:var(--line);border-radius:6px;overflow:hidden;}
.session-progress-bar span{display:block;height:100%;background:var(--accent);transition:width .2s;}
.session-count{font-size:.85em;color:var(--ink-soft);white-space:nowrap;}

.exercise-card{background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:36px 28px;text-align:center;min-height:280px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
.exercise-kind-tag{font-size:.78em;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:700;}
.exercise-emoji{font-size:4.2em;line-height:1;}
.exercise-prompt{font-size:1.7em;font-weight:700;}
.exercise-sub{font-size:1.05em;color:var(--ink-soft);}
.exercise-answer{font-size:1.5em;font-weight:700;color:var(--accent);margin-top:6px;}
.exercise-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px;}

.self-rate-row{display:flex;gap:10px;justify-content:center;margin-top:10px;}
.self-rate-row button{font-size:1.6em;background:none;border:2px solid var(--line);border-radius:14px;padding:10px 20px;cursor:pointer;}
.self-rate-row button:hover{border-color:var(--accent);}
.self-rate-row button.picked{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent) inset;}

.feedback-box{margin-top:12px;padding:12px 16px;border-radius:12px;font-size:.95em;text-align:left;max-width:420px;}
.feedback-box.good{background:var(--good-soft);color:var(--good-ink);}
.feedback-box.bad{background:var(--bad-soft);color:var(--bad-ink);}
.feedback-box .tip{margin-top:6px;color:var(--ink-soft);font-size:.92em;}

.speak-btn{background:var(--accent-soft);border:none;border-radius:50%;width:64px;height:64px;font-size:1.6em;cursor:pointer;color:var(--accent);}

/* ===== Fin de session ===== */
.end-card{text-align:center;}
.end-score{font-size:2.6em;font-weight:800;margin:8px 0;}
.end-breakdown{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:16px 0;}
.end-breakdown .chip{background:var(--accent-soft);color:var(--accent);padding:8px 14px;border-radius:12px;font-weight:600;font-size:.9em;}
.end-list{text-align:left;max-width:420px;margin:14px auto;}
.end-list li{margin-bottom:4px;}

/* ===== Stats ===== */
.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px;}
.stat-tile{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:14px;text-align:center;}
.stat-tile .value{font-size:1.6em;font-weight:800;}
.stat-tile .label{font-size:.78em;color:var(--ink-soft);margin-top:2px;}

.comp-table{width:100%;border-collapse:collapse;font-size:.92em;}
.comp-table td{padding:8px 4px;border-bottom:1px solid var(--line);}
.comp-table td:last-child{text-align:right;font-weight:700;}

.bar-chart{display:flex;align-items:flex-end;gap:6px;height:120px;}
.bar-chart .bar{flex:1;background:var(--accent-soft);border-radius:4px 4px 0 0;position:relative;min-height:2px;}
.bar-chart .bar span.fill{display:block;background:var(--accent);width:100%;border-radius:4px 4px 0 0;position:absolute;bottom:0;}
.bar-chart .bar .lbl{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-size:.68em;color:var(--ink-soft);}

.group-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--accent-ink);
  padding:10px 18px;border-radius:10px;font-size:.9em;box-shadow:var(--shadow);z-index:50;opacity:0;transition:opacity .2s;pointer-events:none;}
.group-toast.show{opacity:1;}

.imp-essential{color:var(--bad);} .imp-important{color:var(--warn);} .imp-secondary{color:var(--good);}
.filter-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.filter-row button{padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;font-size:.85em;}
.filter-row button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}

@media (max-width:600px){
  .exercise-card{padding:24px 16px;min-height:220px;}
  .exercise-prompt{font-size:1.35em;}
}

/* aucun texte sélectionnable (les champs de saisie restent utilisables) */
body { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
input, textarea, select, [contenteditable] { -webkit-user-select: text; user-select: text; }
