/* LinguaGo — estilos. Colores tomados 1:1 del lienzo "LinguaGo – Pantallas". */

@font-face{font-family:'Nunito';font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/nunito-400.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/nunito-600.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/nunito-700.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:800;font-style:normal;font-display:swap;src:url(../fonts/nunito-800.woff2) format('woff2')}
@font-face{font-family:'Caveat';font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/caveat-700.woff2) format('woff2')}

:root{
  color-scheme: light;
  --bg:#EFE6D6; --card:#F7F0E3; --line:#DCCDB4; --text:#2A2420; --muted:#6E6258; --text2:#4A403A;
  --green:#2F6B55; --green-fg:#2F6B55; --green-strong:#1F4D3D; --green-soft:#E3EFE9;
  --note-bg:#F3E6CC; --note-line:#D9C6A5; --chip:#F1E8D9;
  --amber:#E8A33D; --amber-fg:#7A4A00; --amber-icon:#B86E00; --amber-soft:#FFF1D6; --amber-label:#9A5A00;
  --der:#2F6FB3; --der-fg:#2F6FB3; --der-soft:#E7F0FA; --der-strong:#1E4F86;
  --die:#C2413A; --die-fg:#C2413A; --die-soft:#FBE9E7; --die-strong:#8E2A24;
  --das:#2A7F50; --das-fg:#2A7F50; --das-soft:#E5F2EA; --das-strong:#1F5E3A;
  --pending:#B9AC97; --wave-off:#CFC3AE; --dark-card:#2A2420;
  --avatar:#F3D9C4; --avatar-fg:#8A4B24; --on-fill:#FFFFFF; --disabled:#B9AC97;
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#1C1916; --card:#27221D; --line:#3A332B; --text:#EDE4D6; --muted:#ADA090; --text2:#CFC3B2;
  --green:#2F7A5E; --green-fg:#8FD0B2; --green-strong:#9AD3AE; --green-soft:#23362E;
  --note-bg:#2E271F; --note-line:#5A4A35; --chip:#2E2822;
  --amber-fg:#F2C276; --amber-icon:#F0B04A; --amber-soft:#3A2C14; --amber-label:#F2C276;
  --der-fg:#7DB0E8; --der-soft:#1E2B3A; --der-strong:#9CC3EE;
  --die-fg:#E8857C; --die-soft:#3A2220; --die-strong:#F0A79F;
  --das-fg:#6FC08F; --das-soft:#1F3326; --das-strong:#9AD3AE;
  --pending:#6E6355; --wave-off:#5A5045; --dark-card:#3A2F25; --disabled:#5A5045;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg)}
body{font-family:'Nunito',system-ui,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
button,input,textarea,select{font-family:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--green-fg)}
h1{margin:0}
.hand{font-family:'Caveat',cursive;font-weight:700}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--der);outline-offset:2px}

/* ---------- Estructura ---------- */
#app{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}
.screen{flex-grow:1;display:flex;flex-direction:column;gap:16px;padding:calc(28px + env(safe-area-inset-top)) 20px 16px}
.screen.tight{gap:14px}
.page-title{font-size:28px;font-weight:800;letter-spacing:-0.5px}
.subtitle{font-size:15px;color:var(--muted)}
.stack-2{display:flex;flex-direction:column;gap:2px}
.row-between{display:flex;justify-content:space-between;align-items:center}

