:root{--bg:#eef1f7;--card:#ffffff;--text:#1f2a44;--muted:#7a869f;--primary:#3e5fd8;--line:#d9dfed}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--text)}.app-shell{min-height:100vh;max-width:480px;margin:0 auto;padding:16px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.back-btn{border:1px solid #dbcdb8;background:#f7f3ed;color:#7a633f;padding:10px 14px;border-radius:16px;font-weight:700}.brand{font-size:26px;font-weight:800;letter-spacing:1px;text-align:center;flex:1}.home-wrap{display:flex;flex-direction:column;gap:16px}.hero-card,.teacher-card{background:var(--card);border:2px solid var(--line);border-radius:28px;padding:20px;box-shadow:0 8px 24px #1f2a440d}.sub,.teacher-sub{color:var(--muted)}.grid{display:grid;grid-template-columns:1fr;gap:14px}.home-card{background:var(--card);border:2px solid var(--line);border-radius:24px;padding:18px;text-align:right}.home-card .emoji{font-size:28px;margin-bottom:8px}.home-card .title,.teacher-title{font-size:28px;font-weight:800}.home-card .desc{color:var(--muted);margin-top:6px}.teacher-head{display:flex;justify-content:space-between;align-items:center}.teacher-badge{width:72px;height:72px;border-radius:22px;background:#edf1fb;display:flex;align-items:center;justify-content:center;font-size:30px}.teacher-page{display:flex;flex-direction:column;gap:16px}.chat-box{min-height:320px;background:transparent;display:flex;flex-direction:column;gap:12px}.msg-row{display:flex}.msg-row.assistant{justify-content:flex-start}.msg-row.user{justify-content:flex-end}.bubble{background:#fff;border:2px solid var(--line);padding:14px 16px;border-radius:22px;max-width:82%;line-height:1.5}.msg-row.user .bubble{background:var(--primary);color:#fff;border-color:var(--primary)}.composer{background:var(--card);border:2px solid var(--line);border-radius:28px;padding:16px}.action-row{display:flex;gap:10px;margin-bottom:12px}.round-btn{width:58px;height:58px;border-radius:18px;border:2px solid var(--line);background:#f6f8fc;font-size:26px}.input-row{display:flex;gap:10px}.input-row input{flex:1;border:2px solid var(--line);border-radius:18px;padding:14px;font-size:18px;background:#f8f9fd}.input-row button{border:none;background:var(--primary);color:#fff;border-radius:18px;padding:14px 18px;font-size:18px;font-weight:700}.hint{margin-top:10px;color:var(--muted);font-size:13px}.error-box{background:#fff2f2;border:1px solid #f1b4b4;color:#9a2d2d;padding:12px 14px;border-radius:14px}
