:root{--bg:#fbfaf7;--surface:#fff;--text:#1f2328;--muted:#6e7781;--border:#e4e1d8;--accent:#0b7a3e;--accent-text:#fff;--accent-soft:#e3f2e9;--learner:#dbeafe;--danger:#b42318;--mark:#c8f0d6;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161616;--surface:#1f1f1f;--text:#e6e6e6;--muted:#a0a8b0;--border:#333;--accent:#3fb873;--accent-text:#0b1a12;--accent-soft:#1c3326;--learner:#1e3350;--danger:#ff7b72;--mark:#22573a}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:.2em 0;font-size:1.5rem}h2{margin:0;font-size:1.1rem}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;min-height:44px;padding:.55em 1em}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.link{min-height:0;color:var(--accent);background:0 0;border:none;padding:.2em .4em;text-decoration:underline}button.danger,.danger{color:var(--danger)}input,select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;margin-top:.25em;padding:.55em .7em}input[type=checkbox]{width:1.2em;height:1.2em;accent-color:var(--accent);margin:0}input[type=range]{accent-color:var(--accent);border:none;padding:0}textarea{resize:vertical}label{display:block}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.center{text-align:center}.error{color:var(--danger)}.stack{flex-direction:column;gap:.9rem;display:flex}.row{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.row-between{justify-content:space-between;align-items:center;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.splash{height:100vh;color:var(--accent);place-items:center;font-size:2rem;font-weight:700;display:grid}.app{max-width:720px;margin:0 auto;padding:0 16px 32px}.app-chat{padding-bottom:0}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.brand{color:var(--accent);font-size:1.25rem;font-weight:800;text-decoration:none}.topbar nav{gap:14px;display:flex}.topbar nav a{color:var(--muted);text-decoration:none}.topbar nav a.active{color:var(--text);font-weight:600}.login{text-align:center;max-width:380px;margin:12vh auto 0;padding:0 16px}.login form{text-align:left;margin-top:1.5rem}.banner{background:var(--accent-soft);border-color:#0000;justify-content:space-between;align-items:center;gap:1rem;text-decoration:none;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:999px;min-height:40px;padding:.4em .9em}.stack-tight{flex-direction:column;gap:.35rem;display:flex}.chips.levels{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.levels .chip{padding:.4em 0}.chip.selected{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.list li{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem}.list li a{text-decoration:none;display:block}.chat{flex-direction:column;height:calc(100dvh - 64px);display:flex}.chat-head{justify-content:space-between;align-items:center;display:flex}.messages{flex-direction:column;flex:1;gap:10px;padding:8px 0 16px;display:flex;overflow-y:auto}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px;max-width:88%;padding:.6em .9em;position:relative}.bubble.learner{background:var(--learner);border-bottom-right-radius:6px;align-self:flex-end}.bubble.tutor{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:6px;align-self:flex-start;font-size:1.08rem}.tutor-turn{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.recast{max-width:88%;color:var(--accent);align-self:flex-end;margin-top:-4px;font-size:.9rem}.recast mark{background:var(--mark);color:inherit;border-radius:4px;padding:0 2px}.word{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:4px}.word:focus-visible{outline:2px solid var(--accent)}.word:hover{background:var(--accent-soft)}.word.flagged{color:#1f2328;background:#fde68a}.speak{vertical-align:baseline;background:0 0;border:none;min-height:0;padding:0 0 0 .4em}.popover{background:var(--accent-soft);white-space:normal;border-radius:10px;margin-top:.5em;padding:.5em .7em;font-size:.95rem}.gloss{color:var(--muted);margin:0;padding:0 0 0 .9em;font-size:.85rem;list-style:none}.tip{text-align:left;min-height:0;color:var(--muted);background:0 0;border:none;padding:0 .9em;font-size:.85rem}.typing{color:var(--muted);letter-spacing:.2em}.error-box{text-align:center;color:var(--danger);flex-direction:column;align-self:center;align-items:center;gap:6px;display:flex}.composer{border-top:1px solid var(--border);padding:10px 0 max(10px, env(safe-area-inset-bottom));background:var(--bg);flex-direction:column;gap:8px;display:flex}.composer textarea{min-height:46px;max-height:30vh;margin:0}.composer-buttons{gap:8px;display:flex}.composer-buttons .primary{margin-left:auto}.mic.listening{background:var(--danger);color:#fff;border-color:var(--danger);animation:1.2s infinite pulse}@keyframes pulse{50%{opacity:.65}}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats>div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;padding:.7rem;display:flex}.stats strong{color:var(--accent);font-size:1.5rem;line-height:1.2}.stats span{color:var(--muted);font-size:.8rem}.error-card{color:var(--danger);border-color:var(--danger)}.session-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.session-row a{flex:1}.meter{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.meter>div{background:var(--accent);height:100%}.account{flex-direction:column;gap:4px;display:flex}.limit{color:var(--muted);align-items:center;gap:4px;display:flex}.limit input{width:7em;margin:0;padding:.25em .5em}.review-item{flex-direction:column;gap:6px;display:flex}.review-item.off{opacity:.55}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:.4em;padding:.1em .5em;font-size:.75rem}.check{align-items:center;gap:.6em;display:flex}.example b,.correct{color:var(--accent)}.correct{font-weight:600}.toolbar{align-items:center;gap:12px;display:flex}.toolbar input[type=search]{flex:1;margin:0}.toolbar .check{white-space:nowrap}.word-head{justify-content:space-between;gap:8px;display:flex}.inline-edit{gap:6px;display:flex}.inline-edit input{margin:0}@media (width<=480px){.row{grid-template-columns:1fr}.composer-buttons button{padding:.5em .7em}}.chips.levels.two{grid-template-columns:repeat(2,1fr)}.library-row strong{color:var(--text)}.done{color:var(--accent);font-weight:600}.story-paragraph{margin:0;font-size:1.15rem;line-height:1.7}.gloss-line{justify-content:space-between;align-items:center;gap:10px;display:flex}.gloss-line button{white-space:nowrap;min-height:36px;padding:.3em .8em}.grammar h2{margin-top:.6em}.bullets{margin:0;padding-left:1.2em}.bullets li{margin:.25em 0}.table-wrap{overflow-x:auto}.table-wrap table{border-collapse:collapse;background:var(--surface);width:100%}.table-wrap th,.table-wrap td{border:1px solid var(--border);text-align:left;padding:.4em .6em}.table-wrap th{background:var(--accent-soft)}.exercise{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem}.exercise p{margin:0 0 .5em;line-height:2}.exercise input{width:auto;margin:0 .25em;padding:.2em .4em;display:inline-block}.exercise input.right{border-color:var(--accent);background:var(--accent-soft)}.exercise input.wrong{border-color:var(--danger)}.exercise-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.exercise-actions button[type=submit]{min-height:36px;padding:.3em .8em}.right-text{color:var(--accent);font-weight:600}.wrong-text{color:var(--danger)}.next-lesson{color:var(--text);border-top:1px solid var(--border);padding:.4em 0;text-decoration:none;display:block}.next-lesson:first-of-type{border-top:none}
