@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700&display=swap";.markdown-font-size-switcher[data-v-07369896]{position:relative}.markdown-font-size-switcher__trigger[data-v-07369896]{display:inline-flex;align-items:center;justify-content:center;width:var(--app-header-control-height, 32px);height:var(--app-header-control-height, 32px);background:var(--app-header-control-bg, color-mix(in srgb, var(--bg-primary) 70%, transparent));border:1px solid var(--app-header-control-border, var(--border-subtle));border-radius:var(--app-header-control-radius, var(--radius-md));color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.markdown-font-size-switcher__trigger-label[data-v-07369896]{font-family:var(--font-sans);line-height:1;transition:font-size var(--transition-fast),font-weight var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast)}.markdown-font-size-switcher__trigger-label--small[data-v-07369896]{font-size:.68rem;font-weight:700;opacity:.88;color:var(--text-muted);transform:translateY(.5px)}.markdown-font-size-switcher__trigger-label--medium[data-v-07369896]{font-size:.78rem;font-weight:800;color:var(--text-secondary);opacity:.95}.markdown-font-size-switcher__trigger-label--large[data-v-07369896]{font-size:.92rem;font-weight:850;color:color-mix(in srgb,var(--accent-primary) 82%,var(--text-primary));opacity:1;transform:translateY(-.25px)}.markdown-font-size-switcher__trigger[data-v-07369896]:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border)}.search-trigger[data-v-75baad4b]{display:inline-flex;align-items:center;gap:var(--space-sm);min-width:min(12.5rem,28vw);max-width:15rem;min-height:var(--app-header-control-height, 44px);padding:0 .9rem;background:var(--app-header-control-bg, var(--surface-1));border:1px solid var(--app-header-control-border, var(--border-subtle));border-radius:var(--app-header-control-radius, var(--radius-md));color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.search-trigger[data-v-75baad4b]:hover{color:var(--text-primary);background:var(--surface-2);border-color:color-mix(in srgb,var(--accent-primary) 24%,var(--border-subtle))}.search-trigger__icon[data-v-75baad4b]{flex-shrink:0}.search-trigger__label[data-v-75baad4b]{font-size:var(--text-ui-xs);font-weight:600;color:var(--text-primary)}.search-trigger__shortcut[data-v-75baad4b]{margin-left:auto;font-size:.75rem;color:var(--text-muted);padding:.18rem .4rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-2) 92%,transparent);border:1px solid color-mix(in srgb,var(--border-subtle) 78%,transparent);line-height:1}@media(max-width:900px){.search-trigger[data-v-75baad4b]{min-width:8.75rem;padding:0 .75rem}.search-trigger__shortcut[data-v-75baad4b]{display:none}}@media(max-width:760px){.search-trigger[data-v-75baad4b]{min-width:auto;max-width:none;padding:0 .72rem}.search-trigger__label[data-v-75baad4b]{display:none}}@media(max-width:640px){.search-trigger[data-v-75baad4b]{min-width:auto;padding:0 .7rem}}.theme-switcher[data-v-8ce0509c]{display:flex;gap:2px;height:var(--app-header-control-height, 32px);background:var(--app-header-control-bg, var(--surface-1));border:1px solid var(--app-header-control-border, var(--border-subtle));border-radius:var(--app-header-control-radius, var(--radius-md));padding:2px;align-items:center;box-sizing:border-box}.theme-switcher__btn[data-v-8ce0509c]{display:flex;align-items:center;justify-content:center;width:calc(var(--app-header-control-height, 32px) - 6px);height:calc(var(--app-header-control-height, 32px) - 6px);background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.theme-switcher__btn[data-v-8ce0509c]:hover{color:var(--text-primary);background:var(--surface-2)}.theme-switcher__btn--active[data-v-8ce0509c]{color:var(--text-primary);background:color-mix(in srgb,var(--soft-accent-bg) 70%,var(--surface-1));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-primary) 22%,transparent)}.notification-bell[data-v-f648448e]{position:relative;display:flex;align-items:center}.notification-bell__trigger[data-v-f648448e]{width:var(--app-header-control-height, 32px);height:var(--app-header-control-height, 32px);background:var(--app-header-control-bg, transparent);border:1px solid var(--app-header-control-border, transparent);color:var(--text-muted);cursor:pointer;padding:0;border-radius:var(--app-header-control-radius, var(--radius-md));position:relative;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);display:flex;align-items:center;justify-content:center}.notification-bell__trigger[data-v-f648448e]:hover{color:var(--text-primary);background:var(--surface-2);border-color:var(--border-strong)}.notification-bell__badge[data-v-f648448e]{position:absolute;top:0;right:0;background:var(--accent-red);color:var(--accent-contrast-text);font-size:.6rem;font-weight:700;padding:0 .25rem;border-radius:999px;transform:translate(25%,-25%)}.notification-bell__dropdown[data-v-f648448e]{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--overlay-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--sheet-shadow);width:360px;z-index:200;overflow:hidden;transform-origin:top right}.notification-bell-dropdown-enter-active[data-v-f648448e],.notification-bell-dropdown-leave-active[data-v-f648448e]{transition:opacity .18s ease,transform .22s ease}.notification-bell-dropdown-enter-from[data-v-f648448e],.notification-bell-dropdown-leave-to[data-v-f648448e]{opacity:0;transform:translateY(-8px) scale(.98)}.notification-bell__header[data-v-f648448e]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.notification-bell__header h4[data-v-f648448e]{margin:0;font-size:.9375rem;font-weight:700;color:var(--text-primary)}.notification-bell__mark-all[data-v-f648448e]{background:none;border:1px solid transparent;color:var(--text-muted);cursor:pointer;width:2.25rem;height:2.25rem;padding:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.notification-bell__mark-all[data-v-f648448e]:hover{color:var(--accent-primary);background:var(--surface-2);border-color:var(--border-subtle)}.notification-bell__empty[data-v-f648448e]{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.8rem}.notification-bell__list[data-v-f648448e]{max-height:300px;overflow-y:auto}.notification-bell__item[data-v-f648448e]{display:flex;gap:.75rem;width:100%;padding:.75rem 1rem;border-bottom:1px solid var(--border);cursor:pointer;background:transparent;border-left:none;border-right:none;border-top:none;text-align:left;transition:background var(--transition-fast)}.notification-bell__item[data-v-f648448e]:last-child{border-bottom:none}.notification-bell__item[data-v-f648448e]:hover{background:var(--surface-2)}.notification-bell__item--unread[data-v-f648448e]{background:color-mix(in srgb,var(--soft-accent-bg) 85%,var(--surface-1))}.notification-bell__icon[data-v-f648448e]{margin-top:.25rem;color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,transparent);width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-bell__content[data-v-f648448e]{display:flex;flex-direction:column;gap:.25rem}.notification-bell__content p[data-v-f648448e]{margin:0;font-size:.8rem;color:var(--text-primary);line-height:1.3}.notification-bell__content span[data-v-f648448e]{font-size:.7rem;color:var(--text-muted)}@media(max-width:640px){.notification-bell__dropdown[data-v-f648448e]{position:fixed;top:calc(var(--header-height) + .65rem);left:.75rem;right:.75rem;width:auto;max-width:none;margin-top:0;border-radius:var(--radius-lg);transform-origin:top center;box-shadow:var(--shadow-lg)}.notification-bell__header[data-v-f648448e]{padding:.9rem 1rem}.notification-bell__list[data-v-f648448e]{max-height:min(50vh,24rem)}.notification-bell__item[data-v-f648448e]{gap:.8rem;padding:.85rem 1rem}.notification-bell__content p[data-v-f648448e]{font-size:.875rem;line-height:1.45}.notification-bell__content span[data-v-f648448e]{font-size:.75rem}}@media(prefers-reduced-motion:reduce){.notification-bell-dropdown-enter-active[data-v-f648448e],.notification-bell-dropdown-leave-active[data-v-f648448e]{transition:none}}.app-header[data-v-2b77a95b]{--app-header-control-height: var(--touch-target-compact);--app-header-control-radius: var(--radius-md);--app-header-control-bg: var(--surface-1);--app-header-control-border: var(--border-subtle);display:flex;align-items:center;height:var(--header-height);padding:0 clamp(.8rem,1.5vw,1.15rem);background:var(--shell-surface);border-bottom:1px solid var(--border-subtle);gap:var(--space-md);position:sticky;top:0;z-index:100}.app-header__toggle[data-v-2b77a95b]{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;width:var(--app-header-control-height);height:var(--app-header-control-height);padding:0;border-radius:var(--radius-md);border:1px solid var(--app-header-control-border);background:var(--app-header-control-bg);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);flex-shrink:0;line-height:1}.app-header__toggle[data-v-2b77a95b]:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--surface-2)}.app-header__brand[data-v-2b77a95b]{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.app-header__logo[data-v-2b77a95b]{color:var(--text-secondary);flex-shrink:0}.app-header__title[data-v-2b77a95b]{font-size:.92rem;font-weight:700;letter-spacing:.02em;color:var(--text-primary)}.app-header__nav[data-v-2b77a95b]{display:flex;gap:.15rem;flex:1;min-width:0}.app-header__link[data-v-2b77a95b]{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--app-header-control-height);padding:0 .72rem;border-bottom:2px solid transparent;border-radius:0;font-size:.84rem;font-weight:600;color:var(--text-secondary);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.app-header__link[data-v-2b77a95b]:hover{color:var(--text-primary);background:transparent;border-color:var(--border-subtle)}.app-header__link--active[data-v-2b77a95b]{color:var(--text-primary);background:transparent;border-color:var(--accent-primary)}.app-header__link-icon[data-v-2b77a95b]{flex-shrink:0}.app-header__right[data-v-2b77a95b]{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;margin-left:auto;flex-shrink:0;min-width:0}.app-header__streak[data-v-2b77a95b]{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-size:var(--text-ui-2xs);color:var(--text-muted);min-height:var(--app-header-control-height);padding:0 .62rem;border:1px solid var(--app-header-control-border);border-radius:var(--radius-md);background:var(--app-header-control-bg);line-height:1}.app-header__streak--active[data-v-2b77a95b]{color:var(--accent-amber);border-color:color-mix(in srgb,var(--accent-amber) 20%,var(--border-subtle));background:var(--app-header-control-bg)}.app-header__logout[data-v-2b77a95b]{display:inline-flex;align-items:center;min-height:var(--app-header-control-height);justify-content:center;width:var(--app-header-control-height);padding:0;border-radius:var(--radius-md);border:1px solid var(--app-header-control-border);background:var(--app-header-control-bg)}.app-header__logout[data-v-2b77a95b]{color:var(--text-primary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.app-header__logout[data-v-2b77a95b]:hover{color:var(--text-primary);background:var(--surface-2);border-color:var(--border-strong)}@media(max-width:1180px){.app-header__nav[data-v-2b77a95b]{display:none}}@media(max-width:900px){.app-header[data-v-2b77a95b]{gap:.75rem}.app-header__streak[data-v-2b77a95b]{display:none}}@media(max-width:1024px){.app-header__right[data-v-2b77a95b] .theme-switcher{display:none}}@media(max-width:760px){.app-header[data-v-2b77a95b]{gap:.6rem;padding-inline:.75rem}.app-header__title[data-v-2b77a95b]{display:none}.app-header__right[data-v-2b77a95b]{gap:.3rem}.app-header__right[data-v-2b77a95b] .markdown-font-size-switcher__trigger{width:2.25rem}}@media(max-width:640px){.app-header__right[data-v-2b77a95b]{gap:.25rem}}.app-sidebar[data-v-4192cdcb]{width:var(--sidebar-width);height:100%;overflow-y:auto;background:var(--shell-surface);border-right:1px solid var(--border-subtle);padding:var(--space-lg) 0;flex-shrink:0}.app-sidebar__section[data-v-4192cdcb]{padding:0 var(--space-md);margin-bottom:var(--space-xl)}.app-sidebar__heading[data-v-4192cdcb]{font-size:var(--text-label);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-md);padding:0 .7rem}.app-sidebar__empty[data-v-4192cdcb]{font-size:.75rem;color:var(--text-muted)}.app-sidebar__hint[data-v-4192cdcb]{font-size:.75rem;color:var(--text-muted);margin-top:.125rem}.app-sidebar__link[data-v-4192cdcb]{display:flex;align-items:center;gap:var(--space-md);min-height:var(--touch-target-compact);padding:0 .62rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-ui-xs);font-weight:550;color:var(--text-secondary);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);margin-bottom:.2rem;position:relative}.app-sidebar__link[data-v-4192cdcb]:hover{color:var(--text-primary);background:var(--surface-2);border-color:var(--border-subtle)}.app-sidebar__link--active[data-v-4192cdcb]{color:var(--text-primary);background:var(--surface-2);border-color:transparent}.app-sidebar__link--active[data-v-4192cdcb]:before{content:"";position:absolute;left:.28rem;top:.55rem;bottom:.55rem;width:2px;border-radius:999px;background:var(--accent-primary)}.app-sidebar__course[data-v-4192cdcb]{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--touch-target-compact);padding:0 .7rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-ui-xs);color:var(--text-secondary);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);margin-bottom:.2rem;position:relative}.app-sidebar__course[data-v-4192cdcb]:hover{color:var(--text-primary);background:var(--surface-2);border-color:var(--border-subtle)}.app-sidebar__course--active[data-v-4192cdcb]{color:var(--text-primary);background:var(--surface-2);border-color:transparent}.app-sidebar__course--active[data-v-4192cdcb]:before{content:"";position:absolute;left:.3rem;top:.5rem;bottom:.5rem;width:2px;border-radius:999px;background:var(--accent-primary)}.app-sidebar__course-icon[data-v-4192cdcb]{font-size:.9375rem;flex-shrink:0}.app-sidebar__course-name[data-v-4192cdcb]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar__course-pct[data-v-4192cdcb]{font-size:.75rem;font-weight:500;flex-shrink:0}.app-sidebar__phase[data-v-4192cdcb]{margin-bottom:1px}.app-sidebar__phase-toggle[data-v-4192cdcb]{display:flex;align-items:center;gap:.35rem;width:100%;min-height:var(--touch-target-compact);padding:0 .7rem;background:none;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-ui-xs);font-weight:550;color:var(--text-secondary);cursor:pointer;text-align:left;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.app-sidebar__phase-toggle[data-v-4192cdcb]:hover{color:var(--text-primary);background:var(--surface-2);border-color:var(--border-subtle)}.app-sidebar__phase-toggle--expanded[data-v-4192cdcb]{color:var(--text-primary);border-color:transparent;background:var(--surface-2)}.app-sidebar__phase-arrow[data-v-4192cdcb]{flex-shrink:0;color:var(--text-muted)}.app-sidebar__phase-name[data-v-4192cdcb]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar__phase-pct[data-v-4192cdcb]{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.app-sidebar__modules[data-v-4192cdcb]{padding-left:1.5rem;margin-top:2px}.app-sidebar__module[data-v-4192cdcb]{display:block;min-height:2.5rem;padding:.58rem .65rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:.8125rem;color:var(--text-muted);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar__module[data-v-4192cdcb]:hover{color:var(--text-primary);background:var(--surface-2);border-color:var(--border-subtle)}.app-sidebar__module--active[data-v-4192cdcb]{color:var(--text-primary);background:var(--surface-2);border-color:transparent}.app-sidebar__section--mobile-appearance[data-v-4192cdcb]{display:none}.app-sidebar__appearance[data-v-4192cdcb]{display:grid;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-1);--app-header-control-height: var(--touch-target-compact);--app-header-control-radius: var(--radius-md);--app-header-control-bg: var(--surface-2);--app-header-control-border: var(--border-subtle)}.app-sidebar__appearance-header[data-v-4192cdcb]{display:flex;align-items:flex-start;gap:var(--space-sm)}.app-sidebar__appearance-icon[data-v-4192cdcb]{color:var(--text-secondary);flex-shrink:0;margin-top:.1rem}.app-sidebar__appearance-title[data-v-4192cdcb]{font-size:.875rem;font-weight:700;color:var(--text-primary)}.app-sidebar__appearance-copy[data-v-4192cdcb]{margin:.2rem 0 0;font-size:.8125rem;line-height:1.5;color:var(--text-secondary)}.app-sidebar__appearance-control[data-v-4192cdcb] .theme-switcher{width:fit-content}.phase-expand-enter-active[data-v-4192cdcb]{transition:all .2s ease}.phase-expand-leave-active[data-v-4192cdcb]{transition:all .15s ease}.phase-expand-enter-from[data-v-4192cdcb],.phase-expand-leave-to[data-v-4192cdcb]{opacity:0;max-height:0;overflow:hidden}.phase-expand-enter-to[data-v-4192cdcb],.phase-expand-leave-from[data-v-4192cdcb]{opacity:1;max-height:500px}@media(max-width:1024px){.app-sidebar[data-v-4192cdcb]{position:absolute;left:0;top:0;bottom:0;z-index:80;width:min(18rem,calc(100vw - .75rem));border-right:none;border-radius:0 var(--radius-lg) var(--radius-lg) 0;box-shadow:var(--shadow-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px))}.app-sidebar__section--mobile-appearance[data-v-4192cdcb]{display:block}}.app-footer[data-v-582cbb9b]{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem var(--space-lg);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-top:1px solid var(--border-subtle);background:var(--shell-surface)}.app-footer__sep[data-v-582cbb9b]{opacity:.4}@media(max-width:640px){.app-footer[data-v-582cbb9b]{display:none}}.toast-container[data-v-a6aba644]{position:fixed;bottom:1rem;right:1rem;display:flex;flex-direction:column-reverse;gap:var(--space-sm);z-index:9999;pointer-events:none}.toast[data-v-a6aba644]{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:.8125rem;color:var(--text-primary);pointer-events:auto;max-width:360px}.toast--error[data-v-a6aba644]{border-color:var(--accent-red)}.toast--error .toast__message[data-v-a6aba644]{color:var(--accent-red)}.toast--success[data-v-a6aba644]{border-color:var(--accent-green)}.toast--success .toast__message[data-v-a6aba644]{color:var(--accent-green)}.toast--info[data-v-a6aba644]{border-color:var(--accent-primary)}.toast__close[data-v-a6aba644]{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.6875rem;padding:.0625rem;flex-shrink:0}.toast__close[data-v-a6aba644]:hover{color:var(--text-primary)}.toast-anim-enter-active[data-v-a6aba644]{transition:all .3s ease}.toast-anim-leave-active[data-v-a6aba644]{transition:all .2s ease}.toast-anim-enter-from[data-v-a6aba644],.toast-anim-leave-to[data-v-a6aba644]{opacity:0;transform:translate(2rem)}.float-timer[data-v-51acf600]{position:fixed;bottom:calc(1.5rem + 5px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-sm);min-width:0;max-width:min(calc(100vw - 2rem),32rem);padding:.25rem .5rem;background:color-mix(in srgb,var(--overlay-surface) 96%,transparent);border:1px solid var(--soft-success-border);border-radius:var(--radius-md);box-shadow:var(--sheet-shadow);z-index:900}.float-timer--paused[data-v-51acf600]{border-color:var(--soft-warning-border)}.float-timer__info[data-v-51acf600]{display:flex;align-items:center;gap:.25rem;flex:1;min-width:0;cursor:pointer;transition:opacity var(--transition-fast)}.float-timer__info[data-v-51acf600]:hover{opacity:.8}.float-timer__info:hover .float-timer__go[data-v-51acf600]{opacity:1}.float-timer__icon[data-v-51acf600]{color:var(--accent-green);flex-shrink:0}.float-timer--paused .float-timer__icon[data-v-51acf600]{color:var(--accent-amber)}.float-timer__time[data-v-51acf600]{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--accent-green);letter-spacing:.03em}.float-timer--paused .float-timer__time[data-v-51acf600]{color:var(--accent-amber)}.float-timer__sep[data-v-51acf600]{color:var(--text-muted);font-size:.625rem}.float-timer__label[data-v-51acf600]{font-size:.6875rem;color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.float-timer__go[data-v-51acf600]{color:var(--text-muted);opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.float-timer__controls[data-v-51acf600]{display:flex;gap:2px;flex-shrink:0}.float-timer__btn[data-v-51acf600]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.float-timer__btn[data-v-51acf600]:hover{background:var(--surface-2);color:var(--text-primary)}.float-timer__btn--resume[data-v-51acf600]{border-color:var(--soft-success-border);color:var(--accent-green)}.float-timer__btn--stop[data-v-51acf600]{border-color:var(--soft-danger-border);color:var(--accent-red)}.float-timer__btn--stop[data-v-51acf600]:hover{background:var(--soft-danger-bg)}.float-timer-enter-active[data-v-51acf600]{transition:all .3s ease}.float-timer-leave-active[data-v-51acf600]{transition:all .2s ease}.float-timer-enter-from[data-v-51acf600],.float-timer-leave-to[data-v-51acf600]{opacity:0;transform:translate(-50%) translateY(.75rem)}@media(max-width:640px){.float-timer[data-v-51acf600]{left:.75rem;right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + .9rem);transform:none;width:auto;max-width:min(calc(100vw - 5.1rem),18rem);gap:.35rem;padding:.28rem .42rem}.float-timer__label[data-v-51acf600]{max-width:min(7rem,32vw);font-size:.625rem}.float-timer__time[data-v-51acf600]{font-size:.7rem}.float-timer__sep[data-v-51acf600]{display:none}.float-timer__btn[data-v-51acf600]{width:22px;height:22px}}@media(max-width:420px){.float-timer[data-v-51acf600]{max-width:min(calc(100vw - 5rem),15rem)}.float-timer__label[data-v-51acf600]{display:none}}.search-backdrop[data-v-3c57cbe2]{position:fixed;inset:0;background:var(--overlay-backdrop);z-index:9999;display:flex;justify-content:center;align-items:flex-start;padding:max(5rem,8vh) 1rem 1rem}.search-modal[data-v-3c57cbe2]{width:min(100%,40rem);background:var(--overlay-surface);border:1px solid var(--border-subtle);border-radius:calc(var(--radius-lg) + 2px);box-shadow:var(--sheet-shadow);overflow:hidden;display:flex;flex-direction:column;max-height:min(78vh,44rem)}.search-modal__header[data-v-3c57cbe2]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);padding:var(--space-lg) var(--space-lg) var(--space-md);border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.search-modal__heading[data-v-3c57cbe2]{display:flex;align-items:flex-start;gap:var(--space-md)}.search-modal__icon[data-v-3c57cbe2]{color:var(--accent-primary);flex-shrink:0;margin-top:.15rem}.search-modal__title[data-v-3c57cbe2]{margin:0;font-size:1.125rem}.search-modal__subtitle[data-v-3c57cbe2]{margin:.25rem 0 0;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.search-modal__close[data-v-3c57cbe2]{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;padding:0;border-radius:var(--radius-md);transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.search-modal__close[data-v-3c57cbe2]:hover{border-color:var(--border-subtle);background:var(--surface-2);color:var(--text-primary)}.search-modal__input-row[data-v-3c57cbe2]{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.search-modal__input-icon[data-v-3c57cbe2]{color:var(--text-muted);flex-shrink:0}.search-modal__input[data-v-3c57cbe2]{flex:1;min-height:2.75rem;background:transparent;border:none;padding:0;color:var(--text-primary);font-size:1rem;font-weight:600;line-height:1.4;outline:none}.search-modal__input[data-v-3c57cbe2]::placeholder{color:var(--text-muted)}.search-modal__tabs[data-v-3c57cbe2]{display:flex;gap:var(--space-md);padding:0 var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--surface-1)}.search-modal__tab[data-v-3c57cbe2]{display:flex;align-items:center;gap:var(--space-sm);min-height:3rem;padding:.75rem .25rem;background:none;border:none;color:var(--text-muted);font-size:.875rem;font-weight:700;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-bottom-color var(--transition-fast)}.search-modal__tab[data-v-3c57cbe2]:hover{color:var(--text-primary)}.search-modal__tab--active[data-v-3c57cbe2]{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.search-modal__body[data-v-3c57cbe2]{overflow-y:auto;min-height:7rem}.search-modal__loading[data-v-3c57cbe2],.search-modal__empty[data-v-3c57cbe2]{padding:var(--space-xl);text-align:center;color:var(--text-secondary);font-size:.9375rem}.search-modal__empty--hint[data-v-3c57cbe2]{color:var(--text-muted)}.search-result[data-v-3c57cbe2]{width:100%;padding:.8rem var(--space-lg);cursor:pointer;border:none;border-left:3px solid transparent;border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent);background:transparent;text-align:left;transition:background var(--transition-fast),border-left-color var(--transition-fast)}.search-result[data-v-3c57cbe2]:hover,.search-result--active[data-v-3c57cbe2]{background:var(--surface-2);border-left-color:var(--accent-primary)}.search-result__header[data-v-3c57cbe2]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:.25rem}.search-result__title-area[data-v-3c57cbe2]{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.search-result__title[data-v-3c57cbe2]{font-weight:700;font-size:.9375rem;color:var(--text-primary)}.search-result__icon[data-v-3c57cbe2]{color:var(--accent-primary);flex-shrink:0}.search-result__badge[data-v-3c57cbe2]{font-size:.75rem;padding:.2rem .45rem;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap}.search-result__preview[data-v-3c57cbe2]{font-size:.875rem;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word}[data-v-3c57cbe2] .highlight{color:var(--text-primary);background:color-mix(in srgb,var(--accent-primary) 20%,transparent);border-radius:2px;padding:0 2px}.search-modal__footer[data-v-3c57cbe2]{display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:.65rem var(--space-lg);border-top:1px solid var(--border-subtle);background:var(--surface-1);font-size:.75rem;color:var(--text-muted)}.search-shortcut kbd[data-v-3c57cbe2]{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.12rem .35rem;font-family:inherit;font-size:.72rem}@media(max-width:640px){.search-backdrop[data-v-3c57cbe2]{padding-top:4.75rem}.search-modal[data-v-3c57cbe2]{max-width:100%;max-height:calc(100vh - 5.5rem)}.search-modal__header[data-v-3c57cbe2],.search-modal__input-row[data-v-3c57cbe2],.search-modal__footer[data-v-3c57cbe2]{padding-left:var(--space-md);padding-right:var(--space-md)}.search-modal__tabs[data-v-3c57cbe2]{padding:0 var(--space-md)}.search-result[data-v-3c57cbe2]{padding-left:var(--space-md);padding-right:var(--space-md)}}.fade-enter-active[data-v-3c57cbe2],.fade-leave-active[data-v-3c57cbe2]{transition:opacity .15s ease}.fade-enter-from[data-v-3c57cbe2],.fade-leave-to[data-v-3c57cbe2]{opacity:0}.shortcuts-overlay[data-v-d0a46516]{position:fixed;inset:0;background:var(--overlay-backdrop);display:flex;align-items:center;justify-content:center;z-index:1100}.shortcuts-modal[data-v-d0a46516]{background:var(--overlay-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);width:26rem;max-width:95vw;box-shadow:var(--sheet-shadow)}.shortcuts-modal__header[data-v-d0a46516]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.shortcuts-modal__header h3[data-v-d0a46516]{margin:0;font-size:1.0625rem;color:var(--text-primary)}.shortcuts-modal__close[data-v-d0a46516]{background:none;border:1px solid transparent;color:var(--text-muted);cursor:pointer;width:2.5rem;height:2.5rem;padding:0;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center}.shortcuts-modal__close[data-v-d0a46516]:hover{background:var(--surface-2);border-color:var(--border-subtle);color:var(--text-primary)}.shortcuts-modal__group[data-v-d0a46516]{margin-bottom:var(--space-lg)}.shortcuts-modal__group-title[data-v-d0a46516]{font-size:var(--text-label);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 var(--space-sm)}.shortcuts-modal__item[data-v-d0a46516]{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;gap:var(--space-md)}.shortcuts-modal__label[data-v-d0a46516]{font-size:.9375rem;color:var(--text-secondary)}.shortcuts-modal__kbd[data-v-d0a46516]{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.2rem .45rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-primary)}.app-layout[data-v-00ea91d9]{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;background:var(--page-canvas)}.app-layout__body[data-v-00ea91d9]{display:flex;flex:1;min-height:0;min-width:0;isolation:isolate;position:relative}.app-layout__main[data-v-00ea91d9]{flex:1;min-width:0;overflow-y:scroll;overflow-x:clip;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 50%,transparent) transparent;padding:clamp(1rem,1.8vw,1.6rem);max-width:var(--content-max-width);margin:0 auto;width:100%}.app-layout__sidebar-overlay[data-v-00ea91d9]{position:absolute;inset:0;z-index:70;background:var(--overlay-backdrop);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.app-public[data-v-00ea91d9]{min-height:100dvh;background:var(--page-canvas)}.app-loading[data-v-00ea91d9]{min-height:100dvh;display:grid;place-items:center;padding:var(--space-xl);background:var(--page-canvas)}.app-loading__panel[data-v-00ea91d9]{width:min(420px,100%);padding:1.75rem;text-align:center}.app-loading__eyebrow[data-v-00ea91d9]{display:inline-block;margin-bottom:.75rem;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-primary)}.app-loading__panel h1[data-v-00ea91d9]{margin:0;font-size:1.5rem}.app-loading__panel p[data-v-00ea91d9]{margin:.5rem 0 0;color:var(--text-muted)}.app-layout__main[data-v-00ea91d9]::-webkit-scrollbar{width:10px}.app-layout__main[data-v-00ea91d9]::-webkit-scrollbar-track{background:transparent}.app-layout__main[data-v-00ea91d9]::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 46%,transparent);border-radius:999px;border:2px solid transparent;background-clip:content-box}.app-layout__main[data-v-00ea91d9]::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-secondary) 56%,transparent)}@media(max-width:1024px){.app-layout__main[data-v-00ea91d9]{padding:var(--space-lg)}}@media(max-width:640px){.app-layout__main[data-v-00ea91d9]{padding:var(--space-md)}}.fade-enter-active{transition:opacity .18s ease,transform .18s ease}.fade-leave-active{transition:opacity .12s ease}.fade-enter-from,.fade-leave-to{opacity:0}.fade-enter-from{transform:translateY(4px)}.sidebar-slide-enter-active,.sidebar-slide-leave-active{transition:transform .2s ease,opacity .2s ease,filter .2s ease}.sidebar-slide-enter-from,.sidebar-slide-leave-to{transform:translate(-100%);opacity:0;filter:blur(2px)}.sidebar-overlay-fade-enter-active,.sidebar-overlay-fade-leave-active{transition:opacity .18s ease}.sidebar-overlay-fade-enter-from,.sidebar-overlay-fade-leave-to{opacity:0}:root,:root[data-theme=dark]{color-scheme:dark;--font-sans: "Manrope", "Plus Jakarta Sans", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", "Cascadia Code", monospace;--text-ui-2xs: .75rem;--text-ui-xs: .875rem;--text-ui-sm: .9375rem;--text-ui-md: 1rem;--text-page-title: clamp(1.45rem, 1.2rem + .8vw, 2rem);--text-section-title: .98rem;--text-label: .72rem;--touch-target-compact: 44px;--touch-target-comfortable: 48px;--sidebar-width: 272px;--header-height: 64px;--content-max-width: 1160px;--page-max-width: 1180px;--page-reading-width: 76ch;--markdown-max-width: 74ch;--markdown-max-width-tablet: 68ch;--space-2xs: .1875rem;--space-xs: .375rem;--space-sm: .625rem;--space-md: .875rem;--space-lg: 1.125rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 2.75rem;--radius-sm: 5px;--radius-md: 9px;--radius-lg: 14px;--transition-fast: .14s cubic-bezier(.2, .8, .2, 1);--transition-normal: .22s cubic-bezier(.2, .8, .2, 1);--page-canvas: #13171c;--page-canvas-muted: #171c22;--shell-surface: rgba(21, 26, 32, .94);--shell-surface-strong: #191f27;--surface-1: #191f26;--surface-2: #202731;--surface-3: #262f3a;--surface-hover: #2b3440;--reader-bg: #181d24;--reader-bg-muted: #1d232b;--overlay-surface: rgba(21, 26, 32, .98);--border-subtle: #2a3340;--border-strong: #3a4656;--reader-border: #303948;--text-primary: #edf2f8;--text-secondary: #bcc7d6;--text-muted: #8e9aac;--text-inverse: #0f1823;--accent-primary: #78a9ff;--accent-strong: #9bc0ff;--accent-contrast-text: #08111c;--accent-green: #7fc78e;--accent-amber: #d7ae63;--accent-red: #dd8a8a;--accent-purple: #b7a8f4;--accent-teal: #7fc3b7;--accent-rose: #d8a2bb;--soft-accent-bg: rgba(120, 169, 255, .1);--soft-accent-strong-bg: rgba(120, 169, 255, .16);--soft-accent-border: rgba(120, 169, 255, .28);--soft-success-bg: rgba(127, 199, 142, .1);--soft-success-strong-bg: rgba(127, 199, 142, .16);--soft-success-border: rgba(127, 199, 142, .26);--soft-warning-bg: rgba(215, 174, 99, .1);--soft-warning-strong-bg: rgba(215, 174, 99, .15);--soft-warning-border: rgba(215, 174, 99, .26);--soft-danger-bg: rgba(221, 138, 138, .1);--soft-danger-strong-bg: rgba(221, 138, 138, .16);--soft-danger-border: rgba(221, 138, 138, .26);--focus-ring: rgba(120, 169, 255, .28);--overlay-backdrop: rgba(8, 11, 16, .6);--sheet-shadow: 0 20px 48px rgba(0, 0, 0, .32);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .12);--shadow-md: 0 10px 24px rgba(0, 0, 0, .16);--shadow-lg: 0 18px 40px rgba(0, 0, 0, .22);--shadow-accent: 0 6px 18px rgba(120, 169, 255, .16);--shadow-accent-hover: 0 8px 22px rgba(120, 169, 255, .2);--markdown-font-size: 1rem;--markdown-line-height: 1.8;--markdown-h1-size: 1.78rem;--markdown-h2-size: 1.36rem;--markdown-h3-size: 1.12rem;--markdown-inline-code-size: .9em;--markdown-code-block-size: .84rem;--markdown-table-font-size: .82rem;--markdown-inline-code-bg: rgba(120, 169, 255, .1);--markdown-inline-code-border: rgba(120, 169, 255, .2);--markdown-code-bg: #11161d;--markdown-code-header-bg: #171d25;--markdown-code-border: #2c3645;--markdown-code-label: #9bc0ff;--markdown-code-text: #d7e1ee;--markdown-quote-bg: rgba(120, 169, 255, .06);--markdown-quote-border: rgba(120, 169, 255, .3);--markdown-table-header-bg: #1a212a;--markdown-table-row-alt: rgba(255, 255, 255, .02);--markdown-marker: #8db7ff;--syntax-comment: #8c96a5;--syntax-keyword: #9fc3ff;--syntax-string: #95d1a0;--syntax-number: #e1b87d;--syntax-title: #8fd4cb;--syntax-variable: #e3aebe;--syntax-attr: #c7b7ff;--syntax-literal: #f2ca84;--status-not-started: var(--text-muted);--status-in-progress: var(--accent-amber);--status-completed: var(--accent-green);--status-skipped: var(--text-secondary);--cat-theory: var(--accent-primary);--cat-exercises: var(--accent-teal);--cat-projects: var(--accent-purple);--cat-use-cases: var(--accent-rose);--cat-resources: var(--accent-amber);--heatmap-l0: var(--surface-2);--heatmap-l1: color-mix(in srgb, var(--accent-green) 28%, var(--surface-2));--heatmap-l2: color-mix(in srgb, var(--accent-green) 42%, var(--surface-2));--heatmap-l3: color-mix(in srgb, var(--accent-green) 58%, var(--surface-2));--heatmap-l4: color-mix(in srgb, var(--accent-green) 74%, var(--surface-2));--accent-blue: var(--accent-primary);--bg-primary: var(--page-canvas);--bg-secondary: var(--page-canvas-muted);--bg-card: var(--surface-1);--bg-hover: var(--surface-hover);--bg-elevated: var(--surface-3);--border: var(--border-strong);--border-light: var(--border-subtle);--glass-bg: rgba(255, 255, 255, .035);--glass-border: var(--border-subtle);--gradient-accent: var(--accent-primary);--gradient-surface: var(--surface-1);--gradient-bg: var(--page-canvas);--reader-surface: var(--reader-bg);--reader-shadow: 0 18px 40px rgba(0, 0, 0, .24)}:root[data-markdown-font-size=small]{--markdown-font-size: .9375rem;--markdown-line-height: 1.72;--markdown-h1-size: 1.56rem;--markdown-h2-size: 1.24rem;--markdown-h3-size: 1.05rem;--markdown-inline-code-size: .86em;--markdown-code-block-size: .8rem;--markdown-table-font-size: .77rem}:root[data-markdown-font-size=medium]{--markdown-font-size: 1rem;--markdown-line-height: 1.8;--markdown-h1-size: 1.78rem;--markdown-h2-size: 1.36rem;--markdown-h3-size: 1.12rem;--markdown-inline-code-size: .9em;--markdown-code-block-size: .84rem;--markdown-table-font-size: .82rem}:root[data-markdown-font-size=large]{--markdown-font-size: 1.08rem;--markdown-line-height: 1.88;--markdown-h1-size: 1.92rem;--markdown-h2-size: 1.5rem;--markdown-h3-size: 1.2rem;--markdown-inline-code-size: .94em;--markdown-code-block-size: .9rem;--markdown-table-font-size: .88rem}:root[data-theme=light]{color-scheme:light;--page-canvas: #f4f1ea;--page-canvas-muted: #efeae2;--shell-surface: rgba(244, 241, 234, .94);--shell-surface-strong: #ece6dd;--surface-1: #fcfaf6;--surface-2: #f3eee6;--surface-3: #ebe3d7;--surface-hover: #e7ddd0;--reader-bg: #fffdf9;--reader-bg-muted: #f8f3ec;--overlay-surface: rgba(252, 250, 246, .98);--border-subtle: #ddd3c6;--border-strong: #c7baa8;--reader-border: #d8ccbd;--text-primary: #1d1a16;--text-secondary: #4f473d;--text-muted: #7c7267;--text-inverse: #fdfbf8;--accent-primary: #285ea8;--accent-strong: #1c4f94;--accent-contrast-text: #f9fbff;--accent-green: #2f7c4a;--accent-amber: #956319;--accent-red: #a24545;--accent-purple: #6f57a5;--accent-teal: #2c776f;--accent-rose: #94536b;--soft-accent-bg: rgba(40, 94, 168, .08);--soft-accent-strong-bg: rgba(40, 94, 168, .13);--soft-accent-border: rgba(40, 94, 168, .2);--soft-success-bg: rgba(47, 124, 74, .08);--soft-success-strong-bg: rgba(47, 124, 74, .12);--soft-success-border: rgba(47, 124, 74, .2);--soft-warning-bg: rgba(149, 99, 25, .08);--soft-warning-strong-bg: rgba(149, 99, 25, .12);--soft-warning-border: rgba(149, 99, 25, .22);--soft-danger-bg: rgba(162, 69, 69, .08);--soft-danger-strong-bg: rgba(162, 69, 69, .12);--soft-danger-border: rgba(162, 69, 69, .22);--focus-ring: rgba(40, 94, 168, .18);--overlay-backdrop: rgba(32, 25, 18, .22);--sheet-shadow: 0 24px 54px rgba(38, 26, 17, .14);--shadow-sm: 0 2px 6px rgba(52, 37, 22, .06);--shadow-md: 0 10px 24px rgba(52, 37, 22, .08);--shadow-lg: 0 20px 42px rgba(52, 37, 22, .11);--shadow-accent: 0 8px 18px rgba(40, 94, 168, .12);--shadow-accent-hover: 0 10px 22px rgba(40, 94, 168, .16);--markdown-inline-code-bg: rgba(40, 94, 168, .07);--markdown-inline-code-border: rgba(40, 94, 168, .14);--markdown-code-bg: #f5f0e8;--markdown-code-header-bg: #efe8dd;--markdown-code-border: #d7cbbd;--markdown-code-label: #285ea8;--markdown-code-text: #2c241c;--markdown-quote-bg: rgba(40, 94, 168, .05);--markdown-quote-border: rgba(40, 94, 168, .2);--markdown-table-header-bg: #f1ebe2;--markdown-table-row-alt: rgba(43, 32, 20, .025);--markdown-marker: #285ea8;--syntax-comment: #847869;--syntax-keyword: #285ea8;--syntax-string: #35704a;--syntax-number: #9f6b1f;--syntax-title: #2c776f;--syntax-variable: #95526c;--syntax-attr: #6f57a5;--syntax-literal: #b07b2b;--heatmap-l0: var(--surface-3);--heatmap-l1: color-mix(in srgb, var(--accent-green) 18%, var(--surface-2));--heatmap-l2: color-mix(in srgb, var(--accent-green) 34%, var(--surface-2));--heatmap-l3: color-mix(in srgb, var(--accent-green) 50%, var(--surface-2));--heatmap-l4: color-mix(in srgb, var(--accent-green) 66%, var(--surface-2));--glass-bg: rgba(32, 25, 18, .04)}:root[data-theme=high-contrast]{color-scheme:dark;--page-canvas: #060607;--page-canvas-muted: #0d0d0f;--shell-surface: rgba(10, 10, 12, .96);--shell-surface-strong: #111216;--surface-1: #101114;--surface-2: #18191d;--surface-3: #22242a;--surface-hover: #2a2d35;--reader-bg: #0d0f12;--reader-bg-muted: #111318;--overlay-surface: rgba(10, 10, 12, .99);--border-subtle: #444851;--border-strong: #676e7a;--reader-border: #5a606c;--text-primary: #ffffff;--text-secondary: #ebedf0;--text-muted: #c8cdd5;--text-inverse: #090909;--accent-primary: #82bbff;--accent-strong: #9ac9ff;--accent-contrast-text: #081019;--accent-green: #84e39c;--accent-amber: #ffd167;--accent-red: #ff939c;--accent-purple: #d1bfff;--accent-teal: #91ebe1;--accent-rose: #ffb3c9;--soft-accent-bg: rgba(130, 187, 255, .16);--soft-accent-strong-bg: rgba(130, 187, 255, .24);--soft-accent-border: rgba(130, 187, 255, .4);--soft-success-bg: rgba(132, 227, 156, .14);--soft-success-strong-bg: rgba(132, 227, 156, .22);--soft-success-border: rgba(132, 227, 156, .38);--soft-warning-bg: rgba(255, 209, 103, .14);--soft-warning-strong-bg: rgba(255, 209, 103, .22);--soft-warning-border: rgba(255, 209, 103, .38);--soft-danger-bg: rgba(255, 147, 156, .14);--soft-danger-strong-bg: rgba(255, 147, 156, .22);--soft-danger-border: rgba(255, 147, 156, .38);--focus-ring: rgba(130, 187, 255, .34);--overlay-backdrop: rgba(0, 0, 0, .78);--sheet-shadow: 0 24px 56px rgba(0, 0, 0, .5);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .28);--shadow-md: 0 12px 26px rgba(0, 0, 0, .38);--shadow-lg: 0 22px 44px rgba(0, 0, 0, .52);--shadow-accent: 0 8px 20px rgba(130, 187, 255, .22);--shadow-accent-hover: 0 10px 24px rgba(130, 187, 255, .28);--reader-shadow: 0 20px 44px rgba(0, 0, 0, .44);--markdown-inline-code-bg: rgba(130, 187, 255, .16);--markdown-inline-code-border: rgba(130, 187, 255, .3);--markdown-code-bg: #0b0d10;--markdown-code-header-bg: #11141a;--markdown-code-border: #4e5562;--markdown-code-label: #b6d7ff;--markdown-code-text: #ffffff;--markdown-quote-bg: rgba(130, 187, 255, .11);--markdown-quote-border: rgba(130, 187, 255, .42);--markdown-table-header-bg: #151920;--markdown-table-row-alt: rgba(255, 255, 255, .04);--markdown-marker: #a7ceff;--syntax-comment: #c8ced6;--syntax-keyword: #a7ceff;--syntax-string: #9af0b2;--syntax-number: #ffd67f;--syntax-title: #a3f4eb;--syntax-variable: #ffc3d6;--syntax-attr: #decfff;--syntax-literal: #ffe2a2;--heatmap-l0: #1a1c21;--heatmap-l1: color-mix(in srgb, var(--accent-green) 26%, var(--surface-2));--heatmap-l2: color-mix(in srgb, var(--accent-green) 44%, var(--surface-2));--heatmap-l3: color-mix(in srgb, var(--accent-green) 62%, var(--surface-2));--heatmap-l4: color-mix(in srgb, var(--accent-green) 80%, var(--surface-2));--glass-bg: rgba(255, 255, 255, .06)}:root[data-theme=sepia]{color-scheme:light;--page-canvas: #f3e8d7;--page-canvas-muted: #ede1cf;--shell-surface: rgba(243, 232, 215, .94);--shell-surface-strong: #e7d8c3;--surface-1: #fbf4e7;--surface-2: #f2e6d2;--surface-3: #e8d9c0;--surface-hover: #e2cfb4;--reader-bg: #fff9ef;--reader-bg-muted: #f8efdf;--overlay-surface: rgba(251, 244, 231, .98);--border-subtle: #d1bea0;--border-strong: #bba57f;--reader-border: #cab390;--text-primary: #372718;--text-secondary: #624e3c;--text-muted: #887465;--text-inverse: #fff8ef;--accent-primary: #356ea5;--accent-strong: #285b89;--accent-contrast-text: #f7fbff;--accent-green: #447a54;--accent-amber: #a06f25;--accent-red: #aa5a52;--accent-purple: #7b5c92;--accent-teal: #397d72;--accent-rose: #9c6678;--soft-accent-bg: rgba(53, 110, 165, .08);--soft-accent-strong-bg: rgba(53, 110, 165, .13);--soft-accent-border: rgba(53, 110, 165, .2);--soft-success-bg: rgba(68, 122, 84, .08);--soft-success-strong-bg: rgba(68, 122, 84, .12);--soft-success-border: rgba(68, 122, 84, .2);--soft-warning-bg: rgba(160, 111, 37, .09);--soft-warning-strong-bg: rgba(160, 111, 37, .13);--soft-warning-border: rgba(160, 111, 37, .22);--soft-danger-bg: rgba(170, 90, 82, .09);--soft-danger-strong-bg: rgba(170, 90, 82, .13);--soft-danger-border: rgba(170, 90, 82, .22);--focus-ring: rgba(53, 110, 165, .18);--overlay-backdrop: rgba(41, 29, 16, .24);--sheet-shadow: 0 24px 54px rgba(71, 48, 21, .14);--shadow-sm: 0 2px 6px rgba(71, 48, 21, .06);--shadow-md: 0 10px 24px rgba(71, 48, 21, .08);--shadow-lg: 0 20px 42px rgba(71, 48, 21, .11);--shadow-accent: 0 8px 18px rgba(53, 110, 165, .12);--shadow-accent-hover: 0 10px 22px rgba(53, 110, 165, .16);--markdown-inline-code-bg: rgba(53, 110, 165, .07);--markdown-inline-code-border: rgba(53, 110, 165, .14);--markdown-code-bg: #f4e9d6;--markdown-code-header-bg: #ecdfca;--markdown-code-border: #d2c0a4;--markdown-code-label: #356ea5;--markdown-code-text: #372718;--markdown-quote-bg: rgba(53, 110, 165, .05);--markdown-quote-border: rgba(53, 110, 165, .22);--markdown-table-header-bg: #efe2ce;--markdown-table-row-alt: rgba(55, 39, 24, .03);--markdown-marker: #356ea5;--syntax-comment: #8b7b6a;--syntax-keyword: #356ea5;--syntax-string: #447a54;--syntax-number: #a06f25;--syntax-title: #397d72;--syntax-variable: #9c6678;--syntax-attr: #7b5c92;--syntax-literal: #bb8334;--heatmap-l0: var(--surface-3);--heatmap-l1: color-mix(in srgb, var(--accent-green) 18%, var(--surface-2));--heatmap-l2: color-mix(in srgb, var(--accent-green) 34%, var(--surface-2));--heatmap-l3: color-mix(in srgb, var(--accent-green) 50%, var(--surface-2));--heatmap-l4: color-mix(in srgb, var(--accent-green) 66%, var(--surface-2));--glass-bg: rgba(55, 39, 24, .04);--reader-shadow: 0 18px 40px rgba(71, 48, 21, .12)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--page-canvas)}body{font-family:var(--font-sans);background:var(--page-canvas);color:var(--text-primary);line-height:1.55;min-height:100dvh}#app{min-height:100dvh}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--text-primary)}h1{font-size:var(--text-page-title)}h2{font-size:1.08rem}h3{font-size:.92rem}p{color:var(--text-secondary);line-height:1.65}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast),opacity var(--transition-fast)}a:hover{color:var(--accent-strong)}code,pre{font-family:var(--font-mono);font-size:.8rem}pre{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:.875rem 1rem;overflow-x:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 48%,transparent);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-secondary) 60%,transparent)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;box-shadow:0 0 0 4px var(--focus-ring);border-radius:var(--radius-sm)}::selection{background:color-mix(in srgb,var(--accent-primary) 24%,transparent);color:var(--text-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface-1) 90%,var(--surface-2))}.view{display:grid;gap:var(--space-xl);min-width:0;max-width:100%;animation:view-enter var(--transition-normal)}.view>h1{margin:0}@keyframes view-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.16rem .48rem;border-radius:999px;font-size:.7rem;font-weight:600;line-height:1.35;border:1px solid var(--border-subtle);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2)}.badge--not-started{background:color-mix(in srgb,var(--surface-2) 90%,transparent);color:var(--status-not-started);border-color:color-mix(in srgb,var(--status-not-started) 14%,var(--border-subtle))}.badge--in-progress{background:var(--soft-warning-bg);color:var(--status-in-progress);border-color:var(--soft-warning-border)}.badge--completed{background:var(--soft-success-bg);color:var(--status-completed);border-color:var(--soft-success-border)}.badge--skipped{background:color-mix(in srgb,var(--surface-2) 90%,transparent);color:var(--status-skipped);border-color:color-mix(in srgb,var(--status-skipped) 16%,var(--border-subtle))}.badge--theory{background:color-mix(in srgb,var(--cat-theory) 10%,var(--surface-1));color:var(--cat-theory);border-color:color-mix(in srgb,var(--cat-theory) 22%,var(--border-subtle))}.badge--exercises{background:color-mix(in srgb,var(--cat-exercises) 10%,var(--surface-1));color:var(--cat-exercises);border-color:color-mix(in srgb,var(--cat-exercises) 22%,var(--border-subtle))}.badge--projects{background:color-mix(in srgb,var(--cat-projects) 10%,var(--surface-1));color:var(--cat-projects);border-color:color-mix(in srgb,var(--cat-projects) 22%,var(--border-subtle))}.badge--use_cases{background:color-mix(in srgb,var(--cat-use-cases) 10%,var(--surface-1));color:var(--cat-use-cases);border-color:color-mix(in srgb,var(--cat-use-cases) 22%,var(--border-subtle))}.badge--resources{background:color-mix(in srgb,var(--cat-resources) 10%,var(--surface-1));color:var(--cat-resources);border-color:color-mix(in srgb,var(--cat-resources) 22%,var(--border-subtle))}.progress-bar{width:100%;height:5px;background:color-mix(in srgb,var(--border-subtle) 80%,var(--surface-2));border-radius:999px;overflow:hidden}.progress-bar__fill{height:100%;border-radius:999px;transition:width var(--transition-normal);background:var(--accent-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--touch-target-compact);padding:.6rem .95rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);font-family:var(--font-sans);font-size:.875rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.btn:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface-1) 88%,var(--surface-2))}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--accent-contrast-text)}.btn--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn--secondary{background:var(--surface-2);border-color:var(--border-strong)}.btn--subtle{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn--subtle:hover{background:var(--surface-2);border-color:var(--border-subtle);color:var(--text-primary)}.btn--sm{min-height:2.25rem;padding:.35rem .75rem;font-size:.8125rem}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--surface-1);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-family:var(--font-sans);min-height:var(--touch-target-compact);padding:.7rem .85rem;font-size:.875rem;line-height:1.5;box-shadow:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--focus-ring)}input::placeholder,textarea::placeholder{color:var(--text-muted)}.markdown-prose{font-size:var(--markdown-font-size);line-height:var(--markdown-line-height);color:var(--text-secondary);text-wrap:pretty;max-width:100%;min-width:0}.markdown-prose>:first-child{margin-top:0}.markdown-prose :where(h1,h2,h3,h4){color:var(--text-primary);font-weight:700;letter-spacing:-.015em;line-height:1.24;scroll-margin-top:calc(var(--header-height) + 1rem)}.markdown-prose h1{font-size:var(--markdown-h1-size);margin:0 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--reader-border)}.markdown-prose h2{font-size:var(--markdown-h2-size);margin:2rem 0 .8rem}.markdown-prose h3{font-size:var(--markdown-h3-size);margin:1.5rem 0 .65rem}.markdown-prose h4{margin:1.2rem 0 .5rem;font-size:1rem}.markdown-prose :where(p,ul,ol,pre,table,blockquote,details,hr){margin:.95rem 0}.markdown-prose p{color:var(--text-secondary)}.markdown-prose :where(p,li,blockquote,td,th){overflow-wrap:anywhere}.markdown-prose :where(ul,ol){padding-left:1.5rem}.markdown-prose li{margin:.35rem 0}.markdown-prose li::marker{color:var(--markdown-marker)}.markdown-prose li>p{margin:.35rem 0}.markdown-prose li.task-list-item{list-style:none}.markdown-prose .task-list-item-checkbox{margin-right:.45rem;margin-left:-1.35rem;accent-color:var(--accent-blue)}.markdown-prose code{font-family:var(--font-mono);font-size:var(--markdown-inline-code-size);border-radius:var(--radius-sm)}.markdown-prose :not(pre)>code{background:var(--markdown-inline-code-bg);border:1px solid var(--markdown-inline-code-border);color:var(--text-primary);padding:.12rem .34rem;overflow-wrap:anywhere;word-break:break-word;white-space:break-spaces}.markdown-prose .code-block{margin:.95rem 0;border:1px solid var(--markdown-code-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);max-width:100%}.markdown-prose .mermaid-block{margin:1rem 0;border:1px solid var(--markdown-code-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card);box-shadow:var(--shadow-sm)}.markdown-prose .mermaid-block__header{display:flex;align-items:center;min-height:1.9rem;padding:.45rem .9rem .4rem;border-bottom:1px solid var(--markdown-code-border);background:var(--markdown-code-header-bg)}.markdown-prose .mermaid-block__label{color:var(--markdown-code-label);font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.markdown-prose .mermaid-block__viewport{padding:1rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.markdown-prose .mermaid-block__canvas{min-width:min-content}.markdown-prose .mermaid-block__canvas svg{display:block;max-width:100%;height:auto;margin:0 auto}.markdown-prose .mermaid-block__error{margin:0 1rem 1rem;padding:.7rem .85rem;border:1px solid var(--soft-danger-border);border-radius:var(--radius-md);background:var(--soft-danger-bg);color:var(--text-primary);font-size:.78rem}.markdown-prose .mermaid-block__source{margin:0 1rem 1rem;border:1px solid var(--markdown-code-border);border-radius:var(--radius-md);background:var(--markdown-code-bg);color:var(--markdown-code-text);overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.markdown-prose .mermaid-block__source code{display:block;min-width:max-content;padding:.9rem 1rem;background:transparent;border:none;border-radius:0;color:inherit;font-family:var(--font-mono);font-size:var(--markdown-code-block-size);line-height:1.65;white-space:pre}.markdown-prose .code-block__header{display:flex;align-items:center;min-height:1.9rem;padding:.45rem .45rem .4rem .9rem;border-bottom:1px solid var(--markdown-code-border);background:var(--markdown-code-header-bg)}.markdown-prose .code-block__lang{color:var(--markdown-code-label);font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.markdown-prose .code-block pre{margin:0;background:var(--markdown-code-bg);color:var(--markdown-code-text);border:none;border-radius:0;padding:1rem;overflow-x:auto;box-shadow:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.markdown-prose .code-block pre code{display:block;min-width:max-content;background:transparent;padding:0;border:none;font-size:var(--markdown-code-block-size);line-height:1.65;color:inherit;font-variant-ligatures:none}.markdown-prose .hljs{color:var(--markdown-code-text);background:transparent}.markdown-prose .hljs-comment,.markdown-prose .hljs-quote{color:var(--syntax-comment)}.markdown-prose .hljs-keyword,.markdown-prose .hljs-selector-tag,.markdown-prose .hljs-subst{color:var(--syntax-keyword)}.markdown-prose .hljs-string,.markdown-prose .hljs-doctag,.markdown-prose .hljs-regexp{color:var(--syntax-string)}.markdown-prose .hljs-number,.markdown-prose .hljs-literal{color:var(--syntax-number)}.markdown-prose .hljs-title,.markdown-prose .hljs-section,.markdown-prose .hljs-function .hljs-title{color:var(--syntax-title)}.markdown-prose .hljs-variable,.markdown-prose .hljs-template-variable,.markdown-prose .hljs-name{color:var(--syntax-variable)}.markdown-prose .hljs-attr,.markdown-prose .hljs-attribute,.markdown-prose .hljs-selector-class,.markdown-prose .hljs-selector-id{color:var(--syntax-attr)}.markdown-prose .hljs-built_in,.markdown-prose .hljs-type,.markdown-prose .hljs-symbol,.markdown-prose .hljs-bullet{color:var(--syntax-literal)}.markdown-prose details{background:color-mix(in srgb,var(--reader-surface) 78%,transparent);border:1px solid var(--reader-border);border-radius:var(--radius-md);padding:.65rem .9rem}.markdown-prose summary{cursor:pointer;font-weight:600;color:var(--text-primary)}.markdown-prose summary:hover{color:var(--accent-teal)}.markdown-prose blockquote{padding:.85rem 1rem;border-left:4px solid var(--markdown-quote-border);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--markdown-quote-bg)}.markdown-prose blockquote>:first-child{margin-top:0}.markdown-prose blockquote>:last-child{margin-bottom:0}.markdown-prose table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.markdown-prose :where(th,td){border:1px solid var(--border);padding:.7rem .8rem;text-align:left;font-size:var(--markdown-table-font-size);vertical-align:top}.markdown-prose th{background:var(--markdown-table-header-bg);color:var(--text-primary);font-weight:700}.markdown-prose tbody tr:nth-child(2n){background:var(--markdown-table-row-alt)}.markdown-prose a{color:var(--accent-blue);font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent-blue) 40%,transparent);text-underline-offset:.16em}.markdown-prose a:hover{color:var(--accent-teal);text-decoration-color:color-mix(in srgb,var(--accent-teal) 55%,transparent)}.markdown-prose strong{color:var(--text-primary)}.markdown-prose hr{border:none;border-top:1px solid var(--reader-border)}.markdown-prose img{display:block;max-width:100%;height:auto;margin:1.2rem auto;border:1px solid var(--reader-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.markdown-prose .code-copy-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.85rem;height:1.85rem;padding:0;margin-left:auto;border:1px solid var(--markdown-code-border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--markdown-code-bg) 78%,white 4%);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.markdown-prose .code-block:hover .code-copy-btn,.markdown-prose .code-block:focus-within .code-copy-btn{opacity:1}.markdown-prose .code-copy-btn:hover{color:var(--text-primary);border-color:color-mix(in srgb,var(--accent-blue) 45%,var(--markdown-code-border));background:color-mix(in srgb,var(--accent-blue) 18%,var(--markdown-code-bg))}.markdown-prose .code-copy-btn--copied{color:var(--accent-green)!important}@media(max-width:900px){.markdown-prose{font-size:clamp(.9rem,.84rem + .3vw,var(--markdown-font-size))}.markdown-prose h1{margin-bottom:.85rem}.markdown-prose h2{margin-top:1.6rem}.markdown-prose :where(th,td){padding:.6rem .7rem}.markdown-prose :where(ul,ol){padding-left:1.2rem}.markdown-prose .code-block__header{padding:.42rem .42rem .38rem .72rem}.markdown-prose .mermaid-block__header{padding:.42rem .72rem .38rem}.markdown-prose .code-block pre,.markdown-prose .mermaid-block__viewport{padding:.85rem}}@media(max-width:640px){.markdown-prose{text-wrap:wrap}.markdown-prose :where(p,li,blockquote){word-break:break-word}.markdown-prose table{font-size:.78rem}}@media(hover:none){.markdown-prose .code-copy-btn{opacity:1}}