/* Barra inferior */
.tabbar{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-around;align-items:center;padding:8px 4px calc(22px + env(safe-area-inset-bottom) * .4);background:var(--card);border-top:1.5px solid var(--line)}
.tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:56px;min-height:44px;padding:4px 0;text-decoration:none;color:var(--muted);font-size:11px;font-weight:700}
.tab[aria-current="page"]{color:var(--green-fg);font-weight:800}
.tab .dot{position:absolute;top:2px;right:14px;width:9px;height:9px;border-radius:50%;background:#C2413A}

/* ---------- Piezas comunes ---------- */
.card{background:var(--card);border:1.5px solid var(--line);border-radius:18px}
.tile{background:var(--card);border:1.5px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px;color:var(--text);text-decoration:none;text-align:left;font:inherit}
.tile b{font-weight:800;font-size:16px}
.tile small{font-size:13px;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.note{background:var(--note-bg);border:1.5px dashed var(--note-line);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.overline{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.section-label{font-size:13px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding-left:4px}
.btn{display:flex;justify-content:center;align-items:center;height:56px;border-radius:16px;border:none;background:var(--green);color:var(--on-fill);font-size:17px;font-weight:800;text-decoration:none;width:100%;transition:background .2s,transform .12s}
.btn:active{transform:scale(.98)}
.btn[disabled]{background:var(--disabled);cursor:default}
.btn.red{background:#C2413A}
.btn.ghost{background:var(--card);color:var(--green-fg);border:1.5px solid var(--line)}
.btn.sm{height:48px;font-size:16px;border-radius:14px}
.pill{height:32px;padding:0 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--muted);font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:4px}
.pill.on{border-color:transparent;background:var(--green);color:var(--on-fill);font-weight:800}
.bar{height:8px;border-radius:4px;background:var(--line)}
.bar>i{display:block;height:8px;border-radius:4px;background:var(--green);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.bar.amber>i{background:var(--amber)}
.avatar{width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--avatar);display:flex;align-items:center;justify-content:center;font-family:'Caveat',cursive;font-size:26px;font-weight:700;color:var(--avatar-fg)}
.icon-btn{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:none;color:var(--muted)}
.round-audio{width:44px;height:44px;flex-shrink:0;border-radius:50%;border:none;background:var(--green-soft);color:var(--green-fg);display:flex;align-items:center;justify-content:center}
.round-audio.playing{animation:pulse 1s ease-in-out infinite}
.der{color:var(--der-fg)} .die{color:var(--die-fg)} .das{color:var(--das-fg)}

/* Lista con filas */
.list{background:var(--card);border:1.5px solid var(--line);border-radius:18px;display:flex;flex-direction:column}
.list>*{display:flex;align-items:center;gap:12px;padding:14px 16px;border:none;border-bottom:1.5px solid var(--line);color:var(--text);text-decoration:none;background:none;text-align:left;font:inherit;width:100%}
.list>*:last-child{border-bottom:none}
.list .grow{flex-grow:1;display:flex;flex-direction:column}
.list .grow b{font-weight:800;font-size:16px}
.list .grow small{font-size:13px;color:var(--muted)}
.list .val{font-size:15px;color:var(--muted)}
.list.settings>*{padding:14px}
.list.settings .k{font-size:15px;font-weight:700}
.list select{border:none;background:none;font-size:15px;color:var(--muted);text-align:right;max-width:58%;appearance:none;-webkit-appearance:none;padding-right:2px}
input[type=checkbox]{width:24px;height:24px;accent-color:var(--green-fg);flex-shrink:0}

/* Segmentado (tema) */
.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:var(--bg);border-radius:12px;padding:4px}
.segmented button{height:36px;border-radius:9px;border:none;background:transparent;color:var(--text2);font-size:14px;font-weight:700}
.segmented button[aria-pressed="true"]{background:var(--green);color:var(--on-fill);font-weight:800}

/* ---------- Hoy ---------- */
.streak{display:flex;align-items:center;gap:6px;background:var(--amber-soft);border:1.5px solid var(--amber);border-radius:999px;padding:8px 14px;font-weight:800;font-size:15px;color:var(--amber-fg)}
.route{background:var(--green);color:#fff;border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:14px}
.route .tag{font-size:13px;font-weight:700;background:rgba(255,255,255,.18);border-radius:999px;padding:4px 10px}
.route .steps{display:flex;gap:6px}
.route .steps i{flex-grow:1;height:6px;border-radius:3px;background:rgba(255,255,255,.3)}
.route .steps i.on{background:#fff}
.route a{display:flex;justify-content:center;align-items:center;height:48px;background:var(--card);color:var(--green-fg);border-radius:14px;font-weight:800;font-size:16px;text-decoration:none}

/* ---------- Aprender ---------- */
.unit{background:var(--card);border:1.5px solid var(--line);border-radius:18px;padding:12px 14px;display:flex;gap:12px;align-items:center;width:100%;text-align:left;font:inherit;color:var(--text)}
.unit .num{width:40px;height:40px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--note-line);color:var(--muted);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.unit .num.done{background:var(--green);border:none;color:#fff}
.unit .t{font-size:17px;font-weight:800}
.unit .d{font-size:14px;color:var(--text2)}
.unit.current{border:2.5px solid var(--green);border-radius:20px;padding:14px;flex-direction:column;align-items:stretch;gap:12px}
.unit.current .num{background:var(--green-soft);border:none;color:var(--green-fg);font-size:17px}
.lessons{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.lessons li{display:flex;align-items:center;gap:10px;padding:8px 6px;font-size:15px;color:var(--text2)}
.lessons li.here{flex-direction:column;align-items:stretch;gap:10px;padding:12px;border-radius:14px;background:var(--green-soft)}
.test-card{background:var(--note-bg);border-style:dashed;border-color:var(--note-line)}

/* ---------- Mery ---------- */
.chat-head{display:flex;align-items:center;gap:10px;padding:calc(18px + env(safe-area-inset-top)) 16px 12px;background:var(--card);border-bottom:1.5px solid var(--line)}
.chat-body{flex-grow:1;display:flex;flex-direction:column;gap:10px;padding:16px;overflow-y:auto}
.chat-chip{align-self:center;font-size:12px;font-weight:700;color:var(--muted);background:var(--chip);border-radius:999px;padding:4px 12px;text-align:center}
.bubble{align-self:flex-start;max-width:82%;background:var(--card);border:1.5px solid var(--line);border-radius:18px 18px 18px 6px;padding:12px 14px;font-size:16px;line-height:1.45}
.composer{display:flex;align-items:center;gap:10px;padding:10px 16px 12px;background:var(--card);border-top:1.5px solid var(--line)}
.composer input{width:100%;height:48px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);padding:0 18px;font-size:16px;color:var(--text)}
.mic{width:52px;height:52px;flex-shrink:0;border-radius:50%;border:none;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center}
.mode-btn{height:36px;padding:0 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);font-size:13px;font-weight:800;color:var(--green-fg);display:flex;align-items:center;gap:6px}

/* ---------- Juegos ---------- */
.challenge{border:none;background:var(--dark-card);color:#fff;border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:12px;text-align:left;font:inherit;width:100%}
.art{border-radius:10px;padding:6px 12px;font-weight:800;font-size:15px;color:#fff}

/* ---------- Yo ---------- */
.ring-wrap{position:relative;flex-shrink:0}
.ring-wrap .center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-wrap circle.prog{transition:stroke-dasharray 1.2s cubic-bezier(.2,.8,.2,1)}
.chipbtn{height:36px;padding:0 12px;border-radius:999px;border:1.5px solid var(--note-line);background:var(--card);font-size:14px;font-weight:700;color:var(--text)}

/* ---------- Lección ---------- */
.lesson{flex-grow:1;display:flex;flex-direction:column;gap:20px;padding:calc(24px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));position:relative;overflow-x:hidden}
.lesson-top{display:flex;align-items:center;gap:14px}
.lesson-bar{flex-grow:1;height:10px;border-radius:5px;background:var(--line);overflow:hidden}
.lesson-bar>i{display:block;height:100%;border-radius:5px;background:var(--green);transition:width .5s cubic-bezier(.2,.8,.2,1)}
.step-kicker{font-size:13px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--green-fg)}
.step-title{font-size:24px;font-weight:800;line-height:1.2}
.qcard{background:var(--card);border:1.5px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:12px}
.sentence{font-size:21px;font-weight:700;line-height:1.4}
.blank{display:inline-block;min-width:72px;border-bottom:3px solid var(--der);color:var(--der-fg);text-align:center;transition:color .2s,border-color .2s}
.blank.ok{border-color:var(--green);color:var(--green-fg)}
.blank.bad{border-color:#C2413A;color:var(--die-fg)}
.options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.opt{min-height:56px;border-radius:16px;border:1.5px solid var(--line);background:var(--card);color:var(--text);font-size:18px;font-weight:700;padding:8px;transition:transform .15s,background .2s,border-color .2s}
.opt.sel{border:2.5px solid var(--der);background:var(--der-soft);color:var(--der-strong);font-weight:800;transform:scale(1.04)}
.opt.ok{border:2.5px solid var(--green);background:var(--green-soft);color:var(--text)}
.opt.bad{border:2.5px solid #C2413A;background:var(--die-soft);color:var(--text)}
.opt.gone{visibility:hidden}
.opt.matched{opacity:.35;border-color:var(--green)}
.opt-wide{grid-template-columns:1fr}
.opt-wide .opt{text-align:left;padding:12px 16px;font-size:17px}
.tip{background:var(--note-bg);border:1.5px dashed var(--note-line);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.tip .hand{font-size:22px;color:var(--amber-fg)}
.art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-size:14px;font-weight:700;text-align:center}
.art-grid>div{border-radius:10px;padding:8px 4px}
.a-der{background:var(--der-soft);color:var(--der-strong)} .a-die{background:var(--die-soft);color:var(--die-strong)} .a-das{background:var(--das-soft);color:var(--das-strong)}
.feedback{position:sticky;bottom:0;margin:0 -20px calc(-28px - env(safe-area-inset-bottom));padding:18px 20px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;animation:slideup .35s cubic-bezier(.2,.8,.2,1) both}
.feedback.ok{background:var(--green-soft);border-top:2px solid var(--green)}
.feedback.bad{background:var(--die-soft);border-top:2px solid #C2413A}
.feedback .t{font-size:19px;font-weight:800}
.feedback.ok .t,.feedback.ok .m{color:var(--green-strong)}
.feedback.bad .t,.feedback.bad .m{color:var(--die-strong)}
.feedback .m{font-size:14px;line-height:1.45}
.star{width:44px;height:44px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;animation:star .5s .1s ease-out both;flex-shrink:0}

/* Tarjeta que gira */
.flip-wrap{flex-grow:1;perspective:1200px;display:flex;min-height:340px}
.flip{flex-grow:1;position:relative;border:none;padding:0;background:transparent;color:var(--text);transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.flip.flipped{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}
.face.front{background:var(--card);border:1.5px solid var(--line)}
.face.back{transform:rotateY(180deg);background:var(--green-soft);border:1.5px solid var(--green)}
.face .gender{font-size:13px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}
.face .word{font-size:40px;font-weight:800;line-height:1.1}
.face .tr{font-size:36px;font-weight:800}
.face .ex{font-size:16px;color:var(--text2);line-height:1.45}
.face .pl{font-size:14px;color:var(--muted)}
.face .audio-in{position:absolute;top:14px;right:14px}
.grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;animation:rise .35s ease-out both}
.grade button{height:60px;border-radius:14px;border:1.5px solid var(--line);font-size:14px;font-weight:800}
.g1{background:var(--die-soft);color:var(--die-strong)} .g2{background:var(--amber-soft);color:var(--amber-fg)} .g3{background:var(--green-soft);color:var(--green-strong)} .g4{background:var(--der-soft);color:var(--der-strong)}
.hint-line{height:60px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--muted)}

/* Diálogo */
.dline{display:flex;flex-direction:column;gap:4px;max-width:86%}
.dline.a{align-self:flex-start}
.dline.b{align-self:flex-end;align-items:flex-end}
.dline .who{font-size:12px;font-weight:800;color:var(--muted);padding:0 4px}
.dline .bubble{max-width:none;display:flex;flex-direction:column;gap:6px;cursor:pointer}
.dline.b .bubble{background:var(--green);border-color:var(--green);color:#fff;border-radius:18px 18px 6px 18px}
.dline .es{font-size:14px;opacity:.8}
.w{border-radius:4px;transition:background .2s}
.w.hl{background:var(--green-soft);color:var(--text)}
.dline.b .w.hl{background:rgba(255,255,255,.28);color:#fff}

/* Ordenar */
.answer-zone{min-height:64px;display:flex;flex-wrap:wrap;gap:8px;padding:10px;border-radius:16px;border:1.5px dashed var(--note-line);background:var(--note-bg);align-content:flex-start}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.chip{height:46px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);font-size:17px;font-weight:700;color:var(--text)}
.textin{width:100%;border-radius:16px;border:1.5px solid var(--line);background:var(--card);padding:14px 16px;font-size:18px;color:var(--text)}
textarea.textin{min-height:130px;resize:vertical;line-height:1.45;font-size:17px}

/* Celebración */
.celebrate{flex-grow:1;display:flex;flex-direction:column;align-items:center;gap:18px;padding:calc(40px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));position:relative;overflow:hidden}
.confetti{position:absolute;inset:0;pointer-events:none}
.confetti span{position:absolute;top:-20px;height:12px;border-radius:2px;animation:fall var(--d) var(--dl) cubic-bezier(.3,.6,.5,1) both}
.flame{animation:flame .8s .4s ease-out both}
.rise{animation:rise .4s .9s ease-out both}

/* Toast */
.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:50;max-width:min(92vw,420px);background:var(--text);color:var(--bg);font-size:14px;font-weight:700;line-height:1.4;padding:12px 16px;border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.18);animation:rise .25s ease-out both;text-align:center}

/* Animaciones (de las demos del lienzo) */
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-10px)}40%{transform:translateX(9px)}60%{transform:translateX(-6px)}80%{transform:translateX(4px)}}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes slideup{from{transform:translateY(100%);opacity:0}to{transform:none;opacity:1}}
@keyframes star{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.3) rotate(10deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-6px);opacity:1}}
@keyframes bubble{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes wave{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes fall{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(110vh) rotate(540deg);opacity:.9}}
@keyframes flame{0%{transform:scale(1)}35%{transform:scale(1.45) rotate(-6deg)}60%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.shake{animation:shake .45s ease}
.pop{animation:pop .4s ease}
.enter{animation:fadein .22s ease-out both}
.bubble-in{animation:bubble .3s cubic-bezier(.2,.8,.2,1) both}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

/* ---------- Fase 3 · Mery y Katrin ---------- */
:root{--katrin-bg:#DCE6F2;--katrin-fg:#2F4F7A;--err-line:#F2B6A8}
:root[data-theme="dark"]{--katrin-bg:#1E2B3A;--katrin-fg:#9CC3EE}
.chat-screen{flex-grow:1;display:flex;flex-direction:column;height:100dvh;min-height:0}
.chat-screen .chat-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.composer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.avatar.katrin{background:var(--katrin-bg);color:var(--katrin-fg)}
.bubble.me{align-self:flex-end;max-width:100%;background:var(--green);border-color:var(--green);color:#fff;border-radius:18px 18px 6px 18px}
.bubble.me.sending{opacity:.7}
.bubble.bot{display:flex;flex-direction:column;gap:10px;max-width:84%}
.err{text-decoration:underline wavy var(--err-line);text-underline-offset:4px}
.fix{background:var(--note-bg);border:1.5px dashed var(--note-line);border-radius:14px;padding:8px 12px;font-size:14px;line-height:1.4;max-width:100%}
.fix summary{cursor:pointer;font-weight:800;color:var(--amber-fg);list-style:none;min-height:28px;display:flex;align-items:center}
.fix summary::-webkit-details-marker{display:none}
.fix summary::after{content:'›';margin-left:6px;transition:transform .2s}
.fix[open] summary::after{transform:rotate(90deg)}
.fix-item{display:flex;flex-direction:column;gap:2px;padding-top:6px;font-size:14px;line-height:1.4}
.fix-wrong{color:var(--die-strong);text-decoration:line-through}
.fix-right{color:var(--der-strong)}
.play{width:36px;height:36px;flex-shrink:0;border-radius:50%;border:none;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center}
.wave{display:flex;align-items:center;gap:3px;height:26px;flex-grow:1}
.wave i{display:block;width:3px;border-radius:2px;background:var(--wave-off);transform-origin:center}
.speaking .wave i{background:var(--green);animation:wave .8s ease-in-out infinite}
.speaking .wave i:nth-child(2n){animation-delay:.14s}.speaking .wave i:nth-child(3n){animation-delay:.28s}.speaking .wave i:nth-child(5n){animation-delay:.42s}
.slow,.link{border:none;background:none;padding:0;font-size:13px;font-weight:700;color:var(--green-fg);align-self:flex-start;min-height:28px}
.say{font-size:16px;line-height:1.5}
.tr{font-size:14px;line-height:1.45;color:var(--text2)}
.save-words{display:flex;flex-wrap:wrap;gap:6px}
.wchip{height:32px;padding:0 10px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);font-size:13px;font-weight:800;color:var(--text)}
.wchip.saved{opacity:.5}
.typing{flex-direction:row !important;gap:5px !important;padding:14px 16px}
.typing span{width:8px;height:8px;border-radius:50%;background:var(--muted);animation:dot 1.1s infinite}
.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}
.mic.rec,.bigmic.rec{background:#C2413A;animation:pulse 1s ease-in-out infinite}
.mode-btn{text-decoration:none}
.mode-card{border-radius:16px;border:1.5px solid var(--line);background:var(--card);color:var(--text);padding:12px;display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit}
.mode-card.big{border-radius:18px;padding:14px 16px;gap:4px}
.mode-card[aria-pressed="true"]{border:2.5px solid var(--green);background:var(--green-soft)}
.kcard{border-radius:10px;padding:6px 12px;font-size:15px;font-weight:800;background:var(--bg);border:1.5px solid var(--line)}
.kcard.done{background:var(--green-soft);border-color:transparent;color:var(--green-strong);text-decoration:line-through}
.k-controls{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 20px calc(16px + env(safe-area-inset-bottom))}
.bigmic{width:84px;height:84px;border-radius:50%;border:6px solid var(--green-soft);background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.bigmic svg{width:32px;height:32px}
.a-plain{background:var(--chip);color:var(--text)}
