:root{--bg: #0f1115;--card: #181b22;--card-2: #20242d;--text: #f2f3f5;--muted: #9aa1ad;--line: #2b303a;--accent: #ff4d6d;--accent-2: #4dabff;--ok: #2fbf71;--ok-bg: rgba(47, 191, 113, .14);--bad: #ff5c5c;--bad-bg: rgba(255, 92, 92, .13);--partial: #f5b942;--partial-bg: rgba(245, 185, 66, .14);--radius: 18px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f3f1ee;--card: #ffffff;--card-2: #f4f3f1;--text: #17181b;--muted: #6b707a;--line: #e2dfda;--accent: #e8335a;--accent-2: #1f7fe0;--ok: #1d9b57;--ok-bg: rgba(29, 155, 87, .1);--bad: #d93a3a;--bad-bg: rgba(217, 58, 58, .09);--partial: #b9800f;--partial-bg: rgba(245, 185, 66, .16);color-scheme:light}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}button:disabled{cursor:default}.app{height:100%;max-width:520px;margin:0 auto;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;flex:0 0 auto}.topbar button{font-size:20px;padding:6px 8px;border-radius:12px;opacity:.75}.topbar button.on{opacity:1;background:var(--card-2)}.topbar .tab-feed{font-size:16px;font-weight:700;margin-right:auto;margin-left:4px}.level-chip{font-weight:700;font-size:14px;padding:4px 10px;border-radius:999px;background:var(--accent);color:#fff;cursor:pointer}.main{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.feed{flex:1;min-height:0;padding:4px 12px calc(12px + env(safe-area-inset-bottom));touch-action:pan-y;-webkit-user-select:none;user-select:none}.card-wrap{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:transform .12s ease-out,opacity .12s}.slide-in{animation:slideIn .26s cubic-bezier(.2,.8,.2,1)}.slide-out{animation:slideOut .18s ease-in forwards}@keyframes slideIn{0%{transform:translateY(60px);opacity:0}to{transform:none;opacity:1}}@keyframes slideOut{to{transform:translateY(-80px);opacity:0}}@media (prefers-reduced-motion: reduce){.slide-in,.slide-out{animation:none}}.card{min-height:100%;background:var(--card);border-radius:var(--radius);padding:16px 18px 14px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 0 var(--line) inset,0 10px 30px #0000002e}.card.teach{background:linear-gradient(160deg,var(--card) 0%,var(--card-2) 100%)}.card-head{display:flex;justify-content:space-between;gap:8px}.pill{font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--card-2)}.pill.subtle{color:var(--muted)}.card-body{flex:1;display:flex;flex-direction:column;gap:14px;justify-content:center}.card-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.swipe-hint{color:var(--muted);font-size:12px;margin:0 0 0 auto}.prompt-text{font-size:22px;line-height:1.4;font-weight:600;margin:0;-webkit-user-select:text;user-select:text}.label{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}.hint{color:var(--muted);font-size:14px;margin:6px 0 0}.blank{display:inline-block;min-width:2.5em;border-bottom:3px solid var(--accent-2);padding:0 4px;margin:0 2px}.blank-ok{color:var(--ok);border-color:var(--ok)}.blank-bad{color:var(--bad);border-color:var(--bad)}.passage{background:var(--card-2);border-radius:14px;padding:12px 14px;margin:0;font-size:17px;line-height:1.55;-webkit-user-select:text;user-select:text}.options{display:grid;gap:10px}.options.two{grid-template-columns:1fr 1fr}.option{text-align:left;padding:13px 15px;border-radius:14px;background:var(--card-2);border:1.5px solid var(--line);font-size:17px;transition:transform .08s,background .15s}.option:not(:disabled):active{transform:scale(.98)}.options.two .option{text-align:center}.opt-ok{background:var(--ok-bg);border-color:var(--ok)}.opt-bad{background:var(--bad-bg);border-color:var(--bad)}.opt-dim{opacity:.5}.answer-form{display:flex;gap:8px;align-items:stretch}.answer-form input,.answer-form textarea{flex:1;min-width:0;background:var(--card-2);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;font-size:18px;outline:none;resize:none;-webkit-user-select:text;user-select:text}.answer-form input:focus,.answer-form textarea:focus{border-color:var(--accent-2)}.accents{display:flex;flex-wrap:wrap;gap:6px}.accents button{min-width:36px;padding:6px 8px;border-radius:10px;background:var(--card-2);border:1px solid var(--line)}.verdict{border-radius:14px;padding:10px 14px;font-weight:600}.verdict.ok{background:var(--ok-bg);color:var(--ok)}.verdict.partial{background:var(--partial-bg);color:var(--partial)}.verdict.bad{background:var(--bad-bg);color:var(--bad)}.model-answers{color:var(--text);font-weight:500;margin-top:4px}.spot{line-height:2}.tok{padding:2px 1px;border-radius:8px;font-size:22px;font-weight:600;border:1.5px dashed transparent}.tok:not(:disabled):hover{border-color:var(--line)}.tok-wrong{background:var(--bad-bg);color:var(--bad);text-decoration:line-through}.tok-picked{border-color:var(--partial)}.correction{font-size:19px}.strike{text-decoration:line-through;color:var(--bad)}.built{min-height:56px;border-bottom:2px solid var(--line);display:flex;flex-wrap:wrap;gap:6px;padding:6px 0;align-items:center}.placeholder{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 12px;border-radius:12px;background:var(--card-2);border:1.5px solid var(--line);font-size:17px}.chip:disabled{opacity:.25}.chip-built{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.audiobar{display:flex;align-items:center;gap:12px}.play{width:64px;height:64px;border-radius:50%;background:var(--accent);color:#fff;font-size:24px;box-shadow:0 6px 20px #ff4d6d59}.play.playing{animation:pulse 1s infinite}@keyframes pulse{50%{transform:scale(1.06)}}.rate{padding:6px 12px;border-radius:999px;background:var(--card-2);font-weight:600}.explain{background:var(--card-2);border-radius:14px;padding:12px 14px;-webkit-user-select:text;user-select:text}.explain details{margin-top:8px}.explain summary{cursor:pointer;color:var(--accent-2);font-weight:600}.skill-tag{font-size:13px;color:var(--muted);margin:6px 0 0}.skill-title{color:var(--accent);font-weight:700;font-size:14px;margin:0;text-transform:uppercase;letter-spacing:.04em}.teach h2{margin:0;font-size:26px;line-height:1.2}.md p{margin:6px 0}.md ul{margin:6px 0;padding-left:20px}.md li{margin:3px 0}.md blockquote{margin:8px 0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--card-2);border-radius:0 10px 10px 0;font-size:17px}.md strong{color:var(--accent-2)}.teach .md{font-size:18px;-webkit-user-select:text;user-select:text}.reactions{display:flex;gap:4px}.react{font-size:22px;width:44px;height:44px;border-radius:50%;background:var(--card-2)}.react.on{transform:scale(1.08)}.difficulty{display:flex;gap:6px}.difficulty button{font-size:13px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.difficulty button.on{border-color:var(--accent-2);color:var(--accent-2)}.primary{background:var(--accent);color:#fff;font-weight:700;padding:12px 18px;border-radius:14px}.primary:disabled{opacity:.4}.primary.next{margin-left:auto}.primary.big{font-size:19px;padding:15px 28px}.link{color:var(--accent-2);font-weight:600;padding:4px 0;align-self:flex-start}.idk{color:var(--muted);font-weight:500;font-size:14px}.warn{color:var(--partial)}.panel{overflow-y:auto;padding:8px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px}.panel section{background:var(--card);border-radius:var(--radius);padding:14px 16px}.panel h3{margin:0 0 10px;font-size:16px}.level-hero{text-align:center}.level-big{font-size:56px;font-weight:800;color:var(--accent);line-height:1}.level-sub{color:var(--muted);font-size:14px;margin:6px 0 14px}.levelbar{position:relative;display:grid;grid-template-columns:repeat(6,1fr);text-align:center;font-size:12px;color:var(--muted);border-top:3px solid var(--line);padding-top:6px}.levelbar i{position:absolute;top:-9px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--accent)}.strand-row{display:grid;grid-template-columns:9.5em 1fr 3em;gap:10px;align-items:center;font-size:15px;margin:6px 0}.strand-bar,.mastery{height:8px;border-radius:99px;background:var(--card-2);overflow:hidden}.strand-bar span,.mastery span{display:block;height:100%;background:var(--accent-2);border-radius:99px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.statbox{display:flex;flex-direction:column;align-items:center;padding:6px}.statbox b{font-size:26px}.statbox span{font-size:13px;color:var(--muted)}.skill-row{display:grid;grid-template-columns:1fr 90px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}.skill-row:last-child{border-bottom:none}.topic-cloud{display:flex;flex-wrap:wrap;gap:6px}.topic-chip{padding:5px 10px;border-radius:999px;background:var(--card-2);font-size:14px}.topic-chip small{color:var(--muted);margin-left:2px}.muted{color:var(--muted)}.small{font-size:13px}.btn-col{display:flex;flex-direction:column;gap:8px}.btn-col button,.file-btn{padding:12px 14px;border-radius:12px;background:var(--card-2);text-align:left;font-weight:600}.btn-col .primary{background:var(--accent)}.file-btn input{display:none}.file-btn{cursor:pointer}select{width:100%;padding:10px;border-radius:12px;background:var(--card-2);border:1px solid var(--line)}.danger{margin-top:8px;color:var(--bad);font-weight:600;padding:8px 0}code{font-size:12px;background:var(--card-2);padding:1px 4px;border-radius:4px}.welcome{margin:auto 0;padding:24px 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.welcome .logo{font-size:56px}.welcome h1{margin:0;font-size:40px}.welcome ul{padding-left:18px;line-height:1.5}.welcome li{margin:8px 0}.welcome .primary{margin-top:12px}.fatal{padding:24px;color:var(--bad)}@media (max-width: 360px){.prompt-text,.tok{font-size:20px}.strand-row{grid-template-columns:8em 1fr 2.6em}}
