@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-c48c7c95]{position:relative}.markdown-font-size-switcher__trigger[data-v-c48c7c95]{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(--glass-border));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-c48c7c95]{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-c48c7c95]{font-size:.68rem;font-weight:700;opacity:.88;color:var(--text-muted);transform:translateY(.5px)}.markdown-font-size-switcher__trigger-label--medium[data-v-c48c7c95]{font-size:.78rem;font-weight:800;color:var(--text-secondary);opacity:.95}.markdown-font-size-switcher__trigger-label--large[data-v-c48c7c95]{font-size:.92rem;font-weight:850;color:color-mix(in srgb,var(--accent-blue) 82%,var(--text-primary));opacity:1;transform:translateY(-.25px)}.markdown-font-size-switcher__trigger[data-v-c48c7c95]:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border)}.search-bar[data-v-7941e2b0]{position:relative;display:flex;align-items:center}.search-bar__input[data-v-7941e2b0]{width:clamp(220px,24vw,280px);height:var(--app-header-control-height, 32px);padding:0 2rem 0 1.9rem;font-size:var(--text-ui-2xs);font-weight:500;line-height:1;border:1px solid var(--app-header-control-border, var(--border));border-radius:var(--app-header-control-radius, var(--radius-md));background:var(--app-header-control-bg, var(--bg-card));color:var(--text-primary);transition:border-color var(--transition-fast),background var(--transition-fast)}.search-bar__input[data-v-7941e2b0]:focus{outline:none;box-shadow:none!important;border-color:color-mix(in srgb,var(--accent-blue) 40%,var(--border))!important;background:color-mix(in srgb,var(--bg-card) 86%,var(--bg-primary))}.search-bar__input[data-v-7941e2b0]::placeholder{color:var(--text-muted)}.search-bar__icon[data-v-7941e2b0]{position:absolute;left:.55rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-bar__spinner[data-v-7941e2b0]{position:absolute;right:.55rem;top:50%;transform:translateY(-50%);color:var(--text-muted);animation:spin-7941e2b0 1s linear infinite;display:flex}@keyframes spin-7941e2b0{to{transform:translateY(-50%) rotate(360deg)}}.search-bar__dropdown[data-v-7941e2b0]{position:absolute;top:calc(100% + 4px);left:0;right:0;min-width:280px;background:var(--gradient-surface),var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:200;max-height:280px;overflow-y:auto}.search-bar__result[data-v-7941e2b0]{display:flex;flex-direction:column;gap:2px;width:100%;padding:var(--space-sm) var(--space-md);cursor:pointer;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.search-bar__result[data-v-7941e2b0]:hover,.search-bar__result--active[data-v-7941e2b0]{background:color-mix(in srgb,var(--accent-blue) 10%,var(--glass-bg))}.search-bar__result[data-v-7941e2b0]:focus-visible{outline:none;background:color-mix(in srgb,var(--accent-blue) 12%,var(--glass-bg))}.search-bar__result-title[data-v-7941e2b0]{font-size:var(--text-ui-2xs);font-weight:600;color:var(--text-primary)}.search-bar__result-header[data-v-7941e2b0]{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.search-bar__result-badge[data-v-7941e2b0]{font-size:.68rem;padding:.1rem .3rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap}.search-bar__result-snippet[data-v-7941e2b0]{font-size:.72rem;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.search-bar__result-snippet[data-v-7941e2b0] strong{color:var(--accent-amber);font-weight:600}.theme-switcher[data-v-aa03ad24]{display:flex;gap:2px;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(--glass-border));border-radius:var(--app-header-control-radius, var(--radius-md));padding:2px;align-items:center;box-sizing:border-box}.theme-switcher__btn[data-v-aa03ad24]{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-aa03ad24]:hover{color:var(--text-primary);background:var(--bg-hover)}.theme-switcher__btn--active[data-v-aa03ad24]{color:var(--accent-contrast-text);background:var(--gradient-accent);box-shadow:var(--shadow-accent)}.notification-bell[data-v-8ce094b8]{position:relative;display:flex;align-items:center}.notification-bell__trigger[data-v-8ce094b8]{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-8ce094b8]:hover{color:var(--text-primary);background:var(--glass-bg);border-color:var(--border)}.notification-bell__badge[data-v-8ce094b8]{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-8ce094b8]{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--reader-surface);border:1px solid var(--reader-border);border-radius:var(--radius-md);box-shadow:var(--reader-shadow);width:360px;z-index:200;overflow:hidden;transform-origin:top right}.notification-bell-dropdown-enter-active[data-v-8ce094b8],.notification-bell-dropdown-leave-active[data-v-8ce094b8]{transition:opacity .18s ease,transform .22s ease}.notification-bell-dropdown-enter-from[data-v-8ce094b8],.notification-bell-dropdown-leave-to[data-v-8ce094b8]{opacity:0;transform:translateY(-8px) scale(.98)}.notification-bell__header[data-v-8ce094b8]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--reader-border);background:color-mix(in srgb,var(--bg-secondary) 86%,transparent)}.notification-bell__header h4[data-v-8ce094b8]{margin:0;font-size:.85rem;font-weight:600;color:var(--text-primary)}.notification-bell__mark-all[data-v-8ce094b8]{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);display:flex;align-items:center}.notification-bell__mark-all[data-v-8ce094b8]:hover{color:var(--accent-blue);background:var(--bg-hover)}.notification-bell__empty[data-v-8ce094b8]{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.8rem}.notification-bell__list[data-v-8ce094b8]{max-height:300px;overflow-y:auto}.notification-bell__item[data-v-8ce094b8]{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-8ce094b8]:last-child{border-bottom:none}.notification-bell__item[data-v-8ce094b8]:hover{background:var(--bg-hover)}.notification-bell__item--unread[data-v-8ce094b8]{background:color-mix(in srgb,var(--accent-blue) 10%,transparent)}.notification-bell__icon[data-v-8ce094b8]{margin-top:.25rem;color:var(--accent-blue);background:color-mix(in srgb,var(--accent-blue) 15%,transparent);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-bell__content[data-v-8ce094b8]{display:flex;flex-direction:column;gap:.25rem}.notification-bell__content p[data-v-8ce094b8]{margin:0;font-size:.8rem;color:var(--text-primary);line-height:1.3}.notification-bell__content span[data-v-8ce094b8]{font-size:.7rem;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){.notification-bell-dropdown-enter-active[data-v-8ce094b8],.notification-bell-dropdown-leave-active[data-v-8ce094b8]{transition:none}}.app-header[data-v-950492b6]{--app-header-control-height: var(--touch-target-compact);--app-header-control-radius: var(--radius-md);--app-header-control-bg: color-mix(in srgb, var(--bg-primary) 70%, transparent);--app-header-control-border: var(--glass-border);display:flex;align-items:center;height:var(--header-height);padding:0 clamp(.65rem,1.4vw,1rem);background:color-mix(in srgb,var(--bg-secondary) 86%,transparent);border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:var(--space-lg);position:sticky;top:0;z-index:100}.app-header__toggle[data-v-950492b6]{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-950492b6]:hover{color:var(--text-primary);border-color:var(--glass-border);background:var(--glass-bg)}.app-header__brand[data-v-950492b6]{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.app-header__logo[data-v-950492b6]{color:var(--accent-blue);flex-shrink:0}.app-header__title[data-v-950492b6]{font-size:var(--text-ui-xs);font-weight:700;letter-spacing:.01em;color:var(--text-primary)}.app-header__nav[data-v-950492b6]{display:flex;gap:.25rem;flex:1;min-width:0}.app-header__link[data-v-950492b6]{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--app-header-control-height);padding:0 .62rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-ui-xs);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-950492b6]:hover{color:var(--text-primary);background:var(--glass-bg);border-color:var(--glass-border)}.app-header__link--active[data-v-950492b6]{color:var(--accent-contrast-text);background:var(--gradient-accent);border-color:transparent;box-shadow:var(--shadow-accent)}.app-header__link-icon[data-v-950492b6]{flex-shrink:0}.app-header__right[data-v-950492b6]{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);margin-left:auto;flex-shrink:0}.app-header__streak[data-v-950492b6]{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-950492b6]{color:var(--accent-amber);border-color:color-mix(in srgb,var(--accent-amber) 45%,transparent)}.app-header__logout[data-v-950492b6]{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-950492b6]{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-950492b6]:hover{color:var(--accent-contrast-text);background:var(--gradient-accent);border-color:transparent}@media(max-width:1180px){.app-header__nav[data-v-950492b6]{display:none}}@media(max-width:900px){.app-header__streak[data-v-950492b6]{display:none}}@media(max-width:760px){.app-header__title[data-v-950492b6],.app-header__right[data-v-950492b6] .search-bar{display:none}}.app-sidebar[data-v-6a1005ac]{width:var(--sidebar-width);height:100%;overflow-y:auto;background:color-mix(in srgb,var(--bg-secondary) 90%,transparent);border-right:1px solid var(--glass-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--space-md) 0;flex-shrink:0}.app-sidebar__section[data-v-6a1005ac]{padding:0 var(--space-md);margin-bottom:var(--space-xl)}.app-sidebar__heading[data-v-6a1005ac]{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-md);padding:0 var(--space-sm)}.app-sidebar__empty[data-v-6a1005ac]{font-size:.75rem;color:var(--text-muted)}.app-sidebar__hint[data-v-6a1005ac]{font-size:.75rem;color:var(--text-muted);margin-top:.125rem}.app-sidebar__link[data-v-6a1005ac]{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:2px}.app-sidebar__link[data-v-6a1005ac]:hover{color:var(--text-primary);background:var(--glass-bg);border-color:var(--glass-border)}.app-sidebar__link--active[data-v-6a1005ac]{color:var(--accent-contrast-text);background:var(--gradient-accent);border-color:transparent;box-shadow:var(--shadow-accent)}.app-sidebar__course[data-v-6a1005ac]{display:flex;align-items:center;gap:var(--space-sm);min-height:34px;padding:0 .54rem;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:2px}.app-sidebar__course[data-v-6a1005ac]:hover{color:var(--text-primary);background:var(--glass-bg);border-color:var(--glass-border)}.app-sidebar__course--active[data-v-6a1005ac]{color:var(--text-primary);background:var(--gradient-surface),var(--bg-card);border-color:var(--glass-border)}.app-sidebar__course-icon[data-v-6a1005ac]{font-size:.8125rem;flex-shrink:0}.app-sidebar__course-name[data-v-6a1005ac]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar__course-pct[data-v-6a1005ac]{font-size:.75rem;font-weight:500;flex-shrink:0}.app-sidebar__phase[data-v-6a1005ac]{margin-bottom:1px}.app-sidebar__phase-toggle[data-v-6a1005ac]{display:flex;align-items:center;gap:.35rem;width:100%;min-height:34px;padding:0 .54rem;background:none;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-ui-2xs);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-6a1005ac]:hover{color:var(--text-primary);background:var(--glass-bg);border-color:var(--glass-border)}.app-sidebar__phase-toggle--expanded[data-v-6a1005ac]{color:var(--text-primary);border-color:var(--glass-border);background:color-mix(in srgb,var(--bg-card) 72%,transparent)}.app-sidebar__phase-arrow[data-v-6a1005ac]{flex-shrink:0;color:var(--text-muted)}.app-sidebar__phase-name[data-v-6a1005ac]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar__phase-pct[data-v-6a1005ac]{font-size:.72rem;color:var(--text-muted);flex-shrink:0}.app-sidebar__modules[data-v-6a1005ac]{padding-left:1.5rem;margin-top:2px}.app-sidebar__module[data-v-6a1005ac]{display:block;min-height:32px;padding:.38rem .5rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-ui-2xs);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-6a1005ac]:hover{color:var(--text-primary);background:var(--glass-bg);border-color:var(--glass-border)}.app-sidebar__module--active[data-v-6a1005ac]{color:var(--text-primary);background:var(--gradient-surface),var(--bg-card);border-color:var(--glass-border)}.phase-expand-enter-active[data-v-6a1005ac]{transition:all .2s ease}.phase-expand-leave-active[data-v-6a1005ac]{transition:all .15s ease}.phase-expand-enter-from[data-v-6a1005ac],.phase-expand-leave-to[data-v-6a1005ac]{opacity:0;max-height:0;overflow:hidden}.phase-expand-enter-to[data-v-6a1005ac],.phase-expand-leave-from[data-v-6a1005ac]{opacity:1;max-height:500px}@media(max-width:1024px){.app-sidebar[data-v-6a1005ac]{position:absolute;left:0;top:0;bottom:0;z-index:80;box-shadow:var(--shadow-lg)}}.app-footer[data-v-4f977d36]{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.28rem var(--space-lg);font-size:.68rem;letter-spacing:.01em;color:var(--text-muted);border-top:1px solid var(--glass-border);background:color-mix(in srgb,var(--bg-secondary) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-footer__sep[data-v-4f977d36]{opacity:.4}@media(max-width:640px){.app-footer[data-v-4f977d36]{display:none}}.toast-container[data-v-b405bcb4]{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-b405bcb4]{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-b405bcb4]{border-color:var(--accent-red)}.toast--error .toast__message[data-v-b405bcb4]{color:var(--accent-red)}.toast--success[data-v-b405bcb4]{border-color:var(--accent-green)}.toast--success .toast__message[data-v-b405bcb4]{color:var(--accent-green)}.toast--info[data-v-b405bcb4]{border-color:var(--accent-blue)}.toast__close[data-v-b405bcb4]{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.6875rem;padding:.0625rem;flex-shrink:0}.toast__close[data-v-b405bcb4]:hover{color:var(--text-primary)}.toast-anim-enter-active[data-v-b405bcb4]{transition:all .3s ease}.toast-anim-leave-active[data-v-b405bcb4]{transition:all .2s ease}.toast-anim-enter-from[data-v-b405bcb4],.toast-anim-leave-to[data-v-b405bcb4]{opacity:0;transform:translate(2rem)}.float-timer[data-v-592361da]{position:fixed;bottom:calc(1.5rem + 5px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-sm);max-width:min(calc(100vw - 2rem),32rem);padding:.25rem .5rem;background:color-mix(in srgb,var(--reader-surface) 86%,var(--bg-secondary));border:1px solid var(--soft-success-border);border-radius:var(--radius-md);box-shadow:var(--reader-shadow);z-index:900;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.float-timer--paused[data-v-592361da]{border-color:var(--soft-warning-border)}.float-timer__info[data-v-592361da]{display:flex;align-items:center;gap:.25rem;min-width:0;cursor:pointer;transition:opacity var(--transition-fast)}.float-timer__info[data-v-592361da]:hover{opacity:.8}.float-timer__info:hover .float-timer__go[data-v-592361da]{opacity:1}.float-timer__icon[data-v-592361da]{color:var(--accent-green);flex-shrink:0}.float-timer--paused .float-timer__icon[data-v-592361da]{color:var(--accent-amber)}.float-timer__time[data-v-592361da]{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-592361da]{color:var(--accent-amber)}.float-timer__sep[data-v-592361da]{color:var(--text-muted);font-size:.625rem}.float-timer__label[data-v-592361da]{font-size:.6875rem;color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.float-timer__go[data-v-592361da]{color:var(--text-muted);opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.float-timer__controls[data-v-592361da]{display:flex;gap:2px;flex-shrink:0}.float-timer__btn[data-v-592361da]{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-592361da]:hover{background:var(--glass-bg);color:var(--text-primary)}.float-timer__btn--resume[data-v-592361da]{border-color:var(--soft-success-border);color:var(--accent-green)}.float-timer__btn--stop[data-v-592361da]{border-color:var(--soft-danger-border);color:var(--accent-red)}.float-timer__btn--stop[data-v-592361da]:hover{background:var(--soft-danger-bg)}.float-timer-enter-active[data-v-592361da]{transition:all .3s ease}.float-timer-leave-active[data-v-592361da]{transition:all .2s ease}.float-timer-enter-from[data-v-592361da],.float-timer-leave-to[data-v-592361da]{opacity:0;transform:translate(-50%) translateY(.75rem)}@media(max-width:640px){.float-timer[data-v-592361da]{left:.75rem;right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + .9rem);transform:none;width:auto;max-width:calc(100vw - 4.5rem);gap:.35rem;padding:.28rem .42rem}.float-timer__label[data-v-592361da]{max-width:min(7rem,32vw);font-size:.625rem}.float-timer__time[data-v-592361da]{font-size:.7rem}.float-timer__sep[data-v-592361da]{display:none}.float-timer__btn[data-v-592361da]{width:22px;height:22px}}.search-backdrop[data-v-4a918d08]{position:fixed;inset:0;background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;justify-content:center;align-items:flex-start;padding:8vh .75rem .75rem}.search-modal[data-v-4a918d08]{width:100%;max-width:560px;background:var(--reader-surface);border:1px solid var(--reader-border);border-radius:var(--radius-lg);box-shadow:var(--reader-shadow);overflow:hidden;display:flex;flex-direction:column;max-height:min(78vh,680px)}.search-modal__header[data-v-4a918d08]{display:flex;align-items:center;gap:var(--space-sm);padding:.35rem var(--space-md);border-bottom:1px solid var(--glass-border);background:color-mix(in srgb,var(--bg-card) 88%,transparent)}.search-modal__icon[data-v-4a918d08]{color:var(--text-muted);flex-shrink:0}.search-modal__input[data-v-4a918d08]{flex:1;background:transparent;border:none;padding:.38rem var(--space-xs);color:var(--text-primary);font-size:.86rem;font-weight:600;line-height:1.35;outline:none}.search-modal__input[data-v-4a918d08]:focus{outline:none;box-shadow:none!important;border-color:transparent!important}.search-modal__input[data-v-4a918d08]::placeholder{color:var(--text-muted)}.search-modal__close[data-v-4a918d08]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;padding:0;border-radius:var(--radius-sm);transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.search-modal__close[data-v-4a918d08]:hover{border-color:var(--glass-border);background:var(--glass-bg);color:var(--text-primary)}.search-modal__tabs[data-v-4a918d08]{display:flex;gap:var(--space-md);padding:0 var(--space-md);border-bottom:1px solid var(--glass-border);background:color-mix(in srgb,var(--bg-card) 88%,transparent)}.search-modal__tab[data-v-4a918d08]{display:flex;align-items:center;gap:var(--space-xs);padding:.6rem .2rem;background:none;border:none;color:var(--text-muted);font-size:.78rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-bottom-color var(--transition-fast)}.search-modal__tab[data-v-4a918d08]:hover{color:var(--text-primary)}.search-modal__tab--active[data-v-4a918d08]{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.search-modal__body[data-v-4a918d08]{overflow-y:auto;min-height:80px}.search-modal__loading[data-v-4a918d08],.search-modal__empty[data-v-4a918d08]{padding:var(--space-lg);text-align:center;color:var(--text-secondary);font-size:.78rem}.search-modal__empty--hint[data-v-4a918d08]{color:var(--text-muted)}.search-result[data-v-4a918d08]{padding:.45rem var(--space-md);cursor:pointer;border-left:2px solid transparent;border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent);transition:background var(--transition-fast),border-left-color var(--transition-fast)}.search-result--active[data-v-4a918d08]{background:var(--bg-hover);border-left-color:var(--accent-blue)}.search-result__header[data-v-4a918d08]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.12rem}.search-result__title-area[data-v-4a918d08]{display:flex;align-items:center;gap:var(--space-sm)}.search-result__title[data-v-4a918d08]{font-weight:650;font-size:.79rem;color:var(--text-primary)}.search-result__icon[data-v-4a918d08]{color:var(--accent-blue);flex-shrink:0}.search-result__badge[data-v-4a918d08]{font-size:.6rem;padding:.1rem .3rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap}.search-result__preview[data-v-4a918d08]{font-size:.7rem;color:var(--text-secondary);line-height:1.35;white-space:pre-wrap;word-break:break-word}[data-v-4a918d08] .highlight{color:var(--text-primary);background:color-mix(in srgb,var(--accent-blue) 24%,transparent);border-radius:2px;padding:0 2px}.search-modal__footer[data-v-4a918d08]{display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:.35rem var(--space-md);border-top:1px solid var(--glass-border);background:color-mix(in srgb,var(--bg-secondary) 85%,transparent);font-size:.64rem;color:var(--text-muted)}.search-shortcut kbd[data-v-4a918d08]{background:var(--gradient-surface),var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 4px;font-family:inherit;font-size:.6rem}@media(max-width:640px){.search-backdrop[data-v-4a918d08]{padding-top:4.5rem}.search-modal[data-v-4a918d08]{max-width:100%;max-height:calc(100vh - 5.25rem)}.search-modal__footer[data-v-4a918d08]{gap:var(--space-sm)}}.fade-enter-active[data-v-4a918d08],.fade-leave-active[data-v-4a918d08]{transition:opacity .15s ease}.fade-enter-from[data-v-4a918d08],.fade-leave-to[data-v-4a918d08]{opacity:0}.shortcuts-overlay[data-v-2ffe2640]{position:fixed;inset:0;background:var(--overlay-backdrop);display:flex;align-items:center;justify-content:center;z-index:1100}.shortcuts-modal[data-v-2ffe2640]{background:var(--reader-surface);border:1px solid var(--reader-border);border-radius:var(--radius-lg);padding:var(--space-lg);width:380px;max-width:95vw;box-shadow:var(--reader-shadow)}.shortcuts-modal__header[data-v-2ffe2640]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.shortcuts-modal__header h3[data-v-2ffe2640]{margin:0;font-size:1rem;color:var(--text-primary)}.shortcuts-modal__close[data-v-2ffe2640]{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm)}.shortcuts-modal__close[data-v-2ffe2640]:hover{background:var(--bg-hover);color:var(--text-primary)}.shortcuts-modal__group[data-v-2ffe2640]{margin-bottom:var(--space-lg)}.shortcuts-modal__group-title[data-v-2ffe2640]{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--space-sm)}.shortcuts-modal__item[data-v-2ffe2640]{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0}.shortcuts-modal__label[data-v-2ffe2640]{font-size:.8125rem;color:var(--text-secondary)}.shortcuts-modal__kbd[data-v-2ffe2640]{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.125rem .375rem;font-family:var(--font-mono);font-size:.6875rem;color:var(--text-primary)}.app-layout[data-v-4b8cc1cf]{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;background:var(--gradient-bg),var(--bg-primary)}.app-layout__body[data-v-4b8cc1cf]{display:flex;flex:1;min-height:0;min-width:0;isolation:isolate;position:relative}.app-layout__main[data-v-4b8cc1cf]{flex:1;min-width:0;overflow-y:scroll;overflow-x:clip;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent-blue) 38%,var(--border)) transparent;padding:clamp(.75rem,1.4vw,1.2rem);max-width:var(--content-max-width);margin:0 auto;width:100%}.app-layout__sidebar-overlay[data-v-4b8cc1cf]{position:absolute;inset:0;z-index:70;background:var(--overlay-backdrop);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.app-public[data-v-4b8cc1cf]{min-height:100dvh;background:var(--gradient-bg),var(--bg-primary)}.app-loading[data-v-4b8cc1cf]{min-height:100dvh;display:grid;place-items:center;padding:var(--space-xl);background:var(--gradient-bg),var(--bg-primary)}.app-loading__panel[data-v-4b8cc1cf]{width:min(420px,100%);padding:1.5rem;text-align:center}.app-loading__eyebrow[data-v-4b8cc1cf]{display:inline-block;margin-bottom:.75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-blue)}.app-loading__panel h1[data-v-4b8cc1cf]{margin:0;font-size:1.5rem}.app-loading__panel p[data-v-4b8cc1cf]{margin:.5rem 0 0;color:var(--text-muted)}.app-layout__main[data-v-4b8cc1cf]::-webkit-scrollbar{width:10px}.app-layout__main[data-v-4b8cc1cf]::-webkit-scrollbar-track{background:transparent}.app-layout__main[data-v-4b8cc1cf]::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent-blue) 32%,var(--border));border-radius:999px;border:2px solid transparent;background-clip:content-box}.app-layout__main[data-v-4b8cc1cf]::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent-blue) 50%,var(--border))}@media(max-width:1024px){.app-layout__main[data-v-4b8cc1cf]{padding:var(--space-lg)}}@media(max-width:640px){.app-layout__main[data-v-4b8cc1cf]{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]{--bg-primary: #0b1220;--bg-secondary: #0f1b2d;--bg-card: #13233a;--bg-hover: #1b2f4a;--bg-elevated: #223a5a;--text-primary: #eaf1ff;--text-secondary: #b5c6e2;--text-muted: #8093b3;--accent-blue: #3f8cff;--accent-green: #2db67d;--accent-amber: #d19a35;--accent-red: #e15a68;--accent-purple: #8073f3;--accent-teal: #00a79a;--accent-rose: #d96f95;--border: #244062;--border-light: #1a3150;--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .11);--focus-ring: rgba(63, 140, 255, .35);--gradient-accent: linear-gradient(135deg, #3f8cff 0%, #00a79a 100%);--gradient-surface: linear-gradient(160deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));--gradient-bg: radial-gradient(circle at 8% -8%, rgba(63, 140, 255, .2), transparent 38%), radial-gradient(circle at 92% 0%, rgba(0, 167, 154, .16), transparent 36%);--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: .8125rem;--text-ui-sm: .875rem;--touch-target-compact: 36px;--touch-target-comfortable: 40px;--markdown-max-width: 78ch;--markdown-max-width-tablet: 72ch;--markdown-font-size: .9375rem;--markdown-line-height: 1.74;--markdown-h1-size: 1.6rem;--markdown-h2-size: 1.28rem;--markdown-h3-size: 1.08rem;--markdown-inline-code-size: .9em;--markdown-code-block-size: .84rem;--markdown-table-font-size: .8rem;--reader-surface: linear-gradient(180deg, rgba(19, 35, 58, .94), rgba(14, 26, 42, .98));--reader-border: rgba(255, 255, 255, .08);--reader-shadow: 0 18px 36px rgba(5, 10, 20, .22);--accent-contrast-text: #f3f9ff;--shadow-accent: 0 10px 22px rgba(35, 99, 214, .34);--shadow-accent-hover: 0 12px 26px rgba(35, 99, 214, .38);--soft-accent-bg: color-mix(in srgb, var(--accent-blue) 10%, transparent);--soft-accent-strong-bg: color-mix(in srgb, var(--accent-blue) 16%, transparent);--soft-accent-border: color-mix(in srgb, var(--accent-blue) 34%, transparent);--soft-success-bg: color-mix(in srgb, var(--accent-green) 10%, transparent);--soft-success-strong-bg: color-mix(in srgb, var(--accent-green) 16%, transparent);--soft-success-border: color-mix(in srgb, var(--accent-green) 36%, transparent);--soft-warning-bg: color-mix(in srgb, var(--accent-amber) 10%, transparent);--soft-warning-strong-bg: color-mix(in srgb, var(--accent-amber) 16%, transparent);--soft-warning-border: color-mix(in srgb, var(--accent-amber) 36%, transparent);--soft-danger-bg: color-mix(in srgb, var(--accent-red) 10%, transparent);--soft-danger-strong-bg: color-mix(in srgb, var(--accent-red) 16%, transparent);--soft-danger-border: color-mix(in srgb, var(--accent-red) 34%, transparent);--heatmap-l0: var(--border);--heatmap-l1: color-mix(in srgb, var(--accent-green) 28%, var(--bg-card));--heatmap-l2: color-mix(in srgb, var(--accent-green) 46%, var(--bg-card));--heatmap-l3: color-mix(in srgb, var(--accent-green) 64%, var(--bg-card));--heatmap-l4: color-mix(in srgb, var(--accent-green) 84%, var(--bg-card));--overlay-backdrop: rgba(5, 10, 20, .58);--sheet-shadow: -8px 0 30px rgba(0, 0, 0, .32);--markdown-inline-code-bg: rgba(63, 140, 255, .1);--markdown-inline-code-border: rgba(63, 140, 255, .18);--markdown-code-bg: #0f1b2d;--markdown-code-header-bg: rgba(255, 255, 255, .04);--markdown-code-border: rgba(255, 255, 255, .1);--markdown-code-label: #8fbaff;--markdown-code-text: #dce8ff;--markdown-quote-bg: rgba(63, 140, 255, .08);--markdown-quote-border: rgba(63, 140, 255, .42);--markdown-table-header-bg: rgba(255, 255, 255, .05);--markdown-table-row-alt: rgba(255, 255, 255, .025);--markdown-marker: color-mix(in srgb, var(--accent-teal) 78%, var(--text-secondary));--syntax-comment: #7f8ca6;--syntax-keyword: #8cc8ff;--syntax-string: #9ad98f;--syntax-number: #f7bf73;--syntax-title: #7dd7d1;--syntax-variable: #f1a3b5;--syntax-attr: #c6a8ff;--syntax-literal: #ffcf79;--sidebar-width: 248px;--header-height: 52px;--content-max-width: 1080px;--space-xs: .1875rem;--space-sm: .375rem;--space-md: .625rem;--space-lg: .875rem;--space-xl: 1.125rem;--space-2xl: 1.5rem;--radius-sm: 5px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .14s cubic-bezier(.2, .8, .2, 1);--transition-normal: .24s cubic-bezier(.2, .8, .2, 1);--shadow-sm: 0 2px 6px rgba(5, 10, 20, .35);--shadow-md: 0 10px 22px rgba(5, 10, 20, .38);--shadow-lg: 0 20px 36px rgba(5, 10, 20, .45);--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-blue);--cat-exercises: var(--accent-teal);--cat-projects: var(--accent-purple);--cat-use-cases: var(--accent-rose);--cat-resources: var(--accent-amber)}:root[data-markdown-font-size=small]{--markdown-font-size: .875rem;--markdown-line-height: 1.66;--markdown-h1-size: 1.4rem;--markdown-h2-size: 1.16rem;--markdown-h3-size: 1rem;--markdown-inline-code-size: .86em;--markdown-code-block-size: .78rem;--markdown-table-font-size: .75rem}:root[data-markdown-font-size=medium]{--markdown-font-size: .9375rem;--markdown-line-height: 1.74;--markdown-h1-size: 1.6rem;--markdown-h2-size: 1.28rem;--markdown-h3-size: 1.08rem;--markdown-inline-code-size: .9em;--markdown-code-block-size: .84rem;--markdown-table-font-size: .8rem}:root[data-markdown-font-size=large]{--markdown-font-size: 1.03125rem;--markdown-line-height: 1.82;--markdown-h1-size: 1.78rem;--markdown-h2-size: 1.42rem;--markdown-h3-size: 1.18rem;--markdown-inline-code-size: .94em;--markdown-code-block-size: .92rem;--markdown-table-font-size: .86rem}:root[data-theme=light]{--bg-primary: #edf3fb;--bg-secondary: #f7faff;--bg-card: #ffffff;--bg-hover: #ecf3fd;--bg-elevated: #e2ebf8;--text-primary: #12233f;--text-secondary: #3f587d;--text-muted: #6f82a1;--accent-blue: #256ff1;--accent-green: #1f9b66;--accent-amber: #b57a1f;--accent-red: #cb4151;--accent-purple: #6756db;--accent-teal: #0c8f86;--accent-rose: #b94d77;--border: #cfdbeb;--border-light: #dde6f2;--glass-bg: rgba(15, 28, 46, .04);--glass-border: rgba(15, 28, 46, .1);--focus-ring: rgba(37, 111, 241, .24);--gradient-accent: linear-gradient(135deg, #256ff1 0%, #0c8f86 100%);--gradient-surface: linear-gradient(160deg, rgba(255, 255, 255, .95), rgba(237, 243, 251, .8));--gradient-bg: radial-gradient(circle at 7% -12%, rgba(37, 111, 241, .18), transparent 40%), radial-gradient(circle at 92% 0%, rgba(12, 143, 134, .15), transparent 34%);--reader-surface: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(242, 247, 252, .92));--reader-border: rgba(18, 35, 63, .1);--reader-shadow: 0 18px 32px rgba(31, 57, 95, .08);--accent-contrast-text: #f8fbff;--shadow-accent: 0 10px 22px rgba(37, 111, 241, .18);--shadow-accent-hover: 0 12px 26px rgba(37, 111, 241, .22);--soft-accent-bg: color-mix(in srgb, var(--accent-blue) 8%, transparent);--soft-accent-strong-bg: color-mix(in srgb, var(--accent-blue) 14%, transparent);--soft-accent-border: color-mix(in srgb, var(--accent-blue) 28%, transparent);--overlay-backdrop: rgba(18, 35, 63, .22);--sheet-shadow: -8px 0 30px rgba(31, 57, 95, .14);--markdown-inline-code-bg: rgba(37, 111, 241, .08);--markdown-inline-code-border: rgba(37, 111, 241, .14);--markdown-code-bg: #f6f9fd;--markdown-code-header-bg: rgba(18, 35, 63, .04);--markdown-code-border: rgba(18, 35, 63, .1);--markdown-code-label: #255fc9;--markdown-code-text: #173056;--markdown-quote-bg: rgba(37, 111, 241, .06);--markdown-quote-border: rgba(37, 111, 241, .3);--markdown-table-header-bg: rgba(18, 35, 63, .04);--markdown-table-row-alt: rgba(18, 35, 63, .02);--markdown-marker: color-mix(in srgb, var(--accent-teal) 84%, var(--text-secondary));--syntax-comment: #7a879c;--syntax-keyword: #1b63cf;--syntax-string: #2f8b45;--syntax-number: #b86b10;--syntax-title: #0e8079;--syntax-variable: #ab4960;--syntax-attr: #6a52d1;--syntax-literal: #b67f16;--shadow-sm: 0 2px 5px rgba(31, 57, 95, .08);--shadow-md: 0 8px 20px rgba(31, 57, 95, .12);--shadow-lg: 0 18px 34px rgba(31, 57, 95, .16)}:root[data-theme=high-contrast]{--bg-primary: #050505;--bg-secondary: #0f0f0f;--bg-card: #161616;--bg-hover: #232323;--bg-elevated: #2d2d2d;--text-primary: #ffffff;--text-secondary: #dbdbdb;--text-muted: #9f9f9f;--accent-blue: #4da7ff;--accent-green: #41d487;--accent-amber: #ffcb40;--accent-red: #ff5d69;--accent-purple: #b9a8ff;--accent-teal: #37d2c7;--accent-rose: #ff8eb4;--border: #4c4c4c;--border-light: #373737;--glass-bg: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .16);--focus-ring: rgba(77, 167, 255, .5);--gradient-accent: linear-gradient(135deg, #4da7ff 0%, #37d2c7 100%);--gradient-surface: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .03));--gradient-bg: radial-gradient(circle at 12% -10%, rgba(77, 167, 255, .2), transparent 35%), radial-gradient(circle at 88% -8%, rgba(55, 210, 199, .18), transparent 34%);--reader-surface: linear-gradient(180deg, rgba(22, 22, 22, .98), rgba(12, 12, 12, .99));--reader-border: rgba(255, 255, 255, .16);--reader-shadow: 0 18px 36px rgba(0, 0, 0, .35);--accent-contrast-text: #ffffff;--shadow-accent: 0 10px 24px rgba(77, 167, 255, .24);--shadow-accent-hover: 0 12px 28px rgba(77, 167, 255, .3);--soft-accent-bg: color-mix(in srgb, var(--accent-blue) 14%, transparent);--soft-accent-strong-bg: color-mix(in srgb, var(--accent-blue) 20%, transparent);--soft-accent-border: color-mix(in srgb, var(--accent-blue) 42%, transparent);--overlay-backdrop: rgba(0, 0, 0, .72);--sheet-shadow: -8px 0 30px rgba(0, 0, 0, .42);--markdown-inline-code-bg: rgba(77, 167, 255, .12);--markdown-inline-code-border: rgba(77, 167, 255, .26);--markdown-code-bg: #0a0a0a;--markdown-code-header-bg: rgba(255, 255, 255, .08);--markdown-code-border: rgba(255, 255, 255, .16);--markdown-code-label: #91c8ff;--markdown-code-text: #ffffff;--markdown-quote-bg: rgba(77, 167, 255, .08);--markdown-quote-border: rgba(77, 167, 255, .4);--markdown-table-header-bg: rgba(255, 255, 255, .08);--markdown-table-row-alt: rgba(255, 255, 255, .035);--markdown-marker: color-mix(in srgb, var(--accent-teal) 82%, var(--text-secondary));--syntax-comment: #b0b0b0;--syntax-keyword: #82c6ff;--syntax-string: #87dd9c;--syntax-number: #ffcf6b;--syntax-title: #62e2dc;--syntax-variable: #ff9fb1;--syntax-attr: #ccb8ff;--syntax-literal: #ffd979;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .5);--shadow-md: 0 10px 24px rgba(0, 0, 0, .62);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .74)}:root[data-theme=sepia]{--bg-primary: #f4ebdd;--bg-secondary: #fbf4e7;--bg-card: #fffaf1;--bg-hover: #f0e5d4;--bg-elevated: #e8dbc4;--text-primary: #3d2f1f;--text-secondary: #65533d;--text-muted: #8c7b67;--accent-blue: #356ea5;--accent-green: #3f8753;--accent-amber: #ad7720;--accent-red: #b84949;--accent-purple: #76548f;--accent-teal: #327f73;--accent-rose: #a95f77;--border: #d6c8af;--border-light: #e2d8c2;--glass-bg: rgba(60, 40, 20, .05);--glass-border: rgba(60, 40, 20, .1);--focus-ring: rgba(53, 110, 165, .24);--gradient-accent: linear-gradient(135deg, #356ea5 0%, #327f73 100%);--gradient-surface: linear-gradient(160deg, rgba(255, 255, 255, .6), rgba(240, 229, 212, .5));--gradient-bg: radial-gradient(circle at 8% -12%, rgba(53, 110, 165, .14), transparent 40%), radial-gradient(circle at 92% 0%, rgba(50, 127, 115, .13), transparent 35%);--reader-surface: linear-gradient(180deg, rgba(255, 250, 241, .94), rgba(248, 239, 225, .92));--reader-border: rgba(61, 47, 31, .1);--reader-shadow: 0 18px 30px rgba(80, 60, 30, .12);--accent-contrast-text: #fffaf0;--shadow-accent: 0 10px 22px rgba(53, 110, 165, .18);--shadow-accent-hover: 0 12px 26px rgba(53, 110, 165, .22);--soft-accent-bg: color-mix(in srgb, var(--accent-blue) 8%, transparent);--soft-accent-strong-bg: color-mix(in srgb, var(--accent-blue) 13%, transparent);--soft-accent-border: color-mix(in srgb, var(--accent-blue) 28%, transparent);--overlay-backdrop: rgba(61, 47, 31, .26);--sheet-shadow: -8px 0 28px rgba(80, 60, 30, .16);--markdown-inline-code-bg: rgba(53, 110, 165, .08);--markdown-inline-code-border: rgba(53, 110, 165, .14);--markdown-code-bg: #fbf4e7;--markdown-code-header-bg: rgba(61, 47, 31, .04);--markdown-code-border: rgba(61, 47, 31, .1);--markdown-code-label: #356ea5;--markdown-code-text: #3d2f1f;--markdown-quote-bg: rgba(53, 110, 165, .06);--markdown-quote-border: rgba(53, 110, 165, .3);--markdown-table-header-bg: rgba(61, 47, 31, .04);--markdown-table-row-alt: rgba(61, 47, 31, .025);--markdown-marker: color-mix(in srgb, var(--accent-teal) 74%, var(--text-secondary));--syntax-comment: #8f7f69;--syntax-keyword: #356ea5;--syntax-string: #477b46;--syntax-number: #b0741d;--syntax-title: #327f73;--syntax-variable: #a65567;--syntax-attr: #76548f;--syntax-literal: #bf8a27;--shadow-sm: 0 2px 5px rgba(80, 60, 30, .1);--shadow-md: 0 8px 18px rgba(80, 60, 30, .15);--shadow-lg: 0 16px 28px rgba(80, 60, 30, .2)}*,*: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}body{font-family:var(--font-sans);background:var(--gradient-bg),var(--bg-primary);background-attachment:fixed;color:var(--text-primary);line-height:1.45;min-height:100dvh}#app{min-height:100dvh}h1,h2,h3,h4,h5,h6{font-weight:650;line-height:1.2;letter-spacing:-.01em;color:var(--text-primary)}h1{font-size:1.375rem}h2{font-size:1.1rem}h3{font-size:.94rem}p{color:var(--text-secondary)}a{color:var(--accent-blue);text-decoration:none;transition:color var(--transition-fast),opacity var(--transition-fast)}a:hover{color:var(--accent-teal)}code,pre{font-family:var(--font-mono);font-size:.8rem}pre{background:var(--bg-secondary);border:1px solid var(--border);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:var(--border);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:2px solid var(--accent-blue);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-blue) 32%,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(--gradient-surface),var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.card:hover{border-color:var(--glass-border);box-shadow:var(--shadow-md);transform:translateY(-1px)}.view{display:grid;gap:var(--space-lg);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:.25rem;padding:.125rem .4375rem;border-radius:999px;font-size:.68rem;font-weight:600;line-height:1.35;border:1px solid transparent;letter-spacing:.01em}.badge--not-started{background:#8093b329;color:var(--status-not-started);border-color:#8093b333}.badge--in-progress{background:#d19a3526;color:var(--status-in-progress);border-color:#d19a3538}.badge--completed{background:#2db67d26;color:var(--status-completed);border-color:#2db67d38}.badge--skipped{background:#8093b324;color:var(--status-skipped);border-color:#8093b333}.badge--theory{background:#3f8cff1f;color:var(--cat-theory);border-color:#3f8cff33}.badge--exercises{background:#00a79a1f;color:var(--cat-exercises);border-color:#00a79a33}.badge--projects{background:#8073f31f;color:var(--cat-projects);border-color:#8073f333}.badge--use_cases{background:#d96f951f;color:var(--cat-use-cases);border-color:#d96f9533}.badge--resources{background:#d19a351f;color:var(--cat-resources);border-color:#d19a3533}.progress-bar{width:100%;height:6px;background:color-mix(in srgb,var(--border) 70%,transparent);border-radius:999px;overflow:hidden}.progress-bar__fill{height:100%;border-radius:999px;transition:width var(--transition-normal);background:var(--gradient-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.38rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--gradient-surface),var(--bg-card);color:var(--text-primary);font-family:var(--font-sans);font-size:.78rem;font-weight:600;letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.btn:hover{border-color:var(--glass-border);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--primary{background:var(--gradient-accent);border-color:transparent;color:#f8fcff;box-shadow:0 8px 18px #1a63e557}.btn--primary:hover{filter:brightness(1.05);box-shadow:0 10px 22px #1a63e561}.btn--sm{padding:.22rem .56rem;font-size:.72rem}input:not([type=checkbox]):not([type=radio]),select,textarea{background:var(--gradient-surface),var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:.78rem;line-height:1.4;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-blue);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 .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 .code-block pre{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}}
