:root { --ink:#1d2a3a; --muted:#637084; --paper:#f8f5ee; --accent:#1c796b; --accent-soft:#dff3ed; --line:#dbe2e8; --card:#fff; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; }.login-button { display:inline-flex; justify-content:center; align-items:center; margin-top:18px; padding:14px 18px; border-radius:11px; background:var(--accent); color:white; font-weight:750; text-decoration:none; }
header { max-width:1080px; margin:auto; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; }
.brand { text-decoration:none; color:var(--ink); font-size:22px; font-weight:800; letter-spacing:-.03em; }.brand span { color:var(--accent); }
.shell { min-height:100vh; }.intro,.lesson,.login-card { max-width:1024px; margin:26px auto 72px; padding:0 28px; }
.login-card { max-width:540px; margin-top:10vh; padding:42px; background:var(--card); border:1px solid var(--line); border-radius:24px; box-shadow:0 18px 55px #273b5514; }
h1 { font-size:clamp(32px,5vw,54px); line-height:1.05; letter-spacing:-.05em; margin:8px 0 14px; }h2 { font-size:28px; margin:52px 0 8px; }h3 { margin:14px 0 8px; font-size:21px; letter-spacing:-.02em; }.lead { color:var(--muted); font-size:18px; line-height:1.55; max-width:720px; }.eyebrow { color:var(--accent); font-weight:750; letter-spacing:.08em; text-transform:uppercase; font-size:12px; }.stack { display:grid; gap:16px; margin-top:28px; }label { display:grid; gap:7px; font-size:14px; font-weight:650; }input { width:100%; padding:14px 15px; color:var(--ink); border:1px solid #b8c5cf; border-radius:11px; font:inherit; }input:focus { outline:3px solid #bde9df; border-color:var(--accent); }button { border:0; border-radius:11px; padding:14px 18px; background:var(--accent); color:white; font:inherit; font-weight:750; cursor:pointer; }button:hover { filter:brightness(.94); }button:disabled { opacity:.55; cursor:default; }.text-button { padding:7px; background:transparent; color:var(--accent); }.message { min-height:22px; color:var(--muted); }.hidden { display:none; }.topic-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; }.topic-card { color:inherit; text-decoration:none; border:1px solid var(--line); background:var(--card); border-radius:18px; padding:22px; transition:transform .16s,box-shadow .16s; }.topic-card:hover { transform:translateY(-3px); box-shadow:0 12px 25px #273b5512; }.topic-card p { min-height:70px; color:var(--muted); line-height:1.45; }.card-top { display:flex; justify-content:space-between; color:var(--accent); font-size:13px; font-weight:750; }.progress { height:7px; background:#e7ecef; border-radius:99px; overflow:hidden; }.progress i { display:block; height:100%; background:var(--accent); border-radius:inherit; }.open { display:inline-block; margin-top:18px; color:var(--accent); font-weight:750; }.back { color:var(--accent); font-weight:750; text-decoration:none; }.tasks { display:grid; gap:13px; margin-top:32px; }.task { display:grid; grid-template-columns:38px 1fr; gap:16px; padding:21px; background:var(--card); border:1px solid var(--line); border-radius:16px; }.task.solved { border-color:#86d7c5; background:#f5fffc; }.task-number { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#edf1f4; color:var(--muted); font-weight:800; }.solved .task-number { background:var(--accent); color:white; }.task p { margin:4px 0 17px; line-height:1.55; }.answer-form { display:grid; grid-template-columns:minmax(0,260px) auto 1fr; gap:9px; align-items:center; }.answer-form button { padding:12px 16px; }.answer-message { color:var(--muted); font-size:14px; }.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }@media(max-width:620px){ header,.intro,.lesson { padding-left:18px;padding-right:18px; }.login-card { margin:20px 18px; padding:28px; }.answer-form { grid-template-columns:1fr auto; }.answer-message { grid-column:1/-1; }.task { padding:16px; } }
