.cookie-banner[data-v-a6d37ce1]{position:fixed;left:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4);z-index:1000;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--sp-4) var(--sp-5);max-width:760px;margin:0 auto}.cookie-banner__inner[data-v-a6d37ce1]{display:flex;gap:var(--sp-4);align-items:flex-start}.cookie-banner__text[data-v-a6d37ce1]{flex:1;min-width:0}.cookie-banner__text h3[data-v-a6d37ce1]{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin:0 0 var(--sp-1);color:var(--text)}.cookie-banner__text p[data-v-a6d37ce1]{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);margin:0}.cookie-banner__text a[data-v-a6d37ce1]{color:var(--brand)}.cookie-banner__actions[data-v-a6d37ce1]{display:flex;gap:var(--sp-2);flex-shrink:0;align-items:center}.cookie-banner__btn[data-v-a6d37ce1]{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.cookie-banner__btn--primary[data-v-a6d37ce1]{background:var(--brand);color:#fff}.cookie-banner__btn--primary[data-v-a6d37ce1]:hover{filter:brightness(.95)}.cookie-banner__btn--ghost[data-v-a6d37ce1]{background:transparent;color:var(--text);border-color:var(--border)}.cookie-banner__btn--ghost[data-v-a6d37ce1]:hover{background:var(--bg-subtle)}@media(max-width:720px){.cookie-banner__inner[data-v-a6d37ce1]{flex-direction:column}.cookie-banner__actions[data-v-a6d37ce1]{width:100%;justify-content:stretch}.cookie-banner__btn[data-v-a6d37ce1]{flex:1}}.cookie-fade-enter-active[data-v-a6d37ce1],.cookie-fade-leave-active[data-v-a6d37ce1]{transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.cookie-fade-enter-from[data-v-a6d37ce1],.cookie-fade-leave-to[data-v-a6d37ce1]{opacity:0;transform:translateY(12px)}.age-badge[data-v-724ed1b2]{display:inline-flex;align-items:center}.age-badge__mark[data-v-724ed1b2]{border:1px solid var(--text-tertiary);color:var(--text-tertiary);border-radius:var(--r-sm);padding:1px 6px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:0;cursor:help}.grant-banner[data-v-cdbafc0b]{background:linear-gradient(135deg,var(--gradient-from) 0%,var(--gradient-to) 100%);border-top:1px solid var(--gradient-border);border-bottom:1px solid var(--gradient-border);padding:2.5rem 0}.grant-inner[data-v-cdbafc0b]{display:flex;align-items:center;gap:3rem;flex-wrap:wrap}.grant-text[data-v-cdbafc0b]{flex:1;min-width:260px}.grant-label[data-v-cdbafc0b]{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);font-weight:600;margin:0 0 .5rem}.grant-title[data-v-cdbafc0b]{font-size:1.2rem;font-weight:700;color:var(--brand-deep);margin:0 0 .4rem;line-height:1.45}.grant-program[data-v-cdbafc0b]{color:var(--brand-hover);font-size:.95rem;font-weight:500;margin:0}.grant-logos[data-v-cdbafc0b]{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;background:#fff;padding:.75rem 1.25rem;border-radius:.75rem;box-shadow:0 1px 4px #0000001a}.grant-logo-img[data-v-cdbafc0b]{height:56px;width:auto;object-fit:contain}@media(max-width:640px){.grant-inner[data-v-cdbafc0b]{flex-direction:column;gap:1.5rem}.grant-logos[data-v-cdbafc0b]{justify-content:flex-start}}.pub-shell[data-v-1e656e34]{min-height:100vh;display:flex;flex-direction:column}.pub-topbar[data-v-1e656e34]{display:flex;align-items:center;gap:14px;padding:0 36px;height:68px;border-bottom:1px solid var(--border);background:var(--bg-elevated);position:sticky;top:0;z-index:50}@media(max-width:900px){.pub-topbar[data-v-1e656e34]{padding:0 20px;height:60px;gap:8px}}@media(max-width:600px){.pub-topbar[data-v-1e656e34]{padding:0 14px}}.pub-brand[data-v-1e656e34]{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:var(--fw-bold)}.pub-brand-mark[data-v-1e656e34]{width:28px;height:28px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-active) 100%);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-size:14px;letter-spacing:-.5px}.pub-brand-text[data-v-1e656e34]{font-size:20px;letter-spacing:-.3px}.pub-nav[data-v-1e656e34]{display:flex;gap:4px;margin-left:28px}.pub-nav a[data-v-1e656e34]{padding:8px 12px;font-size:14px;font-weight:var(--fw-medium);color:var(--text-secondary);border-radius:8px;text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.pub-nav a[data-v-1e656e34]:hover{background:var(--bg-subtle);color:var(--text)}.pub-nav a.is-active[data-v-1e656e34]{color:var(--text);background:var(--bg-subtle)}@media(max-width:1023px){.pub-nav[data-v-1e656e34]{display:none}}.pub-spacer[data-v-1e656e34]{flex:1}.age-chip[data-v-1e656e34]{display:inline-flex;align-items:center;padding:4px 10px;background:var(--bg-subtle);color:var(--text-secondary);border-radius:var(--r-pill);font-size:12px;font-weight:var(--fw-medium)}@media(max-width:600px){.age-chip[data-v-1e656e34]{display:none}}.icon-btn-bare[data-v-1e656e34]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--text-secondary);cursor:pointer;width:36px;height:36px;border-radius:var(--r-md);font-family:inherit;padding:0}.icon-btn-bare[data-v-1e656e34]:hover{background:var(--bg-subtle);color:var(--text)}.icon-btn-bare svg[data-v-1e656e34]{width:18px;height:18px}.pub-burger[data-v-1e656e34]{display:none}@media(max-width:1023px){.pub-burger[data-v-1e656e34]{display:inline-flex}}.btn-primary[data-v-1e656e34]{display:inline-flex;align-items:center;justify-content:center;padding:0 16px;min-height:38px;background:var(--brand);color:#fff;border:0;border-radius:var(--r-md);font-family:inherit;font-size:14px;font-weight:var(--fw-semibold);cursor:pointer;text-decoration:none}.btn-primary[data-v-1e656e34]:hover{background:var(--brand-hover)}.btn-ghost[data-v-1e656e34]{display:inline-flex;align-items:center;justify-content:center;padding:0 14px;min-height:38px;background:transparent;color:var(--text-secondary);border:0;border-radius:var(--r-md);font-family:inherit;font-size:14px;font-weight:var(--fw-medium);cursor:pointer;text-decoration:none}.btn-ghost[data-v-1e656e34]:hover{background:var(--bg-subtle);color:var(--text)}.btn-block[data-v-1e656e34]{width:100%}@media(max-width:1023px){.pub-topbar>.btn-primary[data-v-1e656e34],.pub-topbar>.btn-ghost[data-v-1e656e34],.pub-topbar>.age-chip[data-v-1e656e34]{display:none}}.pub-drawer-bg[data-v-1e656e34]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100}.pub-drawer[data-v-1e656e34]{position:fixed;top:0;right:0;bottom:0;width:min(320px,100vw);background:var(--bg-elevated);border-left:1px solid var(--border);padding:16px;display:flex;flex-direction:column;z-index:101;box-shadow:var(--shadow-lg)}.pub-drawer__top[data-v-1e656e34]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.pub-drawer__nav[data-v-1e656e34]{display:flex;flex-direction:column;gap:2px;flex:1}.pub-drawer__nav a[data-v-1e656e34]{padding:12px 14px;border-radius:10px;color:var(--text);font-weight:var(--fw-medium);font-size:15px;text-decoration:none;min-height:44px;display:flex;align-items:center}.pub-drawer__nav a.is-active[data-v-1e656e34]{background:var(--brand-soft);color:var(--brand-soft-text)}.pub-drawer__actions[data-v-1e656e34]{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}.drawer-enter-active[data-v-1e656e34],.drawer-leave-active[data-v-1e656e34]{transition:opacity .18s var(--ease)}.drawer-enter-from[data-v-1e656e34],.drawer-leave-to[data-v-1e656e34]{opacity:0}.slide-drawer-enter-active[data-v-1e656e34],.slide-drawer-leave-active[data-v-1e656e34]{transition:transform .22s var(--ease-out)}.slide-drawer-enter-from[data-v-1e656e34],.slide-drawer-leave-to[data-v-1e656e34]{transform:translate(100%)}.pub-main[data-v-1e656e34]{flex:1}.pub-footer[data-v-1e656e34]{background:var(--bg-elevated);border-top:1px solid var(--border);padding:56px 36px 36px;margin-top:96px}@media(max-width:800px){.pub-footer[data-v-1e656e34]{padding:40px 20px 28px;margin-top:64px}}.pub-footer__inner[data-v-1e656e34]{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px}@media(max-width:800px){.pub-footer__inner[data-v-1e656e34]{grid-template-columns:1fr 1fr;gap:28px}}.pub-brand--footer[data-v-1e656e34]{margin-bottom:12px}.pub-footer__about[data-v-1e656e34]{font-size:14px;color:var(--text-secondary);max-width:280px;margin:0}.pub-footer h4[data-v-1e656e34]{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:var(--fw-semibold);color:var(--text-tertiary);margin:0 0 12px}.pub-footer ul[data-v-1e656e34]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.pub-footer a[data-v-1e656e34]{color:var(--text-secondary);font-size:14px;text-decoration:none}.pub-footer a[data-v-1e656e34]:hover{color:var(--text)}.pub-footer__copy[data-v-1e656e34]{max-width:1200px;margin:32px auto 0;padding-top:24px;border-top:1px solid var(--border);font-size:12px;color:var(--text-tertiary);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.pub-footer__legal[data-v-1e656e34]{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.pub-footer__sep[data-v-1e656e34]{color:var(--text-tertiary)}.loader[data-v-89bd4fa0]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--text-muted)}.spinner[data-v-89bd4fa0]{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin-89bd4fa0 .7s linear infinite;margin-bottom:1rem}@keyframes spin-89bd4fa0{to{transform:rotate(360deg)}}.loader p[data-v-89bd4fa0]{font-size:.9rem}.app-shell[data-v-c7ec2d03]{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:var(--bg)}@media(max-width:1023px){.app-shell[data-v-c7ec2d03]{grid-template-columns:1fr}}@media(max-width:1023px){.app-shell.is-immersive .app-tabbar[data-v-c7ec2d03],.app-shell.is-immersive .app-mtopbar[data-v-c7ec2d03]{display:none}.app-shell.is-immersive .app-content[data-v-c7ec2d03]{padding-bottom:0}}.app-sidebar[data-v-c7ec2d03]{background:var(--bg-elevated);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px 18px}@media(max-width:1023px){.app-sidebar[data-v-c7ec2d03]{display:none}}.app-sidebar__brand[data-v-c7ec2d03]{padding:0 8px 18px}.brand-mark[data-v-c7ec2d03]{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:var(--fw-bold)}.brand-mark__square[data-v-c7ec2d03]{width:28px;height:28px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-active) 100%);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--fw-bold);font-size:14px;letter-spacing:-.5px}.brand-mark__text[data-v-c7ec2d03]{font-size:20px;letter-spacing:-.3px}.app-sidebar__nav[data-v-c7ec2d03]{display:flex;flex-direction:column;flex:1;min-height:0}.nav-section+.nav-section[data-v-c7ec2d03]{margin-top:22px}.nav-section__label[data-v-c7ec2d03]{font-size:11px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:0 12px;margin-bottom:6px}.nav-link[data-v-c7ec2d03]{position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:var(--fw-medium);text-decoration:none;min-height:40px;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-link svg[data-v-c7ec2d03]{width:18px;height:18px;flex-shrink:0}.nav-link[data-v-c7ec2d03]:hover{background:var(--bg-subtle);color:var(--text)}.nav-link.is-active[data-v-c7ec2d03]{background:var(--brand-soft);color:var(--brand-soft-text);font-weight:var(--fw-semibold)}.nav-link.is-active[data-v-c7ec2d03]:before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--brand)}.app-sidebar__footer[data-v-c7ec2d03]{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.sidebar-user[data-v-c7ec2d03]{display:flex;align-items:center;gap:10px;padding:8px 4px}.sidebar-user__info[data-v-c7ec2d03]{flex:1;min-width:0}.sidebar-user__name[data-v-c7ec2d03]{font-weight:var(--fw-semibold);font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user__plan[data-v-c7ec2d03]{font-size:11px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-main[data-v-c7ec2d03]{min-width:0;display:flex;flex-direction:column;min-height:100vh}.app-topbar[data-v-c7ec2d03]{height:64px;display:flex;align-items:center;gap:14px;padding:0 28px;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}@media(max-width:1023px){.app-topbar[data-v-c7ec2d03]{display:none}}.app-topbar__spacer[data-v-c7ec2d03]{flex:1}.topbar-search[data-v-c7ec2d03]{position:relative;display:flex;align-items:center;gap:8px;max-width:480px;flex:1;background:var(--bg-subtle);border:1px solid transparent;border-radius:var(--r-md);min-height:38px;padding:0 14px 0 12px;color:var(--text-tertiary);cursor:pointer;text-align:left;font-family:inherit;font-size:14px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.topbar-search[data-v-c7ec2d03]:hover{border-color:var(--border);background:var(--bg-muted)}.topbar-search svg[data-v-c7ec2d03]{width:16px;height:16px;flex-shrink:0}.topbar-search__placeholder[data-v-c7ec2d03]{flex:1;color:var(--text-tertiary)}.topbar-search__kbd[data-v-c7ec2d03]{background:var(--bg-elevated);border:1px solid var(--border);padding:2px 6px;border-radius:4px;font-size:11px;font-weight:var(--fw-medium);color:var(--text-tertiary);font-family:inherit}.app-mtopbar[data-v-c7ec2d03]{display:none;padding:10px 16px 12px;min-height:56px;background:var(--bg);position:sticky;top:0;z-index:30;align-items:center;gap:12px}@media(max-width:1023px){.app-mtopbar[data-v-c7ec2d03]{display:flex}}.app-mtopbar .mtopbar__spacer[data-v-c7ec2d03]{flex:1}.mtopbar-avatar[data-v-c7ec2d03]{text-decoration:none;color:inherit;display:inline-flex}.mtopbar-search[data-v-c7ec2d03]{display:inline-flex;align-items:center;gap:6px;background:var(--bg-subtle);border:0;border-radius:var(--r-lg);min-height:36px;padding:0 10px;font-family:inherit;cursor:pointer;color:var(--text-tertiary);font-size:13px;flex-shrink:1;min-width:0;max-width:60vw}.mtopbar-search svg[data-v-c7ec2d03]{width:16px;height:16px;flex-shrink:0}.mtopbar-search span[data-v-c7ec2d03]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-content[data-v-c7ec2d03]{flex:1;min-width:0;width:100%}@media(max-width:1023px){.app-content[data-v-c7ec2d03]{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))}}.app-tabbar[data-v-c7ec2d03]{display:none;position:fixed;left:0;right:0;bottom:0;padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));background:var(--bg-elevated);border-top:1px solid var(--border);gap:4px;z-index:40}@media(max-width:1023px){.app-tabbar[data-v-c7ec2d03]{display:flex}}.tabbar-item[data-v-c7ec2d03]{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:0;color:var(--text-tertiary);font-family:inherit;cursor:pointer;min-height:48px;padding:6px 4px}.tabbar-pill[data-v-c7ec2d03]{width:44px;height:28px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:transparent;transition:background .28s cubic-bezier(.34,1.56,.64,1)}.tabbar-pill svg[data-v-c7ec2d03]{width:20px;height:20px}.tabbar-label[data-v-c7ec2d03]{font-size:10px;font-weight:var(--fw-medium)}.tabbar-item.is-active[data-v-c7ec2d03]{color:var(--brand)}.tabbar-item.is-active .tabbar-pill[data-v-c7ec2d03]{background:var(--brand-soft)}.tabbar-item.is-active .tabbar-label[data-v-c7ec2d03]{font-weight:var(--fw-semibold)}.avatar[data-v-c7ec2d03]{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-active) 100%);color:#fff;font-weight:var(--fw-semibold);border-radius:999px}.avatar--xs[data-v-c7ec2d03]{width:32px;height:32px;font-size:13px}.avatar--sm[data-v-c7ec2d03]{width:36px;height:36px;font-size:14px}.icon-btn-bare[data-v-c7ec2d03]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--text-secondary);cursor:pointer;font-family:inherit;padding:0;width:36px;height:36px;border-radius:var(--r-md);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-btn-bare[data-v-c7ec2d03]:hover{background:var(--bg-subtle);color:var(--text)}.icon-btn-bare svg[data-v-c7ec2d03]{width:18px;height:18px}.search-overlay[data-v-c7ec2d03]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--bg);display:flex;flex-direction:column}.search-overlay__head[data-v-c7ec2d03]{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.search-overlay__head .search-icon[data-v-c7ec2d03]{width:18px;height:18px;color:var(--text-tertiary);flex-shrink:0}.search-overlay__input[data-v-c7ec2d03]{flex:1;border:0;background:transparent;padding:0;font-size:16px;font-family:inherit;color:var(--text);outline:none;min-width:0}.search-overlay__input[data-v-c7ec2d03]::placeholder{color:var(--text-tertiary)}.search-overlay__cancel[data-v-c7ec2d03]{background:transparent;border:0;color:var(--brand);font-weight:var(--fw-medium);font-size:14px;font-family:inherit;cursor:pointer;padding:4px 6px}.search-overlay__body[data-v-c7ec2d03]{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:22px}.search-section[data-v-c7ec2d03]{display:flex;flex-direction:column;gap:10px}.section-label[data-v-c7ec2d03]{font-size:11px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:0 4px}.card.search-list[data-v-c7ec2d03]{padding:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg)}.search-row[data-v-c7ec2d03]{display:flex;align-items:center;gap:12px;width:100%;padding:12px 10px;background:transparent;border:0;border-radius:var(--r-md);font-family:inherit;font-size:14px;color:var(--text);text-align:left;cursor:pointer;min-height:48px;transition:background var(--dur) var(--ease)}.search-row+.search-row[data-v-c7ec2d03]{border-top:1px solid var(--border);border-radius:0}.search-row[data-v-c7ec2d03]:hover{background:var(--bg-subtle)}.search-row.is-active[data-v-c7ec2d03]{background:var(--brand-soft);color:var(--brand-soft-text)}.search-row svg[data-v-c7ec2d03]{width:16px;height:16px;flex-shrink:0}.search-row__label[data-v-c7ec2d03]{flex:1}.search-row__label[data-v-c7ec2d03] mark{background:var(--warn-soft);color:var(--warn-soft-text);padding:0 2px;border-radius:3px}.search-empty[data-v-c7ec2d03]{padding:22px;text-align:center;color:var(--text-tertiary);font-size:14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg)}.search-suggestions[data-v-c7ec2d03]{display:flex;gap:6px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--border)}.chip[data-v-c7ec2d03]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:var(--fw-medium);background:var(--bg-subtle);color:var(--text-secondary);border:0;font-family:inherit;cursor:pointer}.chip svg[data-v-c7ec2d03]{width:11px;height:11px}.chip--soft[data-v-c7ec2d03]{background:var(--bg-subtle);color:var(--text-secondary)}.chip--brand-solid[data-v-c7ec2d03]{background:var(--brand);color:#fff}.search-enter-active[data-v-c7ec2d03],.search-leave-active[data-v-c7ec2d03]{transition:opacity .18s var(--ease)}.search-enter-from[data-v-c7ec2d03],.search-leave-to[data-v-c7ec2d03]{opacity:0}.search-leave-active[data-v-c7ec2d03],.search-leave-to[data-v-c7ec2d03],.search-enter-from[data-v-c7ec2d03]{pointer-events:none}.adm-shell[data-v-a4c664d5]{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:var(--bg)}@media(max-width:1023px){.adm-shell[data-v-a4c664d5]{grid-template-columns:1fr}}.adm-sidebar[data-v-a4c664d5]{background:var(--bg-elevated);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px 18px}@media(max-width:1023px){.adm-sidebar[data-v-a4c664d5]{display:none}}.adm-sidebar__brand[data-v-a4c664d5]{padding:0 8px 18px}.brand-mark[data-v-a4c664d5]{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:var(--fw-bold)}.brand-mark__square[data-v-a4c664d5]{width:28px;height:28px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-active) 100%);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--fw-bold);font-size:14px;letter-spacing:-.5px}.brand-mark__text[data-v-a4c664d5]{font-size:16px;letter-spacing:-.3px}.adm-sidebar__nav[data-v-a4c664d5],.adm-drawer__nav[data-v-a4c664d5]{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.nav-section+.nav-section[data-v-a4c664d5]{margin-top:18px}.nav-section__label[data-v-a4c664d5]{font-size:11px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:0 12px;margin-bottom:6px}.nav-link[data-v-a4c664d5]{display:flex;align-items:center;padding:10px 12px;border-radius:10px;color:var(--text-secondary);font-size:14px;font-weight:var(--fw-medium);text-decoration:none;min-height:40px;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-link[data-v-a4c664d5]:hover{background:var(--bg-subtle);color:var(--text)}.nav-link.is-active[data-v-a4c664d5]{background:var(--brand-soft);color:var(--brand-soft-text);font-weight:var(--fw-semibold)}.adm-sidebar__footer[data-v-a4c664d5],.adm-drawer .adm-back[data-v-a4c664d5]{margin-top:auto;padding-top:12px}.adm-back[data-v-a4c664d5]{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;padding:10px 12px;border-radius:10px;color:var(--text-secondary);font-family:inherit;font-size:14px;font-weight:var(--fw-medium);cursor:pointer;width:100%;text-align:left}.adm-back[data-v-a4c664d5]:hover{background:var(--bg-subtle);color:var(--text)}.adm-back svg[data-v-a4c664d5]{width:16px;height:16px}.adm-main[data-v-a4c664d5]{min-width:0;display:flex;flex-direction:column;min-height:100vh}.adm-topbar[data-v-a4c664d5]{height:56px;display:flex;align-items:center;gap:12px;padding:0 24px;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}@media(max-width:1023px){.adm-topbar[data-v-a4c664d5]{padding:0 16px}}.adm-topbar__title[data-v-a4c664d5]{font-size:14px;font-weight:var(--fw-semibold)}.adm-topbar__spacer[data-v-a4c664d5]{flex:1}.adm-burger[data-v-a4c664d5]{display:none}@media(max-width:1023px){.adm-burger[data-v-a4c664d5]{display:inline-flex}}.adm-content[data-v-a4c664d5]{flex:1;min-width:0}.adm-drawer-bg[data-v-a4c664d5]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100}.adm-drawer[data-v-a4c664d5]{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--bg-elevated);border-right:1px solid var(--border);padding:16px 14px;display:flex;flex-direction:column;z-index:101;box-shadow:var(--shadow-lg)}.adm-drawer__top[data-v-a4c664d5]{display:flex;align-items:center;justify-content:space-between;padding:0 4px 14px;border-bottom:1px solid var(--border);margin-bottom:12px}.avatar[data-v-a4c664d5]{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-active) 100%);color:#fff;font-weight:var(--fw-semibold);border-radius:999px}.avatar--xs[data-v-a4c664d5]{width:32px;height:32px;font-size:13px}.icon-btn-bare[data-v-a4c664d5]{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--text-secondary);cursor:pointer;font-family:inherit;padding:0;width:36px;height:36px;border-radius:var(--r-md)}.icon-btn-bare[data-v-a4c664d5]:hover{background:var(--bg-subtle);color:var(--text)}.icon-btn-bare svg[data-v-a4c664d5]{width:18px;height:18px}.drawer-enter-active[data-v-a4c664d5],.drawer-leave-active[data-v-a4c664d5]{transition:opacity .18s var(--ease)}.drawer-enter-from[data-v-a4c664d5],.drawer-leave-to[data-v-a4c664d5]{opacity:0}.slide-drawer-enter-active[data-v-a4c664d5],.slide-drawer-leave-active[data-v-a4c664d5]{transition:transform .22s var(--ease-out)}.slide-drawer-enter-from[data-v-a4c664d5],.slide-drawer-leave-to[data-v-a4c664d5]{transform:translate(-100%)}.hp-hero[data-v-3a814d2d]{position:relative;padding:64px 36px 80px;overflow:hidden}@media(max-width:700px){.hp-hero[data-v-3a814d2d]{padding:32px 20px 48px}}.hp-hero__bg[data-v-3a814d2d]{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,var(--brand-soft) 0%,transparent 60%),radial-gradient(circle at 100% 0%,var(--info-soft) 0%,transparent 50%);z-index:0}.hp-hero__inner[data-v-3a814d2d]{position:relative;z-index:1;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}@media(max-width:1000px){.hp-hero__inner[data-v-3a814d2d]{grid-template-columns:1fr;gap:32px}}.hero-chip[data-v-3a814d2d]{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:var(--brand-soft);color:var(--brand-soft-text);border-radius:var(--r-pill);font-size:12px;font-weight:var(--fw-medium);margin-bottom:18px}.hero-chip__dot[data-v-3a814d2d]{width:6px;height:6px;border-radius:999px;background:var(--brand)}.hp-h1[data-v-3a814d2d]{font-size:56px;font-weight:var(--fw-bold);letter-spacing:-1.5px;margin:0;line-height:1.05}@media(max-width:700px){.hp-h1[data-v-3a814d2d]{font-size:38px;letter-spacing:-1px}}.hp-h1__accent[data-v-3a814d2d]{color:var(--brand)}.hp-lede[data-v-3a814d2d]{color:var(--text-secondary);font-size:18px;line-height:1.5;max-width:520px;margin:22px 0 32px}@media(max-width:700px){.hp-lede[data-v-3a814d2d]{font-size:16px;margin:18px 0 24px}}.hp-cta-row[data-v-3a814d2d]{display:flex;gap:12px;flex-wrap:wrap}.btn-primary[data-v-3a814d2d]{display:inline-flex;align-items:center;justify-content:center;padding:0 26px;min-height:52px;background:var(--brand);color:#fff;border:0;border-radius:var(--r-md);font-family:inherit;font-size:16px;font-weight:var(--fw-semibold);cursor:pointer;text-decoration:none;transition:background var(--dur) var(--ease)}.btn-primary[data-v-3a814d2d]:hover{background:var(--brand-hover)}.btn-secondary[data-v-3a814d2d]{display:inline-flex;align-items:center;justify-content:center;padding:0 22px;min-height:52px;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-md);font-family:inherit;font-size:16px;font-weight:var(--fw-medium);cursor:pointer;text-decoration:none}.btn-secondary[data-v-3a814d2d]:hover{background:var(--bg-subtle)}.btn-lg[data-v-3a814d2d]{padding-left:26px;padding-right:26px}.hp-stats[data-v-3a814d2d]{display:flex;gap:28px;margin-top:28px;color:var(--text-secondary);font-size:13px;flex-wrap:wrap}.hp-stats b[data-v-3a814d2d]{display:block;color:var(--text);font-size:22px;font-weight:var(--fw-bold)}.hp-hero__visual[data-v-3a814d2d]{position:relative;min-height:460px}@media(max-width:700px){.hp-hero__visual[data-v-3a814d2d]{min-height:360px}}.hp-card-1[data-v-3a814d2d]{position:absolute;top:30px;right:0;width:380px;max-width:90%;padding:18px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);transform:rotate(2deg)}.hp-card-1__head[data-v-3a814d2d]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.hp-card-1__name[data-v-3a814d2d]{font-weight:var(--fw-semibold)}.hp-card-1__sub[data-v-3a814d2d]{font-size:12px;color:var(--text-tertiary)}.hp-card-1__code[data-v-3a814d2d]{background:var(--bg-subtle);border-radius:8px;padding:10px;font-family:var(--font-mono);font-size:13px}.hp-card-1__chips[data-v-3a814d2d]{display:flex;gap:6px;margin-top:12px}.lvl-chip[data-v-3a814d2d]{flex:1;border-radius:8px;padding:8px 6px;text-align:center;font-size:11px;font-weight:var(--fw-semibold)}.lvl-chip--exam[data-v-3a814d2d]{background:var(--lvl-exam);color:#fff}.lvl-chip--hint[data-v-3a814d2d]{background:var(--warn-soft);color:var(--warn)}.lvl-chip--support[data-v-3a814d2d]{background:var(--info-soft);color:var(--info)}.lvl-chip--learn[data-v-3a814d2d]{background:var(--success-soft);color:var(--success)}.hp-card-2[data-v-3a814d2d]{position:absolute;bottom:30px;left:0;width:320px;max-width:80%;padding:20px;background:linear-gradient(140deg,var(--brand) 0%,var(--brand-active) 100%);color:#fff;border-radius:16px;box-shadow:var(--shadow-lg);transform:rotate(-3deg)}.hp-card-2__label[data-v-3a814d2d]{font-size:11px;opacity:.85;text-transform:uppercase;letter-spacing:.06em}.hp-card-2__row[data-v-3a814d2d]{display:flex;align-items:baseline;gap:8px;margin-top:6px}.hp-card-2__big[data-v-3a814d2d]{font-size:38px;font-weight:var(--fw-bold)}.hp-card-2__sub[data-v-3a814d2d]{opacity:.85;font-size:14px}.hp-card-2__bars[data-v-3a814d2d]{display:flex;align-items:flex-end;gap:5px;margin-top:12px;height:36px}.hp-card-2__bars div[data-v-3a814d2d]{flex:1;border-radius:3px;min-height:4px}.subj-tile[data-v-3a814d2d]{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.subj-tile svg[data-v-3a814d2d]{width:20px;height:20px}.subj-tile--inf[data-v-3a814d2d]{background:linear-gradient(135deg,#6366f1,#4338ca)}.subj-tile--math[data-v-3a814d2d]{background:linear-gradient(135deg,#f97316,#ea580c)}.hp-features[data-v-3a814d2d]{max-width:1200px;margin:0 auto;padding:64px 36px}@media(max-width:700px){.hp-features[data-v-3a814d2d]{padding:40px 20px}}.section-label[data-v-3a814d2d]{font-size:11px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);margin-bottom:14px}.hp-features__grid[data-v-3a814d2d]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:800px){.hp-features__grid[data-v-3a814d2d]{grid-template-columns:1fr}}.feature-card[data-v-3a814d2d]{padding:24px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg)}.feature-card__tile[data-v-3a814d2d]{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}.feature-card__tile svg[data-v-3a814d2d]{width:22px;height:22px}.tile--brand[data-v-3a814d2d]{background:var(--brand-soft);color:var(--brand)}.tile--info[data-v-3a814d2d]{background:var(--info-soft);color:var(--info)}.tile--success[data-v-3a814d2d]{background:var(--success-soft);color:var(--success)}.feature-card h3[data-v-3a814d2d]{font-size:18px;font-weight:var(--fw-bold);margin:0 0 6px}.feature-card p[data-v-3a814d2d]{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.5}.hp-subjects[data-v-3a814d2d]{max-width:1200px;margin:0 auto;padding:32px 36px 64px}@media(max-width:700px){.hp-subjects[data-v-3a814d2d]{padding:24px 20px 48px}}.hp-subjects__grid[data-v-3a814d2d]{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:800px){.hp-subjects__grid[data-v-3a814d2d]{grid-template-columns:1fr}}.subj-card[data-v-3a814d2d]{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:24px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);text-decoration:none;color:inherit;transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.subj-card[data-v-3a814d2d]:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.subj-card .subj-tile[data-v-3a814d2d]{width:56px;height:56px}.subj-card .subj-tile svg[data-v-3a814d2d]{width:26px;height:26px}.subj-card__body[data-v-3a814d2d]{min-width:0}.subj-card__body h3[data-v-3a814d2d]{font-size:20px;font-weight:var(--fw-bold);margin:0 0 6px}.subj-card__body p[data-v-3a814d2d]{font-size:14px;color:var(--text-secondary);margin:0 0 10px}.subj-card__meta[data-v-3a814d2d]{display:flex;gap:8px;font-size:12px;color:var(--text-tertiary)}.subj-card__chev[data-v-3a814d2d]{width:18px;height:18px;color:var(--text-tertiary)}.hp-cta[data-v-3a814d2d]{background:linear-gradient(135deg,var(--brand) 0%,var(--brand-active) 100%);color:#fff;border-radius:24px;padding:64px 36px;text-align:center;max-width:1100px;margin:0 auto 80px}@media(max-width:700px){.hp-cta[data-v-3a814d2d]{padding:48px 24px;margin:0 20px 48px}}.hp-cta h2[data-v-3a814d2d]{font-size:clamp(28px,4vw,40px);font-weight:var(--fw-bold);letter-spacing:-.5px;margin:0 0 12px}.hp-cta p[data-v-3a814d2d]{font-size:16px;opacity:.9;margin:0 0 24px}.cta-btn[data-v-3a814d2d]{display:inline-flex;align-items:center;justify-content:center;padding:0 28px;min-height:52px;background:#fff;color:var(--brand);border-radius:var(--r-md);font-family:inherit;font-size:16px;font-weight:var(--fw-bold);text-decoration:none}.cta-btn[data-v-3a814d2d]:hover{background:#ffffffeb}.lg-page[data-v-b6909db8]{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 68px)}@media(max-width:1023px){.lg-page[data-v-b6909db8]{grid-template-columns:1fr}}.lg-form-side[data-v-b6909db8]{display:flex;align-items:center;justify-content:center;padding:40px 32px}.lg-form-inner[data-v-b6909db8]{width:100%;max-width:520px}.lg-h2[data-v-b6909db8]{font-size:36px;font-weight:var(--fw-bold);letter-spacing:-.5px;margin:0}@media(max-width:1023px){.lg-h2[data-v-b6909db8]{font-size:28px}}.lg-sub[data-v-b6909db8]{color:var(--text-secondary);font-size:16px;margin:10px 0 28px}.lg-alert[data-v-b6909db8]{background:var(--danger-soft);color:var(--danger-soft-text);padding:12px 14px;border-radius:var(--r-md);margin-bottom:16px;font-size:14px}.lg-form[data-v-b6909db8]{display:flex;flex-direction:column;gap:14px}.lg-field[data-v-b6909db8]{display:flex;flex-direction:column;gap:6px}.lg-field>span[data-v-b6909db8],.lg-field__head span[data-v-b6909db8]:first-child{font-size:13px;color:var(--text-secondary);font-weight:var(--fw-medium)}.lg-field__head[data-v-b6909db8]{display:flex;justify-content:space-between;align-items:baseline}.lg-field__head a[data-v-b6909db8]{font-size:13px;color:var(--brand);font-weight:var(--fw-medium);text-decoration:none}.lg-field input[data-v-b6909db8]{padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);color:var(--text);font:inherit;font-size:15px;width:100%}.lg-field input[data-v-b6909db8]:focus{outline:none;border-color:var(--brand);box-shadow:var(--shadow-focus)}.lg-field input.is-error[data-v-b6909db8]{border-color:var(--danger)}.lg-field small[data-v-b6909db8]{color:var(--danger);font-size:12px}.lg-pwd-wrap[data-v-b6909db8]{position:relative}.lg-eye[data-v-b6909db8]{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--text-tertiary);cursor:pointer;padding:6px;border-radius:var(--r-sm)}.lg-eye[data-v-b6909db8]:hover{color:var(--text);background:var(--bg-subtle)}.lg-eye svg[data-v-b6909db8]{width:18px;height:18px}.lg-btn-primary[data-v-b6909db8]{margin-top:8px;padding:0 22px;min-height:52px;background:var(--brand);color:#fff;border:0;border-radius:var(--r-md);font-family:inherit;font-size:16px;font-weight:var(--fw-semibold);cursor:pointer}.lg-btn-primary[data-v-b6909db8]:hover:not(:disabled){background:var(--brand-hover)}.lg-btn-primary[data-v-b6909db8]:disabled{opacity:.55;cursor:default}.lg-sep[data-v-b6909db8]{display:flex;align-items:center;gap:10px;margin:22px 0}.lg-sep span[data-v-b6909db8]{flex:1;height:1px;background:var(--border)}.lg-sep i[data-v-b6909db8]{font-style:normal;font-size:12px;color:var(--text-tertiary)}.lg-btn-secondary[data-v-b6909db8]{display:inline-flex;align-items:center;justify-content:center;padding:0 22px;min-height:52px;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-md);font-family:inherit;font-size:16px;font-weight:var(--fw-medium);cursor:pointer;text-decoration:none;width:100%}.lg-btn-secondary[data-v-b6909db8]:hover{background:var(--bg-subtle)}.lg-tos[data-v-b6909db8]{margin-top:26px;color:var(--text-tertiary);font-size:12px;text-align:center}.lg-tos a[data-v-b6909db8]{color:var(--brand)}.lg-visual[data-v-b6909db8]{background:linear-gradient(160deg,var(--brand-soft) 0%,var(--info-soft) 100%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;position:relative;overflow:hidden}@media(max-width:1023px){.lg-visual[data-v-b6909db8]{display:none}}.lg-visual__card[data-v-b6909db8]{max-width:420px;width:100%;padding:24px;border-radius:20px;background:var(--bg-elevated);box-shadow:var(--shadow-lg);position:relative;z-index:2}.lg-visual__head[data-v-b6909db8]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.visual-tile[data-v-b6909db8]{width:36px;height:36px;border-radius:10px;background:var(--brand-soft);color:var(--brand);display:inline-flex;align-items:center;justify-content:center}.visual-tile svg[data-v-b6909db8]{width:18px;height:18px}.lg-visual__title[data-v-b6909db8]{font-weight:var(--fw-semibold)}.lg-visual__sub[data-v-b6909db8]{font-size:12px;color:var(--text-tertiary)}.lg-visual__stats[data-v-b6909db8]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lg-visual__stats>div[data-v-b6909db8]{padding:12px;background:var(--bg-subtle);border-radius:10px}.section-label[data-v-b6909db8]{font-size:11px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.lg-visual__num[data-v-b6909db8]{font-size:22px;font-weight:var(--fw-bold);margin-top:2px}.lg-visual__num span[data-v-b6909db8]{color:var(--text-tertiary);font-size:13px;font-weight:var(--fw-regular)}.lg-visual__chips[data-v-b6909db8]{display:flex;gap:6px;margin-top:14px}.lvl-chip[data-v-b6909db8]{flex:1;border-radius:6px;padding:6px 4px;text-align:center;font-size:10px;font-weight:var(--fw-semibold)}.lvl-chip--exam[data-v-b6909db8]{background:var(--lvl-exam);color:#fff}.lvl-chip--hint[data-v-b6909db8]{background:var(--warn-soft);color:var(--warn)}.lvl-chip--support[data-v-b6909db8]{background:var(--info-soft);color:var(--info)}.lvl-chip--learn[data-v-b6909db8]{background:var(--success-soft);color:var(--success)}.lg-visual__note[data-v-b6909db8]{font-size:12px;color:var(--text-tertiary);margin-top:12px;text-align:center}.lg-visual__decor[data-v-b6909db8]{position:absolute;bottom:-80px;right:-80px;width:320px;height:320px;border-radius:50%;background:#4f46e526}.auth-page[data-v-35f2c77d]{display:flex;justify-content:center;padding:var(--sp-12) var(--sp-4);min-height:calc(100vh - 64px);align-items:flex-start}.auth-card[data-v-35f2c77d]{width:100%;max-width:420px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-8)}.auth-brand[data-v-35f2c77d]{margin-bottom:var(--sp-5)}.auth-brand__mark[data-v-35f2c77d]{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--brand);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-md)}h1[data-v-35f2c77d]{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0 0 var(--sp-2);line-height:var(--lh-tight)}.auth-sub[data-v-35f2c77d]{font-size:var(--fs-md);color:var(--text-secondary);margin:0 0 var(--sp-6)}.alert[data-v-35f2c77d]{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);margin-bottom:var(--sp-4);font-size:var(--fs-sm);border:1px solid}.alert--danger[data-v-35f2c77d]{background:var(--danger-soft);color:var(--danger-soft-text);border-color:var(--danger)}.auth-form[data-v-35f2c77d]{display:flex;flex-direction:column;gap:var(--sp-4)}.field label[data-v-35f2c77d]{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);margin-bottom:6px}.field input[data-v-35f2c77d]{width:100%;border:1px solid var(--border);background:var(--bg);border-radius:var(--r-md);padding:10px 12px;font:inherit;font-size:var(--fs-md);color:var(--text);box-sizing:border-box;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.field input[data-v-35f2c77d]:focus{outline:none;border-color:var(--brand);box-shadow:var(--shadow-focus)}.field input.is-error[data-v-35f2c77d]{border-color:var(--danger)}.field-error[data-v-35f2c77d]{display:block;font-size:var(--fs-xs);color:var(--danger);margin-top:4px}.password-wrapper[data-v-35f2c77d]{position:relative}.toggle-password[data-v-35f2c77d]{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--text-tertiary);padding:6px;cursor:pointer;border-radius:var(--r-sm);display:grid;place-items:center}.toggle-password[data-v-35f2c77d]:hover{color:var(--text);background:var(--bg-subtle)}.auth-submit[data-v-35f2c77d]{margin-top:var(--sp-2)}.auth-footer[data-v-35f2c77d]{margin-top:var(--sp-6);text-align:center;font-size:var(--fs-sm);color:var(--text-secondary)}.auth-footer a[data-v-35f2c77d]{color:var(--brand);font-weight:var(--fw-medium)}.consent-group[data-v-35f2c77d]{display:flex;flex-direction:column;gap:var(--sp-3)}.consent[data-v-35f2c77d]{display:flex;gap:var(--sp-2);align-items:flex-start;font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-relaxed);cursor:pointer}.consent input[type=checkbox][data-v-35f2c77d]{margin-top:3px;flex-shrink:0;width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.consent a[data-v-35f2c77d]{color:var(--brand)}.consent--optional[data-v-35f2c77d]{color:var(--text-tertiary)}.waitlist-cta[data-v-35f2c77d]{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:var(--sp-2)}.auth-page[data-v-c9819640]{display:flex;justify-content:center;padding:var(--sp-12) var(--sp-4);min-height:calc(100vh - 64px);align-items:flex-start}.auth-card[data-v-c9819640]{width:100%;max-width:460px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-8)}.auth-brand[data-v-c9819640]{margin-bottom:var(--sp-5)}.auth-brand__mark[data-v-c9819640]{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--brand);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-md)}h1[data-v-c9819640]{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0 0 var(--sp-2);line-height:var(--lh-tight)}.auth-sub[data-v-c9819640]{font-size:var(--fs-md);color:var(--text-secondary);margin:0 0 var(--sp-6)}.auth-sub strong[data-v-c9819640]{color:var(--text);font-weight:var(--fw-medium)}.alert[data-v-c9819640]{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);margin-bottom:var(--sp-4);font-size:var(--fs-sm);border:1px solid}.alert--danger[data-v-c9819640]{background:var(--danger-soft);color:var(--danger-soft-text);border-color:var(--danger)}.alert--success[data-v-c9819640]{background:var(--success-soft, #ecfdf5);color:var(--success-soft-text, #047857);border-color:var(--success, #10b981)}.auth-hint[data-v-c9819640]{display:flex;gap:var(--sp-3);align-items:flex-start;background:var(--bg-subtle);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);margin-bottom:var(--sp-4)}.auth-hint svg[data-v-c9819640]{width:18px;height:18px;flex-shrink:0;margin-top:2px;color:var(--text-tertiary)}.auth-hint strong[data-v-c9819640]{color:var(--text);font-weight:var(--fw-medium)}.otp-form[data-v-c9819640]{display:flex;flex-direction:column;gap:var(--sp-4)}.otp-inputs[data-v-c9819640]{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-2)}.otp-inputs input[data-v-c9819640]{width:100%;aspect-ratio:1 / 1;box-sizing:border-box;border:1px solid var(--border);background:var(--bg);border-radius:var(--r-md);text-align:center;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:28px;font-weight:600;color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.otp-inputs input[data-v-c9819640]:focus{outline:none;border-color:var(--brand);box-shadow:var(--shadow-focus)}.otp-inputs input.is-error[data-v-c9819640]{border-color:var(--danger)}.otp-inputs input[data-v-c9819640]:disabled{opacity:.6;cursor:not-allowed}.field-error[data-v-c9819640]{font-size:var(--fs-xs);color:var(--danger)}.otp-error[data-v-c9819640]{margin-top:-8px}.auth-submit[data-v-c9819640]{margin-top:var(--sp-2)}.auth-footer[data-v-c9819640]{margin-top:var(--sp-6);display:flex;gap:var(--sp-2);justify-content:center;align-items:center;flex-wrap:wrap;font-size:var(--fs-sm)}.link-btn[data-v-c9819640]{background:transparent;border:0;padding:0;color:var(--brand);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer}.link-btn[data-v-c9819640]:disabled{color:var(--text-tertiary);cursor:not-allowed}.link-btn[data-v-c9819640]:hover:not(:disabled){text-decoration:underline}.sep[data-v-c9819640]{color:var(--text-tertiary)}.dash-page[data-v-a86c97be]{display:flex;flex-direction:column;gap:24px;padding:28px 32px 40px;max-width:1280px;margin:0 auto;width:100%}@media(max-width:1023px){.dash-page[data-v-a86c97be]{padding:12px 16px 24px;gap:18px}}.dash-error[data-v-a86c97be]{margin:24px;padding:16px 20px;background:var(--danger-soft);color:var(--danger-soft-text);border:1px solid var(--danger);border-radius:var(--r-md);display:flex;flex-direction:column;gap:12px;align-items:flex-start}.dash-greeting[data-v-a86c97be]{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.dash-title[data-v-a86c97be]{font-size:32px;font-weight:var(--fw-bold);letter-spacing:-.5px;margin:0;line-height:1.15}@media(max-width:1023px){.dash-title[data-v-a86c97be]{font-size:26px}}.dash-greeting__sub[data-v-a86c97be]{color:var(--text-secondary);font-size:15px;margin:8px 0 0}@media(max-width:1023px){.dash-greeting__sub[data-v-a86c97be]{font-size:14px}}.dash-cta[data-v-a86c97be]{min-height:44px;padding:0 18px;flex-shrink:0}@media(max-width:600px){.dash-cta[data-v-a86c97be]{width:100%}}.mini-stats[data-v-a86c97be]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-stat[data-v-a86c97be]{padding:10px 12px;background:var(--bg-subtle);border-radius:9px;display:flex;flex-direction:column;gap:2px}.mini-stat__label[data-v-a86c97be]{font-size:10px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.mini-stat__value[data-v-a86c97be]{font-size:20px;font-weight:var(--fw-bold);color:var(--text);line-height:1.1}@media(max-width:600px){.mini-stat__value[data-v-a86c97be]{font-size:18px}}.mini-stat__value.is-zero[data-v-a86c97be]{color:var(--text-tertiary)}.mini-stat__value.is-warn[data-v-a86c97be]{color:var(--warn)}.mini-stat__value.is-success[data-v-a86c97be]{color:var(--success)}.mini-stat__total[data-v-a86c97be]{font-size:12px;color:var(--text-tertiary);font-weight:var(--fw-regular)}.section-row[data-v-a86c97be]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:0 4px}.section-meta[data-v-a86c97be]{font-size:12px;color:var(--text-tertiary)}.bar[data-v-a86c97be]{height:6px;background:var(--bg-subtle);border-radius:999px;overflow:hidden;margin-top:14px}.bar i[data-v-a86c97be]{display:block;height:100%;background:var(--brand);border-radius:999px}.bar--on-brand[data-v-a86c97be]{background:#ffffff38}.bar--on-brand i[data-v-a86c97be]{background:#fff}.dash-grid[data-v-a86c97be]{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;align-items:flex-start}@media(max-width:1023px){.dash-grid[data-v-a86c97be]{grid-template-columns:1fr;gap:18px}}.dash-main[data-v-a86c97be],.dash-side[data-v-a86c97be]{display:flex;flex-direction:column;gap:14px}.section-label[data-v-a86c97be]{font-size:11px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:0 4px}.section-label--gap[data-v-a86c97be]{margin-top:12px}.subjects-row[data-v-a86c97be]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}@media(max-width:700px){.subjects-row[data-v-a86c97be]{grid-template-columns:1fr;gap:10px}}.subject-card[data-v-a86c97be]{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px;padding:20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);text-decoration:none;color:inherit;min-height:160px;transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.subject-card[data-v-a86c97be]:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.subject-card__decor[data-v-a86c97be]{position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(99,102,241,.12) 0%,transparent 70%)}.subject-card--math .subject-card__decor[data-v-a86c97be]{background:radial-gradient(circle,rgba(249,115,22,.14) 0%,transparent 70%)}.subject-card__head[data-v-a86c97be]{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.subject-card__head-text[data-v-a86c97be]{flex:1;min-width:0}.subj-tile[data-v-a86c97be]{width:48px;height:48px;border-radius:var(--r-lg);display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.subj-tile svg[data-v-a86c97be]{width:24px;height:24px}.subj-tile--inf[data-v-a86c97be]{background:linear-gradient(135deg,#6366f1,#4338ca)}.subj-tile--math[data-v-a86c97be]{background:linear-gradient(135deg,#f97316,#ea580c)}.subject-card__title[data-v-a86c97be]{font-size:18px;font-weight:var(--fw-bold);letter-spacing:-.2px}.subject-card__meta[data-v-a86c97be]{font-size:13px;color:var(--text-secondary);margin-top:2px}.subject-card__pct[data-v-a86c97be]{font-family:var(--font-mono);font-size:13px;color:var(--text-tertiary)}.subject-card__footer[data-v-a86c97be]{display:flex;align-items:center;justify-content:space-between;font-size:13px;position:relative;z-index:1}.subject-card__status[data-v-a86c97be]{color:var(--text-secondary)}.subject-card__cta[data-v-a86c97be]{color:var(--brand);font-weight:var(--fw-semibold);display:inline-flex;align-items:center;gap:4px}.subject-card__cta svg[data-v-a86c97be]{width:14px;height:14px}.card.list-card[data-v-a86c97be]{padding:4px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column}.recent-row[data-v-a86c97be]{display:flex;align-items:center;gap:14px;padding:14px 12px;text-decoration:none;color:inherit;border-bottom:1px solid var(--border);transition:background var(--dur) var(--ease)}.recent-row.is-last[data-v-a86c97be]{border-bottom:0}.recent-row[data-v-a86c97be]:hover{background:var(--bg-subtle)}.num-tile[data-v-a86c97be]{min-width:38px;height:38px;padding:0 6px;background:var(--bg-subtle);border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:var(--fw-semibold);color:var(--text-secondary)}.mono[data-v-a86c97be]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.recent-row__main[data-v-a86c97be]{flex:1;min-width:0}.recent-row__title[data-v-a86c97be]{font-weight:var(--fw-medium);font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-row__meta[data-v-a86c97be]{font-size:12px;color:var(--text-tertiary);margin-top:2px}.recent-row__chev[data-v-a86c97be]{width:16px;height:16px;color:var(--text-tertiary);flex-shrink:0}.empty-card[data-v-a86c97be]{padding:24px;text-align:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text-tertiary)}.chip[data-v-a86c97be]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:var(--fw-semibold);white-space:nowrap}.chip__dot[data-v-a86c97be]{width:6px;height:6px;border-radius:999px;background:currentColor}.chip--neutral[data-v-a86c97be]{background:var(--bg-subtle);color:var(--text-secondary)}.chip--info[data-v-a86c97be]{background:var(--info-soft);color:var(--info-soft-text)}.chip--warn[data-v-a86c97be]{background:var(--warn-soft);color:var(--warn-soft-text)}.chip--success[data-v-a86c97be]{background:var(--success-soft);color:var(--success-soft-text)}.side-card[data-v-a86c97be]{padding:20px;border-radius:var(--r-lg);background:var(--bg-elevated);border:1px solid var(--border);display:flex;flex-direction:column}.sub-hero[data-v-a86c97be]{background:linear-gradient(140deg,var(--brand) 0%,var(--brand-active) 100%);color:#fff;border:0;text-decoration:none;cursor:pointer}.sub-hero--free[data-v-a86c97be]{background:linear-gradient(140deg,var(--brand-soft) 0%,var(--bg-elevated) 100%);color:var(--brand-soft-text)}.sub-hero__label[data-v-a86c97be]{font-size:11px;opacity:.85;text-transform:uppercase;letter-spacing:.06em}.sub-hero__plan[data-v-a86c97be]{font-size:22px;font-weight:var(--fw-bold);margin-top:6px}.sub-hero__expires[data-v-a86c97be]{font-size:13px;opacity:.85;margin-top:4px}.sub-hero__cta[data-v-a86c97be]{margin-top:16px;padding:10px 14px;background:#ffffff2e;border-radius:9px;color:inherit;font-weight:var(--fw-semibold);font-size:14px;text-align:center;min-height:40px;display:inline-flex;align-items:center;justify-content:center}.sub-hero--free .sub-hero__cta[data-v-a86c97be]{background:var(--brand);color:#fff}.streak-num[data-v-a86c97be]{display:flex;align-items:baseline;gap:6px;margin-top:4px}.streak-num__big[data-v-a86c97be]{font-size:28px;font-weight:var(--fw-bold);letter-spacing:-.5px}.streak-num__sub[data-v-a86c97be]{color:var(--text-secondary);font-size:13px}.streak-foot[data-v-a86c97be]{margin-top:10px;font-size:12px;color:var(--text-secondary)}.side-card--tip[data-v-a86c97be]{background:var(--info-soft);color:var(--info-soft-text);border:0;flex-direction:row;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5}.side-card--tip svg[data-v-a86c97be]{width:18px;height:18px;flex-shrink:0;margin-top:1px}.btn-primary[data-v-a86c97be]{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;min-height:40px;background:var(--brand);color:#fff;border:0;border-radius:var(--r-md);font-family:inherit;font-size:14px;font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--dur) var(--ease);text-decoration:none}.btn-primary[data-v-a86c97be]:hover{background:var(--brand-hover)}.btn-primary[data-v-a86c97be]:disabled{opacity:.55;cursor:default}.btn-primary svg[data-v-a86c97be]{width:16px;height:16px}.page-title[data-v-eb3747db]{margin-bottom:2rem}.page-title h1[data-v-eb3747db]{font-size:1.75rem;font-weight:700;color:var(--text);margin:0}.subtitle[data-v-eb3747db]{margin-top:.5rem;color:var(--text-muted);font-size:1rem}.admin-grid[data-v-5174d40d]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem}.card[data-v-5174d40d]{background:var(--bg);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s}.card[data-v-5174d40d]:hover{border-color:var(--brand);box-shadow:0 2px 8px var(--shadow-brand-soft)}.card--alert .card-num[data-v-5174d40d]{color:var(--red-hover)}.card-num[data-v-5174d40d]{font-size:2rem;font-weight:700;color:var(--brand);line-height:1;margin-bottom:.35rem}.card h3[data-v-5174d40d]{margin:0;font-size:1rem;color:var(--text-secondary);font-weight:500}.card-desc[data-v-5174d40d]{margin:.25rem 0 0;font-size:.85rem;color:var(--text-muted)}.not-found[data-v-98922f34]{display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:2rem}.not-found-inner[data-v-98922f34]{max-width:400px}.code[data-v-98922f34]{font-size:5rem;font-weight:800;color:var(--brand);line-height:1}.not-found h1[data-v-98922f34]{margin:1rem 0 .5rem;font-size:1.5rem;color:var(--text)}.not-found p[data-v-98922f34]{color:var(--text-muted);margin-bottom:2rem}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-italic-B5xAaiFk.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-italic-DzZdc28x.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-italic-DcOpz6Lw.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-italic-CILZdfAp.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-italic-K3WlGtc8.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-italic-0pjOp8NU.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-italic-DpCbqKDY.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #fafaf7;--bg-elevated: #ffffff;--bg-subtle: #f4f3ee;--bg-muted: #efeee8;--text: #1c1c1f;--text-secondary: #51525a;--text-tertiary: #84858d;--text-disabled: #b4b5bb;--text-inverse: #ffffff;--border: #e6e5df;--border-strong: #d4d3cc;--border-subtle: #efeee8;--brand: #4f46e5;--brand-hover: #4338ca;--brand-active: #3730a3;--brand-soft: #eef0ff;--brand-soft-text: #3730a3;--brand-ring: rgba(79, 70, 229, .18);--info: #2563eb;--info-soft: #e6efff;--info-soft-text: #1d4ed8;--warn: #b45309;--warn-soft: #fdf1d9;--warn-soft-text: #92400e;--success: #059669;--success-soft: #dcf3e8;--success-soft-text:#047857;--danger: #d4574b;--danger-soft: #fce6e2;--danger-soft-text: #b1392f;--lvl-exam: #059669;--lvl-hint: #eab308;--lvl-support: #f97316;--lvl-learn: #dc2626;--shadow-xs: 0 1px 2px rgba(20, 20, 25, .04);--shadow-sm: 0 1px 2px rgba(20, 20, 25, .05), 0 1px 1px rgba(20, 20, 25, .03);--shadow-md: 0 4px 12px rgba(20, 20, 25, .06), 0 1px 2px rgba(20, 20, 25, .04);--shadow-lg: 0 12px 32px rgba(20, 20, 25, .08), 0 2px 4px rgba(20, 20, 25, .04);--shadow-focus: 0 0 0 3px var(--brand-ring);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, "Courier New", monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 36px;--fs-4xl: 48px;--fs-reading: 17px;--lh-reading: 1.7;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.5;--lh-relaxed: 1.65;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--tracking-tight: -.015em;--tracking-normal: 0em;--tracking-wide: .02em;--sp-0: 0;--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;--sp-20: 80px;--sp-24: 96px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-2xl: 24px;--r-pill: 999px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .26s;--reading-width: 860px;--content-width: 1200px;--header-height: 56px;--sidebar-width: 240px;--toc-width: 280px;--density-pad-y: 10px;--density-pad-x: 14px;--density-row: 44px;--density-card-pad: 20px;--density-gap: 16px}[data-density=compact]{--density-pad-y: 6px;--density-pad-x: 10px;--density-row: 36px;--density-card-pad: 14px;--density-gap: 12px}[data-theme=dark]{--bg: #1a1a1f;--bg-elevated: #22222a;--bg-subtle: #2a2a32;--bg-muted: #32323c;--text: #e8e8ec;--text-secondary: #b3b4bb;--text-tertiary: #82838b;--text-disabled: #5a5b62;--text-inverse: #1a1a1f;--border: #32323c;--border-strong: #42424d;--border-subtle: #2a2a32;--brand: #7c74ff;--brand-hover: #9089ff;--brand-active: #b1abff;--brand-soft: #2a2845;--brand-soft-text: #b1abff;--brand-ring: rgba(124, 116, 255, .28);--info: #60a5fa;--info-soft: #1e2c4a;--info-soft-text: #93c5fd;--warn: #fbbf5a;--warn-soft: #3b2e15;--warn-soft-text: #fcd383;--success: #4ade80;--success-soft: #163a26;--success-soft-text:#86efac;--danger: #f08c80;--lvl-exam: #4ade80;--lvl-hint: #facc15;--lvl-support: #fb923c;--lvl-learn: #f87171;--danger-soft: #3f1e1a;--danger-soft-text: #fca5a5;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 1px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .25)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01","ss03"}a{color:var(--brand);text-decoration:none;transition:color var(--dur) var(--ease)}a:hover{color:var(--brand-hover)}::selection{background:var(--brand-soft);color:var(--brand-soft-text)}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--r-sm)}.u-text-xs{font-size:var(--fs-xs)}.u-text-sm{font-size:var(--fs-sm)}.u-text-md{font-size:var(--fs-md)}.u-text-lg{font-size:var(--fs-lg)}.u-text-secondary{color:var(--text-secondary)}.u-text-tertiary{color:var(--text-tertiary)}.u-mono{font-family:var(--font-mono)}.u-tabular{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}:root{--bg-page: var(--bg);--bg-hover: var(--bg-subtle);--bg-tertiary: var(--bg-muted);--text-body: var(--text);--text-muted: var(--text-tertiary);--text-faint: var(--text-disabled);--brand-softer: var(--brand-soft);--brand-muted: #a5b4fc;--brand-deep: var(--brand-active);--gradient-from: var(--brand-soft);--gradient-to: #e0e7ff;--gradient-border: #c7d2fe;--cta-from: var(--brand);--cta-to: #7c3aed;--cta-text: #c7d2fe;--green: var(--success);--green-bg: var(--success-soft);--green-bg-soft: var(--success-soft);--green-text: var(--success-soft-text);--green-dark: #047857;--green-border: #bbf7d0;--red: var(--danger);--red-hover: #b1392f;--red-bg: var(--danger-soft);--red-bg-soft: var(--danger-soft);--red-text: var(--danger-soft-text);--red-border: #fca5a5;--amber: var(--warn);--amber-bg: var(--warn-soft);--amber-bg-soft: var(--warn-soft);--amber-text: var(--warn-soft-text);--amber-text-dark: #78350f;--amber-text-medium: #92400e;--amber-border: #fcd34d;--blue-bg: var(--info-soft);--blue-bg-soft: var(--info-soft);--blue-text: var(--info-soft-text);--blue-text-dark: #1e3a8a;--blue-border: #bfdbfe;--shadow: var(--shadow-sm);--shadow-brand: 0 8px 24px rgba(79, 70, 229, .18);--shadow-brand-soft: 0 4px 12px rgba(79, 70, 229, .1);--code-bg: var(--bg-subtle);--code-block-bg: #1e1e2e;--code-block-text: #e8e8ec;--input-bg: var(--bg-elevated);--input-border: var(--border);--input-focus: var(--brand);--input-focus-ring: var(--brand-ring);--reading-max: var(--reading-width)}[data-theme=dark]{--gradient-from: #2a2845;--gradient-to: #1f1d3b;--gradient-border: #3d3a5c;--cta-from: var(--brand);--cta-to: #9089ff;--cta-text: #cac6ff;--green-dark: #4ade80;--green-border: #163a26;--red-hover: #f08c80;--red-border: #3f1e1a;--amber-text-dark: #fcd383;--amber-text-medium: #fbbf5a;--amber-border: #3b2e15;--blue-text-dark: #93c5fd;--blue-border: #1e2c4a;--shadow-brand: 0 8px 24px rgba(124, 116, 255, .28);--shadow-brand-soft: 0 4px 12px rgba(124, 116, 255, .18);--code-block-bg: #0f0f14;--code-block-text: #e8e8ec}.app{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh;background:var(--bg)}.app__sidebar{background:var(--bg-elevated);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:var(--sp-4) var(--sp-3);gap:var(--sp-2);overflow-y:auto}.app__brand{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-4);font-weight:var(--fw-semibold);font-size:var(--fs-xl);letter-spacing:var(--tracking-tight);color:var(--text);text-decoration:none}.app__brand-mark{width:36px;height:36px;border-radius:9px;background:var(--brand);display:grid;place-items:center;color:#fff;font-size:18px;font-weight:var(--fw-bold);letter-spacing:-.04em}.app__nav{display:flex;flex-direction:column;gap:2px}.app__nav-section{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-tertiary);font-weight:var(--fw-semibold);padding:var(--sp-3) var(--sp-3) var(--sp-2)}.app__nav a{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--r-md);color:var(--text-secondary);font-size:var(--fs-md);font-weight:var(--fw-medium);text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.app__nav a svg{width:18px;height:18px;flex-shrink:0}.app__nav a:hover{background:var(--bg-subtle);color:var(--text)}.app__nav a.is-active{background:var(--brand-soft);color:var(--brand-soft-text)}.app__nav a .count{margin-left:auto;font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.app__nav a.is-active .count{color:var(--brand-soft-text)}.app__sidebar-footer{margin-top:auto;padding:var(--sp-3);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--sp-2)}.app__sidebar-user{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2)}.app__avatar{width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,var(--brand) 0%,var(--info) 100%);display:grid;place-items:center;color:#fff;font-size:var(--fs-xs);font-weight:var(--fw-semibold);flex-shrink:0}.app__user-info{min-width:0}.app__user-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app__user-plan{font-size:var(--fs-xs);color:var(--text-tertiary)}.app__main{min-width:0}.app__topbar{height:var(--header-height);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-6);background:var(--bg-elevated);position:sticky;top:0;z-index:30}.app__topbar-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.app__topbar-actions{display:flex;gap:var(--sp-2);align-items:center}.app__content{padding:var(--sp-8) var(--sp-6) var(--sp-16);max-width:1280px;margin:0 auto}.app__content--narrow{max-width:920px}.app__content h1.page-title{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0 0 var(--sp-2);line-height:var(--lh-tight)}.app__content p.page-subtitle{font-size:var(--fs-md);color:var(--text-secondary);margin:0 0 var(--sp-8)}@media(max-width:768px){.app{grid-template-columns:1fr}.app__sidebar{position:fixed;top:0;left:0;width:280px;height:100vh;transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-out);z-index:100;box-shadow:var(--shadow-lg)}.app__sidebar.is-open{transform:translate(0)}.app__content{padding:var(--sp-5) var(--sp-4) var(--sp-12)}}.app__hamburger{display:none;width:36px;height:36px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;align-items:center;justify-content:center}.app__hamburger svg{width:18px;height:18px}@media(max-width:768px){.app__hamburger{display:inline-flex}}.app__backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}.app__backdrop.is-open{display:block}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5)}.card--clickable{cursor:pointer;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.card--clickable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.card__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text);margin:0;letter-spacing:var(--tracking-tight)}.card__subtitle{font-size:var(--fs-sm);color:var(--text-secondary);margin:4px 0 0}.btn--sm{padding:6px 10px;font-size:var(--fs-xs)}.badge--danger{background:var(--danger-soft);color:var(--danger-soft-text)}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all var(--dur) var(--ease)}.icon-btn:hover{background:var(--bg-subtle);color:var(--text)}.icon-btn svg{width:16px;height:16px}.tweaks-panel{position:fixed;bottom:var(--sp-6);right:var(--sp-6);width:260px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--sp-4);z-index:200;font-size:var(--fs-sm);display:none}.tweaks-panel.is-open{display:block}.tweaks-panel__title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-tertiary);margin-bottom:var(--sp-3)}.tweaks-panel__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.tweaks-panel__row:last-child{margin-bottom:0}.tweaks-panel__label{color:var(--text-secondary);font-size:var(--fs-sm)}.tweaks-segmented{display:inline-flex;background:var(--bg-subtle);border-radius:var(--r-md);padding:2px;gap:2px}.tweaks-segmented button{border:0;background:transparent;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:4px 10px;border-radius:4px;cursor:pointer;transition:all var(--dur) var(--ease);font-family:inherit}.tweaks-segmented button.is-active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-xs)}.tweaks-toggle{position:fixed;bottom:var(--sp-6);right:var(--sp-6);height:40px;padding:0 var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-pill);box-shadow:var(--shadow-md);display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;z-index:199;font-family:inherit;transition:all var(--dur) var(--ease)}.tweaks-toggle:hover{color:var(--text);border-color:var(--border-strong)}.tweaks-toggle svg{width:14px;height:14px}body{background:var(--bg)}.reading-progress-rail{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:80}.reading-progress-bar{height:100%;width:0%;background:var(--brand);transition:width 60ms linear}.theory-topbar{height:var(--header-height);background:var(--bg-elevated);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:60;display:flex;align-items:center;padding:0 var(--sp-6);gap:var(--sp-4)}.theory-topbar__crumbs{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-tertiary);flex:1;min-width:0}.theory-topbar__crumbs a{color:var(--text-tertiary)}.theory-topbar__crumbs a:hover{color:var(--text)}.theory-topbar__crumbs .sep{color:var(--text-tertiary);opacity:.5}.theory-topbar__crumbs .current{color:var(--text);font-weight:var(--fw-medium)}.theory-topbar__actions{display:flex;gap:var(--sp-2);align-items:center}.unit-header{background:var(--bg-elevated);border-bottom:1px solid var(--border)}.unit-header__inner{padding:var(--sp-6) var(--sp-6) var(--sp-5);display:grid;grid-template-columns:1fr auto;gap:var(--sp-6);align-items:end}.unit-header__num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-bottom:var(--sp-2)}.unit-header__title{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight);margin:0 0 var(--sp-3)}.unit-header__meta{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.unit-header__tabs{display:inline-flex;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px;gap:2px}.unit-header__tab{border:0;background:transparent;font-family:inherit;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);padding:6px 14px;border-radius:var(--r-pill);cursor:pointer;transition:all var(--dur) var(--ease);text-decoration:none;display:inline-flex;align-items:center;gap:6px}.unit-header__tab:hover{color:var(--text)}.unit-header__tab.is-active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-xs)}.theory-layout{display:grid;grid-template-columns:var(--toc-width) minmax(0,1fr);gap:var(--sp-8);align-items:start}@media(max-width:1024px){.theory-layout{grid-template-columns:1fr;gap:var(--sp-6);padding-top:var(--sp-6)}.theory-toc{display:none}}.theory-toc{position:sticky;top:calc(var(--header-height) + var(--sp-6));align-self:start;font-size:var(--fs-sm);max-height:calc(100vh - var(--header-height) - var(--sp-12));overflow-y:auto;padding-right:var(--sp-2)}.theory-toc__title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-tertiary);margin:0 0 var(--sp-3);padding-left:var(--sp-3)}.theory-toc ul{list-style:none;padding:0;margin:0}.theory-toc a{display:block;padding:6px var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary);border-left:2px solid var(--border);margin-bottom:1px;line-height:1.4;transition:all var(--dur) var(--ease)}.theory-toc a:hover{color:var(--text);border-color:var(--border-strong);background:var(--bg-subtle)}.theory-toc a.is-active{color:var(--brand);border-color:var(--brand);font-weight:var(--fw-medium);background:var(--brand-soft)}.theory-toc__sub a{font-size:var(--fs-xs);padding:4px var(--sp-3) 4px var(--sp-6);color:var(--text-tertiary)}.theory-article{max-width:var(--reading-width)}.theory-article>*+*{margin-top:var(--sp-4)}.theory-article h1{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight);margin:0 0 var(--sp-3)}.theory-article h2{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);margin:var(--sp-12) 0 var(--sp-3);scroll-margin-top:calc(var(--header-height) + var(--sp-4))}.theory-article h3{font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);margin:var(--sp-8) 0 var(--sp-2);scroll-margin-top:calc(var(--header-height) + var(--sp-4))}.theory-article p{font-size:var(--fs-reading);line-height:var(--lh-reading);color:var(--text);margin:0 0 var(--sp-4)}.theory-article p.lede{font-size:var(--fs-lg);color:var(--text-secondary);line-height:var(--lh-relaxed);margin-bottom:var(--sp-6)}.theory-article ul,.theory-article ol{font-size:var(--fs-reading);line-height:var(--lh-reading);padding-left:var(--sp-5);margin:0 0 var(--sp-4)}.theory-article li{margin-bottom:6px}.theory-article li::marker{color:var(--text-tertiary)}.theory-article strong{font-weight:var(--fw-semibold);color:var(--text)}.theory-article code:not(pre code){font-family:var(--font-mono);font-size:.92em;padding:1px 6px;background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--r-xs);color:var(--text)}.theory-article a:not(.btn){color:var(--brand);text-decoration:underline;text-underline-offset:3px}.theory-article a:not(.btn):hover{color:var(--brand-hover)}.theory-article a.btn{text-decoration:none}.theory-article a.btn--primary{color:#fff}.theory-article a.btn--secondary{color:var(--text)}.theory-article a.btn--ghost{color:var(--text-secondary)}.theory-article table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin:var(--sp-4) 0 var(--sp-6);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;font-variant-numeric:tabular-nums}.theory-article th,.theory-article td{padding:10px var(--sp-3);border-bottom:1px solid var(--border-subtle);text-align:left}.theory-article th{background:var(--bg-subtle);font-weight:var(--fw-semibold);color:var(--text);text-transform:none;font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}.theory-article tbody tr{transition:background var(--dur) var(--ease)}.theory-article tbody tr:hover{background:var(--bg-subtle)}.theory-article tbody tr:last-child td{border-bottom:0}.theory-article .tt-cell--1{color:var(--success-soft-text);font-family:var(--font-mono);font-weight:var(--fw-semibold)}.theory-article .tt-cell--0{color:var(--text-tertiary);font-family:var(--font-mono)}@media(max-width:640px){.theory-article table{display:block;overflow-x:auto}}.theory-article pre{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.55;overflow-x:auto;margin:var(--sp-4) 0 var(--sp-6)}.theory-article pre code{font-family:inherit;background:transparent;border:0;padding:0;color:var(--text)}.tok-kw{color:var(--brand);font-weight:var(--fw-medium)}.tok-fn{color:var(--info)}.tok-num{color:var(--warn-soft-text)}.tok-str{color:var(--success-soft-text)}.tok-cmt{color:var(--text-tertiary);font-style:italic}.tok-op{color:var(--text-secondary)}.callout{display:grid;grid-template-columns:32px 1fr;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-md);margin:var(--sp-4) 0 var(--sp-6);font-size:var(--fs-md);line-height:var(--lh-relaxed);border:1px solid}.callout__icon{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-size:14px;flex-shrink:0}.callout__title{font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0 0 4px;font-size:var(--fs-md)}.callout p:last-child{margin-bottom:0}.callout p{font-size:var(--fs-md);line-height:var(--lh-relaxed)}.callout--rule{background:var(--brand-soft);border-color:var(--brand-soft-text);color:var(--text)}.callout--rule .callout__icon{background:var(--brand);color:#fff}.callout--rule .callout__title{color:var(--brand-soft-text)}.callout--warn{background:var(--warn-soft);border-color:var(--warn);color:var(--text)}.callout--warn .callout__icon{background:var(--warn);color:#fff}.callout--warn .callout__title{color:var(--warn-soft-text)}.callout--tip{background:var(--success-soft);border-color:var(--success);color:var(--text)}.callout--tip .callout__icon{background:var(--success);color:#fff}.callout--tip .callout__title{color:var(--success-soft-text)}.callout__icon svg{width:16px;height:16px}.fig{margin:var(--sp-4) 0 var(--sp-6)}.fig__placeholder{width:100%;aspect-ratio:16 / 9;border-radius:var(--r-lg);background:repeating-linear-gradient(45deg,var(--bg-subtle),var(--bg-subtle) 8px,var(--bg-muted) 8px,var(--bg-muted) 16px);border:1px solid var(--border);display:grid;place-items:center;color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-align:center;padding:var(--sp-4)}.fig__caption{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:center;margin-top:var(--sp-2)}.theory-footer-cta{margin-top:var(--sp-12);padding:var(--sp-6);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap}.theory-footer-cta__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0 0 4px}.theory-footer-cta__desc{color:var(--text-secondary);font-size:var(--fs-sm);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid transparent;border-radius:var(--r-md);font-family:inherit;font-weight:var(--fw-medium);cursor:pointer;transition:all var(--dur) var(--ease);white-space:nowrap;line-height:1;padding:9px 14px;font-size:var(--fs-sm);text-decoration:none}.btn--primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn--primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn--secondary{background:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover{background:var(--bg-subtle)}.btn--lg{padding:12px 20px;font-size:var(--fs-md)}.btn--ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn--ghost:hover{background:var(--bg-subtle);color:var(--text)}.btn svg{width:1em;height:1em}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1.4;white-space:nowrap}.badge--neutral{background:var(--bg-subtle);color:var(--text-secondary)}.badge--brand{background:var(--brand-soft);color:var(--brand-soft-text)}.badge--info{background:var(--info-soft);color:var(--info-soft-text)}.badge--warn{background:var(--warn-soft);color:var(--warn-soft-text)}.badge--success{background:var(--success-soft);color:var(--success-soft-text)}.badge__dot{width:6px;height:6px;border-radius:999px;background:currentColor}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px;line-height:1.65;color:var(--text);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}h1,h2,h3,h4{line-height:1.3}.container{max-width:1440px;margin:0 auto;padding:0 2rem}.btn:active:not(:disabled){transform:scale(.98)}.btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn--danger:hover{background:var(--red-hover);border-color:var(--red-hover)}.btn--block{width:100%}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],select,textarea{font-family:inherit;font-size:.95rem;color:var(--text);border:1px solid var(--input-border);border-radius:.5rem;padding:.6rem .875rem;transition:border-color .15s,box-shadow .15s;background:var(--input-bg)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px var(--input-focus-ring)}textarea{resize:vertical}.alert{padding:.75rem 1rem;border-radius:.5rem;font-size:.9rem;margin-bottom:1rem}.alert--error{background:var(--red-bg-soft);color:var(--red-text);border:1px solid var(--red-border)}.alert--success{background:var(--green-bg-soft);color:var(--green-text);border:1px solid var(--green-border)}.alert--warning{background:var(--amber-bg-soft);color:var(--amber-text);border:1px solid var(--amber-border)}.alert--info{background:var(--blue-bg-soft);color:var(--blue-text);border:1px solid var(--blue-border)}.page-title{font-size:1.5rem;font-weight:700;color:var(--text);margin:0}.page-sub{color:var(--text-muted);margin:.25rem 0 1.5rem;font-size:.925rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.task-card__cond{overflow-wrap:break-word;min-width:0}.admin-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;font-size:14px}.admin-table th,.admin-table td{padding:12px 14px;text-align:left;font-size:14px;border-top:1px solid var(--border)}.admin-table thead tr:first-child th{border-top:0}.admin-table thead{background:var(--bg-subtle)}.admin-table th{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.admin-table tbody tr:hover{background:var(--bg-subtle)}@media(max-width:900px){table.admin-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}}@media(max-width:768px){.container{padding:0 1rem}.page-title{font-size:1.3rem}.page-sub{font-size:.875rem;margin-bottom:1rem}h1,h2{word-break:break-word}}@media(max-width:480px){html{font-size:15px}.container{padding:0 .75rem}}
