:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#8b5cf6;--color-primary-hover:#7c3aed;--color-primary-soft:#8b5cf61f;--color-secondary:#06b6d4;--color-secondary-hover:#0891b2;--color-bg:#0a0a0f;--color-bg-elevated:#14141a;--color-surface:#1c1c25;--color-surface-hover:#232330;--color-text:#e4e4e7;--color-text-muted:#a1a1aa;--color-text-inverse:#0a0a0f;--color-border:#27272a;--color-border-strong:#3f3f46;--color-ok:#10b981;--color-ok-soft:#10b9811f;--color-warning:#f59e0b;--color-warning-soft:#f59e0b1f;--color-ko:#ef4444;--color-ko-soft:#ef44441f;--color-overlay:#0009;--color-focus-ring:#8b5cf673;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 10px 30px #00000073;--glow-primary:0 0 24px #8b5cf673, 0 0 48px #8b5cf640;--glow-secondary:0 0 24px #06b6d473, 0 0 48px #06b6d440;--glow-soft:0 0 12px #8b5cf640;--frame-border:2px solid #8b5cf68c;--frame-border-secondary:2px solid #06b6d48c;--frame-corner-size:56px;--frame-corner-stroke:2px;--frame-padding:var(--space-8);--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Oxanium", "Inter", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--line-height-tight:1.2;--line-height-base:1.5;--line-height-relaxed:1.7;--layout-max-width:1200px;--layout-narrow-width:720px;--layout-gutter:var(--space-6);--z-base:0;--z-elevated:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-toast:50;--transition-fast:.12s ease-out;--transition-base:.2s ease-out;--transition-slow:.32s ease-out}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-3);font-family:var(--font-display);letter-spacing:.02em;font-weight:700;line-height:var(--line-height-tight);color:var(--color-text)}h1{font-size:var(--font-size-4xl);letter-spacing:.01em}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl);font-weight:600}h4{font-size:var(--font-size-lg);letter-spacing:.03em;font-weight:600}h5{font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.08em;font-weight:600}h6{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);font-weight:600}p{margin:0 0 var(--space-3);color:var(--color-text);font-family:var(--font-sans)}code,pre{font-family:var(--font-mono);background:var(--color-surface);border-radius:var(--radius-sm);padding:0 var(--space-1);font-size:.9em}.button{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;border:1px solid #0000;font-weight:500;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.button--primary:hover:not(:disabled){background:var(--color-primary-hover);color:var(--color-text-inverse);border-color:var(--color-primary-hover)}.button--primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.button--secondary{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.button--secondary:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary-hover);color:var(--color-primary-hover)}.button--secondary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.button--ghost{color:var(--color-text);background:0 0;border-color:#0000}.button--ghost:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.button--danger{background:var(--color-ko);color:var(--color-text-inverse);border-color:var(--color-ko)}.button--danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.button--sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.button--lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.button--block{width:100%}.form{gap:var(--space-4);padding:var(--space-6);background:var(--surface-bg);color:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--surface-radius);box-shadow:var(--shadow-sm);--color-bg-elevated:var(--surface-bg-elevated);--color-bg:var(--surface-bg);--color-text:var(--surface-color);--color-text-muted:var(--surface-color-muted);--color-border:var(--surface-border);--color-border-strong:var(--surface-border-strong);--color-surface:#f9f9fa;--color-surface-hover:#f1f1f3;--color-focus-ring:var(--surface-focus-ring);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;flex-direction:column;display:flex}.form__label{font-size:var(--font-size-sm);color:var(--surface-color);font-weight:500}.form__input{width:100%;padding:var(--space-3) var(--space-3);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--surface-color);font-size:var(--font-size-base);transition:border-color var(--transition-fast), background var(--transition-fast);background:#fff}.form__input::placeholder{color:var(--surface-color-muted);opacity:.7}.form__input:hover{border-color:var(--surface-border-strong)}.form__input:focus{border-color:var(--color-primary);background:#fff;outline:none}.form__input:disabled{opacity:.5;cursor:not-allowed}.form__input-wrap{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), background-color var(--transition-fast);align-items:center;display:flex;position:relative}.form__input-wrap:hover{border-color:var(--color-border-strong)}.form__input-wrap:focus-within{border-color:var(--color-primary);background-color:var(--color-bg)}.form__input-wrap--error,.form__input-wrap--error:hover{border-color:var(--color-ko)}.form__input-icon{width:44px;height:44px;color:var(--color-text-muted);pointer-events:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.form__input-icon svg{width:18px;height:18px}.form__input-wrap:focus-within .form__input-icon{color:var(--color-primary)}.form__input-wrap .form__input{min-width:0;padding:var(--space-3) var(--space-4) var(--space-3) 0;font-size:var(--font-size-base);background:0 0;border:0;border-radius:0;outline:none;flex:auto}.form__input-wrap .form__input:hover,.form__input-wrap .form__input:focus{box-shadow:none;border:0}.form__input-wrap .form__input:focus{background:0 0}.form__input-toggle{width:40px;height:40px;margin-right:var(--space-1);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:inline-flex}.form__input-toggle:hover{color:var(--color-primary);background:var(--color-surface)}.form__input-toggle svg{width:18px;height:18px}.form__hint{font-size:var(--font-size-xs);color:var(--surface-color-muted)}.form__error{padding:var(--space-3) var(--space-4);background:var(--color-ko-soft);border:1px solid var(--color-ko);border-radius:var(--radius-sm);color:var(--color-ko);font-size:var(--font-size-sm);margin:0}.form__radio-group{gap:var(--space-4);flex-wrap:wrap;display:flex}.form__radio{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2) var(--space-3);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--surface-color);font-size:var(--font-size-sm);transition:border-color var(--transition-fast), background var(--transition-fast);display:inline-flex}.form__radio:hover{border-color:var(--surface-border-strong)}.form__radio input{accent-color:var(--color-primary)}.form__radio:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--surface-color)}.card{background:var(--surface-bg);color:var(--surface-color);border:1px solid var(--surface-border);border-radius:var(--surface-radius);padding:var(--space-6);gap:var(--space-3);--color-bg-elevated:var(--surface-bg-elevated);--color-bg:var(--surface-bg);--color-text:var(--surface-color);--color-text-muted:var(--surface-color-muted);--color-border:var(--surface-border);--color-border-strong:var(--surface-border-strong);--color-surface:#f9f9fa;--color-surface-hover:#f1f1f3;--color-focus-ring:var(--surface-focus-ring);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;transition:border-color var(--transition-base), transform var(--transition-base);flex-direction:column;display:flex;position:relative}.card:hover{border-color:var(--color-primary);transform:translateY(-1px)}.card__title{font-size:var(--font-size-xl);font-family:var(--font-display);letter-spacing:.01em;color:var(--surface-color);margin:0;font-weight:600}.card__meta{color:var(--surface-color-muted);font-size:var(--font-size-sm)}.coach-card{gap:var(--space-4);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);grid-template-columns:64px 1fr;align-items:start;display:grid}.coach-card:hover{border-color:var(--color-primary);box-shadow:var(--glow-soft);transform:translateY(-2px)}.coach-card__avatar{border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);object-fit:cover;width:64px;height:64px}.coach-card__avatar--placeholder{font-weight:700;font-size:var(--font-size-xl);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.coach-card__name{margin:0 0 var(--space-1);font-size:var(--font-size-lg);font-family:var(--font-display);letter-spacing:.01em;font-weight:600}.coach-card__meta{margin:0 0 var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted)}.coach-card__rating{color:var(--color-warning);font-weight:600}.coach-card__languages{margin:0 0 var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.04em}.coach-card__bio{margin:0 0 var(--space-3);font-size:var(--font-size-sm);color:var(--color-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.game-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.game-card__name{font-size:var(--font-size-lg);font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:600}.badge{padding:var(--space-1) var(--space-2);background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase;align-items:center;font-weight:600;display:inline-flex}.game-card__meta{gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;margin:0;display:flex}.service-card__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.service-card__title{font-size:var(--font-size-lg);font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:600}.service-card__price{font-size:var(--font-size-xl);font-weight:700;font-family:var(--font-display);color:var(--color-primary);letter-spacing:.01em}.service-card__meta{margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm)}.service-card__description{color:var(--color-text);font-size:var(--font-size-sm);margin:0}.review-card{padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md)}.review-card__header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.review-card__rating{color:var(--color-warning);font-size:var(--font-size-base);letter-spacing:.05em}.review-card__rating-out{color:var(--color-border-strong)}.review-card__date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.review-card__comment{color:var(--color-text);font-size:var(--font-size-sm);margin:0}.home-section{margin-bottom:var(--space-10)}.home-section__header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:baseline;display:flex;position:relative}.home-section__header:before{content:"";background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);width:48px;height:2px;box-shadow:var(--glow-soft);position:absolute;bottom:-1px;left:0}.home-section__link{font-size:var(--font-size-sm);color:var(--color-primary);font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;transition:color var(--transition-fast), text-shadow var(--transition-fast);font-weight:600;text-decoration:none}.home-section__link:hover{color:var(--color-secondary);text-shadow:0 0 8px var(--color-secondary);text-decoration:none}.card-grid{gap:var(--space-4);display:grid}.card-grid--2,.card-grid--3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.filters{gap:var(--space-4);padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);flex-direction:column;display:flex}.filters__row{gap:var(--space-3);grid-template-columns:120px 1fr;align-items:center;display:grid}.filters__label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.filters__language-group{gap:var(--space-2);align-items:center;display:flex}.filters__language-group .form__input{flex:auto}.pagination{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-6);display:flex}.pagination__info{color:var(--color-text-muted);font-size:var(--font-size-sm)}.stack{gap:var(--space-3);flex-direction:column;display:flex}.coach-profile__header{gap:var(--space-6);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border);grid-template-columns:120px 1fr;align-items:start;display:grid}.coach-profile__avatar{border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);object-fit:cover;width:120px;height:120px}.coach-profile__avatar--placeholder{font-weight:700;font-size:var(--font-size-3xl);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.coach-profile__name{margin:0 0 var(--space-1);font-family:var(--font-display);letter-spacing:.01em;font-weight:700}.coach-profile__email{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm)}.coach-profile__meta{margin:0 0 var(--space-1);color:var(--color-text);font-size:var(--font-size-sm)}.coach-profile__section{margin-bottom:var(--space-8)}.coach-profile__section h2{margin-bottom:var(--space-3)}@media (width<=640px){.coach-profile__header{text-align:center;grid-template-columns:1fr;justify-items:center}.filters__row{grid-template-columns:1fr}.filters__language-group{flex-direction:column;align-items:stretch}}header .app-header__brand{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.app-header__link,.app-header__user,.app-header__actions .button{letter-spacing:.04em}.app-header__user{padding:var(--space-1) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;align-items:center;max-width:160px;display:inline-flex;overflow:hidden}.page__alt-action{margin:var(--space-6) 0 0;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.loader{align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm);display:inline-flex}.loader--fullscreen{background:var(--color-overlay);z-index:var(--z-overlay);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader__spinner{border-radius:var(--radius-full);border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);width:1.25em;height:1.25em;animation:.8s linear infinite loader-spin}.loader--sm .loader__spinner{width:1em;height:1em}.loader--lg .loader__spinner{width:1.75em;height:1.75em}@keyframes loader-spin{to{transform:rotate(360deg)}}.empty-state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:radial-gradient(ellipse at center, var(--color-primary-soft) 0%, transparent 70%), var(--color-bg-elevated);text-align:center;flex-direction:column;display:flex}.empty-state__icon{font-size:var(--font-size-3xl);color:var(--color-text-muted)}.empty-state__title{font-size:var(--font-size-lg);font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:600}.empty-state__description{color:var(--color-text-muted);max-width:50ch;margin:0}.empty-state__action{margin-top:var(--space-3)}.error-boundary{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-6);text-align:center;flex-direction:column;max-width:640px;margin:0 auto;display:flex}.error-boundary__title{font-size:var(--font-size-3xl);color:var(--color-ko);margin:0}.error-boundary__message{color:var(--color-text-muted);font-size:var(--font-size-lg);margin:0}.error-boundary__details{padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word;max-width:100%;margin:0;overflow:auto}.booking-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.booking-list__item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);overflow:hidden}.booking-list__item:hover{border-color:var(--color-primary);box-shadow:var(--glow-soft);transform:translateY(-2px)}.booking-list__link{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);color:inherit;text-decoration:none;display:flex}.booking-list__main{gap:var(--space-1);flex-direction:column;flex:auto;min-width:0;display:flex}.booking-list__date{font-weight:600;font-size:var(--font-size-base);font-family:var(--font-display);letter-spacing:.01em;margin:0}.booking-list__meta{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.booking-list__notes{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:var(--space-1) 0 0;text-overflow:ellipsis;white-space:nowrap;font-style:italic;overflow:hidden}.booking-status{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;background:var(--color-surface-2);border:1px solid var(--color-border);white-space:nowrap;border-radius:999px;flex:none;align-items:center;display:inline-flex}.booking-status--pending{color:#b88700;border-color:#b88700}.booking-status--accepted{color:#2f8a3c;border-color:#2f8a3c}.booking-status--completed{color:#1f6feb;border-color:#1f6feb}.booking-status--cancelled{color:#6e6e6e;border-color:#6e6e6e}.booking-status--rejected,.booking-status--no_show{color:#c1351f;border-color:#c1351f}.booking-detail__grid{gap:var(--space-4);margin:var(--space-5) 0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.booking-detail__grid>div{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.booking-detail__grid dt{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-1)}.booking-detail__grid dd{margin:0;font-weight:600}.booking-detail__notes{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.booking-detail__notes h2{font-size:var(--font-size-base);margin:0 0 var(--space-2)}.booking-detail__actions{gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.booking-detail__actions .button--danger{color:var(--color-on-primary);background:#c1351f}.booking-detail__actions .button--danger:hover{background:#a32a18}.course-card{gap:var(--space-2);color:inherit;transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);flex-direction:column;text-decoration:none;display:flex}.course-card:hover{border-color:var(--color-primary);box-shadow:var(--glow-soft);transform:translateY(-2px)}.course-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.course-card__title{font-size:var(--font-size-lg);font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:600}.course-card__price{color:var(--color-primary);white-space:nowrap;font-weight:700}.course-card__meta{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.course-detail__cover{border-radius:var(--radius-lg);width:100%;max-width:720px;height:auto;margin:var(--space-4) 0;object-fit:cover;display:block}.course-detail__meta{color:var(--color-text-muted);margin:var(--space-2) 0 0}.course-detail__section{margin-top:var(--space-5)}.lesson-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lesson-list__item{justify-content:space-between;align-items:flex-start;gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);display:flex}.lesson-list__item:hover{border-color:var(--color-primary);box-shadow:var(--glow-soft);transform:translateY(-1px)}.lesson-list__main{flex:auto;min-width:0}.lesson-list__section{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-1);text-transform:uppercase;letter-spacing:.04em}.lesson-list__title{font-size:var(--font-size-base);margin:0 0 var(--space-1);align-items:center;gap:var(--space-2);font-family:var(--font-display);letter-spacing:.01em;font-weight:600;display:flex}.lesson-list__description{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:var(--space-1) 0 0}.lesson-list__badge{background:var(--color-primary);color:var(--color-on-primary);font-size:var(--font-size-xs);padding:2px var(--space-2);border-radius:999px;font-weight:600}.lesson-list__meta{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap}.progress-summary{gap:var(--space-3);margin:var(--space-4) 0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.progress-summary__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);flex-direction:column;align-items:flex-start;display:flex}.progress-summary__value{color:var(--color-primary);font-size:2rem;font-weight:700;font-family:var(--font-display);letter-spacing:.01em}.progress-summary__label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.progress-entries{margin-top:var(--space-5)}.progress-entry-list{gap:var(--space-3);margin:0;margin-top:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.progress-entry{justify-content:space-between;align-items:flex-start;gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);display:flex}.progress-entry:hover{border-color:var(--color-primary);box-shadow:var(--glow-soft);transform:translateY(-1px)}.progress-entry__main{flex:auto;min-width:0}.progress-entry__header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.progress-entry__badge{font-size:var(--font-size-xs);padding:2px var(--space-2);background:var(--color-surface-2);color:var(--color-text);border-radius:999px;font-weight:600}.progress-entry__badge--task{color:#1f6feb;background:#1f6feb26}.progress-entry__badge--milestone{color:#2f8a3c;background:#2f8a3c26}.progress-entry__badge--note{color:#787878;background:#78787826}.progress-entry__date{font-size:var(--font-size-sm);color:var(--color-text-muted)}.progress-entry__title{font-size:var(--font-size-base);margin:0 0 var(--space-1);font-family:var(--font-display);letter-spacing:.01em;font-weight:600}.progress-entry__description{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:var(--space-1) 0 0}.progress-entry__actions{gap:var(--space-1);flex-direction:column;flex:none;display:flex}.button--danger-text{color:#c1351f;border-color:#c1351f}.button--danger-text:hover{background:#c1351f1a}.form--inline{margin-top:var(--space-4)}.form__row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.form__group--grow{grid-column:span 2}.app-frame{border-radius:var(--radius-sm);position:relative}.app-frame__border{pointer-events:none;z-index:1;position:absolute;inset:0}.neon-text{background-image:linear-gradient(120deg, var(--color-primary) 0%, var(--color-secondary) 100%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.neon-glow-primary{box-shadow:var(--glow-primary)}.neon-glow-secondary{box-shadow:var(--glow-secondary)}.neon-divider{align-items:center;gap:var(--space-3);margin:var(--space-5) 0;color:var(--color-text-muted);font-size:var(--font-size-sm);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;text-align:center;display:flex}.neon-divider:before,.neon-divider:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--color-border) 50%, transparent 100%);flex:auto;height:1px}.neon-divider>span{padding:0 var(--space-2);background-color:var(--color-bg);color:var(--color-text-muted);white-space:nowrap;position:relative}.auth-form .neon-divider>span,.surface-elevated .neon-divider>span{background-color:var(--color-bg-elevated)}.neon-input{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--font-size-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);outline:none;width:100%}.neon-input::placeholder{color:var(--color-text-muted);opacity:.7}.neon-input:hover{border-color:var(--color-border-strong)}.neon-input:focus,.neon-input:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary), var(--glow-soft);background-color:var(--color-bg-elevated)}.spatial-bg{isolation:isolate;background-color:#0a0a14;background-image:radial-gradient(1px 1px at 20% 30%,#ffffffd9 50%,#0000 51%),radial-gradient(1px 1px at 75% 20%,#ffffffb3 50%,#0000 51%),radial-gradient(1.2px 1.2px at 40% 70%,#fff9 50%,#0000 51%),radial-gradient(1px 1px at 85% 60%,#fffc 50%,#0000 51%),radial-gradient(1px 1px at 12% 85%,#ffffff8c 50%,#0000 51%),radial-gradient(1.5px 1.5px at 55% 12%,#ffffffe6 50%,#0000 51%),radial-gradient(1px 1px at 65% 88%,#ffffff80 50%,#0000 51%),radial-gradient(1px 1px at 30%,#fff9 50%,#0000 51%),radial-gradient(60% 50% at 18% 25%,#8b5cf638 0%,#0000 70%),radial-gradient(55% 45% at 85% 80%,#06b6d42e 0%,#0000 70%),linear-gradient(#0a0a14 0%,#0d0d1a 50%,#0a0a14 100%);background-repeat:no-repeat;background-size:100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%;position:relative}.spatial-bg__circuit{pointer-events:none;opacity:.7;background-image:linear-gradient(90deg,#8b5cf61f 1px,#0000 1px),linear-gradient(0deg,#06b6d41f 1px,#0000 1px);background-size:32px 32px,32px 32px;width:60%;height:60%;position:absolute;bottom:0;right:0;-webkit-mask-image:radial-gradient(at 100% 100%,#000 0%,#0000 75%);mask-image:radial-gradient(at 100% 100%,#000 0%,#0000 75%)}.spatial-bg__stars{pointer-events:none;opacity:.7;background-image:radial-gradient(1px 1px at 25% 15%,#ffffffe6 50%,#0000 51%),radial-gradient(1.2px 1.2px at 60% 8%,#ffffffbf 50%,#0000 51%),radial-gradient(1px 1px at 80% 35%,#fffc 50%,#0000 51%),radial-gradient(1px 1px at 45% 45%,#ffffff80 50%,#0000 51%),radial-gradient(1.5px 1.5px at 90% 10%,#fffffff2 50%,#0000 51%);background-repeat:no-repeat;animation:6s ease-in-out infinite spatial-twinkle;position:absolute;inset:0}@keyframes spatial-twinkle{0%,to{opacity:.55}50%{opacity:.95}}@media (prefers-reduced-motion:reduce){.spatial-bg__stars{animation:none}}.social-buttons{justify-content:center;align-items:center;gap:var(--space-3);flex-flow:wrap;display:flex}.social-button{background-color:var(--color-bg-elevated);width:48px;height:48px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.social-button:hover{background-color:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--glow-primary);transform:translateY(-1px)}.social-button:active{transform:translateY(0)}.social-button:focus-visible{border-color:var(--color-primary);box-shadow:var(--glow-primary);outline:none}.social-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.social-button svg{color:currentColor;fill:currentColor;width:22px;height:22px;display:block}.auth{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0a0a14;flex:auto;grid-template-columns:1fr;min-height:100%;display:grid}@media (width>=960px){.auth{grid-template-columns:1.05fr 1fr}}.auth-hero{color:var(--color-text);isolation:isolate;display:none;position:relative;overflow:hidden}@media (width>=960px){.auth-hero{display:block}}.auth-hero__inner{z-index:2;height:100%;padding:var(--space-12) var(--space-10);gap:var(--space-10);flex-direction:column;display:flex;position:relative}.auth-hero__brand{align-items:center;gap:var(--space-3);color:var(--color-text);text-decoration:none;display:inline-flex}.auth-hero__logo{border-radius:var(--radius-md);background:var(--color-bg-elevated);object-fit:contain;width:40px;height:40px}.auth-hero__brand-text{font-family:var(--font-display);font-size:var(--font-size-2xl);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.auth-hero__content{gap:var(--space-6);flex-direction:column;max-width:540px;margin-top:auto;display:flex}.auth-hero__eyebrow{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-family:var(--font-display);font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase;border:1px solid #8b5cf659;align-self:flex-start;margin:0;font-weight:600;display:inline-block}.auth-hero__title{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:clamp(2.5rem,4.5vw,3.5rem);font-weight:800;line-height:1.05}.auth-hero__subtitle{font-family:var(--font-sans);font-size:var(--font-size-lg);color:#e4e4e7c7;line-height:var(--line-height-base);max-width:52ch;margin:0}.auth-hero__props{margin:var(--space-2) 0 0;gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.auth-hero__prop{align-items:flex-start;gap:var(--space-3);display:flex}.auth-hero__prop-icon{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-primary);flex:0 0 36px;justify-content:center;align-items:center;display:inline-flex}.auth-hero__prop-icon svg{width:18px;height:18px}.auth-hero__prop-title{font-family:var(--font-display);font-weight:600;font-size:var(--font-size-base);letter-spacing:.01em;margin:0 0 var(--space-1);color:#f4f4f5}.auth-hero__prop-desc{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-base);margin:0}.auth-hero__footer{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);align-items:center;gap:var(--space-2);margin:0;display:inline-flex}.auth-hero__footer:before{content:"";background:var(--color-ok);border-radius:50%;width:6px;height:6px;display:inline-block}.auth-form{padding:var(--space-8) var(--space-4);justify-content:center;align-items:center;display:flex;position:relative}@media (width>=960px){.auth-form{padding:var(--space-10) var(--space-8)}}.auth-form__card{width:100%;max-width:480px;padding:var(--space-8);color:#18181b;border:1px solid var(--surface-border);border-radius:var(--radius-md);gap:var(--space-6);isolation:isolate;--color-bg-elevated:#f4f4f5;--color-bg:#fff;--color-text:#18181b;--color-text-muted:#52525b;--color-border:#e4e4e7;--color-border-strong:#a1a1aa;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;flex-direction:column;display:flex;position:relative}@media (width>=640px){.auth-form__card{padding:var(--space-10)}}.auth-form__header{gap:var(--space-2);text-align:left;flex-direction:column;display:flex}.auth-form__title{font-family:var(--font-display);font-size:var(--font-size-3xl);letter-spacing:.01em;font-weight:700;line-height:var(--line-height-tight);color:#18181b;-webkit-text-fill-color:#18181b;background:0 0;margin:0}.auth-form__subtitle{font-family:var(--font-sans);font-size:var(--font-size-base);color:#52525b;line-height:var(--line-height-base);margin:0}.auth-form__alt{text-align:center;font-family:var(--font-sans);font-size:var(--font-size-sm);color:#52525b;margin:0}.auth-form__alt-link{color:var(--color-primary);font-weight:600;text-decoration:none}.auth-form__alt-link:hover{text-decoration:underline}.form--auth{gap:var(--space-5);box-shadow:none;background:0 0;border:0;flex-direction:column;padding:0;display:flex}.form__row{gap:var(--space-2);flex-direction:column;display:flex}.form__row-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.form__label{font-family:var(--font-display);font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase;color:#52525b;font-weight:600}.form__link{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-primary);font-weight:500;text-decoration:none}.form__link:hover{text-decoration:underline}.form__hint--success{color:var(--color-ok);align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);margin:0;display:inline-flex}.form__hint--success:before{content:"";background:var(--color-ok);border-radius:50%;width:4px;height:4px;display:inline-block}.form__hint--warning{color:var(--color-warning);align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);margin:0;display:inline-flex}.form__hint--warning:before{content:"";background:var(--color-warning);border-radius:50%;width:4px;height:4px;display:inline-block}.auth-cta{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-6);font-family:var(--font-display);font-size:var(--font-size-base);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-inverse);background:var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);border:0;font-weight:700;display:inline-flex}.auth-cta:hover:not(:disabled){background:var(--color-primary-hover)}.auth-cta:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.auth-cta:disabled{opacity:.5;cursor:not-allowed}.auth-cta__icon{justify-content:center;align-items:center;display:inline-flex}.auth-cta__icon svg{width:18px;height:18px}.form__alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-sm);line-height:var(--line-height-base);display:flex}.form__alert p{margin:0}.form__alert--ko{background:var(--color-ko-soft);color:var(--color-ko);border:1px solid #ef44444d}.form__alert-dot{background:currentColor;border-radius:50%;flex:0 0 8px;width:8px;height:8px;margin-top:6px}.auth-strength{align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.auth-strength__bar{background:var(--color-surface);border-radius:var(--radius-full);flex:1;height:4px;overflow:hidden}.auth-strength__fill{border-radius:var(--radius-full);background:var(--color-ko);width:0%;height:100%;transition:width var(--transition-base), background var(--transition-base)}.auth-strength--2 .auth-strength__fill{background:var(--color-warning);width:33%}.auth-strength--3 .auth-strength__fill{background:var(--color-primary);width:66%}.auth-strength--4 .auth-strength__fill{background:var(--color-ok);width:100%}.auth-strength__label{font-family:var(--font-display);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;text-align:right;min-width:80px;font-weight:600}.auth-checks{margin:var(--space-1) 0 0;gap:var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.auth-check{align-items:center;gap:var(--space-2);transition:color var(--transition-fast);display:inline-flex}.auth-check__dot{background:var(--color-border-strong);width:6px;height:6px;transition:background var(--transition-fast);border-radius:50%}.auth-check--ok{color:var(--color-ok)}.auth-check--ok .auth-check__dot{background:var(--color-ok)}.auth-terms{align-items:flex-start;gap:var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-base);cursor:pointer;display:flex}.auth-terms input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;flex:0 0 16px;margin-top:2px}.auth-terms a{color:var(--color-primary);font-weight:500;text-decoration:none}.auth-terms a:hover{text-decoration:underline}.popup-backdrop{background:var(--color-overlay);z-index:var(--z-modal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.popup{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);min-width:320px;max-width:90vw;max-height:90vh;overflow:auto}.popup__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.popup__title{font-size:var(--font-size-xl);font-family:var(--font-display);letter-spacing:.01em;margin:0;font-weight:600}.popup__close{color:var(--color-text-muted);font-size:var(--font-size-xl);line-height:1}.app-layout{background:radial-gradient(ellipse 80% 50% at 50% 0%, #8b5cf60f 0%, transparent 60%), radial-gradient(ellipse 60% 40% at 100% 100%, #06b6d40a 0%, transparent 60%), var(--color-bg);flex-direction:column;min-height:100%;display:flex}.app-layout__main{flex-direction:column;flex:auto;display:flex}@media (width<=640px){.app-layout__main{padding:var(--space-6) var(--space-4)}}.app-header{z-index:var(--z-sticky);-webkit-backdrop-filter:saturate(180%)blur(14px);background:linear-gradient(#0a0a0f8c 0%,#0a0a0f66 100%);position:sticky;top:0;box-shadow:0 1px #8b5cf614}.app-header:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#8b5cf6a6 30%,#06b6d4a6 70%,#0000 100%);height:1px;position:absolute;bottom:0;left:0;right:0}.app-header__inner{max-width:var(--layout-max-width);padding:var(--space-3) var(--layout-gutter);align-items:center;gap:var(--space-6);margin:0 auto;display:flex}.app-header__brand{align-items:center;gap:var(--space-2);font-size:var(--font-size-lg);color:var(--color-text);letter-spacing:.04em;font-weight:700;display:inline-flex}.app-header__logo{border-radius:var(--radius-md);object-fit:contain;width:32px;height:32px;display:block}.app-header__nav{flex:auto;padding-bottom:8px;position:relative}.app-header__nav:before{content:"";left:var(--nav-indicator-x,0px);width:var(--nav-indicator-w,0px);background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);border-radius:var(--radius-full);height:2px;opacity:var(--nav-indicator-opacity,0);pointer-events:none;transition:left .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1),opacity .2s ease-out;position:absolute;bottom:0;box-shadow:0 0 8px #8b5cf680}.app-header__nav ul{gap:var(--space-4);display:flex}.app-header__link{color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:color var(--transition-fast), background var(--transition-fast);position:relative}.app-header__link:hover{color:var(--color-text);background:#8b5cf614}.app-header__link--active{color:var(--color-text);background:0 0}.app-header__actions{gap:var(--space-2);display:flex}.app-header__cta{align-items:center;gap:var(--space-2);display:inline-flex;position:relative}.app-header__cta:after{content:"";background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 100%);border-radius:var(--radius-full);pointer-events:none;width:0;height:2px;transition:width .32s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:50%;transform:translate(-50%);box-shadow:0 0 8px #8b5cf680}.app-header__cta--active:after{width:calc(100% - var(--space-2))}.app-header__cta-dot{background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 6px}.app-footer{border-top:1px solid var(--color-border);background:var(--color-bg-elevated);padding:var(--space-6) var(--layout-gutter)}.app-footer__inner{max-width:var(--layout-max-width);justify-content:space-between;align-items:center;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm);flex-wrap:wrap;margin:0 auto;display:flex}.app-footer__env{margin:0}.page{padding:var(--space-8) var(--layout-gutter);flex:auto;display:block}.page__container{max-width:var(--layout-max-width);margin:0 auto}.page__container--narrow{max-width:var(--layout-narrow-width)}.page__header{margin-bottom:var(--space-8)}.page__lede{color:var(--color-text-muted);font-size:var(--font-size-lg);max-width:60ch}.home-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}@media (width<=720px){.app-header__inner{gap:var(--space-3);flex-wrap:wrap}.app-header__nav{order:3;width:100%}}
