.page-with-promo{box-sizing:border-box;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:24px;display:block}.page-with-promo--wide{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px;display:grid}.page-with-promo__main{min-width:0;max-width:100%;overflow-x:clip}.page-with-promo__main>.page,.page-with-promo__main>.dashboard,.page-with-promo__main>.lesson,.page-with-promo__main>.playground,.page-with-promo__main>.achievements-page{width:100%;max-width:none;margin:0;padding-left:0;padding-right:0}.promo-side{flex-direction:column;gap:16px;padding-top:8px;display:flex}.promo-side__card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;flex-direction:column;gap:8px;padding:16px;transition:box-shadow .15s,border-color .15s;display:flex}.promo-side__card:hover{border-color:var(--border-strong,#cbd5e1);box-shadow:0 4px 16px #0f172a14}.promo-side__label{background:var(--surface-2,#f1f5f9);color:var(--text-muted,#64748b);letter-spacing:.06em;text-transform:uppercase;border-radius:6px;align-self:flex-start;padding:2px 8px;font-size:10px;font-weight:600}.promo-side__image{border-radius:8px;width:100%;height:auto;display:block}.promo-side__title{color:var(--text,#0f172a);margin:0;font-size:15px;font-weight:700;line-height:1.35}.promo-side__text{color:var(--text-soft,#475569);margin:0;font-size:13px;line-height:1.5}.promo-side__cta{color:var(--accent,#2ecc8f);margin-top:4px;font-size:13px;font-weight:600;text-decoration:none}.promo-side__cta:hover{text-underline-offset:3px;text-decoration:underline}[data-theme=dark] .promo-side__card{background:#151d29;border-color:#24303f}[data-theme=dark] .promo-side__card:hover{border-color:#34455c;box-shadow:0 4px 16px #00000073}[data-theme=dark] .promo-side__label{color:#8b9bb0;background:#1d2836}[data-theme=dark] .promo-side__title{color:#e8eef5}[data-theme=dark] .promo-side__text{color:#9fb0c3}.legal{max-width:760px;margin:0 auto;line-height:1.7}.legal__inner{display:block}.legal__back{margin-bottom:var(--sp-4);color:var(--accent);font-size:var(--fs-sm);text-decoration:none;display:inline-block}.legal__back:hover{text-decoration:underline}.legal h1{margin:0 0 var(--sp-5);font-size:28px;line-height:1.25}.legal h2{margin:var(--sp-6) 0 var(--sp-3);font-size:var(--fs-lg)}.legal section>p{margin:0 0 var(--sp-3);color:var(--text)}.legal section>ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5);color:var(--text)}.legal section>ul li{margin-bottom:var(--sp-2)}.legal a{color:var(--accent)}.legal__updated{margin-top:var(--sp-8);padding-top:var(--sp-4);border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted)}.legal__table{width:100%;margin:0 0 var(--sp-4);border-collapse:collapse;table-layout:auto}.legal__table th,.legal__table td{text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:break-word;padding:10px 12px}.legal__table tbody th{width:40%;max-width:260px;color:var(--text-soft,#475569);font-weight:600}.legal__table tbody td{color:var(--text)}.legal__table tbody tr+tr th,.legal__table tbody tr+tr td{border-top:1px solid var(--border)}.legal__table thead th{font-size:var(--fs-sm);color:var(--text-soft,#475569);border-bottom:1px solid var(--border);white-space:nowrap;font-weight:700}.legal__table thead+tbody td{border-top:0}.legal--stacked .legal__table,.legal--stacked .legal__table thead,.legal--stacked .legal__table tbody,.legal--stacked .legal__table tr,.legal--stacked .legal__table th,.legal--stacked .legal__table td{width:auto;max-width:none;display:block}.legal--stacked .legal__table thead{display:none}.legal--stacked .legal__table{border-collapse:separate;border-spacing:0}.legal--stacked .legal__table tbody tr{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-bottom:12px;padding:14px 16px}.legal--stacked .legal__table tbody tr+tr th,.legal--stacked .legal__table tbody tr+tr td{border-top:0}.legal--stacked .legal__table th,.legal--stacked .legal__table td{padding:0}.legal--stacked .legal__table tbody th{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted,#94a3b8);margin-bottom:4px;font-size:12px;font-weight:600}.legal--stacked .legal__table td{font-size:15px;line-height:1.5}.legal--stacked .legal__table tbody tr td+td{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.legal--stacked .legal__table tbody tr td+td:before{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted,#94a3b8);margin-bottom:2px;font-size:12px;font-weight:600;display:block}.legal--stacked .legal__table td:nth-child(2):before{content:"Цена"}.legal--stacked .legal__table td:nth-child(3):before{content:"Как получить"}.legal--stacked .legal__table--pairs td:nth-child(2):before{content:none;display:none}.legal--stacked .legal__table--pairs tbody tr td+td{border-top:0;margin-top:0;padding-top:0}.legal--stacked h1{font-size:24px}.legal--stacked h2{margin-top:var(--sp-5);font-size:19px}[data-theme=dark] .legal--stacked .legal__table tbody tr{background:#151d29;border-color:#24303f}[data-theme=dark] .legal--stacked .legal__table tbody th,[data-theme=dark] .legal--stacked .legal__table tbody tr td+td:before{color:#7c8b9e}[data-theme=dark] .legal--stacked .legal__table tbody td{color:#e8eef5}[data-theme=dark] .legal--stacked .legal__table tbody tr td+td{border-top-color:#24303f}[data-theme=dark] .legal__updated{border-color:#24303f}:root{--font-sans:"Segoe UI", "Inter", "PT Sans", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-display:"Segoe UI Semibold", "Inter", "PT Sans", system-ui, sans-serif;--font-mono:"Cascadia Code", "JetBrains Mono", "Fira Code", Consolas, "Courier New", monospace;--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1.0625rem;--fs-md:1.1875rem;--fs-lg:1.375rem;--fs-xl:1.75rem;--fs-2xl:2.125rem;--fs-3xl:2.625rem;--lh-tight:1.2;--lh-base:1.6;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--python-900:#064a3c;--python-800:#076650;--python-700:#0a7a5d;--python-600:#0b8a68;--python-500:#0a7a5d;--python-400:#2fb98f;--python-100:#d7f3ea;--python-50:#ecfaf5;--sql-500:#4a4ad4;--sql-600:#4a4ad4;--sql-700:#4040c0;--sql-300:#9d9df5;--sql-100:#e2e2fb;--sql-50:#f1f1fe;--amber-500:#f2a516;--amber-100:#fdf0d5;--rose-500:#e5484d;--rose-100:#fde8e8;--sky-500:#0ea5e9;--sky-100:#e0f2fe;--violet-500:#8b5cf6;--violet-100:#efe8fe;--bg:#f7f8fb;--bg-elevated:#fff;--bg-subtle:#eef1f6;--bg-inset:#f2f4f8;--bg-code:#0f1729;--text:#18202f;--text-muted:#5b6675;--text-subtle:#626d7c;--text-inverse:#fff;--text-on-code:#e6ebf5;--border:#dfe4ec;--border-strong:#78828f;--border-field:#78828f;--primary:var(--python-700);--primary-hover:#08614a;--primary-soft:var(--python-50);--primary-text:#0b6b52;--link:var(--primary-text);--accent:var(--sql-600);--accent-text:var(--sql-600);--accent-soft:var(--sql-50);--success:#17803d;--success-soft:#e8f8ee;--warning:#8a4b06;--warning-soft:#fff4e0;--danger:#b3261e;--danger-soft:#fdeaea;--info:#1a5f9e;--info-soft:#e8f2fc;--code-keyword:#7dd3fc;--code-string:#86efac;--code-number:#fbbf24;--code-function:#c4b5fd;--code-comment:#94a3b8;--shadow-xs:0 1px 2px #1018280f;--shadow-sm:0 1px 3px #10182814, 0 1px 2px #1018280a;--shadow-md:0 4px 10px #10182814, 0 2px 4px #1018280a;--shadow-lg:0 12px 28px #1018281f, 0 4px 8px #1018280d;--shadow-focus:0 0 0 3px #0f9d7759;--ease:cubic-bezier(.2, .8, .2, 1);--dur-fast:.12s;--dur:.2s;--dur-slow:.32s;--gold:#8a5a00;--gold-soft:#fdf3d8;--on-primary:#fff;--on-python-bright:#06140f;--on-success:#fff;--on-accent:#fff;--gradient-brand:linear-gradient(120deg, var(--python-500), var(--sql-500));--gradient-python:linear-gradient(120deg, var(--python-500), var(--sky-500));--gradient-sql:linear-gradient(120deg, var(--sql-500), var(--violet-500));--gradient-xp:linear-gradient(120deg, var(--amber-500), var(--gold));--header-height:68px;--content-max:1320px;--content-narrow:520px;--content-reading:760px;--lesson-left-width:44%;--lesson-gap:var(--sp-4);--topbar-height:60px;--bottom-nav-height:64px;--touch-target:48px;--z-header:50;--z-sticky:60;--z-modal:100;--z-toast:200}[data-theme=dark]{--bg:#0d1117;--bg-elevated:#161b24;--bg-subtle:#1c2230;--bg-inset:#11161e;--bg-code:#0a0e15;--text:#eef1f7;--text-muted:#a3adbb;--text-subtle:#98a2b0;--text-inverse:#10151d;--text-on-code:#e6ebf5;--border:#262e3b;--border-strong:#68737f;--border-field:#68737f;--python-100:#123f34;--python-50:#0f2c26;--python-500:#5ee8b5;--python-700:#5ee8b5;--sql-100:#24244a;--sql-50:#1a1a33;--sql-300:#9d9df5;--sql-500:#9d9df5;--sql-600:#9d9df5;--amber-100:#3d2f10;--rose-100:#3a1c1d;--sky-100:#0d2b3d;--violet-100:#2a1f45;--primary-soft:#10302a;--primary-text:#4fd1a8;--primary:#4fd1a8;--primary-hover:#6ee0bb;--accent-text:#a5a5f7;--accent:var(--accent-text);--accent-soft:#1b1b36;--success:#4ade80;--success-soft:#10291a;--warning:#fbbf24;--warning-soft:#2f2510;--danger:#f87171;--danger-soft:#331519;--info:#60a5fa;--info-soft:#12243a;--code-keyword:#7dd3fc;--code-string:#86efac;--code-number:#fbbf24;--code-function:#c4b5fd;--code-comment:#94a3b8;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073;--shadow-md:0 6px 16px #00000080;--shadow-lg:0 16px 36px #0009;--shadow-focus:0 0 0 3px #4fd1a866;--gold:#fbbf24;--gold-soft:#3a2c0c;--on-primary:#06140f;--on-success:#06140f;--on-accent:#06140f}[data-track=python]{--track-strong:var(--python-700);--track-soft:var(--python-100);--track-tint:var(--python-50);--track-gradient:var(--gradient-python);--track-icon:var(--python-800);--track-on:var(--on-primary)}[data-track=sql]{--track-strong:var(--sql-600);--track-soft:var(--sql-100);--track-tint:var(--sql-50);--track-gradient:var(--gradient-sql);--track-icon:var(--sql-700);--track-on:var(--on-accent)}[data-theme=dark] [data-track=python]{--track-strong:var(--primary-text);--track-icon:var(--python-400)}[data-theme=dark] [data-track=sql]{--track-strong:var(--accent-text);--track-icon:var(--sql-300)}:root{--track-strong:var(--primary);--track-soft:var(--primary-soft);--track-tint:var(--bg-subtle);--track-gradient:var(--gradient-brand);--track-icon:var(--primary);--track-on:var(--on-primary)}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);margin:0}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-tight);margin:0 0 var(--sp-3);color:var(--text);letter-spacing:-.01em}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0 0 var(--sp-3)}a{color:var(--primary-text);border-radius:var(--radius-sm);text-decoration:none}a:hover{text-decoration:underline}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.94em}:not(pre)>code{background:var(--bg-subtle);border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:6px;padding:.1em .38em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{max-width:100%;display:block}:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-track{background:0 0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.stack{gap:var(--sp-4);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-3);display:flex}.spacer{flex:auto}.page{width:100%;max-width:var(--content-max);padding:var(--sp-6) var(--sp-6) var(--sp-12);margin:0 auto}.dim{color:var(--text-muted)}@media screen and (max-width:720px){:root{--fs-base:1rem;--fs-2xl:1.75rem;--fs-xl:1.5rem}.page{padding:var(--sp-4) var(--sp-3) var(--sp-10)}}@media screen and (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-5);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-sm);white-space:nowrap;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);-webkit-user-select:none;user-select:none;border:1px solid #0000;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn--primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--secondary{background:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--bg-subtle)}.btn--ghost{color:var(--text-muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.btn--success{background:var(--success);color:var(--on-success)}.btn--success:hover:not(:disabled){filter:brightness(.95)}.btn--danger{background:var(--danger);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn--danger:hover:not(:disabled){filter:brightness(.94)}.btn--track{background:var(--track-strong,var(--primary));color:var(--track-on,var(--on-primary));box-shadow:var(--shadow-sm)}.btn--track:hover:not(:disabled){filter:brightness(.94)}.btn--outline-track{color:var(--track-strong,var(--primary));border-color:var(--track-strong,var(--primary));background:0 0}.btn--outline-track:hover:not(:disabled){background:var(--track-tint,var(--primary-soft))}.btn__icon,.btn__label{align-items:center;display:inline-flex}.btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn--lg{min-height:56px;padding:0 var(--sp-8);font-size:var(--fs-md);border-radius:var(--radius-lg)}.btn--xl{min-height:56px;padding:0 var(--sp-6);border-radius:var(--radius-lg);font-size:1.125rem;font-weight:700}.btn--xl .btn__icon{font-size:1.1em}.btn--sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.btn--block{width:100%}.btn--icon{min-width:44px;padding:0}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:var(--sp-5)}.card--flush{padding:0;overflow:hidden}.card--interactive{transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease), border-color var(--dur) var(--ease);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}.card--interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.card__title{font-family:var(--font-display);font-size:var(--fs-md);margin:0 0 var(--sp-1)}.badge{border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-weight:600;line-height:1.5;display:inline-flex}.badge--xp{background:var(--amber-100);color:var(--gold)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--info{background:var(--info-soft);color:var(--info)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--muted{background:var(--bg-inset);color:var(--text-subtle)}.badge--track{background:var(--track-soft,var(--bg-subtle));color:var(--track-strong,var(--text))}.badge--lg{font-size:var(--fs-sm);padding:6px 14px}[data-theme=dark] .badge--xp{color:var(--amber-500)}.progress{border-radius:var(--radius-pill);background:var(--bg-subtle);width:100%;height:12px;overflow:hidden}.progress--lg{height:18px}.progress__fill{border-radius:inherit;background:linear-gradient(90deg, var(--python-500), var(--sql-500));height:100%;transition:width var(--dur-slow) var(--ease)}.progress--python .progress__fill{background:var(--gradient-python)}.progress--sql .progress__fill{background:var(--gradient-sql)}.progress--track .progress__fill{background:var(--track-gradient,var(--gradient-brand))}.progress--xp .progress__fill{background:var(--gradient-xp)}.progress--sm{height:8px}.progress--xl{height:22px}.surface-track{background:var(--bg-elevated);border:1px solid var(--border);border-top:4px solid var(--track-strong,var(--primary));border-radius:var(--radius-lg)}.field{gap:var(--sp-2);flex-direction:column;display:flex}.field__label{font-size:var(--fs-sm);color:var(--text);font-weight:600}.field__hint{font-size:var(--fs-xs);color:var(--text-muted)}.field__error{font-size:var(--fs-xs);color:var(--danger);font-weight:600}.input,.textarea,.select{width:100%;min-height:48px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border-field);background:var(--bg-elevated);color:var(--text);font-size:var(--fs-base);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.textarea{resize:vertical;min-height:96px;font-family:var(--font-mono);font-size:var(--fs-sm)}.alert{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--radius-md);font-size:var(--fs-sm);border:1px solid #0000;display:flex}.alert--error{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger)}.alert--success{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 30%, transparent);color:var(--success)}.alert--info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 25%, transparent);color:var(--info)}.alert--warning{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 30%, transparent);color:var(--warning)}.tabs{gap:var(--sp-1);padding:var(--sp-1);border-radius:var(--radius-md);background:var(--bg-subtle);display:flex}.tabs__tab{border-radius:var(--radius-sm);min-height:40px;color:var(--text-muted);font-size:var(--fs-sm);background:0 0;border:0;flex:1;font-weight:600}.tabs__tab[aria-selected=true]{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-xs)}.skeleton{background:linear-gradient(90deg, var(--bg-subtle) 25%, var(--bg-inset) 37%, var(--bg-subtle) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.toast-region{right:var(--sp-6);bottom:var(--sp-6);z-index:var(--z-toast);gap:var(--sp-2);pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--sp-3);z-index:auto;pointer-events:auto;padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-strong);border-left:4px solid var(--info);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);max-width:380px;animation:toast-in var(--dur) var(--ease);display:flex;position:relative;bottom:auto;right:auto}.toast--success{border-left-color:var(--success)}.toast--warning{border-left-color:var(--warning)}.toast--error{border-left-color:var(--danger)}.toast__icon{line-height:1.4}.toast__body{flex-direction:column;gap:2px;display:flex}.toast__title{font-size:var(--fs-sm)}.toast__message{color:var(--text-muted)}.toast__close{color:var(--text-subtle);font-size:var(--fs-sm);padding:var(--sp-1);border-radius:var(--radius-sm);background:0 0;border:0;margin-left:auto;line-height:1}.toast__close:hover{color:var(--text);background:var(--bg-subtle)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media screen and (max-width:720px){.toast-region{left:var(--sp-3);right:var(--sp-3);bottom:calc(var(--bottom-nav-height) + var(--sp-3));align-items:stretch}.toast{max-width:none}}.section-header{align-items:center;gap:var(--sp-3);margin:var(--sp-2) 0 var(--sp-3);display:flex}.section-title{font-family:var(--font-display);font-size:var(--fs-lg);margin:0}.section-subtitle{color:var(--text-muted);font-size:var(--fs-sm);margin:0}.empty-state{text-align:center;align-items:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-4);color:var(--text-muted);font-size:var(--fs-sm);flex-direction:column;display:flex}.empty-state__icon{font-size:var(--fs-3xl);line-height:1}.empty-state__title{color:var(--text);font-family:var(--font-display);font-size:var(--fs-md)}.modal{z-index:var(--z-modal);padding:var(--sp-4);background:color-mix(in srgb, var(--text) 45%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:modal-fade var(--dur-fast) var(--ease);place-items:center;display:grid;position:fixed;inset:0}.modal__panel{width:100%;max-width:520px;max-height:calc(100vh - 2 * var(--sp-4));background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--sp-6);animation:modal-pop var(--dur) var(--ease);overflow:auto}.modal__panel--sm{max-width:400px}.modal__panel--lg{max-width:760px}.modal__title{font-size:var(--fs-xl);margin:0 0 var(--sp-2)}.modal__description{color:var(--text-muted);font-size:var(--fs-sm)}.modal__body{margin-top:var(--sp-3)}.field__required{color:var(--danger);margin-left:2px}.field--invalid .field__label{color:var(--danger)}.md-inline{display:contents}.console__text{white-space:pre-wrap;word-break:break-word}.friendly-error__icon{font-size:var(--fs-lg);flex:none;line-height:1}.theory-text>:last-child,.theory-table{margin-bottom:0}.theory-table{margin-top:var(--sp-2)}.playground__extra{gap:var(--sp-2);flex-direction:column;align-items:flex-start;display:flex}.auth__panel{min-width:0}.modal__footer{gap:var(--sp-2);margin-top:var(--sp-5);flex-wrap:wrap;justify-content:flex-end;display:flex}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}.avatar{background:var(--gradient-brand);width:44px;height:44px;color:var(--on-primary);font-weight:700;font-size:var(--fs-sm);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;display:inline-grid}.avatar--lg{width:64px;height:64px;font-size:var(--fs-lg)}.card--flat{box-shadow:none}.card--tinted{background:var(--track-tint,var(--bg-subtle))}.data-table-wrap{border-radius:var(--radius-md);border:1px solid var(--border);max-width:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.data-table th,.data-table td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.data-table thead th{background:var(--bg-subtle);color:var(--text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;z-index:1;font-weight:700;position:sticky;top:0}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:nth-child(2n){background:var(--bg-inset)}.data-table td.is-null{color:var(--text-subtle);font-style:italic}.data-table td.is-numeric{text-align:right;font-variant-numeric:tabular-nums}.chipbar{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-4);border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;display:inline-flex}.chip:hover{background:var(--bg-subtle);color:var(--text)}.chip[aria-pressed=true],.chip.is-active{background:var(--track-tint,var(--primary-soft));border-color:var(--track-strong,var(--primary));color:var(--track-strong,var(--primary-text))}.skeleton-lines{gap:var(--sp-2);flex-direction:column;width:100%;display:flex}.skeleton--card{border-radius:var(--radius-lg);width:100%}.skeleton--avatar{border-radius:50%;flex:none;width:44px;height:44px}.page-header{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.page-title{font-size:var(--fs-2xl);margin:0}.page-lead{color:var(--text-muted);margin:0}.grid-auto{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.stack-sm{gap:var(--sp-2);flex-direction:column;display:flex}.stack-md{gap:var(--sp-4);flex-direction:column;display:flex}.row-wrap{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-strong{font-weight:700}.text-mono{font-family:var(--font-mono)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-muted{color:var(--text-muted)}.m-0{margin:0}.skip-link{left:var(--sp-3);z-index:calc(var(--z-toast) + 1);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);color:var(--text);font-weight:600;position:absolute;top:-100px}.skip-link:focus{top:var(--sp-3)}.spinner{border:3px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;flex:none;width:22px;height:22px;animation:.8s linear infinite btn-spin}.spinner--lg{border-width:4px;width:36px;height:36px}.center-box{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-4);color:var(--text-muted);display:flex}.logo{align-items:center;gap:var(--sp-3);color:var(--text);border-radius:var(--radius-md);flex:none;text-decoration:none;display:inline-flex}.logo:hover{text-decoration:none}.logo__mark{background:var(--gradient-brand);width:42px;height:42px;box-shadow:var(--shadow-sm);border-radius:13px;flex:none;place-items:center;display:grid}.logo__text{flex-direction:column;line-height:1.1;display:flex}.logo__title{font-family:var(--font-display);font-size:var(--fs-base);letter-spacing:-.01em;font-weight:700}.logo__subtitle{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase}.theme-toggle{align-items:center;gap:var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--bg-subtle);width:64px;height:36px;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);flex:none;padding:3px;display:inline-flex;position:relative}.theme-toggle__icon{z-index:1;width:28px;height:28px;font-size:var(--fs-sm);order:0;place-items:center;display:grid;position:relative}.theme-toggle__knob{background:var(--bg-elevated);width:28px;height:28px;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}[data-theme=dark] .theme-toggle__knob{transform:translate(28px)}[data-theme=dark] .theme-toggle__icon{order:1}.xp-badge{align-items:center;gap:var(--sp-2);min-height:40px;padding:4px var(--sp-3);border-radius:var(--radius-pill);background:var(--bg-elevated);border:1px solid var(--border-strong);box-shadow:var(--shadow-xs);font-size:var(--fs-sm);flex:none;font-weight:700;display:inline-flex}.xp-badge--button{cursor:pointer;font:inherit;font-weight:700}.xp-badge--button:hover{background:var(--bg-subtle)}.xp-badge__icon{font-size:var(--fs-sm)}.xp-badge__value{color:var(--text);font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;display:inline-flex}.xp-badge__unit{font-size:var(--fs-xs);color:var(--gold);font-weight:700}.xp-badge__divider{background:var(--border);width:1px;height:20px}.xp-badge__level{color:var(--text-muted);align-items:center;gap:4px;font-weight:600;display:inline-flex}.xp-badge__level-name{white-space:nowrap}.xp-badge__progress{border-radius:var(--radius-pill);background:var(--bg-subtle);width:56px;height:6px;display:none;overflow:hidden}.xp-badge__progress-fill{background:var(--gradient-xp);border-radius:inherit;height:100%;transition:width var(--dur-slow) var(--ease);display:block}.main-nav{align-items:center;gap:var(--sp-1);display:flex}.main-nav__link{align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-3);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--fs-sm);transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);font-weight:600;text-decoration:none;display:inline-flex}.main-nav__link:hover{background:var(--bg-subtle);color:var(--text);text-decoration:none}.main-nav__link.is-active{background:var(--primary-soft);color:var(--primary-text)}.main-nav__icon{font-size:var(--fs-sm)}.main-nav--bottom{display:none}.user-menu{flex:none;position:relative}.user-menu__trigger{align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-2) 0 0;border-radius:var(--radius-pill);color:var(--text);font-size:var(--fs-sm);background:0 0;border:0;font-weight:600;display:inline-flex}.user-menu__trigger:hover{background:var(--bg-subtle)}.user-menu__name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.app-header--narrow .user-menu__name,.app-header--narrow .user-menu__chevron{display:none}.app-header--narrow .user-menu__trigger{gap:0;padding:0}.user-menu__chevron{color:var(--text-subtle)}.user-menu__panel{z-index:var(--z-toast);min-width:260px;max-width:min(320px,100vw - 24px);padding:var(--sp-2);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg);overscroll-behavior:contain;animation:menu-in var(--dur-fast) var(--ease);overflow-y:auto}@keyframes menu-in{0%{opacity:0;transform:translateY(6px)}}.user-menu__head{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);margin-bottom:var(--sp-2);display:flex}.user-menu__head-text{flex-direction:column;min-width:0;display:flex}.user-menu__head-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-menu__meta{font-size:var(--fs-xs);color:var(--text-muted)}.user-menu__note{font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-inset);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2)}.user-menu__item{align-items:center;gap:var(--sp-2);width:100%;min-height:42px;padding:0 var(--sp-3);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);text-align:left;background:0 0;border:0;font-weight:600;display:flex}.user-menu__item:hover{background:var(--bg-subtle)}.app-shell{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:var(--z-header);background:color-mix(in srgb, var(--bg-elevated) 88%, transparent);-webkit-backdrop-filter:saturate(140%)blur(10px);backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header__inner{align-items:center;gap:var(--sp-4);width:100%;max-width:var(--content-max);min-height:var(--header-height);padding:0 var(--sp-6);margin:0 auto;display:flex}.app-header__inner>a,.app-header__inner>.logo{flex:none}.app-header__nav{flex:auto;justify-content:center;min-width:0;display:flex;overflow:hidden}.app-header__actions{align-items:center;gap:var(--sp-3);flex:none;margin-left:auto;display:flex}.app-main{width:100%;max-width:var(--content-max);padding:var(--sp-6) var(--sp-6) var(--sp-12);outline:none;flex:auto;margin:0 auto}.app-main--wide{max-width:none;padding:0}.app-shell--wide .app-main{min-height:calc(100vh - var(--header-height));flex-direction:column;display:flex}.app-bottomnav{display:none}@media screen and (min-width:1024px){.xp-badge__progress{display:block}}@media screen and (max-width:1023.98px){.app-header__nav{display:none}.app-header__inner{padding:0 var(--sp-4);min-height:var(--topbar-height);gap:var(--sp-2)}.app-main{padding:var(--sp-4) var(--sp-4) calc(var(--bottom-nav-height) + var(--sp-8))}.app-main--wide{padding:0 0 calc(var(--bottom-nav-height) + var(--sp-4))}.app-bottomnav{z-index:var(--z-header);background:var(--bg-elevated);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);display:block;position:fixed;bottom:0;left:0;right:0}.main-nav--bottom{min-height:var(--bottom-nav-height);justify-content:space-around;align-items:stretch;gap:0;display:flex}.main-nav--bottom .main-nav__link{padding:var(--sp-1);min-height:var(--bottom-nav-height);font-size:var(--fs-xs);border-radius:0;flex-direction:column;flex:1 1 0;justify-content:center;gap:2px;font-weight:600}.main-nav--bottom .main-nav__icon{font-size:var(--fs-lg);line-height:1.1}.main-nav--bottom .main-nav__link.is-active{color:var(--primary);background:0 0}.main-nav--bottom .main-nav__link.is-active .main-nav__icon{transform:translateY(-1px)}.logo__text,.user-menu__name,.user-menu__chevron{display:none}}@media screen and (max-width:720px){.xp-badge__level,.xp-badge__divider{display:none}.app-header__actions{gap:var(--sp-2)}.main-nav--bottom .main-nav__label{font-size:var(--fs-xs);line-height:1.2}}@media screen and (max-width:420px){.logo__mark{border-radius:11px;width:36px;height:36px}.theme-toggle{width:56px;height:32px}.theme-toggle__icon,.theme-toggle__knob{width:24px;height:24px}[data-theme=dark] .theme-toggle__knob{transform:translate(24px)}}.logo__mark{object-fit:contain;border-radius:13px;flex:none;width:42px;height:42px;display:block}@media screen and (max-width:1023px){.logo__mark{border-radius:10px;width:34px;height:34px}}.landing{flex-direction:column;min-height:100vh;display:flex}.landing-header{z-index:var(--z-header);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(140%)blur(10px);backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.landing-header__inner{justify-content:space-between;align-items:center;gap:var(--sp-4);max-width:var(--content-max);min-height:var(--header-height);padding:0 var(--sp-6);margin:0 auto;display:flex}.landing-header__actions{align-items:center;gap:var(--sp-2);display:flex}.hero{padding:var(--sp-16) var(--sp-6) var(--sp-12);background:radial-gradient(1200px 480px at 12% -10%, var(--python-50), transparent 68%), radial-gradient(900px 420px at 92% 8%, var(--sql-50), transparent 66%), var(--bg);border-bottom:1px solid var(--border);position:relative;overflow:hidden}.link-button{color:var(--link);font-size:var(--fs-base);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.link-button:disabled{opacity:.6;cursor:wait}.hero-card{border-radius:var(--radius-xl);background:var(--bg-code);border:1px solid var(--border-strong);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:var(--sp-4);color:var(--text-on-code);transform:rotate(-1.2deg)}.hero-card__bar{align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-3);margin-bottom:var(--sp-3);border-bottom:1px solid color-mix(in srgb, var(--text-on-code) 14%, transparent);display:flex}.hero-card__dot{background:var(--text-subtle);border-radius:50%;width:10px;height:10px}.hero-card__dot--python{background:var(--python-400)}.hero-card__dot--sql{background:var(--violet-500)}.hero-card__dot--amber{background:var(--amber-500)}.hero-card__title{font-family:var(--font-mono);font-size:var(--fs-xs);opacity:.75;margin-left:auto}.hero-card__code{margin:0 0 var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.tok-kw{color:var(--code-keyword)}.tok-str{color:var(--code-string)}.tok-num{color:var(--code-number)}.tok-fn{color:var(--code-function)}.hero-card__result{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--success) 18%, var(--bg-code));font-size:var(--fs-sm);margin-bottom:var(--sp-3);font-weight:600;display:flex}.hero-card__ok{color:var(--success)}.hero-card__level{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);opacity:.85;display:flex}.hero-card__levelbar{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--text-on-code) 14%, transparent);flex:1;height:8px;overflow:hidden}.hero-card__levelbar>span{border-radius:inherit;background:var(--gradient-xp);height:100%;display:block}.stat{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.step{gap:var(--sp-4);align-items:flex-start;display:flex}.feature{padding:var(--sp-5);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.cta{padding:var(--sp-16) var(--sp-6)}.cta__inner{text-align:center;max-width:760px;padding:var(--sp-10) var(--sp-6);border-radius:var(--radius-xl);background:var(--gradient-brand);color:var(--on-primary);box-shadow:var(--shadow-lg);margin:0 auto}.cta__title{color:var(--on-primary);font-size:clamp(1.5rem, 3vw, var(--fs-2xl));margin:0 0 var(--sp-2)}.cta__text{color:color-mix(in srgb, var(--on-primary) 88%, transparent);margin:0 0 var(--sp-5)}.cta .btn--primary{background:var(--bg-elevated);color:var(--primary-text)}.landing-footer{border-top:1px solid var(--border);background:var(--bg-elevated);padding:var(--sp-8) var(--sp-6);margin-top:auto}.landing-footer__inner{justify-content:space-between;align-items:center;gap:var(--sp-4);max-width:var(--content-max);flex-wrap:wrap;margin:0 auto;display:flex}.landing-footer__text{font-size:var(--fs-sm);color:var(--text-muted);flex:260px;margin:0}.landing-footer__links{align-items:center;gap:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);flex-wrap:wrap;min-width:0;display:flex}.landing-footer__links a{white-space:nowrap}.auth{background:radial-gradient(800px 400px at 100% 0%, var(--sql-50), transparent 70%), radial-gradient(700px 380px at 0% 100%, var(--python-50), transparent 70%), var(--bg);flex-direction:column;min-height:100vh;display:flex}.auth__header{justify-content:space-between;align-items:center;gap:var(--sp-3);max-width:var(--content-max);width:100%;padding:var(--sp-4) var(--sp-6);margin:0 auto;display:flex}.auth__header-actions{align-items:center;gap:var(--sp-3);display:flex}.auth__home-link{font-size:var(--fs-sm);color:var(--text-muted)}.auth__main{align-items:start;gap:var(--sp-10);width:100%;max-width:1080px;padding:var(--sp-6) var(--sp-6) var(--sp-12);flex:auto;grid-template-columns:minmax(0,520px) minmax(0,1fr);margin:0 auto;display:grid}.auth__card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--sp-8)}.auth__title{font-size:var(--fs-xl);margin:0 0 var(--sp-1)}.auth__subtitle{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 var(--sp-5)}.auth__form{gap:var(--sp-4);margin-bottom:var(--sp-5);flex-direction:column;display:flex}.auth__divider{align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0;color:var(--text-subtle);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;display:flex}.auth__divider:before,.auth__divider:after{content:"";background:var(--border);flex:1;height:1px}.auth__note{margin:var(--sp-3) 0 0;font-size:var(--fs-xs);color:var(--text-muted)}.auth__footer{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}.auth__switch{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;margin:0}.auth__side-card{top:var(--sp-8);gap:var(--sp-3);padding:var(--sp-8);border-radius:var(--radius-xl);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:sticky}.auth__side-emoji{font-size:var(--fs-3xl);line-height:1}.auth__side-emoji--sql{margin-top:calc(-1 * var(--sp-6));margin-left:var(--sp-8);font-size:var(--fs-2xl)}.auth__side-title{font-size:var(--fs-lg);margin:0}.auth__side-text{color:var(--text-muted);font-size:var(--fs-sm);margin:0}.auth__side-list{gap:var(--sp-2);font-size:var(--fs-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.error-notice{margin-bottom:var(--sp-4);align-items:flex-start}.error-notice__icon{line-height:1.4}.error-notice__body{gap:var(--sp-1);flex-direction:column;display:flex}.error-notice__title{font-size:var(--fs-sm)}.error-notice__hint{font-size:var(--fs-xs);opacity:.9}.error-notice__retry{margin-top:var(--sp-2);align-self:flex-start}.page-loading,.app-boot{justify-content:center;align-items:center;gap:var(--sp-3);min-height:60vh;color:var(--text-muted);flex-direction:column;display:flex}.app-boot{min-height:100vh}.page-loading__label{font-size:var(--fs-sm)}.notfound{flex-direction:column;min-height:100vh;display:flex}.notfound__header{max-width:var(--content-max);width:100%;padding:var(--sp-4) var(--sp-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.notfound__main{text-align:center;justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-6) var(--sp-16);flex-direction:column;flex:auto;display:flex}.notfound__code{font-family:var(--font-display);background:var(--gradient-brand);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(4rem,14vw,8rem);font-weight:800;line-height:1}.notfound__emoji{font-size:var(--fs-3xl);margin-top:calc(-1 * var(--sp-4))}.notfound__title{font-size:var(--fs-2xl);margin:0}.notfound__text{max-width:48ch;color:var(--text-muted);margin:0}.notfound__actions{gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;justify-content:center;display:flex}.notfound__hint{font-size:var(--fs-sm);color:var(--text-muted)}@media screen and (max-width:1023.98px){.hero{padding:var(--sp-10) var(--sp-4) var(--sp-8)}.hero__inner{gap:var(--sp-8);grid-template-columns:1fr}.hero__art{order:2}.hero-card{max-width:100%;transform:none}.landing-section{padding:var(--sp-10) var(--sp-4)}.landing-section__head{margin-bottom:var(--sp-6)}.stats-strip__inner{gap:var(--sp-5) var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}.auth__main{max-width:560px;padding:var(--sp-4) var(--sp-4) var(--sp-10);grid-template-columns:1fr}.auth__side{display:none}}@media screen and (max-width:720px){.landing-header__inner,.auth__header,.notfound__header{padding-inline:var(--sp-4)}.landing-hide-sm{display:none}.auth__card{padding:var(--sp-5)}.cta__inner{padding:var(--sp-8) var(--sp-4)}.landing-footer__inner{flex-direction:column;align-items:flex-start}}.course-progress__head{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.course-progress__value{font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--primary-text);font-weight:700;line-height:1}.course-progress__text{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.progress-bar__head{justify-content:space-between;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.progress-bar__label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600}.progress-bar__value{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.lesson-list{margin:var(--sp-2) 0 0;gap:var(--sp-2);flex-direction:column;padding:0;list-style:none;display:flex}.achievement-mini-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.empty-state-text{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.section-link{font-size:var(--fs-sm);margin-left:auto;font-weight:600}.achievement{gap:var(--sp-1);padding:var(--sp-4);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);flex-direction:column;height:100%;display:flex}.achievement--unlocked{border-top:4px solid var(--amber-500);box-shadow:var(--shadow-sm)}.achievement--locked{background:var(--bg-inset);opacity:.72}.achievement--locked .achievement__icon{filter:grayscale()}.achievement__icon{font-size:var(--fs-2xl);line-height:1.1}.achievement__title{font-size:var(--fs-base);margin:0}.achievement__text{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.achievement__text--clamp{-webkit-line-clamp:2;font-size:var(--fs-xs);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.achievement__status{font-size:var(--fs-xs);color:var(--text-muted);margin-top:auto;font-weight:600}.achievement__status.is-unlocked{color:var(--success)}.achievement--compact{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--radius-md);border-top-width:1px;flex-flow:wrap}.achievement--compact .achievement__icon{font-size:var(--fs-lg)}.achievement--compact .achievement__title{font-size:var(--fs-sm)}.achievement--compact .achievement__text,.achievement--compact .achievement__status{flex-basis:100%;margin-top:0}.achievements-page{gap:var(--sp-2);flex-direction:column;max-width:980px;display:flex}.achievements-summary,.rewards-summary{align-items:center;gap:var(--sp-5);margin-bottom:var(--sp-4);grid-template-columns:minmax(0,1fr) minmax(200px,320px);display:grid}.rewards-summary{padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border)}.rewards-summary__title{font-size:var(--fs-lg);margin:0}.achievements-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.achievements__group-title{margin:var(--sp-6) 0 var(--sp-3)}.playground__toolbar{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);flex-wrap:wrap;display:flex}.playground__db{gap:var(--sp-1);flex-direction:column;display:flex}.playground__db-select{min-width:200px;min-height:44px;padding-block:var(--sp-1)}.playground__grid{gap:var(--sp-4);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;display:grid}.playground__editor{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.playground__editor-box{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);height:56vh;min-height:340px;overflow:hidden}.playground__stdin{gap:var(--sp-1);flex-direction:column;display:flex}.playground__schema{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);background:var(--bg-elevated);font-size:var(--fs-sm)}.playground__schema summary{cursor:pointer;font-weight:600}.playground__schema .schema{margin-top:var(--sp-2)}.playground__result{padding:var(--sp-4);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);gap:var(--sp-3);flex-direction:column;min-width:0;min-height:300px;display:flex}.playground__result-head{align-items:center;gap:var(--sp-2);display:flex}.playground__hint{padding-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted);margin:auto 0 0}.playground__hint kbd{border:1px solid var(--border-strong);background:var(--bg-subtle);font-size:var(--fs-xs);border-radius:4px;padding:0 4px}.admin-stats{gap:var(--sp-3);margin:var(--sp-3) 0 var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.admin-stat{gap:var(--sp-1);padding:var(--sp-4);flex-direction:column;display:flex}.admin-stat__label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600}.admin-stat__value{font-family:var(--font-display);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.admin-section{margin-bottom:var(--sp-8)}.admin-search{flex:240px;min-width:240px;max-width:360px;position:relative}.admin-search .input{min-height:44px;padding-left:calc(var(--sp-4) + 26px)}.admin-search__icon{left:var(--sp-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.admin-users{background:var(--bg-elevated)}.admin-user{align-items:center;gap:var(--sp-2);display:inline-flex}.admin-user .avatar{width:32px;height:32px;font-size:var(--fs-xs)}.admin-role-select{min-width:150px;min-height:38px;padding-block:var(--sp-1);font-size:var(--fs-sm)}.admin-note{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted)}.admin-denied{place-items:center;min-height:60vh;display:grid}.admin-denied__card{text-align:center;max-width:520px;padding:var(--sp-8)}.admin-denied__icon{font-size:var(--fs-3xl);margin-bottom:var(--sp-3);display:block}.admin-denied__title{font-size:var(--fs-xl);margin:0 0 var(--sp-2)}.admin-denied__text{color:var(--text-muted)}.admin-denied__actions{margin-top:var(--sp-4);justify-content:center}@media screen and (max-width:1023.98px){.dashboard__grid,.playground__grid{grid-template-columns:1fr}.playground__editor-box{height:46vh}.achievements-summary{grid-template-columns:1fr}}@media screen and (max-width:720px){.achievements-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.achievement{padding:var(--sp-3)}.achievement__icon{font-size:var(--fs-xl)}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-search{width:100%;max-width:none}}.dashboard--simple{gap:var(--sp-6);flex-direction:column;max-width:980px;display:flex}.dashboard__hello{font-size:var(--fs-2xl);margin:0}.dashboard__guest{margin:calc(var(--sp-3) * -1) 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.big-continue{align-items:center;gap:var(--sp-6);padding:var(--sp-6);border-radius:var(--radius-xl);background:var(--primary-soft);border:2px solid var(--track-strong,var(--primary));display:flex}.big-continue__text{gap:var(--sp-2);flex-direction:column;flex:auto;min-width:0;display:flex}.big-continue__title{font-size:var(--fs-xl);margin:0;line-height:1.25}.big-continue__sub{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.big-continue__cta{flex:none;min-width:220px}.quick-stats{gap:var(--sp-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.quick-stat{padding:var(--sp-4) var(--sp-3);border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.quick-stat dt{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.quick-stat dd{font-size:var(--fs-lg);color:var(--text);margin:0;font-weight:800}.dashboard__tracks{gap:var(--sp-6);flex-direction:column;display:flex}.track-block{gap:var(--sp-3);flex-direction:column;display:flex}.track-block__head{align-items:center;gap:var(--sp-3);display:flex}.track-block__icon{border-radius:var(--radius-md);background:var(--track-soft,var(--bg-subtle));width:44px;height:44px;font-size:var(--fs-lg);place-items:center;display:grid}.track-block__title{font-size:var(--fs-xl);margin:0}.track-block__count{font-size:var(--fs-sm);color:var(--text-muted);margin-left:auto;font-weight:700}.lesson-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:0;padding:0;list-style:none;display:grid}.lesson-tile{align-items:center;gap:var(--sp-3);min-height:64px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);transition:transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);font-weight:600;text-decoration:none;display:flex}.lesson-tile:hover{border-color:var(--track-strong,var(--primary));box-shadow:var(--shadow-sm);text-decoration:none;transform:translateY(-1px)}.lesson-tile__num{background:var(--track-soft,var(--bg-subtle));width:40px;height:40px;color:var(--track-strong,var(--text-muted));font-size:var(--fs-md);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.lesson-tile__title{font-size:var(--fs-sm);min-width:0;line-height:1.3}.lesson-tile--done{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.lesson-tile--done .lesson-tile__num{background:var(--success);color:var(--on-success)}.lesson-tile--next{border:2px solid var(--track-strong,var(--primary))}.dashboard__rewards{gap:var(--sp-3);flex-direction:column;display:flex}@media screen and (max-width:860px){.big-continue{padding:var(--sp-5);align-items:stretch;gap:var(--sp-4);flex-direction:column}.big-continue__cta{width:100%}.quick-stats{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr))}.quick-stat dd{font-size:var(--fs-md)}.lesson-grid{grid-template-columns:1fr}}@media screen and (max-width:520px){.quick-stat{padding:var(--sp-3) var(--sp-2)}.quick-stat dt{font-size:.6875rem}}.landing--simple .landing-footer--simple{padding:var(--sp-6) var(--sp-4)}.landing-simple{align-items:center;gap:var(--sp-10);max-width:860px;padding:var(--sp-10) var(--sp-5) var(--sp-12);text-align:center;flex-direction:column;margin:0 auto;display:flex}.hello{align-items:center;gap:var(--sp-4);flex-direction:column;max-width:640px;display:flex}.hello__title{letter-spacing:-.02em;margin:0;font-size:clamp(2rem,6vw,3.25rem);line-height:1.1}.hello__accent{color:var(--primary-text)}.hello__lead{font-size:var(--fs-md);color:var(--text-muted);max-width:480px;margin:0}.hello__cta{min-width:240px;margin-top:var(--sp-2)}.hello__guest{font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;padding:var(--sp-2);min-height:var(--touch-target);background:0 0;border:0;text-decoration:underline}.hello__guest:hover{color:var(--text)}.hello-points{gap:var(--sp-4);grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.hello-point{align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);border-radius:var(--radius-xl);background:var(--bg-elevated);border:2px solid var(--border);flex-direction:column;display:flex}.hello-point__icon{font-size:2.5rem;line-height:1}.hello-point__title{font-size:var(--fs-lg);margin:0}.hello-point__text{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.hello-steps{align-items:center;gap:var(--sp-4);flex-direction:column;width:100%;display:flex}.hello-steps__title{font-size:var(--fs-xl);margin:0}.hello-steps__list{gap:var(--sp-3);text-align:left;flex-direction:column;width:100%;max-width:480px;margin:0;padding:0;list-style:none;display:flex}.hello-step{align-items:center;gap:var(--sp-3);font-size:var(--fs-md);font-weight:600;display:flex}.hello-step__num{background:var(--primary-soft);width:40px;height:40px;color:var(--primary-text);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.hello-teacher{font-size:var(--fs-sm);color:var(--text-muted)}.hello-teacher__text{margin:0 0 var(--sp-2)}@media screen and (max-width:720px){.landing-simple{padding:var(--sp-6) var(--sp-4) var(--sp-10);gap:var(--sp-8)}.hello-points{gap:var(--sp-3);grid-template-columns:1fr}.hello-point{text-align:left;padding:var(--sp-4);gap:var(--sp-4);flex-direction:row}.hello-point__icon{flex:none;font-size:2rem}.hello__cta{width:100%}}.auth__consent{border:1px solid var(--border,#e3e8ee);background:var(--surface-2,#f8fafc);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin:4px 0 14px;padding:12px 14px;transition:border-color .15s;display:flex}.auth__consent:hover{border-color:var(--accent,#2ecc8f)}.auth__consent-check{width:18px;height:18px;accent-color:var(--accent,#2ecc8f);cursor:pointer;flex:none;margin-top:1px}.auth__consent-text{color:var(--text-soft,#475569);font-size:12px;line-height:1.5}.auth__consent-text a{color:var(--accent,#2ecc8f);text-underline-offset:2px;text-decoration:underline}.auth__consent-error{color:#b91c1c;margin:-8px 0 12px;font-size:12px}.auth__oauth--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}[data-theme=dark] .auth__consent{background:#151d29;border-color:#24303f}[data-theme=dark] .auth__consent-text{color:#9fb0c3}[data-theme=dark] .auth__consent-error{color:#fca5a5}.level-filter{flex-wrap:wrap;gap:6px;margin:12px 0 14px;display:flex}.level-filter__btn{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);color:var(--text-soft,#475569);font:inherit;cursor:pointer;border-radius:999px;align-items:baseline;gap:5px;padding:6px 13px;font-size:13px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.level-filter__btn:hover{border-color:var(--accent,#2ecc8f)}.level-filter__btn--active{border-color:var(--accent,#2ecc8f);color:var(--text,#0f172a);background:#2ecc8f1f}.level-filter__hint{color:var(--text-muted,#94a3b8);font-size:11px;font-weight:500}[data-theme=dark] .level-filter__btn{color:#9fb0c3;background:#151d29;border-color:#24303f}[data-theme=dark] .level-filter__btn--active{border-color:var(--accent,#2ecc8f);color:#e8eef5;background:#2ecc8f29}[data-theme=dark] .level-filter__hint{color:#7c8b9e}.lesson-tile--locked{opacity:.62}.lesson-tile--locked:hover{opacity:.9}.lesson{min-height:calc(100vh - var(--header-height));background:var(--bg);flex-direction:column;display:flex}.lesson--loading{min-height:calc(100vh - var(--header-height))}.lesson__error{padding:var(--sp-8) var(--sp-6)}.lesson__split{grid-template-columns:var(--lesson-left-width) minmax(0, 1fr);gap:var(--lesson-gap);height:calc(100vh - var(--header-height));padding:var(--lesson-gap);align-items:stretch;display:grid;overflow:hidden}.lesson__left{overscroll-behavior:contain;min-width:0;padding-right:var(--sp-2);overflow-y:auto}.lesson__right{gap:var(--sp-3);flex-direction:column;min-width:0;min-height:0;display:flex}.lesson__theory{gap:var(--sp-4);padding-bottom:var(--sp-8);flex-direction:column;display:flex}.lesson__header{gap:var(--sp-2);flex-direction:column;display:flex}.lesson__title{font-size:var(--fs-xl);align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin:0;display:flex}.lesson-block{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:var(--shadow-xs)}.lesson-block--task{border-left:4px solid var(--track-strong,var(--primary))}.lesson-block__title{font-size:var(--fs-md);margin:0 0 var(--sp-3);align-items:center;gap:var(--sp-2);display:flex}.lesson-task__md{font-size:var(--fs-base)}.lesson-task__subtitle{font-size:var(--fs-sm);color:var(--text-muted);margin:var(--sp-4) 0 var(--sp-2);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.lesson-task__schema,.lesson-task__examples{margin-top:var(--sp-4)}.lesson-task__sources{margin-top:var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted)}.lesson-task__sources summary{cursor:pointer;font-weight:600}.lesson-task__sources ul{margin:var(--sp-2) 0 0;padding-left:var(--sp-5)}.example{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);background:var(--bg-inset);margin-bottom:var(--sp-2)}.example__row{gap:var(--sp-2);align-items:flex-start;display:flex}.example__row+.example__row{margin-top:var(--sp-2)}.example__label{font-size:var(--fs-xs);color:var(--text-muted);min-width:52px;padding-top:2px;font-weight:700}.example__pre{flex:1;min-width:0;margin:0}.theory-list{gap:var(--sp-4);flex-direction:column;display:flex}.theory-code{margin:0}.theory-code__caption{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-2);font-weight:600}.theory-code__pre,.md-pre{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--bg-code);color:var(--text-on-code);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre;tab-size:4;margin:0;line-height:1.6;overflow-x:auto}.callout{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-inset);border-left-width:4px;display:flex}.callout__icon{flex:none;line-height:1.5}.callout__body{min-width:0}.callout__title{margin-bottom:var(--sp-1);font-size:var(--fs-sm);display:block}.callout__text .md-p:last-child{margin-bottom:0}.callout--info{background:var(--info-soft);border-left-color:var(--info)}.callout--tip{background:var(--success-soft);border-left-color:var(--success)}.callout--warning{background:var(--warning-soft);border-left-color:var(--warning)}.markdown{color:var(--text);overflow-wrap:anywhere;line-height:1.65}.markdown .md-p{margin:0 0 var(--sp-3)}.markdown .md-p:last-child{margin-bottom:0}.markdown .md-heading{margin:var(--sp-4) 0 var(--sp-2);font-family:var(--font-display);line-height:1.25}.markdown .md-h1{font-size:var(--fs-xl)}.markdown .md-h2{font-size:var(--fs-lg)}.markdown .md-h3{font-size:var(--fs-md)}.markdown .md-h4,.markdown .md-h5,.markdown .md-h6{font-size:var(--fs-base)}.markdown .md-heading:first-child{margin-top:0}.markdown .md-list{margin:0 0 var(--sp-3);padding-left:var(--sp-6);gap:var(--sp-1);flex-direction:column;display:flex}.markdown .md-list--ordered{list-style:decimal}.markdown .md-quote{margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-4);border-left:4px solid var(--border-strong);background:var(--bg-inset);border-radius:var(--radius-sm);color:var(--text-muted)}.markdown .md-hr{border:0;border-top:1px solid var(--border);margin:var(--sp-4) 0}.markdown .md-code{background:var(--bg-subtle);border:1px solid var(--border);font-family:var(--font-mono);white-space:nowrap;border-radius:6px;padding:.1em .38em;font-size:.92em}.markdown .md-codeblock{margin:0 0 var(--sp-3);position:relative}.markdown .md-codeblock__lang{top:var(--sp-2);left:var(--sp-3);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--code-comment);font-family:var(--font-mono);position:absolute}.markdown .md-codeblock__lang+.md-pre{padding-top:calc(var(--sp-3) + 12px)}.markdown .md-codeblock__copy{top:var(--sp-1);right:var(--sp-1);color:var(--text-on-code);background:color-mix(in srgb, var(--bg-code) 70%, transparent);position:absolute}.markdown .md-codeblock__copy:hover{background:color-mix(in srgb, var(--bg-code) 90%, transparent);color:var(--text-on-code)}.markdown-inline{overflow-wrap:anywhere}.markdown-inline .md-code{background:var(--bg-subtle);border:1px solid var(--border);font-family:var(--font-mono);border-radius:6px;padding:.1em .38em}.schema__tables{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.schema__details{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-inset);padding:var(--sp-2) var(--sp-3)}.schema__summary{cursor:pointer;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);min-height:32px;font-weight:600;display:flex}.schema__table-icon{font-size:var(--fs-sm)}.schema__table-name{font-family:var(--font-mono)}.schema__table-count{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;font-weight:400}.schema__table-desc{font-size:var(--fs-xs);color:var(--text-muted);margin:var(--sp-2) 0}.schema__columns{border-collapse:collapse;width:100%;font-size:var(--fs-xs);margin-top:var(--sp-2)}.schema__columns th,.schema__columns td{text-align:left;border-top:1px solid var(--border);vertical-align:top;padding:4px 6px}.schema__columns th{color:var(--text-muted);font-weight:700}.schema__type{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap}.schema__col-desc{color:var(--text-muted);min-width:120px}.schema__pk{margin-left:var(--sp-1);font-size:var(--fs-xs);padding:0 6px}.hints{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);gap:var(--sp-3);flex-direction:column;display:flex}.hints__head{align-items:center;gap:var(--sp-2);display:flex}.hints__title{font-size:var(--fs-md);align-items:center;gap:var(--sp-2);margin:0;display:flex}.hints__note{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.hint__solution-title{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--text);font-weight:700}.hint{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3);background:var(--bg-inset);gap:var(--sp-2);animation:hint-in var(--dur) var(--ease);flex-direction:column;display:flex}.hint--level-3{border-color:var(--warning);background:var(--warning-soft)}@keyframes hint-in{0%{opacity:0;transform:translateY(-4px)}}.hint__head{align-items:center;gap:var(--sp-2);display:flex}.hint__text .md-p{margin-bottom:var(--sp-2)}.hint__code{gap:var(--sp-2);flex-direction:column;align-items:flex-start;display:flex}.hint__code .md-pre,.hint__solution .md-pre{width:100%}.hint__solution{gap:var(--sp-2);flex-direction:column;align-items:flex-start;display:flex}.hints__error{color:var(--danger);font-size:var(--fs-sm);margin:0}.hints__done{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.lesson__editor-pane{gap:var(--sp-2);flex-direction:column;height:100%;min-height:0;display:flex}.save-state{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:4px;font-weight:600;display:inline-flex}.save-state--saved{color:var(--success)}.save-state--offline{color:var(--warning)}.save-state--error{color:var(--danger)}.lesson__editor{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.lesson__editor-box{flex:auto;min-height:0;overflow:hidden}.lesson__splitter{cursor:row-resize;background:var(--bg-subtle);border-block:1px solid var(--border);touch-action:none;flex:none;place-items:center;height:12px;display:grid}:is(.lesson__splitter:hover,.lesson__splitter:focus-visible){background:var(--bg-inset)}.lesson__splitter-grip{border-radius:var(--radius-pill);background:var(--border-strong);width:44px;height:4px}.lesson__console-head{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-elevated);flex:none;display:flex}.lesson__console-title{font-size:var(--fs-sm);margin:0;font-weight:700}.lesson__stdin{padding:var(--sp-2) var(--sp-3) 0}.lesson__stdin textarea{min-height:60px}.lesson__result{min-height:0;padding:var(--sp-3);flex:auto;overflow:auto}.lesson__check-fail{padding:var(--sp-2) var(--sp-3);background:var(--danger-soft);color:var(--danger);border-top:1px solid var(--border);font-size:var(--fs-sm);flex:none}.lesson__success{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);background:var(--success-soft);border:1px solid var(--success);animation:success-pop var(--dur-slow) var(--ease);display:flex}@keyframes success-pop{0%{opacity:0;transform:scale(.96)}60%{transform:scale(1.01)}to{opacity:1;transform:scale(1)}}.lesson__success-check{background:var(--success);width:36px;height:36px;color:var(--on-success);font-size:var(--fs-lg);animation:check-pop .52s var(--ease);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}@keyframes check-pop{0%{transform:scale(0)}70%{transform:scale(1.15)}to{transform:scale(1)}}.lesson__success-text{color:var(--success);font-size:var(--fs-sm);flex-direction:column;display:flex}.code-editor{width:100%;height:100%;min-height:240px;position:relative}.code-editor__monaco{position:absolute;inset:0}.code-editor__loading{padding:var(--sp-4);background:var(--bg-elevated);align-items:flex-start;display:flex;position:absolute;inset:0}.code-editor--error{padding:var(--sp-3);height:auto;overflow:auto}.code-editor__fallback{min-height:260px}.editor-error-line{background:color-mix(in srgb, var(--danger) 18%, transparent);border-left:3px solid var(--danger)}.console{gap:var(--sp-3);flex-direction:column;height:100%;display:flex}.console--running,.console--empty{justify-content:center;align-items:center;gap:var(--sp-2);min-height:120px;color:var(--text-muted);font-size:var(--fs-sm);flex-direction:row;display:flex}.console__hint{color:var(--text-subtle);font-size:var(--fs-sm);text-align:center}.console__screen{border-radius:var(--radius-md);background:var(--bg-code);color:var(--text-on-code);border:1px solid var(--border);overflow:hidden}.console__titlebar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb, var(--text-on-code) 8%, var(--bg-code));border-bottom:1px solid color-mix(in srgb, var(--text-on-code) 12%, transparent);display:flex}.console__dot{background:var(--text-subtle);border-radius:50%;width:9px;height:9px}.console__dot--a{background:var(--rose-500)}.console__dot--b{background:var(--amber-500)}.console__dot--c{background:var(--python-400)}.console__label{font-size:var(--fs-xs);color:var(--text-on-code);opacity:.8;font-weight:600}.console__time{font-size:var(--fs-xs);opacity:.65;font-variant-numeric:tabular-nums;margin-left:auto}.console__transcript{padding:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere;max-height:340px;line-height:1.6;overflow:auto}.console__line{display:block}.console__line--input{flex-wrap:wrap;gap:4px;display:flex}.console__prompt{color:var(--code-keyword)}.console__typed{color:var(--code-string);text-underline-offset:3px;text-decoration:underline}.console__stdout{font-family:inherit;font-size:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.console__statusline{padding:0 var(--sp-3) var(--sp-3)}.console__truncated{padding:0 var(--sp-3) var(--sp-3);color:var(--amber-500);font-size:var(--fs-xs);margin:0}.friendly-error{border-radius:var(--radius-md);border:1px solid var(--danger);background:var(--danger-soft);padding:var(--sp-3) var(--sp-4);color:var(--danger);font-size:var(--fs-sm)}.friendly-error__head{gap:var(--sp-2);align-items:flex-start;display:flex}.friendly-error__title{font-size:var(--fs-base)}.friendly-error__line{margin-left:var(--sp-2);color:inherit;border-radius:var(--radius-pill);font-size:var(--fs-xs);background:0 0;border:1px solid;padding:1px 8px;font-weight:600}.friendly-error__message{margin:var(--sp-2) 0 0}.friendly-error__fix{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text)}.friendly-error__details{margin-top:var(--sp-2);font-size:var(--fs-xs)}.friendly-error__details summary{cursor:pointer;font-weight:600}.friendly-error__trace{margin:var(--sp-2) 0 0;padding:var(--sp-2);background:var(--bg-code);color:var(--text-on-code);border-radius:var(--radius-sm);white-space:pre-wrap;max-height:200px;font-size:var(--fs-xs);overflow:auto}.sql-result{gap:var(--sp-3);flex-direction:column;display:flex}.sql-result__bar{justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.sql-result__count{font-size:var(--fs-sm);color:var(--text-muted);margin:0;font-weight:600}.sql-result__table-wrap{background:var(--bg-elevated);max-height:360px;overflow:auto}.sql-result__table{font-size:var(--fs-sm)}.sql-result__table thead th{background:var(--track-soft,var(--bg-subtle));color:var(--track-strong,var(--text-muted))}.sql-result__rownum{color:var(--text-subtle);font-variant-numeric:tabular-nums;text-align:right;width:1%;font-size:var(--fs-xs);background:var(--bg-inset)}.sql-result__note{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.lesson__mobile{min-height:calc(100vh - var(--topbar-height) - var(--bottom-nav-height));padding-bottom:var(--sp-2);flex-direction:column;display:flex}.lesson__tabs{top:var(--topbar-height);z-index:var(--z-sticky);gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;position:sticky}.lesson__tab{border-radius:var(--radius-md);background:var(--bg-subtle);min-height:44px;color:var(--text-muted);font-size:var(--fs-sm);border:1px solid #0000;flex:1;font-weight:600}.lesson__tab[aria-selected=true]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.lesson__panel{padding:var(--sp-3);outline:none;flex:auto}.lesson__panel-code,.lesson__panel-result{gap:var(--sp-2);flex-direction:column;min-height:60vh;display:flex}.lesson__panel-code .code-editor{border:1px solid var(--border);border-radius:var(--radius-md);height:60vh;min-height:60vh;overflow:hidden}.lesson__sticky-actions{bottom:calc(var(--bottom-nav-height) + var(--sp-1));gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);display:flex;position:sticky}.lesson__sticky-actions .btn{flex:1}.lesson__success--mobile{bottom:calc(var(--bottom-nav-height) + 64px);margin:0 var(--sp-3) var(--sp-2);position:sticky}@media screen and (max-width:1023.98px){.lesson{min-height:auto}}@media screen and (max-width:720px){.lesson__title{font-size:var(--fs-lg)}.lesson-block,.hints{padding:var(--sp-4)}.lesson__tab{font-size:var(--fs-xs);padding:0 var(--sp-1)}}.lesson-head{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);background:var(--bg-elevated);border-bottom:1px solid var(--border);z-index:2;display:flex;position:sticky;top:0}.lesson-head__back{min-height:var(--touch-target);padding:0 var(--sp-3);border-radius:var(--radius-md);color:var(--text-muted);font-weight:700;font-size:var(--fs-sm);flex:none;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.lesson-head__back:hover{background:var(--bg-subtle);color:var(--text)}.lesson-head__center{flex-direction:column;flex:auto;gap:6px;min-width:0;max-width:560px;display:flex}.lesson-head__title{font-size:var(--fs-lg);font-family:var(--font-display);align-items:center;gap:var(--sp-2);min-width:0;margin:0;line-height:1.25;display:flex}.lesson-head__number{background:var(--track-soft,var(--primary-soft));min-width:34px;height:34px;color:var(--track-strong,var(--primary-text));font-size:var(--fs-sm);border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.lesson-head__spacer{flex:auto}.lesson-actions{gap:var(--sp-3);width:100%;display:flex}.lesson-actions__run,.lesson-actions__check{flex:1 1 0;min-width:0}.lesson__action-row{align-items:center;gap:var(--sp-3);display:flex}.lesson__more{min-height:56px;padding:0 var(--sp-4);border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;flex:none;font-weight:700}.lesson__more:hover{background:var(--bg-subtle);color:var(--text)}.lesson__settings{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex}.lesson__stdin{flex-direction:column;gap:6px;display:flex}.lesson__stdin-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:700}.lesson__reset{min-height:40px;padding:0 var(--sp-3);border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;align-self:flex-start;font-weight:600}.lesson__reset:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.lesson__result-box{gap:var(--sp-2);flex-direction:column;min-height:0;display:flex;overflow:hidden}.lesson__console-head{align-items:center;gap:var(--sp-2);padding:0 var(--sp-1);display:flex}.lesson__console-title{font-size:var(--fs-sm);font-family:var(--font-display);color:var(--text-muted);margin:0}.lesson__success{align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-lg);background:var(--success-soft);border:2px solid var(--success);flex-wrap:wrap}.lesson__success-text strong{font-size:var(--fs-lg)}.lesson__success-text{color:var(--success);font-weight:600}@media screen and (max-width:1023.98px){.lesson-head{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}.lesson-head__title{font-size:var(--fs-md)}.lesson__action-row,.lesson__settings{margin-inline:var(--sp-3)}.lesson__success--mobile{margin:0 var(--sp-3) var(--sp-2);flex-wrap:nowrap}}@media screen and (max-width:480px){.lesson-actions__run,.lesson-actions__check{padding:0 var(--sp-3);font-size:1rem}.lesson__more{padding:0 var(--sp-3)}}.lesson--phone .lesson-head{z-index:20;border-bottom:1px solid var(--border,#e3e8ee);gap:8px;padding:8px 12px;position:sticky;top:0}.lesson--phone .lesson-head__title{font-size:15px;line-height:1.25}.lesson--phone .lesson-head__number{padding:2px 7px;font-size:12px}.lesson--phone .lesson-head__back{min-height:36px;padding:0 10px;font-size:13px}.lesson--phone .lesson-head .progress{height:3px}.lesson--phone .lesson__tabs{gap:6px;padding:6px 10px}.lesson--phone .lesson__tab{border-radius:10px;min-height:38px;font-size:13px}.lesson--phone .lesson__action-row{z-index:25;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--bg-elevated,#fff);border-top:1px solid var(--border,#e3e8ee);margin:0;position:sticky;bottom:0;box-shadow:0 -2px 12px #0f172a14}.lesson--phone .lesson-actions__run,.lesson--phone .lesson-actions__check{border-radius:10px;min-height:44px;font-size:14px}.lesson--phone .lesson__more{border-radius:10px;min-height:44px;padding:0 12px;font-size:15px}.lesson--phone .lesson__mobile{padding-bottom:12px}[data-theme=dark] .lesson--phone .lesson-head{border-color:#24303f}[data-theme=dark] .lesson--phone .lesson__action-row{background:#151d29;border-color:#24303f;box-shadow:0 -2px 12px #0006}@media screen and (prefers-reduced-motion:reduce){.lesson--phone .lesson-head,.lesson--phone .lesson__action-row{scroll-behavior:auto}}.auth__qr{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.auth__qr-frame{background:#fff;border-radius:18px;justify-content:center;align-items:center;width:260px;height:260px;padding:12px;display:flex;box-shadow:0 8px 28px #0000002e}.auth__qr-frame img{object-fit:contain;width:100%;height:100%;display:block}.auth__qr-placeholder{color:#6c7784;font-size:14px}.auth__qr-steps{color:var(--text-soft,#5d6a76);margin:0;padding-left:22px;font-size:15px;line-height:1.7}.auth__qr-steps li::marker{color:var(--accent,#2ecc8f);font-weight:700}.auth__qr-hint{text-align:center;color:var(--text-muted,#8b95a1);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.auth__qr-refresh{font:inherit;color:var(--accent,#2ecc8f);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.auth__qr-refresh:hover{opacity:.75}@media screen and (prefers-color-scheme:dark){.auth__qr-frame{box-shadow:0 8px 28px #0000008c}}.auth__oauth{border:1px solid var(--border,#e3e8ee);color:#fff;background:#fc3f1d;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px 20px;font-size:15px;font-weight:600;text-decoration:none;transition:filter .15s,transform .1s;display:flex}.auth__oauth:hover{filter:brightness(1.08)}.auth__oauth:active{transform:translateY(1px)}.auth__oauth:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:2px}.auth__oauth-icon{color:#fc3f1d;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.auth__oauth--vk{color:#fff;background:#07f}.auth__oauth--vk:hover{background:#06d}.auth__oauth--vk .auth__oauth-icon--vk{color:#07f;letter-spacing:-.02em;background:#fff;font-size:11px;font-weight:800}[data-theme=dark] .auth__oauth--vk{color:#fff;background:#07f}[data-theme=dark] .auth__oauth--vk:hover{background:#06d}.auth__oauth+.auth__oauth{margin-top:12px}.auth__oauth+.auth__divider{margin-top:20px}.pay-return{background:var(--bg,#f6f8fa);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.pay-return__card{background:var(--surface,#fff);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:460px;padding:40px 32px;display:flex;box-shadow:0 8px 32px #0f172a14}.pay-return__card h1{color:var(--text,#0f172a);margin:0;font-size:24px;line-height:1.3}.pay-return__text{color:var(--text-soft,#475569);margin:0;font-size:15px;line-height:1.6}.pay-return__icon{border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:34px;font-weight:700;line-height:1;display:flex}.pay-return__icon--ok{color:#15803d;background:#dcfce7}.pay-return__icon--bad{color:#b91c1c;background:#fee2e2}.pay-return__spinner{border:4px solid #e2e8f0;border-top-color:var(--accent,#2ecc8f);border-radius:50%;width:56px;height:56px;animation:.9s linear infinite pay-return-spin}@keyframes pay-return-spin{to{transform:rotate(360deg)}}@media screen and (prefers-reduced-motion:reduce){.pay-return__spinner{border-top-color:#e2e8f0;border-right-color:var(--accent,#2ecc8f);animation:none}}.pay-return__note{margin:8px 0 0;font-size:13px}.pay-return__note a{color:var(--text-muted,#64748b)}[data-theme=dark] .pay-return{background:#0b111a}[data-theme=dark] .pay-return__card{background:#151d29;box-shadow:0 8px 32px #00000080}[data-theme=dark] .pay-return__card h1{color:#e8eef5}[data-theme=dark] .pay-return__text{color:#9fb0c3}[data-theme=dark] .pay-return__spinner{border-color:#24303f;border-top-color:var(--accent,#2ecc8f)}[data-theme=dark] .pay-return__icon--ok{color:#4ade80;background:#14361f}[data-theme=dark] .pay-return__icon--bad{color:#f87171;background:#3b1518}.buy{max-width:880px;margin:0 auto}.buy__title{color:var(--text,#0f172a);margin:0 0 8px;font-size:30px;line-height:1.2}.buy__lead{color:var(--text-soft,#475569);margin:0 0 24px;font-size:16px;line-height:1.6}.buy__already{color:#14532d;background:#dcfce7;border-radius:12px;margin-bottom:24px;padding:16px 20px;line-height:1.6}.buy__error{color:#991b1b;background:#fee2e2;border-radius:12px;margin-bottom:20px;padding:14px 18px}.buy__grid{gap:20px;margin-bottom:40px;display:grid}.buy__card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:18px;flex-direction:column;gap:12px;padding:28px;display:flex;position:relative}.buy__card--popular{border-color:var(--accent,#2ecc8f);border-width:2px;box-shadow:0 8px 24px #2ecc8f1f}.buy__badge{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 12px;font-size:11px;font-weight:700;position:absolute;top:-11px;left:28px}.buy__card-title{color:var(--text,#0f172a);margin:0;font-size:21px;line-height:1.3}.buy__card-short{color:var(--text-soft,#475569);margin:0;font-size:15px}.buy__price{align-items:baseline;gap:10px;margin:4px 0;display:flex}.buy__price-value{color:var(--accent,#2ecc8f);font-size:34px;font-weight:800;line-height:1}.buy__price-old{color:var(--text-muted,#94a3b8);font-size:17px;text-decoration:line-through}.buy__card-text{color:var(--text-soft,#475569);margin:0 0 8px;font-size:14px;line-height:1.6}.buy__how{background:var(--surface-2,#f8fafc);border-radius:16px;margin-bottom:32px;padding:24px}.buy__how h2{color:var(--text,#0f172a);margin:0 0 12px;font-size:18px}.buy__how ol{color:var(--text-soft,#475569);margin:0;padding-left:22px;line-height:1.8}.buy__how ol li::marker{color:var(--accent,#2ecc8f);font-weight:700}.buy__how p{color:var(--text-soft,#475569);margin:12px 0 0;font-size:14px;line-height:1.6}.buy__safe{border-top:1px solid var(--border,#e3e8ee);padding-top:12px;font-size:13px}.buy__back{margin:0;font-size:14px}[data-theme=dark] .buy__title,[data-theme=dark] .buy__card-title,[data-theme=dark] .buy__how h2{color:#e8eef5}[data-theme=dark] .buy__card{background:#151d29;border-color:#24303f}[data-theme=dark] .buy__card--popular{border-color:var(--accent,#2ecc8f);box-shadow:0 8px 24px #2ecc8f2e}[data-theme=dark] .buy__badge{color:#04291b}[data-theme=dark] .buy__how{background:#111a25}[data-theme=dark] .buy__already{color:#86efac;background:#14361f}[data-theme=dark] .buy__error{color:#fca5a5;background:#3b1518}.hello-support{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);text-align:center;border-radius:16px;max-width:560px;margin:32px auto 0;padding:24px}.hello-support__title{color:var(--text,#0f172a);margin:0 0 8px;font-size:19px}.hello-support__text{color:var(--text-soft,#475569);margin:0 0 16px;font-size:14px;line-height:1.6}.hello-support__cta{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-radius:10px;padding:11px 22px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.hello-support__cta:hover{filter:brightness(1.06)}[data-theme=dark] .hello-support{background:#151d29;border-color:#24303f}[data-theme=dark] .hello-support__title{color:#e8eef5}.buy-shell{background:var(--bg,#f6f8fa);min-height:100vh}.buy-header{justify-content:space-between;align-items:center;gap:16px;max-width:1040px;margin:0 auto;padding:16px 24px;display:flex}.buy-header__actions{align-items:center;gap:12px;display:flex}.buy-header__link{color:var(--accent,#2ecc8f);font-size:14px;font-weight:600;text-decoration:none}.buy-header__link:hover{text-underline-offset:3px;text-decoration:underline}[data-theme=dark] .buy-shell{background:#0b111a}.app-header__burger{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;padding:0;transition:border-color .15s,background .15s;display:inline-flex}.app-header__burger:hover{border-color:var(--border-strong,#cbd5e1)}.app-header__burger:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:2px}.burger{flex-direction:column;justify-content:space-between;width:20px;height:14px;display:flex}.burger span{background:var(--text,#0f172a);border-radius:2px;height:2px;transition:transform .2s,opacity .15s;display:block}.burger--open span:first-child{transform:translateY(6px)rotate(45deg)}.burger--open span:nth-child(2){opacity:0}.burger--open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.app-menu{z-index:40;justify-content:flex-start;padding-top:60px;display:flex;position:fixed;inset:0}@media screen and (min-width:1024px){.app-menu{padding-top:68px}}.app-menu__backdrop{cursor:pointer;background:#0f172a73;border:0;padding:0;animation:.15s app-menu-fade;position:absolute;inset:0}.app-menu__panel{background:var(--surface,#fff);flex-direction:column;gap:8px;width:min(320px,86vw);height:100%;padding:16px;animation:.2s app-menu-slide;display:flex;position:relative;overflow-y:auto;box-shadow:8px 0 32px #0f172a2e}.app-menu__head{border-bottom:1px solid var(--border,#e3e8ee);justify-content:flex-end;align-items:center;gap:12px;padding-bottom:12px;display:flex}.app-menu__close{border:1px solid var(--border,#e3e8ee);width:36px;height:36px;color:var(--text-soft,#475569);cursor:pointer;background:0 0;border-radius:10px;font-size:16px}.app-menu__close:hover{background:var(--surface-2,#f1f5f9)}.main-nav--menu{flex-direction:column;gap:2px;padding:8px 0;display:flex}.main-nav--menu .main-nav__link{color:var(--text,#0f172a);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.main-nav--menu .main-nav__link:hover{background:var(--surface-2,#f1f5f9)}.main-nav--menu .main-nav__link.is-active{color:#0a6b4a;background:#2ecc8f1f;font-weight:700}.main-nav--menu .main-nav__icon{font-size:18px}.app-menu__footer{border-top:1px solid var(--border,#e3e8ee);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:12px;display:flex}@keyframes app-menu-fade{0%{opacity:0}to{opacity:1}}@keyframes app-menu-slide{0%{transform:translate(-24px)}to{transform:translate(0)}}@media screen and (prefers-reduced-motion:reduce){.app-menu__backdrop,.app-menu__panel{animation:none}}[data-theme=dark] .app-header__burger{background:#151d29;border-color:#24303f}[data-theme=dark] .burger span{background:#e8eef5}[data-theme=dark] .app-menu__panel{background:#151d29;box-shadow:8px 0 32px #0009}[data-theme=dark] .app-menu__head,[data-theme=dark] .app-menu__footer{border-color:#24303f}[data-theme=dark] .app-menu__close{color:#9fb0c3;border-color:#24303f}[data-theme=dark] .app-menu__close:hover{background:#1d2836}[data-theme=dark] .main-nav--menu .main-nav__link{color:#e8eef5}[data-theme=dark] .main-nav--menu .main-nav__link:hover{background:#1d2836}[data-theme=dark] .main-nav--menu .main-nav__link.is-active{color:#4ade80;background:#2ecc8f2e}.app-menu__title{color:var(--text,#0f172a);margin:0;font-size:18px;font-weight:700}[data-theme=dark] .app-menu__title{color:#e8eef5}.app-menu__docs{border-top:1px solid var(--border,#e3e8ee);flex-direction:column;gap:2px;margin-top:12px;padding-top:12px;display:flex}.app-menu__docs .main-nav__link{color:var(--text-soft,#475569);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.app-menu__docs .main-nav__link:hover{background:var(--surface-2,#f1f5f9);color:var(--text,#0f172a)}.app-menu__docs .main-nav__icon{font-size:16px}[data-theme=dark] .app-menu__docs{border-color:#24303f}[data-theme=dark] .app-menu__docs .main-nav__link{color:#9fb0c3}[data-theme=dark] .app-menu__docs .main-nav__link:hover{color:#e8eef5;background:#1d2836}.app-menu__files{border-top:1px solid var(--border,#e3e8ee);flex-direction:column;gap:2px;margin-top:12px;padding-top:12px;display:flex}.app-menu__files .main-nav__link{color:var(--text-soft,#475569);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.app-menu__files .main-nav__link:hover{background:var(--surface-2,#f1f5f9);color:var(--text,#0f172a)}.app-menu__files .main-nav__icon{font-size:16px}.app-menu__hint{background:var(--surface-2,#f1f5f9);color:var(--text-muted,#94a3b8);letter-spacing:.03em;text-transform:uppercase;border-radius:6px;margin-left:auto;padding:1px 7px;font-size:10px;font-weight:700}[data-theme=dark] .app-menu__files{border-color:#24303f}[data-theme=dark] .app-menu__files .main-nav__link{color:#9fb0c3}[data-theme=dark] .app-menu__files .main-nav__link:hover{color:#e8eef5;background:#1d2836}[data-theme=dark] .app-menu__hint{color:#7c8b9e;background:#1d2836}.app-menu nav{padding-top:8px}.app-menu__files{margin-top:16px}.main-nav--desktop{flex-wrap:nowrap;justify-content:center;align-items:center;gap:2px;min-width:0;max-width:100%;display:flex}.main-nav--desktop .main-nav__link{color:var(--text-soft,#475569);white-space:nowrap;border-radius:10px;flex:none;align-items:center;gap:7px;padding:8px 11px;font-size:14px;font-weight:500;line-height:1.2;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.main-nav--desktop .main-nav__link:hover{background:var(--surface-2,#f1f5f9);color:var(--text,#0f172a)}.main-nav--desktop .main-nav__link.is-active{color:#0a6b4a;background:#2ecc8f1f;font-weight:700}.main-nav--desktop .main-nav__link:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:1px}.main-nav--desktop .main-nav__icon{flex:none;font-size:15px;line-height:1}.main-nav--desktop .main-nav__label{white-space:nowrap;flex:none}.app-header--compact .main-nav--desktop .main-nav__icon{display:none}.app-header--compact .main-nav--desktop .main-nav__link{padding:8px 10px}[data-theme=dark] .main-nav--desktop .main-nav__link{color:#9fb0c3}[data-theme=dark] .main-nav--desktop .main-nav__link:hover{color:#e8eef5;background:#1d2836}[data-theme=dark] .main-nav--desktop .main-nav__link.is-active{color:#4ade80;background:#2ecc8f2e}.desktop-only{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:12px;max-width:460px;margin:48px auto;padding:32px 24px;display:flex}.desktop-only__icon{font-size:44px;line-height:1}.desktop-only__title{color:var(--text,#0f172a);margin:0;font-size:21px;font-weight:700;line-height:1.3}.desktop-only__text{color:var(--text-soft,#475569);margin:0;font-size:15px;line-height:1.6}.desktop-only__list{color:var(--text-soft,#475569);flex-direction:column;gap:6px;margin:4px 0;padding:0;font-size:14px;line-height:1.5;list-style:none;display:flex}.desktop-only__list li:before{content:"✓ ";color:var(--accent,#2ecc8f);font-weight:700}.desktop-only__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:8px;display:flex}.desktop-only__link{color:var(--accent,#2ecc8f);font-size:14px;font-weight:600;text-decoration:none}.desktop-only__link:hover{text-underline-offset:3px;text-decoration:underline}.desktop-only__hint{border-top:1px solid var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);margin:8px 0 0;padding-top:12px;font-size:12px;line-height:1.5}.phone-notice{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 16px;display:flex}.phone-notice__icon{flex-shrink:0;font-size:18px;line-height:1.4}.phone-notice__text{color:#78350f;margin:0;font-size:13px;line-height:1.55}.phone-notice__text a{color:#92400e;font-weight:600}[data-theme=dark] .desktop-only{background:#151d29;border-color:#24303f}[data-theme=dark] .desktop-only__title{color:#e8eef5}[data-theme=dark] .desktop-only__text,[data-theme=dark] .desktop-only__list{color:#9fb0c3}[data-theme=dark] .desktop-only__hint{color:#7c8b9e;border-color:#24303f}[data-theme=dark] .phone-notice{background:#2a2110;border-color:#4d3a12}[data-theme=dark] .phone-notice__text{color:#fcd34d}[data-theme=dark] .phone-notice__text a{color:#fbbf24}@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]) .desktop-only{background:#151d29;border-color:#24303f}:root:not([data-theme=light]) .desktop-only__title{color:#e8eef5}:root:not([data-theme=light]) .desktop-only__text,:root:not([data-theme=light]) .desktop-only__list{color:#9fb0c3}:root:not([data-theme=light]) .phone-notice{background:#2a2110;border-color:#4d3a12}:root:not([data-theme=light]) .phone-notice__text{color:#fcd34d}}.app-bottomnav{z-index:40;padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);position:sticky;bottom:0;box-shadow:0 -2px 12px #0f172a0f}.main-nav--bottom{justify-content:space-between;align-items:center;gap:4px;max-width:520px;margin:0 auto;display:flex}.main-nav--bottom .main-nav__link{width:52px;height:42px;color:var(--text-muted,#94a3b8);border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:width .22s,background .18s,color .18s;display:flex}.main-nav--bottom .main-nav__icon{color:inherit;font-size:19px;line-height:1;transition:opacity .16s,transform .16s}.main-nav--bottom .main-nav__link:hover{background:var(--surface-2,#f1f5f9);color:var(--text-soft,#475569)}.main-nav--bottom .main-nav__link:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:2px}.main-nav--bottom .main-nav__link.is-active{color:#0a6b4a;background:#2ecc8f24;width:auto;min-width:52px;padding:0 14px}.main-nav--bottom .main-nav__link.is-active .main-nav__icon{opacity:0;pointer-events:none;position:absolute;transform:scale(.7)}.main-nav--bottom .main-nav__link{position:relative}.main-nav__active-mark{white-space:nowrap;align-items:center;gap:7px;display:none}.main-nav--bottom .main-nav__link.is-active .main-nav__active-mark{animation:.22s nav-mark-in;display:flex}.main-nav__active-glyph{font-size:17px;line-height:1}.main-nav__active-label{font-size:13px;font-weight:700;line-height:1}@keyframes nav-mark-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}[data-theme=dark] .app-bottomnav{background:#151d29;border-color:#24303f;box-shadow:0 -2px 12px #0006}[data-theme=dark] .main-nav--bottom .main-nav__link{color:#64748b}[data-theme=dark] .main-nav--bottom .main-nav__link:hover{color:#9fb0c3;background:#1d2836}[data-theme=dark] .main-nav--bottom .main-nav__link.is-active{color:#4ade80;background:#2ecc8f33}@media screen and (prefers-reduced-motion:reduce){.main-nav--bottom .main-nav__link,.main-nav--bottom .main-nav__icon,.main-nav--bottom .main-nav__link.is-active .main-nav__active-mark{transition:none;animation:none}}@media screen and (max-width:360px){.main-nav--bottom .main-nav__link{width:46px;height:38px}.main-nav--bottom .main-nav__link.is-active{padding:0 10px}.main-nav__active-label{font-size:12px}}.landing-footer{border-top:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);margin-top:48px}.landing-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;max-width:1200px;margin:0 auto;padding:32px 24px;display:flex}.landing-footer__brand{flex-direction:column;gap:8px;min-width:0;display:flex}.landing-footer__tagline{max-width:240px;color:var(--text-muted,#94a3b8);margin:0;font-size:12px;line-height:1.5}.landing-footer__links{flex-wrap:wrap;align-items:center;gap:10px 22px;min-width:0;display:flex}.landing-footer__links a{color:var(--text-soft,#475569);white-space:nowrap;font-size:13px;font-weight:500;text-decoration:none}.landing-footer__links a:hover{color:var(--accent,#2ecc8f);text-underline-offset:3px;text-decoration:underline}.landing-footer__legal{text-align:right;flex-direction:column;gap:4px;min-width:0;display:flex}.landing-footer__author{color:var(--text,#0f172a);margin:0;font-size:13px;font-weight:600}.landing-footer__meta{color:var(--text-muted,#94a3b8);margin:0;font-size:11px;line-height:1.5}.landing-footer__meta a{color:var(--accent,#2ecc8f);text-decoration:none}.landing-footer__meta a:hover{text-decoration:underline}.landing-footer--stacked .landing-footer__inner{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:28px 20px}.landing-footer--stacked .landing-footer__brand{align-items:center}.landing-footer--stacked .landing-footer__tagline{text-align:center;max-width:100%}.landing-footer--stacked .landing-footer__links{flex-direction:column;align-items:stretch;gap:0;width:100%;max-width:320px}.landing-footer--stacked .landing-footer__links a{border-bottom:1px solid var(--border,#e3e8ee);text-align:center;padding:13px 8px;font-size:14px;display:block}.landing-footer--stacked .landing-footer__links a:last-child{border-bottom:0}.landing-footer--stacked .landing-footer__legal{border-top:1px solid var(--border,#e3e8ee);text-align:center;align-items:center;width:100%;padding-top:16px}[data-theme=dark] .landing-footer{background:#0d1117;border-color:#24303f}[data-theme=dark] .landing-footer__links a{color:#9fb0c3}[data-theme=dark] .landing-footer__links a:hover{color:#4ade80}[data-theme=dark] .landing-footer__author{color:#e8eef5}[data-theme=dark] .landing-footer__tagline,[data-theme=dark] .landing-footer__meta{color:#7c8b9e}[data-theme=dark] .landing-footer--stacked .landing-footer__links a,[data-theme=dark] .landing-footer--stacked .landing-footer__legal{border-color:#24303f}.tutor-hint{margin-top:12px}.tutor-hint__btn{border:1px solid var(--accent,#2ecc8f);color:#0a6b4a;font:inherit;cursor:pointer;background:#2ecc8f1a;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.tutor-hint__btn:hover:not(:disabled){background:#2ecc8f2e}.tutor-hint__btn:disabled{opacity:.6;cursor:default}.tutor-hint__btn:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:2px}.tutor-hint__cat{font-size:17px;line-height:1}.tutor-hint__problem{color:#b91c1c;margin:8px 0 0;font-size:13px}.tutor-hint__answer{border:1px solid var(--border,#e3e8ee);border-left:3px solid var(--accent,#2ecc8f);background:var(--surface-2,#f8fafc);border-radius:12px;padding:14px 16px}.tutor-hint__head{color:var(--text,#0f172a);align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.tutor-hint__left{color:var(--text-muted,#94a3b8);margin-left:auto;font-size:12px;font-weight:400}.tutor-hint__again{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:4px 10px;font-size:12px}.tutor-hint__again:hover:not(:disabled){background:var(--surface,#fff)}.tutor-hint__again:disabled{opacity:.5;cursor:default}.tutor-hint__text{color:var(--text,#0f172a);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.6}.tutor-hint__buy{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:8px;margin-top:12px;padding:8px 14px;font-size:13px;font-weight:600}[data-theme=dark] .tutor-hint__btn{color:#4ade80;background:#2ecc8f29}[data-theme=dark] .tutor-hint__btn:hover:not(:disabled){background:#2ecc8f42}[data-theme=dark] .tutor-hint__answer{border-color:#24303f;border-left-color:var(--accent,#2ecc8f);background:#111a25}[data-theme=dark] .tutor-hint__head,[data-theme=dark] .tutor-hint__text{color:#e8eef5}[data-theme=dark] .tutor-hint__again{color:#9fb0c3;border-color:#24303f}[data-theme=dark] .tutor-hint__again:hover:not(:disabled){background:#1d2836}[data-theme=dark] .tutor-hint__problem{color:#fca5a5}.tutor-page__empty{border:1px dashed var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);text-align:center;border-radius:12px;margin:0;padding:20px;font-size:14px}.tutor-card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;margin-bottom:28px;padding:20px}.tutor-card--empty{text-align:center}.tutor-card__title{color:var(--text,#0f172a);margin:0 0 8px;font-size:17px;font-weight:700}.tutor-card__text{color:var(--text-soft,#475569);margin:0 0 14px;font-size:14px;line-height:1.6}.tutor-card__stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.tutor-stat{border:1px solid var(--border,#e3e8ee);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.tutor-stat--accent{border-color:var(--accent,#2ecc8f);background:#2ecc8f14}.tutor-stat__label{color:var(--text-soft,#475569);font-size:12px}.tutor-stat__value{color:var(--text,#0f172a);font-size:28px;font-weight:800;line-height:1.1}.tutor-card__warn{border-top:1px solid var(--border,#e3e8ee);margin-top:14px;padding-top:14px}.tutor-card__warn p{color:#b45309;margin:0 0 10px;font-size:13px}.tutor-card__cta{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-radius:10px;padding:10px 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.tutor-how,.tutor-can{margin-bottom:28px}.tutor-how__title{color:var(--text,#0f172a);margin:0 0 14px;font-size:17px;font-weight:700}.tutor-steps{flex-direction:column;gap:10px;margin:0 0 14px;padding:0;list-style:none;display:flex}.tutor-step{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.tutor-step__num{background:var(--accent,#2ecc8f);width:28px;height:28px;color:var(--on-accent,#fff);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:inline-flex}.tutor-step__text{color:var(--text,#0f172a);font-size:14px;line-height:1.55}.tutor-how__hint{color:var(--text-muted,#94a3b8);margin:0 0 16px;font-size:13px;line-height:1.6}.tutor-how__cta{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-radius:10px;padding:12px 22px;font-size:15px;font-weight:700;text-decoration:none;display:inline-block}.tutor-can__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tutor-can__item{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);color:var(--text-soft,#475569);border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:14px;line-height:1.55;display:flex}.tutor-can__icon{flex:none;font-size:18px;line-height:1.4}.tutor-can__item strong{color:var(--text,#0f172a)}[data-theme=dark] .tutor-card,[data-theme=dark] .tutor-step,[data-theme=dark] .tutor-can__item{background:#151d29;border-color:#24303f}[data-theme=dark] .tutor-stat{border-color:#24303f}[data-theme=dark] .tutor-stat--accent{border-color:var(--accent,#2ecc8f);background:#2ecc8f24}[data-theme=dark] .tutor-card__title,[data-theme=dark] .tutor-stat__value,[data-theme=dark] .tutor-how__title,[data-theme=dark] .tutor-step__text,[data-theme=dark] .tutor-can__item strong{color:#e8eef5}[data-theme=dark] .tutor-card__text,[data-theme=dark] .tutor-stat__label,[data-theme=dark] .tutor-can__item{color:#9fb0c3}[data-theme=dark] .tutor-card__warn{border-color:#24303f}[data-theme=dark] .tutor-card__warn p{color:#fcd34d}[data-theme=dark] .tutor-page__empty{color:#7c8b9e;border-color:#24303f}.owner-cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:28px;display:grid}.owner-card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;flex-direction:column;gap:6px;padding:16px;display:flex}.owner-card--accent{border-color:var(--accent,#2ecc8f);background:#2ecc8f14}.owner-card__icon{font-size:20px;line-height:1}.owner-card__label{color:var(--text-soft,#475569);font-size:12px;font-weight:500}.owner-card__value{color:var(--text,#0f172a);font-size:26px;font-weight:800;line-height:1.1}.owner-section{margin-bottom:32px}.owner-section__title{color:var(--text,#0f172a);align-items:center;gap:8px;margin:0 0 12px;font-size:17px;font-weight:700;display:flex}.owner-hint{color:var(--text-muted,#94a3b8);margin:-4px 0 12px;font-size:12px}.owner-badge{color:#0a6b4a;background:#2ecc8f29;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.owner-empty{border:1px dashed var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);text-align:center;border-radius:12px;margin:0;padding:16px;font-size:14px}.owner-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin:0;padding:16px;font-size:14px}.owner-table-wrap{border:1px solid var(--border,#e3e8ee);border-radius:12px;overflow-x:auto}.owner-table{border-collapse:collapse;width:100%;font-size:14px}.owner-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#94a3b8);border-bottom:1px solid var(--border,#e3e8ee);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.owner-table td{color:var(--text,#0f172a);border-bottom:1px solid var(--border,#e3e8ee);white-space:nowrap;padding:11px 14px}.owner-table tr:last-child td{border-bottom:0}.owner-table__muted{color:var(--text-muted,#94a3b8);font-size:13px}.owner-chart{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;align-items:flex-end;gap:2px;height:140px;padding:12px 8px 0;display:flex;overflow:hidden}.owner-chart__col{flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex;position:relative}.owner-chart__bar-wrap{justify-content:center;align-items:flex-end;width:100%;height:100%;display:flex}.owner-chart__bar{background:var(--accent,#2ecc8f);border-radius:3px 3px 0 0;width:70%;min-width:2px;transition:height .2s}.owner-chart__value{color:var(--text-soft,#475569);font-size:9px;font-weight:700;position:absolute;bottom:100%}.owner-funnel{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.owner-funnel li{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;flex-direction:column;flex:130px;gap:4px;padding:14px;display:flex}.owner-funnel__num{color:var(--text,#0f172a);font-size:22px;font-weight:800}.owner-funnel__label{color:var(--text-soft,#475569);font-size:12px}.owner-online{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.owner-online li{border-bottom:1px solid var(--border,#e3e8ee);align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.owner-online li:last-child{border-bottom:0}.owner-online__dot{background:#22c55e;border-radius:50%;flex:none;width:8px;height:8px}.owner-online__name{color:var(--text,#0f172a);font-weight:600}.owner-online__path{color:var(--text-muted,#94a3b8);margin-left:auto;font-size:12px}.owner-status{background:var(--surface-2,#f1f5f9);color:var(--text-soft,#475569);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.owner-status--ok{color:#0a6b4a;background:#2ecc8f29}[data-theme=dark] .owner-card,[data-theme=dark] .owner-chart,[data-theme=dark] .owner-funnel li{background:#151d29;border-color:#24303f}[data-theme=dark] .owner-card--accent{border-color:var(--accent,#2ecc8f);background:#2ecc8f24}[data-theme=dark] .owner-card__label,[data-theme=dark] .owner-funnel__label,[data-theme=dark] .owner-hint{color:#9fb0c3}[data-theme=dark] .owner-card__value,[data-theme=dark] .owner-section__title,[data-theme=dark] .owner-funnel__num,[data-theme=dark] .owner-online__name{color:#e8eef5}[data-theme=dark] .owner-table-wrap,[data-theme=dark] .owner-table th,[data-theme=dark] .owner-table td,[data-theme=dark] .owner-online li{border-color:#24303f}[data-theme=dark] .owner-table td,[data-theme=dark] .owner-online li{color:#e8eef5}[data-theme=dark] .owner-empty{color:#7c8b9e;border-color:#24303f}[data-theme=dark] .owner-badge{color:#4ade80;background:#2ecc8f33}[data-theme=dark] .owner-status{color:#9fb0c3;background:#1d2836}[data-theme=dark] .owner-status--ok{color:#4ade80;background:#2ecc8f33}[data-theme=dark] .owner-error{color:#fca5a5;background:#3b1518;border-color:#7f1d1d}.admin-shield{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;line-height:1;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.admin-shield:hover{border-color:var(--accent,#2ecc8f);background:#2ecc8f1a}.admin-shield:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:2px}[data-theme=dark] .admin-shield{background:#151d29;border-color:#24303f}[data-theme=dark] .admin-shield:hover{border-color:var(--accent,#2ecc8f);background:#2ecc8f29}.ads-toggle{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);font:inherit;white-space:nowrap;cursor:pointer;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.ads-toggle--on{color:#b45309;background:#fffbeb;border-color:#fcd34d}.ads-toggle--on:hover:not(:disabled){background:#fef3c7}.ads-toggle--off{color:#0a6b4a;background:#2ecc8f1a;border-color:#2ecc8f73}.ads-toggle--off:hover:not(:disabled){background:#2ecc8f33}.ads-toggle--paid{color:var(--text-muted,#94a3b8);border-color:var(--border,#e3e8ee);background:var(--surface-2,#f1f5f9);cursor:default}.ads-toggle--loading{color:var(--text-muted,#94a3b8);cursor:default;background:0 0;border-color:#0000}.ads-toggle:disabled{opacity:.6;cursor:default}.ads-toggle:focus-visible{outline:2px solid var(--accent,#2ecc8f);outline-offset:1px}[data-theme=dark] .ads-toggle{background:#151d29;border-color:#24303f}[data-theme=dark] .ads-toggle--on{color:#fcd34d;background:#2a2110;border-color:#4d3a12}[data-theme=dark] .ads-toggle--on:hover:not(:disabled){background:#3a2e14}[data-theme=dark] .ads-toggle--off{color:#4ade80;background:#2ecc8f24;border-color:#2ecc8f59}[data-theme=dark] .ads-toggle--paid{color:#7c8b9e;background:#1d2836;border-color:#24303f}.public-header{z-index:50;border-bottom:1px solid var(--border,#e3e8ee);background:var(--bg-elevated,#fff);position:sticky;top:0}.public-header__inner{align-items:center;gap:12px;width:100%;max-width:1200px;min-height:64px;margin:0 auto;padding:10px 20px;display:flex}.public-header__actions{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.public-header__btn{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);white-space:nowrap;border-radius:10px;align-items:center;padding:9px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.public-header__btn:hover{filter:brightness(1.05)}.public-menu__footer{border-top:1px solid var(--border,#e3e8ee);flex-direction:column;gap:10px;margin-top:auto;padding-top:16px;display:flex}.public-menu__cta{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);text-align:center;border-radius:10px;padding:12px;font-size:15px;font-weight:700;text-decoration:none;display:block}.public-menu__link{color:var(--text-soft,#475569);text-align:center;font-size:13px;text-decoration:none}[data-theme=dark] .public-header{background:#0d1117;border-color:#24303f}[data-theme=dark] .public-menu__footer{border-color:#24303f}[data-theme=dark] .public-menu__link{color:#9fb0c3}.user-menu__item--stack{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.user-menu__item-main{align-items:center;gap:8px;display:inline-flex}.user-menu__item-sub{color:var(--text-muted,#94a3b8);padding-left:24px;font-size:11px;line-height:1.3}[data-theme=dark] .user-menu__item-sub{color:#7c8b9e}.bell{position:relative}.bell__trigger{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:17px;transition:border-color .15s,background .15s;display:inline-flex;position:relative}.bell__trigger:hover{border-color:var(--accent,#2ecc8f);background:#2ecc8f14}.bell__badge{color:#fff;text-align:center;background:#ef4444;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;line-height:18px;position:absolute;top:-5px;right:-5px}.bell__panel{z-index:var(--z-toast);border:1px solid var(--border,#e3e8ee);background:var(--bg-elevated,#fff);border-radius:14px;width:min(360px,100vw - 24px);overflow-y:auto;box-shadow:0 12px 32px #0f172a2e}.bell__head{border-bottom:1px solid var(--border,#e3e8ee);background:inherit;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.bell__head strong{color:var(--text,#0f172a);font-size:14px}.bell__clear{color:var(--accent,#2ecc8f);font:inherit;cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:600}.bell__empty{text-align:center;color:var(--text-muted,#94a3b8);margin:0;padding:24px 16px;font-size:13px}.bell__list{margin:0;padding:0;list-style:none}.bell__item{border-bottom:1px solid var(--border,#e3e8ee)}.bell__item:last-child{border-bottom:0}.bell__item--new{background:#2ecc8f12}.bell__link{color:inherit;align-items:flex-start;gap:10px;padding:12px 16px;text-decoration:none;display:flex}.bell__link:hover{background:var(--surface-2,#f1f5f9)}.bell__icon{flex:none;font-size:16px;line-height:1.4}.bell__text{flex-direction:column;gap:2px;min-width:0;display:flex}.bell__title{color:var(--text,#0f172a);font-size:13px;font-weight:600;line-height:1.4}.bell__body{color:var(--text-soft,#475569);overflow-wrap:anywhere;font-size:12px;line-height:1.45}.bell__time{color:var(--text-muted,#94a3b8);font-size:11px}[data-theme=dark] .bell__trigger,[data-theme=dark] .bell__panel{background:#151d29;border-color:#24303f}[data-theme=dark] .bell__head,[data-theme=dark] .bell__item{border-color:#24303f}[data-theme=dark] .bell__head strong,[data-theme=dark] .bell__title{color:#e8eef5}[data-theme=dark] .bell__body{color:#9fb0c3}[data-theme=dark] .bell__item--new{background:#2ecc8f1f}[data-theme=dark] .bell__link:hover{background:#1d2836}.teacher{display:block}.teacher-license{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;margin-bottom:24px;padding:18px 20px}.teacher-license__row{flex-wrap:wrap;gap:28px;display:flex}.teacher-license__label{color:var(--text-muted,#94a3b8);margin-bottom:4px;font-size:12px;display:block}.teacher-license__value{color:var(--text,#0f172a);font-size:22px;font-weight:800}.teacher-license__value--ok{color:#0a6b4a}.teacher-license__value--bad{color:#b91c1c}.teacher-notice{color:#0a6b4a;background:#2ecc8f1a;border:1px solid #2ecc8f59;border-radius:12px;margin:0 0 16px;padding:12px 16px;font-size:14px}.teacher-empty{border:1px dashed var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);text-align:center;border-radius:12px;margin:0;padding:20px;font-size:14px}.teacher-hint{color:var(--text-muted,#94a3b8);margin:8px 0 0;font-size:12px}.teacher-blocked{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:10px;max-width:460px;margin:48px auto;padding:32px 24px;display:flex}.teacher-blocked__icon{font-size:42px;line-height:1}.teacher-blocked h2{color:var(--text,#0f172a);margin:0;font-size:20px}.teacher-blocked p{color:var(--text-soft,#475569);margin:0;font-size:14px;line-height:1.6}.teacher-blocked__hint{color:var(--text-muted,#94a3b8);font-size:12px}.teacher-blocked__link{color:var(--accent,#2ecc8f);margin-top:8px;font-size:14px;font-weight:600;text-decoration:none}.teacher-section{margin-bottom:28px}.teacher-section__title{color:var(--text,#0f172a);align-items:center;gap:8px;margin:0 0 12px;font-size:17px;font-weight:700;display:flex}.teacher-count{background:var(--surface-2,#f1f5f9);color:var(--text-soft,#475569);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.teacher-create{flex-wrap:wrap;gap:10px;display:flex}.teacher-create .input{flex:220px;min-width:0}.teacher-create__btn{background:var(--accent,#2ecc8f);min-height:44px;color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 20px;font-size:14px;font-weight:700}.teacher-create__btn:disabled{opacity:.45;cursor:default}.teacher-classes{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.teacher-class{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex}.teacher-class--active{border-color:var(--accent,#2ecc8f);background:#2ecc8f14}.teacher-class__main{min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:auto;gap:2px;padding:4px;display:flex}.teacher-class__title{color:var(--text,#0f172a);font-size:15px;font-weight:600}.teacher-class__meta{color:var(--text-muted,#94a3b8);font-size:12px}.teacher-class__code{background:var(--surface-2,#f1f5f9);color:var(--text,#0f172a);letter-spacing:.04em;border-radius:8px;flex:none;padding:5px 10px;font-family:ui-monospace,monospace;font-size:13px;font-weight:700}.teacher-class__close{border:1px solid var(--border,#e3e8ee);width:32px;height:32px;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border-radius:8px;flex:none;font-size:13px}.teacher-class__close:hover{color:#b91c1c;border-color:#fca5a5}.teacher-table-wrap{border:1px solid var(--border,#e3e8ee);border-radius:12px;overflow-x:auto}.teacher-table{border-collapse:collapse;width:100%;font-size:14px}.teacher-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#94a3b8);border-bottom:1px solid var(--border,#e3e8ee);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.teacher-table td{border-bottom:1px solid var(--border,#e3e8ee);color:var(--text,#0f172a);white-space:nowrap;padding:11px 14px}.teacher-table tr:last-child td{border-bottom:0}.teacher-table strong{font-weight:600;display:block}.teacher-table__login{color:var(--text-muted,#94a3b8);font-size:11px;display:block}.teacher-table__muted{color:var(--text-muted,#94a3b8);font-size:12px}.teacher-status{align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.teacher-status__dot{border-radius:50%;width:8px;height:8px}.teacher-status--online{color:#0a6b4a}.teacher-status--online .teacher-status__dot{background:#22c55e}.teacher-status--recent{color:#b45309}.teacher-status--recent .teacher-status__dot{background:#f59e0b}.teacher-status--offline{color:var(--text-muted,#94a3b8)}.teacher-status--offline .teacher-status__dot{background:#cbd5e1}.teacher-remove{border:1px solid var(--border,#e3e8ee);width:30px;height:30px;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border-radius:8px;font-size:12px}.teacher-remove:hover{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}[data-theme=dark] .teacher-license,[data-theme=dark] .teacher-class,[data-theme=dark] .teacher-blocked{background:#151d29;border-color:#24303f}[data-theme=dark] .teacher-class--active{border-color:var(--accent,#2ecc8f);background:#2ecc8f24}[data-theme=dark] .teacher-license__value,[data-theme=dark] .teacher-section__title,[data-theme=dark] .teacher-class__title,[data-theme=dark] .teacher-blocked h2{color:#e8eef5}[data-theme=dark] .teacher-license__value--ok,[data-theme=dark] .teacher-status--online{color:#4ade80}[data-theme=dark] .teacher-status--recent{color:#fcd34d}[data-theme=dark] .teacher-class__code,[data-theme=dark] .teacher-count{color:#e8eef5;background:#1d2836}[data-theme=dark] .teacher-class__close,[data-theme=dark] .teacher-remove{color:#7c8b9e;border-color:#24303f}[data-theme=dark] .teacher-table-wrap,[data-theme=dark] .teacher-table th,[data-theme=dark] .teacher-table td{border-color:#24303f}[data-theme=dark] .teacher-table td{color:#e8eef5}[data-theme=dark] .teacher-empty{color:#7c8b9e;border-color:#24303f}[data-theme=dark] .teacher-notice{color:#4ade80;background:#2ecc8f24;border-color:#2ecc8f4d}[data-theme=dark] .teacher-blocked p{color:#9fb0c3}.join-class{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;margin:24px 0;padding:18px 20px}.join-class__title{color:var(--text,#0f172a);margin:0 0 12px;font-size:16px;font-weight:700}.join-class__list{flex-direction:column;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.join-class__item{background:#2ecc8f1a;border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:10px 14px;display:flex}.join-class__name{color:var(--text,#0f172a);font-size:15px;font-weight:700}.join-class__teacher{color:var(--text-soft,#475569);font-size:12px}.join-class__form{flex-wrap:wrap;gap:10px;display:flex}.join-class__input{letter-spacing:.06em;text-transform:uppercase;flex:220px;min-width:0;font-family:ui-monospace,monospace}.join-class__btn{background:var(--accent,#2ecc8f);min-height:44px;color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 20px;font-size:14px;font-weight:700}.join-class__btn:disabled{opacity:.45;cursor:default}.join-class__hint{color:var(--text-muted,#94a3b8);margin:10px 0 0;font-size:12px}.join-class__notice{color:#0a6b4a;margin:10px 0 0;font-size:13px}.join-class__problem{color:#b91c1c;margin:10px 0 0;font-size:13px}[data-theme=dark] .join-class{background:#151d29;border-color:#24303f}[data-theme=dark] .join-class__title,[data-theme=dark] .join-class__name{color:#e8eef5}[data-theme=dark] .join-class__item{background:#2ecc8f24}[data-theme=dark] .join-class__teacher{color:#9fb0c3}.licenses-section{margin-bottom:28px}.licenses-section__title{color:var(--text,#0f172a);align-items:center;gap:8px;margin:0 0 12px;font-size:17px;font-weight:700;display:flex}.licenses-count{background:var(--surface-2,#f1f5f9);color:var(--text-soft,#475569);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.licenses-form{flex-wrap:wrap;gap:10px;display:flex}.licenses-form__user{flex:260px;min-width:0}.licenses-form__preset{flex:0 220px}.licenses-form__btn{background:var(--accent,#2ecc8f);min-height:44px;color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 22px;font-size:14px;font-weight:700}.licenses-form__btn:disabled{opacity:.45;cursor:default}.licenses-hint{color:var(--text-muted,#94a3b8);margin:8px 0 0;font-size:12px}.licenses-notice{color:#0a6b4a;background:#2ecc8f1a;border:1px solid #2ecc8f59;border-radius:10px;margin:10px 0 0;padding:10px 14px;font-size:13px}.licenses-problem{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:10px 0 0;padding:10px 14px;font-size:13px}.license-empty{border:1px dashed var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);text-align:center;border-radius:12px;margin:0;padding:20px;font-size:14px}.licenses-table-wrap{border:1px solid var(--border,#e3e8ee);border-radius:12px;overflow-x:auto}.licenses-table{border-collapse:collapse;width:100%;font-size:14px}.licenses-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#94a3b8);border-bottom:1px solid var(--border,#e3e8ee);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.licenses-table td{border-bottom:1px solid var(--border,#e3e8ee);color:var(--text,#0f172a);white-space:nowrap;padding:11px 14px}.licenses-table tr:last-child td{border-bottom:0}.licenses-table strong{font-weight:600;display:block}.licenses-table__login{color:var(--text-muted,#94a3b8);font-size:11px;display:block}.licenses-status{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.licenses-status--ok{color:#0a6b4a;background:#2ecc8f29}.licenses-status--bad{color:#991b1b;background:#fef2f2}.licenses-revoke{border:1px solid var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:5px 10px;font-size:12px}.licenses-revoke:hover{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}[data-theme=dark] .licenses-table-wrap{border-color:#24303f}[data-theme=dark] .licenses-section__title,[data-theme=dark] .licenses-table td{color:#e8eef5}[data-theme=dark] .licenses-table th,[data-theme=dark] .licenses-table td{border-color:#24303f}[data-theme=dark] .licenses-count{color:#9fb0c3;background:#1d2836}[data-theme=dark] .license-empty{color:#7c8b9e;border-color:#24303f}[data-theme=dark] .licenses-status--ok{color:#4ade80;background:#2ecc8f33}[data-theme=dark] .licenses-notice{color:#4ade80;background:#2ecc8f24}[data-theme=dark] .licenses-problem{color:#fca5a5;background:#3b1518;border-color:#7f1d1d}.apply-teacher{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;margin:24px 0;padding:18px 20px}.apply-teacher__title{color:var(--text,#0f172a);margin:0 0 10px;font-size:16px;font-weight:700}.apply-teacher__text{color:var(--text-soft,#475569);margin:0 0 12px;font-size:14px;line-height:1.6}.apply-teacher__text--small{margin-bottom:8px;font-size:12px}.apply-teacher__badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.apply-teacher__badge--wait{color:#92400e;background:#fef3c7}.apply-teacher__status{margin-bottom:12px}.apply-teacher__rejected{color:#991b1b;background:#fef2f2;border-radius:10px;margin:0 0 10px;padding:10px 12px;font-size:13px}.apply-teacher__btn{background:var(--accent,#2ecc8f);min-height:40px;color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:10px;padding:0 18px;font-size:14px;font-weight:700}.apply-teacher__btn:disabled{opacity:.45;cursor:default}.apply-teacher__form{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.apply-teacher__label{color:var(--text-soft,#475569);flex-direction:column;gap:4px;font-size:12px;display:flex}.apply-teacher__row{flex-wrap:wrap;gap:10px;display:flex}.apply-teacher__cancel{border:1px solid var(--border,#e3e8ee);min-height:40px;color:var(--text-muted,#94a3b8);font:inherit;cursor:pointer;background:0 0;border-radius:10px;padding:0 16px;font-size:14px}.apply-teacher__invite{border-top:1px solid var(--border,#e3e8ee);margin-top:4px;padding-top:14px}.apply-teacher__code{letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,monospace}.apply-teacher__notice{color:#0a6b4a;margin:10px 0 0;font-size:13px}.apply-teacher__problem{color:#b91c1c;margin:10px 0 0;font-size:13px}.requests-section{margin-bottom:28px}.requests-seats{color:var(--text-soft,#475569);align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.requests-seats__input{width:100px}.requests-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.request-card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;padding:16px 18px}.request-card__head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.request-card__name{color:var(--text,#0f172a);font-size:15px;font-weight:700}.request-card__login{color:var(--text-muted,#94a3b8);font-size:12px}.request-card__date{color:var(--text-muted,#94a3b8);margin-left:auto;font-size:12px}.request-card__facts{grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 10px;font-size:13px;display:grid}.request-card__facts dt{color:var(--text-muted,#94a3b8)}.request-card__facts dd{color:var(--text,#0f172a);margin:0}.request-card__comment{border-left:3px solid var(--accent,#2ecc8f);background:var(--surface-2,#f8fafc);color:var(--text-soft,#475569);margin:0 0 12px;padding:10px 12px;font-size:13px;font-style:italic}.request-card__actions{flex-wrap:wrap;gap:8px;display:flex}.request-card__approve{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:700}.request-card__reject{color:#b91c1c;font:inherit;cursor:pointer;background:0 0;border:1px solid #fecaca;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:600}.request-card__reject:hover{background:#fef2f2}.requests-invite-btn{color:var(--on-accent,#fff);margin-bottom:12px}.requests-invite-btn:hover{filter:brightness(1.08)}.requests-invites{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.request-invite{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.request-invite__code{letter-spacing:.06em;color:var(--text,#0f172a);font-family:ui-monospace,monospace;font-size:14px;font-weight:700}.request-invite__meta{color:var(--text-muted,#94a3b8);font-size:12px}.request-invite__copy{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-left:auto;padding:4px 10px;font-size:11px}[data-theme=dark] .apply-teacher,[data-theme=dark] .request-card,[data-theme=dark] .request-invite{background:#151d29;border-color:#24303f}[data-theme=dark] .apply-teacher__title,[data-theme=dark] .request-card__name,[data-theme=dark] .request-card__facts dd,[data-theme=dark] .request-invite__code{color:#e8eef5}[data-theme=dark] .apply-teacher__text,[data-theme=dark] .apply-teacher__label,[data-theme=dark] .requests-seats{color:#9fb0c3}[data-theme=dark] .apply-teacher__invite{border-color:#24303f}[data-theme=dark] .request-card__comment{color:#9fb0c3;background:#1d2836}[data-theme=dark] .apply-teacher__rejected{color:#fca5a5;background:#3b1518}[data-theme=dark] .apply-teacher__notice{color:#4ade80}.pricing{display:block}.pricing-license{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;margin-bottom:16px;padding:14px 18px}.pricing-license__row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.pricing-license__status{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.pricing-license__status--ok{color:#0a6b4a;background:#2ecc8f29}.pricing-license__status--trial{color:#92400e;background:#fef3c7}.pricing-license__status--bad{color:#991b1b;background:#fef2f2}.pricing-license__status--none{background:var(--surface-2,#f1f5f9);color:var(--text-muted,#94a3b8)}.pricing-license__seats,.pricing-license__days{color:var(--text-soft,#475569);font-size:13px}.pricing-trial{border:1px solid var(--accent,#2ecc8f);background:#2ecc8f14;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;padding:18px 20px;display:flex}.pricing-trial__text{flex-direction:column;gap:2px;display:flex}.pricing-trial__text strong{color:var(--text,#0f172a);font-size:16px}.pricing-trial__text span{color:var(--text-soft,#475569);font-size:13px}.pricing-trial__btn{background:var(--accent,#2ecc8f);min-height:44px;color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:10px;padding:0 22px;font-size:14px;font-weight:700}.pricing-trial__btn:disabled{opacity:.5;cursor:default}.pricing-switch{background:var(--surface-2,#f1f5f9);border-radius:12px;gap:4px;margin-bottom:20px;padding:4px;display:inline-flex}.pricing-switch__btn{color:var(--text-soft,#475569);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:9px 18px;font-size:14px;font-weight:600;display:inline-flex}.pricing-switch__btn.is-active{background:var(--surface,#fff);color:var(--text,#0f172a);box-shadow:0 1px 4px #0f172a1a}.pricing-switch__discount{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:800}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:28px;display:grid}.pricing-card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;flex-direction:column;gap:6px;padding:18px;display:flex}.pricing-card--popular{border-color:var(--accent,#2ecc8f);background:#2ecc8f12}.pricing-card__badge{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);letter-spacing:.03em;text-transform:uppercase;border-radius:6px;align-self:flex-start;padding:2px 8px;font-size:10px;font-weight:800}.pricing-card__title{color:var(--text,#0f172a);margin:0;font-size:16px;font-weight:700}.pricing-card__seats{color:var(--text-soft,#475569);margin:0;font-size:13px}.pricing-card__price{align-items:baseline;gap:6px;margin-top:4px;display:flex}.pricing-card__price strong{color:var(--text,#0f172a);font-size:26px;font-weight:800}.pricing-card__period{color:var(--text-muted,#94a3b8);font-size:13px}.pricing-card__per{color:var(--text-soft,#475569);margin:0;font-size:12px}.pricing-card__saving{color:#0a6b4a;margin:0;font-size:12px;font-weight:700}.pricing-card__note{color:var(--text-muted,#94a3b8);margin:4px 0 8px;font-size:12px;line-height:1.5}.pricing-card__btn{background:var(--accent,#2ecc8f);min-height:40px;color:var(--on-accent,#fff);font:inherit;cursor:pointer;border:0;border-radius:9px;margin-top:auto;font-size:14px;font-weight:700}.pricing-card__btn:disabled{opacity:.5;cursor:default}.pricing-extra{margin-bottom:20px}.pricing-extra__title{color:var(--text,#0f172a);margin:0 0 4px;font-size:15px;font-weight:700}.pricing-extra__hint{color:var(--text-muted,#94a3b8);margin:0 0 12px;font-size:12px}.pricing-extra__list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pricing-extra__item{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:12px;padding:12px 16px;display:flex}.pricing-extra__name{color:var(--text,#0f172a);flex:120px;font-weight:600}.pricing-extra__price{color:var(--text,#0f172a);font-weight:700}.pricing-extra__per{color:var(--text-muted,#94a3b8);font-size:12px}.pricing-notice{color:#0a6b4a;background:#2ecc8f1a;border:1px solid #2ecc8f59;border-radius:10px;margin:0 0 14px;padding:12px 16px;font-size:13px}.pricing-problem{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:0 0 14px;padding:12px 16px;font-size:13px}.pricing-footnote{color:var(--text-muted,#94a3b8);margin:20px 0 0;font-size:12px;line-height:1.6}.pricing-footnote a{color:var(--accent,#2ecc8f)}[data-theme=dark] .pricing-license,[data-theme=dark] .pricing-card,[data-theme=dark] .pricing-extra__item{background:#151d29;border-color:#24303f}[data-theme=dark] .pricing-card--popular{border-color:var(--accent,#2ecc8f);background:#2ecc8f1f}[data-theme=dark] .pricing-trial{border-color:var(--accent,#2ecc8f);background:#2ecc8f24}[data-theme=dark] .pricing-trial__text strong,[data-theme=dark] .pricing-card__title,[data-theme=dark] .pricing-card__price strong,[data-theme=dark] .pricing-extra__title,[data-theme=dark] .pricing-extra__name,[data-theme=dark] .pricing-extra__price{color:#e8eef5}[data-theme=dark] .pricing-trial__text span,[data-theme=dark] .pricing-card__seats,[data-theme=dark] .pricing-card__per,[data-theme=dark] .pricing-license__seats,[data-theme=dark] .pricing-license__days{color:#9fb0c3}[data-theme=dark] .pricing-switch{background:#1d2836}[data-theme=dark] .pricing-switch__btn.is-active{color:#e8eef5;background:#24303f}[data-theme=dark] .pricing-card__saving{color:#4ade80}[data-theme=dark] .pricing-notice{color:#4ade80;background:#2ecc8f29}[data-theme=dark] .pricing-problem{color:#fca5a5;background:#3b1518;border-color:#7f1d1d}.teacher-report{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;display:flex}.teacher-report__text{flex-direction:column;gap:2px;display:flex}.teacher-report__text strong{color:var(--text,#0f172a);font-size:14px}.teacher-report__text span{color:var(--text-soft,#475569);font-size:12px}.teacher-report__actions{flex-wrap:wrap;gap:8px;display:flex}.teacher-report__btn{background:var(--accent,#2ecc8f);min-height:38px;color:var(--on-accent,#fff);border-radius:9px;align-items:center;padding:0 16px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.teacher-report__btn:hover{filter:brightness(.95)}.teacher-report__btn--plain{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);background:0 0}[data-theme=dark] .teacher-report{background:#151d29;border-color:#24303f}[data-theme=dark] .teacher-report__text strong{color:#e8eef5}[data-theme=dark] .teacher-report__text span{color:#9fb0c3}[data-theme=dark] .teacher-report__btn--plain{color:#9fb0c3;border-color:#24303f}.cheat-empty{color:var(--text-muted,#94a3b8)}.cheat-flag{color:#92400e;cursor:help;background:#fef3c7;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-flex}.cheat-flag--hot{color:#991b1b;background:#fee2e2}[data-theme=dark] .cheat-flag{color:#fcd34d;background:#423006}[data-theme=dark] .cheat-flag--hot{color:#fca5a5;background:#431417}[data-theme=dark] .requests-invite-btn{color:var(--on-accent,#06140f)}.pricing-card__btn--added{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-color:#0000}.pricing-extra__btn{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);cursor:pointer;background:0 0;border-radius:9px;flex:none;padding:7px 14px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.pricing-extra__btn:hover{background:var(--surface-2,#f1f5f9)}.pricing-extra__btn--added{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-color:#0000}.pricing-extra__item{align-items:center;gap:12px;display:flex}.pricing-extra__item--added{background:#2ecc8f14}.pricing-cart{border:2px solid var(--accent,#2ecc8f);background:var(--surface,#fff);border-radius:16px;margin-top:24px;padding:22px 24px}.pricing-cart__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.pricing-cart__title{color:var(--text,#0f172a);margin:0;font-size:17px;font-weight:700}.pricing-cart__count{color:#0b7a52;background:#2ecc8f26;border-radius:8px;padding:3px 10px;font-size:12px;font-weight:700}.pricing-cart__list{color:var(--text-soft,#475569);margin:0 0 16px;padding-left:20px;font-size:13px;line-height:1.8}.pricing-cart__total{border-top:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);justify-content:space-between;align-items:baseline;padding:14px 0;font-size:14px;display:flex}.pricing-cart__total strong{color:var(--text,#0f172a);font-size:26px;font-weight:800}.pricing-cart__actions{flex-wrap:wrap;gap:10px;display:flex}.pricing-cart__pay{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);cursor:pointer;border:0;border-radius:12px;flex:240px;padding:15px 22px;font-size:15px;font-weight:700}.pricing-cart__pay:hover:not(:disabled){filter:brightness(1.06)}.pricing-cart__pay:disabled{cursor:not-allowed}.pricing-cart__invoice{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);cursor:pointer;background:0 0;border-radius:12px;flex:none;padding:15px 20px;font-size:14px;font-weight:600}.pricing-cart__invoice:hover:not(:disabled){background:var(--surface-2,#f1f5f9)}.pricing-cart__hint{color:var(--text-muted,#94a3b8);margin:14px 0 0;font-size:12px;line-height:1.6}[data-theme="'dark'"] .pricing-cart{background:#151d29;border-color:#2ecc8f}[data-theme="'dark'"] .pricing-cart__title,[data-theme="'dark'"] .pricing-cart__total strong{color:#e8eef5}[data-theme="'dark'"] .pricing-cart__list,[data-theme="'dark'"] .pricing-cart__total{color:#9fb0c3}[data-theme="'dark'"] .pricing-cart__count{color:#4ade80;background:#2ecc8f33}[data-theme="'dark'"] .pricing-extra__btn{color:#9fb0c3;border-color:#24303f}[data-theme="'dark'"] .pricing-extra__btn:hover{background:#1d2836}[data-theme="'dark'"] .pricing-cart__invoice{color:#9fb0c3;border-color:#24303f}[data-theme="'dark'"] .pricing-cart__invoice:hover:not(:disabled){background:#1d2836}.pricing-cart__agree{border:1px solid var(--border,#e3e8ee);background:var(--surface-2,#f8fafc);color:var(--text-soft,#475569);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin:4px 0 18px;padding:12px 14px;font-size:12px;line-height:1.6;display:flex}.pricing-cart__agree input{width:16px;height:16px;accent-color:var(--accent,#2ecc8f);cursor:pointer;flex:none;margin-top:2px}.pricing-cart__agree a{color:var(--accent,#2ecc8f);font-weight:600}.pricing-cart__req{border:1px dashed var(--border,#e3e8ee);border-radius:12px;margin-bottom:18px;padding:16px 18px}.pricing-cart__req-title{color:var(--text,#0f172a);margin:0 0 14px;font-size:13px;font-weight:700}.pricing-cart__req-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.pricing-cart__req-grid label{color:var(--text-muted,#94a3b8);flex-direction:column;gap:5px;font-size:11px;font-weight:600;display:flex}.pricing-cart__req-grid input{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);color:var(--text,#0f172a);border-radius:8px;padding:9px 11px;font-size:13px}.pricing-cart__req-grid input:focus{outline:2px solid var(--accent,#2ecc8f);outline-offset:-1px}.pricing-cart__req-wide{grid-column:1/-1}[data-theme="'dark'"] .pricing-cart__agree{color:#9fb0c3;background:#10161f;border-color:#24303f}[data-theme="'dark'"] .pricing-cart__req{border-color:#24303f}[data-theme="'dark'"] .pricing-cart__req-title{color:#e8eef5}[data-theme="'dark'"] .pricing-cart__req-grid{color:#7c8b9e}[data-theme="'dark'"] .pricing-cart__req-grid input{color:#e8eef5;background:#0b1118;border-color:#24303f}.purchases{display:block}.purchases-section{margin-bottom:28px}.purchases-section__title{color:var(--text,#0f172a);margin:0 0 12px;font-size:17px;font-weight:700}.purchases-block{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;padding:16px 20px}.purchases-block p{color:var(--text,#0f172a);margin:0 0 10px;font-size:14px}.purchases-block p:last-child{margin-bottom:0}.purchases-block--empty{text-align:center}.purchases-block--warn{background:#fffbeb;border-color:#fcd34d;margin-top:12px}.purchases-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:14px;display:grid}.purchase-card{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;flex-direction:column;gap:6px;padding:16px;display:flex}.purchase-card--accent{border-color:var(--accent,#2ecc8f);background:#2ecc8f14}.purchase-card__label{color:var(--text-soft,#475569);font-size:12px}.purchase-card__value{color:var(--text,#0f172a);font-size:30px;font-weight:800;line-height:1.1}.purchases-packs{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.purchases-pack{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex}.purchases-pack__title{color:var(--text,#0f172a);flex:180px;font-weight:600}.purchases-pack__units{color:#0a6b4a;white-space:nowrap;font-weight:700}.purchases-pack__date{color:var(--text-muted,#94a3b8);white-space:nowrap;font-size:12px}.purchases-ads{font-weight:600}.purchases-ads--off{color:#0a6b4a}.purchases-cta{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-radius:10px;padding:9px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.purchases-cta:hover{filter:brightness(1.05)}.purchases-table-wrap{border:1px solid var(--border,#e3e8ee);border-radius:12px;overflow-x:auto}.purchases-table{border-collapse:collapse;width:100%;font-size:14px}.purchases-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted,#94a3b8);border-bottom:1px solid var(--border,#e3e8ee);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:700}.purchases-table td{border-bottom:1px solid var(--border,#e3e8ee);color:var(--text,#0f172a);padding:11px 14px}.purchases-table tr:last-child td{border-bottom:0}.purchases-table__muted{color:var(--text-muted,#94a3b8);white-space:nowrap;font-size:13px}.purchases-status{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.purchases-status--ok{color:#0a6b4a;background:#2ecc8f29}.purchases-status--bad{color:#991b1b;background:#fef2f2}.purchases-status--wait{background:var(--surface-2,#f1f5f9);color:var(--text-soft,#475569)}.purchases-hint{color:var(--text-muted,#94a3b8);margin:8px 0 0;font-size:12px;line-height:1.6}.purchases-hint--center{text-align:center;margin-top:24px}.purchases-hint a{color:var(--accent,#2ecc8f)}.purchases-empty{border:1px dashed var(--border,#e3e8ee);color:var(--text-muted,#94a3b8);text-align:center;border-radius:12px;margin:0;padding:20px;font-size:14px}[data-theme=dark] .purchases-block,[data-theme=dark] .purchase-card,[data-theme=dark] .purchases-pack,[data-theme=dark] .purchases-table-wrap{background:#151d29;border-color:#24303f}[data-theme=dark] .purchase-card--accent{border-color:var(--accent,#2ecc8f);background:#2ecc8f24}[data-theme=dark] .purchases-section__title,[data-theme=dark] .purchase-card__value,[data-theme=dark] .purchases-block p,[data-theme=dark] .purchases-pack__title,[data-theme=dark] .purchases-table td{color:#e8eef5}[data-theme=dark] .purchase-card__label{color:#9fb0c3}[data-theme=dark] .purchases-pack__units,[data-theme=dark] .purchases-ads--off{color:#4ade80}[data-theme=dark] .purchases-table th,[data-theme=dark] .purchases-table td{border-color:#24303f}[data-theme=dark] .purchases-status--ok{background:#2ecc8f33}[data-theme=dark] .purchases-status--bad{color:#fca5a5;background:#3b1518}[data-theme=dark] .purchases-status--wait{color:#9fb0c3;background:#1d2836}[data-theme=dark] .purchases-block--warn{background:#2a2110;border-color:#4d3a12}[data-theme=dark] .purchases-empty{color:#7c8b9e;border-color:#24303f}.shop-group{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;margin-bottom:22px;overflow:hidden}.shop-group[open]{padding-bottom:18px}.shop-group__summary{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;list-style:none;display:flex}.shop-group__summary::-webkit-details-marker{display:none}.shop-group__summary:before{content:"▸";color:var(--accent,#2ecc8f);margin-right:8px;font-size:14px;transition:transform .15s}.shop-group[open]>.shop-group__summary:before{transform:rotate(90deg)}.shop-group__summary:hover{background:var(--surface-2,#f8fafc)}.shop-group__title{color:var(--text,#0f172a);flex:auto;font-size:15px;font-weight:700}.shop-group__count{background:var(--surface-2,#f1f5f9);color:var(--text-soft,#475569);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600}.shop-group__count--soon{color:#0a6b4a;background:#2ecc8f24}.shop-group__body{padding:0 20px}[data-theme=dark] .shop-group{background:#151d29;border-color:#24303f}[data-theme=dark] .shop-group__summary:hover{background:#1d2836}[data-theme=dark] .shop-group__title{color:#e8eef5}[data-theme=dark] .shop-group__count{color:#9fb0c3;background:#1d2836}[data-theme=dark] .shop-group__count--soon{color:#4ade80;background:#2ecc8f33}.download-page{max-width:1080px;margin:0 auto;padding:32px 20px 64px}.download-hero{flex-wrap:wrap;align-items:center;gap:40px;margin-bottom:56px;display:flex}.download-hero__text{flex:380px;min-width:0}.download-hero__title{color:var(--text,#0f172a);margin:0 0 12px;font-size:32px;font-weight:800;line-height:1.2}.download-hero__lead{color:var(--text-soft,#475569);margin:0 0 24px;font-size:16px;line-height:1.6}.download-hero__actions{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.download-hero__note{color:var(--text-muted,#94a3b8);margin:0;font-size:13px}.download-hero__note a{color:var(--accent,#2ecc8f);font-weight:600}.download-hero__shot{flex:none}.download-btn{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border:0;border-radius:14px;align-items:center;gap:12px;padding:14px 22px;text-decoration:none;transition:filter .15s;display:inline-flex}.download-btn:hover{filter:brightness(1.06)}.download-btn__icon{font-size:20px}.download-btn__text{text-align:left;flex-direction:column;gap:2px;display:flex}.download-btn__text strong{font-size:15px}.download-btn__text span{opacity:.75;font-size:11px}.download-btn--plain{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);background:0 0;padding:14px 20px;font-size:14px;font-weight:600}.download-phone{border:8px solid #0b1c23;border-radius:28px;width:270px;height:auto;display:block;box-shadow:0 16px 40px #0f172a38}.download-section{margin-bottom:56px}.download-section__title{color:var(--text,#0f172a);margin:0 0 24px;font-size:24px;font-weight:700}.download-features{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.download-feature{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:14px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.download-feature__icon{flex:none;font-size:22px;line-height:1.3}.download-feature__body{flex-direction:column;gap:4px;min-width:0;display:flex}.download-feature__body strong{color:var(--text,#0f172a);font-size:14px}.download-feature__body span{color:var(--text-soft,#475569);font-size:13px;line-height:1.55}.download-shots{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.download-shot{text-align:center;flex:none;width:240px;margin:0}.download-shot img{border:6px solid #0b1c23;border-radius:22px;width:100%;height:auto;display:block;box-shadow:0 10px 28px #0f172a2e}.download-shot figcaption{color:var(--text-muted,#94a3b8);margin-top:12px;font-size:12px;line-height:1.5}.download-steps{flex-direction:column;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:flex}.download-step{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);color:var(--text,#0f172a);border-radius:12px;align-items:flex-start;gap:14px;padding:14px 18px;font-size:14px;line-height:1.55;display:flex}.download-step__num{background:var(--accent,#2ecc8f);width:26px;height:26px;color:var(--on-accent,#fff);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.download-warn{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:16px 20px;font-size:13px;line-height:1.65}.download-warn a{color:#92400e;font-weight:600}.download-cta{text-align:center;background:#2ecc8f1a;border-radius:20px;padding:36px 28px}.download-cta__title{color:var(--text,#0f172a);margin:0 0 10px;font-size:24px;font-weight:800}.download-cta__text{color:var(--text-soft,#475569);margin:0 0 22px;font-size:15px}.download-cta__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}[data-theme=dark] .download-hero__title,[data-theme=dark] .download-section__title,[data-theme=dark] .download-feature__body strong,[data-theme=dark] .download-step,[data-theme=dark] .download-cta__title{color:#e8eef5}[data-theme=dark] .download-hero__lead,[data-theme=dark] .download-feature__body span,[data-theme=dark] .download-cta__text{color:#9fb0c3}[data-theme=dark] .download-feature,[data-theme=dark] .download-step{background:#151d29;border-color:#24303f}[data-theme=dark] .download-btn--plain{color:#9fb0c3;border-color:#24303f}[data-theme=dark] .download-warn{color:#fcd34d;background:#2a1f05;border-color:#423006}[data-theme=dark] .download-warn a{color:#fcd34d}[data-theme=dark] .download-cta{background:#2ecc8f24}@media screen and (max-width:767px){.download-page{padding:20px 16px 48px}.download-hero{gap:28px;margin-bottom:40px}.download-hero__title{font-size:24px}.download-hero__lead{font-size:15px}.download-hero__shot{justify-content:center;width:100%;display:flex}.download-phone{width:200px}.download-section{margin-bottom:40px}.download-section__title{margin-bottom:18px;font-size:20px}.download-shots{gap:18px}.download-shot{width:200px}.download-cta{padding:28px 18px}}.download-store-badge{cursor:default;opacity:.85;border-radius:14px;flex:none;align-items:center;padding:0;display:inline-flex;position:relative}.download-store-badge img{border-radius:14px;width:180px;height:auto;display:block}.download-store-badge__soon{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);letter-spacing:.02em;text-transform:uppercase;border-radius:8px;padding:3px 9px;font-size:11px;font-weight:800;position:absolute;top:-8px;right:-8px;box-shadow:0 2px 6px #0f172a33}@media screen and (max-width:767px){.download-store-badge img{width:150px}}.cart-button{width:36px;height:36px;color:inherit;border-radius:10px;justify-content:center;align-items:center;text-decoration:none;transition:background .15s;display:inline-flex;position:relative}.cart-button:hover{background:var(--surface-2,#f1f5f9)}.cart-button__icon{font-size:17px;line-height:1}.cart-button__count{color:#fff;text-align:center;background:#fc3f1d;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:800;line-height:16px;position:absolute;top:1px;right:0}.cart-page{max-width:760px;margin:0 auto;padding:28px 20px 64px}.cart-page__head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.cart-page__title{color:var(--text,#0f172a);margin:0;font-size:26px;font-weight:800}.cart-empty{border:1px dashed var(--border,#e3e8ee);text-align:center;border-radius:16px;padding:48px 24px}.cart-empty__icon{margin:0 0 12px;font-size:40px}.cart-empty__text{color:var(--text,#0f172a);margin:0 0 8px;font-size:17px;font-weight:700}.cart-empty__hint{color:var(--text-muted,#94a3b8);margin:0 0 20px;font-size:13px;line-height:1.6}.cart-empty__btn{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);border-radius:11px;padding:12px 22px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.cart-list{flex-direction:column;gap:10px;margin:0 0 20px;padding:0;list-style:none;display:flex}.cart-item{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);border-radius:13px;align-items:center;gap:14px;padding:16px 18px;display:flex}.cart-item__icon{flex:none;font-size:22px}.cart-item__body{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.cart-item__title{color:var(--text,#0f172a);font-size:14px}.cart-item__subtitle{color:var(--text-muted,#94a3b8);font-size:12px}.cart-item__price{color:var(--text,#0f172a);white-space:nowrap;flex:none;font-size:16px;font-weight:800}.cart-item__remove{width:28px;height:28px;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;font-size:14px}.cart-item__remove:hover{color:#b91c1c;background:#fee2e2}.cart-summary{border:2px solid var(--accent,#2ecc8f);background:var(--surface,#fff);border-radius:15px;padding:20px 22px}.cart-summary__row{color:var(--text-soft,#475569);justify-content:space-between;align-items:baseline;margin-bottom:16px;font-size:14px;display:flex}.cart-summary__row strong{color:var(--text,#0f172a);font-size:26px;font-weight:800}.cart-summary__agree{border:1px solid var(--border,#e3e8ee);color:var(--text-soft,#475569);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:12px;line-height:1.6;display:flex}.cart-summary__agree input{width:16px;height:16px;accent-color:var(--accent,#2ecc8f);flex:none;margin-top:2px}.cart-summary__problem{color:#b91c1c;background:#fef2f2;border-radius:9px;margin:0 0 14px;padding:10px 14px;font-size:13px}.cart-summary__pay{background:var(--accent,#2ecc8f);width:100%;color:var(--on-accent,#fff);cursor:pointer;border:0;border-radius:12px;padding:16px 22px;font-size:16px;font-weight:700}.cart-summary__pay:hover:not(:disabled){filter:brightness(1.06)}.cart-summary__pay:disabled{cursor:not-allowed}.cart-summary__clear{width:100%;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border:0;border-radius:10px;margin-top:10px;padding:10px;font-size:12px}.cart-summary__clear:hover{color:#b91c1c}.buy__to-cart{border:2px solid var(--accent,#2ecc8f);width:100%;color:var(--accent,#2ecc8f);text-align:center;border-radius:11px;padding:14px 20px;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s;display:block}.buy__to-cart:hover{background:#2ecc8f1a}[data-theme=dark] .cart-button:hover{background:#1d2836}[data-theme=dark] .cart-page__title,[data-theme=dark] .cart-empty__text,[data-theme=dark] .cart-item__title,[data-theme=dark] .cart-item__price,[data-theme=dark] .cart-summary__row strong{color:#e8eef5}[data-theme=dark] .cart-empty,[data-theme=dark] .cart-item,[data-theme=dark] .cart-summary{background:#151d29;border-color:#24303f}[data-theme=dark] .cart-summary{border-color:#2ecc8f}[data-theme=dark] .cart-summary__agree{color:#9fb0c3;border-color:#24303f}[data-theme=dark] .cart-summary__problem,[data-theme=dark] .cart-item__remove:hover{color:#fca5a5;background:#3b0a0a}.promo-code{margin-bottom:16px}.promo-code__row{gap:8px;display:flex}.promo-code__input{border:1px solid var(--border,#e3e8ee);background:var(--surface,#fff);min-width:0;color:var(--text,#0f172a);letter-spacing:.05em;text-transform:uppercase;border-radius:10px;flex:auto;padding:11px 14px;font-size:14px;font-weight:600}.promo-code__input::placeholder{letter-spacing:normal;text-transform:none;color:var(--text-muted,#94a3b8);font-weight:400}.promo-code__input:focus{outline:2px solid var(--accent,#2ecc8f);outline-offset:-1px}.promo-code__apply{background:var(--accent,#2ecc8f);color:var(--on-accent,#fff);cursor:pointer;border:0;border-radius:10px;flex:none;padding:11px 18px;font-size:14px;font-weight:700}.promo-code__apply:hover:not(:disabled){filter:brightness(1.06)}.promo-code__apply:disabled{cursor:not-allowed;opacity:.55}.promo-code__error{color:#b91c1c;margin:8px 0 0;font-size:12px}.promo-code--applied{background:#2ecc8f14;border:1px solid #2ecc8f73;border-radius:10px;align-items:center;gap:10px;padding:11px 14px;display:flex}.promo-code__ok{color:#063a26;text-align:center;background:#2ecc8f;border-radius:50%;flex:none;width:20px;height:20px;font-size:12px;font-weight:800;line-height:20px}.promo-code__summary{color:var(--text,#0f172a);flex:auto;font-size:13px}.promo-code__clear{width:26px;height:26px;color:var(--text-muted,#94a3b8);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;font-size:13px}.promo-code__clear:hover{color:#b91c1c;background:#fee2e2}.cart-summary__row--discount,.cart-summary__row--discount strong{color:#0b7a52}.cart-summary__row--total{border-top:1px solid var(--border,#e3e8ee);padding-top:12px}[data-theme=dark] .promo-code__input{color:#e8eef5;background:#0b1118;border-color:#24303f}[data-theme=dark] .promo-code--applied{background:#2ecc8f1f;border-color:#2ecc8f59}[data-theme=dark] .promo-code__summary{color:#e8eef5}[data-theme=dark] .promo-code__error{color:#fca5a5}[data-theme=dark] .cart-summary__row--discount,[data-theme=dark] .cart-summary__row--discount strong{color:#4ade80}[data-theme=dark] .cart-summary__row--total{border-color:#24303f}.session-banner{background:#2ecc8f1a;border:1px solid #2ecc8f4d;border-radius:12px;align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:10px 18px;display:flex}.session-banner__icon{flex:none;font-size:18px;line-height:1}.session-banner__body{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.session-banner__title{color:var(--text,#0f172a);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.session-banner__note{color:var(--text-muted,#94a3b8);font-size:11px}.session-banner__timer{background:var(--surface,#fff);color:var(--text,#0f172a);font-variant-numeric:tabular-nums;letter-spacing:.02em;border-radius:9px;flex:none;padding:4px 12px;font-size:17px;font-weight:800}.session-banner--exam{background:#fc3f1d1a;border-color:#fc3f1d52}.session-banner--over{background:var(--surface-2,#f1f5f9);border-color:var(--border,#e3e8ee)}[data-theme=dark] .session-banner{background:#2ecc8f1f;border-color:#2ecc8f47}[data-theme=dark] .session-banner__title{color:#e8eef5}[data-theme=dark] .session-banner__timer{color:#e8eef5;background:#0b1118}[data-theme=dark] .session-banner--exam{background:#fc3f1d24;border-color:#fc3f1d4d}[data-theme=dark] .session-banner--over{background:#151d29;border-color:#24303f}@media screen and (max-width:640px){.session-banner{margin:0 12px;padding:8px 12px}.session-banner__title{font-size:13px}.session-banner__timer{padding:3px 9px;font-size:15px}}
