:root{--ink:#141a32;--muted:#7d8499;--blue:#4a62e8;--blue-dark:#253aaf;--lavender:#eef0ff;--paper:#f7f8fc;--line:#e8eaf2;--card:#fff;--orange:#ff9f57;--green:#35bf96;--red:#ef6f74;--shadow:0 14px 40px rgba(28,40,96,.075)}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.app-shell{max-width:520px;min-height:100dvh;margin:auto;background:var(--paper);position:relative;box-shadow:0 0 90px rgba(28,40,96,.08)}#app{padding:0 22px 120px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.23;letter-spacing:-1.1px}h2{font-size:22px;line-height:1.25;letter-spacing:-.7px}h3{font-size:16px;line-height:1.3;letter-spacing:-.35px}.muted{color:var(--muted)}.tiny{font-size:11px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.45px;text-transform:uppercase;color:#8291de}.topbar{display:flex;align-items:center;justify-content:space-between;padding:27px 0 25px}.brand{display:flex;align-items:center;gap:9px;font-size:21px;font-weight:800;letter-spacing:-1px}.brand-mark{width:30px;height:30px;background:#536aea;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:17px;font-weight:800;box-shadow:0 6px 14px rgba(74,98,232,.23)}.avatar{height:40px;width:40px;border:2px solid white;box-shadow:0 3px 14px #d9dded;border-radius:50%;background:#dfe3ff;color:#394dc0;display:grid;place-items:center;font-weight:800;font-size:17px}.icon-button{height:40px;width:40px;border:1px solid var(--line);background:#fff;border-radius:13px;display:grid;place-items:center;color:var(--ink);font-size:18px}.header-actions{display:flex;gap:10px}.welcome{font-size:13px;color:var(--muted);font-weight:600;margin-bottom:5px}.intro{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.intro h1{margin:0}.date-pill{background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 12px;font-size:11px;font-weight:800;color:#717a92;white-space:nowrap}
.hero{position:relative;overflow:hidden;background:linear-gradient(118deg,#374bd1,#596ff2 64%,#7689fc);border-radius:26px;color:#fff;padding:27px 25px 24px;min-height:207px;box-shadow:0 17px 35px rgba(75,97,219,.23)}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.18)}.hero:before{height:245px;width:245px;right:-70px;top:-70px;box-shadow:0 0 0 28px rgba(255,255,255,.05),0 0 0 58px rgba(255,255,255,.04)}.hero:after{height:95px;width:95px;right:53px;bottom:-53px}.hero-inner{position:relative;z-index:1}.hero .eyebrow{color:#cdd4ff}.hero h2{max-width:260px;font-size:25px;margin:11px 0 8px}.hero p{font-size:12px;line-height:1.6;color:#dce2ff;max-width:260px;margin-bottom:19px}.hero-badge{position:absolute;right:9px;top:58px;font-size:66px;transform:rotate(13deg);filter:drop-shadow(0 12px 12px rgba(27,37,130,.27))}.hero-btn{border:0;background:#fff;border-radius:12px;color:#3345b8;padding:11px 17px;font-size:12px;font-weight:800;box-shadow:0 8px 18px rgba(16,24,99,.15)}.hero-btn span{margin-left:12px;font-size:16px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:27px 0 15px}.section-head h2{font-size:18px;margin:0}.text-link{border:0;background:transparent;color:var(--blue);font-size:12px;font-weight:800;padding:6px 0}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{background:var(--card);border:1px solid #eef0f6;border-radius:18px;padding:15px 13px 14px;min-height:117px;box-shadow:var(--shadow)}.stat-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:15px;margin-bottom:11px}.stat-icon.purple{background:#eef0ff}.stat-icon.orange{background:#fff0e5}.stat-icon.mint{background:#e1f7ef}.stat-value{font-size:21px;font-weight:800;line-height:1}.stat-label{font-size:10px;color:var(--muted);font-weight:700;margin-top:6px;line-height:1.3}.daily-card{background:#fff;border:1px solid #eef0f6;border-radius:20px;padding:17px 18px;margin-top:13px;box-shadow:var(--shadow)}.daily-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.daily-top strong{font-size:13px}.daily-top span{font-size:11px;color:var(--muted);font-weight:800}.progress-track{height:8px;border-radius:99px;background:#ecedf6;overflow:hidden;margin-top:13px}.progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#5e72f2,#9aa7ff);min-width:0}.topic-card{background:#fff;border:1px solid #eef0f6;border-radius:18px;padding:16px 17px;box-shadow:var(--shadow);display:flex;align-items:center;gap:14px;margin-bottom:10px}.topic-symbol{width:42px;height:42px;border-radius:13px;background:#f1f3ff;color:#5366d7;display:grid;place-items:center;font-size:20px;font-weight:800;flex:0 0 auto}.topic-info{flex:1;min-width:0}.topic-info strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-info small{color:var(--muted);font-size:10px;font-weight:700}.topic-percent{font-size:13px;font-weight:800;color:var(--blue)}.topic-percent.low{color:var(--red)}.topic-percent.mid{color:#e9a03f}.micro-track{height:4px;background:#edf0f8;border-radius:99px;margin-top:8px;overflow:hidden}.micro-track span{display:block;height:100%;background:var(--blue);border-radius:99px}.topic-card .micro-track{max-width:165px}
.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);display:flex;justify-content:space-around;background:#fff;border-top:1px solid #ecedf3;padding:11px 8px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px rgba(20,30,70,.035)}.bottom-nav[hidden]{display:none}.nav-item{border:0;background:none;color:#a1a7b9;min-width:65px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;font-weight:800}.nav-item svg{height:21px;width:21px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.nav-item.active{color:var(--blue)}.nav-item.active:before{content:"";position:absolute;top:0;width:22px;height:3px;border-radius:0 0 5px 5px;background:var(--blue)}
.page-head{padding:24px 0 18px}.page-head .eyebrow{margin-bottom:8px}.page-head h1{margin-bottom:8px}.page-head p{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.stack{display:grid;gap:13px}.surface{background:#fff;border:1px solid #edf0f7;border-radius:22px;padding:20px;box-shadow:var(--shadow)}.surface-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.surface-head h3{margin:0}.pill{border-radius:99px;padding:6px 9px;font-size:10px;font-weight:800;background:#eef0ff;color:#5669d9}.pill.green{background:#e5f8f2;color:#20a87b}.pill.orange{background:#fff0e4;color:#d78535}.primary{width:100%;border:0;background:var(--blue);color:white;border-radius:14px;padding:15px 18px;font-size:13px;font-weight:800;box-shadow:0 9px 20px rgba(74,98,232,.22)}.primary:hover{background:var(--blue-dark)}.secondary{width:100%;border:1px solid #dce1f6;background:#f7f8ff;color:var(--blue);border-radius:14px;padding:14px 18px;font-size:13px;font-weight:800}.ghost{border:0;background:transparent;color:var(--muted);padding:11px;font-size:12px;font-weight:800}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.feature-card{background:linear-gradient(130deg,#fff,#f7f8ff);border:1px solid #e6eaff;border-radius:22px;padding:21px;position:relative;overflow:hidden}.feature-card h3{font-size:17px;margin:8px 0}.feature-card p{color:var(--muted);font-size:12px;line-height:1.65;max-width:300px}.feature-icon{font-size:28px}.feature-card .primary{margin-top:8px}.topic-picker{display:grid;grid-template-columns:1fr 1fr;gap:9px}.topic-choice{border:1px solid #e5e8f2;border-radius:13px;background:#fff;padding:11px;text-align:left;font-size:11px;font-weight:800;color:#546078;min-height:57px}.topic-choice.active{color:var(--blue);border-color:#8d9bf1;background:#f1f3ff}.topic-choice span{display:block;font-size:17px;margin-bottom:3px}.task-count{display:flex;align-items:center;justify-content:space-between;margin:10px 0 20px}.task-count .pill{padding:8px 11px}.question-card{background:#fff;border:1px solid #e9ebf4;border-radius:23px;padding:24px 22px;box-shadow:var(--shadow)}.question-card h2{font-size:19px;line-height:1.55;margin:14px 0 20px;letter-spacing:-.4px;white-space:pre-line}.answer-label{display:block;font-size:11px;font-weight:800;color:#59627b;margin-bottom:8px}.answer-input,.text-input{width:100%;border:1.5px solid #e2e6f1;background:#f9faff;border-radius:13px;padding:13px 15px;color:var(--ink);outline:0;font-size:15px;font-weight:700}.answer-input:focus,.text-input:focus{border-color:#7083ec;background:#fff}.text-input{font-size:13px}.task-actions{display:flex;justify-content:space-between;margin-top:15px}.task-actions button{border:0;background:transparent;color:var(--blue);font-size:11px;font-weight:800}.task-actions button:last-child{color:#8991a6}.hint-box{margin:14px 0 0;background:#fff8e9;border:1px solid #f7e7bd;color:#8b641f;border-radius:13px;padding:13px;font-size:12px;line-height:1.6}.result{border-radius:19px;padding:20px;background:#eaf8f1;border:1px solid #d4f1e2;margin-bottom:15px}.result.wrong{background:#fff0ef;border-color:#ffdeda}.result h2{font-size:20px;margin:0 0 8px}.result p{font-size:12px;line-height:1.6;margin:0}.solution{background:#fff;border:1px solid #eaedf5;border-radius:17px;padding:17px;margin-bottom:15px}.solution strong{font-size:12px}.solution p{font-size:12px;line-height:1.75;white-space:pre-line;margin:7px 0 0;color:#5a647d}.topic-list .topic-card{box-shadow:none}.report-highlight{display:grid;grid-template-columns:1fr 1fr;gap:11px}.metric-box{background:#f8f9fe;border-radius:14px;padding:15px}.metric-box strong{display:block;font-size:23px;line-height:1.2}.metric-box span{font-size:11px;color:var(--muted);font-weight:700}.level-banner{background:linear-gradient(120deg,#2b3d9d,#596dea);color:#fff;border-radius:20px;padding:21px;display:flex;justify-content:space-between;align-items:center}.level-banner small{color:#cdd5ff;font-size:11px}.level-banner strong{display:block;font-size:17px;margin:5px 0}.level-banner .orb{font-size:40px}.achievement{display:inline-flex;padding:9px 11px;border-radius:10px;background:#f5f6fc;color:#59637b;font-size:11px;font-weight:800;margin:4px 5px 4px 0}.code-box{border:1.5px dashed #b8c1f4;background:#f7f8ff;border-radius:16px;text-align:center;padding:19px;font-size:24px;font-weight:800;letter-spacing:4px;color:#465bd0;margin:15px 0}.switch-row{display:flex;justify-content:space-between;align-items:center}.switch{width:42px;height:25px;background:#ccd2e1;border:0;border-radius:20px;padding:3px;transition:.2s}.switch:after{content:"";display:block;width:19px;height:19px;border-radius:50%;background:white;box-shadow:0 2px 3px #0002;transition:.2s}.switch.on{background:var(--blue)}.switch.on:after{transform:translateX(17px)}.plan-text{white-space:pre-line;font-size:12px;color:#5b647b;line-height:1.9}.empty-state{text-align:center;padding:25px 17px}.empty-state .emoji{font-size:42px;margin-bottom:12px}.empty-state h3{margin-bottom:7px}.empty-state p{font-size:12px;color:var(--muted);line-height:1.6}.onboarding{min-height:100dvh;display:flex;flex-direction:column;padding-top:35px}.onboard-art{height:270px;position:relative;margin:28px 0 17px;border-radius:30px;background:radial-gradient(circle at 67% 35%,#d6dcff 0 22%,transparent 23%),linear-gradient(145deg,#e7eaff,#f6f7ff);overflow:hidden;display:grid;place-items:center}.onboard-art:before,.onboard-art:after{content:"";position:absolute;border:1px solid #bbc5fc;border-radius:50%;width:220px;height:220px}.onboard-art:before{left:-105px;top:-105px}.onboard-art:after{right:-80px;bottom:-115px}.art-book{position:relative;z-index:1;width:145px;height:160px;border-radius:17px;background:#fff;transform:rotate(-11deg);box-shadow:0 23px 35px #9faaf87a;padding:21px;font-weight:800;color:#5266d8}.art-book:after{content:"x² + y²";position:absolute;top:73px;left:26px;font-size:24px}.art-bubble{position:absolute;z-index:2;background:#ffb36f;color:white;border-radius:15px;padding:11px;font-size:20px;top:45px;right:76px;box-shadow:0 10px 20px #e7aa7c80;transform:rotate(12deg)}.onboarding h1{font-size:29px;margin:5px 0 12px}.onboarding p{font-size:13px;line-height:1.75;color:var(--muted)}.role-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-bottom:20px}.role-card{background:#fff;border:1px solid #e6e9f4;border-radius:19px;padding:16px 13px;text-align:left;box-shadow:var(--shadow)}.role-card span{font-size:27px;display:block;margin-bottom:12px}.role-card strong{font-size:12px}.role-card small{display:block;color:var(--muted);font-size:10px;margin-top:5px;line-height:1.5}.toast{position:fixed;left:50%;bottom:94px;transform:translate(-50%,20px);background:#1e294f;color:#fff;border-radius:13px;padding:11px 16px;font-size:12px;font-weight:700;max-width:85%;opacity:0;pointer-events:none;transition:.2s;z-index:20;box-shadow:0 10px 35px #111b4055}.toast.show{opacity:1;transform:translate(-50%,0)}.loader{display:flex;align-items:center;justify-content:center;min-height:65vh;flex-direction:column;gap:15px;color:var(--muted);font-size:12px}.spinner{width:30px;height:30px;border:3px solid #dfe3f8;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:600px){body{background:linear-gradient(130deg,#e9ecfa,#f8f9fe)}.app-shell{min-height:100vh}#app{padding-left:30px;padding-right:30px}}

/* A small, achievable daily goal makes the next action clear. */
.brand-subtitle{color:#8390d4;font-size:10px;letter-spacing:0;margin-left:2px}
.theme-button{font-size:18px;box-shadow:var(--shadow)}
.mission-card{position:relative;overflow:hidden;border-radius:27px;padding:24px;background:radial-gradient(circle at 100% 0%,#7285ff 0%,transparent 48%),linear-gradient(135deg,#293bb5,#5269e8);color:#fff;box-shadow:0 18px 38px rgba(60,77,197,.24)}
.mission-card:after{content:"✦";position:absolute;right:23px;top:37px;font-size:58px;color:#fff2;transform:rotate(-12deg);pointer-events:none}
.mission-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px;position:relative;z-index:1}
.mission-kicker{font-size:10px;font-weight:800;letter-spacing:1.5px;color:#d1d8ff}
.mission-count{border:1px solid #ffffff66;background:#ffffff1a;border-radius:99px;padding:7px 12px;font-size:12px;font-weight:800}
.mission-card h2{position:relative;z-index:1;max-width:300px;font-size:25px;line-height:1.16;margin:0 0 9px}
.mission-card p{position:relative;z-index:1;color:#e6eaff;font-size:12px;line-height:1.6;max-width:315px;margin-bottom:20px}
.mission-dots{display:flex;gap:7px;margin-bottom:16px}.mission-dots span{height:6px;flex:1;border-radius:99px;background:#ffffff55}.mission-dots span.done{background:#a8ffd9}
.mission-button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-radius:14px;background:#fff;color:#2f43b3;padding:14px 16px;font-size:13px;font-weight:800;box-shadow:0 8px 24px #1e2e9255}
.mission-button span{font-size:18px}.mission-card small{display:block;margin-top:10px;color:#d2dbff;font-size:10px;text-align:center}
.mission-button:focus-visible,.theme-button:focus-visible,.nav-item:focus-visible{outline:3px solid #ffcc72;outline-offset:3px}

:root[data-theme="dark"]{color-scheme:dark;--ink:#f1f3ff;--muted:#a7b1ce;--blue:#a6b5ff;--blue-dark:#8799f4;--lavender:#252c4b;--paper:#101424;--line:#313956;--card:#1b2238;--orange:#ffaf69;--green:#58d9ac;--red:#ff8b97;--shadow:0 14px 35px rgba(0,0,0,.16)}
[data-theme="dark"] body{background:#101424}[data-theme="dark"] .app-shell{box-shadow:none}
[data-theme="dark"] .avatar{background:#303b70;border-color:#303b70;color:#eff1ff;box-shadow:none}
[data-theme="dark"] .date-pill,[data-theme="dark"] .icon-button,[data-theme="dark"] .stat-card,[data-theme="dark"] .daily-card,[data-theme="dark"] .topic-card,[data-theme="dark"] .surface,[data-theme="dark"] .question-card,[data-theme="dark"] .solution,[data-theme="dark"] .role-card{background:var(--card);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] .bottom-nav{background:#181e32;border-color:var(--line);box-shadow:0 -10px 25px #0002}
[data-theme="dark"] .nav-item{color:#8994b3}[data-theme="dark"] .nav-item.active{color:var(--blue)}
[data-theme="dark"] .topic-symbol,[data-theme="dark"] .pill,[data-theme="dark"] .stat-icon.purple{background:#303a67;color:#bdc7ff}
[data-theme="dark"] .stat-icon.orange,[data-theme="dark"] .pill.orange{background:#513a2a;color:#ffbe86}
[data-theme="dark"] .stat-icon.mint,[data-theme="dark"] .pill.green{background:#244e44;color:#8befc8}
[data-theme="dark"] .progress-track,[data-theme="dark"] .micro-track{background:#323a58}
[data-theme="dark"] .progress-fill{background:linear-gradient(90deg,#8094ff,#bb9eff)}
[data-theme="dark"] .feature-card{background:linear-gradient(130deg,#202844,#1a2035);border-color:var(--line)}
[data-theme="dark"] .topic-choice{background:#252d47;border-color:var(--line);color:#d5dcf6}
[data-theme="dark"] .topic-choice.active{background:#343f75;border-color:#8b9cf5;color:#fff}
[data-theme="dark"] .answer-input,[data-theme="dark"] .text-input{background:#161c2d;border-color:#394360;color:#f4f6ff}
[data-theme="dark"] .answer-input:focus,[data-theme="dark"] .text-input:focus{background:#1c2440;border-color:#a6b5ff}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:#8691b0}
[data-theme="dark"] .secondary,[data-theme="dark"] .code-box{background:#293354;border-color:#465486;color:#c0cbff}
[data-theme="dark"] .primary{background:#6278f0;color:#fff}[data-theme="dark"] .primary:hover{background:#7890ff}
[data-theme="dark"] .metric-box,[data-theme="dark"] .achievement{background:#27304b;color:#e2e8ff}
[data-theme="dark"] .solution p,[data-theme="dark"] .plan-text,[data-theme="dark"] .answer-label{color:#b9c3df}
[data-theme="dark"] .hint-box{background:#413721;border-color:#80663d;color:#ffe0a3}
[data-theme="dark"] .result{background:#214036;border-color:#376e5c}[data-theme="dark"] .result.wrong{background:#492d35;border-color:#774655}
[data-theme="dark"] .onboard-art{background:radial-gradient(circle at 67% 35%,#404e8f 0 22%,transparent 23%),linear-gradient(145deg,#222b4a,#323e68)}
[data-theme="dark"] .onboard-art:before,[data-theme="dark"] .onboard-art:after{border-color:#6477b8}
[data-theme="dark"] .art-book{background:#f4f5ff;color:#5266d8}
[data-theme="dark"] .brand-subtitle{color:#aab9ff}
@media(min-width:600px){[data-theme="dark"] body{background:linear-gradient(130deg,#0b1021,#1a2341)}}
.onboarding-header{display:flex;align-items:center;justify-content:space-between}
.session-complete{display:grid;gap:5px;background:#e5f8f2;border:1px solid #a8ebd1;color:#166d53;border-radius:16px;padding:15px;margin-bottom:15px}
.session-complete strong{font-size:13px}.session-complete span{font-size:11px;line-height:1.5}
[data-theme="dark"] .session-complete{background:#21463b;border-color:#38785e;color:#a8f0ce}
/* Formula and route details */
.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.math-power{font-size:.65em;line-height:0;vertical-align:super;margin-left:1px}
.math-sub{font-size:.64em;line-height:0;vertical-align:sub;margin-left:1px}
.math-frac{display:inline-flex;vertical-align:middle;flex-direction:column;align-items:center;line-height:1.05;font-size:.84em;margin:0 .16em}
.math-frac>span:first-child{border-bottom:1.5px solid currentColor;min-width:1.4em;text-align:center;padding:0 .15em .11em}
.math-frac>span:last-child{padding:.11em .15em 0}
.plan-day{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.plan-day.today{border-color:#8999f3;box-shadow:0 10px 28px #6077e828}
.plan-day summary{list-style:none;display:flex;align-items:center;gap:13px;padding:15px;cursor:pointer}
.plan-day summary::-webkit-details-marker{display:none}
.plan-number{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;background:var(--lavender);color:var(--blue);border-radius:12px;font-size:15px;font-weight:800}
.plan-day.today .plan-number{background:#6078e9;color:#fff}
.plan-day-title{display:grid;gap:3px;min-width:0;flex:1}.plan-day-title small{font-size:10px;color:var(--blue);font-weight:800;letter-spacing:1px}.plan-day-title strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-chevron{color:var(--muted);font-size:18px}.plan-day[open] .plan-chevron{transform:rotate(180deg)}
.plan-day>p{font-size:12px;line-height:1.7;color:var(--muted);margin:0;padding:0 16px 13px 66px}
.plan-day>.secondary{display:block;width:calc(100% - 30px);margin:0 15px 15px}

/* Motion: каждая смена экрана должна читаться как шаг вперёд, а не «дёрганье». */
@keyframes rise{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:none}}
@keyframes grow{from{width:0}}
@keyframes pop{0%{opacity:0;transform:scale(.92)}55%{transform:scale(1.025)}100%{opacity:1;transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}18%{transform:translateX(-8px)}38%{transform:translateX(7px)}58%{transform:translateX(-5px)}78%{transform:translateX(3px)}}
@keyframes stamp{0%{opacity:0;transform:scale(.4) rotate(-24deg)}60%{transform:scale(1.14) rotate(6deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
#app>*{animation:rise .34s cubic-bezier(.2,.75,.3,1) both}
#app>*:nth-child(2){animation-delay:.04s}
#app>*:nth-child(3){animation-delay:.08s}
#app>*:nth-child(4){animation-delay:.12s}
#app>*:nth-child(n+5){animation-delay:.16s}
.progress-fill,.micro-track span{animation:grow .55s cubic-bezier(.25,.8,.35,1) both}
.result{animation:pop .42s cubic-bezier(.2,.8,.3,1.25) both}
.result.wrong{animation:pop .42s cubic-bezier(.2,.8,.3,1.25) both,shake .5s ease .34s both}
.hint-box{animation:rise .3s ease both}
.achievement{animation:pop .4s cubic-bezier(.2,.8,.3,1.3) both}
.session-complete{animation:pop .45s cubic-bezier(.2,.8,.3,1.25) both}
.diagnosis-hero{background:radial-gradient(circle at 88% 6%,#7f92ff 0,transparent 46%),linear-gradient(135deg,#2b3cb0,#5469e6);border-radius:26px;color:#fff;padding:25px;text-align:center;box-shadow:0 18px 38px rgba(56,73,190,.24)}
.diagnosis-score{display:inline-grid;place-items:center;width:104px;height:104px;border-radius:50%;border:5px solid #ffffff4d;background:#ffffff1f;font-size:31px;font-weight:800;line-height:1;animation:pop .5s cubic-bezier(.2,.8,.3,1.3) both}
.diagnosis-score small{display:block;font-size:11px;font-weight:800;color:#ccd6ff;letter-spacing:1px}
.diagnosis-hero h2{margin:14px 0 6px;font-size:21px}
.diagnosis-hero p{color:#dde4ff;font-size:12px;line-height:1.65;margin:0 auto 4px;max-width:300px}
.check-list{display:grid;gap:8px}
.check-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:12px 14px;box-shadow:var(--shadow);animation:rise .3s ease both}
.check-row:nth-child(2n){animation-delay:.05s}
.check-row:nth-child(3n){animation-delay:.1s}
.check-mark{width:26px;height:26px;flex:0 0 26px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;background:#e5f8f2;color:#1e9c73;animation:stamp .45s cubic-bezier(.2,.8,.3,1.4) both}
.check-row.fail .check-mark{background:#ffedec;color:#d9555f}
.check-row strong{font-size:12px;line-height:1.35}
.check-row small{display:block;color:var(--muted);font-size:10px;font-weight:700;margin-top:2px}
.ptr{position:fixed;z-index:30;top:12px;left:50%;transform:translateX(-50%) scale(.6);width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--blue);font-size:17px;box-shadow:0 10px 26px rgba(20,30,70,.14);opacity:0;pointer-events:none;transition:opacity .18s}
.ptr span{display:block}
.ptr.refreshing{opacity:1}
.ptr.refreshing span{animation:spin .9s linear infinite}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* Exam section */
.exam-hero{background:radial-gradient(circle at 88% 6%,#7f92ff 0,transparent 46%),linear-gradient(135deg,#2b3cb0,#5469e6);border-radius:26px;color:#fff;padding:25px;text-align:center;box-shadow:0 18px 38px rgba(56,73,190,.24)}
.exam-hero h3{margin:0 0 6px;font-size:18px}
.exam-hero p{color:#dde4ff;font-size:12px;line-height:1.65;margin:0 auto 4px}
.exam-hero .exam-score{display:inline-grid;place-items:center;background:#ffffff1f;border:4px solid #ffffff4d;border-radius:50%;width:80px;height:80px;font-size:22px;font-weight:800}
.exam-hero .secondary{margin-top:12px;width:auto;display:inline-block;padding:10px 20px}
[data-theme="dark"] .exam-hero{background:radial-gradient(circle at 88% 6%,#304080 0,transparent 46%),linear-gradient(135deg,#182038,#253050)}
[data-theme="dark"] .exam-hero h3{color:#cdd4ff}
[data-theme="dark"] .exam-hero p{color:#a7b1ce}
[data-theme="dark"] .exam-hero .exam-score{border-color:#ffffff22;background:#ffffff12}
/* Nav: шесть вкладок у ученика не должны ломать нижнюю панель на узких экранах. */
.bottom-nav.dense .nav-item{min-width:0;flex:1 1 0;font-size:9px;letter-spacing:-.2px}
.bottom-nav.dense .nav-item span{overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Short lessons: a clear path from a rule to an independent answer. */
.home-lesson{width:100%;display:flex;align-items:center;gap:13px;text-align:left;margin-top:14px;padding:15px;background:var(--card);border:1px solid var(--line);border-radius:19px;color:var(--ink);box-shadow:var(--shadow)}
.home-lesson-icon{width:45px;height:45px;display:grid;place-items:center;flex:0 0 45px;border-radius:14px;background:var(--lavender);font-size:23px}
.home-lesson span:nth-child(2){display:grid;gap:3px;flex:1}.home-lesson small{font-size:9px;font-weight:800;letter-spacing:1.1px;color:var(--blue)}.home-lesson strong{font-size:14px}.home-lesson em{font-size:11px;color:var(--muted);font-style:normal}.home-lesson b{color:var(--blue);font-size:20px}
.lesson-intro{display:flex;gap:14px;align-items:center;background:linear-gradient(125deg,#3449bc,#6779eb);border-radius:21px;color:white;padding:18px;margin-bottom:17px;box-shadow:0 13px 28px #5266d733}.lesson-intro-icon{font-size:31px}.lesson-intro strong{font-size:14px}.lesson-intro p{font-size:11px;line-height:1.55;margin:4px 0 0;color:#e4e9ff}
.lesson-grid{display:grid;gap:10px}.lesson-card{display:flex;gap:13px;align-items:center;text-align:left;width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:18px;padding:15px;box-shadow:var(--shadow)}
.lesson-index{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:13px;background:var(--lavender);color:var(--blue);font-size:14px;font-weight:800}.lesson-card.completed .lesson-index{background:#e2f7ed;color:#168b68}
.lesson-card-copy{display:grid;gap:4px}.lesson-card-copy small{font-size:10px;color:var(--muted)}.lesson-card-copy strong{font-size:14px}.lesson-card-copy em{font-size:11px;font-style:normal;color:var(--blue);font-weight:800}
.lesson-back{padding:5px 0;color:var(--blue)}.lesson-steps{display:flex;gap:6px;margin:0 0 16px}.lesson-steps span{flex:1;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 3px;color:var(--muted);font-size:10px;font-weight:800}.lesson-steps span.active{background:var(--lavender);color:var(--blue)}
.lesson-section-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.lesson-section-title span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:var(--lavender);color:var(--blue);font-size:11px;font-weight:800}.lesson-section-title h3{margin:0}.lesson-theory p,.lesson-example p{font-size:13px;line-height:1.75;color:var(--ink);margin:8px 0 0}.lesson-example{border-color:#9bb7ed;background:linear-gradient(140deg,var(--card),var(--lavender))}.lesson-question{font-size:15px;font-weight:800;line-height:1.6}.lesson-options{display:grid;gap:8px}.lesson-option{width:100%;text-align:left;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-size:13px;font-weight:800}.lesson-option:hover,.lesson-option:focus-visible{border-color:var(--blue);outline:2px solid var(--lavender)}
.lesson-feedback{margin-top:14px;border-radius:13px;padding:13px 14px;background:#fff1e7;color:#8d5729;font-size:12px}.lesson-feedback.correct{background:#e3f7ed;color:#176d53}.lesson-feedback p{line-height:1.6;margin:5px 0 0}
[data-theme="dark"] .lesson-card.completed .lesson-index,[data-theme="dark"] .lesson-feedback.correct{background:#21483c;color:#9de8c5}[data-theme="dark"] .lesson-feedback:not(.correct){background:#523a2d;color:#ffd0a2}
.plan-day-meta{display:flex;gap:8px;padding:0 16px 12px 66px;color:var(--muted);font-size:10px;font-weight:800}.plan-day-meta span{background:var(--paper);border-radius:8px;padding:6px 8px}.plan-day-actions{display:flex;gap:7px;padding:0 15px 15px 66px}.plan-day-actions .secondary{flex:1;width:auto;margin:0;padding:9px 7px;font-size:10px}

/* Home screen inspired by the supplied visual reference. */
:root:not([data-theme="dark"]){--paper:#eff6ff;--blue:#246cf3;--blue-dark:#1458d2;--lavender:#e7f0ff;--line:#dce9f9;--muted:#6f83a3;--shadow:0 13px 35px rgba(37,91,166,.09)}
:root:not([data-theme="dark"]) .brand-mark{background:linear-gradient(145deg,#12224b,#237bfa);box-shadow:0 6px 16px #4682ee55}
.home-hero{position:relative;min-height:232px;overflow:hidden;border-radius:27px;background:radial-gradient(circle at 78% 28%,#d0e9ff 0 26%,transparent 27%),linear-gradient(145deg,#fbfdff,#dcebff);border:1px solid #dceaff;box-shadow:0 16px 34px #5b94e023;margin-bottom:13px}
.home-hero:before{content:"";position:absolute;width:150px;height:150px;border:20px solid #e8f4ff;border-radius:50%;right:-50px;top:-58px}.home-hero-copy{position:relative;z-index:2;width:62%;padding:22px 0 20px 21px}.home-hero-tag{font-size:9px;letter-spacing:1.3px;font-weight:800;color:#2b6adc}.home-hero h2{font-size:22px;line-height:1.13;margin:10px 0 8px;color:#102451}.home-hero p{font-size:11px;line-height:1.5;color:#6480a5;max-width:180px;margin:0 0 14px}.home-hero button{border:0;border-radius:11px;padding:10px 11px;background:#2770f4;color:#fff;font-size:11px;font-weight:800;box-shadow:0 8px 15px #2c75ea44}.home-hero img{position:absolute;z-index:1;height:94%;width:52%;right:-4%;bottom:0;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 13px 15px #3b80d544)}
.countdown-card{display:flex;gap:12px;align-items:center;padding:14px 15px;background:var(--card);border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow);margin-bottom:13px}.countdown-icon{font-size:24px;display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:12px;background:#e5f0ff}.countdown-card>span:nth-child(2){display:grid;gap:2px;flex:1}.countdown-card small{font-size:9px;color:#4180e8;font-weight:800;letter-spacing:1px}.countdown-card strong{font-size:19px;line-height:1.2}.countdown-card em{font-style:normal;font-size:10px;color:var(--muted)}.countdown-card button{border:0;background:var(--lavender);border-radius:9px;color:var(--blue);width:32px;height:32px;font-size:17px}
.dashboard-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.dashboard-tiles button{display:grid;justify-items:start;align-content:start;gap:5px;min-height:112px;padding:13px;border-radius:17px;border:1px solid var(--line);background:var(--card);text-align:left;color:var(--ink);box-shadow:var(--shadow)}.dashboard-tiles strong{font-size:12px}.dashboard-tiles small{font-size:10px;line-height:1.35;color:var(--muted)}.tile-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;font-size:19px;font-weight:800}.tile-icon.blue{background:#e3f1ff;color:#2784f8}.tile-icon.violet{background:#eee9ff;color:#8359ed}.tile-icon.mint{background:#dff8ed;color:#17ad7c}.tile-icon.coral{background:#ffe9eb;color:#f0677b}
[data-theme="dark"] .home-hero{background:radial-gradient(circle at 80% 25%,#263f6e 0 27%,transparent 28%),linear-gradient(145deg,#1a2a47,#243d67);border-color:#334b72}[data-theme="dark"] .home-hero:before{border-color:#2a4777}[data-theme="dark"] .home-hero h2{color:#f2f5ff}[data-theme="dark"] .home-hero p{color:#bfd1f0}[data-theme="dark"] .countdown-icon{background:#263d67}

.module-list{display:grid;gap:10px}.module-row{display:flex;gap:12px;padding:12px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}.module-row.current{background:var(--lavender);border-color:#8aa9ef}.module-row>span{display:grid;place-items:center;flex:0 0 31px;height:31px;border-radius:10px;background:var(--card);color:var(--blue);font-weight:800}.module-row div{display:grid;gap:4px}.module-row strong{font-size:12px}.module-row small{color:var(--muted);font-size:10px;line-height:1.4}
.mastery-row{display:grid;gap:7px;padding:11px 0;border-top:1px solid var(--line)}.mastery-row>div:first-child{display:flex;justify-content:space-between;gap:10px}.mastery-row strong{font-size:11px}.mastery-row small{font-size:10px;color:var(--muted);text-align:right}.mastery-row .micro-track{width:100%}
.plan-chat{display:grid;gap:8px;max-height:280px;overflow:auto;margin:14px 0}.chat-bubble{width:fit-content;max-width:88%;padding:10px 12px;background:var(--lavender);border-radius:14px 14px 14px 4px;color:var(--ink);font-size:11px;line-height:1.55}.chat-bubble.mine{justify-self:end;background:var(--blue);color:#fff;border-radius:14px 14px 4px 14px}
.set-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.set-controls label{display:grid;gap:6px;font-size:10px;font-weight:800;color:var(--muted)}.set-controls select{width:100%;min-width:0}
.lesson-clip{border-color:#8bb5ef;background:linear-gradient(135deg,var(--card),var(--lavender))}.clip-stage{min-height:185px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 12px;border-radius:17px;background:var(--card);animation:rise .36s ease both}.clip-stage small{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--blue);text-transform:uppercase}.clip-stage strong{font-size:25px;margin:9px 0;color:var(--ink)}.clip-stage p{font-size:11px;line-height:1.55;color:var(--muted);max-width:240px}.clip-cells{display:flex;gap:4px;margin:5px 0}.clip-cells i{width:17px;height:24px;border-radius:5px;background:var(--line);transition:background .3s,transform .3s}.clip-cells i.lit{background:#47b98f;transform:translateY(-4px)}.clip-triangle,.clip-balance{font-size:36px;color:var(--blue);line-height:1}.clip-controls{display:flex;gap:8px;margin-top:12px}.clip-controls button{flex:1;margin:0}.clip-controls button:disabled{opacity:.4}
.report-area{margin:8px 0 15px}.report-area>.ghost{font-size:11px;color:var(--muted);padding:8px 3px}.report-form{display:grid;gap:8px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.report-form label{font-size:11px;font-weight:800}.report-form textarea{resize:vertical}.report-form button{margin:0}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-grid .stat-card{min-height:82px}.admin-item{padding:13px 0;border-top:1px solid var(--line);display:grid;gap:6px}.admin-item small{color:var(--muted);font-size:10px}.admin-item strong{font-size:12px;line-height:1.5}.admin-item p{font-size:11px;line-height:1.6;margin:0;color:var(--ink);overflow-wrap:anywhere}.admin-item button{margin:4px 0 0}
@media(max-width:380px){.home-hero-copy{width:66%;padding-left:17px}.home-hero h2{font-size:20px}.home-hero img{width:49%;right:-6%}.dashboard-tiles button{min-height:117px}}

/* Учебный курс: карточки остаются в потоке и помещаются на узком экране. */
.tiny,.eyebrow,.clip-stage small,.home-hero-tag,.mission-kicker{font-weight:650;text-transform:none;letter-spacing:.1px;line-height:1.65}
.tiny{font-size:12px}.eyebrow{font-size:12px}.page-head h1{overflow-wrap:anywhere}.topbar{gap:12px}.header-actions{flex-shrink:0}.task-count{flex-wrap:wrap;gap:8px}.pill{white-space:normal;overflow-wrap:anywhere;max-width:100%;line-height:1.5}.question-card h2{line-height:1.7;overflow-wrap:anywhere}.math-sub{font-size:.65em;vertical-align:sub;line-height:0}.math-power{font-size:.65em;vertical-align:super;line-height:0}.math-frac{vertical-align:middle;line-height:1.25;margin:0 .12em}.math-root{display:inline-flex;align-items:center}.math-root>span{border-top:1px solid currentColor;padding:0 .1em}.surface,.question-card,.feature-card{min-width:0}.surface p{font-size:13px;line-height:1.7;color:var(--muted)}
.bottom-nav.dense .nav-item{font-size:10px;min-height:45px}.bottom-nav .nav-item{position:relative}.nav-item.active:before{top:-11px}.home-hero-copy{width:64%}.home-hero img{width:45%;right:-1%;opacity:.95}.intro{gap:12px}.intro>div:first-child{min-width:0}.date-pill{flex-shrink:0}.home-hero h2{font-size:clamp(18px,5.1vw,23px)}
.study-tabs{display:flex;gap:6px;background:var(--lavender);padding:5px;border-radius:15px;margin:15px 0}.study-tabs button{flex:1;border:0;border-radius:11px;padding:10px 7px;background:transparent;color:var(--muted);font-size:12px;font-weight:750}.study-tabs button.active{background:var(--card);color:var(--blue);box-shadow:0 2px 7px #18234a12}
.course-list{display:grid;gap:9px}.course-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:19px;background:var(--card);color:var(--ink);box-shadow:0 4px 15px #314a7c04}.course-card>span:nth-child(2){flex:1;min-width:0}.course-code{display:grid;place-items:center;min-width:44px;height:44px;border-radius:14px;background:var(--lavender);font-size:14px;font-weight:800;color:var(--blue)}.course-card strong{display:block;font-size:13px;line-height:1.5}.course-card small{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:3px}.course-card b{font-size:22px;color:var(--blue)}.course-card .micro-track{display:block;margin-top:9px}.micro-track i{display:block;height:100%;background:var(--blue);border-radius:inherit}.diagnostic-teaser{margin-bottom:17px}.diagnostic-teaser .secondary{margin-top:3px}.course-actions{display:grid;gap:10px}.common-mistake{border-color:#e6bf80;background:color-mix(in srgb,var(--card) 93%,#ffc477)}.common-mistake strong{color:#ad782e}.common-mistake p{margin:8px 0 0}.worked-example summary{cursor:pointer;font-size:13px}.worked-example>p{margin-top:16px}.worked-example .solution{margin:0;padding:12px;font-size:13px;line-height:1.9}.skill-picker{max-height:290px;overflow:auto;display:grid;gap:6px;padding:2px 3px 8px 0}.skill-picker .topic-choice{text-align:left;padding:10px 12px;line-height:1.4}.bank-list{display:grid;max-height:650px;overflow:auto;gap:4px}.bank-list>button{display:flex;align-items:center;gap:10px;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);padding:16px 0}.bank-list>button>span{color:var(--muted);min-width:20px;font-size:11px}.bank-list strong{flex:1;font-size:12px;font-weight:600;line-height:1.85}.bank-list b{color:var(--blue)}
.upgrade-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(120deg,#e9edff,#e3f4ff);border:1px solid #cedbfa;border-radius:15px;padding:12px;margin:8px 0 16px;color:#31518f}.upgrade-banner span{font-size:11px;line-height:1.6;flex:1}.upgrade-banner button{border:0;background:white;color:#315bd1;padding:9px;border-radius:9px;font-size:10px;font-weight:800;flex-shrink:0}.upgrade-card{margin-top:15px;text-align:center}.big-emoji{font-size:45px;color:var(--blue)}.upgrade-card small{display:block;margin-top:15px;color:var(--muted);font-size:11px}.remedial-button{margin:5px 0 18px}.profile-identity{display:flex;align-items:center;gap:16px;background:var(--lavender);padding:22px;border-radius:24px}.profile-identity h2{font-size:20px;margin:0 0 5px;overflow-wrap:anywhere}.profile-identity span{font-size:12px;color:var(--muted)}.profile-avatar{display:grid;place-items:center;flex:0 0 58px;height:58px;border-radius:19px;background:var(--blue);color:white;font-size:26px;font-weight:800}.profile-link{display:flex;align-items:center;text-align:left;width:100%;gap:13px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink);padding:18px}.profile-link>span:first-child{font-size:23px;color:var(--blue)}.profile-link>span:nth-child(2){flex:1;min-width:0}.profile-link strong{display:block;font-size:14px}.profile-link small{display:block;font-size:11px;margin-top:6px;line-height:1.6;color:var(--muted)}.profile-link b{color:var(--muted)}.switch-row>div{min-width:0;flex:1}.switch-row p{margin:0;max-width:240px;font-size:11px}.switch{flex-shrink:0}.tier-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tier-options button{text-align:left;border:1px solid var(--line);border-radius:15px;background:var(--paper);color:var(--ink);padding:14px 12px}.tier-options button.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:var(--lavender)}.tier-options strong{font-size:13px}.tier-options span{display:block;font-size:10px;line-height:1.8;margin-top:9px;color:var(--muted)}
.activity-chart{display:flex;align-items:end;gap:5px;height:140px;margin:15px 0 10px}.activity-chart>div{flex:1;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:end;height:100%;min-width:0}.activity-chart i{display:block;background:var(--line);width:100%;border-radius:5px 5px 2px 2px}.activity-chart i.filled{background:linear-gradient(#65a9ff,#3672ed)}.activity-chart small{font-size:8px;color:var(--muted);margin-top:8px}.skill-progress{border-top:1px solid var(--line);padding:13px 0}.skill-progress summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}.skill-progress summary>span{flex:1}.skill-progress summary strong{font-size:12px;line-height:1.5;display:block}.skill-progress summary small{font-size:10px;line-height:1.7;color:var(--muted);display:block;margin-top:4px}.skill-progress summary b{font-size:15px;color:var(--blue)}.sparkline{width:100%;height:45px;display:block;margin:12px 0 0}.sparkline.large{height:140px}.chart-dates{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:12px}.mastery-overview{height:12px;background:var(--line);border-radius:10px;overflow:hidden}.mastery-overview span{display:block;height:100%;background:linear-gradient(90deg,#38a8f8,#32c29a)}.forecast-score{font-size:44px;font-weight:800;color:var(--blue)}.forecast-score small{font-size:18px;color:var(--muted)}.archive-card{display:flex;align-items:center;gap:16px}.archive-card>div:last-child{flex:1;min-width:0}.archive-year{font-size:20px;font-weight:800;color:var(--blue);background:var(--lavender);padding:19px 11px;border-radius:17px}.archive-card h3{font-size:14px}.archive-card .secondary{display:block;font-size:11px;text-align:center;text-decoration:none;padding:11px}.archive-card p{font-size:11px}.set-controls{gap:10px}.set-controls label{min-width:0;flex:1}.set-controls select{width:100%}.plan-day-actions{flex-wrap:wrap}.plan-day-actions button{min-width:120px;flex:1}.plan-day summary{gap:9px}.plan-day-title{min-width:0;overflow-wrap:anywhere}.mastery-row{gap:12px}.mastery-row>div:first-child{min-width:0}.mastery-row strong{line-height:1.5}.toast{max-width:calc(100vw - 30px);bottom:calc(85px + env(safe-area-inset-bottom));white-space:normal}
[data-theme="dark"] .upgrade-banner{background:linear-gradient(120deg,#273452,#243947);border-color:#3b5071;color:#d2def8}[data-theme="dark"] .upgrade-banner button{background:#35496a;color:#e6eeff}
@media(max-width:360px){#app{padding-left:15px;padding-right:15px}.date-pill{padding:7px;font-size:9px}.home-hero-copy{width:68%;padding-left:15px}.home-hero img{width:39%}.course-card{padding:12px;gap:9px}.tier-options{grid-template-columns:1fr}.archive-card{gap:10px}.question-card{padding:18px}.bottom-nav.dense .nav-item{font-size:9px}}

/* ---------- 2026 polish: home tiles, archive, coach, accounts, premium ---------- */
/* Long labels and badges must wrap instead of sliding under neighbours. */
.surface-head{flex-wrap:wrap;gap:8px}.surface-head h3{min-width:0;overflow-wrap:anywhere}
.profile-identity{min-width:0}.profile-identity>div:last-child{min-width:0}
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0 2px}
.quick-grid>button{display:grid;justify-items:start;align-content:start;gap:5px;min-height:112px;padding:14px;border-radius:18px;border:1px solid var(--line);background:var(--card);text-align:left;color:var(--ink);box-shadow:var(--shadow);overflow:hidden}
.quick-grid strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.quick-grid small{font-size:10px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.home-focus{margin-bottom:2px}
.home-focus:after{top:auto;bottom:54px;right:-4px;font-size:44px;opacity:.55;pointer-events:none}
.mission-top{gap:10px}.mission-kicker,.mission-count{min-width:0}
.mission-card h2,.mission-card p{overflow-wrap:anywhere}

/* Archive: cards stay readable and actions never collide. */
.archive-intro p:last-child{margin-bottom:0}
.archive-card{display:flex;align-items:flex-start;gap:15px;min-width:0}
.archive-year{flex:0 0 auto;font-size:19px;padding:15px 10px;border-radius:15px;line-height:1}
.archive-copy{min-width:0;flex:1}
.archive-copy h3{margin:0 0 6px;overflow-wrap:anywhere}
.archive-copy p{margin:0 0 12px;font-size:11px;line-height:1.6;color:var(--muted)}
.archive-actions{display:flex;flex-wrap:wrap;gap:8px}
.archive-actions .primary,.archive-actions .secondary,.archive-actions .ghost{width:auto;flex:1 1 140px;margin:0;padding:11px 13px;font-size:11px;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
@media(max-width:360px){.archive-card{flex-direction:column}.archive-year{padding:11px 14px}.archive-actions .primary,.archive-actions .secondary,.archive-actions .ghost{flex-basis:100%}}

/* Coach: a calm chat surface with quick questions and one clear next step. */
.coach-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.coach-summary>div{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 11px;box-shadow:var(--shadow);min-width:0}
.coach-summary small{display:block;font-size:9px;font-weight:800;letter-spacing:.6px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
.coach-summary strong{display:block;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.coach-card{padding:16px}
.coach-chat{display:grid;gap:8px;max-height:340px;overflow:auto;padding:4px 2px 10px;scroll-behavior:smooth}
.coach-chat .chat-bubble{font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.quick-prompts{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}
.quick-prompts button{border:1px solid #cfdcf8;background:var(--lavender);color:var(--blue);border-radius:99px;padding:8px 11px;font-size:10px;font-weight:800;line-height:1.3;max-width:100%;text-align:left;overflow-wrap:anywhere}
#coach-form{display:grid;gap:8px}
#coach-form .primary{margin:0}
.coach-action{margin-top:9px}
.loader-inline{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;padding:10px 2px}
[data-theme="dark"] .quick-prompts button{background:#2a3456;border-color:#405080;color:#c0cbff}

/* Accounts: tabs and confirmation fields align on narrow screens. */
.auth-card{display:grid;gap:12px}
.auth-card p{margin:0}
.auth-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:var(--lavender);padding:4px;border-radius:12px}
.auth-tabs button{border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:800;padding:9px 4px;border-radius:9px;line-height:1.25}
.auth-tabs button.active{background:var(--card);color:var(--blue);box-shadow:0 2px 7px #18234a12}
#auth-start-form,#auth-confirm-form{display:grid;gap:9px}
#auth-start-form .primary,#auth-confirm-form .primary{margin:0}
.account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.account-actions .secondary,.account-actions .ghost{flex:1 1 140px;margin:0}
.account-status p{margin:4px 0}
[data-theme="dark"] .auth-tabs button.active{background:#303a60;color:#dbe2ff}

/* Premium gate: mirrors the focused full-screen upsell without hiding the app. */
.premium-gate{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:rgba(12,20,45,.62);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);padding:0;animation:premiumFade .22s ease both}
.premium-sheet{position:relative;width:min(520px,100%);max-height:92dvh;overflow:auto;background:linear-gradient(160deg,#ffffff,#eef4ff 66%,#e3ecff);border-radius:28px 28px 0 0;padding:28px 24px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(12,22,60,.34);animation:premiumRise .34s cubic-bezier(.2,.8,.25,1.08) both}
.premium-close{position:absolute;right:14px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:#ffffffb8;color:#5a6691;font-size:22px;line-height:1;display:grid;place-items:center}
.premium-spark{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#2f45c4,#6078f4);color:#fff;font-size:27px;box-shadow:0 12px 26px #4a62e855;margin-bottom:13px}
.premium-sheet .eyebrow{color:#4a62d8;margin-bottom:6px}
.premium-sheet h2{font-size:25px;line-height:1.16;margin:0 0 9px;max-width:330px;color:#101b3d;overflow-wrap:anywhere}
.premium-sheet>p{font-size:13px;line-height:1.65;color:#5f6d8f;margin:0 0 14px}
.premium-list{display:grid;gap:8px;margin:0 0 18px;padding:0;list-style:none}
.premium-list li{position:relative;padding-left:25px;font-size:12px;line-height:1.5;color:#263354}
.premium-list li:before{content:"✦";position:absolute;left:0;top:0;color:#5067e8;font-weight:800}
.premium-cta{box-shadow:0 12px 26px #4a62e84d}
.premium-sheet .ghost{width:100%;margin-top:4px}
.premium-sheet>small{display:block;text-align:center;color:#8490ad;font-size:10px;margin-top:10px}
[data-theme="dark"] .premium-gate{background:rgba(3,7,20,.72)}
[data-theme="dark"] .premium-sheet{background:linear-gradient(160deg,#1d2744,#18213a 66%,#222d4d);box-shadow:0 -20px 60px #0008}
[data-theme="dark"] .premium-close{background:#2b3659cc;color:#cdd6f5}
[data-theme="dark"] .premium-sheet h2{color:#f1f4ff}
[data-theme="dark"] .premium-sheet>p{color:#b4bfdc}
[data-theme="dark"] .premium-list li{color:#dbe2f7}
[data-theme="dark"] .premium-sheet>small{color:#8d99ba}
@keyframes premiumFade{from{opacity:0}to{opacity:1}}
@keyframes premiumRise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
@media(min-width:560px){.premium-gate{align-items:center;padding:22px}.premium-sheet{border-radius:28px}}

/* ---------- 2026: три трека, фундаментальная теория, тарифы ---------- */
.goal-onboarding{padding-top:8px}
.goal-intro{padding:38px 2px 22px}
.goal-intro h1{font-size:34px;margin:8px 0 12px}
.goal-intro p{color:var(--muted);font-size:13px;line-height:1.75;margin:0;max-width:380px}
.goal-grid{display:grid;gap:12px}
.goal-card{position:relative;display:grid;gap:7px;text-align:left;border:1px solid var(--line);border-radius:24px;background:var(--card);color:var(--ink);padding:22px;box-shadow:var(--shadow);overflow:hidden}
.goal-card:before{content:"";position:absolute;right:-38px;top:-55px;width:150px;height:150px;border-radius:50%;background:var(--lavender);opacity:.85}
.goal-card .goal-icon{position:relative;z-index:1;display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--lavender);font-size:24px;margin-bottom:4px}
.goal-card .eyebrow{position:relative;z-index:1}
.goal-card strong{position:relative;z-index:1;font-size:21px;letter-spacing:-.6px}
.goal-card p{position:relative;z-index:1;color:var(--muted);font-size:12px;line-height:1.65;margin:0}
.goal-features{position:relative;z-index:1;display:grid;gap:4px;margin:7px 0 2px}
.goal-features i{font-style:normal;color:var(--muted);font-size:11px;line-height:1.5}
.goal-card b{position:relative;z-index:1;color:var(--blue);font-size:12px;margin-top:5px}
.goal-card:active{transform:scale(.985)}
.goal-footnote{line-height:1.7;text-align:center;margin:18px 8px 0}
.theory-entry .progress-track{margin:12px 0 6px}
.theory-hero .progress-track{margin:13px 0 16px}
.theory-hero .secondary{margin-top:2px}
.theory-card .course-code{font-size:17px}
.theory-meta{display:block;font-size:10px;color:var(--muted);margin-top:6px;font-weight:700}
.theory-section{scroll-margin-top:12px}
.theory-kind{font-size:9px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:#8291de;margin-bottom:8px}
.theory-section h3{margin-bottom:11px}
.theory-body{font-size:13px;line-height:1.85;color:#424b66;white-space:pre-wrap}
[data-theme="dark"] .theory-body{color:#c7d0ea}
.theory-proof{margin-top:15px;padding:14px;border-radius:15px;background:var(--lavender);font-size:12px;line-height:1.8;color:#3f4a6b}
[data-theme="dark"] .theory-proof{color:#d5ddff}
.theory-proof strong{display:block;margin-bottom:6px;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--blue)}
.kind-theorem{border-color:#c9d4ff;background:linear-gradient(135deg,var(--card),#f7f8ff)}
.kind-mistake{border-color:#e6bf80;background:color-mix(in srgb,var(--card) 94%,#ffc477)}
.kind-method{border-color:#b7e6d6;background:color-mix(in srgb,var(--card) 95%,#a9f0d7)}
[data-theme="dark"] .kind-theorem{background:linear-gradient(135deg,var(--card),#202845);border-color:#46548c}
[data-theme="dark"] .kind-mistake{background:#352c1e;border-color:#80663d}
[data-theme="dark"] .kind-method{background:#1d3731;border-color:#376e5c}
.theory-checks{padding-bottom:6px}
.theory-check{border-top:1px solid var(--line);padding:18px 0 6px;margin-top:10px}
.theory-check:first-of-type{border-top:0;margin-top:0;padding-top:6px}
.theory-check h3{font-size:15px;line-height:1.55;margin:6px 0 13px}
.theory-options{display:grid;gap:8px}
.theory-option{text-align:left;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:13px;padding:13px 14px;font-size:12px;line-height:1.55;font-weight:700}
.theory-option:hover{border-color:#b9c4ef}
.theory-option.correct{border-color:#53c79f;background:#e8faf3;color:#176b52}
.theory-option.wrong{border-color:#f09aa0;background:#fff0f1;color:#a53c44}
[data-theme="dark"] .theory-option.correct{background:#21463b;border-color:#38785e;color:#a8f0ce}
[data-theme="dark"] .theory-option.wrong{background:#492d35;border-color:#774655;color:#ffc2c7}
.theory-explanation{margin-top:12px;padding:13px 14px;border-radius:14px;font-size:12px;line-height:1.75;background:var(--lavender)}
.theory-explanation strong{display:block;margin-bottom:5px;font-size:10px;letter-spacing:1px;text-transform:uppercase}
.theory-explanation.ok{background:#e8faf3;color:#176b52}
.theory-explanation.bad{background:#fff0f1;color:#a53c44}
[data-theme="dark"] .theory-explanation.ok{background:#21463b;color:#a8f0ce}
[data-theme="dark"] .theory-explanation.bad{background:#492d35;color:#ffc2c7}
.theory-done{margin-top:12px;padding:11px 13px;border-radius:13px;background:#e5f8f2;color:#167356;font-size:12px;font-weight:800}
[data-theme="dark"] .theory-done{background:#21463b;color:#a8f0ce}
.theory-source p{margin:7px 0 0;font-size:12px;line-height:1.65}
.path-note{border-color:#c9d4ff;background:linear-gradient(140deg,var(--card),#f5f7ff)}
.path-note p{margin:8px 0 0;font-size:12px;line-height:1.7;color:var(--muted)}
[data-theme="dark"] .path-note{background:linear-gradient(140deg,var(--card),#202845);border-color:#46548c}
.theory-mission:after{content:"📖";font-size:52px}
.mentor-note{display:flex;gap:11px;align-items:flex-start;background:var(--lavender);border:1px solid #dce1ff;border-radius:17px;padding:13px 15px;color:#4d5a8e}
.mentor-note span{font-size:18px;color:var(--blue)}
.mentor-note p{margin:0;font-size:11px;line-height:1.7}
[data-theme="dark"] .mentor-note{background:#252c4b;border-color:#3a4570;color:#c2cdf1}
.plan-card{position:relative}
.plan-card.active{border-color:#8d9bf1;box-shadow:0 14px 34px #6077e826}
.plan-card .pill{white-space:nowrap}
.plan-tagline{font-size:15px;font-weight:800;line-height:1.45;margin:2px 0 7px}
.plan-features{list-style:none;padding:0;margin:14px 0;display:grid;gap:7px}
.plan-features li{font-size:12px;line-height:1.55;color:#46506c}
[data-theme="dark"] .plan-features li{color:#c7d0ea}
.plan-price{font-size:19px;font-weight:800;letter-spacing:-.4px;margin:6px 0 2px}
.plan-card .primary,.plan-card .secondary{margin-top:10px}
.goal-options{grid-template-columns:1fr}
.goal-options button{display:grid;gap:5px}
.goal-options span{line-height:1.55}
