html:has(.lp),html:has(.lp) body{max-width:100%;overflow-x:clip}.lp{--lp-ink: #24382d;--lp-ink-soft: rgba(36, 56, 45, .72);--lp-ink-mute: rgba(36, 56, 45, .52);--lp-mint: #d9f2e6;--lp-mint-deep: #c5e8d6;--lp-border: #eaeaea;--lp-bg: #ffffff;--lp-grad: linear-gradient(135deg, #24382d 0%, #2f4a3c 55%, #3d5c4a 100%);--lp-grad-soft: linear-gradient(160deg, #24382d 0%, #2a4034 40%, #d9f2e6 160%);--lp-urok: #f8b010;--lp-font-display: "Fraunces", "Lora", Georgia, serif;--lp-font-body: "Source Sans 3", "Segoe UI", sans-serif;--lp-max: 1120px;--lp-pad: clamp(16px, 4vw, 40px);min-height:100vh;max-width:100%;background:var(--lp-bg);color:var(--lp-ink);font-family:var(--lp-font-body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;transition:opacity .38s cubic-bezier(.22,1,.36,1),transform .38s cubic-bezier(.22,1,.36,1)}.lp.lp--leaving{opacity:0;transform:translateY(14px);pointer-events:none}.lp #features,.lp #for-students,.lp #for-teachers,.lp #tutors,.lp #pricing{scroll-margin-top:96px}.lp a{color:inherit;text-decoration:none}.lp h1,.lp h2,.lp h3{font-family:var(--lp-font-display);font-weight:560;letter-spacing:-.02em;line-height:1.15;margin:0;color:var(--lp-ink)}.lp-nav{position:sticky;top:0;z-index:40;background:transparent;border-bottom:none;padding-bottom:20px;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),visibility .55s linear}.lp-nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(255,255,255,.9) 0%,rgba(255,255,255,.72) 55%,rgba(255,255,255,.28) 82%,transparent 100%);backdrop-filter:blur(14px) saturate(1.05);-webkit-backdrop-filter:blur(14px) saturate(1.05);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 62%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 62%,transparent 100%)}.lp-nav__inner{position:relative;max-width:var(--lp-max);margin:0 auto;padding:16px var(--lp-pad) 0;display:flex;align-items:center;gap:24px;min-width:0}.lp-brand{display:inline-flex;align-items:center;flex-shrink:0;color:inherit}.lp-brand .krokurok-logo__lockup{height:40px;max-width:min(200px,48vw)}.lp-nav--hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-18px)}.lp-scroll-top{position:fixed;top:20px;right:20px;z-index:50;width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid transparent;background:var(--lp-ink);color:#fff;box-shadow:0 8px 24px #24382d29;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),visibility .55s linear,background .25s ease,filter .25s ease}.lp-scroll-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.lp-scroll-top:hover{background:var(--lp-ink);filter:brightness(1.08)}.lp-scroll-top:focus-visible{outline:2px solid var(--lp-ink);outline-offset:2px}.lp-nav__links{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2.2vw,28px);flex:1;font-size:.95rem;color:var(--lp-ink-soft)}.lp-nav__links a:hover{color:var(--lp-ink)}.lp-nav__actions{display:flex;align-items:center;gap:14px;flex-shrink:0}.lp-nav__login{font-size:.95rem;color:var(--lp-ink-soft)}.lp-nav__login:hover{color:var(--lp-ink)}.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:12px;font-family:var(--lp-font-body);font-size:.98rem;font-weight:600;border:1px solid transparent;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease;cursor:pointer}.lp-btn:hover{transform:translateY(-1px)}.lp-btn--sm{min-height:40px;padding:0 16px;font-size:.9rem;border-radius:10px}.lp-btn--primary,a.lp-btn--primary,a.lp-btn--primary:visited{background:var(--lp-grad);color:#fff;box-shadow:0 1px #24382d14}.lp-btn--primary:hover,a.lp-btn--primary:hover{filter:brightness(1.04);color:#fff}.lp-btn--ghost{background:transparent;color:var(--lp-ink);border-color:var(--lp-border)}.lp-btn--ghost:hover{border-color:color-mix(in srgb,var(--lp-ink) 28%,var(--lp-border));background:color-mix(in srgb,var(--lp-mint) 35%,transparent)}.lp-btn--outline{background:#fff;color:var(--lp-ink);border-color:var(--lp-border)}.lp-btn--outline:hover{border-color:color-mix(in srgb,var(--lp-ink) 30%,var(--lp-border))}.lp-btn--block{width:100%;margin-top:auto}.lp-btn--urok,a.lp-btn--urok,a.lp-btn--urok:visited{background:#fff;border-color:var(--lp-urok);color:var(--lp-urok)}.lp-btn--urok:hover,a.lp-btn--urok:hover{background:color-mix(in srgb,var(--lp-urok) 12%,#fff);color:var(--lp-urok)}.lp-hero{max-width:var(--lp-max);margin:0 auto;padding:clamp(36px,7vh,72px) var(--lp-pad) clamp(16px,2.5vh,28px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr);gap:clamp(24px,4vw,48px);align-items:start}.lp-hero__copy{min-width:0;max-width:100%}.lp-badge{display:inline-flex;align-items:center;margin:0 0 18px;padding:7px 14px;border-radius:999px;background:var(--lp-mint);color:var(--lp-ink);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lp-badge--urok{background:var(--lp-urok);color:var(--lp-ink)}.lp-hero h1{font-family:"Inter",var(--lp-font-body);font-size:clamp(2.2rem,4.4vw,3.4rem);font-weight:700;letter-spacing:-.03em;line-height:1.12;max-width:none;margin-bottom:18px}.lp-hero__line{display:block;white-space:nowrap}.lp-hero__accent{display:block;color:var(--lp-urok)}.lp-hero__lead{margin:0 0 20px;max-width:36rem;color:var(--lp-ink-soft);font-size:1.05rem;line-height:1.65}.lp-hero__cta{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:36rem;margin:0 0 18px}.lp-cta-card{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:88px;padding:14px 12px 14px 16px;border-radius:18px;border:1.5px solid transparent;text-decoration:none;transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}.lp-cta-card:hover{transform:translateY(-2px)}.lp-cta-card__text{display:flex;flex-direction:column;gap:4px;min-width:0}.lp-cta-card__text strong{font-family:var(--lp-font-body);font-size:.98rem;font-weight:700;letter-spacing:-.01em;line-height:1.2}.lp-cta-card__text span{font-size:.78rem;font-weight:400;line-height:1.35}.lp-cta-card__btn{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.05rem;line-height:1}.lp-cta-card--teacher,a.lp-cta-card--teacher,a.lp-cta-card--teacher:visited{background:var(--lp-ink);color:#fff}.lp-cta-card--teacher strong,a.lp-cta-card--teacher strong{color:var(--lp-urok)}.lp-cta-card--teacher .lp-cta-card__text span{color:#ffffffe6}.lp-cta-card--teacher .lp-cta-card__btn{background:#fff;color:var(--lp-ink)}.lp-cta-card--teacher:hover,a.lp-cta-card--teacher:hover{filter:brightness(1.06);color:#fff}.lp-cta-card--student,a.lp-cta-card--student,a.lp-cta-card--student:visited{background:#fff;border-color:var(--lp-urok);color:var(--lp-ink)}.lp-cta-card--student strong,a.lp-cta-card--student strong{color:var(--lp-ink)}.lp-cta-card--student .lp-cta-card__text span{color:var(--lp-ink-soft)}.lp-cta-card--student .lp-cta-card__btn{background:color-mix(in srgb,var(--lp-urok) 22%,#fff);color:var(--lp-urok)}.lp-cta-card--student:hover{box-shadow:0 10px 24px color-mix(in srgb,var(--lp-urok) 18%,transparent)}.lp-hero__points{display:flex;flex-wrap:wrap;align-items:center;width:100%;max-width:36rem;margin:0;padding:0;list-style:none;color:var(--lp-ink-mute);font-size:1.12rem;font-weight:600;letter-spacing:-.01em;line-height:1.4}.lp-hero__points li{display:inline-flex;align-items:center}.lp-hero__points li.is-accent{color:var(--lp-ink-mute)}.lp-hero__points li:not(:last-child):after{content:"";width:4px;height:4px;margin:0 10px;border-radius:50%;background:var(--lp-ink-mute)}.lp-hero__art{display:flex;justify-content:center;align-items:center;min-height:280px}.lp-hero__img{opacity:1;width:min(100%,380px);height:auto;display:block;object-fit:contain;background:transparent}.lp-reveal{animation:lp-rise 1.05s cubic-bezier(.16,1,.3,1) both}.lp-reveal--delay{animation-delay:.16s}@keyframes lp-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.lp-section-reveal .lp-feature-card,.lp-section-reveal .lp-family__intro,.lp-section-reveal .lp-family__why article,.lp-section-reveal .lp-family__flow,.lp-section-reveal .lp-teachers__copy,.lp-section-reveal .lp-teachers-mock,.lp-section-reveal .lp-stat,.lp-section-reveal .lp-section-head,.lp-section-reveal .lp-market__chips,.lp-section-reveal .lp-tutor-card,.lp-section-reveal .lp-market__empty,.lp-section-reveal .lp-market__all,.lp-section-reveal .billing-toggle,.lp-section-reveal .subscription-card,.lp-section-reveal .lp-trust__inner,.lp-section-reveal .lp-close-card{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}.lp-section-reveal.is-inview .lp-feature-card,.lp-section-reveal.is-inview .lp-family__intro,.lp-section-reveal.is-inview .lp-family__why article,.lp-section-reveal.is-inview .lp-family__flow,.lp-section-reveal.is-inview .lp-teachers__copy,.lp-section-reveal.is-inview .lp-teachers-mock,.lp-section-reveal.is-inview .lp-stat,.lp-section-reveal.is-inview .lp-section-head,.lp-section-reveal.is-inview .lp-market__chips,.lp-section-reveal.is-inview .lp-tutor-card,.lp-section-reveal.is-inview .lp-market__empty,.lp-section-reveal.is-inview .lp-market__all,.lp-section-reveal.is-inview .billing-toggle,.lp-section-reveal.is-inview .subscription-card,.lp-section-reveal.is-inview .lp-trust__inner,.lp-section-reveal.is-inview .lp-close-card{opacity:1;transform:translateY(0)}.lp-features{max-width:var(--lp-max);margin:0 auto;padding:clamp(12px,2vh,24px) var(--lp-pad) clamp(40px,7vh,80px)}.lp-section-head{max-width:38rem;margin:0 auto 36px;text-align:center}.lp-section-head h2{font-family:"Inter",var(--lp-font-body);font-size:clamp(1.55rem,2.8vw,2.15rem);font-weight:700;letter-spacing:-.03em}.lp-section-head p{margin:12px 0 0;color:var(--lp-ink-mute);font-size:1rem}.lp-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lp-feature-card{padding:22px 20px 24px;border:1px solid var(--lp-border);border-radius:16px;background:#fff;transition:border-color .2s ease,transform .2s ease,background .2s ease}.lp-feature-card:hover{border-color:color-mix(in srgb,var(--lp-ink) 22%,var(--lp-border));background:color-mix(in srgb,var(--lp-mint) 22%,#fff);transform:translateY(-2px)}.lp-feature-card__icon{width:48px;height:48px;margin-bottom:14px;display:block;object-fit:contain}.lp-feature-card h3{font-size:1.12rem;margin-bottom:8px}.lp-feature-card p{margin:0;color:var(--lp-ink-mute);font-size:.94rem;line-height:1.55}.lp-family{max-width:var(--lp-max);margin:0 auto;padding:clamp(48px,8vh,88px) var(--lp-pad)}.lp-family__intro{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);grid-template-areas:"badge badge" "copy search";column-gap:clamp(28px,4vw,56px);row-gap:18px;align-items:start;margin-bottom:clamp(40px,6vh,64px)}.lp-family__intro>.lp-badge{grid-area:badge;margin-bottom:0;justify-self:start;width:max-content}.lp-family__intro>div:not(.lp-family-search){grid-area:copy;min-width:0}.lp-family__intro>.lp-family-search{grid-area:search}.lp-family__intro h2{max-width:14em;margin:0 0 16px;font-family:var(--lp-font-display);font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:600;letter-spacing:-.03em;line-height:1.18}.lp-family__intro h2 span{display:block}.lp-family__intro h2 .lp-family__h2-rest{white-space:nowrap}.lp-family__intro p:not(.lp-badge){max-width:38rem;margin:0;color:var(--lp-ink-mute);font-size:1.02rem;line-height:1.6}.lp-family-search{display:flex;flex-direction:column;gap:14px;min-width:0;position:relative;z-index:4}.lp-family-search .lp-market__chips{display:flex;flex-wrap:nowrap;justify-content:stretch;gap:6px;margin:0;width:100%}.lp-family-search .lp-market__chips button{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:32px;padding:0 6px;font-size:.8rem;white-space:nowrap}.lp-family-search__form{display:flex;flex-direction:column;gap:12px}.lp-family-search__query{display:flex;align-items:center;gap:10px;box-sizing:border-box;width:100%;min-width:0;height:44px;min-height:44px;padding:0 12px;overflow:hidden;border:1.5px solid #3d8b5c;border-radius:12px;background:#fff;color:var(--lp-ink-mute)}.lp-family-search__query{padding-right:0}.lp-family-search__query svg{flex-shrink:0;display:block}.lp-family-search__query input{flex:1 1 auto;min-width:0;width:100%;max-width:none;height:100%;margin:0;padding:0 12px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none;font:inherit;font-size:.92rem;font-weight:400;line-height:1;color:var(--lp-ink);outline:none;text-overflow:ellipsis;appearance:none;-webkit-appearance:none;-moz-appearance:none}.lp-family-search__query input:focus,.lp-family-search__query input:focus-visible,.lp-family-search__query:focus-within,.lp-family-search__query:focus-within input{outline:none;box-shadow:none;background:transparent;-webkit-tap-highlight-color:transparent}.lp-family-search__query input::placeholder{color:var(--lp-ink-mute);font-weight:400}.lp-family-search__row{display:flex;justify-content:flex-end;align-items:flex-start;gap:12px;width:100%}.lp-family-search__actions{flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:0}.lp-family-search__sort{display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;width:12.5rem;min-width:12.5rem;max-width:100%;background:transparent;color:var(--lp-ink)}.lp-family-search__sort.is-open .lp-family-search__sort-trigger{border-bottom-left-radius:0;border-bottom-right-radius:0;transition:border-radius .28s cubic-bezier(.22,1,.36,1)}.lp-family-search__sort-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;width:100%;height:44px;margin:0;padding:0 14px 0 16px;border:1.5px solid #3d8b5c;border-radius:12px;background:#fff;font:inherit;font-size:.92rem;font-weight:400;color:var(--lp-ink);text-align:left;white-space:nowrap;cursor:pointer;transition:border-radius .28s cubic-bezier(.22,1,.36,1)}.lp-family-search__sort-chevron{flex-shrink:0;font-size:.7rem;color:var(--lp-ink-mute);pointer-events:none;display:inline-block;transition:transform .28s cubic-bezier(.22,1,.36,1)}.lp-family-search__sort.is-open .lp-family-search__sort-chevron{transform:rotate(180deg)}.lp-family-search__sort-panel{min-height:0}.lp-family-search__sort-list{width:100%;margin:0;padding:4px 6px 8px;list-style:none;box-sizing:border-box;background:#fff;border:1.5px solid #3d8b5c;border-top:0;border-radius:0 0 12px 12px;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .22s ease,transform .28s cubic-bezier(.22,1,.36,1)}.lp-family-search__sort.is-open .lp-family-search__sort-list{opacity:1;transform:none;pointer-events:auto}.lp-family-search__sort:not(.is-open) .lp-family-search__sort-list{border-color:transparent;background:transparent}.lp-family-search__sort-list button{display:block;width:100%;margin:0;padding:10px 16px;border:0;border-radius:8px;background:transparent;font:inherit;font-size:.92rem;color:var(--lp-ink);text-align:left;white-space:nowrap;cursor:pointer}.lp-family-search__sort-list button:hover{background:color-mix(in srgb,var(--lp-mint) 40%,#fff)}.lp-family-search__sort-list button.is-active{background:var(--lp-ink);color:#fff}.lp-family-search__find{box-sizing:border-box;width:100%;height:44px;min-height:44px;padding:0 26px;border-radius:12px;white-space:nowrap}.lp-family-search .lp-market__all{margin:0;text-align:right}.lp-family__why{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:clamp(36px,6vh,56px)}.lp-family__why article{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:6px;align-items:start;min-width:0;text-align:left}.lp-family__icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:14px;border-radius:14px;background:var(--lp-mint)}.lp-family__why .lp-family__icon{grid-row:1 / 3;width:64px;height:64px;margin-bottom:0;border-radius:50%}.lp-family__why .lp-family__icon svg{width:28px;height:28px}.lp-family__why .lp-family__icon svg.lp-family__icon-svg--lg,.lp-family__why .lp-family__icon img.lp-family__icon-svg--lg{width:40px;height:40px;object-fit:contain;mix-blend-mode:multiply}.lp-family__why h4{margin:0;font-size:1.02rem;font-weight:700;letter-spacing:-.02em}.lp-family__why p{margin:0;color:var(--lp-ink-mute);font-size:.92rem;line-height:1.5}.lp-family__flow{display:flex;flex-direction:column;align-items:center;width:100%;padding:clamp(24px,4vw,36px) clamp(16px,3vw,28px);border:0;border-radius:24px;background:color-mix(in srgb,var(--lp-mint) 70%,#fff)}.lp-family__flow>p{max-width:none;width:100%;margin:0 0 24px;text-align:center;font-family:var(--lp-font-display);font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600;letter-spacing:-.03em;line-height:1.2}.lp-family__steps{display:flex;align-items:flex-start;justify-content:space-between;width:100%;max-width:1120px;margin:0;padding:0;list-style:none}.lp-family__steps li{display:flex;align-items:flex-start;flex:1;min-width:0}.lp-family__step{display:flex;flex:1;flex-direction:column;align-items:center;min-width:0;text-align:center}.lp-family__steps li:first-child .lp-family__step{transform:translate(10px)}.lp-family__step svg,.lp-family__step img{display:block;width:48px;height:48px;margin:0 0 12px;object-fit:contain;mix-blend-mode:multiply}.lp-family__step strong{display:block;font-size:.95rem;font-weight:700;letter-spacing:-.02em;line-height:1.3}.lp-family__arrow{flex:0 0 auto;align-self:flex-start;width:40px;height:12px;margin:18px 4px 0;object-fit:fill;mix-blend-mode:multiply}.lp-teachers{max-width:var(--lp-max);margin:0 auto;padding:clamp(40px,7vh,72px) var(--lp-pad) clamp(48px,8vh,88px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(28px,4vw,56px);align-items:center}.lp-teachers__copy h2{max-width:16em;margin:0 0 16px;font-size:clamp(1.7rem,3.2vw,2.35rem);font-weight:600;letter-spacing:-.03em;line-height:1.18}.lp-teachers__copy h2 span{display:block}.lp-teachers__copy>p:not(.lp-badge){max-width:36rem;margin:0;color:var(--lp-ink-mute);font-size:1.02rem;line-height:1.6}.lp-teachers__features{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin:28px 0 0;padding:0;list-style:none}.lp-teachers__features li{display:grid;grid-template-columns:45px minmax(0,1fr);gap:10px;align-items:start}.lp-teachers__icon{display:grid;place-items:center;width:45px;height:45px;color:var(--lp-ink)}.lp-teachers__icon svg,.lp-teachers__icon img{display:block;width:45px;height:45px;object-fit:contain;mix-blend-mode:multiply}.lp-teachers__features strong{display:block;font-size:.96rem;font-weight:700;letter-spacing:-.02em;line-height:1.25}.lp-teachers__features li>div span{display:block;margin-top:2px;color:var(--lp-ink-mute);font-size:.86rem;line-height:1.4}.lp-teachers-mock{min-width:0;overflow:hidden;border:1px solid var(--lp-border);border-radius:18px;background:#fff;box-shadow:0 18px 48px #24382d1a}.lp-teachers-mock__bar{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;height:40px;padding:0 14px;border-bottom:1px solid var(--lp-border);background:#f7faf8;color:var(--lp-ink-soft);font-size:.82rem;font-weight:700}.lp-teachers-mock__bar>span:last-child{text-align:center}.lp-teachers-mock__dots{display:flex;gap:5px}.lp-teachers-mock__dots i{width:8px;height:8px;border-radius:50%;background:#d5ddd8}.lp-teachers-mock__body{display:grid;grid-template-columns:148px minmax(0,1fr);min-height:360px}.lp-teachers-mock__nav{display:flex;flex-direction:column;gap:2px;padding:12px 10px;border-right:1px solid var(--lp-border);background:#fbfcfb}.lp-teachers-mock__nav span{padding:7px 10px;border-radius:8px;color:var(--lp-ink-soft);font-size:.8rem;font-weight:600;line-height:1.2}.lp-teachers-mock__nav span.is-active{background:var(--lp-mint);color:var(--lp-ink)}.lp-teachers-mock__main{display:flex;flex-direction:column;gap:12px;padding:16px 16px 14px}.lp-teachers-mock__main>p{margin:0;font-size:.98rem;font-weight:700}.lp-teachers-mock__fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lp-teachers-mock__fields label{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--lp-border);border-radius:12px;background:#fff}.lp-teachers-mock__fields span{color:var(--lp-ink-mute);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.lp-teachers-mock__fields strong{font-size:.92rem;font-weight:700}.lp-teachers-mock__blocks{display:flex;flex-direction:column;gap:8px}.lp-teachers-mock__block{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--lp-border);border-radius:12px;background:#fff}.lp-teachers-mock__block b{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--lp-mint);font-size:.78rem;font-weight:700}.lp-teachers-mock__block span{display:block;color:var(--lp-ink-mute);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.lp-teachers-mock__block strong{display:block;font-size:.9rem;font-weight:700}.lp-teachers-mock__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.lp-teachers-mock__actions span:first-child{color:var(--lp-ink-soft);font-size:.86rem;font-weight:600}.lp-teachers-mock__actions span:last-child{padding:8px 16px;border-radius:10px;background:var(--lp-ink);color:#fff;font-size:.84rem;font-weight:700}.lp .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lp-market{position:relative;z-index:4;max-width:var(--lp-max);margin:0 auto;padding:8px var(--lp-pad) clamp(48px,8vh,88px);overflow:visible}.lp-market .lp-section-head{max-width:42rem}.lp-market__chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 18px}.lp-market__chips button{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--lp-border);background:#fff;color:var(--lp-ink);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.lp-market__chips button:hover{border-color:color-mix(in srgb,var(--lp-ink) 28%,var(--lp-border));background:color-mix(in srgb,var(--lp-mint) 40%,#fff)}.lp-market__chips button.is-active{background:var(--lp-ink);border-color:var(--lp-ink);color:#fff}.lp-market__search{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,220px) auto;gap:0;align-items:stretch;margin:0 0 28px;padding:6px;border-radius:16px;background:#fff;border:1px solid var(--lp-border);overflow:visible}.lp-market__field{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;border-radius:12px;background:transparent;border:0;color:var(--lp-ink-mute)}.lp-market__field--city{border-left:1px solid var(--lp-border);border-radius:0}.lp-market__field:focus-within{background:color-mix(in srgb,var(--lp-mint) 28%,#fff)}.lp-market__field input,.lp-market__field select{width:100%;border:0;background:transparent;font:inherit;font-size:.92rem;color:var(--lp-ink);outline:none}.lp-market__field input::placeholder{color:var(--lp-ink-mute)}.lp-market__field--city{position:relative;z-index:2;overflow:visible}.lp-market__field--city.is-open{z-index:6}.lp-market__chevron{flex-shrink:0;font-size:.7rem;color:var(--lp-ink-mute);pointer-events:none}.lp-city-list{position:fixed;z-index:80;max-height:260px;overflow:auto;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--lp-border);border-radius:12px;box-shadow:0 12px 28px #24382d29}.lp-city-list button{width:100%;border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;font:inherit;font-size:.9rem;color:var(--lp-ink);cursor:pointer}.lp-city-list button:hover,.lp-city-list button.is-active{background:color-mix(in srgb,var(--lp-mint) 55%,#fff)}.lp-city-list__empty{padding:10px;font-size:.88rem;color:var(--lp-ink-mute)}.lp-market__find{white-space:nowrap;min-height:48px}.lp-market__carousel{position:relative}.lp-market__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 8px}.lp-market__track::-webkit-scrollbar{display:none}.lp-tutor-card{scroll-snap-align:start;display:flex;flex-direction:column;min-width:0;border:1px solid var(--lp-border);border-radius:16px;background:#fff;overflow:hidden;color:inherit;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.lp-tutor-card:hover{border-color:color-mix(in srgb,var(--lp-ink) 22%,var(--lp-border));transform:translateY(-2px);box-shadow:0 10px 28px #24382d14}.lp-tutor-card__photo{height:168px;background:color-mix(in srgb,var(--lp-mint) 55%,#fff);display:flex;align-items:center;justify-content:center;overflow:hidden}.lp-tutor-card__photo img{width:100%;height:100%;object-fit:cover}.lp-tutor-card__initials{font-family:var(--lp-font-display);font-size:2rem;font-weight:600;color:var(--lp-ink)}.lp-tutor-card__body{padding:14px 16px 16px}.lp-tutor-card__name{display:flex;align-items:center;gap:6px;font-weight:700;font-size:1.02rem}.lp-tutor-card__verified{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--lp-ink);color:#fff;font-size:.62rem;line-height:1}.lp-tutor-card__subject,.lp-tutor-card__meta,.lp-tutor-card__price{margin:4px 0 0;font-size:.9rem}.lp-tutor-card__subject{color:var(--lp-ink-soft)}.lp-tutor-card__meta{color:var(--lp-ink)}.lp-tutor-card__star{color:#d4a017;margin-right:4px}.lp-tutor-card__reviews{color:var(--lp-ink-mute);font-weight:400;margin-left:4px}.lp-tutor-card__price{font-weight:700}.lp-tutor-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.lp-tutor-card__tags span{padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--lp-mint) 70%,#fff);color:var(--lp-ink);font-size:.75rem;font-weight:600}.lp-market__arrow{position:absolute;top:40%;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid var(--lp-border);background:#fff;color:var(--lp-ink);font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:0 6px 16px #24382d14}.lp-market__arrow--prev{left:-12px}.lp-market__arrow--next{right:-12px}.lp-market__empty,.lp-market__all{text-align:center;color:var(--lp-ink-mute);font-size:.95rem}.lp-market__empty{margin:12px 0 8px}.lp-market__empty a,.lp-market__all a{font-weight:700;color:var(--lp-ink)}.lp-market__all{margin:22px 0 0}.lp-stats{background:var(--lp-mint);border-top:1px solid color-mix(in srgb,var(--lp-ink) 6%,transparent);border-bottom:1px solid color-mix(in srgb,var(--lp-ink) 6%,transparent)}.lp-stats__inner{max-width:var(--lp-max);margin:0 auto;padding:40px var(--lp-pad);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.lp-stat{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.lp-stat__icon{width:80px;height:80px;margin-bottom:6px;object-fit:contain;display:block}.lp-stat strong{font-family:var(--lp-font-display);font-size:clamp(1.35rem,2.2vw,1.7rem);font-weight:600;letter-spacing:-.02em;white-space:nowrap}.lp-stat span{max-width:16rem;font-size:.9rem;color:var(--lp-ink-soft);line-height:1.45}.lp-pricing{max-width:var(--lp-max);margin:0 auto;padding:clamp(48px,8vh,96px) var(--lp-pad)}.lp-pricing.subscription-page .billing-toggle,.lp-pricing .billing-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;width:fit-content;min-width:248px;margin:0 auto 20px;padding:4px;border:1px solid var(--lp-border);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--lp-mint) 40%,#fff);box-sizing:border-box}.lp-pricing .billing-toggle__thumb{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:8px;background:var(--lp-ink);transition:left .38s cubic-bezier(.22,1,.36,1);pointer-events:none;z-index:0;transform:none}.lp-pricing .billing-toggle--yearly .billing-toggle__thumb{left:50%;transform:none}.lp-pricing.subscription-page .billing-toggle button,.lp-pricing .billing-toggle button{position:relative;z-index:1;border:0;background:transparent;padding:8px 16px;cursor:pointer;color:var(--lp-ink-soft);font:inherit;transition:color .28s ease}.lp-pricing.subscription-page .billing-toggle button.active,.lp-pricing .billing-toggle button.active{background:transparent;color:#fff}@keyframes lp-price-swap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lp-pricing .subscription-card__price,.lp-pricing .subscription-card__trial{animation:lp-price-swap .34s cubic-bezier(.22,1,.36,1)}.lp-pricing .subscription-card{font-family:var(--lp-font-body);background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.lp-pricing .subscription-card h2{font-family:var(--lp-font-display)}.lp-pricing .subscription-card__tagline{margin:6px 0 0;color:var(--lp-ink-mute);font-size:.92rem;font-weight:400;line-height:1.4}.lp-pricing .subscription-card__ribbon{top:14px;right:14px;padding:6px 12px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--lp-ink);background:var(--lp-urok);box-shadow:0 2px 8px color-mix(in srgb,var(--lp-urok) 35%,transparent)}.lp-pricing a.btn-primary,.lp-pricing a.btn-primary:visited,.lp-pricing a.btn-primary:hover{color:#fff}.lp-pricing a.btn-secondary,.lp-pricing a.btn-secondary:visited{color:var(--lp-ink)}.lp-trust{border-top:1px solid var(--lp-border)}.lp-trust__inner{max-width:var(--lp-max);margin:0 auto;padding:22px var(--lp-pad);display:flex;align-items:center;justify-content:space-between;gap:16px}.lp-trust__copy{display:flex;align-items:center;gap:12px;color:var(--lp-ink-soft);font-size:.95rem}.lp-trust__copy p{margin:0}.lp-trust__icon{width:28px;height:28px;flex-shrink:0}.lp-trust__link{font-size:.92rem;font-weight:600;color:var(--lp-ink);white-space:nowrap;text-decoration:none}.lp-trust__link:hover{text-decoration:none;opacity:.75}.lp-close{max-width:var(--lp-max);margin:0 auto;padding:clamp(36px,6vh,72px) var(--lp-pad) clamp(48px,8vh,88px)}.lp-close .lp-section-head{margin-bottom:28px}.lp-close__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lp-close-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;min-height:0;padding:24px;border-radius:20px}.lp-close-card--teacher{background:color-mix(in srgb,var(--lp-mint) 42%,#fff)}.lp-close-card--student{background:color-mix(in srgb,var(--lp-urok) 16%,#fff)}.lp-close-card__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;flex-shrink:0}.lp-close-card--teacher .lp-close-card__icon{background:color-mix(in srgb,var(--lp-mint) 80%,#fff)}.lp-close-card--student .lp-close-card__icon{background:color-mix(in srgb,var(--lp-urok) 22%,#fff)}.lp-close-card__icon img{width:32px;height:32px;object-fit:contain;mix-blend-mode:multiply}.lp-close-card__body{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.lp .lp-close-card h3{margin:0 0 6px;font-family:var(--lp-font-body);font-size:1.12rem;font-weight:700;letter-spacing:-.02em}.lp-close-card p{margin:0 0 16px;color:var(--lp-ink-mute);font-size:.95rem;line-height:1.5}.lp-footer{border-top:1px solid var(--lp-border);padding:28px var(--lp-pad) 40px}.lp-footer__inner{max-width:var(--lp-max);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.lp-footer__brand{display:inline-flex;align-items:center}.lp-footer__brand .krokurok-logo__lockup{height:40px;max-width:min(200px,48vw)}.lp-footer p{margin:0;color:var(--lp-ink-mute);font-size:.92rem;flex:1}.lp-footer__links{display:flex;flex-wrap:wrap;gap:16px;font-size:.9rem;color:var(--lp-ink-soft)}.lp-footer__links a:hover{color:var(--lp-ink)}@media (max-width: 980px){.lp-hero__line{white-space:normal}.lp-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-market__search{grid-template-columns:1fr;gap:0}.lp-market__field--query,.lp-market__field--city,.lp-market__find{grid-column:1 / -1}.lp-market__field--city{border-left:0;border-top:1px solid var(--lp-border)}}@media (max-width: 860px){.lp-nav__inner{gap:12px}.lp-nav__links{display:none}.lp-hero{grid-template-columns:1fr;padding-top:20px;gap:12px}.lp-hero h1{max-width:none;font-size:clamp(1.7rem,7.2vw,2.35rem)}.lp-hero__line{white-space:normal}.lp-hero__lead{font-size:1rem}.lp-hero__cta{grid-template-columns:1fr;max-width:none}.lp-hero__points{width:100%;max-width:none;flex-wrap:wrap;white-space:normal;font-size:.92rem;row-gap:6px}.lp-hero__points li:not(:last-child):after{margin:0 8px}.lp-hero__art{order:-1;min-height:0}.lp-hero__img{width:min(100%,220px)}.lp-teachers{grid-template-columns:1fr}.lp-teachers-mock__nav{display:none}.lp-teachers-mock__body{grid-template-columns:1fr;min-height:0}.lp-close__grid{grid-template-columns:1fr}.lp-close-card .lp-btn{width:100%}.lp-family__intro{grid-template-columns:1fr;grid-template-areas:"badge" "copy" "search"}.lp-family__intro h2{max-width:none}.lp-family__intro h2 .lp-family__h2-rest{white-space:normal}.lp-family-search .lp-market__chips{flex-wrap:wrap;justify-content:flex-start}.lp-family-search .lp-market__chips button{flex:0 1 auto}.lp-family-search__row{flex-direction:column;align-items:stretch}.lp-family-search__sort{width:100%;min-width:0}.lp-family-search__sort-trigger,.lp-family-search__query input{width:100%;font-size:16px}.lp-family__why{grid-template-columns:1fr}.lp-family__steps{flex-direction:column;align-items:stretch;max-width:22rem;gap:2px}.lp-family__steps li{flex:none;width:100%;flex-direction:column;align-items:stretch}.lp-family__steps li:first-child .lp-family__step{transform:none}.lp-family__step{flex-direction:row;align-items:center;text-align:left;gap:12px}.lp-family__step svg,.lp-family__step img{width:36px;height:36px;margin:0;flex-shrink:0}.lp-family__arrow{display:block;width:22px;height:8px;margin:2px auto;transform:rotate(90deg);align-self:center}.lp-stats__inner{grid-template-columns:1fr 1fr}.lp-stat strong{white-space:normal}.lp-trust__inner{flex-direction:column;align-items:flex-start}.lp-market__search{grid-template-columns:1fr}.lp-market__arrow{display:none}.lp-footer__inner{flex-direction:column;align-items:flex-start}}@media (max-width: 520px){.lp{font-size:16px}.lp-nav__inner{gap:8px;padding-top:12px}.lp-brand .krokurok-logo__lockup,.lp-footer__brand .krokurok-logo__lockup{height:32px;max-width:min(148px,42vw)}.lp-nav__login{display:none}.lp-nav__actions .lp-btn--sm{min-height:36px;padding:0 12px;font-size:.82rem}.lp-feature-grid,.lp-family__why,.lp-teachers__features,.lp-stats__inner,.lp-teachers-mock__fields{grid-template-columns:1fr}.lp-cta-card{min-height:76px;padding:12px 12px 12px 14px}.lp-hero__cta{gap:10px;margin-bottom:14px}.lp-stat,.lp-stats__inner{text-align:left}.lp-stat{align-items:flex-start}.lp-stat__icon{width:56px;height:56px}.lp-scroll-top{width:48px;height:48px;top:12px;right:12px}.lp-teachers-mock__actions{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.lp,.lp.lp--leaving,.lp-reveal,.lp-reveal--delay,.lp-btn,.lp-cta-card,.lp-feature-card,.lp-section-reveal .lp-feature-card,.lp-section-reveal .lp-stat,.lp-section-reveal .lp-section-head,.lp-section-reveal .lp-market__chips,.lp-section-reveal .lp-market__search,.lp-section-reveal .lp-tutor-card,.lp-section-reveal .lp-market__empty,.lp-section-reveal .lp-market__all,.lp-section-reveal .billing-toggle,.lp-section-reveal .subscription-card,.lp-section-reveal .lp-trust__inner,.lp-section-reveal .lp-close-card,.lp-section-reveal .lp-teachers__copy,.lp-section-reveal .lp-teachers-mock,.lp-nav,.lp-scroll-top,.lp-family-search__sort-panel,.lp-family-search__sort-list,.lp-family-search__sort-chevron,.lp-family-search__sort-trigger,.lp-pricing .billing-toggle__thumb,.lp-pricing .billing-toggle button,.lp-pricing .subscription-card__price,.lp-pricing .subscription-card__trial{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}}:root{--color-white: #ffffff;--color-ink: #24382d;--color-ink-hover: #1c2e25;--brand-green: #1f4d3a;--brand-krok: #1a3d2e;--brand-urok: #f05a1a;--brand-urok-hover: #d94e14;--color-ink-80: rgba(36, 56, 45, .8);--color-ink-60: rgba(36, 56, 45, .6);--color-ink-40: rgba(36, 56, 45, .4);--color-ink-22: rgba(36, 56, 45, .22);--color-ink-12: rgba(36, 56, 45, .12);--color-ink-06: rgba(36, 56, 45, .06);--color-ink-03: rgba(36, 56, 45, .03);--highlight-fg: var(--color-ink);--highlight-hover-bg: color-mix(in srgb, var(--color-ink) 12%, transparent);--highlight-active-bg: color-mix(in srgb, var(--color-ink) 16%, transparent);--highlight-border: var(--color-ink);--background-page: #ffffff;--background-card: #ffffff;--background-active: rgba(36, 56, 45, .06);--page-bg: var(--background-page);--sidebar-bg: var(--background-page);--card-bg: var(--background-card);--background-main: var(--background-page);--background-sidebar: var(--background-page);--background-elevated: var(--background-card);--cream: var(--color-white);--text-primary: #24382d;--text-secondary: rgba(36, 56, 45, .72);--text-muted: rgba(36, 56, 45, .5);--border-default: rgba(36, 56, 45, .15);--border-strong: rgba(36, 56, 45, .26);--border-soft: var(--border-default);--shadow-card: 0 1px 2px rgba(36, 56, 45, .05), 0 8px 24px rgba(36, 56, 45, .07);--shadow-elevated: 0 2px 5px rgba(36, 56, 45, .06), 0 16px 40px rgba(36, 56, 45, .09);--shadow-soft: var(--shadow-card);--shadow-button: var(--shadow-card);--shadow-sm: 0 1px 2px rgba(36, 56, 45, .05);--shadow-md: var(--shadow-card);--shadow-lg: var(--shadow-elevated);--sage-primary: var(--color-ink);--sage-hover: var(--color-ink-hover);--sage-soft: var(--color-ink-12);--sage-pale: var(--color-ink-06);--sage-active: var(--background-active);--sage-active-text: var(--color-ink);--clay-primary: var(--color-ink);--clay-soft: var(--color-ink-12);--clay-pale: var(--color-ink-06);--sand-primary: var(--color-ink-40);--sand-soft: var(--color-ink-06);--danger: var(--color-ink);--danger-soft: var(--color-ink-06);--warning-soft-tone: var(--color-ink-60);--success-soft-tone: var(--color-ink);--plan-card-bg: var(--background-card);--plan-card-bg-hover: var(--color-ink-03);--plan-card-border: var(--border-default);--plan-card-border-hover: var(--border-strong);--plan-card-accent: var(--color-ink);--font-display: "Lora", "Georgia", "Times New Roman", serif;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 14px;--radius-xl: 18px;--sidebar-width: 248px;--color-bg: var(--background-page);--color-bg-secondary: var(--background-card);--color-bg-tertiary: var(--color-ink-03);--color-border: var(--border-default);--color-text: var(--text-primary);--color-text-muted: var(--text-muted);--color-text-secondary: var(--text-secondary);--color-primary: var(--color-ink);--color-primary-hover: var(--color-ink-hover);--color-primary-soft: var(--color-ink-06);--color-success: var(--color-ink);--color-warning: var(--color-ink-60);--color-error: var(--color-ink);--color-info: var(--color-ink);--color-coin: var(--brand-urok);--color-coin-soft: color-mix(in srgb, var(--brand-urok) 18%, transparent);--font-family: var(--font-ui);--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 26px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--content-max: 1120px;--shell-pad-x: 28px;--shell-pad-y: 20px;color-scheme:only light}@media (prefers-color-scheme: dark){:root{--background-page: #ffffff;--background-card: #ffffff;--page-bg: #ffffff;--sidebar-bg: #ffffff;--card-bg: #ffffff;--background-main: #ffffff;--background-sidebar: #ffffff;--background-elevated: #ffffff;--cream: #ffffff;--text-primary: #24382d;--color-bg: #ffffff;--color-bg-secondary: #ffffff;--color-text: #24382d;color-scheme:only light}}.krokurok-logo{display:inline-flex;align-items:center;gap:10px;color:var(--color-ink);min-width:0}.krokurok-logo__lockup{display:block;height:40px;width:auto;max-width:min(200px,100%);object-fit:contain;object-position:left center;flex-shrink:0;-webkit-user-select:none;user-select:none}.krokurok-logo--compact .krokurok-mark{display:block}.krokurok-logo__text{display:flex;flex-direction:column;gap:2px;min-width:0}.krokurok-logo__name-row{display:inline-flex;align-items:center;gap:8px;min-width:0}.krokurok-logo__subtitle{display:block;font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--text-muted);line-height:1.2}.krokurok-mark{display:block;object-fit:contain;flex-shrink:0;-webkit-user-select:none;user-select:none}.ui-card{border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--background-card);box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease,transform .12s ease}.ui-card--padded{padding:18px 20px}.ui-card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-elevated);transform:translateY(-1px)}.ui-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.ui-page-header__copy h1{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--font-size-2xl);color:var(--text-primary);letter-spacing:-.02em;line-height:1.25}.ui-page-header__copy p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--font-size-base)}.ui-page-header__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.ui-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.ui-section-title h3{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-ink);letter-spacing:-.01em}.ui-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;border:1px solid var(--border-default);background:var(--color-white);color:var(--color-ink)}.ui-badge--sage,.ui-badge--clay,.ui-badge--sand,.ui-badge--danger,.ui-badge--success{background:var(--color-white);color:var(--color-ink);border-color:var(--border-default)}.ui-stat-card{display:block;width:100%;text-align:left;text-decoration:none;color:inherit;font:inherit;cursor:pointer;position:relative;padding:18px 16px 16px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--background-card);box-shadow:var(--shadow-card);transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease}.ui-stat-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-elevated);transform:translateY(-1px)}.ui-stat-card__index{position:absolute;top:12px;right:14px;width:26px;height:26px;border-radius:50%;border:1px solid var(--border-default);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--text-muted);background:var(--color-white)}.ui-stat-card__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;margin-bottom:12px;color:var(--color-ink);background:var(--color-white);border:1px solid var(--border-default)}.ui-stat-card__icon .nav-icon,.ui-stat-card__icon svg{width:18px;height:18px}.ui-stat-card__value{font-family:var(--font-display);font-size:1.85rem;font-weight:600;line-height:1.1;color:var(--color-ink)}.ui-stat-card__label{margin-top:4px;font-size:13px;font-weight:600;color:var(--color-ink)}.ui-stat-card__hint{margin-top:2px;font-size:11px;font-weight:500;color:var(--text-muted)}.ui-stat-card--sage,.ui-stat-card--peach,.ui-stat-card--sand,.ui-stat-card--clay{background:var(--background-card);border-color:var(--border-default)}.ui-stat-card--sage .ui-stat-card__icon,.ui-stat-card--peach .ui-stat-card__icon,.ui-stat-card--sand .ui-stat-card__icon,.ui-stat-card--clay .ui-stat-card__icon{background:var(--color-white);border-color:var(--border-default);color:var(--color-ink)}.ui-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 28px;gap:12px;background:var(--background-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.ui-empty__icon{display:none}.ui-empty__visual{display:flex;justify-content:center;margin-bottom:4px;color:var(--color-ink)}.ui-empty__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:1.3rem;color:var(--color-ink);letter-spacing:-.02em;line-height:1.3}.ui-empty__desc{margin:0;max-width:28rem;color:var(--text-secondary);font-size:var(--font-size-base);line-height:1.55}.ui-empty__action{margin-top:10px}.ui-empty--promo{flex-direction:column;align-items:center;text-align:center;gap:12px;padding:44px 32px;min-height:280px;justify-content:center}.ui-empty--promo .ui-empty__copy{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:28rem}.ui-empty--promo .ui-empty__title{font-size:clamp(1.25rem,2vw,1.45rem);max-width:none}.ui-empty--promo .ui-empty__desc{max-width:36ch}.ui-illustration{display:block;color:var(--color-ink)}.ui-icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border-default);border-radius:10px;background:var(--color-white);color:var(--color-ink);cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.ui-icon-button:hover{color:var(--highlight-fg);border-color:var(--highlight-border);background:var(--highlight-hover-bg);box-shadow:none}.ui-calendar-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:20px 18px;background:var(--background-card);border-left:1px solid var(--border-default)}.ui-calendar-panel__head{display:flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--color-ink)}.ui-calendar-panel__head h3{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:600}.ui-calendar-panel__list{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}.ui-calendar-panel__day{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--color-ink-06)}.ui-calendar-panel__day:last-child{border-bottom:none}.ui-calendar-panel__date{font-size:13px;font-weight:600;color:var(--color-ink)}.ui-calendar-panel__status{font-size:12px;color:var(--text-muted)}.ui-calendar-panel__footer{margin-top:auto;padding-top:16px}.ui-calendar-panel__link{font-size:13px;font-weight:600;color:var(--color-ink);text-decoration:none}.ui-calendar-panel__link:hover{text-decoration:underline}.ui-calendar-panel__events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ui-calendar-panel__event{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border:1px solid var(--border-default);border-radius:10px;background:var(--color-white)}.ui-calendar-panel__event-time{font-size:11px;font-weight:700;color:var(--color-ink);font-variant-numeric:tabular-nums}.ui-calendar-panel__event-title{font-size:13px;font-weight:600;color:var(--color-ink)}.ui-calendar-panel__event-student{font-size:11.5px;color:var(--text-muted)}.calendar-page__grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:16px;align-items:start}.calendar-page__form-panel h3,.calendar-page__list-panel h3{margin:0 0 12px;font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--color-ink)}.calendar-form{display:flex;flex-direction:column;gap:12px}.calendar-form__datetime{display:grid;grid-template-columns:1.35fr 1fr;gap:10px}@media (max-width: 420px){.calendar-form__datetime{grid-template-columns:1fr}}.calendar-form__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.calendar-form__hint{margin:0;font-size:13px;color:var(--text-muted)}.calendar-form__hint a{color:var(--color-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}.calendar-form__hint a:hover{color:var(--color-ink-hover)}.calendar-page__list-panel{align-self:start}.calendar-page__list-panel:has(.calendar-page__empty){gap:8px}.calendar-page__empty{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:0 16px 16px;color:var(--text-muted);text-align:center}.calendar-page__empty>p{margin:12px 0 0}.calendar-page__empty-illustration{display:block;width:min(130px,55%);height:auto;margin:0;object-fit:contain;object-position:top center}.calendar-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.calendar-event-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border-default);border-radius:12px;background:var(--color-white)}.calendar-event-item__time{font-size:12px;font-weight:700;color:var(--color-ink);margin-bottom:2px}.calendar-event-item__title{font-size:14px;font-weight:600;color:var(--color-ink)}.calendar-event-item__meta{font-size:12px;color:var(--text-muted);margin-top:2px}.calendar-event-item__notes{font-size:12px;color:var(--text-secondary);margin-top:6px}.calendar-event-item__actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}@media (max-width: 900px){.calendar-page__grid{grid-template-columns:1fr}.calendar-event-item{flex-direction:column}.calendar-event-item__actions{flex-direction:row}}.ui-notif-card{display:flex;flex-direction:column;gap:4px;min-height:0}.sidebar-plan-card{display:block;margin:8px 4px 10px;padding:12px 14px;border-radius:var(--radius-md);background:var(--background-card);border:1px solid var(--border-default);box-shadow:var(--shadow-card);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.sidebar-plan-card:hover{color:var(--highlight-fg);border-color:var(--highlight-border);background:var(--highlight-hover-bg);box-shadow:none}.sidebar-plan-card__label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.sidebar-plan-card__name{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-ink)}.sidebar-plan-card__warn{margin-top:4px;font-size:12px;color:var(--color-ink);font-weight:600}.sidebar-plan-card__action{margin-top:6px;font-size:12px;font-weight:600;color:var(--color-ink-80)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.btn-primary{color:var(--color-white);background-color:var(--color-ink);border-color:var(--color-ink);box-shadow:none}.btn-primary:hover{background-color:var(--color-ink-hover);border-color:var(--color-ink-hover);color:var(--color-white);box-shadow:var(--shadow-card)}.btn-secondary{color:var(--color-ink);background-color:var(--color-white);border-color:var(--border-default)}.btn-secondary:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.dash-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;min-height:calc(100vh - 120px);margin:0;width:100%}.dash-layout__main,.dash-layout>.dash-layout__main.page-container{min-width:0;padding:0;display:flex;flex-direction:column;gap:12px}.dash-layout__calendar{min-width:0;background:var(--background-card);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}@media (max-width: 1100px){.dash-layout{grid-template-columns:1fr}.dash-layout__calendar{border-left:none}.ui-calendar-panel{border-left:none;min-height:220px}}.not-found-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--background-page, #ffffff);color:var(--color-ink)}.not-found-page__card{width:min(560px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:36px 28px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--background-card);box-shadow:var(--shadow-card)}.not-found-page__illustration{display:block;width:min(420px,100%);height:auto;aspect-ratio:4 / 3;object-fit:contain;margin-bottom:4px}.not-found-page__text{margin:0 0 10px;color:var(--text-secondary);font-size:var(--font-size-base);max-width:32ch;line-height:1.5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}a{text-decoration:none}a:hover,a:focus,a:active{text-decoration:none}html{font-size:16px;background:var(--background-page, #ffffff)}.img-unveil,.img-unveil.is-ready{opacity:1}.route-fallback{min-height:100vh;background:var(--background-page, #f7f4ee)}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--color-text);background-color:var(--background-page, #ffffff);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease,color .25s ease;min-height:100dvh}:root,html,body{color-scheme:only light}@media (prefers-color-scheme: dark){:root,html,body,#root{color-scheme:only light;background-color:#fff!important;color:#24382d!important}}html.ua-samsung-force-light,html.ua-samsung-force-light body,html.ua-samsung-force-light #root{background-color:#fff!important;color:#24382d!important}input[type=checkbox],input[type=radio]{accent-color:var(--color-ink, #24382d)}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.3;margin-bottom:var(--spacing-md);letter-spacing:-.015em}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md)}.text-muted{color:var(--color-text-muted)}code,.code-inline{font-family:var(--font-mono);font-size:var(--font-size-sm);background-color:var(--color-bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:9px 18px;font-family:inherit;font-size:var(--font-size-base);font-weight:600;line-height:1.5;color:var(--color-text);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease}.btn:hover{text-decoration:none}.btn:hover:not(.btn-primary):not(.btn-danger):not(.btn-success){color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}a.btn,a.btn:hover,a.btn:focus,a.btn:active{text-decoration:none}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-soft)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{color:var(--color-white, #ffffff);background-color:var(--color-ink, #24382d);border-color:var(--color-ink, #24382d);box-shadow:none;border-radius:12px}.btn-primary:hover{background-color:var(--color-ink-hover, #1c2e25);border-color:var(--color-ink-hover, #1c2e25);color:var(--color-white, #ffffff);box-shadow:var(--shadow-card)}.btn-secondary{color:var(--color-text);background-color:transparent;border-color:var(--color-border)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.btn-full{width:100%}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;font-size:var(--font-size-sm);color:var(--color-text)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],input:not([type]),.input,textarea,select{width:100%;padding:10px 14px;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}textarea{resize:vertical;min-height:88px;line-height:1.45}input:focus,.input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed}input::placeholder,.input::placeholder,textarea::placeholder{color:var(--color-text-muted)}.alert{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.alert>svg{width:18px;height:18px;flex-shrink:0}.alert-error{background-color:var(--color-white, #ffffff);border:1px solid var(--border-default);color:var(--color-ink, #24382d);border-radius:var(--radius-md);padding:var(--spacing-md);transition:opacity .35s ease,max-height .35s ease,margin .35s ease,padding .35s ease,border-width .35s ease}.alert-error.alert-autohiding{opacity:0;pointer-events:none}.alert-error.alert-autohidden{display:none!important}.alert-success{background-color:var(--color-white, #ffffff);border:1px solid var(--border-default);color:var(--color-ink, #24382d)}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-size-sm);font-weight:500;border-radius:9999px;background-color:var(--color-bg-tertiary);color:var(--color-text-muted)}.badge-teacher{background-color:var(--color-primary-soft);color:var(--color-primary)}.badge-student{background-color:#f5a52426;color:var(--color-warning)}.badge-active{background-color:#22a06b21;color:var(--color-success)}.badge-disabled{background-color:#e5484d21;color:var(--color-error)}.badge-warning{background-color:#f5a52426;color:var(--color-warning)}.badge-action{background-color:var(--color-primary-soft);color:var(--color-primary)}.spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.layout{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.header-brand h1{font-size:var(--font-size-lg);margin:0;color:var(--color-primary)}.header-nav{display:flex;gap:var(--spacing-xs)}.header-nav a{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-md);transition:all .15s ease}.header-nav a:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.header-nav a.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.header-nav a .nav-open-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;font-size:11px;font-weight:700;line-height:1;color:#fff;background:var(--brand-urok, #f05a1a);vertical-align:middle}.header-user{display:flex;align-items:center;gap:var(--spacing-md)}.user-public-id-wrap{position:relative;display:inline-flex;align-items:center}.user-public-id{-webkit-appearance:none;appearance:none;font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.3;color:#00000073;background-color:transparent;border:1px solid transparent;padding:2px 8px;border-radius:var(--radius-sm);cursor:pointer}.user-public-id:hover:not(:disabled){color:#000000b3;background-color:#fffdf959}.user-public-id:disabled{cursor:default;opacity:.7}.user-public-id-copied{position:absolute;top:calc(100% + 4px);right:0;z-index:40;white-space:nowrap;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;font-family:inherit;color:var(--color-ink, #24382d);background:var(--color-bg-secondary, #fff);border:1px solid var(--color-border, rgba(0, 0, 0, .12));box-shadow:0 4px 12px #00000014;pointer-events:none}.user-email{font-size:var(--font-size-sm);color:var(--color-text-muted)}.main{flex:1;padding:var(--spacing-lg);max-width:1400px;width:100%;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-lg)}.page-header h1{margin:0;line-height:1.2}.table-container{overflow-x:auto;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.data-table th,.data-table td{padding:var(--spacing-md);text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-border)}.data-table th{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);background-color:var(--color-bg-tertiary)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background-color:var(--color-bg-tertiary)}.table-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-muted);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:linear-gradient(135deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%)}.login-card{width:100%;max-width:400px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-header h1{color:var(--color-primary);margin-bottom:var(--spacing-sm)}.login-header p{color:var(--color-text-muted);margin:0}.login-footer{margin-top:var(--spacing-lg);text-align:center}.login-footer p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);text-align:center}.stat-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.dashboard-section{margin-top:var(--spacing-xl)}.system-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.system-card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);background-color:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.card-body{padding:var(--spacing-md)}.status-badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:600;border-radius:var(--radius-sm)}.status-ok{background-color:#22a06b21;color:var(--color-success)}.status-warning{background-color:#f5a52426;color:var(--color-warning)}.status-error{background-color:#e5484d21;color:var(--color-error)}.version{font-family:var(--font-mono);font-size:var(--font-size-lg)}.uptime{font-size:var(--font-size-lg);font-weight:600}.timestamp{font-size:var(--font-size-sm);color:var(--color-text-muted)}.system-info{margin-top:var(--spacing-xl)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--color-text-muted)}.page-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center;background:#fff;border:1px solid rgba(0,0,0,.14);border-radius:var(--radius-md)}.page-error h2{color:#000}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);color:var(--color-text-muted)}.backend-banner{position:fixed;left:50%;bottom:16px;z-index:9999;transform:translate(-50%);display:inline-flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:10px 14px;border-radius:12px;border:1px solid var(--border-default);background:var(--background-card);box-shadow:var(--shadow-elevated);color:var(--text-secondary);font-size:var(--font-size-sm)}.backend-banner__spinner{width:14px;height:14px;border:2px solid var(--color-ink-22);border-top-color:var(--color-ink);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background-color:var(--color-bg)}.error-content{text-align:center;max-width:600px}.error-content h1{color:var(--color-error);margin-bottom:var(--spacing-md)}.error-content .error-message{color:var(--color-text);margin-bottom:var(--spacing-lg)}.error-content .error-stack{text-align:left;padding:var(--spacing-md);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto;font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word;margin-bottom:var(--spacing-lg)}.auth-page{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:var(--background-page, #ffffff);animation:auth-page-in .4s cubic-bezier(.22,1,.36,1) both;transition:opacity .38s cubic-bezier(.22,1,.36,1),transform .38s cubic-bezier(.22,1,.36,1)}.auth-page.auth-page--leaving{animation:none;opacity:0;transform:translateY(14px);pointer-events:none}@keyframes auth-page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.auth-page,.register-role-card,.auth-card--enter{animation:none;transition:none}.auth-page.auth-page--leaving{opacity:0;transform:none}}.auth-back-btn,a.auth-back-btn{position:fixed;top:20px;left:20px;z-index:50;width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1.5px solid var(--color-ink, #24382d);background:transparent;color:var(--color-ink, #24382d);box-shadow:none;cursor:pointer;text-decoration:none;transition:background .2s ease,transform .2s ease}.auth-back-btn:hover,a.auth-back-btn:hover{background:color-mix(in srgb,var(--color-ink, #24382d) 8%,transparent);color:var(--color-ink, #24382d)}.auth-back-btn:focus-visible{outline:2px solid var(--color-ink, #24382d);outline-offset:2px}.app-main .auth-back-btn.page-back-btn,a.auth-back-btn.page-back-btn{position:relative;top:auto;left:auto;z-index:1;flex-shrink:0}.auth-card{width:100%;max-width:440px;background-color:var(--background-card, var(--color-bg-secondary));border:1px solid var(--border-soft, var(--color-border));border-radius:var(--radius-xl, 20px);padding:var(--spacing-xl);box-shadow:var(--shadow-soft)}.legal-page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:stretch;padding:72px var(--spacing-lg) 0;background:var(--background-page, #ffffff)}.legal-card,.auth-card:has(.legal-doc){width:100%;max-width:1100px;margin:0 auto 24px;flex:0 0 auto;background-color:var(--background-card, var(--color-bg-secondary));border:1px solid var(--border-soft, var(--color-border));border-radius:var(--radius-xl, 20px);padding:var(--spacing-xl);box-shadow:var(--shadow-soft)}.auth-card:has(.legal-doc){max-width:1100px!important}.auth-page:has(.legal-doc){display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.legal-page .app-footer,.auth-page:has(.legal-doc) .app-footer{width:100%;margin-top:auto}.legal-doc{line-height:1.55;font-size:.95rem;text-align:left;color:var(--color-text)}.legal-doc h2{margin:1.25em 0 .45em;font-size:1.05rem;font-weight:600}.legal-doc p,.legal-doc ul{margin-bottom:.85em}.legal-doc ul{padding-left:1.25em}.legal-doc li+li{margin-top:.35em}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-logo{display:inline-flex;width:52px;height:52px;margin-bottom:var(--spacing-md);color:var(--color-ink, #24382d)}.auth-logo svg{width:100%;height:100%}.auth-brand{display:flex;justify-content:center;margin-bottom:var(--spacing-md)}.auth-brand .krokurok-logo__lockup{height:40px;max-width:min(200px,100%)}.auth-header h1{color:var(--color-text);font-size:var(--font-size-2xl);margin-bottom:var(--spacing-sm)}.auth-header p{color:var(--color-text-muted);margin:0}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.auth-form .turnstile-field{display:flex;justify-content:stretch;min-height:70px}.auth-form .turnstile-box{width:100%}.auth-form .turnstile-wrap{width:100%;min-width:0;line-height:0}.auth-form .turnstile-error{max-width:none}.auth-footer{margin-top:var(--spacing-lg);text-align:center}.auth-footer p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:var(--spacing-sm) 0}.auth-form .form-hint{margin-top:6px;font-size:var(--font-size-sm)}.auth-form .form-hint,.auth-form .link{color:var(--color-primary)}.auth-age-band{margin:0;padding:0;border:0;min-width:0;min-inline-size:0;display:flex;flex-direction:column;gap:10px}.auth-age-band legend{display:block;float:none;width:100%;padding:0;margin:0 0 var(--spacing-sm);font-weight:500;font-size:var(--font-size-sm);color:var(--color-text)}.auth-choice{display:flex;align-items:flex-start;gap:10px;margin:0;font-size:var(--font-size-sm);font-weight:400;line-height:1.45;color:var(--color-text);cursor:pointer}.auth-choice input[type=checkbox],.auth-choice input[type=radio]{width:16px;height:16px;min-width:16px;max-width:16px;margin:3px 0 0;padding:0;flex-shrink:0;background:none;border:0;border-radius:0;box-shadow:none;-webkit-appearance:auto;appearance:auto;accent-color:var(--color-primary, #45a371)}.auth-choice span{min-width:0;flex:1}.auth-choice-hint{margin:0 0 0 26px;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.4}.auth-footer .link{color:var(--color-primary);text-decoration:none}.auth-footer .link:hover{text-decoration:none}.auth-footer .link-muted{color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-sm)}.auth-footer .link-muted:hover{color:var(--color-text)}.auth-admin-link{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.role-selector{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.role-option{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:12px var(--spacing-md);background-color:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .15s ease,background-color .15s ease,transform .1s ease}.role-option:hover:not(:disabled){border-color:var(--color-primary);background-color:var(--color-primary-soft);transform:translateY(-1px)}.role-option.selected{border-color:var(--color-primary);background-color:var(--color-primary-soft);box-shadow:0 0 0 3px var(--color-primary-soft)}.role-option:disabled{opacity:.6;cursor:not-allowed}.role-icon{display:flex;flex-shrink:0}.role-icon .icon-chip{width:44px;height:44px;border-radius:12px}.role-icon .icon-chip .nav-icon,.role-icon .icon-chip svg{width:22px;height:22px}.role-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.role-label{font-weight:600;color:var(--color-text)}.role-desc{font-size:var(--font-size-sm);color:var(--color-text-muted)}.role-check{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border);background:var(--color-bg-secondary);color:#fff;transition:all .15s ease}.role-option.selected .role-check{border-color:var(--color-primary);background:var(--color-primary)}.role-check .nav-icon{width:14px;height:14px}.auth-page--role-pick{align-items:center}.auth-card--role-pick{max-width:min(860px,100%);background:transparent;border:none;box-shadow:none;padding:var(--spacing-lg) var(--spacing-md)}.auth-header--role-pick{margin-bottom:var(--spacing-lg)}.auth-header--role-pick .auth-brand{margin-bottom:10px}.auth-header--role-pick .auth-brand .krokurok-logo__lockup{height:48px;max-width:min(240px,100%)}.register-role-prompt{margin:0;color:var(--color-text-muted, #6b7280);font-size:1.05rem;font-weight:500}.register-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;align-items:stretch}.register-role-card{display:flex;flex-direction:row;align-items:center;gap:14px;min-height:92px;padding:14px 18px 14px 14px;border-radius:999px;border:1.5px solid transparent;background:#fff;cursor:pointer;text-align:left;box-shadow:none;animation:register-role-in .35s cubic-bezier(.22,1,.36,1) both;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}@keyframes register-role-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-card--enter{animation:auth-card-in .36s cubic-bezier(.22,1,.36,1) both}@keyframes auth-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.register-role-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #24382d14}.register-role-card:focus-visible{outline:2px solid var(--brand-urok, #f05a1a);outline-offset:3px}.register-role-card--teacher{background:#fdf9ec;border-color:#fce4ac;color:#f5b317}.register-role-card--teacher .register-role-card__icon{width:72px;height:72px;background:#fff3cc;color:#f5c552;overflow:hidden;padding:6px}.register-role-card--parent{background:#eefaf4;border-color:#b0eac9;color:#45a371}.register-role-card--parent .register-role-card__icon{width:72px;height:72px;background:#d8f5e6;color:#45a371;overflow:hidden;padding:6px}.register-role-card--student{background:#eaf2fd;border-color:#95b7e6;color:#7099d5}.register-role-card--student .register-role-card__icon{width:72px;height:72px;background:#d9e8fb;color:#7099d5;overflow:hidden;padding:6px}.register-role-card__icon{width:54px;height:54px;flex-shrink:0;border-radius:999px;display:grid;place-items:center}.register-role-card__icon svg{width:28px;height:28px}.register-role-card__mascot{width:56px;height:56px;object-fit:contain;display:block;pointer-events:none}.register-role-card__text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.register-role-card__label{font-size:1.05rem;font-weight:700;line-height:1.2;color:#2b2f33}.register-role-card__desc{font-size:.84rem;line-height:1.3;color:#7a8088;max-width:none}.auth-card--role-pick .auth-footer{margin-top:var(--spacing-xl)}@media (max-width: 860px){.register-role-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}.user-layout .header-brand{display:flex;align-items:center;gap:var(--spacing-md)}.user-layout .role-badge:not(.role-badge--plate){padding:3px 10px;font-size:var(--font-size-sm);font-weight:600;border-radius:999px}.dashboard-welcome{margin-bottom:var(--spacing-xl);padding:var(--spacing-xl);background:radial-gradient(600px 200px at 90% -20%,var(--color-primary-soft),transparent 65%),var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.dashboard-welcome h1{margin-bottom:var(--spacing-sm);font-size:var(--font-size-2xl)}.dashboard-welcome .welcome-email{color:var(--color-text-muted);margin:0}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.dashboard-card{padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.dashboard-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.dashboard-card .card-icon{font-size:32px;margin-bottom:var(--spacing-md)}.dashboard-card h3{margin-bottom:var(--spacing-xs);font-size:var(--font-size-lg)}.dashboard-card p{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.dashboard-card .card-stat{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:600;background-color:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-primary)}.quick-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.btn-danger{color:var(--cream);background-color:var(--danger, #c45c55);border-color:var(--danger, #c45c55)}.btn-danger:hover{color:var(--cream);background-color:#b04e48;border-color:#b04e48}.btn-success{color:#fff;background-color:#15803d;border-color:#15803d}.btn-success:hover{color:#fff;background-color:#166534;border-color:#166534}.badge-parent{background-color:var(--color-bg-tertiary);color:var(--color-text)}.users-toolbar{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);max-width:360px}.users-search-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted)}.users-search-input{width:100%;padding:10px 14px;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.users-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.user-actions{display:flex;flex-wrap:wrap;gap:6px}.user-status-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:220px}.user-status-cell .badge{flex:0 0 auto;width:auto;align-self:flex-start}.user-freeze-reason{display:block;width:100%;font-size:var(--font-size-sm);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:#0f172a73}.admin-modal{width:100%;max-width:440px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.admin-modal h2{margin:0 0 var(--spacing-sm);font-size:var(--font-size-xl)}.admin-modal p{margin:0 0 var(--spacing-md);color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-modal .form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;font-size:var(--font-size-sm)}.admin-modal .form-input,.admin-modal textarea.form-input{width:100%;padding:10px 14px;margin-bottom:var(--spacing-md);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical}.admin-modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.temp-password{display:block;width:100%;padding:var(--spacing-md);margin-bottom:var(--spacing-md);font-family:var(--font-mono);font-size:var(--font-size-base);word-break:break-all;background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.monitor-subtitle{margin:4px 0 0}.monitor-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.stat-meta{margin-top:6px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.stat-card.warn-card .stat-value{color:#b45309}.monitor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-lg)}.monitor-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.monitor-panel-wide{grid-column:1 / -1}.monitor-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.monitor-panel-header h2{margin:0;font-size:var(--font-size-lg)}.danger-panel{border-color:#b91c1c59}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--spacing-sm)}.metric-tile{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);display:flex;flex-direction:column;gap:2px}.metric-value{font-size:var(--font-size-lg);font-weight:700}.metric-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.abuse-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.abuse-bar-meta{display:flex;justify-content:space-between;gap:var(--spacing-sm);font-size:var(--font-size-sm);margin-bottom:4px}.abuse-bar-track{height:8px;background:var(--color-bg-tertiary);border-radius:999px;overflow:hidden}.abuse-bar-fill{height:100%;background:#d97706;border-radius:999px}.jobs-list{display:flex;flex-direction:column;gap:10px}.job-row{display:flex;justify-content:space-between;gap:var(--spacing-md);font-size:var(--font-size-sm);padding-bottom:8px;border-bottom:1px solid var(--color-border)}.job-row:last-child{border-bottom:none;padding-bottom:0}.activity-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto}.activity-feed li{display:grid;grid-template-columns:88px 1fr auto;gap:var(--spacing-sm);align-items:center;font-size:var(--font-size-sm);padding:8px 0;border-bottom:1px solid var(--color-border)}.activity-kind{display:inline-flex;justify-content:center;padding:2px 8px;border-radius:999px;background:var(--color-bg-tertiary);font-size:11px;font-weight:600}.kind-abuse{background:#fef3c7;color:#92400e}.kind-admin_audit{background:#e0e7ff;color:#3730a3}.kind-user_signup{background:#dcfce7;color:#166534}.activity-time{color:var(--color-text-muted);white-space:nowrap}.text-danger{color:#b91c1c}.text-ok{color:#15803d}.btn-link{background:transparent;border:none;color:var(--color-primary);padding:0;box-shadow:none}.btn-link:hover{background:transparent;text-decoration:none;color:var(--color-primary-hover)}.confirm-box{margin-top:var(--spacing-md);padding:var(--spacing-md);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}@media (max-width: 960px){.monitor-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-feed li{grid-template-columns:1fr}}.public-market-shell{min-height:100vh;width:100%;background:var(--color-bg);display:flex;flex-direction:column}.public-market-shell .app-footer{margin-top:auto}.public-market-main{width:100%;max-width:none;margin:0;padding:20px 24px 40px;box-sizing:border-box}.public-market-main .page-container{width:100%;max-width:none;margin:0}.public-market-page-header{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:start}.public-market-page-header .text-muted{grid-column:1 / -1}.public-market-brand-row{align-items:center;gap:12px}.public-market-brand-link{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.public-market-brand-link .krokurok-logo__lockup{height:36px;max-width:min(180px,100%)}.public-market-brand-row h1{margin:0;font-size:1.5rem;letter-spacing:-.02em}.public-market-page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.public-market-page-actions .btn{display:inline-flex;align-items:center;gap:6px}.public-market-logo{display:inline-flex;line-height:0}.public-market-logo svg{display:block}@media (max-width: 640px){.public-market-main{padding:14px 14px 32px}.public-market-page-header{grid-template-columns:1fr}}.page-container{max-width:none;margin:0;padding:0;width:100%}.icon-chip{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--border-default);background:var(--color-white);color:var(--color-ink);flex-shrink:0}.icon-chip .nav-icon,.icon-chip svg{width:18px;height:18px}.icon-chip.sm{width:28px;height:28px;border-radius:8px}.icon-chip.sm .nav-icon,.icon-chip.sm svg{width:14px;height:14px}.icon-chip.lg{width:48px;height:48px;border-radius:14px}.icon-chip.lg .nav-icon,.icon-chip.lg svg{width:24px;height:24px}.icon-chip.success,.icon-chip.warning,.icon-chip.danger,.icon-chip.coin{background:var(--color-ink-06);color:var(--color-ink);border-color:var(--color-ink-12)}.icon-chip.muted{background:var(--color-white);color:var(--text-muted);border-color:var(--border-default)}.page-title-row{display:inline-flex;align-items:flex-start;gap:12px;min-width:0;flex:1 1 auto}.page-title-row>.icon-chip{margin-top:2px}.page-title-row h1{margin:0;font-size:var(--font-size-2xl);line-height:1.2;letter-spacing:-.02em}.page-title-row>div{min-width:0;display:flex;flex-direction:column;gap:4px}.btn .nav-icon,.btn svg.nav-icon{width:16px;height:16px;flex-shrink:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-lg)}.page-header:has(>.page-back-btn){justify-content:flex-start;align-items:center;gap:20px}.page-header:has(>.page-back-btn)>.page-title,.page-header:has(>.page-back-btn)>h1{flex:1;min-width:0;text-align:center;padding-right:58px}.page-header h1{margin:0;font-size:var(--font-size-2xl);line-height:1.2;letter-spacing:-.02em}.page-header>.btn,.page-header>.card-actions,.page-header>.page-actions{flex-shrink:0;margin-left:auto;align-self:center}.page-header>.page-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}.page-header .subtitle,.page-title-row .subtitle,.page-subtitle{color:var(--color-text-muted);margin:0;font-size:var(--font-size-sm);line-height:1.4;max-width:52ch}.form-card{max-width:600px;background-color:#fffdf9d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:22px 24px;box-shadow:var(--shadow-card)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--color-text)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-base)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary)}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}.market-profile-page{display:flex;flex-direction:column;gap:20px}.market-profile-head{margin-bottom:0;align-items:center;gap:12px}.market-profile-head-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.market-profile-tabs{display:flex;gap:4px;flex-wrap:wrap}.market-profile-tab{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--color-text-muted);font:inherit;cursor:pointer;text-align:left;transition:color .15s ease,background .15s ease}.market-profile-tab:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg)}.market-profile-tab.is-active{color:var(--color-ink);background:var(--highlight-active-bg)}.market-profile-tab-title{font-size:13px;font-weight:550;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-profile-tab-dot{width:6px;height:6px;border-radius:50%;background:var(--color-ink);flex-shrink:0}.market-form-footer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.market-profile-head h1{font-size:var(--font-size-2xl);letter-spacing:-.02em;margin:0}.market-side-status{font-size:12px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.market-check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.market-check-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0}.market-check-row+.market-check-row{border-top:1px solid color-mix(in srgb,var(--color-border) 55%,transparent)}.market-check-mark{flex-shrink:0;width:18px;height:18px;margin-top:2px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);color:transparent}.market-check-row.is-done .market-check-mark{background:var(--color-ink);border-color:var(--color-ink);color:#fff}.market-check-row.is-pending .market-check-mark{border-color:color-mix(in srgb,var(--color-ink) 35%,var(--color-border));background:color-mix(in srgb,var(--color-ink) 8%,transparent)}.market-check-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.market-check-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.market-check-title{font-size:13px;font-weight:600;color:var(--color-ink)}.market-check-count{font-size:12px;font-weight:500;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.market-check-desc{font-size:12px;line-height:1.4;color:var(--color-text-muted)}.market-check-row .btn{align-self:flex-start;margin-top:4px}.market-profile-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);gap:20px;align-items:start}.market-profile-side{position:sticky;top:16px}.form-card.market-profile-form,.form-card.market-profile-status{max-width:none;width:100%;display:flex;flex-direction:column;gap:16px;padding:4px 0;border:none;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.market-profile-page .settings-section-head{margin:0;padding:0}.market-profile-page .settings-card-title{font-size:13px;font-weight:600;margin:0}.market-profile-page .chip-toggle{border-radius:8px;font-weight:500}.market-profile-page .chip-toggle.is-on{background:var(--color-ink);border-color:var(--color-ink)}.market-form-block{display:flex;flex-direction:column;gap:12px;padding-bottom:16px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 55%,transparent)}.market-form-block:last-of-type{border-bottom:none;padding-bottom:0}.market-form-label{margin:0;font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--color-ink)}.market-field-count{margin-left:auto;font-size:11px;font-weight:500;color:var(--color-text-muted)}.market-profile-page .form-group label{display:flex;align-items:baseline;gap:8px;margin:0;font-size:12px;font-weight:500;color:var(--color-text-muted)}.market-profile-page .form-group{margin:0;gap:6px;display:flex;flex-direction:column}.market-profile-page .form-group input,.market-profile-page .form-group textarea{padding:8px 10px;font-size:13.5px;border-radius:8px;min-height:36px}.market-profile-page .form-group textarea{min-height:110px;resize:vertical}.market-form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:4px}.market-duration-row{display:flex;align-items:center;gap:6px}.market-duration-row .chip-toggle{min-width:42px;justify-content:center}.market-duration-row input{flex:1;min-width:0}.market-profile-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.market-preview-mini{display:flex;flex-direction:column;gap:6px;padding:0 0 12px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 55%,transparent)}.market-preview-headline{margin:0;font-size:15px;font-weight:650;letter-spacing:-.01em;line-height:1.3;color:var(--color-ink)}.market-preview-meta{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:12px;color:var(--color-text-muted)}.market-preview-subjects{display:flex;flex-wrap:wrap;gap:6px}.market-preview-subjects span{font-size:12px;font-weight:500;padding:0;border-radius:0;background:transparent;color:var(--color-text-muted)}.market-preview-bio{margin:2px 0 0;font-size:12px;line-height:1.45;color:var(--color-text-muted)}.market-verify-upload{display:flex;flex-direction:column;gap:8px;align-items:stretch}.market-file-btn{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border-radius:8px;border:1px dashed var(--color-border);background:var(--color-bg);cursor:pointer;font-size:13px;font-weight:600;color:var(--color-text)}.market-file-btn input{display:none}.market-file-btn:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 4%,var(--color-bg))}.market-docs-list{display:grid;gap:4px}.market-doc-row{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted)}.market-profile-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.market-subject-dd{width:100%}.market-subject-dd-btn{width:100%;min-width:0;justify-content:space-between}.market-subject-dd-btn .library-dd-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;color:var(--color-ink);font-weight:500}.market-subject-dd .library-dd-menu{width:100%;min-width:0;max-height:200px;top:calc(100% + 4px);padding:2px;display:grid;grid-template-columns:1fr 1fr;gap:0;overflow-y:auto}.market-subject-dd .library-dd-item{display:flex;align-items:center;gap:5px;width:auto;min-width:0;padding:2px 6px;border-radius:4px;font-size:12.5px;line-height:1.2;font-weight:500}.market-subject-dd .library-dd-item.selected{font-weight:600}.market-subject-dd-check{display:inline-flex;flex-shrink:0}.market-subject-dd-check input{width:13px;height:13px;margin:0;pointer-events:none;accent-color:var(--color-ink)}@media (max-width: 640px){.market-subject-dd .library-dd-menu{grid-template-columns:1fr;max-height:180px}}.market-subject-statuses{margin:6px 0 0;font-size:12px;line-height:1.4;color:var(--color-text-muted)}.chip-toggle{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;transition:border-color .15s ease,background .15s ease,color .15s ease}.chip-toggle:hover:not(.is-on){color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.chip-toggle.is-on{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (max-width: 960px){.market-profile-layout{grid-template-columns:1fr}.market-profile-side{position:static}.market-profile-split{grid-template-columns:1fr}}@media (max-width: 900px){.market-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.market-profile-metrics{grid-template-columns:1fr}.market-duration-row{flex-wrap:wrap}}.wallet-top-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);align-items:stretch}.form-card.wallet-form,.form-card.wallet-balance-card{max-width:none;min-width:0;margin-bottom:0;display:flex;flex-direction:column;gap:var(--spacing-md);height:100%}.wallet-balance-card{justify-content:center}.wallet-balance-value{font-size:2rem;font-weight:700;line-height:1.2;color:var(--color-text)}.wallet-period-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-top:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-bg-tertiary)}.wallet-period-stat{display:flex;flex-direction:column;gap:.2rem}.wallet-period-stat .settings-hint{margin:0}.wallet-period-stat strong{font-size:1.05rem;font-weight:600;color:var(--color-text)}.wallet-form .form-group{margin-bottom:0}.wallet-form .form-actions{margin-top:0}.wallet-inline-form{display:flex;align-items:flex-end;gap:var(--spacing-md);flex-wrap:wrap}.wallet-inline-form .form-group{flex:1 1 180px;max-width:240px;margin-bottom:0}.wallet-payout-fields{max-width:none}.wallet-payout-requests{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-bg-tertiary)}.wallet-payout-request-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-bg-tertiary);flex-wrap:wrap;gap:var(--spacing-sm)}@media (max-width: 900px){.wallet-top-row{grid-template-columns:1fr}}@media (max-width: 640px){.wallet-inline-form .form-group{max-width:none}}.type-selector{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-sm)}.type-option{padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;transition:all .2s ease;text-align:center}.type-option:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.type-option.selected{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.assignments-grid{display:grid;grid-template-columns:1fr;gap:10px;align-items:stretch;width:100%}.assignments-grid-compact{gap:10px}.assignment-card{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 6%,transparent),transparent 42%),var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:14px;padding:12px 14px;box-shadow:0 1px #0f172a08;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.assignment-card-compact{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 14px;padding:12px 14px}.group-card-clickable{cursor:pointer}.group-card-clickable:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary) 55%,transparent);outline-offset:2px}.assignment-card:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));box-shadow:0 8px 22px #0f172a12;transform:translateY(-1px)}.assignment-lead{flex-shrink:0;display:inline-flex;text-decoration:none;border-radius:12px;transition:transform .15s ease}button.assignment-lead{background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit}.assignment-lead:hover{transform:scale(1.04)}.assignment-lead .icon-chip{width:44px;height:44px;border-radius:12px}.assignment-lead .icon-chip .nav-icon,.assignment-lead .icon-chip svg{width:22px;height:22px}.assignment-lead .user-avatar,.assignment-lead .assignment-avatar{width:44px;height:44px;border-radius:12px;font-size:1rem;overflow:hidden;background:color-mix(in srgb,var(--color-ink) 12%,var(--color-bg));color:var(--color-ink)}.assignment-lead .user-avatar:has(.user-avatar-img),.assignment-lead .assignment-avatar:has(.user-avatar-img){background:transparent}.assignment-lead .user-avatar .user-avatar-img,.assignment-lead .assignment-avatar .user-avatar-img{border-radius:12px;object-fit:cover}.assignment-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px}.assignment-title-row{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;min-width:0}.assignment-header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:0;min-width:0}.assignment-type{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--color-text-muted);min-width:0}.assignment-type .icon-chip{flex-shrink:0}.assignment-badges{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}.assignment-due{font-size:var(--font-size-sm);color:var(--color-warning)}.assignment-title{margin:0;font-size:16px;font-weight:700;line-height:1.25;letter-spacing:-.01em;color:var(--color-text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}button.assignment-title{background:none;border:none;padding:0;cursor:pointer;text-align:left;font:inherit;font-weight:700;color:inherit}button.assignment-title:hover,a.assignment-title:hover{color:var(--color-primary)}.assignment-card-compact .assignment-title{font-size:16px}.assignment-content{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}.assignment-desc{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.assignment-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;font-size:12.5px;color:var(--color-text-muted);line-height:1.35}.assignment-meta>span{display:inline-flex;align-items:center}.assignment-meta>span:not(:last-child):after{content:"";width:3px;height:3px;margin:0 8px;border-radius:50%;background:currentColor;opacity:.45}.assignment-footer{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding-top:10px;margin-top:8px;border-top:1px solid var(--color-border);flex-shrink:0;min-width:0;width:100%}.assignment-date{font-size:12px;color:var(--color-text-muted)}.assignment-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;flex:1 1 100%;width:100%;max-width:100%;min-width:0;margin:0;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--color-border) 85%,transparent)}.assignment-card-compact .assignment-actions{max-width:100%}.assignment-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:1 1 0;min-width:0;min-height:36px;height:36px;padding:0 10px;font-size:12.5px;font-weight:600;line-height:1.2;border-radius:10px;white-space:nowrap}.assignment-actions .btn>span{overflow:visible;text-overflow:clip}.assignment-actions .btn-primary{flex:.95 1 0}.assignment-actions .assignment-action-library{flex:1.55 1 auto;min-width:max-content;padding-inline:12px}.assignment-actions .btn-icon{width:34px;height:34px;padding:0;flex-shrink:0}.assignment-actions .btn .nav-icon{width:15px;height:15px;flex-shrink:0}.assignment-actions .lesson-delete-btn{color:var(--color-error)}.assignment-actions .lesson-delete-btn:hover{background:#e5484d1a;border-color:#e5484d59}.lesson-preview-page{max-width:960px}.lesson-preview-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary, var(--color-bg))}.lesson-preview-toolbar-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.lesson-preview-reveal{display:inline-flex;flex-wrap:wrap;gap:8px;margin-left:auto}.lesson-preview-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.lesson-preview-tab{display:flex;align-items:flex-start;gap:8px;flex:0 0 auto;width:168px;min-height:72px;padding:10px;text-align:left;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text);cursor:pointer;scroll-snap-align:start;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.lesson-preview-tab:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.lesson-preview-tab.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);box-shadow:none}.lesson-preview-tab.has-answer{border-color:#22a06b73}.lesson-preview-tab.active.has-answer{box-shadow:0 0 0 2px #22a06b38}.lesson-preview-tab-num{flex-shrink:0;width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--color-bg-secondary, #f3f4f6);color:var(--color-text-secondary)}.lesson-preview-tab.active .lesson-preview-tab-num{background:var(--color-primary, #3b82f6);color:#fff}.lesson-preview-tab-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;opacity:.75}.lesson-preview-tab-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.lesson-preview-tab-title{font-size:13px;font-weight:650;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.lesson-preview-tab-sub{font-size:11.5px;color:var(--color-text-secondary);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.lesson-preview-stage{margin-top:8px}.lesson-preview-answer-hidden{margin-top:12px;padding:14px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);text-align:center}.lesson-preview-answer-hl{outline:2px solid rgba(34,160,107,.45);outline-offset:2px;border-radius:var(--radius-sm)}.lesson-preview-opt-correct{background:#22a06b24!important;border-color:#22a06b8c!important;font-weight:600}@media (max-width: 720px){.lesson-preview-reveal{margin-left:0;width:100%}.lesson-preview-tab{width:148px}}.teacher-reveal-bar{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.teacher-reveal-bar .btn{display:inline-flex;align-items:center;gap:6px}.teacher-answer-key{margin-top:14px;padding:12px 14px;border:1px solid rgba(34,160,107,.35);border-radius:var(--radius-md);background:#22a06b0f}.teacher-answer-key-title{font-size:13px;font-weight:700;margin-bottom:8px;color:var(--color-text)}.teacher-answer-key-list{display:flex;flex-direction:column;gap:6px}.teacher-answer-key-item{padding:8px 10px;background:var(--color-bg);font-size:13.5px;line-height:1.4}.teacher-answer-key-sep{margin:0 6px;color:var(--color-text-secondary)}.teacher-preview-player .overview-progress{margin-bottom:10px}.teacher-inline-answer{margin-top:10px}.page-header-compact{margin-bottom:14px;gap:10px}.page-header-compact h1{margin:0;font-size:var(--font-size-2xl);letter-spacing:-.02em}.review-page-header{align-items:flex-start}.review-page-header-main{display:flex;flex-direction:column;gap:6px;min-width:0}.review-page-header-main .page-back-btn{margin-bottom:4px}.review-page-header-main .page-title-row{margin-top:4px}.ia-open-review-card .ia-open-review-panel{margin-top:14px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-tertiary) 65%,var(--color-bg))}.ia-open-review-panel .ia-grade-row{margin-top:4px}@media (max-width: 1100px){.assignment-card-compact .assignment-actions{max-width:100%}}@media (max-width: 820px){.assignment-card-compact{flex-wrap:wrap;align-items:flex-start}.assignment-lead{order:0}.assignment-main{flex:1 1 calc(100% - 58px)}.assignment-actions{width:100%;max-width:100%;min-width:0}.assignment-actions .btn{flex:1 1 calc(50% - 8px);min-width:calc(50% - 8px)}.assignment-actions .assignment-action-library{flex:1 1 100%;min-width:100%}.assignment-title{white-space:normal}}.status-badge{font-size:11px;padding:1px 7px;border-radius:var(--radius-sm);font-weight:600;line-height:1.4}.status-published{background-color:#22a06b26;color:var(--color-success)}.status-draft{background-color:#8b949e26;color:var(--color-text-muted)}.assignments-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.assignment-item{display:flex;align-items:center;gap:14px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 16px;transition:border-color .2s ease;min-width:0}.assignment-item:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.assignment-icon{font-size:32px;flex-shrink:0}.assignment-info{flex:1}.assignment-info h3{margin-bottom:var(--spacing-xs)}.assignment-info .description{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.assignment-info .meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.assignment-status,.assignment-action{flex-shrink:0}.filter-bar{display:flex;gap:8px;margin-bottom:var(--spacing-md);flex-wrap:wrap}.filter-btn{padding:7px 12px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;transition:all .2s ease}.filter-btn:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.filter-btn.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);font-weight:600}.empty-state{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.empty-state:has(.empty-illustration){width:100%;max-width:none;margin-inline:0;aspect-ratio:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:36px 32px}.empty-state .empty-icon{display:flex;justify-content:center;margin:0 auto var(--spacing-md);width:auto;height:auto;background:transparent;border-radius:0;color:inherit}.empty-state:has(.empty-illustration) .empty-icon{flex:0 0 auto;width:250px;max-width:min(250px,70vw);aspect-ratio:1 / 1;align-items:center;margin-bottom:12px}.empty-state--mascot-fit:has(.empty-illustration) .empty-icon{width:210px;max-width:min(210px,55vw)}.empty-state .empty-icon .icon-chip{width:56px;height:56px;border-radius:16px}.empty-state .empty-icon .icon-chip .nav-icon,.empty-state .empty-icon .icon-chip svg{width:26px;height:26px}.empty-state .empty-icon .empty-illustration{display:block;width:min(200px,55vw);height:auto;margin:0 auto 4px;object-fit:contain;color:var(--color-ink)}.empty-state:has(.empty-illustration) .empty-icon .empty-illustration{width:100%;height:100%;max-width:none;margin:0;object-fit:contain}.empty-state h3{margin:0 0 var(--spacing-sm);color:var(--color-text)}.empty-state p{margin:0 auto var(--spacing-lg);max-width:36ch;line-height:1.45}.card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:var(--spacing-md);box-shadow:var(--shadow-sm)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.card-header h3{margin:0}.card-actions{display:flex;gap:var(--spacing-sm)}.student-list{max-height:400px;overflow-y:auto}.student-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color .2s ease}.student-item:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.student-item:last-child{border-bottom:none}.student-item input[type=checkbox]{width:20px;height:20px;cursor:pointer}.student-email{flex:1;display:inline-flex;align-items:center;gap:8px}.student-email>svg{width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.submissions-table{overflow-x:auto}.submissions-table table{width:100%;border-collapse:collapse;background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.submissions-table th,.submissions-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.submissions-table th{background-color:var(--color-bg-tertiary);font-weight:600;color:var(--color-text-muted);font-size:var(--font-size-sm);text-transform:uppercase}.submissions-table tr:last-child td{border-bottom:none}.submissions-table .content-cell{max-width:200px}.submissions-table .content-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:var(--font-size-sm)}.submissions-table .no-content{color:var(--color-text-muted);font-style:italic}.graded-label{color:var(--color-success);font-weight:500}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#34352f6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background-color:var(--card-bg, var(--color-bg-secondary));border:1px solid var(--border-default);border-radius:var(--radius-xl, 20px);padding:var(--spacing-xl);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-card)}.modal h2{margin-bottom:var(--spacing-lg);text-align:center}.modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:32px;height:32px;border:none;background:transparent;color:var(--color-text-muted);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s ease}.modal-close:hover{color:var(--color-text);background-color:var(--color-bg-tertiary)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);position:relative}.modal-header h3{margin:0;font-size:var(--font-size-xl);flex:1;padding-right:var(--spacing-md)}.modal-header .modal-close{position:static;margin-left:auto;flex-shrink:0}.modal-body{margin-bottom:var(--spacing-xl);line-height:1.6}.modal-body p{margin:0;color:var(--color-text)}.modal-footer{display:flex;gap:var(--spacing-md);justify-content:flex-end}.share-link-modal{max-width:560px}.share-link-row{display:flex;gap:8px;margin-top:14px;align-items:stretch}.share-link-input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--color-border, #d0d7de);border-radius:8px;font-size:.9rem;background:var(--color-bg-tertiary, #f6f8fa);color:var(--color-text, #0f172a)}.share-link-hint{margin-top:10px;font-size:.875rem}.ia-player--guest-gate{display:flex;align-items:center;justify-content:center;width:100%;max-width:none;min-height:calc(100vh - 140px);margin:0 auto}.guest-result-gate{width:100%;max-width:560px;margin:0 auto;text-align:center;padding:32px 28px;box-sizing:border-box}.guest-result-gate .ia-result-label{font-size:1.35rem;font-weight:700;margin-bottom:10px}.guest-result-gate-text{margin:0 auto 18px;max-width:420px;color:var(--color-text-muted, #64748b);line-height:1.45}.guest-result-gate .ia-result-actions{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:10px}.guest-result-gate .ia-result-actions .btn{white-space:nowrap;flex-shrink:0}.import-modal{max-width:600px}.import-options{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.import-label{flex:1;color:var(--color-text-muted);font-size:var(--font-size-sm)}.import-options .form-select{width:200px}.import-textarea{width:100%;min-height:200px;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical}.import-textarea::placeholder{color:var(--color-text-muted)}.import-textarea:focus{outline:none;border-color:var(--color-primary)}.import-modal .form-actions{justify-content:center}.import-url-field{display:flex;flex-direction:column;gap:6px;width:100%;margin:0 0 4px}.import-url-field__hint{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.import-url-field__input{display:block;width:100%;box-sizing:border-box;min-height:48px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-mono, ui-monospace, monospace);word-break:break-all}.import-url-field__input::placeholder{color:var(--color-text-muted)}.import-url-field__input:focus{outline:none;border-color:var(--color-primary)}.score-selector{display:flex;gap:var(--spacing-sm)}.score-btn{width:48px;height:48px;border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-tertiary);color:var(--color-text);font-size:var(--font-size-lg);font-weight:600;cursor:pointer;transition:all .2s ease}.score-btn:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.score-btn.selected{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.chats-list{display:flex;flex-direction:column}.chat-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);text-decoration:none;color:var(--color-text);transition:background-color .2s ease}.chat-item:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg)}.chat-avatar{width:48px;height:48px;background-color:var(--color-bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);flex-shrink:0}.chat-avatar svg{width:24px;height:24px}.chat-info{flex:1;min-width:0}.chat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.chat-name{font-weight:500}.chat-time{font-size:var(--font-size-sm);color:var(--color-text-muted)}.chat-preview{color:var(--color-text-muted);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge{background-color:var(--color-primary);color:#fff;font-size:var(--font-size-sm);font-weight:600;padding:2px 8px;border-radius:10px;flex-shrink:0}.chat-room{display:flex;flex-direction:column;height:calc(100dvh - 56px - var(--shell-pad-y, 16px));max-height:calc(100dvh - 56px - var(--shell-pad-y, 16px));min-height:0;overflow:hidden;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.chat-room .chat-header{position:relative;top:auto;z-index:2;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:12px 16px;background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.chat-room .chat-title{flex:1;min-width:0}.chat-room .chat-title h2{margin:0;font-size:var(--font-size-lg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-room .chat-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0;flex-wrap:wrap}.chat-search-toggle{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.chat-search-toggle.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.chat-search-bar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.chat-search-bar input[type=search]{flex:1;min-width:0;height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-sm)}.chat-search-bar input[type=search]:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 45%,transparent);outline-offset:1px}.chat-search-count{flex-shrink:0;min-width:3.5ch;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.app-main:has(.chat-room){padding-bottom:0}@media (max-width: 900px){.chat-room{height:calc(100dvh - 56px - 64px - var(--shell-pad-y, 16px));max-height:calc(100dvh - 56px - 64px - var(--shell-pad-y, 16px));border-radius:0;border-left:0;border-right:0}}.messages-container{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--color-bg-tertiary) 55%,transparent),var(--color-bg) 48px)}.no-messages{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.message{max-width:min(70%,520px);padding:10px 12px;border-radius:14px;position:relative;word-break:break-word}.message.own{align-self:flex-end;background-color:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.message.other{align-self:flex-start;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-bottom-left-radius:4px}.message--search-hit{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 35%,transparent)}.message--search-active{box-shadow:0 0 0 2px var(--color-primary)}.chat-search-mark{background:#ffe08a;color:inherit;padding:0 2px;border-radius:3px}.message.own .chat-search-mark{background:#ffffff59;color:inherit}.message.system{align-self:stretch;width:100%;max-width:100%;box-sizing:border-box;padding:6px 12px;background-color:color-mix(in srgb,var(--color-success, #16a34a) 12%,var(--color-bg-tertiary));border:1px solid color-mix(in srgb,var(--color-success, #16a34a) 35%,var(--color-border));color:var(--color-text);text-align:center;font-size:var(--font-size-sm);line-height:1.3;display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;border-radius:var(--radius-md)}.message.system .message-content{margin:0}.message.system .message-time{margin:0;opacity:.75;font-size:.85em}.message.system.system-clickable{cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.message.system.system-clickable:hover{background-color:color-mix(in srgb,var(--color-success, #16a34a) 22%,var(--color-bg-tertiary));border-color:color-mix(in srgb,var(--color-success, #16a34a) 55%,var(--color-border))}.message.system.system-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.message-content{word-wrap:break-word}.message-attachment{display:inline-flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:#00000026;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:inherit;font-size:.85em;cursor:pointer}.message-attachment:hover{background-color:#00000040}.message-attachment svg{width:14px;height:14px}.message-time{font-size:var(--font-size-sm);opacity:.7;margin-top:var(--spacing-xs);text-align:right}.chat-input{display:flex;gap:var(--spacing-sm);flex-shrink:0;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border)}.chat-input input[type=text]{flex:1;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.chat-input .attach-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer}.chat-input .attach-btn svg,.chat-input .send-btn svg{width:18px;height:18px}.chat-input .send-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-lg)}.call-room{display:flex;flex-direction:column;height:100vh;background-color:var(--color-bg);position:relative}.call-minimize-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.call-minimized-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:radial-gradient(ellipse at top,color-mix(in srgb,var(--color-primary) 12%,transparent),transparent 55%),var(--color-bg)}.call-minimized-shell-card{text-align:center;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.call-minimized-shell-card h2{margin:0;font-size:1.35rem}.call-minimized-shell-card p{margin:0 0 var(--spacing-sm)}.call-room.is-minimized{position:fixed;right:16px;bottom:72px;width:min(320px,calc(100vw - 24px));height:auto;max-height:min(280px,40vh);z-index:1200;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);box-shadow:0 12px 40px #0f172a47;background:var(--color-bg)}.call-room.is-minimized .call-header{padding:8px 10px}.call-room.is-minimized .call-info{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-room.is-minimized .call-minimize-label,.call-room.is-minimized .call-error,.call-room.is-minimized .screen-sharing-indicator,.call-room.is-minimized .recording-indicator{display:none}.call-room.is-minimized .call-media-stage{flex:none;height:140px}.call-room.is-minimized .video-grid,.call-room.is-minimized .video-layout-screen{padding:6px;gap:4px;height:100%}.call-room.is-minimized .video-container{min-height:0;aspect-ratio:16 / 9}.call-room.is-minimized .video-label,.call-room.is-minimized .video-placeholder p{font-size:11px}.call-room.is-minimized .call-controls{padding:6px;gap:4px;flex-wrap:wrap;justify-content:center}.call-room.is-minimized .control-btn{width:36px;height:36px}.call-room.is-minimized .wb-panel{display:none}.video-grid.group{grid-template-columns:repeat(2,1fr)}.video-grid.group.cols-3{grid-template-columns:repeat(3,1fr)}.video-grid.group.cols-4{grid-template-columns:repeat(2,1fr)}@media (max-width: 800px){.video-grid.group,.video-grid.group.cols-3,.video-grid.group.cols-4{grid-template-columns:1fr}.call-room.is-minimized{bottom:64px;right:10px}}.active-call-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:10px 16px;background:color-mix(in srgb,var(--color-primary) 14%,var(--color-bg-secondary));border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:20}.call-audio-sink{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.call-dock{position:fixed;right:16px;bottom:72px;z-index:5100;width:min(280px,calc(100vw - 24px));display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg);box-shadow:0 14px 40px #0f172a47}.call-dock-videos{display:grid;grid-template-columns:1fr 1fr;gap:6px;cursor:pointer}.call-dock-tile{position:relative;aspect-ratio:16 / 10;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-secondary)}.call-dock-tile video{width:100%;height:100%;object-fit:cover}.call-dock-tile video.hidden{display:none}.call-dock-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted, #888)}.call-dock-tile-label{position:absolute;left:6px;bottom:4px;font-size:10px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.65)}.call-dock-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:600}.call-dock-rec{color:var(--color-error);font-family:var(--font-mono);animation:pulse 1.5s infinite}.call-dock-controls{display:flex;justify-content:center;gap:6px}.call-dock-controls .control-btn{width:40px;height:40px}@media (max-width: 800px){.call-dock{bottom:64px;right:10px}}.chat-toast-stack{position:fixed;right:16px;bottom:16px;z-index:5250;display:flex;flex-direction:column-reverse;gap:8px;width:min(340px,calc(100vw - 24px));pointer-events:none}.chat-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:14px;background:color-mix(in srgb,var(--color-bg) 92%,var(--color-bg-secondary));box-shadow:0 12px 36px #0f172a38;text-align:left;cursor:pointer;color:inherit;font:inherit;animation:chat-toast-in .28s ease-out}.chat-toast:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.chat-toast-avatar{flex-shrink:0;width:42px;height:42px;border-radius:50%;overflow:hidden}.chat-toast-avatar .user-avatar,.chat-toast-avatar img{width:42px;height:42px;border-radius:50%;object-fit:cover}.chat-toast-avatar-fallback{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--color-bg-secondary);color:var(--color-text-muted)}.chat-toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-toast-title{font-size:13px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-toast-text{font-size:12.5px;line-height:1.35;color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-toast-close{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-text-muted);font-size:16px;line-height:1}.chat-toast-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}@keyframes chat-toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 800px){.chat-toast-stack{right:10px;bottom:64px}}.active-call-float{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:5200;display:flex;align-items:center;gap:8px;width:min(520px,calc(100vw - 20px));padding:8px 10px;border-radius:999px;border:1px solid color-mix(in srgb,#16a34a 45%,var(--color-border));background:color-mix(in srgb,var(--color-bg) 92%,#16a34a);box-shadow:0 12px 40px #0f172a47}.active-call-float-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:2px 4px}.active-call-float-dot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 #16a34a8c;animation:active-call-dot 1.4s ease-out infinite;flex-shrink:0}.active-call-float-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.active-call-float-text strong{font-size:12px;font-weight:750}.active-call-float-text span{font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.active-call-float-btn{flex-shrink:0;border:none;border-radius:999px;padding:8px 12px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;color:#fff}.active-call-float-btn.join{background:#16a34a}.active-call-float-btn.end{background:#dc2626}.active-call-float-btn:disabled{opacity:.6;cursor:wait}@keyframes active-call-dot{0%{box-shadow:0 0 #16a34a8c}70%{box-shadow:0 0 0 10px #16a34a00}to{box-shadow:0 0 #16a34a00}}.incoming-call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5300;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse at 50% 30%,rgba(34,197,94,.22),transparent 55%),#080c14d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.incoming-call-pulse{position:absolute;width:min(420px,70vw);height:min(420px,70vw);border-radius:50%;background:#22c55e1f;animation:incoming-call-pulse 1.8s ease-out infinite;pointer-events:none}.incoming-call-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(360px,100%);padding:28px 22px 22px;border-radius:24px;background:color-mix(in srgb,var(--color-bg) 94%,#fff);border:1px solid var(--color-border);box-shadow:0 24px 64px #00000059;text-align:center}.incoming-call-avatar{width:96px;height:96px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);margin-bottom:8px;box-shadow:0 0 0 4px #22c55e40}.incoming-call-avatar .user-avatar,.incoming-call-avatar img{width:96px;height:96px;object-fit:cover}.incoming-call-eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.incoming-call-name{margin:0;font-size:1.45rem;font-weight:750;line-height:1.2}.incoming-call-type{margin:0 0 12px;font-size:14px;color:var(--color-text-muted)}.incoming-call-actions{display:flex;gap:10px;width:100%;margin-top:8px}.incoming-call-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border:none;border-radius:16px;font:inherit;font-size:12px;font-weight:650;cursor:pointer;color:#fff}.incoming-call-btn:disabled{opacity:.6;cursor:wait}.incoming-call-btn .nav-icon,.incoming-call-btn svg{width:24px;height:24px}.incoming-call-btn.hide{background:color-mix(in srgb,var(--color-bg-secondary) 80%,#64748b);color:var(--color-text);border:1px solid var(--color-border)}.incoming-call-btn.hide:hover{background:var(--color-bg-secondary)}.incoming-call-btn.accept{background:#16a34a}.incoming-call-btn.accept:hover{background:#15803d}.incoming-call-btn.decline{background:#dc2626}.incoming-call-btn.decline:hover{background:#b91c1c}@keyframes incoming-call-pulse{0%{transform:scale(.72);opacity:.7}70%{transform:scale(1.15);opacity:0}to{transform:scale(1.15);opacity:0}}.call-room.with-moderation .call-room-main{display:flex;flex:1;min-height:0;gap:0}.call-room.with-whiteboard .call-room-main{flex:0 0 0;height:0;min-height:0;overflow:visible;position:relative;z-index:6}.call-room.with-whiteboard.with-moderation .call-room-main{flex:0 0 0;height:0;min-height:0}.call-room.with-whiteboard .call-moderation{position:absolute;top:8px;right:8px;bottom:auto;width:min(300px,calc(100vw - 24px));max-height:min(52vh,420px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 10px 32px #0f172a2e;z-index:8}.call-room.with-whiteboard .call-moderation.is-collapsed{width:auto;max-height:none}.call-room.with-whiteboard .wb-panel{flex:1 1 auto;min-height:0}.call-room.with-moderation .call-media-stage{flex:1;min-width:0}.call-moderation{width:300px;flex-shrink:0;border-left:1px solid var(--color-border);background:var(--color-bg-secondary);display:flex;flex-direction:column;max-height:100%}.call-moderation.is-collapsed{width:auto}.call-moderation-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:0;background:transparent;color:inherit;font-weight:600;cursor:pointer}.call-moderation-body{padding:0 12px 12px;overflow:auto;flex:1;min-height:0}.call-moderation-section{margin-bottom:14px}.call-moderation-section h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;opacity:.75}.call-moderation-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.call-moderation-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border)}.call-moderation-who{display:flex;flex-direction:column;min-width:0}.call-moderation-who strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-moderation-meta{font-size:11px;opacity:.7}.call-moderation-actions{display:flex;gap:4px;flex-shrink:0}.call-moderation-hint{margin:0;font-size:12px;opacity:.75;line-height:1.35}.call-moderation-check{display:flex;align-items:center;gap:8px;width:100%;cursor:pointer;font-size:13px}.call-moderation-error{margin-bottom:8px;padding:8px;border-radius:var(--radius-md);background:#e5484d1f;color:var(--color-error);font-size:12px}@media (max-width: 900px){.call-room.with-moderation .call-room-main{flex-direction:column}.call-moderation,.call-moderation.is-open{width:100%;border-left:0;border-top:1px solid var(--color-border);max-height:40vh}.call-room.with-whiteboard .call-moderation,.call-room.with-whiteboard .call-moderation.is-open{width:min(300px,calc(100vw - 24px));max-height:min(42vh,360px);border-top:0}}.active-call-banner-text{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0}.active-call-banner-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-room.loading-state{justify-content:center;align-items:center}.call-media-stage{flex:1;min-height:0;display:flex;flex-direction:column}.call-room.with-whiteboard .call-media-stage.is-pip{position:absolute;right:12px;bottom:88px;width:min(280px,36vw);height:auto;max-height:22vh;z-index:5;flex:none;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 28px #00000047;border:1px solid var(--color-border);background:var(--color-bg-secondary)}.call-room.with-whiteboard .call-media-stage.is-pip .video-grid,.call-room.with-whiteboard .call-media-stage.is-pip .video-layout-screen{padding:4px;gap:4px;height:100%}.call-room.with-whiteboard .call-media-stage.is-pip .video-container{min-height:72px;aspect-ratio:16 / 9}.call-room.with-whiteboard .call-media-stage.is-pip .video-label,.call-room.with-whiteboard .call-media-stage.is-pip .video-placeholder p{font-size:11px}.wb-panel{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--color-bg);z-index:2}.wb-panel-loading{align-items:center;justify-content:center}.wb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.wb-canvas-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);background:linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px);background-size:24px 24px;background-color:#e8eaef}.wb-canvas-wrap .whiteboard-canvas{width:min(100%,1280px);height:auto;max-height:100%;aspect-ratio:16 / 9;background:#fff;border-radius:var(--radius-md);box-shadow:0 4px 24px #0f172a1f;touch-action:none}.call-room .call-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.call-status{font-weight:500}.recording-indicator{color:var(--color-error);margin-left:var(--spacing-md);animation:pulse 1.5s infinite}.screen-sharing-indicator{color:var(--color-primary);margin-left:var(--spacing-md);font-family:var(--font-mono)}.call-error{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:#e5484d1a;color:var(--color-error)}.screen-share-container{width:100%;max-height:60vh;background-color:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:center}.screen-share-container .screen-video{width:100%;height:100%;max-height:60vh;object-fit:contain}.remote-screen-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-text-muted);font-size:48px}.remote-screen-placeholder p{font-size:var(--font-size-base);margin-top:var(--spacing-md)}.video-layout-screen{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:var(--spacing-md);padding:var(--spacing-lg);min-height:0;overflow:hidden}.screen-share-stage{min-width:0;min-height:0;display:flex}.screen-share-stage .video-container{flex:1;aspect-ratio:auto;height:100%;min-height:240px;background-color:#0b0d12}.screen-share-stage .video-container video.screen-fit,.video-container.is-screen video.screen-fit{object-fit:contain;background-color:#0b0d12}.video-pip-rail{display:flex;flex-direction:column;gap:var(--spacing-md);min-height:0}.video-pip-rail .video-container{aspect-ratio:16 / 9;width:100%;height:auto;min-height:112px;max-height:180px;flex:0 0 auto}@media (max-width: 800px){.video-layout-screen{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.video-pip-rail{flex-direction:row;justify-content:center}.video-pip-rail .video-container{width:42%;max-width:200px;max-height:120px}}.video-grid.with-screen{max-height:30vh}.video-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md);padding:var(--spacing-lg);overflow:auto;min-height:0}.video-grid.dual{grid-template-columns:1fr 1fr;grid-template-rows:1fr;align-content:stretch}@media (max-width: 800px){.video-grid.dual{grid-template-columns:1fr;grid-template-rows:1fr 1fr}}.video-container{position:relative;background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/9;min-height:0}.video-grid.dual .video-container{aspect-ratio:auto;height:100%;min-height:180px}.video-container video{width:100%;height:100%;object-fit:cover}.video-container video.camera-off{display:none}.video-container video.hidden{display:none}.video-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);background-color:var(--color-bg-tertiary);color:var(--color-text-muted)}.video-placeholder svg{width:48px;height:48px}.video-label{position:absolute;bottom:var(--spacing-md);left:var(--spacing-md);display:flex;align-items:center;gap:6px;padding:var(--spacing-xs) var(--spacing-sm);background-color:#0009;border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.video-label svg{width:15px;height:15px}.call-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border)}.control-btn{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;border:none;background-color:var(--color-bg-tertiary);color:var(--color-text);cursor:pointer;transition:all .2s ease}.control-btn svg{width:24px;height:24px}.control-btn.active,.control-btn.recording,.control-btn.leave{color:#fff}.control-btn:hover{background-color:var(--color-border)}.control-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.control-btn.active{background-color:var(--color-warning)}.control-btn.recording{background-color:var(--color-error);animation:pulse 1.5s infinite}.control-btn.leave{background-color:var(--color-error)}.control-btn.leave:hover{background-color:#c43b35}.whiteboard-page{display:flex;flex-direction:column;height:100vh;background-color:var(--color-bg)}.whiteboard-page.loading-state{justify-content:center;align-items:center}.whiteboard-toolbar{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.toolbar-divider{width:1px;height:24px;background-color:var(--color-border)}.tool-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-bg-tertiary);color:var(--color-text);cursor:pointer;transition:all .2s ease}.tool-btn svg{width:19px;height:19px}.tool-btn:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.tool-btn.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.whiteboard-toolbar input[type=color]{width:40px;height:40px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}.whiteboard-toolbar select{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.whiteboard-toolbar .zoom-indicator{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);white-space:nowrap}.whiteboard-error{padding:var(--spacing-md) var(--spacing-lg);background-color:#e5484d1a;color:var(--color-error)}.canvas-container{flex:1;display:flex;justify-content:center;align-items:center;overflow:auto;padding:var(--spacing-lg)}.whiteboard-canvas{background-color:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:crosshair}.history-list{display:flex;flex-direction:column;gap:10px}.history-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.history-info{flex:1;min-width:0}.history-info h4{margin:0 0 2px;font-size:var(--font-size-base);font-weight:600;overflow-wrap:anywhere}.history-date{font-size:var(--font-size-sm);color:var(--color-text-muted)}.history-status{display:flex;align-items:center;gap:10px;flex-shrink:0}.history-metrics{display:grid;grid-template-columns:repeat(3,minmax(72px,auto));gap:8px;flex-shrink:0}.history-metrics span{display:flex;flex-direction:column;padding:6px 10px;border-radius:9px;background:var(--color-bg-tertiary);color:var(--color-text-muted);font-size:11px;line-height:1.25;text-align:center;min-width:0}.history-metrics strong{color:var(--color-text);font-size:var(--font-size-base)}.history-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.history-badge.status-not-started{color:var(--color-text-muted);background:var(--color-bg-tertiary)}.history-badge.status-submitted{color:var(--color-warning);background:#f5a52424}.history-badge.status-checked{color:var(--color-success);background:#22a06b1f}.history-score{color:var(--color-primary);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:800;line-height:1}.history-comment{margin:6px 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.4}@media (max-width: 760px){.history-item{align-items:flex-start;flex-wrap:wrap;gap:12px}.history-metrics{width:100%;grid-template-columns:repeat(3,1fr);margin-left:0}.history-status{width:100%;margin-left:0;justify-content:flex-start;padding-left:50px}.history-metrics{padding-left:50px}}.assignment-details{margin-bottom:var(--spacing-lg)}.detail-row{display:flex;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.detail-row:last-child{border-bottom:none}.detail-row .label{font-weight:500;color:var(--color-text-muted);min-width:120px}.detail-row .value{flex:1}.submission-form h3{margin-bottom:var(--spacing-lg)}.voice-controls{display:flex;align-items:center;gap:var(--spacing-md)}.recording-status{color:var(--color-success);font-weight:500}.file-selected{margin-top:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.result-card{text-align:center;padding:var(--spacing-xl)}.result-card h2{margin-bottom:var(--spacing-xl)}.grade-display{display:flex;align-items:baseline;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.grade-score{font-size:72px;font-weight:700;color:#fff;width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center}.grade-label{font-size:var(--font-size-xl);color:var(--color-text-muted)}.pending-grade,.no-submission{padding:var(--spacing-xl);background-color:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg)}.pending-icon,.warning-icon{display:block;margin-bottom:var(--spacing-md)}.pending-icon svg,.warning-icon svg{width:48px;height:48px}.pending-icon{color:var(--color-warning)}.warning-icon{color:var(--color-error)}.grade-comment{text-align:left;background-color:var(--color-bg-tertiary);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-top:var(--spacing-lg)}.grade-comment h4{margin-bottom:var(--spacing-sm);color:var(--color-text-muted)}.submission-content{text-align:left;background-color:var(--color-bg-tertiary);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-top:var(--spacing-lg)}.submission-content h4{margin-bottom:var(--spacing-sm);color:var(--color-text-muted)}.grade-date{margin-top:var(--spacing-lg);color:var(--color-text-muted);font-size:var(--font-size-sm)}.students-select{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:300px;overflow-y:auto}.student-option{padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:all .2s ease}.student-option:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.no-students{color:var(--color-text-muted);text-align:center;padding:var(--spacing-lg)}.submitted-info h3{color:var(--color-success);margin-bottom:var(--spacing-md)}.submitted-content{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.submitted-content strong{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-muted)}.dashboard-card{cursor:pointer}.btn.btn-link{background:none;border:none;color:var(--color-primary);padding:0;cursor:pointer;font-size:var(--font-size-base)}.btn.btn-link:hover{text-decoration:none}.btn.btn-danger{background-color:var(--color-error);border-color:var(--color-error);color:#fff}.btn.btn-danger:hover{background-color:#c43b35}.btn.btn-success{background-color:var(--color-success);border-color:var(--color-success);color:#fff}.btn.btn-success:hover{background-color:#2f9e44}.table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.data-table th{font-weight:600;color:var(--color-text-muted);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr:hover{background-color:var(--color-bg-tertiary)}.data-table .link-button{background:none;border:none;padding:0;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-base);text-align:left}.data-table .link-button:hover{text-decoration:none}.modal.modal-large{max-width:600px;width:90vw}.group-assign-lesson-modal{max-width:720px}.group-assign-lesson-list{max-height:min(52vh,420px);overflow-y:auto;padding-right:2px;margin-bottom:var(--spacing-md)}.group-assign-lesson-card{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.group-assign-lesson-card:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.group-assign-lesson-card.is-selected{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);box-shadow:none}.group-assign-lesson-card .assignment-actions{display:none}.status-indicator{display:inline-block;font-size:var(--font-size-base)}.checkbox-item:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.checkbox-item input[type=checkbox]{accent-color:var(--color-ink);width:16px;height:16px;cursor:pointer}.lesson-constructor{display:flex;flex-direction:column;gap:12px}.lesson-header{display:flex;flex-direction:column;gap:12px;padding:12px 14px;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary) 5%,transparent),transparent 55%),var(--color-bg-secondary);border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);border-radius:12px}.lesson-header-main{display:flex;align-items:center;gap:8px;min-width:0;padding-bottom:12px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 70%,transparent)}.lesson-title-input{flex:0 1 360px;width:360px;min-width:200px;max-width:420px}.lesson-subject-select{width:180px;flex-shrink:0}.lesson-subject-select select{width:100%;height:36px;padding:0 10px;font-size:13px;background-color:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;cursor:pointer}.lesson-subject-select select:focus{outline:none;border-color:var(--color-primary)}.lesson-header .input-title{width:100%;height:36px;font-size:15px;font-weight:650;letter-spacing:-.01em;padding:0 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg)}.lesson-header .input-title:focus{outline:none;border-color:var(--color-primary)}.lesson-tabs{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;padding:3px;background:color-mix(in srgb,var(--color-bg-tertiary) 85%,var(--color-bg));border-radius:10px;width:100%}.tab-btn{flex:1 1 0;min-width:max-content;padding:6px 10px;border:none;background:transparent;border-radius:7px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--color-text-muted);transition:background-color .15s ease,color .15s ease;white-space:nowrap}.tab-btn:hover:not(.disabled):not(.active){color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.tab-btn.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border:1px solid var(--highlight-border);box-shadow:none;font-weight:600}.tab-btn.disabled{opacity:.45;cursor:not-allowed}.lesson-actions{display:flex;gap:6px;flex-shrink:0;margin-left:auto}.lesson-actions .btn{min-width:108px;height:36px;padding-inline:14px}@media (max-width: 760px){.lesson-header-main{flex-wrap:wrap}.lesson-title-input{flex:1 1 100%;width:100%;max-width:none}.lesson-subject-select{flex:1 1 auto;width:auto;min-width:140px}.lesson-actions{margin-left:auto}}.lesson-section{padding:var(--spacing-lg)}.section-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.section-header h3{margin:0}.section-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.flashcards-section{padding:14px 16px;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary) 4%,transparent),transparent 48%),var(--color-bg-secondary);border-radius:14px}.flashcards-section-head{margin-bottom:10px;align-items:flex-start;gap:10px}.flashcards-section .section-header h3{margin:0;font-size:16px;letter-spacing:-.01em}.flashcards-section .mode-hint{margin:4px 0 0;font-size:12.5px;line-height:1.4;max-width:none}.flashcards-summary{flex-shrink:0;font-size:12px;font-weight:700;color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;padding:4px 10px;line-height:1.2;align-self:center}.flashcards-section .section-actions{gap:6px;align-items:center}.flashcards-table{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:var(--color-bg)}.flashcards-header{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 72px;background-color:color-mix(in srgb,var(--color-bg-tertiary) 80%,var(--color-bg));font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.flashcards-header .flashcard-col{padding:8px 10px;border-right:1px solid var(--color-border);display:flex;align-items:center;gap:8px;min-width:0}.flashcards-header .flashcard-col:first-child{grid-column:2}.flashcards-header .flashcard-col-action{border-right:none}.flashcards-body{overflow:visible}.flashcard-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 72px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);align-items:stretch;transition:background-color .15s ease}.flashcard-row:hover{background:var(--highlight-hover-bg)}.flashcard-row.expanded{background:var(--highlight-active-bg)}.flashcard-row:last-child{border-bottom:none}.flashcard-number{display:flex;align-items:center;justify-content:center;padding:4px;color:var(--color-text-muted);font-size:11px;font-weight:600;border-right:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);background:color-mix(in srgb,var(--color-bg-tertiary) 45%,transparent)}.flashcard-row .flashcard-col{padding:4px 6px;border-right:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);display:flex;align-items:center;min-width:0}.flashcard-col-action{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px}.image-btn{width:30px;height:30px;border:1px solid var(--color-border);border-radius:8px;background-color:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.image-btn svg{width:15px;height:15px}.flashcard-delete-btn{width:30px;height:30px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s ease,background-color .15s ease,border-color .15s ease}.flashcard-delete-btn svg{width:14px;height:14px}.flashcard-delete-btn:hover:not(:disabled){color:var(--color-error);background:color-mix(in srgb,var(--color-error) 10%,transparent);border-color:color-mix(in srgb,var(--color-error) 35%,transparent)}.flashcard-delete-btn:disabled{opacity:.45;cursor:not-allowed}.image-btn.has-image{color:var(--color-success)}.image-btn:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.image-btn.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.image-btn.has-image{border-color:var(--color-success);background-color:#22a06b1a}.image-search-panel{grid-column:1 / -1;padding:10px 12px;background-color:var(--color-bg-tertiary);border-top:1px solid var(--color-border)}.image-search-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.search-query{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.search-query svg{width:14px;height:14px;flex-shrink:0}.searching{font-size:var(--font-size-sm);color:var(--color-primary)}.image-search-refresh{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:2px 10px;font-size:.75rem;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);border-radius:999px;cursor:pointer}.image-search-refresh svg{width:13px;height:13px}.image-search-refresh:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.image-search-refresh:disabled{opacity:.45;cursor:default}.image-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.image-result{aspect-ratio:4 / 3;min-height:88px;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid transparent;background:color-mix(in srgb,var(--color-border) 30%,var(--color-bg));transition:border-color .15s ease,transform .15s ease}.image-result:hover{border-color:var(--color-primary);transform:translateY(-1px)}.image-result img{width:100%;height:100%;object-fit:cover;display:block}@media (max-width: 900px){.image-results{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 640px){.image-results{grid-template-columns:repeat(2,minmax(0,1fr))}}.no-images{color:var(--color-text-muted);font-size:12.5px;text-align:center;padding:8px}.definition-wrapper{position:relative;width:100%;display:flex;align-items:center;gap:6px;min-width:0}.definition-wrapper .flashcard-input{flex:1;min-width:0}.card-image-preview{position:relative;flex-shrink:0;width:36px;height:28px;border-radius:6px;overflow:hidden;margin-top:0}.card-image-preview img{width:100%;height:100%;object-fit:cover}.remove-image-btn{position:absolute;top:1px;right:1px;width:14px;height:14px;border:none;border-radius:50%;background-color:#000000b3;color:#fff;font-size:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.card-image-preview:hover .remove-image-btn{opacity:1}.flashcard-input{width:100%;border:1px solid transparent;background-color:transparent;padding:6px 8px;font-size:13.5px;line-height:1.35;resize:none;overflow:hidden;font-family:inherit;color:var(--color-text);min-height:32px;max-height:88px;border-radius:8px;transition:border-color .15s ease,background-color .15s ease}.flashcard-input::placeholder{color:var(--color-text-muted);font-size:13px}.flashcard-input:focus{outline:none;border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-border));background-color:var(--color-bg)}.auto-translate-toggle{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.auto-translate-toggle input[type=checkbox]{cursor:pointer;accent-color:var(--color-primary);width:13px;height:13px}.auto-translate-toggle:hover{color:var(--color-text)}.flashcard-input.translating{opacity:.7}@media (max-width: 720px){.flashcards-header,.flashcard-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 68px}.flashcards-section-head{flex-direction:column;align-items:stretch}.flashcards-section .section-actions{justify-content:flex-start}.auto-translate-toggle{margin-left:0}}.translate-spinner{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;color:var(--color-text-muted);animation:pulse 1s infinite;pointer-events:none}.translate-spinner svg{width:15px;height:15px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ai-section{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 6%,transparent),transparent 55%),var(--color-bg-secondary)}.ai-header{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.ai-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;font-size:10px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--color-primary);flex-shrink:0}.ai-copy{min-width:0}.ai-header h3{margin:0;font-size:14px;line-height:1.2;letter-spacing:-.01em}.ai-header p{margin:2px 0 0;font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-section .btn{flex-shrink:0}.ai-lesson-section{flex-direction:column;align-items:stretch;gap:0;padding:0 0 6px;overflow:hidden}.ai-lesson-menu-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 18px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.ai-lesson-menu-btn:disabled{cursor:wait;opacity:.85}.ai-lesson-menu-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.ai-lesson-chevron{display:inline-flex;color:var(--color-text-secondary);flex-shrink:0;transform:rotate(90deg)}.ai-lesson-section.is-open .ai-lesson-chevron{transform:rotate(-90deg)}.ai-lesson-panel{display:flex;flex-direction:column;gap:14px;padding:0 14px 14px;border-top:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);animation:ai-lesson-panel-in .16s ease-out}@keyframes ai-lesson-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ai-lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-items:end;padding-top:12px}.ai-lesson-field{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:12px;font-weight:600;color:var(--color-text-secondary)}.ai-lesson-field .input{font-weight:500;color:var(--color-text)}.ai-lesson-span-2{grid-column:1 / -1}.ai-lesson-source{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:10px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 70%,transparent)}.ai-lesson-source-modes{display:flex;flex-wrap:wrap;gap:14px}.ai-lesson-types{display:flex;flex-direction:column;gap:8px}.ai-lesson-types-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.ai-lesson-types-grid{display:flex;flex-wrap:wrap;gap:6px 8px}.ai-lesson-type-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg);font-size:12px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.ai-lesson-type-chip:has(input:disabled){opacity:.72;cursor:default}.ai-lesson-actions{display:flex;align-items:center;justify-content:flex-start}.ai-lesson-section .ile-ai-progress,.ai-lesson-section .alert{margin:0}.ai-lesson-section>.ai-usage-line{margin:8px 18px 10px;padding-left:0;padding-right:4px;font-size:12px;line-height:1.4}.ai-flash-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.ai-flash-count{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted);white-space:nowrap}.ai-flash-count input{width:56px;padding:4px 6px;text-align:center}.ai-lesson-section>.plan-limit-message{margin:8px 18px 14px;padding:10px 12px;border-radius:10px;box-shadow:none}.ile-ai-role{margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);vertical-align:middle}.ile-regen-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg-secondary));border:1px solid color-mix(in srgb,var(--color-primary) 18%,var(--color-border))}.ile-regen-type{max-width:220px;font-size:13px}@media (max-width: 820px){.ai-lesson-grid{grid-template-columns:1fr}.ai-lesson-span-2{grid-column:auto}.ai-lesson-actions .btn{width:100%}.ile-regen-type{max-width:none;flex:1}}.ai-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.ai-actions .turnstile-wrap{min-height:65px;min-width:150px;display:flex;align-items:center}.turnstile-box{display:flex;flex-direction:column;gap:6px;max-width:100%}.turnstile-wrap{line-height:0;min-height:65px;min-width:300px}.turnstile-wrap--compact{min-width:150px}.turnstile-wrap--flexible{width:100%;min-width:0}.turnstile-status{margin:0;font-size:12px}.turnstile-error{display:flex;flex-direction:column;gap:8px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#ef4444 12%,transparent);color:var(--color-text, #1f2937);font-size:12px;line-height:1.35;max-width:360px}.turnstile-error p{margin:0}.turnstile-field{min-height:70px}@media (max-width: 720px){.ai-section{flex-direction:column;align-items:stretch}.ai-actions{justify-content:stretch}.ai-actions .btn{width:100%}.turnstile-wrap{min-width:0;width:100%}}.assignment-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-md)}.assignment-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.assignment-label{flex:1;font-weight:500}.assignment-input{width:60px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;font-size:var(--font-size-base)}.assignment-input:focus{outline:none;border-color:var(--color-primary)}.assignments-summary{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.lesson-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--color-bg-secondary);border-radius:var(--radius-md)}.coming-soon{text-align:center;padding:var(--spacing-xl)}.coming-soon h3{margin:0 0 var(--spacing-sm) 0}.drafts-list{max-height:300px;overflow-y:auto;margin:var(--spacing-md) 0}.draft-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);cursor:pointer;transition:background-color .2s}.draft-item:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg)}.draft-title{font-weight:500}.draft-meta{font-size:var(--font-size-sm)}.flashcard-progress{text-align:center;margin-bottom:var(--spacing-lg)}.flashcard-progress span{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-muted)}.progress-bar{height:8px;background-color:var(--color-bg-tertiary);border-radius:var(--radius-sm);overflow:hidden}.progress-fill{height:100%;background-color:var(--color-primary);transition:width .3s ease}.flashcard-container{margin-bottom:var(--spacing-xl)}.flashcard{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);min-height:300px}.flashcard-term{margin-bottom:var(--spacing-xl)}.flashcard-term label{display:block;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.5px}.term-display{font-size:var(--font-size-2xl);font-weight:600;color:var(--color-primary);padding:var(--spacing-lg);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md);text-align:center}.flashcard-answer label{display:block;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.flashcard-answer .input-textarea{width:100%;padding:var(--spacing-md);background-color:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-base);resize:vertical}.flashcard-answer .input-textarea:focus{outline:none;border-color:var(--color-primary)}.flashcard-navigation{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.card-dots{display:flex;gap:var(--spacing-xs);justify-content:center;flex-wrap:wrap}.dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--color-border);background-color:transparent;cursor:pointer;transition:all .2s}.dot.dot-active{border-color:var(--color-primary);background-color:var(--color-primary)}.dot.dot-answered{background-color:var(--color-success);border-color:var(--color-success)}.answered-count{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.results-summary{display:flex;align-items:center;gap:var(--spacing-xl);justify-content:center;margin-bottom:var(--spacing-xl);padding:var(--spacing-xl);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg)}.score-circle{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-2xl);font-weight:700}.score-circle.score-pass{background-color:#22a06b33;border:4px solid var(--color-success);color:var(--color-success)}.score-circle.score-fail{background-color:#e5484d33;border:4px solid var(--color-error);color:var(--color-error)}.score-details{text-align:left}.score-details p{margin:var(--spacing-xs) 0}.results-list{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.result-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--radius-md);border-left:4px solid}.result-card.result-correct{border-left-color:var(--color-success)}.result-card.result-incorrect{border-left-color:var(--color-error)}.result-term{font-weight:600;min-width:150px}.result-answers{flex:1}.result-answers .label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-right:var(--spacing-xs)}.result-user,.result-correct-answer{margin-bottom:var(--spacing-xs)}.result-icon{display:inline-flex;align-items:center}.result-icon svg{width:20px;height:20px}.result-icon.ok{color:var(--color-success)}.result-icon.fail{color:var(--color-error)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.btn-success{background-color:var(--color-success);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-weight:500}.btn-success:hover{opacity:.9}.btn-success:disabled{opacity:.5;cursor:not-allowed}.link-back{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm)}button.link-back{background:none;border:none;padding:0;cursor:pointer;font:inherit;text-align:left}.link-back:hover{text-decoration:none}.alert-warning{background-color:#fff;border:1px solid rgba(0,0,0,.14);color:#000}.alert-info{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);background-color:#fff;border:1px solid rgba(0,0,0,.14);color:#000}.alert-info>svg{color:#000;margin-top:2px}.mode-hint{margin:0 0 var(--spacing-md);font-size:var(--font-size-sm)}.memory-section{padding:14px 16px;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary) 7%,transparent),transparent 55%),var(--color-bg-secondary);border-radius:14px}.memory-section-head{margin-bottom:12px;align-items:flex-start;gap:10px}.memory-section .section-header h3{margin:0;font-size:16px;letter-spacing:-.01em}.memory-section .mode-hint{margin:4px 0 0;font-size:12.5px;line-height:1.4;max-width:52ch}.memory-selected-count{flex-shrink:0;font-size:12px;font-weight:700;color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;padding:4px 10px;line-height:1.2}.memory-modes-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.memory-mode-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 12px 14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;min-width:0;min-height:112px}.memory-mode-card:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border);transform:none;box-shadow:none}.memory-mode-card.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);box-shadow:none}.memory-mode-card input{position:absolute;opacity:0;pointer-events:none}.memory-mode-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:var(--color-primary-soft);color:var(--color-primary);flex-shrink:0}.memory-mode-card.active .memory-mode-icon{background:var(--color-primary);color:#fff}.memory-mode-icon svg{width:18px;height:18px}.memory-mode-icon__sketch{display:block;width:22px;height:22px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.memory-mode-label{font-weight:700;font-size:13.5px;line-height:1.2;letter-spacing:-.01em}.memory-mode-hint{font-size:12px;color:var(--color-text-muted);line-height:1.35;margin:0}.memory-mode-check{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:transparent;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.memory-mode-card.active .memory-mode-check{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:0;border-top:none}.lesson-section--settings{width:fit-content;max-width:100%}.lesson-section--settings .section-header{margin-bottom:10px}.settings-toggles{display:grid;grid-template-columns:auto auto;gap:8px;width:fit-content;max-width:100%;align-items:start}.settings-toggle-cell{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}.settings-toggles>.switch-row,.settings-toggle-cell>.switch-row{width:100%;min-width:0;box-sizing:border-box}.settings-toggles .pass-score-row .input-score{margin-left:8px;flex:1 1 auto;width:auto;min-width:64px;max-width:none}@media (max-width: 700px){.lesson-section--settings{width:100%}.settings-toggles{grid-template-columns:1fr;width:100%}}.switch-row{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;line-height:1.3;min-width:0;padding:8px 10px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg);transition:border-color .15s ease,background .15s ease}.switch-row:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.switch-row:has(input:checked){border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg))}.switch-row-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-muted);flex-shrink:0}.switch-row-icon .nav-icon,.switch-row-icon svg{width:14px;height:14px}.switch-row-icon__sketch{display:block;width:16px;height:16px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.switch-row input[type=checkbox]{width:15px;height:15px;flex-shrink:0;margin:0;accent-color:var(--color-ink)}.pass-score-row{cursor:default;width:fit-content;max-width:100%}.pass-score-row .input-score{margin-left:4px}.pass-score-unit{color:var(--color-text-muted);font-size:12px;font-weight:600}.input.input-score,.input-score{width:64px;max-width:64px;flex:0 0 64px;padding:5px 8px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:13px;text-align:center;box-sizing:border-box}@media (max-width: 900px){.memory-modes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.memory-modes-grid,.mode-options{grid-template-columns:1fr}.memory-mode-card{min-height:0}}.mechanics-section{padding:14px 16px;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary) 5%,transparent),transparent 50%),var(--color-bg-secondary);border-radius:14px}.mechanics-section-head{margin-bottom:12px;align-items:flex-start;gap:10px}.mechanics-section .section-header h3{margin:0;font-size:16px;letter-spacing:-.01em}.mechanics-section .mode-hint{margin:4px 0 0;font-size:12.5px;line-height:1.4;max-width:none}.mechanics-summary{flex-shrink:0;font-size:12px;font-weight:700;color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;padding:4px 10px;line-height:1.2}.mechanics-groups{display:flex;flex-direction:column;gap:16px;width:100%}.mechanics-group-title{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted)}.mechanics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;align-items:stretch}.mechanics-grid .mechanic-card{width:100%;min-width:0}.mechanic-card{position:relative;border:1px solid var(--color-border);border-radius:12px;padding:12px 12px 10px;background:var(--color-bg);opacity:.9;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease,opacity .18s ease;display:flex;flex-direction:column;gap:8px;min-width:0;min-height:118px;height:100%}.mechanic-card:hover{opacity:1;color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border);transform:none;box-shadow:none}.mechanic-card.enabled{opacity:1;border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 7%,var(--color-bg));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-primary) 30%,transparent)}.mechanic-card.is-locked{opacity:.55;cursor:pointer;background:var(--color-bg);border-color:var(--color-border);box-shadow:none}.mechanic-card.is-locked:hover{opacity:.72;background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.mechanic-card.is-locked .mechanic-check{font-size:.85em;opacity:.7}.mechanic-head{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon title check";column-gap:8px;align-items:start;cursor:pointer;font-weight:600}.mechanic-head input{position:absolute;opacity:0;pointer-events:none}.mechanic-icon{grid-area:icon;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--color-primary-soft);color:var(--color-primary);flex-shrink:0}.mechanic-card.enabled .mechanic-icon{background:var(--color-primary);color:#fff}.mechanic-icon svg,.mechanic-icon .nav-icon{width:16px;height:16px;display:block;flex-shrink:0}.mechanic-icon__sketch{display:block;width:20px;height:20px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.mechanic-title-block{grid-area:title;display:flex;flex-direction:column;gap:2px;min-width:0;padding-right:4px}.mechanic-label{font-size:13.5px;font-weight:700;line-height:1.2;letter-spacing:-.01em}.mechanic-check{grid-area:check;width:20px;height:20px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:transparent;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.mechanic-card.enabled .mechanic-check{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mechanic-desc{margin:0;font-size:11.5px;color:var(--color-text-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0}.mechanic-reps{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--color-text-muted);padding-top:6px;border-top:1px solid var(--color-border)}.mechanic-reps.is-disabled{opacity:.45}.reps-stepper{display:flex;align-items:center;gap:4px}.reps-stepper button{width:26px;height:26px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:border-color .15s ease,background .15s ease}.reps-stepper button:hover:not(:disabled){color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.reps-stepper button:disabled{opacity:.4;cursor:not-allowed}.reps-value{min-width:22px;text-align:center;font-weight:700;color:var(--color-text);font-size:13px}@media (max-width: 560px){.mechanics-grid{grid-template-columns:1fr}.mechanic-card{min-height:0}}.image-mode-toggle{display:inline-flex;gap:4px;margin-left:var(--spacing-sm)}.image-mode-toggle .mode-btn{padding:2px 10px;font-size:.75rem;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);border-radius:999px;cursor:pointer}.image-mode-toggle .mode-btn.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.player-container{max-width:none;width:100%}.player-overview{display:flex;flex-direction:column;gap:var(--spacing-lg)}.overview-progress{display:flex;flex-direction:column;gap:var(--spacing-sm)}.progress-bar{background:var(--color-bg-tertiary);border-radius:999px;overflow:hidden;height:8px}.progress-bar.big{height:14px}.progress-bar.sm{height:6px;width:120px}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.overview-progress-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.mechanics-overview{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-sm)}.overview-mechanic{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;width:100%}.overview-mechanic:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border);box-shadow:none}.overview-mechanic.done{border-color:var(--color-success);background:#22a06b14}.overview-mechanic.done:hover{border-color:var(--color-success);box-shadow:0 0 0 2px #22a06b2e}.overview-mechanic.open{border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 2px #3b82f640;background:#3b82f614}.player-stage{margin-top:4px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);min-height:160px}.player-activity-embedded{margin:0}.player-activity-embedded .activity-topbar{margin-bottom:12px}.overview-stage-hint{margin:10px 0 0;font-size:.85rem;text-align:center;width:100%}.krokcoin-panel-compact{margin-top:18px;padding:10px 12px}.krokcoin-panel-compact .krokcoin-panel-head{margin-bottom:8px;gap:8px}.krokcoin-panel-compact .krokcoin-balance{font-size:.95rem}.krokcoin-panel-compact .krokcoin-panel-hint{font-size:.78rem}.krokcoin-panel-compact .krokcoin-shop{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.krokcoin-panel-compact .krokcoin-buy{padding:6px 8px;font-size:12px}@media (max-width: 640px){.krokcoin-panel-compact .krokcoin-shop{grid-template-columns:1fr}}.om-icon{display:inline-flex;align-items:center;color:var(--color-primary)}.om-icon svg{width:19px;height:19px}.overview-mechanic.done .om-icon{color:var(--color-success)}.om-label{flex:1;font-size:var(--font-size-sm)}.om-reps{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-muted)}.overview-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1.05rem}.player-activity{display:flex;flex-direction:column;gap:var(--spacing-lg)}.activity-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.activity-title{font-weight:700;display:flex;align-items:center;gap:var(--spacing-sm)}.activity-title-icon{width:19px;height:19px;color:var(--color-primary);flex-shrink:0}.activity-rep{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.activity-counter{font-size:var(--font-size-sm);color:var(--color-text-muted)}.mechanic-body{display:flex;flex-direction:column;gap:var(--spacing-lg);align-items:stretch}.mechanic-actions{display:flex;justify-content:center;gap:var(--spacing-md)}.mechanic-actions.two{justify-content:space-between}.mechanic-actions.two .btn{flex:1}.speak-btn{background:transparent;border:none;cursor:pointer;font-size:1.05em;padding:0 4px}.player-card-image{display:flex;justify-content:center}.player-card-image img{max-height:180px;max-width:100%;border-radius:var(--radius-md);object-fit:contain}.btn-audio{background:var(--color-primary);color:#fff;border:none;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-size:1rem}.btn-danger{background:var(--color-error);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-weight:500}.flip-card{perspective:1000px;cursor:pointer;min-height:240px}.flip-inner{position:relative;width:100%;min-height:240px;transition:transform .5s;transform-style:preserve-3d}.flip-card.flipped .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);text-align:center}.flip-back{transform:rotateY(180deg);border-color:var(--color-primary)}.flip-text{font-size:1.6rem;font-weight:700}.flip-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.memorize-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);text-align:center}.memorize-term{font-size:1.8rem;font-weight:700}.memorize-def{font-size:1.2rem;color:var(--color-text)}.memorize-example{font-style:italic;color:var(--color-text-muted)}.question-prompt{text-align:center;padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary)}.prompt-label{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.prompt-text{font-size:1.4rem;font-weight:600}.listen-prompt{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.option-btn{padding:var(--spacing-lg);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;font-size:1rem;transition:all .15s ease}.option-btn:hover:not(:disabled){color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.option-btn.correct{border-color:var(--color-success);background:#22a06b26}.option-btn.wrong{border-color:var(--color-error);background:#e5484d26}.type-input{width:100%;padding:var(--spacing-lg);font-size:1.2rem;text-align:center;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-tertiary);color:var(--color-text)}.type-input:focus{outline:none;border-color:var(--color-primary)}.type-input.correct{border-color:var(--color-success)}.type-input.wrong{border-color:var(--color-error)}.answer-reveal{text-align:center;color:var(--color-text-muted)}.collect-slots{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center;min-height:56px;padding:var(--spacing-md);border:2px dashed var(--color-border);border-radius:var(--radius-md)}.collect-slots.correct{border-color:var(--color-success)}.collect-slots.wrong{border-color:var(--color-error)}.collect-placeholder{color:var(--color-text-muted);align-self:center}.collect-pool{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.letter-tile{min-width:42px;height:48px;font-size:1.2rem;font-weight:700;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer}.letter-tile.placed{border-color:var(--color-primary);background:#74816c1a}.tf-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);text-align:center;transition:all .2s ease}.tf-card.correct{border-color:var(--color-success);background:#22a06b1f}.tf-card.wrong{border-color:var(--color-error);background:#e5484d1f}.tf-term{font-size:1.6rem;font-weight:700}.tf-equals{color:var(--color-text-muted)}.tf-def{font-size:1.2rem}.sprint-header{display:flex;justify-content:space-between;font-weight:700;font-size:1.1rem}.sprint-timer{color:var(--color-warning)}.sprint-score{color:var(--color-success)}.match-hint{text-align:center;margin:0}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.match-col{display:flex;flex-direction:column;gap:var(--spacing-sm)}.match-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;text-align:left;transition:all .15s ease}.match-item.selected{border-color:var(--color-primary);background:#74816c1f}.match-item.matched{border-color:var(--color-success);background:#22a06b1a;opacity:.55;cursor:default}.match-item.wrong{border-color:var(--color-error);background:#e5484d1f}.match-thumb{width:34px;height:34px;object-fit:cover;border-radius:var(--radius-sm, 4px)}.results-summary-wrap{display:flex;flex-direction:column;gap:var(--spacing-lg)}.gradebook-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.gradebook-accordion{display:flex;flex-direction:column;gap:8px}.gb-student-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);overflow:hidden}.gb-student-card.open{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.gb-student-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:none;background:transparent;cursor:pointer;text-align:left;color:inherit}.gb-student-head:hover{background:var(--color-bg-tertiary)}.gb-student-card.open .gb-student-head{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-bg))}.gb-student-head-main{display:inline-flex;align-items:center;gap:10px;min-width:0}.gb-chevron{width:1em;color:var(--color-text-muted);font-size:.85rem}.gb-student-head-meta{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.gb-student-lessons{border:none;border-top:1px solid var(--color-border);border-radius:0}.gb-lesson-row:hover{background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg))}.gb-lesson-link{color:inherit;text-decoration:none;display:block}.gb-lesson-link:hover{color:var(--color-primary)}.gb-lesson-cell{display:block;padding:2px 0}.ia-review-answers{display:grid;gap:8px;margin-top:8px}.ia-teacher-mark{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border);display:grid;gap:10px}.ia-teacher-mark-actions{display:flex;flex-wrap:wrap;gap:8px}.ia-teacher-note{display:grid;gap:6px;font-size:var(--font-size-sm)}.ia-teacher-note textarea{width:100%;resize:vertical;min-height:56px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:inherit;font:inherit}.ia-teacher-grade-panel .ia-grade-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.ia-grade-stars{display:inline-flex;gap:6px}.ia-grade-btn{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer;font-weight:600;color:inherit}.ia-grade-btn:hover{border-color:var(--color-primary)}.ia-grade-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.ia-teacher-final-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.btn-danger{background:color-mix(in srgb,#dc2626 88%,#000);color:#fff;border:1px solid transparent}.btn-danger:hover:not(:disabled){filter:brightness(1.05)}.gradebook-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.gradebook-table th,.gradebook-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.gradebook-table th{background:var(--color-bg-tertiary);font-weight:600;white-space:nowrap}.gradebook-table tbody tr:hover{background:var(--color-bg-tertiary)}.gb-student{font-weight:600}.gb-subtle{color:var(--color-text-muted);font-size:.8rem}.gb-progress{display:flex;align-items:center;gap:var(--spacing-sm)}.gb-mechanics{display:flex;flex-wrap:wrap;gap:4px;max-width:260px}.gb-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:.75rem;white-space:nowrap}.gb-chip svg{width:13px;height:13px;flex-shrink:0}.gb-chip.done{color:var(--color-success)}.gb-chip.done{border-color:var(--color-success);background:#22a06b1f}.gb-score{font-weight:700}.gb-score.pass{color:var(--color-success)}.gb-score.fail{color:var(--color-error)}.gb-status{padding:3px 10px;border-radius:999px;font-size:.75rem;white-space:nowrap}.st-not-started{background:#8b949e33;color:var(--color-text-muted)}.st-in-progress{background:#f5a5242e;color:var(--color-warning)}.st-completed{background:#22a06b2e;color:var(--color-success)}.st-overdue{background:#e5484d2e;color:var(--color-error)}.krokcoin-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;background:var(--color-coin-soft);color:var(--color-coin);font-weight:700;font-size:.9rem;white-space:nowrap}.krokcoin-badge .nav-icon{width:16px;height:16px}.krokcoin-panel{margin-top:var(--spacing-lg, 24px);padding:16px;border:1px solid rgba(240,185,11,.35);border-radius:12px;background:#f0b90b0f}.krokcoin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.krokcoin-balance{font-weight:800;font-size:1.1rem;color:#f0b90b}.krokcoin-panel-hint{color:var(--color-text-secondary, #8b949e);font-size:.85rem}.krokcoin-shop{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.krokcoin-buy{display:flex;align-items:center;justify-content:space-between;gap:8px}.krokcoin-price{font-weight:700;color:#f0b90b;white-space:nowrap}.krokcoin-note{margin:12px 0 0;font-size:.85rem;color:var(--color-text-secondary, #8b949e)}.mechanic-hint-bar{display:flex;align-items:center;gap:10px;margin:10px 0;flex-wrap:wrap}.mechanic-hint-bar.center{justify-content:center}.btn-hint{background:#f0b90b26;color:#f0b90b;border:1px solid rgba(240,185,11,.4)}.btn-hint:hover:not(:disabled){background:#f0b90b40}.hint-used{color:#f0b90b;font-size:.85rem;font-weight:600}.hint-reveal{color:var(--color-text-secondary, #8b949e);font-size:.9rem}.option-btn.hinted{border-color:#f0b90b;box-shadow:0 0 0 2px #f0b90b66 inset}.letter-tile.word{min-width:auto;height:auto;padding:8px 14px;font-size:1rem;font-weight:600}.cloze-text{font-size:1.25rem;line-height:1.6;letter-spacing:.3px}.answer-reveal.speak-ok{color:var(--color-success)}.answer-reveal.speak-bad{color:var(--color-error)}.join-code-display{font-family:Consolas,Courier New,monospace;font-size:1.6rem;font-weight:700;letter-spacing:6px;text-align:center;padding:var(--spacing-md);background:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-md);-webkit-user-select:all;user-select:all}.join-group-card{padding:var(--spacing-lg)}.join-group-head{display:flex;align-items:center;gap:var(--spacing-md)}.join-group-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:var(--color-primary-soft);color:var(--color-primary);flex-shrink:0}.join-group-icon svg{width:28px;height:28px}.library-page{max-width:none;width:100%}.app-main:has(.library-page){max-width:none!important}.library-toolbar{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.library-search-wrap{display:flex;align-items:center;gap:12px;width:100%;padding:10px 10px 10px 18px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color .15s ease,box-shadow .15s ease}.library-search-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.library-search-wrap .nav-icon{width:22px;height:22px;flex-shrink:0;color:var(--color-text-muted)}.library-search-input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--color-text);font-size:17px;font-family:inherit;line-height:1.4;padding:8px 0}.library-search-input::placeholder{color:var(--color-text-muted)}.library-search-btn{flex-shrink:0;padding:10px 20px}.library-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.library-dd{position:relative}.library-dd-btn{display:inline-flex;align-items:center;gap:8px;min-width:140px;padding:9px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);transition:border-color .15s ease,background .15s ease}.library-dd-btn:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.library-dd.open .library-dd-btn,.library-dd.active .library-dd-btn{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.library-dd-label{font-weight:700;color:var(--color-text-muted)}.library-dd-value{flex:1;text-align:left;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.library-dd-btn .nav-icon{width:14px;height:14px;flex-shrink:0;color:var(--color-text-muted)}.library-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:220px;max-height:280px;overflow-y:auto;padding:6px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:fade-in .12s ease}.library-dd-item{display:block;width:100%;padding:9px 12px;border:none;border-radius:8px;background:none;color:var(--color-text);text-align:left;font-family:inherit;font-size:var(--font-size-sm);cursor:pointer}.library-dd-item:hover{background:var(--color-bg-tertiary)}.library-dd-item.selected{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.library-idle{margin-top:var(--spacing-lg)}.library-idle.empty-state:has(.empty-illustration) .empty-icon{aspect-ratio:auto;width:min(280px,70vw)}.library-idle .empty-illustration{width:100%;height:auto;object-fit:contain}.library-results-count{padding:10px 20px;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background:var(--color-bg)}.library-list{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);overflow:hidden}.library-row{display:flex;align-items:center;gap:var(--spacing-md);padding:16px 20px;border-bottom:1px solid var(--color-border);transition:background .12s ease}.library-row:last-child{border-bottom:none}.library-row:hover{background:var(--color-bg-tertiary)}.library-row-icon{flex-shrink:0}.library-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.library-row-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.library-row-title{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--color-text);line-height:1.3;overflow-wrap:anywhere}.library-row-comment{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.library-row-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.library-row-action{flex-shrink:0}@media (max-width: 720px){.library-row{flex-wrap:wrap}.library-row-action{width:100%}.library-row-action .btn{width:100%;justify-content:center}}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-info{background:#74816c26;color:var(--color-primary);border:1px solid rgba(116,129,108,.4)}.status-badge.status-library{background:#a371f726;color:#a371f7;border:1px solid rgba(163,113,247,.4)}.marketplace-badge-inline{margin-left:8px;vertical-align:middle}.chat-name .status-badge,.chat-title h2 .status-badge,.gb-student-head .status-badge{vertical-align:middle;font-size:.7rem}.memory-grid{display:grid;width:100%;gap:10px;margin:0;box-sizing:border-box}.memory-tile{box-sizing:border-box;width:100%;min-width:0;min-height:96px;aspect-ratio:5 / 4;padding:10px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary, var(--color-bg));color:var(--color-text);font-size:.95rem;line-height:1.25;cursor:pointer;transition:transform .15s,border-color .15s,background .15s;word-break:break-word;display:flex;align-items:center;justify-content:center;text-align:center}.memory-tile:not(.open):hover{transform:scale(1.02);border-color:var(--color-primary)}.memory-tile:not(.open){font-size:1.4rem;font-weight:700;color:var(--color-text-muted);background:linear-gradient(145deg,var(--color-bg-secondary, #f3f4f6),var(--color-bg))}.memory-tile.open{border-color:var(--color-primary);background:#74816c1a}.memory-tile.matched{border-color:#22a06b99;background:#22a06b1f;cursor:default}@media (max-width: 520px){.memory-tile{min-height:72px;aspect-ratio:4 / 3;font-size:.85rem}}.hangman-status{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.hangman-face{font-size:2.2rem}.hangman-word{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-bottom:var(--spacing-lg)}.hangman-letter{min-width:26px;text-align:center;font-size:1.5rem;font-weight:700;border-bottom:2px solid var(--color-border);padding:2px 4px;text-transform:uppercase}.hangman-letter.revealed{border-bottom-color:var(--color-primary)}.hangman-keyboard{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:560px;margin:0 auto}.hangman-key{width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.hangman-key:hover:not(:disabled){border-color:var(--color-primary)}.hangman-key.hit{background:#22a06b26;border-color:#22a06b80}.hangman-key.miss{background:#e5484d1f;border-color:#e5484d66;opacity:.6}.ile-editor{display:flex;flex-direction:column;gap:var(--spacing-md)}.ile-editor>.input,.ile-block>.input,.ile-subblock>.input,.ile-stimulus>.input{width:100%}.ile-block{display:flex;flex-direction:column;gap:10px;padding:var(--spacing-md);border-left:3px solid var(--color-primary)}.ile-subblock{display:flex;flex-direction:column;gap:6px;padding:10px 12px;margin-top:4px;border:1px solid var(--color-border, #e2e5ea);border-radius:8px;background:var(--color-surface-muted, rgba(0, 0, 0, .02))}.ile-stimulus{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.ile-upload-progress{display:flex;flex-direction:column;gap:6px;margin-top:2px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--color-border) 85%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 7%,transparent),transparent 60%),var(--color-bg-secondary)}.ile-upload-progress__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;font-size:12px;line-height:1.35;color:var(--color-text-secondary)}.ile-upload-progress__meta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ile-upload-progress__pct{flex-shrink:0;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary)}.ile-upload-progress__track{height:8px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--color-bg-tertiary) 90%,var(--color-border))}.ile-upload-progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--color-primary) 85%,#1a1a1a),var(--color-primary));box-shadow:0 0 0 1px color-mix(in srgb,var(--color-primary) 18%,transparent);transition:width .22s ease;position:relative}.ile-upload-progress__fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 20%,color-mix(in srgb,#fff 35%,transparent) 45%,transparent 70%);background-size:220% 100%;animation:ile-upload-sheen 1.4s linear infinite;pointer-events:none}.ile-upload-progress__fill.is-indeterminate{width:36%!important;animation:ile-upload-indeterminate 1.15s ease-in-out infinite}.ile-upload-progress__fill.is-indeterminate:after{animation:none}@keyframes ile-upload-sheen{0%{background-position:180% 0}to{background-position:-40% 0}}@keyframes ile-upload-indeterminate{0%{transform:translate(-30%)}to{transform:translate(220%)}}.ile-stimulus-attachments{display:flex;flex-wrap:wrap;gap:8px}.ile-stimulus-chip{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary)}.ile-block-head{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.ile-block-title{font-weight:600}.ile-block-actions{display:flex;align-items:center;gap:6px}.ile-points{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-text-secondary)}.ile-points input{width:60px;padding:4px 6px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}.ile-textarea{resize:vertical;font-family:inherit;min-height:88px;line-height:1.45;background-color:var(--color-bg-secondary)}.ile-row{display:flex;align-items:center;gap:10px;width:100%;min-width:0}.ile-block>.ile-row{padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--color-bg-tertiary) 45%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 65%,transparent)}.ile-block>.ile-row .input{background:var(--color-bg)}.ile-row .input{flex:1 1 0;min-width:0;width:auto}.ile-row>span{flex-shrink:0;color:var(--color-text-muted);font-weight:600;-webkit-user-select:none;user-select:none}.ile-row>.btn{flex-shrink:0}.ile-radio{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;font-size:.9rem;color:var(--color-text)}.ile-radio input{width:15px;height:15px;margin:0;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.ile-options .ile-radio{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:8px;background:color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent)}.ile-options .ile-radio:has(input:checked){border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-border));background:var(--color-primary-soft)}.ile-options{display:flex;flex-direction:column;gap:8px;align-items:stretch;width:100%}.ile-options .ile-row{width:100%;padding:6px 8px;border-radius:10px;background:color-mix(in srgb,var(--color-bg-tertiary) 45%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 65%,transparent)}.ile-options .ile-row .input{background:var(--color-bg)}.ile-audio-field{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);width:100%}.ile-audio-row{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.audio-player-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.tts-player-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.tts-player-controls.compact .tts-ctrl{padding:6px 10px;min-width:0;justify-content:center}.tts-player-controls .tts-ctrl{display:inline-flex;align-items:center;gap:6px}.tts-player-controls .tts-ctrl .nav-icon--snail{width:22px;height:22px}.tts-player-controls .tts-ctrl-label{font-size:.82rem;line-height:1.2;white-space:nowrap}.tts-player-controls .tts-error{font-size:.8rem}.tts-inline{margin:6px 0}.ia-listening-audio{margin-bottom:var(--spacing-sm);padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg));border:1px solid color-mix(in srgb,var(--color-primary) 16%,var(--color-border))}.ile-picker{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.ile-picker-head{display:flex;align-items:center;justify-content:space-between}.ile-picker-cat-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.ile-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-sm)}.ile-picker-cell{display:flex;align-items:stretch;min-width:0}.ile-picker-cell .ile-picker-item{flex:1;min-width:0;width:100%}.ile-picker-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.ile-picker-item:hover{border-color:var(--color-primary);background:#74816c14}.ile-picker-label{flex:1;min-width:0}.ile-picker-cell--combined{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg);transition:border-color .15s,background .15s}.ile-picker-cell--combined:hover{border-color:var(--color-primary);background:#74816c14}.ile-picker-cell--combined .ile-picker-item,.ile-picker-cell--combined .ile-picker-ai{border:none;border-radius:0;background:transparent;box-shadow:none}.ile-picker-cell--combined .ile-picker-item:hover,.ile-picker-cell--combined .ile-picker-ai:hover{background:transparent;border-color:transparent}.ile-picker-cell--combined .ile-picker-ai{flex-shrink:0;align-self:stretch;min-width:44px;padding:0 12px;border-left:1px solid var(--color-border);color:var(--color-ink);font-size:11px;font-weight:800;letter-spacing:.04em;cursor:pointer;transition:background .15s,color .15s}.ile-picker-cell--combined .ile-picker-ai:hover{background:color-mix(in srgb,var(--color-ink) 10%,transparent);color:var(--color-ink)}.ile-ai-modal{width:min(640px,100%);max-height:min(90vh,820px);display:flex;flex-direction:column;overflow:hidden}.ile-ai-body{display:flex;flex-direction:column;gap:14px;overflow:auto}.ile-ai-field{display:flex;flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;color:var(--color-text)}.ile-ai-field>span{color:var(--color-text-secondary);font-weight:600}.ile-ai-count{max-width:220px}.ile-ai-progress{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--color-primary) 28%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 8%,var(--color-bg-secondary));font-size:.9rem}.ile-ai-progress strong{color:var(--color-primary)}.ile-picker-icon{display:inline-flex;align-items:center;color:var(--color-primary)}.ile-picker-icon svg{width:20px;height:20px}.ile-block-title{display:inline-flex;align-items:center;gap:8px}.ile-block-icon{width:18px;height:18px;color:var(--color-primary);flex-shrink:0}.ia-player{max-width:none;width:100%}.ia-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-md)}.ia-header-right{display:flex;align-items:center;gap:var(--spacing-md)}.ia-show-answers{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;padding:6px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg)}.ia-show-answers input{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.ia-timer{font-size:1.2rem;font-weight:700;padding:4px 14px;border-radius:999px;background:#74816c1f;border:1px solid rgba(116,129,108,.4)}.ia-timer.urgent{background:#e5484d26;border-color:#e5484d80;color:var(--color-error, var(--color-error));animation:ia-pulse 1s infinite}@keyframes ia-pulse{50%{opacity:.6}}.ia-blocks{display:flex;flex-direction:column;gap:var(--spacing-md)}.ia-block{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md)}.ia-block.ia-correct{border-left:3px solid var(--color-success)}.ia-block.ia-wrong{border-left:3px solid var(--color-error)}.ia-block-head{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);font-weight:600}.ia-block-head>span{display:inline-flex;align-items:center;gap:8px}.ia-block-icon{width:18px;height:18px;color:var(--color-primary);flex-shrink:0}.ia-title-icon{width:22px;height:22px;color:var(--color-primary);flex-shrink:0}.ia-header h2{display:inline-flex;align-items:center;gap:10px;margin:0}.ia-badge-ok,.ia-badge-fail{display:inline-flex;align-items:center;gap:5px}.ia-badge-ok svg,.ia-badge-fail svg{width:15px;height:15px}.ia-badge-ok{color:var(--color-success)}.ia-badge-fail{color:var(--color-error)}.ia-badge-manual{color:var(--color-text-secondary);font-size:.85rem}.ia-prompt{margin:0;font-size:1.05rem}.ia-statement{font-size:1.1rem;font-style:italic}.ia-text{white-space:pre-wrap;line-height:1.6}.ia-image{max-width:320px;max-height:220px;object-fit:contain;border-radius:var(--radius-md)}.ia-image--expandable{cursor:zoom-in}.annot-image-thumb{position:relative;display:inline-block;max-width:320px;padding:0;border:none;background:transparent;cursor:zoom-in;border-radius:var(--radius-md)}.annot-image-thumb__img{display:block;max-width:320px;max-height:220px;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-md)}.annot-image-thumb__marks{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;border-radius:var(--radius-md)}.annot-image-thumb__badge{position:absolute;left:8px;bottom:8px;padding:2px 8px;border-radius:999px;background:#e11d48eb;color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em}.ia-image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;z-index:10050;display:flex;flex-direction:column;box-sizing:border-box;background:#0a0c10e6}.ia-image-lightbox__toolbar{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;background:#00000073;color:#fff;z-index:10052}.ia-image-lightbox__tool{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:none;border-radius:8px;background:#ffffff1f;color:inherit;font-size:.95rem;font-weight:600;cursor:pointer}.ia-image-lightbox__tool svg{width:18px;height:18px}.ia-image-lightbox__tool:hover{background:#ffffff38}.ia-image-lightbox__tool.is-active{background:#e11d48;color:#fff}.ia-image-lightbox__zoom{min-width:48px;text-align:center;font-variant-numeric:tabular-nums;font-size:.85rem;opacity:.9}.ia-image-lightbox__spacer{flex:1 1 auto;min-width:8px}.ia-image-lightbox__viewport{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px 16px 20px;cursor:default;touch-action:none;-webkit-user-select:none;user-select:none}.ia-image-lightbox__viewport.is-grab{cursor:grab}.ia-image-lightbox__viewport.is-grabbing{cursor:grabbing}.ia-image-lightbox__viewport.is-draw{cursor:default}.ia-image-lightbox__stage{position:relative;transform-origin:center center;flex-shrink:0}.ia-image-lightbox__img{display:block;max-width:min(92vw,1100px);max-height:calc(100dvh - 96px);width:auto;height:auto;object-fit:contain;border-radius:var(--radius-md);background:#fff;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ia-image-lightbox__canvas{position:absolute;top:0;left:0;border-radius:var(--radius-md);pointer-events:none;touch-action:none}.ia-image-lightbox__canvas.is-draw{pointer-events:auto;cursor:crosshair}.ia-review-image{margin:10px 0 12px}.ia-video-frame{position:relative;display:block;width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-md);background:#000;overflow:hidden}.ia-video-frame .ia-video{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;max-width:none;max-height:none;border:none;border-radius:0;background:#000;object-fit:contain}.ia-video-bar{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.78) 55%);color:#fff}.ia-video-bar__btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border:none;border-radius:8px;background:#ffffff1f;color:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.ia-video-bar__btn:hover{background:#ffffff38}.ia-video-bar__btn svg{width:18px;height:18px}.ia-video-bar__time{flex-shrink:0;font-size:.8rem;font-variant-numeric:tabular-nums;opacity:.92;white-space:nowrap}.ia-video-bar__seek{flex:1 1 auto;min-width:48px;height:6px;margin:0;cursor:pointer;accent-color:#fff}.ia-main-video{padding:var(--spacing-sm);margin-bottom:var(--spacing-md)}.ia-options{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ia-options-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ia-option{text-align:left;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.ia-option:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.ia-option.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 18%,transparent)}.ia-option-card{display:flex;flex-direction:column;align-items:stretch;padding:0;overflow:hidden;border-radius:var(--radius-md);min-height:0;background:var(--color-bg-secondary, var(--color-bg))}.ia-option-card:hover:not(:disabled){transform:translateY(-1px)}.ia-option-card.selected{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-bg))}.ia-option-media{display:block;width:100%;aspect-ratio:4 / 3;background:color-mix(in srgb,var(--color-border) 28%,var(--color-bg));overflow:hidden}.ia-option-media img{width:100%;height:100%;object-fit:cover;display:block}.ia-option-label{display:block;padding:10px 12px 12px;font-weight:600;font-size:.92rem;text-align:center;line-height:1.3}.ia-listen-stack{display:flex;flex-direction:column;gap:12px}.ia-listen-group{display:flex;flex-direction:column;gap:14px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-secondary, var(--color-bg)) 55%,var(--color-bg))}.ia-listen-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ia-listen-steps{display:flex;flex-wrap:wrap;gap:6px}.ia-listen-step{width:32px;height:32px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary, var(--color-text-muted));font-size:.85rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.ia-listen-step:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.ia-listen-step.active{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 16%,transparent)}.ia-listen-step.answered:not(.active){border-color:color-mix(in srgb,var(--color-success, #22a06b) 45%,var(--color-border));color:var(--color-success, #22a06b);background:color-mix(in srgb,var(--color-success, #22a06b) 10%,var(--color-bg))}.ia-listen-group-meta{flex-shrink:0;min-width:44px;text-align:center;font-size:.8rem;font-weight:700;padding:4px 8px;border-radius:999px;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-bg))}.ia-listen-group-body{display:flex;flex-direction:column;gap:12px}.ia-listen-group-body .ia-prompt{margin:0}.ia-listen-group-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.ia-listen-group-pos{font-size:.85rem;color:var(--color-text-secondary, var(--color-text-muted));font-weight:600}.ia-subitem-panel{margin-top:0;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-secondary, var(--color-bg)) 70%,var(--color-bg))}.ia-subitem-panel.ia-subitem{border-top:1px solid var(--color-border);padding-top:14px}.ia-subitem-head{display:flex;align-items:flex-start;gap:10px}.ia-subitem-head .ia-prompt{margin:0;flex:1}.ia-subitem-num{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-bg))}.ia-matching-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.ia-matching-count{flex-shrink:0;min-width:44px;text-align:center;font-size:.8rem;font-weight:700;padding:4px 8px;border-radius:999px;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-bg))}.ia-matching-col-title{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary, var(--color-text-muted));margin-bottom:2px;padding-left:2px}.ia-matching-visual .ia-matching-grid-visual{grid-template-columns:minmax(150px,240px) 1fr;align-items:start;gap:16px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-bg-secondary, var(--color-bg)) 55%,var(--color-bg))}.ia-matching-col-cards{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;align-content:start}.ia-matching-col-cards .ia-matching-col-title{grid-column:1 / -1}.ia-match-word{align-items:flex-start;border-radius:12px;background:var(--color-bg)}.ia-match-word .ia-match-label{padding:0}.ia-match-word.matched .ia-match-paired-hint{margin-top:2px}.ia-match-card{padding:0!important;overflow:hidden;align-items:stretch!important;gap:0!important;background:var(--color-bg);border-radius:var(--radius-md)!important}.ia-match-card:hover:not(:disabled){transform:translateY(-1px)}.ia-match-card.targetable:not(:disabled){border-style:solid;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.ia-match-media{display:block;width:100%;aspect-ratio:4 / 3;background:color-mix(in srgb,var(--color-border) 28%,var(--color-bg));overflow:hidden}.ia-match-media img{width:100%;height:100%;object-fit:cover;display:block}.ia-match-label{display:block;padding:10px 12px 12px;width:100%;text-align:center;font-size:.9rem}.ia-match-card .ia-match-label{border-top:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);background:color-mix(in srgb,var(--color-bg-secondary, var(--color-bg)) 40%,var(--color-bg))}@media (max-width: 720px){.ia-matching-visual .ia-matching-grid-visual{grid-template-columns:1fr}.ia-options-cards{grid-template-columns:1fr 1fr}}@media (max-width: 420px){.ia-options-cards{grid-template-columns:1fr}}.ia-tf-row{display:flex;gap:var(--spacing-sm)}.ia-subitem{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border, #e2e5ea)}.ia-subitem:first-of-type{border-top:none;padding-top:0;margin-top:0}.ia-stimulus{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.ia-multi-sentences{display:flex;flex-direction:column;gap:4px}.ia-fill-text{line-height:2.2;font-size:1.05rem}.ia-gap-input{display:inline-block;margin:0 4px;padding:2px 8px;border:none;border-bottom:2px solid var(--color-primary);background:#74816c14;border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--color-text);font-size:1rem;text-align:center}.ia-gap-slot{display:inline-block;margin:0 4px;padding:2px 12px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;font-size:1rem}.ia-gap-slot.filled{border-style:solid;border-color:var(--color-primary);color:var(--color-text);background:#74816c1f}.ia-word-bank{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:var(--spacing-xs)}.ia-chip{padding:6px 14px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:border-color .15s,opacity .15s}.ia-chip:hover:not(:disabled){border-color:var(--color-primary)}.ia-chip:disabled{opacity:.35;cursor:default}.ia-chip.picked{border-color:var(--color-primary);background:#74816c1f}.ia-arranged{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);min-height:44px;padding:var(--spacing-sm);border:1px dashed var(--color-border);border-radius:var(--radius-md);align-items:center}.ia-arranged-list{flex-direction:column;align-items:flex-start}.ia-sentence-preview{font-style:italic}.ia-matching,.ia-classification{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ia-matching-click{gap:12px}.ia-matching-hint{margin:0;font-size:13px}.ia-matching-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ia-matching-col{display:flex;flex-direction:column;gap:8px}.ia-match-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:44px;padding:10px 12px;text-align:left;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text);font-size:14px;font-weight:600;line-height:1.3;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.ia-match-item:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.ia-match-item.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.ia-match-item.targetable:not(:disabled){border-style:dashed;border-color:color-mix(in srgb,var(--color-primary) 50%,var(--color-border))}.ia-match-item.matched{border-color:#22a06b8c;background:#22a06b1a;color:var(--color-text)}.ia-match-item:disabled{cursor:default;opacity:.92}.ia-match-paired-hint{font-size:12px;font-weight:500;color:var(--color-text-muted)}@media (max-width: 640px){.ia-matching-grid{gap:8px}.ia-match-item{min-height:48px;padding:12px;font-size:14.5px}}.ia-classify{display:flex;flex-direction:column;gap:14px;-webkit-user-select:none;user-select:none}.ia-classify-hint{margin:0;font-size:13px}.ia-classify-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.ia-classify-bucket{min-height:110px;padding:10px;border:2px dashed var(--color-border);border-radius:12px;background:var(--color-bg-secondary, var(--color-bg));transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.ia-classify-bucket.targetable{border-style:solid;border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.ia-classify-bucket.over,.ia-classify-pool.over{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 25%,transparent)}.ia-classify-bucket-title,.ia-classify-pool-title{font-size:13px;font-weight:700;margin-bottom:8px;color:var(--color-text)}.ia-classify-bucket-items,.ia-classify-pool-items{display:flex;flex-wrap:wrap;gap:8px;min-height:36px;align-items:flex-start}.ia-classify-empty{font-size:12px;color:var(--color-text-muted);padding:6px 0}.ia-classify-pool{padding:12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);min-height:72px}.ia-classify-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:13.5px;font-weight:600;cursor:grab;line-height:1.2}.ia-classify-chip:active{cursor:grabbing}.ia-classify-chip.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.ia-classify-chip.dragging{cursor:grabbing}.ia-classify-chip:disabled{cursor:default;opacity:.95}.ia-classify-ghost{position:fixed;z-index:1000;transform:translate(-50%,-50%);pointer-events:none;padding:8px 12px;border-radius:999px;border:1px solid var(--color-primary);background:var(--color-bg);color:var(--color-text);font-size:13.5px;font-weight:700;box-shadow:0 8px 24px #0f172a2e;white-space:nowrap}@media (max-width: 640px){.ia-classify-groups{grid-template-columns:1fr 1fr}.ia-classify-chip{padding:10px 14px;font-size:14px}}.ia-match-row{display:flex;align-items:center;gap:var(--spacing-md)}.ia-match-left{min-width:160px;font-weight:500}.ia-match-row select{flex:1;max-width:320px}.ia-textarea{resize:vertical;font-family:inherit}.ia-voice{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-start}.ia-voice .ia-textarea{width:100%}.ia-footer{display:flex;justify-content:center;margin-top:var(--spacing-lg);padding-bottom:var(--spacing-xl)}.ia-start-card{max-width:520px;margin:10vh auto 0;padding:var(--spacing-xl);text-align:center;display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center}.ia-result-card{text-align:center;padding:var(--spacing-xl);margin-bottom:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center}.ia-result-card.passed{border:1px solid rgba(34,160,107,.5)}.ia-result-card.failed{border:1px solid rgba(229,72,77,.5)}.ia-result-score{font-size:3rem;font-weight:800}.ia-result-card.passed .ia-result-score{color:var(--color-success)}.ia-result-card.failed .ia-result-score{color:var(--color-error)}.ia-result-label{font-size:1.2rem;font-weight:600}.ia-result-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.ia-correct-hint{font-size:.9rem;color:var(--color-text-secondary);background:#22a06b14;border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm)}@media (max-width: 640px){.ia-match-row{flex-direction:column;align-items:stretch;gap:4px}.ia-match-left{min-width:0}}.parent-code-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.parent-code{font-family:var(--font-mono, monospace);font-size:1.5rem;font-weight:700;letter-spacing:.2em;padding:var(--spacing-xs) var(--spacing-md);background:var(--color-bg-tertiary);border:1px dashed var(--color-border);border-radius:var(--radius-md);-webkit-user-select:all;user-select:all}.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.report-stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);text-align:center}.report-stat-value{font-size:1.4rem;font-weight:700}.report-stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.table-wrapper{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.report-table th,.report-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}.report-table th{color:var(--color-text-secondary);font-weight:600;white-space:nowrap}.report-status{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap}.report-status.status-completed{background:#22a06b26;color:#2ea043}.report-status.status-in-progress{background:#f5a52426;color:#b8860b}.report-status.status-not-started{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.app-shell{display:flex;min-height:100dvh;background:transparent}.app-sidebar{--sidebar-pad-y: 14px;--sidebar-pad-x: 12px;--sidebar-link-pad-y: 9px;--sidebar-link-pad-x: 12px;--sidebar-link-gap: 10px;--sidebar-section-gap: 10px;--sidebar-nav-gap: 2px;--sidebar-font: var(--font-size-base);--sidebar-icon: 20px;--sidebar-label-size: 10.5px;display:flex;flex-direction:column;width:var(--sidebar-width, 248px);flex-shrink:0;position:sticky;top:0;height:100dvh;max-height:100dvh;overflow:hidden;background:var(--background-page, #ffffff);border-right:1px solid var(--border-default);padding:var(--sidebar-pad-y) var(--sidebar-pad-x);transition:width .2s ease;z-index:40}.app-shell.sidebar-collapsed .app-sidebar{width:68px}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 12px;position:relative;flex-shrink:0}.sidebar-brand .krokurok-logo{width:100%;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px}.sidebar-brand .krokurok-logo__lockup{height:34px;max-width:min(170px,100%)}.sidebar-brand .krokurok-logo__text{margin-left:0;align-items:flex-start;flex:0 0 auto}.sidebar-brand .krokurok-logo__name-row{gap:6px;align-items:center;justify-content:flex-start}.sidebar-brand .krokurok-logo__subtitle{font-size:15px;margin-left:0;text-align:left;white-space:nowrap}.sidebar-brand .krokurok-logo__role,.topbar-brand-mobile .krokurok-logo__role{margin-left:0;align-self:center}.sidebar-brand .role-badge--plate{font-size:10px;padding:2px 7px;box-shadow:1px 1px color-mix(in srgb,currentColor 28%,transparent)}.sidebar-brand .plan-badge{height:auto;min-height:0;padding:2px 7px;border:1px solid var(--highlight-border);border-radius:7px;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;flex-shrink:0;background:var(--highlight-active-bg);color:var(--highlight-fg);transition:color .15s ease,border-color .15s ease,background .15s ease}.sidebar-brand .plan-badge:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.sidebar-brand .plan-badge.active,.sidebar-brand .plan-badge[aria-current=page]{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}.sidebar-brand .krokurok-logo__subtitle,.topbar-brand-mobile .krokurok-logo__subtitle{text-transform:none;letter-spacing:.01em;font-weight:600;color:var(--text-muted)}.topbar-brand-mobile .krokurok-logo__lockup{height:28px;max-width:min(140px,46vw)}.topbar-brand-mobile .krokurok-logo__subtitle{margin-left:0}.topbar-brand-mobile .krokurok-logo{gap:6px;flex-wrap:nowrap;align-items:center}.topbar-brand-mobile .krokurok-logo__text{flex:0 0 auto}.topbar-brand-mobile .role-badge--plate{font-size:10px;padding:2px 7px}.brand-mark{width:40px;height:40px;flex-shrink:0;display:inline-flex;color:var(--clay-primary)}.brand-mark svg{width:100%;height:100%}.brand-text{font-family:var(--font-display);font-weight:600;font-size:18px;color:var(--color-text);line-height:1.1;display:flex;flex-direction:column}.brand-role{font-family:var(--font-ui, var(--font-family));font-size:11px;font-weight:500;color:var(--text-muted)}.sidebar-collapse-btn{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:8px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.sidebar-collapse-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.app-shell.sidebar-collapsed .sidebar-collapse-btn{position:absolute;right:-4px;top:44px}.sidebar-nav{display:flex;flex-direction:column;gap:var(--sidebar-nav-gap);flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}.sidebar-nav::-webkit-scrollbar{width:0;height:0;display:none}.sidebar-section{display:flex;flex-direction:column;gap:var(--sidebar-nav-gap)}.sidebar-section+.sidebar-section{margin-top:var(--sidebar-section-gap)}.sidebar-section-label{padding:2px 10px 4px;font-size:var(--sidebar-label-size);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);-webkit-user-select:none;user-select:none}.sidebar-section-divider{height:1px;margin:6px 10px 8px;background:var(--color-border)}.app-shell.sidebar-collapsed .sidebar-section+.sidebar-section{margin-top:6px}.sidebar-link{display:flex;align-items:center;gap:var(--sidebar-link-gap);padding:var(--sidebar-link-pad-y) var(--sidebar-link-pad-x);border-radius:12px;border:1px solid transparent;background:transparent;font-family:inherit;font-size:var(--sidebar-font);font-weight:500;color:var(--text-primary);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease;flex-shrink:0}.sidebar-link-icon{position:relative;display:inline-flex;flex-shrink:0}.sidebar-link-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-notif-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--color-error);color:#fff;font-size:10px;font-weight:700;line-height:1;flex-shrink:0}.nav-notif-badge-compact{position:absolute;top:-6px;right:-8px;margin-left:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:9px;box-shadow:0 0 0 2px var(--color-bg-secondary)}.bottomnav-icon-wrap{position:relative;display:inline-flex}.bottomnav-icon-wrap .nav-notif-badge-compact{top:-4px;right:-9px}.sidebar-link:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.sidebar-link.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);font-weight:600}.nav-icon{width:var(--sidebar-icon, 20px);height:var(--sidebar-icon, 20px);flex-shrink:0}.nav-icon--color{display:block;flex-shrink:0;width:var(--sidebar-icon, 20px);height:var(--sidebar-icon, 20px);object-fit:contain;-webkit-user-select:none;user-select:none}.app-sidebar .nav-icon--color,.bottomnav-link .nav-icon--color{width:var(--sidebar-icon, 20px);height:var(--sidebar-icon, 20px)}.nav-icon--sketch{display:inline-block;flex-shrink:0;width:var(--sidebar-icon, 20px);height:var(--sidebar-icon, 20px);background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.nav-icon--snail{width:22px;height:22px}.btn .nav-icon--snail,.btn svg.nav-icon.nav-icon--snail{width:22px;height:22px}.app-sidebar .nav-icon--sketch,.bottomnav-link .nav-icon--sketch{width:var(--sidebar-icon, 20px);height:var(--sidebar-icon, 20px)}.app-sidebar .nav-icon{width:var(--sidebar-icon);height:var(--sidebar-icon)}.app-shell.sidebar-collapsed .sidebar-link{justify-content:center;padding:10px 0}.sidebar-footer{border-top:1px solid var(--color-border);padding-top:6px;margin-top:4px;display:flex;flex-direction:column;gap:2px;flex-shrink:0}@media (max-height: 860px){.app-sidebar{--sidebar-pad-y: 10px;--sidebar-link-pad-y: 7px;--sidebar-section-gap: 7px;--sidebar-font: 13px;--sidebar-icon: 18px}.sidebar-brand{padding-bottom:8px}.sidebar-brand .krokurok-logo__lockup{height:30px}.sidebar-brand .krokurok-logo__subtitle{font-size:14px}.sidebar-brand .role-badge--plate{font-size:10px;padding:2px 6px}.sidebar-plan-card{margin:4px 2px 6px;padding:9px 11px}.sidebar-plan-card__name{font-size:.95rem}.sidebar-user{padding:6px 8px}}@media (max-height: 740px){.app-sidebar{--sidebar-pad-y: 8px;--sidebar-link-pad-y: 5px;--sidebar-link-gap: 8px;--sidebar-section-gap: 5px;--sidebar-nav-gap: 1px;--sidebar-font: 12.5px;--sidebar-icon: 17px;--sidebar-label-size: 9.5px}.sidebar-brand{padding:0 6px 6px}.sidebar-brand .krokurok-logo__lockup{height:28px}.sidebar-section-label{padding:1px 10px 2px}.sidebar-plan-card{margin:2px 0 4px;padding:7px 10px}.sidebar-plan-card__label{margin-bottom:2px}.sidebar-plan-card__action{margin-top:3px}.user-avatar{width:28px;height:28px;font-size:12px}}@media (max-height: 640px){.app-sidebar{--sidebar-link-pad-y: 4px;--sidebar-section-gap: 3px;--sidebar-font: 12px;--sidebar-icon: 16px}.sidebar-section-label{font-size:9px;letter-spacing:.04em}.sidebar-plan-card__action,.sidebar-user-role,.sidebar-user-id{display:none}}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 10px;overflow:hidden;text-decoration:none;color:inherit;border-radius:var(--radius-md, 10px);cursor:pointer;transition:background .12s ease}.sidebar-user:hover,.sidebar-user.active{background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.app-shell.sidebar-collapsed .sidebar-user{justify-content:center;padding:8px 0}.user-avatar{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-ink);color:var(--color-white);font-weight:600;font-size:13px;-webkit-user-select:none;user-select:none}.sidebar-user-role.role-badge--plate{align-self:flex-start;margin-top:2px;font-size:10px;padding:2px 7px;box-shadow:1px 1px color-mix(in srgb,currentColor 28%,transparent)}.sidebar-user-info{display:flex;flex-direction:column;overflow:hidden}.sidebar-user-email{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-id{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.sidebar-logout:hover{color:var(--color-error);background:#e5484d14}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f111780;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;animation:fade-in .2s ease}.app-sidebar.drawer-open{position:fixed;top:0;left:0;height:100vh;width:268px!important;z-index:70;box-shadow:var(--shadow-lg);animation:drawer-in .22s ease}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.app-body{flex:1;min-width:0;display:flex;flex-direction:column}.app-topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--spacing-md);min-height:56px;padding:8px var(--shell-pad-x);background:var(--background-page, #ffffff);border-bottom:1px solid var(--border-default)}.topbar-menu-btn{display:none;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer}.topbar-brand-mobile{display:none;align-items:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--text-primary)}.topbar-brand-mobile .krokurok-mark{width:28px;height:28px}.topbar-nav{display:flex;align-items:center;gap:4px;min-width:0}.topbar-nav-link{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 12px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--color-ink);text-decoration:none;font-size:13.5px;font-weight:500;transition:color .15s ease,border-color .15s ease,background .15s ease}.topbar-nav-link:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.topbar-nav-link.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);font-weight:600}.topbar-nav-link .nav-icon{color:var(--highlight-fg)}.topbar-nav-icon{position:relative;display:inline-flex;align-items:center;justify-content:center}.topbar-nav-icon .nav-icon{width:18px;height:18px}.topbar-nav-label{white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:auto}.topbar-wallet-link{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);text-decoration:none;font-size:13.5px;font-weight:700;white-space:nowrap;transition:color .15s ease,background .15s ease,border-color .15s ease}.topbar-wallet-link:hover{color:var(--highlight-fg);border-color:var(--highlight-border);background:var(--highlight-hover-bg)}.topbar-wallet-link.active{color:var(--highlight-fg);border-color:var(--highlight-border);background:var(--highlight-active-bg)}.topbar-wallet-balance{font-variant-numeric:tabular-nums;letter-spacing:.01em}.topbar-actions .topbar-chats-link{margin-right:2px}.topbar-nav-link.topbar-icon-only,.topbar-icon-btn,.topbar-actions .plan-badge{border:1px solid transparent;color:var(--color-ink);background:transparent;transition:color .15s ease,border-color .15s ease,background .15s ease}.topbar-nav-link.topbar-icon-only{width:36px;height:36px;padding:0;justify-content:center;border-radius:10px}.topbar-nav-link.topbar-icon-only:hover,.topbar-icon-btn:hover,.topbar-actions .plan-badge:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.topbar-nav-link.topbar-icon-only.active,.topbar-icon-btn:active,.topbar-actions .plan-badge.active,.topbar-actions .plan-badge[aria-current=page]{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border);font-weight:600}.topbar-nav-link.topbar-icon-only .nav-icon{width:18px;height:18px}.topbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;cursor:pointer}.topbar-icon-btn .nav-icon{width:18px;height:18px}.topbar-actions .plan-badge{height:36px;padding:0 12px;border-radius:10px;align-items:center}.topbar-avatar{width:34px;height:34px}.app-main{flex:1;width:100%;padding:var(--shell-pad-y) var(--shell-pad-x) 32px;max-width:none;margin:0}.app-footer{margin-top:auto;flex-shrink:0;border-top:1px solid var(--border-default);background:var(--background-page, #ffffff);padding:14px var(--shell-pad-x)}.app-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;font-size:12px;color:var(--text-muted)}.app-footer__copy,.app-footer__version{flex-shrink:0;white-space:nowrap}.app-footer__nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 20px;flex:1;min-width:0}.app-footer__link{color:var(--text-muted);text-decoration:none;transition:color .15s ease}.app-footer__link:hover{color:var(--color-ink)}@media (max-width: 900px){.app-footer{padding:12px 14px}.app-footer__inner{flex-direction:column;align-items:flex-start;gap:8px}.app-footer__nav{justify-content:flex-start}}.app-bottomnav{display:none;position:sticky;bottom:0;z-index:50;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottomnav-link{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:1px solid transparent;border-radius:10px;font-size:10.5px;font-weight:600;color:var(--color-text-muted);text-decoration:none;transition:color .15s ease,background .15s ease,border-color .15s ease}.bottomnav-link .nav-icon{width:21px;height:21px}.bottomnav-link:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border)}.bottomnav-link.active{color:var(--highlight-fg);background:var(--highlight-active-bg);border-color:var(--highlight-border)}@media (max-width: 900px){.app-sidebar:not(.drawer-open){display:none}.topbar-menu-btn,.topbar-brand-mobile{display:inline-flex}.app-bottomnav{display:flex}.app-topbar{padding:8px 14px}.app-main{padding:14px 14px 24px;padding-bottom:calc(24px + env(safe-area-inset-bottom));max-width:none}.app-topbar .user-public-id-wrap,.topbar-nav-label{display:none}.topbar-nav-link{width:36px;padding:0;justify-content:center}.page-header{margin-bottom:var(--spacing-md)}.page-header>.btn,.page-header>.card-actions,.page-header>.page-actions{width:100%;margin-left:0}.page-header>.btn{justify-content:center}.assignments-grid{grid-template-columns:1fr}}.dash-page{display:flex;flex-direction:column;gap:12px}.dash-page--fill,.dash-page--teacher{min-height:calc(100vh - 120px)}.dash-teacher-shell{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;align-items:start;min-height:inherit}.dash-teacher-main{min-width:0;display:flex;flex-direction:column;gap:12px}.dash-teacher-calendar{min-width:0;position:sticky;top:calc(56px + var(--shell-pad-y, 20px));align-self:start;background:var(--background-card);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.dash-teacher-calendar .ui-calendar-panel{border-left:none;min-height:0}@media (max-width: 1100px){.dash-teacher-shell{grid-template-columns:1fr}.dash-teacher-calendar{position:static}}.dash-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.9fr);gap:12px;flex:1;align-items:stretch;min-height:0}.dash-panel{background:var(--background-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:18px 20px;display:flex;flex-direction:column;gap:12px;min-height:0;box-shadow:var(--shadow-card)}.dash-panel--main{min-height:320px}.dash-panel--side,.dash-panel--tips{height:auto}.dash-side{display:flex;flex-direction:column;gap:12px;min-height:0}.dash-side .dash-panel--start{flex-shrink:0}.dash-side .dash-panel--side{flex:1;min-height:180px}.dash-empty-hero{flex:1;justify-content:center}.dash-empty-hero.ui-empty{background:var(--card-bg);border:1px solid var(--border-default);box-shadow:var(--shadow-card)}.dash-empty-hero .ui-empty__visual{width:min(280px,70%)}.dash-empty-hero .ui-empty__illustration{width:100%;height:auto;aspect-ratio:1 / 1;object-fit:contain;display:block}.dash-empty-hero-icon{width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:var(--sage-pale);color:var(--sage-primary);margin-bottom:4px}.dash-empty-hero-icon .nav-icon,.dash-empty-hero-icon svg{width:24px;height:24px}.dash-empty-hero h4,.dash-empty-hero .ui-empty__title{margin:0;letter-spacing:-.02em;color:var(--text-primary)}.dash-empty-hero p,.dash-empty-hero .ui-empty__desc{margin:0;color:var(--text-secondary)}.dash-feed--grow{flex:1;overflow:auto}.dash-start-list{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.dash-notif-list{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;overflow-y:auto}.dash-notif-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:var(--color-bg);text-align:left;cursor:pointer;font:inherit;color:inherit;transition:background .12s ease,border-color .12s ease}.dash-notif-item:hover{border-color:color-mix(in srgb,var(--color-border) 80%,var(--color-primary));background:color-mix(in srgb,var(--color-primary) 5%,var(--color-bg))}.dash-notif-item.unread{background:var(--color-primary-soft)}.dash-notif-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-primary)}.dash-notif-icon .nav-icon{width:15px;height:15px}.dash-notif-copy{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.dash-notif-title{font-size:13px;font-weight:650;color:var(--color-text);line-height:1.3}.dash-notif-body{font-size:11.5px;line-height:1.35;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dash-notif-time{font-size:11px;color:var(--color-text-muted)}.dash-notif-dot{width:7px;height:7px;border-radius:50%;background:var(--color-primary);flex-shrink:0;margin-top:6px}.dash-notif-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:16px 8px;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.dash-section-link{border:none;background:none;padding:0;font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);cursor:pointer}.dash-section-link:hover{text-decoration:none}.dash-start-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:10px;text-decoration:none;color:inherit;background:var(--color-bg);border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);transition:border-color .15s ease,background .15s ease,transform .15s ease}.dash-start-item:hover{color:var(--highlight-fg);background:var(--highlight-hover-bg);border-color:var(--highlight-border);transform:none}.dash-start-item>.nav-icon,.dash-start-item>svg{width:14px;height:14px;color:var(--color-text-muted);flex-shrink:0}.dash-start-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.dash-start-title{font-size:13px;font-weight:650;color:var(--color-text)}.dash-start-desc{font-size:11.5px;line-height:1.3;color:var(--color-text-muted)}.dash-alert-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;text-decoration:none;color:inherit;background:color-mix(in srgb,var(--color-warning) 12%,var(--color-bg-secondary));border:1px solid color-mix(in srgb,var(--color-warning) 35%,var(--color-border))}.dash-alert-card strong{display:block;font-size:13.5px;margin-bottom:2px}.dash-alert-card span{display:block;font-size:12px;color:var(--color-text-muted)}.dash-tip-text{margin:0;font-size:13px;line-height:1.45;color:var(--color-text-muted)}@media (max-width: 900px){.dash-body{grid-template-columns:1fr}.dash-panel--main{min-height:240px}}.dash-top{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}.dash-top-cta{flex-shrink:0}.dash-greeting{margin-bottom:0;min-width:0;flex:1}.dash-greeting h1{font-family:var(--font-display);font-size:clamp(1.55rem,2.2vw,1.9rem);font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.25;color:var(--color-ink)}.dash-greeting-email{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted)}.dash-greeting p{color:var(--text-secondary);margin:6px 0 0;font-size:var(--font-size-base);line-height:1.45;font-weight:500}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:0}.dash-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 520px){.dash-grid-4{grid-template-columns:1fr}}.dash-stat-link{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease}button.dash-stat-link{display:block;width:100%;font:inherit;text-align:left}.dash-stat-link:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.dash-progress-card .dash-progress{margin:0}.dash-stat{background:var(--card-bg);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-card)}.dash-stat-value{font-family:var(--font-display);font-size:1.75rem;font-weight:600;line-height:1.1;color:var(--text-primary)}.dash-stat-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-top:4px}.dash-stat.accent-primary,.dash-stat.accent-success,.dash-stat.accent-warning,.dash-stat.accent-danger,.dash-stat.accent-coin{background:#fff;border-color:var(--border-default)}.dash-stat.accent-primary .dash-stat-value,.dash-stat.accent-success .dash-stat-value,.dash-stat.accent-warning .dash-stat-value,.dash-stat.accent-danger .dash-stat-value,.dash-stat.accent-coin .dash-stat-value{color:var(--text-primary)}.dash-columns{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;align-items:start}.dash-columns>div{display:flex;flex-direction:column;gap:10px;min-width:0}@media (max-width: 1000px){.dash-columns{grid-template-columns:1fr}}.dash-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px}.dash-hero{position:relative;overflow:hidden;background:radial-gradient(420px 180px at 95% -30%,var(--color-primary-soft),transparent 65%),var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:0;box-shadow:none}.dash-hero-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);margin-bottom:4px}.dash-hero h2{margin:0 0 4px;font-size:18px;line-height:1.25}.dash-hero p{color:var(--color-text-muted);margin:0 0 10px;max-width:58ch;line-height:1.4;font-size:var(--font-size-sm)}.dash-progress{height:8px;border-radius:999px;background:var(--color-bg-tertiary);overflow:hidden;margin:var(--spacing-sm) 0 var(--spacing-xs)}.dash-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--color-primary),#8b5cf6);transition:width .4s ease}.dash-progress-caption{display:flex;justify-content:space-between;font-size:var(--font-size-sm);color:var(--color-text-muted)}.dash-feed{display:flex;flex-direction:column;gap:6px}.dash-feed-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease}.dash-panel .dash-feed-item{background:var(--color-bg-tertiary)}.dash-feed-item:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.dash-feed-icon,.dash-feed-item .icon-chip{flex-shrink:0}.dash-feed-body{flex:1;min-width:0}.dash-feed-title{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.dash-feed-meta{font-size:12px;color:var(--color-text-muted);display:block}.dash-feed-meta.overdue{color:var(--color-error);font-weight:600}.dash-empty{padding:14px 12px;text-align:center;color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.dash-empty-compact{padding:10px 12px;text-align:left;background:transparent}.dash-empty a{color:var(--color-primary);font-weight:600;text-decoration:none}.dash-empty a:hover{text-decoration:none}.dash-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.dash-actions-dense{grid-template-columns:repeat(6,minmax(0,1fr))}.dash-action{display:flex;flex-direction:row;align-items:center;gap:8px;padding:8px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:13px;font-weight:600;color:var(--color-text);text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-action:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.dash-action-icon,.dash-action .icon-chip{flex-shrink:0}.dash-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.dash-section-title h3{margin:0;font-size:var(--font-size-lg)}.dash-section-title a{font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);text-decoration:none}.dash-section-title a:hover{text-decoration:none}.dash-side-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;box-shadow:none;margin-bottom:0}.dash-coin-row{display:flex;align-items:center;gap:var(--spacing-md)}.dash-coin-value{font-family:var(--font-display);font-size:30px;font-weight:800;color:var(--color-coin);display:inline-flex;align-items:center;gap:8px}.dash-coin-value .nav-icon{width:28px;height:28px}.title-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:10px;background:var(--color-primary-soft);color:var(--color-primary)}.title-icon .nav-icon{width:20px;height:20px}.page-header h1,.dash-section-title h3{display:flex;align-items:center;gap:10px}.page-title-row h1{display:block}.dash-section-title .title-icon{width:28px;height:28px;border-radius:8px}.dash-section-title .title-icon .nav-icon{width:16px;height:16px}.card h3 .title-icon{width:28px;height:28px;border-radius:8px;margin-right:8px;vertical-align:-8px}.card h3 .title-icon .nav-icon,.btn .nav-icon{width:16px;height:16px}.inline-icon{display:inline-flex;vertical-align:-3px}.inline-icon .nav-icon{width:15px;height:15px}.empty-icon{display:flex;justify-content:center;margin:0 auto var(--spacing-md);width:auto;height:auto;background:transparent;border-radius:0;color:inherit}.empty-icon .nav-icon{width:30px;height:30px}.dash-feed-icon .nav-icon,.dash-action-icon .nav-icon{width:19px;height:19px}.dash-feed-icon,.dash-action-icon{color:var(--color-primary)}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--color-text-muted)}.status-dot.active{background:var(--color-success);box-shadow:0 0 0 3px #22a06b33}.status-dot.inactive{background:var(--color-error);box-shadow:0 0 0 3px #e5484d26}.assignment-item .icon-chip{flex-shrink:0}.page-title-row h3{margin:0}.user-dashboard{max-width:none;margin:0;width:100%}.page-container>.alert,.page-container>.filter-bar{margin-bottom:var(--spacing-md)}.page-container>.loading{padding:var(--spacing-2xl) var(--spacing-lg)}.assignment-desc{margin-bottom:0}.assignment-info{flex:1;min-width:0}.assignment-info h3{margin:0 0 4px;line-height:1.3}.assignment-action .btn{white-space:nowrap}.dash-section-title{margin-bottom:8px}.dash-columns{gap:12px}@media (max-width: 1100px){.dash-actions-dense{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.dash-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.dash-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-grid-4,.dash-actions-dense{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-top-cta{width:100%;justify-content:center}.dash-greeting h1{font-size:var(--font-size-xl)}}@media (max-width: 560px){.history-status,.history-metrics{padding-left:0}.assignment-item{flex-wrap:wrap}.assignment-action,.assignment-action .btn{width:100%}}.video-source-field{display:flex;flex-direction:column;gap:10px}.video-source-tabs{display:inline-flex;gap:4px;padding:3px;background:var(--color-bg-tertiary);border-radius:10px;width:fit-content;max-width:100%}.video-source-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--color-text-muted);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.video-source-tab .nav-icon{width:15px;height:15px}.video-source-tab:hover:not(:disabled){color:var(--color-text)}.video-source-tab.active{background:var(--color-bg-secondary);color:var(--color-primary);box-shadow:var(--shadow-sm)}.video-source-tab:disabled{opacity:.55;cursor:not-allowed}.video-upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.video-upload-name{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.video-source-hint{margin:0;font-size:var(--font-size-sm);line-height:1.4}.video-source-preview{margin-top:4px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);background:#0b0d12}.video-source-player{display:block;width:100%;aspect-ratio:16 / 9;border:none;background:#0b0d12;object-fit:contain}.ia-video-frame{position:relative;display:block;width:100%;aspect-ratio:16 / 9;border:none;background:#0b0d12;overflow:hidden}.ia-video-frame .ia-video{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;max-width:none;max-height:none;border:none;background:#0b0d12;object-fit:contain}.image-source-set,.image-source-link-edit{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.image-source-set{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg))}.image-source-set-label{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:600;color:var(--color-text);flex:1;min-width:140px}.image-source-set-label svg{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}.image-source-set-actions{display:inline-flex;flex-wrap:wrap;gap:6px}.image-source-link-edit{align-items:stretch;flex-direction:column}.image-source-link-edit .input{width:100%}.audio-url-field{display:flex;flex-direction:column;gap:8px}.image-source-preview{margin-top:4px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg-tertiary);max-height:160px;max-width:280px}.image-source-preview-img{display:block;width:100%;max-height:160px;object-fit:contain}.ia-video-loading{padding:var(--spacing-lg);text-align:center}.ile-ai-overlay{z-index:1200}.ile-ocr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:#0c10188c}.ile-ocr-overlay--top{z-index:1300}.ile-ocr-modal{width:min(920px,100%);max-height:min(92vh,900px);overflow:auto;display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:14px;border:1px solid var(--color-border);background:var(--color-bg-secondary);box-shadow:0 18px 48px #00000047}.ile-ocr-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ile-ocr-hint{margin:0;font-size:.85rem}.ile-ocr-stage{position:relative;width:100%;min-height:180px;max-height:52vh;overflow:auto;border-radius:10px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none}.ile-ocr-image{display:block;width:100%;max-width:100%;height:auto;min-height:120px;object-fit:contain;pointer-events:none;background:var(--color-bg-tertiary)}.ile-ocr-loading-img{display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--color-text-muted);font-size:.9rem}.ile-ocr-selection{position:absolute;border:2px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 18%,transparent);box-shadow:0 0 0 9999px #00000047;pointer-events:none}.ile-ocr-actions{display:flex;flex-wrap:wrap;gap:8px}.ile-ocr-progress{font-size:.9rem;font-weight:600;color:var(--color-primary)}.ile-ocr-result{min-height:110px}.user-avatar{position:relative;overflow:hidden}.user-avatar-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:50%}.topbar-avatar-link{display:inline-flex;border-radius:50%;transition:transform .1s ease,box-shadow .15s ease}.topbar-avatar-link:hover{transform:translateY(-1px);box-shadow:0 0 0 3px var(--color-primary-soft)}.notif-bell,.notif-bell-btn{position:relative}.notif-badge{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--color-error);color:#fff;font-size:10px;font-weight:700;line-height:1;pointer-events:none}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:calc(100vw - 24px);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:90;overflow:hidden;animation:fade-in .15s ease}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:10px var(--spacing-md);border-bottom:1px solid var(--color-border);font-weight:700;font-size:var(--font-size-base)}.notif-mark-all{border:none;background:none;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;padding:2px 4px}.notif-mark-all:hover{text-decoration:none}.notif-list{max-height:380px;overflow-y:auto}.notif-empty{padding:var(--spacing-lg);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.notif-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px var(--spacing-md);border:none;border-bottom:1px solid var(--color-border);background:none;cursor:pointer;text-align:left;transition:background .12s ease}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--color-bg-tertiary)}.notif-item.unread{background:var(--color-primary-soft)}.notif-item.unread:hover{background:color-mix(in srgb,var(--color-primary-soft) 70%,var(--color-bg-tertiary))}.notif-item-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:10px;background:var(--color-bg-tertiary);color:var(--color-primary)}.notif-item-icon .nav-icon{width:17px;height:17px}.notif-item-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.notif-item-title{font-weight:600;font-size:var(--font-size-base);color:var(--color-text)}.notif-item-body{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif-item-time{font-size:11px;color:var(--color-text-muted)}.notif-item-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0;margin-top:6px}.notif-section-label{padding:8px var(--spacing-md) 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.notif-empty--compact{padding:var(--spacing-sm) var(--spacing-md)}.notif-request{display:flex;flex-direction:column;gap:8px;padding:10px var(--spacing-md);border-bottom:1px solid var(--color-border);background:var(--color-primary-soft)}.notif-request--history{background:none}.notif-request-main{display:flex;align-items:flex-start;gap:10px}.notif-request-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-left:42px}.notif-request--history .notif-request-actions{padding-left:0;margin-left:auto}.notif-request--history{flex-direction:row;align-items:center;justify-content:space-between}.notif-action-error{padding:8px var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-error);border-bottom:1px solid var(--color-border)}.app-main:has(.settings-page){max-width:none!important}.page-container.settings-page{display:flex;flex-direction:column;gap:12px;max-width:none;width:100%}.settings-page-head{margin-bottom:0;align-items:center}.settings-page-head h1{font-size:var(--font-size-2xl);letter-spacing:-.02em}.settings-page-head .page-subtitle{margin:2px 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:12px;align-items:stretch}.settings-panel--prefs{grid-column:1 / -1}.settings-panel--profile{min-height:100%;gap:16px;padding:16px 16px 18px;justify-content:space-between}.settings-panel--profile .settings-avatar-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px 16px;width:100%;padding:14px 16px;border-radius:12px;background:var(--color-bg);border:1px solid color-mix(in srgb,var(--color-border) 75%,transparent)}.settings-panel--profile .settings-avatar{width:80px;height:80px;font-size:30px;flex-shrink:0}.settings-panel--profile .settings-avatar-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.settings-panel--profile .settings-avatar-label{margin:0;font-size:13.5px;font-weight:650;color:var(--color-text);letter-spacing:-.01em}.settings-panel--profile .settings-avatar-meta .settings-hint{font-size:12px}.settings-panel--profile .settings-avatar-buttons{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:0}.settings-panel--profile .settings-avatar-buttons .btn{min-width:118px;height:34px;padding-inline:14px}.settings-panel--profile .settings-form{margin-top:0;gap:10px}.settings-preview{flex:1;display:flex;flex-direction:column;gap:10px;min-height:0}.settings-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-preview-role{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;padding:3px 8px}.settings-preview-card{flex:1;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 8%,transparent),transparent 60%),var(--color-bg);border:1px solid color-mix(in srgb,var(--color-border) 75%,transparent);min-height:96px}.settings-preview-avatar{width:52px;height:52px;font-size:20px;flex-shrink:0}.settings-preview-info{min-width:0;display:flex;flex-direction:column;gap:2px}.settings-preview-name{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-preview-email,.settings-preview-id{margin:0;font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-preview-id code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;font-weight:600;color:var(--color-text);background:color-mix(in srgb,var(--color-bg-tertiary) 80%,transparent);padding:1px 5px;border-radius:4px}.settings-preview-tips{margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:4px;font-size:12px;line-height:1.35;color:var(--color-text-muted)}.settings-preview-tips li::marker{color:color-mix(in srgb,var(--color-primary) 70%,var(--color-text-muted))}@media (max-width: 520px){.settings-panel--profile .settings-avatar-row{grid-template-columns:auto minmax(0,1fr)}.settings-panel--profile .settings-avatar-buttons{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}}.form-card.settings-panel{max-width:none;width:100%;display:flex;flex-direction:column;gap:12px;padding:14px 16px;border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--color-primary) 4%,transparent),transparent 48%),var(--color-bg-secondary)}.settings-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px}.settings-card-title{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--color-ink)}.settings-subheading{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.settings-hint{margin:0;font-size:12px;line-height:1.35;color:var(--color-text-muted)}.settings-avatar-row{display:flex;align-items:center;gap:12px}.settings-avatar{width:56px;height:56px;font-size:22px;flex-shrink:0}.settings-avatar-actions{display:flex;flex-direction:column;gap:6px;min-width:0}.settings-avatar-buttons{display:flex;gap:6px;flex-wrap:wrap}.settings-panel--security{min-height:100%;justify-content:space-between;gap:16px;padding:16px 16px 18px}.settings-panel--security .settings-section-head{flex-shrink:0}.settings-panel--security .settings-form:not(.settings-form--password){flex:1 1 auto;justify-content:flex-start;min-height:0}.settings-panel--security .settings-form:not(.settings-form--password) .form-actions{margin-top:10px}.settings-form{display:flex;flex-direction:column;gap:8px}.settings-form--password{flex:1 1 auto;justify-content:space-between;margin-top:auto;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--color-border) 75%,transparent);gap:12px}.settings-form--password .settings-subheading{margin-bottom:2px}.settings-form--password .form-actions{margin-top:auto;padding-top:4px}.settings-panel .form-group{margin:0;gap:4px;display:flex;flex-direction:column}.settings-panel .form-group label{margin:0;font-size:12px;font-weight:600;color:var(--color-ink)}.settings-panel .form-group input{padding:7px 10px;font-size:13.5px;border-radius:8px;min-height:34px}.settings-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.settings-panel .form-actions{margin:0;padding:0;justify-content:flex-start;gap:6px}.settings-panel .alert{margin:0;padding:8px 10px;font-size:12.5px}.settings-prefs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid color-mix(in srgb,var(--color-border) 80%,transparent);border-radius:10px;overflow:hidden;background:var(--color-bg)}.settings-pref-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);cursor:pointer;margin:0}.settings-pref-row:last-child{border-bottom:none}.settings-pref-row:nth-child(odd){border-right:1px solid color-mix(in srgb,var(--color-border) 70%,transparent)}.settings-pref-row:last-child:nth-child(odd){grid-column:1 / -1;border-right:none}.settings-pref-text{display:flex;flex-direction:column;gap:1px;min-width:0}.settings-pref-title{font-size:13px;font-weight:650;color:var(--color-text)}.settings-pref-desc{font-size:11.5px;line-height:1.3;color:var(--color-text-muted)}.toggle-switch{position:relative;display:inline-flex;width:40px;height:22px;flex-shrink:0;border-radius:11px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);transition:background .15s ease,border-color .15s ease}.toggle-switch.on{background:var(--color-primary);border-color:var(--color-primary)}.toggle-switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;margin:0}.toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s ease;pointer-events:none}.toggle-switch.on .toggle-knob{transform:translate(18px)}@media (max-width: 900px){.settings-layout{grid-template-columns:1fr}.settings-panel--prefs{grid-column:auto}}@media (max-width: 640px){.settings-form-row,.settings-prefs{grid-template-columns:1fr}.settings-pref-row:nth-child(odd){border-right:none}.settings-pref-row:last-child:nth-child(odd){grid-column:auto}.settings-avatar-row{flex-direction:row;align-items:center}}.support-page{display:flex;flex-direction:column;gap:var(--spacing-md)}.support-page .page-header .page-subtitle{margin-top:6px}.support-page .empty-state:has(.empty-illustration) .empty-icon,.student-assignments-page .empty-state:has(.empty-illustration) .empty-icon{width:180px;max-width:min(180px,50vw)}.support-ticket-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.support-ticket-card{padding:0;overflow:hidden}.support-ticket-head{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);border:none;background:none;cursor:pointer;text-align:left}.support-ticket-head:hover{background:var(--color-bg-tertiary)}.support-ticket-subject{font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-ticket-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0;color:var(--color-text-muted)}.support-ticket-meta .nav-icon{width:16px;height:16px}.support-ticket-date{font-size:var(--font-size-sm);color:var(--color-text-muted)}.support-status.open{background:#b476071f;color:var(--color-warning)}.support-status.answered{background:var(--color-primary-soft);color:var(--color-primary)}.support-status.closed{background:#22a06b1f;color:var(--color-success)}.support-thread{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);border-top:1px solid var(--color-border);background:var(--color-bg)}.support-message{max-width:85%;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary)}.support-message.from-user{align-self:flex-end;background:var(--color-primary-soft);border-color:transparent}.support-message.from-admin{align-self:flex-start}.support-message-author{display:flex;align-items:baseline;gap:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:700;margin-bottom:4px;color:var(--color-text)}.support-message-time{font-weight:400;font-size:11px;color:var(--color-text-muted)}.support-message-body{white-space:pre-wrap;word-break:break-word;color:var(--color-text);font-size:var(--font-size-base);line-height:1.45}.support-reply-form{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.support-reply-form textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);font-family:inherit;font-size:var(--font-size-base);resize:vertical}.support-reply-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.public-blogs-shell.app-shell{background:var(--color-bg)}.public-blogs-shell .app-body{width:100%}.public-blogs-shell .public-blogs-topbar{gap:var(--spacing-md)}.public-blogs-brand{display:inline-flex;align-items:center;gap:10px;color:var(--color-text);text-decoration:none;flex-shrink:0}.public-blogs-brand .krokurok-logo__lockup{height:36px;max-width:min(180px,100%)}.public-blogs-brand .brand-mark{display:inline-flex;line-height:0}.public-blogs-brand-text{font-family:var(--font-display);font-weight:800;font-size:17px}.public-blogs-shell .topbar-nav{margin-left:4px}.public-blogs-actions{display:flex;align-items:center;gap:8px}.public-blogs-shell .app-main{max-width:none;width:100%}.public-blogs-shell .app-main .blogs-page{width:100%;max-width:none}@media (max-width: 700px){.public-blogs-brand-text{display:none}}.thread-auth-gate{display:flex;justify-content:flex-start;padding-top:4px}.blogs-page{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%;max-width:none}.blogs-permalink-bar{display:flex;align-items:center;gap:var(--spacing-sm)}.blogs-header{align-items:flex-start}.blogs-header .blogs-search{flex:0 1 320px;margin-left:auto;align-self:center}.blogs-search{display:flex;align-items:center;gap:var(--spacing-sm);min-width:200px;max-width:320px;width:100%;padding:8px 14px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-secondary)}.blogs-search .nav-icon{width:18px;height:18px;color:var(--color-text-muted);flex-shrink:0}.blogs-search input{flex:1;min-width:0;border:none;background:none;color:var(--color-text);font-size:var(--font-size-base)}.blogs-search input:focus{outline:none}.blogs-tabs{display:flex;gap:8px}.threads-feed{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-lg, 14px);background:var(--color-bg-secondary);overflow:hidden}.threads-hint{padding:16px 18px}.thread-avatar,.user-avatar.thread-avatar{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:700;font-size:15px;overflow:hidden;-webkit-user-select:none;user-select:none}.thread-avatar.sm,.user-avatar.thread-avatar.sm{width:32px;height:32px;font-size:13px}.thread-avatar.krokurok-avatar{background:linear-gradient(145deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 55%,#1a1a1a));box-shadow:0 0 0 2px var(--color-primary-soft)}.thread-composer{display:flex;gap:12px;padding:16px 18px;border-bottom:1px solid var(--color-border)}.thread-composer-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.thread-composer-editor{width:100%;min-height:1.45em;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:1.05rem;line-height:1.45;padding:10px 12px;outline:none;white-space:pre-wrap;word-break:break-word;transition:border-color .12s ease,box-shadow .12s ease}.thread-composer-editor.expanded{min-height:calc(5.8em + 20px)}.thread-composer-editor:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.thread-composer-editor:empty:before{content:attr(data-placeholder);color:var(--color-text-muted);pointer-events:none}.thread-composer-editor strong,.thread-composer-editor b{font-weight:700}.thread-composer-editor em,.thread-composer-editor i{font-style:italic}.thread-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.thread-composer-format,.thread-composer-submit{display:flex;align-items:center;gap:4px}.thread-composer-submit{margin-left:auto;gap:8px}.thread-composer-previews{display:flex;flex-wrap:wrap;gap:10px}.thread-composer-preview{position:relative;width:112px;height:112px;border-radius:12px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg)}.thread-composer-preview img{width:100%;height:100%;object-fit:cover;display:block}.thread-composer-preview-remove{position:absolute;top:6px;right:6px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#0f172ab8;color:#fff;cursor:pointer;padding:0}.thread-composer-preview-remove:hover{background:#0f172ae6}.thread-composer-preview-remove .nav-icon{width:14px;height:14px}.thread-format-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-text);font-size:14px;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.thread-format-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.thread-format-btn:disabled{opacity:.5;cursor:not-allowed}.thread-format-btn .nav-icon{width:16px;height:16px}.thread-post-content strong{font-weight:700}.thread-post-content em{font-style:italic}.thread-post-image{display:block;max-width:min(100%,520px);max-height:420px;width:auto;height:auto;margin:8px 0;border-radius:12px;border:1px solid var(--color-border);object-fit:contain;background:var(--color-bg)}.thread-post-image-fallback{display:inline-block;margin:6px 0;color:var(--color-text-muted);font-size:13px}.thread-post{display:flex;gap:12px;padding:14px 18px 12px;border-bottom:1px solid var(--color-border);transition:background .12s ease}.thread-post:last-child{border-bottom:none}.thread-post:hover{background:color-mix(in srgb,var(--color-bg) 55%,transparent)}.thread-post.pinned{background:color-mix(in srgb,var(--color-primary-soft) 70%,var(--color-bg-secondary))}.thread-post.pending{opacity:.85}.thread-post.rejected{opacity:.7}.thread-post-left{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:40px}.thread-line{flex:1;width:2px;min-height:12px;margin-top:6px;border-radius:2px;background:var(--color-border)}.thread-post-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.thread-post-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;min-height:22px}.thread-author{font-weight:700;font-size:.95rem;color:var(--color-text);text-decoration:none}a.thread-author:hover{text-decoration:none}.thread-author.official{color:var(--color-primary)}.thread-pin{display:inline-flex;color:var(--color-primary)}.thread-pin .nav-icon{width:14px;height:14px}.thread-date{font-size:13px;color:var(--color-text-muted);text-decoration:none}a.thread-date:hover{text-decoration:none;color:var(--color-text)}.thread-status-badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700}.thread-status-badge.pending{background:color-mix(in srgb,#f0a202 18%,transparent);color:#b7791f}.thread-status-badge.rejected{background:color-mix(in srgb,#e0315a 14%,transparent);color:#e0315a}.thread-delete{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--color-text-muted);cursor:pointer}.thread-delete:hover{color:var(--color-error, #d33);background:var(--color-bg-tertiary, var(--color-bg))}.thread-delete .nav-icon{width:15px;height:15px}.thread-post-title{display:inline-block;font-weight:700;font-size:1.02rem;color:var(--color-text);line-height:1.35;text-decoration:none}a.thread-post-title:hover{text-decoration:none}.thread-post-content{white-space:pre-wrap;word-break:break-word;color:var(--color-text);font-size:.98rem;line-height:1.5}.thread-actions{display:flex;align-items:center;gap:4px;margin-top:6px}.thread-action{display:inline-flex;align-items:center;gap:6px;min-width:36px;height:32px;padding:0 10px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--color-text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease}.thread-action .nav-icon{width:17px;height:17px}.thread-action:hover{color:var(--color-primary);background:var(--color-primary-soft)}.thread-action.liked{color:#e0315a;background:#e0315a1a}.thread-action.liked .nav-icon{fill:#e0315a}.thread-action.active{color:var(--color-primary);background:var(--color-primary-soft)}.thread-replies{display:flex;flex-direction:column;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border)}.thread-reply-thread{display:flex;flex-direction:column;gap:10px}.thread-reply{display:flex;gap:10px}.thread-reply--nested{margin-left:36px;padding-left:10px;border-left:2px solid var(--color-border)}.thread-reply-main{flex:1;min-width:0}.thread-reply-body{white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.45;color:var(--color-text)}.thread-reply-actions{display:flex;gap:8px;margin-top:4px}.thread-reply-actions .btn-linkish{border:none;background:none;padding:0;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.thread-reply-actions .btn-linkish:hover{color:var(--color-primary)}.thread-reply-target{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.thread-reply-form{display:flex;gap:10px;align-items:flex-start}.thread-reply-form-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.thread-reply-form-main textarea{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:var(--font-size-base);resize:vertical;min-height:38px}.thread-reply-form-main textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}@media (max-width: 700px){.blogs-header .blogs-search{margin-left:0;max-width:none;flex:1 1 auto}.thread-composer,.thread-post{padding-left:12px;padding-right:12px}}.support-admin-page .page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.support-admin-hint{margin:6px 0 0;max-width:52ch;font-size:13px;line-height:1.4;color:var(--color-text-muted, #667)}.support-admin-filters{display:flex;align-items:center;gap:var(--spacing-sm)}.support-admin-filters select{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text)}.support-admin-empty{color:var(--color-text-muted)}.support-admin-layout{display:grid;grid-template-columns:minmax(280px,1fr) 1.6fr;gap:var(--spacing-md);align-items:start}.support-admin-layout:has(.support-admin-thread:empty){grid-template-columns:1fr}@media (max-width: 900px){.support-admin-layout{grid-template-columns:1fr}}.support-admin-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.support-admin-item{display:flex;flex-direction:column;gap:6px;width:100%;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;text-align:left;transition:border-color .15s ease}.support-admin-item:hover{border-color:var(--color-primary)}.support-admin-item.active{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.support-admin-item--krok{border-left:3px solid var(--brand-urok, #f05a1a)}.support-admin-item--new{animation:support-admin-pulse 1.2s ease 2}@keyframes support-admin-pulse{0%,to{box-shadow:none}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-urok, #f05a1a) 35%,transparent)}}.support-admin-krok-badge{display:inline-flex;align-self:flex-start;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--brand-krok, #1a3d2e);background:color-mix(in srgb,var(--brand-urok, #f05a1a) 16%,#fff)}.support-admin-item-top{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.support-admin-subject{font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.support-admin-item-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted)}.support-admin-thread{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.support-admin-thread-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.support-admin-thread-header h3{margin:0 0 4px}.support-admin-thread-user{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.support-admin-messages{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:min(52vh,520px);overflow:auto}.support-admin-messages .support-message-body,.support-thread .support-message-body{white-space:pre-wrap;word-break:break-word}.role-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;font-size:.72rem;font-weight:600;letter-spacing:.01em;border-radius:6px;border:1px solid transparent;white-space:nowrap;vertical-align:middle;line-height:1.3}.role-badge--plate{padding:5px 12px;font-size:13px;font-weight:700;letter-spacing:.01em;border-radius:999px;border-width:1.5px;border-style:solid;box-shadow:1.5px 2px color-mix(in srgb,currentColor 28%,transparent)}.role-badge--student{background:linear-gradient(180deg,#f3f7ff,#e8f0ff);color:#2f5fad;border-color:#7aa3e0}.role-badge--parent{background:linear-gradient(180deg,#f3faf5,#e5f5eb);color:#2f7a52;border-color:#6fba90}.role-badge--teacher{background:linear-gradient(180deg,#fff8f0,#ffefd9);color:#b56a1a;border-color:#e0a45a}.name-with-role{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.public-lesson-shell{min-height:100vh;background:radial-gradient(1200px 500px at 10% -10%,rgba(37,99,235,.08),transparent 55%),radial-gradient(900px 420px at 90% 0%,rgba(14,165,233,.07),transparent 50%),#f7f9fc}.public-lesson-topbar{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid rgba(15,23,42,.08);background:var(--card-bg);border-bottom:1px solid var(--border-default);position:sticky;top:0;z-index:10}.public-lesson-brand.sidebar-brand{display:inline-flex;align-items:center;gap:10px;padding:4px 0;text-decoration:none;color:inherit}.public-lesson-register{margin-left:auto}.public-lesson-main{display:flex;justify-content:center;box-sizing:border-box;width:100%;max-width:none;margin:0;padding:24px 16px 48px;min-height:calc(100vh - 56px)}.public-lesson-stage{width:100%;max-width:860px;margin:0 auto}.public-lesson-stage>.ia-player,.public-lesson-stage>.player-overview{width:100%;max-width:none;margin:0}.public-lesson-stage>.ia-player--guest-gate{min-height:calc(100vh - 140px)}@media (max-width: 640px){.public-lesson-topbar{flex-wrap:wrap}.public-lesson-main{padding:16px 12px 32px}}.plan-badge,.plan-badge--starter,.plan-badge--opt,.plan-badge--max{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:10px;font-size:12px;font-weight:600;text-decoration:none;border:1px solid transparent;color:var(--color-ink);background:transparent;transition:color .15s ease,border-color .15s ease,background .15s ease}.plan-badge:hover,.plan-badge--starter:hover,.plan-badge--opt:hover,.plan-badge--max:hover{background:var(--color-ink-03);border-color:var(--color-ink-12);color:var(--color-ink)}.plan-limit-message,.thread-composer--locked.plan-limit-message,.thread-composer.plan-limit-message{padding:12px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md, 14px);background:var(--color-white);display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--color-ink);box-shadow:var(--shadow-card)}.plan-limit-message p{margin:0;color:var(--text-secondary)}.plan-limit-message a:not(.btn){color:var(--color-ink)}.plan-limit-message .btn-primary,.plan-limit-message .btn-primary:hover{color:var(--color-white, #ffffff)}.ai-usage-line{margin:8px 0 0;padding-left:14px;font-size:13px;color:var(--color-text-muted)}.ai-usage-line--locked,.ai-usage-line--exhausted{color:var(--color-warning)}.subscription-page .billing-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;margin:16px 0 20px}.subscription-page .billing-toggle button{border:0;background:transparent;padding:8px 16px;cursor:pointer;color:var(--color-text-secondary)}.subscription-page .billing-toggle button.active{background:var(--color-primary);color:#fff}.subscription-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width: 900px){.subscription-grid{grid-template-columns:1fr}}.subscription-card{position:relative;border:1px solid var(--color-border);border-radius:14px;padding:20px;background:var(--color-bg-secondary);display:flex;flex-direction:column;gap:12px}.subscription-card--recommended{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary-soft)}.subscription-card--current{outline:2px solid rgba(34,160,107,.35)}.subscription-card__ribbon{position:absolute;top:12px;right:12px;font-size:11px;font-weight:700;color:var(--color-primary-hover);background:var(--color-primary-soft);padding:2px 8px;border-radius:999px}.subscription-card h2{margin:0;font-size:1.35rem}.subscription-card__price{font-size:1.6rem;font-weight:700}.subscription-card__period{font-size:.9rem;font-weight:500;color:var(--color-text-muted);margin-left:4px}.subscription-card ul{margin:0;padding-left:18px;color:var(--color-text-secondary);flex:1}.subscription-card li{margin:4px 0}.subscription-card__trial{font-weight:600;margin:8px 0 4px;font-size:.92rem}.subscription-card__charge{font-size:.85rem;margin:0 0 12px;line-height:1.35}.subscription-current{padding:14px 16px;margin-bottom:8px}.subscription-current__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}.subscription-plan-line{display:inline-flex;align-items:center;gap:8px}.subscription-status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0}.subscription-status-dot.is-active{background:var(--color-success)}.subscription-status-dot.is-inactive{background:var(--color-error)}.subscription-period-infinity{display:inline-block;font-size:1.45em;line-height:1;font-weight:600;transform:scale(1.55,1.35);transform-origin:left center}@media (max-width: 800px){.subscription-current__grid{grid-template-columns:1fr 1fr}}.subscription-history{padding:16px}.subscription-history__list{list-style:none;padding:0;margin:0 0 16px;font-size:.92rem;max-height:220px;overflow:auto}.subscription-history__list li{padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--color-border, #ddd) 70%,transparent)}.subscription-footnote{margin-top:20px;max-width:720px}.upgrade-modal{max-width:480px}.call-limit-countdown{margin-left:8px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-info)}.call-limit-countdown--urgent{color:var(--color-warning)}.thread-composer--locked{opacity:.95}.card,.data-table-wrap,.table-card,.notif-dropdown,.subscription-card,.empty-state,.ai-panel,.ai-assistant-panel{border-radius:var(--radius-lg);border:1px solid var(--border-default);background:#fffdf9d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-card)}.tabs,.segmented-control,.billing-toggle,.subscription-page .billing-toggle{border-color:var(--border-default);background:color-mix(in srgb,var(--sand-soft) 55%,var(--cream))}.badge,.status-badge,.role-badge{border-radius:999px}.alert,.alert-info,.alert-warning,.alert-error,.alert-success{border-radius:14px;border-color:var(--border-soft)}.alert-info,.alert-warning,.alert-success,.alert-error,.alert.alert-error{background:var(--color-white);border:1px solid var(--border-default);color:var(--color-ink)}.alert-error>svg{color:var(--color-ink)}.skeleton,.loading-skeleton,.skel{background:linear-gradient(90deg,#f0f0f0,#fff 45%,#f0f0f0)}.drawer-backdrop{background:#34352f59}@media (max-width: 900px){.dash-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 420px){.dash-grid-4{grid-template-columns:1fr}}.help-krok{position:fixed;right:0;bottom:8px;z-index:80;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}.help-krok>*{pointer-events:auto}.help-krok--compact{bottom:20px}.help-krok__recall{margin-right:0;padding:8px 10px;border:none;border-radius:16px;background:transparent;cursor:pointer;line-height:0;filter:drop-shadow(0 6px 12px rgba(36,56,45,.14));transition:transform .18s ease}.help-krok__recall img{display:block;width:28px;height:auto}.help-krok__recall:hover{transform:translateY(-2px)}.help-krok__recall:focus-visible{outline:2px solid var(--brand-urok, #f05a1a);outline-offset:3px}.help-krok__fab-wrap{position:relative;margin-right:28px;display:flex;align-items:flex-end;justify-content:flex-end}.help-krok__dismiss{position:absolute;top:-28px;right:-2px;z-index:3;width:22px;height:22px;padding:0;border:1.5px solid rgba(36,56,45,.14);border-radius:999px;background:#fffdf8;color:#24382d;font-size:16px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 4px 10px #24382d1f;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .16s ease 1s,visibility 0s linear 1s,background .15s ease,transform .15s ease}.help-krok__fab-wrap:hover .help-krok__dismiss,.help-krok__fab-wrap:focus-within .help-krok__dismiss{opacity:1;visibility:visible;transition-delay:0s}.help-krok__dismiss:hover{background:#fff;transform:scale(1.06)}.help-krok__dismiss:focus-visible{outline:2px solid var(--brand-urok, #f05a1a);outline-offset:2px}.help-krok__fab{position:relative;width:96px;height:106px;padding:0;border:none;background:transparent;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;line-height:0;transform:translate(0);opacity:1;transition:transform .25s cubic-bezier(.22,1,.36,1)}.help-krok--dragging .help-krok__fab{cursor:grabbing;transition:none}.help-krok--dragging{z-index:90}.help-krok__fab-img{width:100%;height:100%;object-fit:contain;object-position:right bottom;display:block;filter:drop-shadow(0 8px 16px rgba(36,56,45,.18))}.help-krok__bubble-tip{position:absolute;right:calc(100% + 6px);bottom:52%;z-index:2;width:max-content;max-width:min(220px,calc(100vw - 140px));padding:10px 12px;border-radius:16px 16px 4px;background:#fffdf8;color:#24382d;border:1.5px solid rgba(36,56,45,.12);box-shadow:0 8px 20px #24382d24;font-family:inherit;font-size:13px;font-weight:600;line-height:1.35;text-align:left;white-space:normal;pointer-events:none;opacity:0;transform:translate(8px,6px) scale(.96);transform-origin:right bottom;transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1)}.help-krok__bubble-tip:after{content:"";position:absolute;right:-7px;bottom:12px;width:12px;height:12px;background:#fffdf8;border-right:1.5px solid rgba(36,56,45,.12);border-bottom:1.5px solid rgba(36,56,45,.12);transform:rotate(-45deg)}.help-krok:not(.help-krok--open):not(.help-krok--dragging) .help-krok__fab:hover,.help-krok:not(.help-krok--open):not(.help-krok--dragging) .help-krok__fab:focus-visible{transform:translate(-2px,-4px)}.help-krok:not(.help-krok--open) .help-krok__fab:hover .help-krok__bubble-tip,.help-krok:not(.help-krok--open) .help-krok__fab:focus-visible .help-krok__bubble-tip{opacity:1;transform:translate(0) scale(1)}@media (prefers-reduced-motion: reduce){.help-krok__bubble-tip{transition:none}}.help-krok__fab:focus-visible{outline:2px solid var(--brand-urok, #f05a1a);outline-offset:4px;border-radius:16px}@media (prefers-reduced-motion: reduce){.help-krok__fab{transition:none}}.help-krok__panel{width:min(360px,calc(100vw - 32px));height:min(460px,calc(100vh - 140px));margin-right:20px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-default, rgba(36, 56, 45, .14));border-radius:18px;box-shadow:0 16px 40px #24382d29;overflow:hidden;animation:help-krok-in .2s ease}@keyframes help-krok-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.help-krok__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 10px 14px;border-bottom:1px solid var(--border-default, rgba(36, 56, 45, .12));background:color-mix(in srgb,var(--brand-urok, #f05a1a) 8%,#fff)}.help-krok__title{display:flex;align-items:center;gap:10px;min-width:0}.help-krok__title img{width:36px;height:42px;object-fit:contain;flex-shrink:0}.help-krok__title strong{display:block;font-size:15px;line-height:1.2;color:var(--color-ink, #24382d)}.help-krok__title span{display:block;font-size:12px;color:var(--text-muted, rgba(36, 56, 45, .65))}.help-krok__close{width:32px;height:32px;border:none;border-radius:10px;background:transparent;color:var(--color-ink, #24382d);font-size:22px;line-height:1;cursor:pointer}.help-krok__close:hover{background:#24382d14}.help-krok__messages{flex:1;min-height:0;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fafbfa}.help-krok__bubble{max-width:92%;padding:10px 12px;border-radius:14px;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.help-krok__bubble--assistant{align-self:flex-start;background:#fff;border:1px solid rgba(36,56,45,.1);color:var(--color-ink, #24382d);border-bottom-left-radius:6px}.help-krok__bubble--user{align-self:flex-end;background:var(--brand-krok, #1a3d2e);color:#fff;border-bottom-right-radius:6px}.help-krok__bubble--typing{opacity:.72;font-style:italic}.help-krok__error{margin:0;padding:6px 14px 0;font-size:12px;color:#b42318}.help-krok__actions{display:flex;justify-content:stretch;padding:8px 12px 0;background:#fff}.help-krok__operator{width:100%;border:1px solid rgba(36,56,45,.16);border-radius:12px;background:#fff;color:var(--color-ink, #24382d);font:inherit;font-size:13px;font-weight:600;padding:9px 12px;cursor:pointer;text-align:center;text-decoration:none}.help-krok__operator:hover:not(:disabled){border-color:var(--brand-urok, #f05a1a);color:var(--brand-urok, #f05a1a)}.help-krok__operator:disabled{opacity:.5;cursor:not-allowed}.help-krok__operator--done{background:color-mix(in srgb,var(--brand-krok, #1a3d2e) 8%,#fff);border-color:color-mix(in srgb,var(--brand-krok, #1a3d2e) 28%,transparent)}.help-krok__composer{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 12px 12px;border-top:none;background:#fff}.help-krok__composer textarea{resize:none;border:1px solid rgba(36,56,45,.16);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.35;color:var(--color-ink, #24382d);background:#fff;min-height:44px;max-height:96px}.help-krok__composer textarea:focus{outline:none;border-color:var(--brand-urok, #f05a1a);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-urok, #f05a1a) 22%,transparent)}.help-krok__composer button{width:44px;height:44px;align-self:end;border:none;border-radius:12px;background:var(--brand-urok, #f05a1a);color:#fff;font-size:20px;font-weight:700;cursor:pointer}.help-krok__composer button:disabled{opacity:.45;cursor:not-allowed}.help-krok__composer button:not(:disabled):hover{background:var(--brand-urok-hover, #d94e14)}@media (max-width: 900px){.help-krok{right:0;bottom:calc(72px + env(safe-area-inset-bottom,0px))}.help-krok__fab{width:96px;height:108px;margin-right:12px;transform:translate(calc(100% + 20px))}.help-krok:hover .help-krok__fab,.help-krok:focus-within .help-krok__fab,.help-krok--open .help-krok__fab,.help-krok--custom-pos .help-krok__fab,.help-krok--dragging .help-krok__fab{transform:translate(0)}.help-krok__panel{height:min(420px,calc(100vh - 180px));margin-right:12px}}
