:root{--text:#2a2a2e;--text-dim:#6b6375;--bg:#fafafa;--surface:#fff;--border:#e5e4e7;--accent:#aa3bff;--accent-fg:#fff;--danger:#d1384a;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#f3f4f6;--text-dim:#9ca3af;--bg:#16171d;--surface:#1f2028;--border:#2e303a;--accent:#c084fc;--accent-fg:#16171d;--danger:#ef6b7f}}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex}h1,h2,h3{margin:0 0 8px}p{margin:0}button{font:inherit;background:var(--accent);color:var(--accent-fg);cursor:pointer;border:none;border-radius:8px;padding:10px 14px}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{color:var(--text-dim);border:1px solid var(--border);background:0 0}input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px}.app{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex}.centered{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.auth-form{flex-direction:column;gap:10px;width:100%;max-width:320px;padding:0 16px;display:flex}.auth-form h2{text-align:center;margin-bottom:4px}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error{color:var(--danger)}.hint{color:var(--text-dim);font-size:13px}.top-bar{justify-content:space-between;align-items:center;display:flex}.status-bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-around;padding:10px;display:flex}.section-title{font-size:16px;font-weight:600}.node-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.node-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:12px 0;display:flex}.node-name{font-size:15px}.node-actions{flex-shrink:0;gap:8px;display:flex}.roleplay-screen{height:100svh}.roleplay-header{border-bottom:1px solid var(--border);padding-bottom:8px}.turn-list{flex-direction:column;flex:1;gap:8px;padding:4px 0;display:flex;overflow-y:auto}.turn-bubble{border-radius:14px;max-width:85%;padding:10px 12px}.turn-bubble.ai{background:var(--surface);border:1px solid var(--border);align-self:flex-start}.turn-bubble.user{background:var(--accent);color:var(--accent-fg);align-self:flex-end}.correction-box{background:#d1384a1a;border-radius:8px;margin-top:6px;padding:8px;font-size:13px}.strike{color:var(--danger);text-decoration:line-through}.fix{color:var(--text);font-weight:600}.explanation{color:var(--text-dim);margin-top:4px}.roleplay-footer{align-items:center;gap:8px;padding-top:8px;display:flex}.roleplay-footer input{flex:1}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:400px;padding:24px;box-shadow:0 4px 20px #00000026}.vocab-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:8px}
