:root{--color-ink:#3a3529;--color-ink-soft:#6b6455;--color-cream:#edede5;--color-cream-deep:#e3e0d6;--color-surface-warm:#fffdfa;--color-olive:#85866b;--color-olive-dark:#5a5b49;--color-clay:#908074;--color-dust-blue:#92b0c2;--color-malva:#937c9f;--color-blush:#dbcabd;--color-line:#3a35291f;--color-ink-dark-bg:#2b2a20;--color-ink-dark-bg-2:#3a3928;--color-cream-on-dark:#f2ead9;--color-muted-on-dark:#c9c2ab;--color-primary:var(--color-ink);--color-secondary:var(--color-olive-dark);--color-accent:var(--color-olive-dark);--color-success:var(--color-olive-dark);--color-danger:#b0503a;--color-warning:var(--color-clay);--color-background:var(--color-cream);--color-surface:var(--color-surface-warm);--color-text:var(--color-ink);--color-text-muted:var(--color-ink-soft);--color-border:var(--color-cream-deep);--font-family-serif:"Fraunces", "Cormorant Garamond", serif;--font-family-sans:"Jost", "Instrument Sans", sans-serif;--font-family-mono:"IBM Plex Mono", monospace;--font-family-primary:var(--font-family-sans);--font-size-small:.875rem;--font-size-base:1rem;--font-size-large:1.25rem;--font-size-heading:1.9rem;--font-size-page-title:2.6rem;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2.5rem;--spacing-xl:4rem;--border-radius-base:12px;--border-radius-pill:999px;--transition-base:.2s ease-in-out;--shadow-base:0 1px 3px #3a35291f;--shadow-card:0 14px 30px #3a35291f}@keyframes breathe{0%{opacity:.55;transform:scale(.86)}40%{opacity:.9;transform:scale(1)}to{opacity:.55;transform:scale(.86)}}@keyframes stone-drop{0%{opacity:0;transform:translateY(-10px)scale(.85)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-background);line-height:1.6}h1,h2,h3{font-family:var(--font-family-serif);font-style:italic;font-weight:500;line-height:1.1}.eyebrow{font-family:var(--font-family-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-olive-dark);font-size:.72rem;display:inline-block}a{color:var(--color-accent);transition:opacity var(--transition-base);text-decoration:none}a:hover{opacity:.8}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:var(--font-size-base)}.app-button{justify-content:center;align-items:center;gap:var(--spacing-xs);border-radius:var(--border-radius-base);background-color:var(--color-accent);color:var(--color-surface);font-size:var(--font-size-base);transition:opacity var(--transition-base);border:none;padding:.65rem 1.25rem;font-weight:600;display:inline-flex}.app-button:hover{opacity:.9}.app-button:disabled{opacity:.6;cursor:not-allowed}.app-button--secondary{color:var(--color-accent);border:1px solid var(--color-accent);background-color:#0000}.app-button--danger{background-color:var(--color-danger)}.app-error-text{color:var(--color-danger);font-size:var(--font-size-small)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.loading-spinner{padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.loading-spinner__circle{border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite loading-spinner-rotate}@keyframes loading-spinner-rotate{to{transform:rotate(360deg)}}.logo{width:auto;box-shadow:var(--shadow-base);border-radius:50%;display:block}.logo--on-dark{box-shadow:0 6px 18px #00000059,0 0 0 1px #ffffff0f}.logo--sm{height:44px}.logo--md{height:80px}.logo--lg{height:96px}.logo--animated{opacity:0;animation:.5s cubic-bezier(.2,.9,.3,1.3) forwards logo-stamp}@keyframes logo-stamp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.app-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-surface);display:flex;position:relative}.app-header__brand{font-size:var(--font-size-large);color:var(--color-surface);flex-shrink:0;font-weight:700}.app-header__menu{display:flex}.app-header__menu-toggle{background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;display:flex}.app-header__menu-toggle span{background-color:var(--color-surface);border-radius:2px;width:22px;height:2px;display:block}.app-header__menu-panel{gap:var(--spacing-xs);width:240px;max-width:100vw;padding:var(--spacing-md);background-color:var(--color-ink-soft);box-shadow:var(--shadow-card);z-index:20;border-radius:0;flex-direction:column;display:flex;position:absolute;top:100%;right:0}.app-header__menu-greeting{font-size:var(--font-size-small);color:var(--color-surface);opacity:.8}.app-header__menu-links{flex-direction:column;gap:2px;list-style:none;display:flex}.app-header__menu-link{border-radius:var(--border-radius-base);color:var(--color-surface);padding:.7rem .6rem;font-weight:500;display:block}.app-header__menu-link--active{background-color:#fffdfa24}.app-header__menu-logout{margin-top:var(--spacing-xs);width:100%;color:var(--color-surface);border-color:var(--color-surface)}@media (width<=480px){.app-header{padding:var(--spacing-sm) var(--spacing-md)}}.app-footer{padding:var(--spacing-md) var(--spacing-lg);text-align:center;border-top:1px solid var(--color-border);background-color:var(--color-surface)}.app-footer__text{font-size:var(--font-size-small);color:var(--color-text-muted)}.reveal-section{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(28px)}.reveal-section--visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal-section{opacity:1;transition:none;transform:none}}.landing-page{background:var(--color-cream);overflow-x:hidden}.landing-page__nav{z-index:5;justify-content:space-between;align-items:center;padding:1.8rem 6vw 0;display:flex;position:absolute;top:0;left:0;right:0}.landing-page__nav-login{color:var(--color-cream-on-dark);border-bottom:1px solid #f2ead966;padding-bottom:2px;font-size:.85rem;font-weight:500}.landing-page__hero{text-align:center;min-height:100vh;color:var(--color-cream-on-dark);background:linear-gradient(#2b2a208c 0%,#1c1a12c7 65%,#1c1a12 100%),url(/images/photos/hero-meditacion-manos.jpg) 50% 20%/cover no-repeat;flex-direction:column;justify-content:center;align-items:center;padding:0 6vw;display:flex;position:relative;overflow:hidden}.landing-page__hero-content{z-index:2;max-width:640px;position:relative}.landing-page__hero-title{margin-top:22px;font-size:clamp(2.4rem,7vw,4.4rem);font-weight:400;line-height:1.05}.landing-page__hero-title em{color:var(--color-olive);font-style:normal;font-weight:500}.landing-page__hero-subtitle{color:var(--color-muted-on-dark);max-width:420px;margin-top:22px;margin-left:auto;margin-right:auto;font-size:1.05rem;line-height:1.6}.landing-page__scroll-cue{z-index:2;color:var(--color-muted-on-dark);flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:42px;left:50%;transform:translate(-50%)}.landing-page__scroll-cue span:first-child{background:linear-gradient(#f2ead9b3,#0000);width:1px;height:34px;animation:2.4s ease-in-out infinite scroll-cue-pulse}@keyframes scroll-cue-pulse{0%,to{opacity:.35}50%{opacity:1}}.landing-page__section{padding:var(--spacing-xl) 6vw}.landing-page__section--deep{background:var(--color-ink-dark-bg);color:var(--color-cream-on-dark);position:relative;overflow:hidden}.landing-page__story-grid{gap:var(--spacing-lg);grid-template-columns:1fr;align-items:center;max-width:1040px;margin:0 auto;display:grid}.landing-page__story-photo img{object-fit:cover;border-radius:var(--border-radius-base);width:100%;height:100%;max-height:420px;box-shadow:var(--shadow-card)}.landing-page__story{text-align:center;max-width:640px;margin:0 auto}@media (width>=860px){.landing-page__story-grid{grid-template-columns:1.1fr .9fr}.landing-page__story-grid--reverse{grid-template-columns:.9fr 1.1fr}.landing-page__story-grid--reverse .landing-page__story-photo{order:-1}.landing-page__story{text-align:left;margin:0}}.landing-page__story h2{margin-top:14px;font-size:clamp(1.8rem,4vw,2.6rem)}.landing-page__story p{color:var(--color-text-muted);margin-top:18px;font-size:1.02rem;line-height:1.7}.landing-page__story--on-dark p{color:var(--color-muted-on-dark)}.landing-page__features{z-index:2;max-width:960px;margin:var(--spacing-xl) auto 0;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid;position:relative}.landing-page__feature-card{padding:var(--spacing-md);border-radius:var(--border-radius-base);transition:transform var(--transition-base), border-color var(--transition-base);background:#f6efe20a;border:1px solid #f2ead929}.landing-page__feature-card:hover{border-color:#f2ead952;transform:translateY(-4px)}.landing-page__feature-index{color:var(--color-clay)}.landing-page__feature-card h3{margin-top:10px;font-size:1.4rem;font-style:italic}.landing-page__feature-card p{color:var(--color-muted-on-dark);margin-top:10px;font-size:.94rem;line-height:1.6}.landing-page__cta{padding:var(--spacing-xl) 6vw calc(var(--spacing-lg));text-align:center;color:var(--color-cream-on-dark);background:linear-gradient(#1c1a12b8 0%,#2b2a2099 55%,#1c1a12 100%),url(/images/photos/cta-mat.png) 50% 20%/cover no-repeat;position:relative;overflow:hidden}.landing-page__cta-content{z-index:2;max-width:560px;margin:0 auto;position:relative}.landing-page__cta-content h2{margin-top:14px;font-size:clamp(2rem,5vw,3rem)}.landing-page__cta-content>p{color:var(--color-muted-on-dark);margin-top:16px;line-height:1.6}.landing-page__cta-actions{justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);flex-wrap:wrap;display:flex}.landing-page__cta-primary{background-color:var(--color-cream-on-dark);color:var(--color-ink-dark-bg)}.landing-page__cta-secondary{color:var(--color-cream-on-dark);border-color:#f2ead980}.landing-page__footer{z-index:2;margin-top:var(--spacing-xl);padding-top:var(--spacing-md);color:var(--color-muted-on-dark);border-top:1px solid #f2ead924;flex-direction:column;align-items:center;gap:10px;font-size:.8rem;display:flex;position:relative}@media (width<=640px){.landing-page__nav{padding:1.4rem 6vw 0}.landing-page__hero-title{font-size:clamp(2.1rem,9vw,3rem)}}.form-input{margin-bottom:var(--spacing-sm);flex-direction:column;gap:.35rem;display:flex}.form-input__label{font-size:var(--font-size-small);color:var(--color-text);font-weight:600}.form-input__field{border:1px solid var(--color-border);border-radius:var(--border-radius-base);background-color:var(--color-surface);width:100%;min-width:0;color:var(--color-text);transition:border-color var(--transition-base);padding:.6rem .8rem}.form-input__field:focus{border-color:var(--color-accent);outline:none}.form-input__field[aria-invalid=true]{border-color:var(--color-danger)}.form-input__error{color:var(--color-danger);font-size:var(--font-size-small)}.login-page{min-height:calc(100vh - 140px);padding:var(--spacing-md);background:radial-gradient(circle at 15% 20%, #85866b1a, transparent 40%), radial-gradient(circle at 85% 80%, #9080741f, transparent 45%), var(--color-cream);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-page__form{z-index:2;text-align:center;align-items:center;gap:var(--spacing-xs);width:100%;max-width:400px;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;display:flex;position:relative}.login-page__welcome{margin-top:var(--spacing-sm)}.login-page__form .form-input{text-align:left;width:100%}.login-page__title{font-size:var(--font-size-heading);margin-top:var(--spacing-sm)}.login-page__subtitle{font-family:var(--font-family-serif);color:var(--color-text-muted);margin-bottom:var(--spacing-sm);font-style:italic}.login-page__submit-error{flex-direction:column;align-items:center;gap:2px;display:flex}.login-page__submit{width:100%;margin-top:var(--spacing-xs)}.login-page__footer-text{margin-top:var(--spacing-sm);font-size:var(--font-size-small);text-align:center;color:var(--color-text-muted)}.register-page{min-height:calc(100vh - 140px);padding:var(--spacing-md);background:radial-gradient(circle at 15% 20%, #85866b1a, transparent 40%), radial-gradient(circle at 85% 80%, #9080741f, transparent 45%), var(--color-cream);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.register-page__form{z-index:2;text-align:center;align-items:center;gap:var(--spacing-xs);width:100%;max-width:460px;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;display:flex;position:relative}.register-page__welcome{margin-top:var(--spacing-sm)}.register-page__form .form-input,.register-page__name-fields{text-align:left;width:100%}.register-page__title{font-size:var(--font-size-heading);margin-top:var(--spacing-sm)}.register-page__subtitle{font-family:var(--font-family-serif);color:var(--color-text-muted);margin-bottom:var(--spacing-sm);font-style:italic}.register-page__name-fields{gap:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.register-page__name-fields>*{min-width:0}@media (width<=420px){.register-page__name-fields{grid-template-columns:1fr}}.register-page__submit{width:100%;margin-top:var(--spacing-xs)}.register-page__footer-text{margin-top:var(--spacing-sm);font-size:var(--font-size-small);text-align:center;color:var(--color-text-muted)}.forgot-password-page{min-height:calc(100vh - 140px);padding:var(--spacing-md);background:radial-gradient(circle at 15% 20%, #85866b1a, transparent 40%), radial-gradient(circle at 85% 80%, #9080741f, transparent 45%), var(--color-cream);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.forgot-password-page__form{z-index:2;text-align:center;align-items:center;gap:var(--spacing-xs);width:100%;max-width:400px;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;display:flex;position:relative}.forgot-password-page__form form{align-items:center;gap:var(--spacing-xs);flex-direction:column;width:100%;display:flex}.forgot-password-page__welcome{margin-top:var(--spacing-sm)}.forgot-password-page__form .form-input{text-align:left;width:100%}.forgot-password-page__title{font-size:var(--font-size-heading);margin-top:var(--spacing-sm)}.forgot-password-page__subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.forgot-password-page__submit{width:100%;margin-top:var(--spacing-xs)}.forgot-password-page__footer-text{margin-top:var(--spacing-sm);font-size:var(--font-size-small);text-align:center;color:var(--color-text-muted)}.reset-password-page{min-height:calc(100vh - 140px);padding:var(--spacing-md);background:radial-gradient(circle at 15% 20%, #85866b1a, transparent 40%), radial-gradient(circle at 85% 80%, #9080741f, transparent 45%), var(--color-cream);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.reset-password-page__form{z-index:2;text-align:center;align-items:center;gap:var(--spacing-xs);width:100%;max-width:400px;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;display:flex;position:relative}.reset-password-page__form form{align-items:center;gap:var(--spacing-xs);flex-direction:column;width:100%;display:flex}.reset-password-page__welcome{margin-top:var(--spacing-sm)}.reset-password-page__form .form-input{text-align:left;width:100%}.reset-password-page__title{font-size:var(--font-size-heading);margin-top:var(--spacing-sm)}.reset-password-page__subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.reset-password-page__submit{width:100%;margin-top:var(--spacing-xs)}.reset-password-page__footer-text{margin-top:var(--spacing-sm);font-size:var(--font-size-small);text-align:center;color:var(--color-text-muted)}.whatsapp-button{color:var(--color-olive-dark);border-bottom:1px solid var(--color-olive-dark);transition:opacity var(--transition-base), transform var(--transition-base);align-items:center;gap:.4rem;margin-top:.6rem;padding-bottom:2px;font-size:.85rem;font-weight:600;display:inline-flex}.whatsapp-button:hover{opacity:.85;transform:translate(2px)}.whatsapp-button__arrow{transition:transform var(--transition-base)}.whatsapp-button:hover .whatsapp-button__arrow{transform:translate(3px)}.pending-subscription-page{min-height:calc(100vh - 140px);padding:var(--spacing-md);background:radial-gradient(circle at 15% 20%, #85866b1a, transparent 40%), radial-gradient(circle at 85% 80%, #9080741f, transparent 45%), var(--color-cream);justify-content:center;align-items:center;display:flex}.pending-subscription-page__card{text-align:center;width:100%;max-width:440px;padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;align-items:center;gap:.4rem;display:flex}.pending-subscription-page__card .eyebrow{margin-top:var(--spacing-sm)}.pending-subscription-page__card h1{font-size:2rem}.pending-subscription-page__body{color:var(--color-text-muted);margin-top:.4rem;line-height:1.6}.pending-subscription-page__logout{margin-top:var(--spacing-lg)}.progress-ring{background:#fffdfaeb;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 2px 8px #3a35292e}.progress-ring svg{position:absolute;inset:0}.progress-ring__track{stroke:var(--color-cream-deep)}.progress-ring__fill{stroke:var(--color-olive-dark);stroke-linecap:round;transition:stroke-dashoffset .4s}.progress-ring__label{font-family:var(--font-family-mono);color:var(--color-olive-dark);font-size:.62rem;font-weight:600;position:relative}.class-card{background-color:var(--color-surface);border-radius:var(--border-radius-base);border:1px solid var(--color-border);color:var(--color-text);transition:transform .25s,box-shadow .25s;display:block;overflow:hidden}.class-card:hover{box-shadow:var(--shadow-card);opacity:1;transform:translateY(-4px)}.class-card__thumb{background-position:50%;background-size:cover;background-color:var(--color-olive);background-image:linear-gradient(160deg,#85866b8c,#3a352966);height:150px;position:relative}.class-card__badge{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--color-cream-on-dark);border-radius:var(--border-radius-pill);letter-spacing:.06em;background:#2b2a2099;padding:4px 10px;position:absolute;top:10px;left:10px}.class-card__ring{position:absolute;bottom:10px;right:10px}.class-card__favorite{width:30px;height:30px;color:var(--color-clay);cursor:pointer;transition:transform var(--transition-base);background:#fffdfad9;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;display:flex;position:absolute;top:10px;right:10px}.class-card__favorite:hover{transform:scale(1.1)}.class-card__favorite--active{color:#b0503a}.class-card__body{padding:16px 18px 20px}.class-card__title{color:var(--color-ink);font-size:1.3rem}.class-card__meta{font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:6px}.class-catalog-page{min-height:calc(100vh - 140px)}.class-catalog-page__hero{padding:var(--spacing-lg) 5vw var(--spacing-md);gap:var(--spacing-md);color:var(--color-cream-on-dark);background:linear-gradient(#2b2a2066 0%,#1c1a12bf 100%),url(/images/photos/catalogo-hero-cobra.png) 50% 55%/cover no-repeat;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;display:flex}@media (width>=860px){.class-catalog-page__hero{min-height:420px}}.class-catalog-page__hero .eyebrow{color:var(--color-muted-on-dark)}.class-catalog-page__hero h1{font-size:var(--font-size-page-title);color:var(--color-cream-on-dark);max-width:520px;margin-top:10px;line-height:1.05}.class-catalog-page__hero h1 em{color:var(--color-olive);font-style:italic}.class-catalog-page__filters-bar{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) 5vw 0;flex-wrap:wrap;display:flex}.class-catalog-page__filters{flex-wrap:wrap;gap:10px;display:flex}.class-catalog-page__filters--secondary{flex-basis:100%;margin-top:-4px}.class-catalog-page__filters--secondary .chip{padding:5px 12px;font-size:.72rem}.class-catalog-page__progress{flex-shrink:0;align-items:center;gap:10px;display:flex}.class-catalog-page__progress-label{font-size:var(--font-size-small);color:var(--color-text-muted);white-space:nowrap}.class-catalog-page__progress-label b{color:var(--color-ink)}.class-catalog-page__progress-track{border-radius:var(--border-radius-pill);background:var(--color-cream-deep);width:120px;height:8px;overflow:hidden}.class-catalog-page__progress-fill{border-radius:var(--border-radius-pill);background:linear-gradient(90deg, var(--color-olive), var(--color-olive-dark));height:100%;transition:width .6s}@media (width<=640px){.class-catalog-page__filters-bar{align-items:stretch;gap:var(--spacing-xs);flex-direction:column}.class-catalog-page__progress{order:1}.class-catalog-page__progress-track{flex:1;width:auto}}.chip{border-radius:var(--border-radius-pill);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-base), color var(--transition-base);background:0 0;padding:7px 16px;font-size:.8rem}.chip:hover{opacity:1;border-color:var(--color-olive-dark)}.chip--active{background:var(--color-olive-dark);border-color:var(--color-olive-dark);color:var(--color-cream)}.class-catalog-page__grid{gap:var(--spacing-md);padding:var(--spacing-md) 5vw var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.class-catalog-page__groups{padding-bottom:var(--spacing-md)}.class-catalog-page__group+.class-catalog-page__group{margin-top:var(--spacing-sm)}.class-catalog-page__group-heading{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) 5vw 0;display:flex}.class-catalog-page__group-label{font-family:var(--font-family-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-olive-dark);white-space:nowrap;font-size:.72rem}.class-catalog-page__group-line{background:var(--color-border);flex:1;height:1px}.class-catalog-page__group .class-catalog-page__grid{padding-bottom:0}.class-catalog-page__empty,.class-catalog-page__error{padding:var(--spacing-lg) 5vw;color:var(--color-text-muted)}.comment-thread{margin-top:var(--spacing-lg)}.comment-thread__title{margin-top:6px;font-size:1.5rem}.comment-thread__note{font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:6px;margin-bottom:var(--spacing-md)}.comment-thread__empty{color:var(--color-text-muted);font-size:var(--font-size-small)}.comment-thread__list{gap:var(--spacing-xs);flex-direction:column;display:flex}.comment-thread__bubble{border-radius:16px;max-width:70%;padding:13px 18px;font-size:.9rem;line-height:1.5}.comment-thread__bubble--mine{background:var(--color-olive-dark);color:var(--color-cream-on-dark);border-bottom-right-radius:4px;margin-left:auto}.comment-thread__bubble--admin{background:var(--color-surface);border:1px solid var(--color-border);border-bottom-left-radius:4px}.comment-thread__who{justify-content:space-between;gap:var(--spacing-sm);letter-spacing:.05em;text-transform:uppercase;opacity:.75;margin-bottom:4px;font-size:.68rem;display:flex}.comment-thread__form{gap:var(--spacing-xs);margin-top:var(--spacing-md);display:flex}.comment-thread__form input{border:1px solid var(--color-border);border-radius:var(--border-radius-pill);background:var(--color-surface);flex:1;padding:13px 16px;font-family:inherit}.comment-thread__form .app-button{border-radius:var(--border-radius-pill);padding:0 22px}@media (width<=640px){.comment-thread__bubble{max-width:90%}}.class-player-page{max-width:1000px;padding:var(--spacing-lg) 5vw var(--spacing-xl);margin:0 auto}.class-player-page__back{color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-size:.85rem;display:inline-block}.class-player-page__video{aspect-ratio:16/9;border-radius:var(--border-radius-base);background:linear-gradient(160deg,#85866ba6,#3a35298c);border:none;width:100%;display:block;overflow:hidden}.class-player-page__video iframe{border:none;width:100%;height:100%;display:block}.class-player-page__title-row{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-top:var(--spacing-md);flex-wrap:wrap;display:flex}.class-player-page__title-row h2{max-width:560px;margin-top:6px;font-size:2rem}.class-player-page__description{color:var(--color-text-muted);max-width:560px;margin-top:8px;font-style:normal;line-height:1.55}.class-player-page__fav-btn{white-space:nowrap}.class-player-page__error{padding:var(--spacing-lg) 5vw}.app-sidebar{width:220px;padding:var(--spacing-md);border-right:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0}.app-sidebar__list{gap:var(--spacing-xs);flex-direction:column;list-style:none;display:flex}.app-sidebar__link{border-radius:var(--border-radius-base);color:var(--color-text);transition:background-color var(--transition-base);padding:.6rem .8rem;font-weight:500;display:block}.app-sidebar__link:hover{background-color:var(--color-background);opacity:1}.app-sidebar__link--active{background-color:var(--color-accent);color:var(--color-surface)}@media (width<=768px){.app-sidebar{display:none}}.app-modal__overlay{padding:var(--spacing-md);z-index:100;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-modal{background-color:var(--color-surface);border-radius:var(--border-radius-base);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-base);flex-direction:column;display:flex;overflow:hidden}.app-modal__header{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.app-modal__title{font-size:var(--font-size-large)}.app-modal__close{color:var(--color-text-muted);background:0 0;border:none;font-size:1.5rem;line-height:1}.app-modal__body{padding:var(--spacing-md);min-height:0;overflow-y:auto}.profile-page{min-height:calc(100vh - 140px);display:flex}.profile-page__content{max-width:640px;padding:var(--spacing-lg);gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex}@media (width<=768px){.profile-page{flex-direction:column}.profile-page__content{max-width:100%;padding:var(--spacing-md)}}.profile-page__title{font-size:var(--font-size-page-title)}.profile-page__section{gap:var(--spacing-xs);padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;display:flex}.profile-page__section--danger{border-color:var(--color-danger)}.profile-page__section-title{font-size:var(--font-size-large);margin-bottom:var(--spacing-xs)}.profile-page__subscription-status{font-size:var(--font-size-small);color:var(--color-text-muted)}.profile-page__subscription-status strong{color:var(--color-ink)}.profile-page__form{flex-direction:column;display:flex}.profile-page__success-text{color:var(--color-success);font-size:var(--font-size-small)}.profile-page__danger-text{color:var(--color-text-muted);font-size:var(--font-size-small)}.profile-page__delete-actions{justify-content:flex-end;gap:var(--spacing-xs);margin-top:var(--spacing-sm);display:flex}.data-table__wrapper{border:1px solid var(--color-border);border-radius:var(--border-radius-base);overflow-x:auto}.data-table{border-collapse:collapse;background-color:var(--color-surface);width:100%}.data-table th,.data-table td{padding:.75rem var(--spacing-sm);text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.data-table tbody tr:last-child td{border-bottom:none}.data-table__empty{padding:var(--spacing-lg);text-align:center;color:var(--color-text-muted)}.admin-dashboard-page{min-height:calc(100vh - 140px);display:flex}.admin-dashboard-page__content{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;flex:1;max-width:1100px;display:flex}@media (width<=768px){.admin-dashboard-page{flex-direction:column}.admin-dashboard-page__content{max-width:100%;padding:var(--spacing-md)}}.admin-dashboard-page__title{font-size:var(--font-size-page-title)}.admin-dashboard-page__subtitle{color:var(--color-text-muted);margin-top:-.5rem}.admin-dashboard-page__tiles{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.admin-dashboard-page__tile{padding:var(--spacing-sm);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-base);border-left:4px solid var(--color-olive-dark);flex-direction:column;gap:4px;display:flex}.admin-dashboard-page__tile-label{font-size:var(--font-size-small);color:var(--color-text-muted)}.admin-dashboard-page__tile-value{color:var(--color-text);font-size:1.9rem;font-weight:600}.admin-dashboard-page__tile-hint{font-size:var(--font-size-small);color:var(--color-text-muted)}.admin-dashboard-page__section{gap:var(--spacing-xs);flex-direction:column;display:flex}.admin-dashboard-page__section-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.admin-dashboard-page__section-title{font-size:var(--font-size-large)}.admin-dashboard-page__sort{font-size:var(--font-size-small);color:var(--color-text-muted);align-items:center;gap:8px;display:flex}.admin-dashboard-page__sort select{font-family:var(--font-family-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-base);background-color:var(--color-surface);color:var(--color-text);padding:.3rem .5rem}.admin-dashboard-page__empty-hint{color:var(--color-text-muted)}.admin-dashboard-page__ranking{gap:var(--spacing-xs);flex-direction:column;list-style:none;display:flex}.admin-dashboard-page__ranking-row{align-items:center;gap:var(--spacing-xs);grid-template-columns:minmax(120px,260px) 1fr auto;display:grid}.admin-dashboard-page__ranking-label{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-small);overflow:hidden}.admin-dashboard-page__ranking-track{background-color:var(--color-cream-deep);border-radius:var(--border-radius-pill);height:20px;overflow:hidden}.admin-dashboard-page__ranking-fill{background-color:var(--color-olive-dark);border-radius:var(--border-radius-pill);min-width:4px;height:100%}.admin-dashboard-page__ranking-value{font-size:var(--font-size-small);color:var(--color-text-muted);white-space:nowrap}.admin-dashboard-page__name{font-weight:600}.admin-dashboard-page__email{font-size:var(--font-size-small);color:var(--color-text-muted)}.admin-dashboard-page__badge{border-radius:var(--border-radius-pill);padding:3px 12px;font-size:.75rem;font-weight:600;display:inline-block}.admin-dashboard-page__badge--pending{color:var(--color-clay);background:#90807433}.admin-dashboard-page__badge--active{color:var(--color-olive-dark);background:#5a5b4929}.admin-dashboard-page__badge--expired{color:var(--color-danger);background:#b0503a24}.admin-dashboard-page__activity-tag{text-transform:uppercase;letter-spacing:.03em;margin-top:2px;font-size:.7rem;font-weight:600;display:inline-block}.admin-dashboard-page__activity-tag--active{color:var(--color-olive-dark)}.admin-dashboard-page__activity-tag--inactive{color:var(--color-text-muted)}.content-access-modal{gap:var(--spacing-sm);flex-direction:column;display:flex}.content-access-modal__intro{color:var(--color-text-muted);font-size:var(--font-size-small);margin:0}.content-access-modal__modes{gap:var(--spacing-xs);flex-direction:column;display:flex}.content-access-modal__mode{border:1px solid var(--color-border);border-radius:var(--border-radius-base);cursor:pointer;align-items:flex-start;gap:.6rem;padding:.7rem .9rem;display:flex}.content-access-modal__mode span{flex-direction:column;gap:2px;display:flex}.content-access-modal__mode small{color:var(--color-text-muted);font-size:var(--font-size-small)}.content-access-modal__tree{gap:var(--spacing-xs);flex-direction:column;max-height:45vh;padding:.2rem;display:flex;overflow-y:auto}.content-access-modal__category{border:1px solid var(--color-border);border-radius:var(--border-radius-base);padding:.7rem .9rem}.content-access-modal__category-label,.content-access-modal__subcategory{cursor:pointer;align-items:center;gap:.6rem;display:flex}.content-access-modal__subcategories{border-left:2px solid var(--color-border);flex-direction:column;gap:.4rem;margin-top:.6rem;padding-left:1.4rem;display:flex}.content-access-modal__subcategory span{font-size:var(--font-size-small)}.content-access-modal__note,.content-access-modal__empty{color:var(--color-text-muted);font-size:var(--font-size-small);margin:.5rem 0 0}.content-access-modal__actions{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.admin-students-page{min-height:calc(100vh - 140px);display:flex}.admin-students-page__content{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;flex:1;max-width:1100px;display:flex}@media (width<=768px){.admin-students-page{flex-direction:column}.admin-students-page__content{max-width:100%;padding:var(--spacing-md)}.admin-students-page__search{max-width:100%}}.admin-students-page__title{font-size:var(--font-size-page-title)}.admin-students-page__subtitle{color:var(--color-text-muted);margin-top:-.5rem}.admin-students-page__search{max-width:340px}.admin-students-page__name{font-weight:600}.admin-students-page__email{font-size:var(--font-size-small);color:var(--color-text-muted)}.admin-students-page__badge{border-radius:var(--border-radius-pill);padding:3px 12px;font-size:.75rem;font-weight:600;display:inline-block}.admin-students-page__badge--pending{color:var(--color-clay);background:#90807433}.admin-students-page__badge--active{color:var(--color-olive-dark);background:#5a5b4929}.admin-students-page__badge--expired{color:var(--color-danger);background:#b0503a24}.admin-students-page__actions{flex-direction:column;gap:6px;display:flex}.admin-students-page__action-btn{font-size:var(--font-size-small);white-space:nowrap;padding:.4rem .8rem}.admin-students-page__range-form{border:1px solid var(--color-border);border-radius:var(--border-radius-base);flex-direction:column;gap:6px;padding:8px;display:flex}.admin-students-page__range-form-actions{gap:6px;display:flex}.admin-students-page__badge--full{color:var(--color-olive-dark);background:#85866b29}.admin-students-page__access-list{font-size:var(--font-size-small);flex-direction:column;gap:2px;margin:0;padding-left:1.1rem;display:flex}.admin-students-page__access-empty{font-size:var(--font-size-small);color:var(--color-danger)}.media-url-field{margin-bottom:var(--spacing-sm);flex-direction:column;gap:.35rem;display:flex}.media-url-field .form-input__field{margin:0}.media-url-field__divider{color:var(--color-text-muted);font-size:var(--font-size-small);align-items:center;gap:.6rem;margin:.15rem 0;display:flex}.media-url-field__divider:before,.media-url-field__divider:after{content:"";background-color:var(--color-border);flex:1;height:1px}.media-url-field__upload-row{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.media-url-field__upload-btn{font-size:var(--font-size-small);white-space:nowrap;padding:.5rem 1rem}.media-url-field__upload-hint{font-size:var(--font-size-small);color:var(--color-text-muted);overflow-wrap:anywhere}.media-url-field__file-input{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.media-url-field__progress{border-radius:var(--border-radius-pill);background-color:var(--color-border);height:4px;overflow:hidden}.media-url-field__progress-bar{border-radius:var(--border-radius-pill);background-color:var(--color-accent);width:40%;height:100%;animation:1.1s ease-in-out infinite media-url-field-progress}@keyframes media-url-field-progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}.media-url-field__uploaded{border:1px solid var(--color-border);border-radius:var(--border-radius-base);background-color:var(--color-background);align-items:center;gap:.7rem;padding:.65rem .9rem;display:flex}.media-url-field__uploaded-icon{font-size:1.3rem;line-height:1}.media-url-field__uploaded-text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.media-url-field__uploaded-title{color:var(--color-text);font-weight:600}.media-url-field__uploaded-filename{font-size:var(--font-size-small);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.media-url-field__replace-btn{color:var(--color-accent);font-size:var(--font-size-small);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-weight:600}.media-url-field__thumb-preview-wrap{width:100%;max-width:220px;position:relative}.media-url-field__thumb-preview{aspect-ratio:16/9;object-fit:cover;border-radius:var(--border-radius-base);border:1px solid var(--color-border);width:100%;display:block}.media-url-field__thumb-preview-overlay{border-radius:var(--border-radius-base);color:var(--color-surface-warm);font-size:var(--font-size-small);opacity:0;cursor:pointer;transition:opacity var(--transition-base);background-color:#3a35298c;justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.media-url-field__thumb-preview-wrap:hover .media-url-field__thumb-preview-overlay,.media-url-field__thumb-preview-overlay:focus-visible{opacity:1}.admin-classes-page{min-height:calc(100vh - 140px);display:flex}.admin-classes-page__content{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;flex:1;max-width:960px;display:flex}@media (width<=768px){.admin-classes-page{flex-direction:column}.admin-classes-page__content{max-width:100%;padding:var(--spacing-md)}}.admin-classes-page__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.admin-classes-page__title{font-size:var(--font-size-page-title)}.admin-classes-page__subtitle{color:var(--color-text-muted)}.admin-classes-page__order-controls{gap:4px;display:flex}.admin-classes-page__order-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:26px;height:26px;color:var(--color-text);border-radius:6px}.admin-classes-page__order-btn:disabled{opacity:.35;cursor:not-allowed}.admin-classes-page__class-title{font-weight:600}.admin-classes-page__class-meta{font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:2px}.admin-classes-page__badge{border-radius:var(--border-radius-pill);padding:3px 12px;font-size:.75rem;font-weight:600;display:inline-block}.admin-classes-page__badge--published{color:var(--color-olive-dark);background:#5a5b4929}.admin-classes-page__badge--hidden{color:var(--color-text-muted);background:#6b645524}.admin-classes-page__actions{gap:6px;display:flex}.admin-classes-page__action-btn{font-size:var(--font-size-small);white-space:nowrap;padding:.4rem .8rem}.admin-classes-page__form{gap:var(--spacing-xs);flex-direction:column;display:flex}.admin-classes-page__select{border:1px solid var(--color-border);border-radius:var(--border-radius-base);background:var(--color-surface);width:100%;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);padding:.65rem .8rem}.admin-classes-page__checkbox{font-size:var(--font-size-small);align-items:center;gap:8px;margin:4px 0;display:flex}.admin-classes-page__subcategory-group{margin-top:var(--spacing-xs)}.admin-classes-page__confirm-text{color:var(--color-text);line-height:1.5}.admin-classes-page__confirm-actions{justify-content:flex-end;gap:var(--spacing-xs);margin-top:var(--spacing-md);display:flex}.admin-categories-page{min-height:calc(100vh - 140px);display:flex}.admin-categories-page__content{padding:var(--spacing-lg);gap:var(--spacing-lg);flex-direction:column;flex:1;max-width:960px;display:flex}@media (width<=768px){.admin-categories-page{flex-direction:column}.admin-categories-page__content{max-width:100%;padding:var(--spacing-md)}}.admin-categories-page__section{padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.admin-categories-page__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.admin-categories-page__title{font-size:var(--font-size-page-title)}.admin-categories-page__subtitle{color:var(--color-text-muted)}.admin-categories-page__group-block{margin-bottom:var(--spacing-lg)}.admin-categories-page__group-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);display:flex}.admin-categories-page__group-title{font-size:var(--font-size-base);font-weight:600}.admin-categories-page__item-label{font-weight:600}.admin-categories-page__order-controls{gap:4px;display:flex}.admin-categories-page__order-btn{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:26px;height:26px;color:var(--color-text);border-radius:6px}.admin-categories-page__order-btn:disabled{opacity:.35;cursor:not-allowed}.admin-categories-page__actions{gap:6px;display:flex}.admin-categories-page__action-btn{font-size:var(--font-size-small);white-space:nowrap;padding:.4rem .8rem}.admin-categories-page__form{gap:var(--spacing-xs);flex-direction:column;display:flex}.admin-categories-page__select{border:1px solid var(--color-border);border-radius:var(--border-radius-base);background:var(--color-surface);width:100%;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);padding:.65rem .8rem}.admin-categories-page__confirm-text{color:var(--color-text);line-height:1.5}.admin-categories-page__category-picker{max-width:320px;margin-bottom:var(--spacing-md)}.admin-categories-page__warning{margin-bottom:var(--spacing-xs)}.admin-categories-page__affected-list{margin:var(--spacing-xs) 0 0;color:var(--color-text);max-height:180px;padding-left:1.25rem;line-height:1.6;overflow-y:auto}.admin-categories-page__confirm-actions{justify-content:flex-end;gap:var(--spacing-xs);margin-top:var(--spacing-md);display:flex}.not-found-page{justify-content:center;align-items:center;gap:var(--spacing-sm);text-align:center;min-height:calc(100vh - 140px);padding:var(--spacing-md);flex-direction:column;display:flex}.not-found-page__code{color:var(--color-accent);font-size:4rem;font-weight:700}.not-found-page__message{color:var(--color-text-muted)}
