:root{--navy: #16294d;--navy-soft: #243b66;--bg: #f6f8fc;--card: #ffffff;--text: #1c2333;--muted: #68768f;--accent: #2f7cf6;--good: #2e9e5b;--warn: #c25400;--radius: 18px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{max-width:430px;margin:0 auto;min-height:100vh;padding:16px 16px 96px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 2px 14px}.iconbtn{border:1px solid #d5dcea;background:#fff;border-radius:10px;min-width:32px;height:32px;font-size:16px;font-weight:800;color:var(--navy);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#16294d73;z-index:1000}.drawer{width:min(320px,85vw);height:100%;background:#fff;padding:16px;overflow-y:auto;box-shadow:2px 0 16px #00000026}.drawer-link{display:block;padding:10px 4px;font-weight:700;color:var(--navy);text-decoration:none;border-bottom:1px solid #eef1f6}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;color:var(--navy);text-decoration:none}.brand img{width:34px;height:34px;border-radius:10px}.brand small{display:block;font-size:11px;font-weight:500;color:var(--muted)}.lang-toggle{display:flex;gap:6px}.lang-toggle button{border:1px solid #d5dcea;background:#fff;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;cursor:pointer;color:var(--muted)}.lang-toggle button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.card{background:var(--card);border-radius:var(--radius);padding:18px;margin-bottom:14px;box-shadow:0 2px 12px #16294d0f}.card h1{font-size:26px;margin:0 0 8px;color:var(--navy)}.card h2{font-size:18px;margin:0 0 8px;color:var(--navy)}.card p{color:var(--muted);line-height:1.55;margin:6px 0}.btn{display:block;width:100%;border:0;border-radius:14px;padding:14px;font-size:16px;font-weight:700;background:var(--accent);color:#fff;cursor:pointer;text-align:center;text-decoration:none}.btn.secondary{background:#e8eef7;color:var(--navy)}.btn:disabled{opacity:.55;cursor:default}.progressbar{height:10px;border-radius:999px;background:#e5eaf3;overflow:hidden;margin:10px 0}.progressbar>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--good));border-radius:999px}.row{display:flex;align-items:center;gap:10px}.grow{flex:1}.muted{color:var(--muted);font-size:14px}.chapter-row{display:flex;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid #eef1f6;text-decoration:none;color:inherit}.chapter-row:last-child{border-bottom:0}.badge{min-width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;background:#e8eef7;color:var(--navy)}.badge.done{background:var(--good);color:#fff}.badge.current{background:var(--navy);color:#fff}.chapter-row.done{background:#f0faf4;border-left:3px solid var(--good);border-radius:0 12px 12px 0}.error{background:#fdeeee;color:#9c2b2b;border-radius:12px;padding:12px 14px;margin-bottom:14px}.dropzone{border:2px dashed #c4cfdf;border-radius:var(--radius);padding:28px 16px;text-align:center;color:var(--muted);background:#fbfcff;cursor:pointer}.tabs{display:flex;gap:8px;margin:12px 0}.tabs button{flex:1;border:0;border-radius:12px;padding:10px;font-weight:700;background:#e8eef7;color:var(--navy);cursor:pointer}.tabs button.active{background:var(--navy);color:#fff}ul.tidy{padding-left:20px;margin:8px 0;color:var(--text)}ul.tidy li{margin:4px 0;line-height:1.5}.takeaway{background:#fff8e8;border-radius:12px;padding:12px 14px;margin-top:12px}.material-card{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid #eef1f6;color:inherit}.material-card:last-child{border-bottom:0}.material-cover{width:72px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0}.material-cover.placeholder{background:linear-gradient(135deg,#e8eef7,#d5dcea);display:flex;align-items:center;justify-content:center;font-size:24px}.material-info{display:flex;flex-direction:column;gap:2px;min-width:0}.material-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
