:root{--brand-lavender-50:#f2eefd;--brand-lavender-100:#e2d9fa;--brand-lavender-200:#c7b7f2;--brand-lavender-300:#aa94ea;--brand-lavender-400:#9278e2;--brand-lavender-500:#7b5cd9;--brand-lavender-600:#6748c7;--brand-lavender-700:#5639b0;--brand-lavender-800:#4a2ea0;--brand-lavender-900:#382279;--brand-amber-50:#fff5d7;--brand-amber-100:#fcefcb;--brand-amber-200:#f8dfa0;--brand-amber-300:#f4cb68;--brand-amber-400:#f2be45;--brand-amber-500:#f0b428;--brand-amber-600:#d89a10;--brand-amber-700:#b77c00;--brand-amber-800:#8f6400;--brand-amber-900:#6b4d08;--brand-magenta-50:#fdeaf2;--brand-magenta-100:#fad2e3;--brand-magenta-200:#f4a6c8;--brand-magenta-300:#ed78aa;--brand-magenta-400:#e94691;--brand-magenta-500:#dc1464;--brand-magenta-600:#bf0f56;--brand-magenta-700:#9d0b47;--brand-magenta-800:#790838;--brand-magenta-900:#5a062a;--ink-50:#f0edf7;--ink-100:#e5e0f0;--ink-200:#c5bee0;--ink-300:#a89bcf;--ink-400:#8a79be;--ink-500:#6e5f9c;--ink-600:#57477f;--ink-700:#3c2864;--ink-800:#261f40;--ink-900:#1a1530;--neutral-0:#ffffff;--neutral-50:#faf9fd;--neutral-100:#f2f0f8;--neutral-200:#eceaf4;--neutral-300:#e8e5f0;--neutral-400:#d8d4e4;--neutral-500:#a8a4b8;--neutral-600:#6e6890;--neutral-700:#4a4270;--neutral-800:#2f294a;--neutral-900:#14102a;--neutral-1000:#0c081f;--state-green-50:#eaf7ef;--state-green-100:#dceedf;--state-green-200:#bfe0c6;--state-green-300:#8bc99a;--state-green-400:#41a95d;--state-green-500:#00712e;--state-green-600:#006329;--state-green-700:#005322;--state-green-800:#00461c;--state-green-900:#003816;--state-amber-50:var(--brand-amber-50);--state-amber-100:var(--brand-amber-100);--state-amber-200:var(--brand-amber-200);--state-amber-300:var(--brand-amber-300);--state-amber-400:var(--brand-amber-400);--state-amber-500:var(--brand-amber-500);--state-amber-600:var(--brand-amber-600);--state-amber-700:var(--brand-amber-700);--state-amber-800:var(--brand-amber-800);--state-amber-900:var(--brand-amber-900);--state-red-50:#fcecec;--state-red-100:#fce4e4;--state-red-200:#f6c4c4;--state-red-300:#e69a9a;--state-red-400:#d95c5c;--state-red-500:#b22020;--state-red-600:#9e1a1a;--state-red-700:#7a1414;--state-red-800:#641010;--state-red-900:#4f0d0d;--state-blue-50:#edf4fe;--state-blue-100:#dce8f8;--state-blue-200:#bfd4f0;--state-blue-300:#90b5e5;--state-blue-400:#5f8fd4;--state-blue-500:#2864b4;--state-blue-600:#1f559d;--state-blue-700:#174783;--state-blue-800:#163e72;--state-blue-900:#11305b;--font-sans:"Golos Text","Segoe UI",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-wide:0.06em;--sp-0:0;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-9:36px;--sp-10:40px;--sp-11:44px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--sp-32:128px;--fs-display:clamp(40px,5vw,64px);--fs-h1:clamp(28px,3.5vw,40px);--fs-h2:clamp(22px,2.5vw,30px);--fs-h3:20px;--fs-h4:18px;--fs-body-lg:17px;--fs-body:15px;--fs-sm:13px;--fs-xs:11px;--fs-2xs:10px;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.65;--icon-xs:12px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-xl:32px;--avatar-xs:20px;--avatar-sm:28px;--avatar-md:36px;--avatar-lg:48px;--avatar-xl:64px;--radius-none:0;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-3xl:32px;--radius-pill:9999px;--radius-circle:50%;--border-w-sm:1px;--border-w-md:2px;--border-w-lg:3px;--border-w-xl:4px;--shadow-none:none;--shadow-sm:0 1px 3px rgba(26,21,48,0.06);--shadow-md:0 1px 4px rgba(26,21,48,0.06),0 0 0 1px rgba(26,21,48,0.04);--shadow-lg:0 4px 16px rgba(26,21,48,0.08);--shadow-xl:0 8px 32px rgba(26,21,48,0.14);--shadow-popover:0 8px 24px rgba(26,21,48,0.12),0 0 0 1px rgba(26,21,48,0.06);--shadow-modal:0 24px 80px rgba(26,21,48,0.24),0 0 0 1px rgba(26,21,48,0.08);--duration-instant:80ms;--duration-fast:120ms;--duration-base:200ms;--duration-slow:380ms;--duration-slower:520ms;--ease-linear:linear;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--opacity-disabled:0.48;--opacity-hover-overlay:0.08;--opacity-scrim:0.56;--bp-sm:480px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--bp-2xl:1536px;--color-action:var(--brand-lavender-500);--color-action-hover:var(--brand-lavender-600);--color-action-active:var(--brand-lavender-700);--color-action-soft:var(--brand-lavender-50);--color-action-soft-hover:var(--brand-lavender-100);--color-action-strong:var(--brand-lavender-800);--color-action-disabled:var(--neutral-300);--color-accent:var(--brand-amber-500);--color-accent-hover:var(--brand-amber-600);--color-accent-active:var(--brand-amber-700);--color-accent-soft:var(--brand-amber-50);--color-accent-strong:var(--brand-amber-900);--color-accent-secondary:var(--brand-magenta-500);--color-ink:var(--ink-900);--color-ink-hover:var(--ink-800);--color-ink-active:var(--ink-700);--color-ink-soft:var(--ink-50);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-700);--text-muted:var(--neutral-600);--text-subtle:var(--neutral-500);--text-disabled:var(--neutral-400);--text-placeholder:color-mix(in srgb,var(--neutral-500) 84%,var(--neutral-0));--text-on-action:var(--neutral-0);--text-on-accent:var(--neutral-900);--text-on-ink:var(--neutral-0);--text-inverse:var(--neutral-0);--text-code:var(--color-action-strong);--surface-page:var(--neutral-0);--surface-1:var(--neutral-50);--surface-2:var(--neutral-100);--surface-3:var(--neutral-300);--surface-4:var(--neutral-400);--surface-overlay:rgba(26,21,48,0.56);--surface-inverse:var(--ink-900);--surface-disabled:var(--neutral-50);--surface-hover:color-mix(in srgb,var(--text-primary) 4%,transparent);--surface-selected:var(--brand-lavender-50);--surface-code:var(--surface-2);--border-subtle:var(--neutral-200);--border-default:var(--neutral-400);--border-strong:var(--neutral-500);--border-inverse:rgba(255,255,255,0.2);--border-focus:var(--color-action);--state-success:var(--state-green-400);--state-success-hover:var(--state-green-500);--state-success-active:var(--state-green-600);--state-success-bg:var(--state-green-100);--state-success-bg-strong:var(--state-green-200);--state-success-text:var(--state-green-800);--state-success-border:var(--state-green-300);--state-warning:var(--state-amber-700);--state-warning-hover:var(--state-amber-800);--state-warning-active:var(--state-amber-900);--state-warning-bg:var(--state-amber-100);--state-warning-bg-strong:var(--state-amber-200);--state-warning-text:var(--state-amber-900);--state-warning-border:var(--state-amber-300);--state-error:var(--state-red-500);--state-error-hover:var(--state-red-600);--state-error-active:var(--state-red-700);--state-error-bg:var(--state-red-100);--state-error-bg-strong:var(--state-red-200);--state-error-text:var(--state-red-700);--state-error-border:var(--state-red-300);--state-info:var(--state-blue-500);--state-info-hover:var(--state-blue-600);--state-info-active:var(--state-blue-700);--state-info-bg:var(--state-blue-100);--state-info-bg-strong:var(--state-blue-200);--state-info-text:var(--state-blue-800);--state-info-border:var(--state-blue-300);--focus-ring-color:rgba(123,92,217,0.3);--focus-ring-width:3px;--focus-ring-offset:2px;--shadow-focus:0 0 0 var(--focus-ring-width) var(--focus-ring-color);--surface-selection:var(--brand-lavender-100);--text-link:var(--color-action);--text-link-hover:var(--color-action-hover);--text-link-active:var(--color-action-active);--control-h-xs:24px;--control-h-sm:28px;--control-h-md:36px;--control-h-lg:44px;--control-h-xl:52px;--control-px-xs:var(--sp-2);--control-px-sm:10px;--control-px-md:14px;--control-px-lg:18px;--control-px-xl:var(--sp-6);--control-py-xs:var(--sp-1);--control-py-sm:6px;--control-py-md:10px;--control-py-lg:var(--sp-3);--control-py-xl:14px;--control-gap-sm:var(--sp-1);--control-gap-md:var(--sp-2);--control-gap-lg:var(--sp-3);--control-border-w:var(--border-w-sm);--container-xs:360px;--container-sm:560px;--container-md:720px;--container-lg:960px;--container-xl:1200px;--header-h:64px;--sidebar-w:280px;--gutter:24px;--pad-x:clamp(16px,4vw,48px);--z-base:0;--z-dropdown:100;--z-sticky:200;--z-popover:300;--z-overlay:400;--z-modal:500;--z-toast:600;--z-tooltip:700;--aspect-square:1/1;--aspect-video:16/9;--aspect-card:4/3;--scrollbar-w:10px;--scrollbar-thumb:var(--neutral-400);--scrollbar-thumb-hover:var(--neutral-500);--scrollbar-track:transparent;--backdrop-blur:8px;--hover-lift:-2px;--press-scale:0.98}@custom-media --bp-sm (min-width: 480px);@custom-media --bp-md (min-width: 768px);@custom-media --bp-lg (min-width: 1024px);@custom-media --bp-xl (min-width: 1280px);@custom-media --bp-2xl (min-width: 1536px);@custom-media --bp-sm-down (max-width: 479.98px);@custom-media --bp-md-down (max-width: 767.98px);@custom-media --bp-lg-down (max-width: 1023.98px);@custom-media --bp-xl-down (max-width: 1279.98px);:root,[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark;--color-action:var(--brand-lavender-300);--color-action-hover:var(--brand-lavender-200);--color-action-active:var(--brand-lavender-100);--color-action-soft:rgba(170,148,234,0.16);--color-action-soft-hover:rgba(170,148,234,0.24);--color-action-strong:var(--brand-lavender-100);--color-action-disabled:var(--neutral-800);--color-accent:var(--brand-amber-300);--color-accent-hover:var(--brand-amber-200);--color-accent-active:var(--brand-amber-100);--color-accent-soft:rgba(244,203,104,0.16);--color-accent-strong:var(--brand-amber-100);--color-ink:var(--neutral-0);--color-ink-hover:var(--neutral-100);--color-ink-active:var(--neutral-200);--color-ink-soft:rgba(255,255,255,0.08);--text-primary:var(--neutral-50);--text-secondary:var(--neutral-300);--text-muted:var(--neutral-400);--text-subtle:var(--neutral-500);--text-disabled:var(--neutral-600);--text-placeholder:var(--neutral-500);--text-on-action:var(--neutral-900);--text-on-accent:var(--neutral-900);--text-on-ink:var(--neutral-900);--text-inverse:var(--neutral-900);--text-code:var(--brand-lavender-100);--text-link:var(--color-action);--text-link-hover:var(--color-action-hover);--text-link-active:var(--color-action-active);--surface-page:#070707;--surface-1:#101010;--surface-2:#181818;--surface-3:#242424;--surface-4:#303030;--surface-overlay:rgba(0,0,0,0.72);--surface-inverse:var(--neutral-0);--surface-disabled:color-mix(in srgb,var(--neutral-800) 72%,transparent);--surface-hover:rgba(255,255,255,0.08);--surface-selected:rgba(170,148,234,0.18);--surface-code:rgba(255,255,255,0.08);--surface-selection:rgba(170,148,234,0.36);--border-subtle:rgba(255,255,255,0.1);--border-default:rgba(255,255,255,0.18);--border-strong:rgba(255,255,255,0.28);--border-inverse:rgba(20,16,42,0.2);--border-focus:var(--color-action);--state-success:var(--state-green-300);--state-success-hover:var(--state-green-200);--state-success-active:var(--state-green-100);--state-success-bg:color-mix(in srgb,var(--state-green-300) 16%,transparent);--state-success-bg-strong:color-mix(in srgb,var(--state-green-300) 24%,transparent);--state-success-text:var(--state-green-100);--state-success-border:color-mix(in srgb,var(--state-green-300) 44%,transparent);--state-warning:var(--state-amber-300);--state-warning-hover:var(--state-amber-200);--state-warning-active:var(--state-amber-100);--state-warning-bg:color-mix(in srgb,var(--state-amber-300) 16%,transparent);--state-warning-bg-strong:color-mix(in srgb,var(--state-amber-300) 24%,transparent);--state-warning-text:var(--state-amber-100);--state-warning-border:color-mix(in srgb,var(--state-amber-300) 44%,transparent);--state-error:var(--state-red-300);--state-error-hover:var(--state-red-200);--state-error-active:var(--state-red-100);--state-error-bg:color-mix(in srgb,var(--state-red-300) 16%,transparent);--state-error-bg-strong:color-mix(in srgb,var(--state-red-300) 24%,transparent);--state-error-text:var(--state-red-100);--state-error-border:color-mix(in srgb,var(--state-red-300) 44%,transparent);--state-info:var(--state-blue-300);--state-info-hover:var(--state-blue-200);--state-info-active:var(--state-blue-100);--state-info-bg:color-mix(in srgb,var(--state-blue-300) 16%,transparent);--state-info-bg-strong:color-mix(in srgb,var(--state-blue-300) 24%,transparent);--state-info-text:var(--state-blue-100);--state-info-border:color-mix(in srgb,var(--state-blue-300) 44%,transparent);--focus-ring-color:rgba(170,148,234,0.44);--scrollbar-thumb:var(--neutral-600);--scrollbar-thumb-hover:var(--neutral-500);--scrollbar-track:transparent}[data-theme=hc]{color-scheme:light;--text-primary:var(--neutral-1000);--text-secondary:var(--neutral-900);--text-muted:var(--neutral-800);--surface-page:var(--neutral-0);--surface-1:var(--neutral-0);--surface-2:var(--neutral-50);--border-subtle:var(--neutral-700);--border-default:var(--neutral-800);--border-strong:var(--neutral-900);--border-focus:var(--state-blue-700);--focus-ring-color:color-mix(in srgb,var(--state-blue-700) 55%,transparent)}[data-density=compact]{--control-h-xs:22px;--control-h-sm:26px;--control-h-md:32px;--control-h-lg:40px;--control-h-xl:48px;--control-px-xs:6px;--control-px-sm:var(--sp-2);--control-px-md:var(--sp-3);--control-px-lg:var(--sp-4);--control-px-xl:var(--sp-5);--control-py-xs:2px;--control-py-sm:var(--sp-1);--control-py-md:6px;--control-py-lg:10px;--control-py-xl:var(--sp-3);--control-gap-sm:2px;--control-gap-md:6px;--control-gap-lg:10px;--gutter:var(--sp-4)}[data-density=comfortable]{--control-h-xs:28px;--control-h-sm:32px;--control-h-md:40px;--control-h-lg:48px;--control-h-xl:56px;--control-px-xs:10px;--control-px-sm:var(--sp-3);--control-px-md:var(--sp-4);--control-px-lg:var(--sp-5);--control-px-xl:var(--sp-7);--control-py-xs:6px;--control-py-sm:var(--sp-2);--control-py-md:10px;--control-py-lg:var(--sp-4);--control-py-xl:18px;--control-gap-sm:6px;--control-gap-md:10px;--control-gap-lg:var(--sp-4);--gutter:var(--sp-8)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}*,:after,:before{box-sizing:border-box}@media (--bp-md-down ){:root{--header-h:56px;--gutter:16px}}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-relaxed);color:var(--text-primary);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{color:var(--text-primary);background:var(--surface-selection)}.h1,h1{font-size:var(--fs-h1);line-height:var(--lh-tight)}.h1,.h2,h1,h2{font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.h2,h2{font-size:var(--fs-h2)}.h2,.h3,h2,h3{line-height:var(--lh-snug)}.h3,h3{font-size:var(--fs-h3)}.h3,.h4,h3,h4{font-weight:var(--fw-semibold)}.h4,h4{font-size:var(--fs-h4);line-height:var(--lh-normal)}p{line-height:var(--lh-relaxed)}.text-sm,small{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.mono,code,pre{font-family:var(--font-mono);font-size:var(--fs-sm)}code{color:var(--text-code);background:var(--surface-code);border-radius:var(--radius-xs);padding:.1em .35em}pre code{color:inherit;background:transparent;border-radius:0;padding:0}a{color:var(--text-link);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--text-link-hover)}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}*{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}::-webkit-scrollbar{width:var(--scrollbar-w);height:var(--scrollbar-w)}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid transparent;border-radius:var(--radius-pill);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:content-box}html{color-scheme:light;background:var(--surface-page);color:var(--text-primary)}body,html{overflow-x:hidden}body{margin:0}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin:0}.calendar-shell,.detail-shell{--calendar-hour-height:72px;--calendar-visible-hours:13;--calendar-control-height:var(--control-h-md);--calendar-switcher-height:var(--control-h-md);--calendar-switcher-item-height:30px;--calendar-control-px:var(--control-px-md);--calendar-object-py:var(--control-py-md);--calendar-page-max-width:1200px;--calendar-radius:var(--radius-sm);--calendar-surface:var(--neutral-0);--calendar-surface-muted:color-mix(in srgb,var(--surface-2) 62%,var(--neutral-0));--calendar-surface-hover:var(--surface-hover);--calendar-event-card-bg:var(--neutral-0);--calendar-border:color-mix(in srgb,var(--border-subtle) 78%,var(--neutral-0));--calendar-hover-border:var(--border-default);--calendar-status-completed:var(--state-success);--calendar-status-completed-bg:var(--state-success-bg);--calendar-status-completed-text:var(--state-success-text);--calendar-status-active:var(--state-info);--calendar-status-active-bg:var(--state-info-bg);--calendar-status-active-text:var(--state-info-text);--calendar-status-available:var(--state-warning);--calendar-status-available-bg:var(--state-warning-bg);--calendar-status-available-text:var(--state-warning-text);--calendar-status-muted:var(--text-subtle);--calendar-status-muted-bg:var(--surface-2);--calendar-status-muted-text:var(--text-secondary);--calendar-modal-layer:100100;--calendar-host-top-offset:var(--systematika-menu-top-offset,0px);--calendar-host-bottom-offset:var(--systematika-menu-bottom-offset,env(safe-area-inset-bottom))}.calendar-shell{min-height:100vh;background:var(--neutral-0)}.calendar-page{width:min(100%,var(--calendar-page-max-width));box-sizing:border-box;margin:0 auto;padding:var(--sp-3) var(--sp-4) var(--sp-7)}.calendar-hero{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:var(--sp-4);margin-bottom:var(--sp-3)}.calendar-hero-nav,.calendar-hero-side{min-width:0;display:grid;gap:var(--sp-3)}.calendar-hero-subscription{min-width:0;display:grid;gap:var(--sp-2)}.calendar-hero-copy{display:grid;gap:0}.calendar-hero-copy h1{color:var(--text-primary);font-size:var(--fs-h2);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.calendar-hero-copy p{max-width:640px;font-size:var(--fs-body);line-height:var(--lh-normal)}.calendar-hero-copy p,.calendar-quiet-line,.detail-header p,.detail-muted,.student-list-head span{color:var(--text-secondary)}.calendar-hero-side{justify-self:stretch}.calendar-hero-side-label{color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:var(--lh-tight);white-space:nowrap}.calendar-hero-actions,.calendar-mobile-subscription-row{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);min-width:0}.calendar-mobile-subscription-row{display:none}.calendar-hero-actions .btn,.calendar-hero-actions .calendar-subscription-buy-link,.calendar-mobile-subscription-row .calendar-subscription-buy-link{box-sizing:border-box;height:var(--calendar-switcher-height);min-height:var(--calendar-switcher-height);--btn-fs:var(--fs-sm);--btn-fw:var(--fw-semibold);--btn-radius:var(--calendar-radius)}.calendar-hero-actions .btn-outline,.calendar-mobile-subscription-row .btn-outline{--btn-bg:var(--calendar-surface);--btn-bg-hover:var(--calendar-surface-hover);--btn-bg-active:var(--calendar-surface-hover);--btn-text:var(--text-primary);--btn-border:var(--border-subtle);--btn-border-w:var(--border-w-sm)}.calendar-subscription-buy-link{min-width:0;min-height:var(--calendar-switcher-height);padding-inline:var(--sp-3)}.calendar-enroll-button{min-width:132px;padding-inline:var(--sp-4);box-shadow:0 8px 18px color-mix(in srgb,var(--color-action) 18%,transparent)}.calendar-enroll-button .icon{flex:0 0 auto}.calendar-subscription-balance{display:inline-flex;align-items:center;min-width:0;margin-bottom:0;border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface);overflow:visible}.calendar-subscription-balance-mobile{display:none}.calendar-subscription-balance-label{border-right:var(--border-w-sm) solid var(--calendar-border);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:var(--lh-tight);white-space:nowrap}.calendar-subscription-balance-label,.calendar-subscription-item{min-height:calc(var(--calendar-switcher-height) - 2px);display:inline-flex;align-items:center;padding:0 var(--sp-2);color:var(--text-secondary)}.calendar-subscription-item{min-width:0;gap:var(--sp-1);cursor:help}.calendar-subscription-item:focus-visible{outline:var(--border-w-md) solid var(--border-focus);outline-offset:var(--focus-ring-offset);border-radius:calc(var(--calendar-radius) - var(--border-w-sm))}.calendar-subscription-item+.calendar-subscription-item{border-left:var(--border-w-sm) solid var(--calendar-border)}.calendar-subscription-label-full,.calendar-subscription-label-short{display:none}.calendar-subscription-item strong{flex:0 0 auto;color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:var(--lh-tight);white-space:nowrap}.calendar-telegram-panel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);width:100%;margin:0 0 var(--sp-3);padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.calendar-telegram-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--color-action);background:var(--color-action-soft)}.calendar-telegram-copy{display:grid;gap:var(--sp-1);min-width:0}.calendar-telegram-copy h2{margin:0;color:var(--text-primary);font-size:var(--fs-md);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.calendar-telegram-copy p{margin:0;color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-normal)}.calendar-telegram-muted,.calendar-telegram-pending{color:var(--text-muted);font-size:var(--fs-xs);line-height:var(--lh-tight)}.calendar-telegram-pending{display:inline-flex;width:max-content;max-width:100%;color:var(--text-secondary);font-weight:var(--fw-semibold)}.calendar-telegram-button{min-width:max-content}.calendar-telegram-status{display:inline-flex;align-items:center;justify-content:center;width:var(--calendar-switcher-height);min-width:var(--calendar-switcher-height);height:var(--calendar-switcher-height);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--color-action-soft);color:var(--color-action);cursor:help}.calendar-telegram-status:focus-visible{outline:var(--border-w-md) solid var(--border-focus);outline-offset:var(--focus-ring-offset)}.calendar-telegram-status-check{position:absolute;right:-3px;bottom:-3px;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:var(--border-w-sm) solid var(--calendar-surface);border-radius:999px;color:var(--text-inverse);background:var(--state-success);box-shadow:0 1px 2px color-mix(in srgb,var(--state-success) 25%,transparent)}.calendar-telegram-status-check .icon{stroke-width:2.4}.calendar-quiet-line{text-align:right}.calendar-controls{position:relative;z-index:10;display:grid;gap:var(--sp-2);justify-self:stretch;width:100%;max-width:100%;margin-bottom:var(--sp-2);padding:0;background:transparent}.calendar-courses-strip{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-width:0;margin:0 0 var(--sp-2);padding:var(--sp-2) var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface-muted);color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-tight)}.calendar-courses-strip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-courses-link{flex:0 0 auto;height:34px;min-height:34px;--btn-fs:var(--fs-sm);--btn-fw:var(--fw-semibold);--btn-radius:var(--calendar-radius);--btn-bg:var(--calendar-surface);--btn-bg-hover:var(--calendar-surface-hover);--btn-bg-active:var(--calendar-surface-hover);--btn-text:var(--text-primary);--btn-border:var(--border-subtle);--btn-border-w:var(--border-w-sm)}.calendar-view-switcher{display:flex;justify-content:flex-start;margin-top:var(--sp-1);margin-bottom:0}.calendar-view-tabs{--segmented-bg:var(--calendar-surface-muted);--segmented-border:transparent;--segmented-radius:var(--calendar-radius);--segmented-active-bg:var(--calendar-surface);--segmented-active-text:var(--text-primary);--segmented-inactive-text:var(--text-secondary);--segmented-py:0;--segmented-px:var(--calendar-control-px);--segmented-fs:var(--fs-body);width:fit-content;max-width:100%;align-items:center;overflow-x:auto;border-radius:var(--calendar-radius);border:0;padding:2px;gap:2px;box-shadow:inset 0 0 0 var(--border-w-sm) var(--calendar-border)}.calendar-view-tabs .segmented-btn{display:inline-flex;align-items:center;height:var(--calendar-switcher-item-height);min-height:var(--calendar-switcher-item-height);font-size:var(--fs-body);line-height:var(--lh-tight);white-space:nowrap}.calendar-view-tabs .segmented-btn[data-active=true]{box-shadow:0 1px 1px color-mix(in srgb,var(--text-primary) 7%,transparent)}.calendar-viewbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-content:stretch;gap:var(--sp-4);min-width:0}.calendar-viewbar-filters{display:flex;align-items:center;flex-wrap:wrap;justify-self:start;width:fit-content;max-width:100%;min-width:0;gap:var(--sp-2)}.calendar-viewbar-filters .choice-chip{min-height:var(--calendar-control-height);padding:0 var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.calendar-period-controls .btn{box-sizing:border-box;height:var(--calendar-switcher-height);min-height:var(--calendar-switcher-height);padding:0 var(--calendar-control-px);--btn-fs:var(--fs-body);--btn-radius:var(--calendar-radius)}.calendar-period-controls .btn-icon{width:var(--calendar-switcher-height);min-width:var(--calendar-switcher-height);padding:0}.calendar-period-controls .btn{--btn-bg:transparent;--btn-bg-hover:var(--calendar-surface-hover);--btn-bg-active:var(--calendar-surface-hover);--btn-text:var(--text-secondary);--btn-border:var(--border-subtle);--btn-border-w:var(--border-w-sm);--btn-fw:var(--fw-semibold)}.calendar-period-controls .btn:hover:not(:disabled):not([aria-disabled=true]){--btn-text:var(--text-primary)}.calendar-period-inline{display:inline-flex;align-items:center;justify-content:center;min-width:min(220px,42vw);height:var(--calendar-switcher-height);padding:0 var(--sp-2);background:transparent;color:var(--text-primary);font-size:var(--fs-body);font-weight:var(--fw-semibold);line-height:var(--lh-tight);white-space:nowrap}.calendar-period-controls{display:flex;align-items:center;justify-self:end;gap:var(--sp-2);min-width:0}.calendar-week-scroller{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:0}.calendar-mobile-date-strip,.calendar-mobile-enroll-fab{display:none}.calendar-loading-state{min-height:55vh;display:grid;align-content:center;justify-items:center;gap:var(--sp-3);padding:var(--sp-6);text-align:center}.calendar-loading-state .spinner-status{display:inline-flex}.calendar-loading-label{color:var(--text-secondary);font-size:var(--fs-sm)}.calendar-empty-state{--empty-bg:var(--calendar-surface-muted);--empty-border:var(--calendar-border);--empty-radius:var(--calendar-radius);--empty-py:var(--sp-7);--empty-px:var(--sp-5);margin-top:var(--sp-3)}.calendar-empty-state,.empty-state.calendar-empty-state{border:var(--border-w-sm) solid var(--calendar-border)}.calendar-empty-state-compact{--empty-py:var(--sp-6)}.calendar-empty-state-list{--empty-py:var(--sp-6);justify-self:stretch}.calendar-list-loading{display:inline-flex;padding:var(--sp-3);font-size:var(--fs-body);font-weight:var(--fw-medium)}.calendar-list-loading,.calendar-week-empty{align-items:center;gap:var(--sp-2);color:var(--text-secondary)}.calendar-week-empty{display:flex;margin-bottom:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface-muted);font-size:var(--fs-sm)}.calendar-week-empty .icon{flex:0 0 auto;color:var(--text-muted)}.student-list-section,.student-month-calendar,.student-week-calendar{background:var(--calendar-surface);border:0;border-top:var(--border-w-sm) solid var(--calendar-border);border-bottom:var(--border-w-sm) solid var(--calendar-border);border-radius:0;overflow:hidden;box-shadow:none}.student-list-section{border-top:0}.student-week-calendar{min-width:1180px}.booking-schedule-mobile,.student-mobile-agenda,.student-month-agenda{display:none}.student-week-grid,.student-week-header{display:grid;grid-template-columns:64px repeat(7,minmax(158px,1fr))}.student-week-header{background:var(--calendar-surface);border-bottom:var(--border-w-sm) solid var(--calendar-border)}.student-time-column,.student-time-header{border-right:var(--border-w-sm) solid var(--calendar-border)}.student-day-header{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:52px;padding:var(--sp-2);border-left:var(--border-w-sm) solid var(--calendar-border)}.student-day-header[data-today=true]{color:var(--text-primary)}.student-day-header strong{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-tight)}.student-day-header-full{display:none}.student-day-header>span:not(.student-day-header-full){display:inline;font-size:var(--fs-body);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.student-day-header[data-today=true]>span:not(.student-day-header-full){display:inline;min-width:0;height:auto;border-radius:0;background:transparent;color:inherit;line-height:var(--lh-tight)}.student-week-grid{position:relative;min-height:calc(var(--calendar-visible-hours) * var(--calendar-hour-height))}.student-time-column{background:var(--calendar-surface)}.student-time-column div{position:relative;height:var(--calendar-hour-height);border-top:var(--border-w-sm) solid var(--calendar-border)}.student-time-column div:first-child{border-top-color:transparent}.student-time-column span{position:absolute;top:0;right:var(--sp-2);transform:translateY(-50%);padding:0 2px;background:var(--calendar-surface-muted);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1}.student-day-column{position:relative;min-height:calc(var(--calendar-visible-hours) * var(--calendar-hour-height));border-left:var(--border-w-sm) solid var(--calendar-border);background:repeating-linear-gradient(to bottom,var(--calendar-surface) 0,var(--calendar-surface) calc(var(--calendar-hour-height) - 1px),var(--calendar-border) var(--calendar-hour-height))}.student-current-time-line{position:absolute;top:calc(var(--current-time-offset-hours) * var(--calendar-hour-height));left:0;right:0;z-index:5;height:2px;background:var(--state-error);pointer-events:none}.student-current-time-line span{position:absolute;left:var(--sp-1);top:50%;transform:translateY(-50%);min-width:44px;padding:2px var(--sp-1);border-radius:var(--radius-pill);background:var(--state-error);color:var(--text-inverse);font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1;text-align:center}.student-week-event{--event-status-color:var(--calendar-border);appearance:none;box-sizing:border-box;position:absolute;top:calc(var(--event-offset-hours) * var(--calendar-hour-height));left:var(--sp-2);right:var(--sp-2);height:max(32px,calc(var(--event-duration-hours) * var(--calendar-hour-height) - 6px));display:grid;grid-template-rows:minmax(0,1fr) auto auto;align-content:stretch;gap:2px;overflow:hidden;padding:6px var(--sp-2) 6px var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-event-card-bg);box-shadow:inset 3px 0 0 var(--event-status-color),0 1px 2px color-mix(in srgb,var(--text-primary) 4%,transparent);color:var(--text-primary);cursor:pointer;font:inherit;margin:0;text-align:left;text-decoration:none}.student-mobile-event:hover,.student-month-event:hover,.student-row:hover,.student-week-event:hover{border-color:var(--calendar-hover-border);background:var(--calendar-event-card-bg)}.student-mobile-event:focus-visible,.student-month-event:focus-visible,.student-row:focus-visible,.student-week-event:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.student-week-event strong{display:block;min-width:0;min-height:0;overflow:hidden;font-size:var(--fs-body);font-weight:var(--fw-medium);line-height:var(--lh-tight);overflow-wrap:normal;text-align:left;text-overflow:ellipsis;white-space:nowrap}.student-week-event time{min-height:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.student-week-event time,.student-week-event-teacher{min-width:0;overflow:hidden;color:var(--text-secondary);line-height:1;text-align:left;text-overflow:ellipsis;white-space:nowrap}.student-week-event-teacher{font-size:var(--fs-xs);font-weight:var(--fw-medium)}.student-week-event.event-status-live strong,.student-week-event.event-status-planned strong,.student-week-event.event-status-rescheduled strong{color:var(--calendar-status-active-text)}.student-week-event.event-status-completed strong,.student-week-event.event-status-recording_available strong{color:var(--calendar-status-completed-text)}.student-event-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-1)}.student-month-calendar{overflow-x:auto}.student-month-grid{min-width:920px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.student-month-weekday{padding:var(--sp-2) var(--sp-3);background:var(--calendar-surface-muted);color:var(--text-secondary);font-size:var(--fs-body);font-weight:var(--fw-medium)}.student-month-cell,.student-month-weekday{border-right:var(--border-w-sm) solid var(--calendar-border);border-bottom:var(--border-w-sm) solid var(--calendar-border);text-align:right}.student-month-cell{min-height:144px;padding:var(--sp-3)}.student-month-cell[data-empty=true]{background:var(--calendar-surface-muted)}.student-month-cell strong{display:inline-grid;place-items:center;min-width:28px;height:28px;margin-bottom:var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-body);line-height:1}.student-month-cell[data-today=true] strong{background:var(--state-error);color:var(--text-inverse)}.student-month-event{--event-status-color:var(--calendar-border);appearance:none;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-2);min-width:0;margin:var(--sp-1) 0;padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-event-card-bg);box-shadow:inset 3px 0 0 var(--event-status-color);color:var(--text-primary);cursor:pointer;font:inherit;text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-align:left}.student-month-event span,.student-month-event time{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-month-event span{text-align:left}.student-month-event time{color:var(--text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.student-list,.student-rows{display:grid;gap:10px}.student-list-head{display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--sp-3);padding:var(--calendar-object-py) var(--calendar-control-px);background:var(--calendar-surface)}.student-list-mode{display:flex;align-items:center;flex-wrap:wrap;flex:0 0 auto;gap:var(--sp-2)}.student-list-mode .choice-chip{min-height:var(--calendar-control-height);padding:0 var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.student-rows{padding:var(--calendar-control-px)}.student-list-empty{color:var(--text-secondary);padding:var(--sp-2)}.student-list-more .icon{flex:0 0 auto}.student-list-more.btn-ghost{--btn-bg:transparent;--btn-bg-hover:var(--calendar-surface-hover);--btn-bg-active:var(--calendar-surface-hover);--btn-border:transparent;--btn-border-w:0;--btn-fs:var(--fs-body-lg);--btn-text:var(--text-secondary);border:0;min-height:48px;padding-block:var(--sp-3);justify-self:stretch;width:100%;gap:var(--sp-2)}.student-list-more.btn-ghost:focus-visible,.student-list-more.btn-ghost:hover:not(:disabled):not([aria-disabled=true]){--btn-bg:var(--calendar-surface-hover);--btn-border:transparent;--btn-border-w:0;--btn-text:var(--text-primary);border:0}.student-day-rows{display:grid;gap:var(--sp-2)}.student-list-day-title{margin:var(--sp-2) 0 var(--sp-1);color:var(--text-primary);font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.student-row{--event-status-color:var(--calendar-border);appearance:none;width:100%;display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--calendar-control-px);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-event-card-bg);box-shadow:inset 3px 0 0 var(--event-status-color);color:var(--text-primary);cursor:pointer;font:inherit;margin:0;text-align:left;text-decoration:none}.student-mobile-event.event-status-live,.student-mobile-event.event-status-planned,.student-mobile-event.event-status-rescheduled,.student-month-event.event-status-live,.student-month-event.event-status-planned,.student-month-event.event-status-rescheduled,.student-row.event-status-live,.student-row.event-status-planned,.student-row.event-status-rescheduled,.student-week-event.event-status-live,.student-week-event.event-status-planned,.student-week-event.event-status-rescheduled{--event-status-color:var(--calendar-status-active)}.student-mobile-event.event-status-completed,.student-mobile-event.event-status-recording_available,.student-month-event.event-status-completed,.student-month-event.event-status-recording_available,.student-row.event-status-completed,.student-row.event-status-recording_available,.student-week-event.event-status-completed,.student-week-event.event-status-recording_available{--event-status-color:var(--calendar-status-completed)}.student-mobile-event.event-status-action_required,.student-mobile-event.event-status-overdue,.student-mobile-event.event-status-recording_pending,.student-month-event.event-status-action_required,.student-month-event.event-status-overdue,.student-month-event.event-status-recording_pending,.student-row.event-status-action_required,.student-row.event-status-overdue,.student-row.event-status-recording_pending,.student-week-event.event-status-action_required,.student-week-event.event-status-overdue,.student-week-event.event-status-recording_pending{--event-status-color:var(--calendar-status-available)}.student-mobile-event.event-status-cancelled,.student-mobile-event.event-status-removed_projection,.student-month-event.event-status-cancelled,.student-month-event.event-status-removed_projection,.student-row.event-status-cancelled,.student-row.event-status-removed_projection,.student-week-event.event-status-cancelled,.student-week-event.event-status-removed_projection{--event-status-color:var(--calendar-status-muted)}.student-row time{color:var(--text-secondary);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:var(--lh-tight);white-space:nowrap}.student-row-main{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.student-row-main .student-event-status-row{flex:0 0 auto;flex-wrap:nowrap;margin-top:0}.student-row-main .student-event-status-row .badge{white-space:nowrap}.calendar-shell .badge-success,.modal-overlay .badge-success{--badge-bg:var(--calendar-status-completed-bg);--badge-text:var(--calendar-status-completed-text);--badge-border:transparent}.calendar-shell .badge-info,.modal-overlay .badge-info{--badge-bg:var(--calendar-status-active-bg);--badge-text:var(--calendar-status-active-text);--badge-border:transparent}.calendar-shell .badge-warning,.modal-overlay .badge-warning{--badge-bg:var(--calendar-status-available-bg);--badge-text:var(--calendar-status-available-text);--badge-border:transparent}.calendar-shell .badge-base,.calendar-shell .badge-error,.calendar-shell .badge-neutral,.modal-overlay .badge-base,.modal-overlay .badge-error,.modal-overlay .badge-neutral{--badge-bg:var(--calendar-status-muted-bg);--badge-text:var(--calendar-status-muted-text);--badge-border:transparent}.student-row h3{min-width:0;overflow:hidden;flex:1 1 auto;font-size:var(--fs-body-lg);font-weight:var(--fw-medium);line-height:var(--lh-tight);text-overflow:ellipsis;white-space:nowrap}.student-mobile-agenda,.student-month-agenda{gap:var(--sp-2)}.student-mobile-day{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.student-mobile-day-head{display:flex;align-items:center;gap:var(--sp-2)}.student-mobile-day-head strong{color:var(--text-primary);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.student-mobile-day-head span{display:inline-grid;min-width:28px;height:28px;place-items:center;border-radius:var(--radius-pill);background:var(--calendar-surface-muted);color:var(--text-secondary);font-size:var(--fs-body);font-weight:var(--fw-bold);line-height:1}.student-mobile-events{display:grid;gap:var(--sp-2)}.student-mobile-event{--event-status-color:var(--calendar-border);appearance:none;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--sp-3);min-height:48px;padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-event-card-bg);box-shadow:inset 3px 0 0 var(--event-status-color);color:var(--text-primary);cursor:pointer;font:inherit;text-align:left}.student-mobile-event time{color:var(--text-secondary);font-size:var(--fs-body);font-weight:var(--fw-semibold);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.student-mobile-event span{min-width:0;font-size:var(--fs-body);font-weight:var(--fw-medium);line-height:var(--lh-tight);overflow-wrap:anywhere}.student-mobile-empty{color:var(--text-muted);font-size:var(--fs-sm)}body .modal-overlay{inset:0;box-sizing:border-box;z-index:var(--calendar-modal-layer,100100);--calendar-surface:var(--surface-1);--calendar-surface-muted:var(--surface-2);--calendar-surface-hover:var(--surface-hover);--calendar-event-card-bg:var(--neutral-0);--calendar-border:var(--border-subtle);--calendar-hover-border:var(--border-default);--calendar-status-completed:var(--state-success);--calendar-status-completed-bg:var(--state-success-bg);--calendar-status-completed-text:var(--state-success-text);--calendar-status-active:var(--state-info);--calendar-status-active-bg:var(--state-info-bg);--calendar-status-active-text:var(--state-info-text);--calendar-status-available:var(--state-warning);--calendar-status-available-bg:var(--state-warning-bg);--calendar-status-available-text:var(--state-warning-text);--calendar-status-muted:var(--text-subtle);--calendar-status-muted-bg:var(--surface-2);--calendar-status-muted-text:var(--text-secondary);background:var(--surface-overlay)}.modal-overlay .modal{--modal-bg:var(--calendar-surface);--modal-border:var(--calendar-border);max-height:min(760px,calc(100dvh - var(--sp-6)))}.calendar-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--calendar-modal-layer);display:flex;align-items:center;justify-content:center;padding:var(--sp-6);background:var(--surface-overlay)}.calendar-drawer{width:min(100%,760px);max-height:min(92vh,920px);overflow:auto;border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface);color:var(--text-primary);box-shadow:var(--shadow-lg)}.calendar-drawer-wide{width:min(100%,1080px)}.calendar-drawer-foot,.calendar-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4)}.calendar-drawer-head{border-bottom:var(--border-w-sm) solid var(--calendar-border);background:var(--calendar-surface-muted)}.calendar-drawer-head h2{font-size:var(--fs-h4);line-height:var(--lh-tight)}.calendar-drawer-head p{margin-top:var(--sp-1);color:var(--text-secondary)}.calendar-drawer-close{appearance:none;width:var(--calendar-control-height);height:var(--calendar-control-height);display:inline-grid;place-items:center;flex:0 0 auto;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);cursor:pointer}.calendar-drawer-close:hover{background:var(--calendar-surface-hover);color:var(--text-primary)}.calendar-drawer-body{padding:var(--sp-4)}.calendar-drawer-foot{align-items:center;justify-content:flex-end;border-top:var(--border-w-sm) solid var(--calendar-border)}.booking-tabs,.calendar-drawer-foot{background:var(--calendar-surface-muted)}.booking-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-1);margin-bottom:var(--sp-4);padding:var(--sp-1);border-radius:var(--calendar-radius)}.booking-chip-line button,.booking-schedule-cell button,.booking-tabs button,.intensive-group-card{appearance:none;border:0;cursor:pointer;font:inherit}.booking-chip-line button:disabled,.booking-schedule-cell button:disabled,.booking-schedule-cell button[aria-disabled=true],.booking-schedule-day button:disabled,.booking-schedule-day button[aria-disabled=true],.booking-tabs button:disabled,.intensive-group-card[aria-disabled=true]{cursor:not-allowed;opacity:.48}.booking-schedule-cell button.is-enrolled[aria-disabled=true],.booking-schedule-day button.is-enrolled[aria-disabled=true],.intensive-group-card.is-enrolled[aria-disabled=true]{cursor:default;opacity:1}.booking-tabs button{min-height:var(--calendar-control-height);border-radius:var(--calendar-radius);background:transparent;color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.booking-tabs button.active{background:var(--calendar-surface);box-shadow:0 1px 1px color-mix(in srgb,var(--text-primary) 7%,transparent)}.booking-flow{display:grid;gap:var(--sp-5)}.booking-step{display:grid;gap:var(--sp-3);min-width:0;padding-bottom:var(--sp-4);border-bottom:var(--border-w-sm) solid var(--calendar-border)}.booking-step:last-child{padding-bottom:0;border-bottom:0}.booking-step-head{display:flex;align-items:center;gap:var(--sp-2)}.booking-step-head>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;border:var(--border-w-sm) solid var(--calendar-hover-border);border-radius:var(--radius-pill);background:var(--calendar-surface-hover);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-bold)}.booking-step-head h3{margin:0;font-size:var(--fs-lg)}.booking-chip-line{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.booking-chip-line button{min-height:var(--calendar-control-height);padding:0 var(--calendar-control-px);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.booking-chip-line button.active{border-color:var(--calendar-hover-border);background:var(--calendar-surface-hover);color:var(--text-primary)}.booking-teacher{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3)}.booking-teacher>strong{font-size:var(--fs-body)}.booking-teacher select{min-height:var(--calendar-control-height);min-width:min(100%,260px);padding:0 var(--calendar-control-px);background:var(--calendar-surface);color:var(--text-primary)}.booking-schedule,.booking-teacher select{border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius)}.booking-schedule{margin-top:var(--sp-3);overflow-x:auto;overflow-y:hidden}.booking-schedule-grid,.booking-schedule-head{display:grid;min-width:720px;grid-template-columns:repeat(7,minmax(96px,1fr))}.booking-schedule-head div{padding:var(--sp-2);border-bottom:var(--border-w-sm) solid var(--calendar-border);background:var(--calendar-surface-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.booking-schedule-cell{min-height:104px;padding:var(--sp-2);border-right:var(--border-w-sm) solid var(--calendar-border)}.booking-schedule-cell:last-child{border-right:0}.booking-schedule-cell button{display:block;width:100%;margin-bottom:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--calendar-radius);background:var(--calendar-event-card-bg);box-shadow:inset 0 0 0 var(--border-w-sm) var(--calendar-border);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:left}.booking-schedule-cell button.active{border-color:var(--calendar-hover-border);background:var(--calendar-event-card-bg);box-shadow:inset 0 0 0 var(--border-w-sm) var(--calendar-hover-border);color:var(--text-primary)}.booking-schedule-cell button.is-enrolled{background:var(--state-info-bg);box-shadow:inset 0 0 0 var(--border-w-sm) var(--state-info)}.booking-schedule-cell button.is-enrolled .booking-enrolled-label,.booking-schedule-day button.is-enrolled .booking-enrolled-label{color:var(--state-info-text);font-weight:var(--fw-bold)}.booking-chip-line button:focus-visible,.booking-schedule-cell button:focus-visible,.booking-schedule-day button:focus-visible,.booking-tabs button:focus-visible,.calendar-drawer-close:focus-visible,.intensive-group-card:focus-visible{outline:var(--border-w-md) solid var(--border-focus);outline-offset:2px}.booking-schedule-cell span{display:block;margin-top:1px;color:var(--text-secondary);font-size:var(--fs-xs)}.booking-schedule-mobile{gap:var(--sp-2);margin-top:var(--sp-3)}.booking-schedule-day{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.booking-schedule-day>strong{grid-column:1/-1;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase}.booking-schedule-day button{appearance:none;display:grid;gap:2px;min-height:var(--calendar-control-height);padding:var(--sp-2) var(--calendar-control-px);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-event-card-bg);color:var(--text-primary);cursor:pointer;font:inherit;font-weight:var(--fw-semibold);text-align:left}.booking-schedule-day button.active{border-color:var(--calendar-hover-border);background:var(--calendar-event-card-bg)}.booking-schedule-day button.is-enrolled{border-color:var(--state-info);background:var(--state-info-bg)}.booking-schedule-day button span,.booking-schedule-empty{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.booking-schedule-empty{grid-column:1/-1}.booking-offer,.booking-summary,.request-facts>div{border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.booking-summary{justify-self:start;width:min(100%,560px);padding:var(--sp-4);background:var(--calendar-surface-muted)}.booking-offer h3,.booking-summary h3{margin-bottom:var(--sp-3);font-size:var(--fs-lg)}.booking-summary-list{display:grid;gap:var(--sp-3)}.booking-summary-list legend,.booking-summary-list strong{display:block;margin-bottom:var(--sp-1);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase}.booking-summary-list label,.booking-summary-list span{display:block;color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-relaxed)}.booking-summary-list fieldset{display:grid;gap:var(--sp-1);margin:0;padding:0;border:0}.booking-summary-list label{display:flex;align-items:center;gap:var(--sp-2)}.booking-summary-list .radio-group{display:grid;gap:var(--sp-2)}.booking-summary-list .radio-wrap{justify-content:flex-start;color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-relaxed);text-align:left}.intensive-booking-flow,.intensive-syllabus-step{display:grid;gap:var(--sp-4)}.intensive-step-section{display:grid;gap:var(--sp-3);margin-top:var(--sp-2)}.intensive-step-head{display:grid;gap:var(--sp-1)}.intensive-step-head h3,.intensive-step-head h4{margin:0;font-size:var(--fs-lg)}.intensive-selected-head p,.intensive-step-head p{margin:0;color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-relaxed)}.intensive-group-list{display:grid;gap:var(--sp-2)}.intensive-group-card{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-1);width:100%;padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface);color:var(--text-primary);text-align:left}.intensive-group-card>span{display:grid;gap:2px;min-width:0}.intensive-group-card.active{border-color:var(--calendar-hover-border);background:var(--calendar-surface-hover)}.intensive-group-card.is-enrolled{border-color:var(--state-info);background:var(--state-info-bg)}.intensive-group-card strong{font-size:var(--fs-body)}.intensive-group-card em,.intensive-group-card small,.intensive-group-card span,.intensive-group-loading,.intensive-progress{color:var(--text-secondary);font-size:var(--fs-sm);font-style:normal;line-height:var(--lh-relaxed)}.intensive-group-card em{flex:0 0 auto;color:var(--text-primary);font-weight:var(--fw-medium)}.intensive-group-card.is-enrolled small{color:var(--state-info-text);font-weight:var(--fw-bold)}.intensive-selected-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding-bottom:var(--sp-3);border-bottom:var(--border-w-sm) solid var(--calendar-border)}.intensive-selected-head h3,.intensive-selected-head h4{margin:0;font-size:var(--fs-xl)}.intensive-topic-list{display:grid;gap:var(--sp-3)}.intensive-topic{display:grid;gap:var(--sp-2);margin:0;padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.intensive-topic.has-error{border-color:var(--state-error-border);background:var(--state-error-bg)}.intensive-topic legend{padding:0 var(--sp-1);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase}.intensive-topic .radio-group{display:grid;gap:var(--sp-2)}.intensive-topic .radio-wrap{align-items:flex-start;justify-content:flex-start;color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-relaxed);text-align:left}.intensive-action-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:var(--border-w-sm) solid var(--calendar-border)}.intensive-action-bar>span{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.intensive-confirm-lessons{display:grid;gap:var(--sp-1);margin:0;padding-left:var(--sp-4);color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-relaxed)}.booking-state-compact{min-height:120px}.booking-submit{justify-self:start;margin-top:var(--sp-3)}.booking-state{min-height:260px;display:grid;place-items:center;align-content:center;gap:var(--sp-3);color:var(--text-secondary);text-align:center}.booking-state .empty-state{max-width:420px;border:var(--border-w-sm) solid var(--calendar-border)}.booking-summary-empty{color:var(--text-secondary)}.booking-submit-state,.booking-summary-empty{font-size:var(--fs-sm);line-height:var(--lh-relaxed)}.booking-submit-state{display:grid;gap:var(--sp-2);margin-top:var(--sp-4);padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface);color:var(--text-primary)}.booking-submit-state strong{font-size:var(--fs-body)}.booking-submit-state ul{display:grid;gap:var(--sp-1);margin:0;padding-left:var(--sp-4)}.booking-submit-state .btn{justify-self:start}.booking-submit-state-success{border-color:color-mix(in srgb,var(--state-success) 35%,var(--calendar-border));background:color-mix(in srgb,var(--state-success) 8%,var(--calendar-surface))}.booking-submit-state-warning{border-color:color-mix(in srgb,var(--state-warning) 35%,var(--calendar-border));background:color-mix(in srgb,var(--state-warning) 8%,var(--calendar-surface))}.booking-submit-state-error{border-color:color-mix(in srgb,var(--state-error) 35%,var(--calendar-border));background:color-mix(in srgb,var(--state-error) 8%,var(--calendar-surface))}.booking-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.booking-offer{display:grid;align-content:start;gap:var(--sp-3);padding:var(--sp-4)}.booking-offer p{color:var(--text-secondary)}.booking-offer div{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.booking-offer span{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-pill);background:var(--calendar-surface-muted);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.request-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.request-facts>div{padding:var(--sp-4)}.request-facts strong{display:block;margin-bottom:var(--sp-1)}.request-facts span,.request-note{color:var(--text-secondary)}.request-note{margin-top:var(--sp-4);padding:var(--sp-4);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface-muted)}.request-panel{display:grid;gap:var(--sp-4)}.request-panel-head{display:grid;gap:var(--sp-1)}.request-panel-head h3{color:var(--text-primary);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.request-panel-head p{color:var(--text-secondary)}.request-form,.request-form-grid{display:grid;gap:var(--sp-4)}.request-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.request-form .booking-submit-state{margin-top:0}.request-form-actions{display:flex;justify-content:flex-end}.student-event-modal{display:grid;gap:var(--sp-4)}.student-event-modal-section{display:grid;gap:var(--sp-3);padding:var(--sp-4);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.student-event-modal-section h3{color:var(--text-primary);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.student-event-modal-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.student-event-fact{min-width:0;display:grid;gap:var(--sp-1)}.student-event-fact span,.student-event-material span,.student-event-material-unavailable{color:var(--text-muted);font-size:var(--fs-sm);line-height:var(--lh-tight)}.student-event-fact strong,.student-event-material strong{min-width:0;color:var(--text-primary);font-size:var(--fs-body);font-weight:var(--fw-medium);line-height:var(--lh-tight);overflow-wrap:anywhere}.student-event-modal-description{color:var(--text-secondary);font-size:var(--fs-body);line-height:var(--lh-relaxed)}.student-event-join-section{border-color:var(--calendar-status-active);background:var(--calendar-status-active-bg)}.student-event-join-section h3{color:var(--calendar-status-active-text)}.student-event-action-section,.student-event-recording-action{display:grid;gap:var(--sp-3);align-items:start}.student-event-action-section .btn,.student-event-recording-action .btn{width:fit-content}.student-event-join-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.student-event-join-section .student-event-join-button.btn-outline{--btn-bg:var(--calendar-surface);--btn-bg-hover:var(--calendar-status-active-bg);--btn-bg-active:var(--calendar-status-active-bg);--btn-text:var(--calendar-status-active-text);--btn-border:var(--calendar-status-active)}.student-event-recording-action .btn-outline{--btn-bg:transparent;--btn-bg-hover:var(--state-error-bg);--btn-bg-active:var(--state-error-bg-strong);--btn-text:var(--state-error);--btn-border:var(--state-error-border);--btn-border-w:var(--border-w-sm)}.student-event-cancel-section{border-color:var(--state-error-border)}.student-event-cancel-button.btn-outline{width:fit-content;--btn-bg:transparent;--btn-bg-hover:var(--state-error-bg);--btn-bg-active:var(--state-error-bg-strong);--btn-text:var(--state-error);--btn-border:var(--state-error-border)}.student-event-cancel-confirm{display:grid;gap:var(--sp-3)}.student-event-cancel-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.student-event-cancel-error,.student-event-cancel-message{margin:0;padding:var(--sp-3);border-radius:var(--calendar-radius);font-size:var(--fs-body);line-height:var(--lh-relaxed)}.student-event-cancel-message{border:var(--border-w-sm) solid var(--state-success-border);background:var(--state-success-bg);color:var(--state-success-text)}.student-event-cancel-error{border:var(--border-w-sm) solid var(--state-error-border);background:var(--state-error-bg);color:var(--state-error-text)}.student-event-materials{display:grid;gap:var(--sp-2)}.student-event-material{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface-muted)}.student-event-material>div{min-width:0;display:grid;gap:2px}.student-event-material .btn{min-height:var(--calendar-switcher-height)}.detail-shell{width:min(100%,var(--calendar-page-max-width));max-width:none;box-sizing:border-box;margin:0 auto;padding:var(--sp-4) var(--sp-3) var(--sp-7)}.back-link{width:fit-content;margin-bottom:var(--sp-4)}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);margin-bottom:10px;--card-radius:var(--calendar-radius);--card-border:var(--calendar-border);--card-shadow:none}.detail-header>div{display:grid;gap:var(--sp-3)}.detail-header h1{font-size:var(--fs-h2);line-height:var(--lh-tight)}.event-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.freshness{flex:0 0 auto;color:var(--text-muted);font-size:var(--fs-sm)}.detail-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;margin-bottom:10px}.detail-grid,.detail-grid aside{display:grid;gap:10px}.detail-panel{display:grid;gap:var(--sp-4);align-content:start;padding:var(--sp-4);--card-radius:var(--calendar-radius);--card-border:var(--calendar-border)}.detail-actions,.fact-list{display:grid;gap:var(--sp-3)}.detail-actions .btn{width:fit-content}.fact-list{grid-template-columns:repeat(2,minmax(0,1fr))}.blocked-action,.fact-row{display:flex;align-items:flex-start;gap:var(--sp-3);color:var(--text-secondary)}.blocked-action .icon,.fact-row .icon{flex:0 0 auto;color:var(--color-action);margin-top:2px}.blocked-action{border:var(--border-w-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface-muted);padding:var(--sp-3)}.blocked-action div{display:grid;gap:2px}.blocked-action span{color:var(--text-muted)}.detail-notice{margin-bottom:var(--sp-5)}.detail-notice p{color:var(--text-secondary)}.detail-notice-success{background:var(--state-success-bg)}.detail-notice-warning{background:var(--state-warning-bg)}.detail-notice-info{background:var(--state-info-bg)}@media (max-width:1180px){.calendar-viewbar{grid-template-columns:minmax(0,1fr) auto}}@media (max-width:900px){.calendar-page,.detail-shell{padding:var(--sp-5) var(--sp-4) var(--sp-8)}.calendar-hero{grid-template-columns:1fr;justify-items:start}.calendar-hero-nav,.calendar-hero-side,.calendar-view-switcher{width:100%}.detail-header{flex-direction:column}.calendar-hero-side,.calendar-quiet-line{justify-items:start;justify-content:flex-start;text-align:left}.detail-grid,.fact-list{grid-template-columns:1fr}}@media (max-width:640px){.calendar-shell{--calendar-hour-height:64px}.calendar-page,.detail-shell{padding:var(--sp-3) var(--sp-3) calc(var(--sp-10) + var(--calendar-host-bottom-offset))}.calendar-hero{z-index:20;justify-items:stretch;gap:var(--sp-2);margin-inline:0;margin-bottom:0;padding:0;background:transparent;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:0}.calendar-hero-nav{grid-template-columns:1fr;align-items:stretch;gap:var(--sp-2)}.calendar-hero-copy h1{font-size:var(--fs-h3);line-height:32px}.calendar-hero-copy p,.calendar-hero-side{display:none}.calendar-mobile-subscription-row{display:flex;justify-content:center;width:100%;margin:0}.calendar-subscription-balance-mobile{display:inline-flex}.calendar-subscription-balance-mobile .calendar-subscription-balance-label{display:inline-flex;font-size:0}.calendar-subscription-balance-mobile .calendar-subscription-balance-label:after{content:"Баланс";font-size:var(--fs-xs)}.calendar-telegram-panel{grid-template-columns:auto minmax(0,1fr);align-items:start;margin-bottom:var(--sp-2)}.calendar-telegram-button{grid-column:1/-1;justify-content:center;width:100%}.calendar-view-switcher{display:flex;width:100%;min-width:0;justify-content:center;margin-top:0}.calendar-view-tabs{width:min(100%,360px);justify-content:stretch;overflow:visible}.calendar-view-tabs .segmented-btn{flex:1 1;justify-content:center;min-width:0;padding-inline:var(--sp-2)}.calendar-controls{display:grid;box-sizing:border-box;width:100%;max-width:100%;margin:0 0 var(--sp-1);padding:var(--sp-2) 0 var(--sp-1);border-bottom:0;background:var(--calendar-surface)}.calendar-viewbar{display:grid;grid-template-columns:1fr;justify-content:center;justify-items:center;gap:var(--sp-1)}.calendar-period-controls,.calendar-viewbar-filters{display:flex;flex-wrap:nowrap;justify-self:center;justify-content:center;width:auto;max-width:100%;gap:var(--sp-1)}.calendar-viewbar-filters .choice-chip{min-height:32px;padding-inline:var(--sp-3)}.calendar-period-controls{justify-content:center}.calendar-period-controls .btn,.calendar-period-inline{height:40px;min-height:40px}.calendar-period-controls .btn-icon{width:40px;min-width:40px}.calendar-mobile-enroll-fab{appearance:none;position:fixed;right:var(--sp-4);bottom:calc(var(--calendar-host-bottom-offset) + var(--sp-4));z-index:35;display:inline-grid;grid-auto-flow:column;align-items:center;gap:var(--sp-1);width:auto;min-width:58px;height:58px;padding:0 var(--sp-4);border:0;border-radius:var(--radius-pill);background:var(--color-action);color:var(--text-inverse);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;box-shadow:0 14px 28px color-mix(in srgb,var(--color-action) 22%,transparent),0 0 0 var(--border-w-sm) color-mix(in srgb,var(--neutral-0) 92%,transparent)}.calendar-mobile-enroll-fab .icon{width:22px;height:22px}.student-list,.student-rows{gap:var(--sp-1)}.student-rows{padding-inline:0}.student-list-day-title{margin-top:var(--sp-1);font-size:var(--fs-body-lg)}.calendar-mobile-enroll-fab:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.calendar-mobile-date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;gap:2px;margin:0 calc(var(--sp-3) * -1);padding:0 var(--sp-3);border-bottom:var(--border-w-sm) solid var(--calendar-border);background:var(--calendar-surface)}.calendar-mobile-date{appearance:none;display:grid;justify-items:center;gap:1px;min-width:0;min-height:calc(var(--calendar-switcher-item-height) + 4px);padding:2px 0;border:0;border-radius:var(--calendar-radius);background:transparent;color:var(--text-secondary);cursor:pointer;font:inherit}.calendar-mobile-date[data-active-pair=true]{background:var(--calendar-surface-muted);color:var(--text-primary)}.calendar-mobile-date span{min-width:0;font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1;text-transform:uppercase}.calendar-mobile-date strong{display:block;min-width:0;height:auto;border-radius:0;font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1}.calendar-mobile-date[data-today=true] strong{background:transparent;color:inherit}.calendar-mobile-date:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.student-list-head{flex-direction:column}.student-list-mode{width:100%}.student-month-calendar{display:none}.student-month-agenda{display:grid}.calendar-week-scroller{display:block;--calendar-week-scroll-left:0px;margin-inline:calc(var(--sp-3) * -1);padding-inline:0;overflow-x:hidden}.student-week-calendar{--calendar-mobile-time-column:52px;width:100%;min-width:0}.student-week-grid,.student-week-header{width:100%;grid-template-columns:var(--calendar-mobile-time-column) repeat(2,minmax(0,1fr))}.student-time-column,.student-time-header{position:static;background:var(--calendar-surface)}.student-time-column{z-index:1}.student-day-header{min-height:42px;padding-inline:var(--sp-1)}.student-day-column:not([data-active-pair=true]),.student-day-header:not([data-active-pair=true]){display:none}.student-day-header[data-week-pair-start=true]{scroll-margin-left:0}.student-day-header strong,.student-day-header>span:not(.student-day-header-full){display:inline}.student-day-header[data-today=true]>span:not(.student-day-header-full){display:inline;min-width:0;height:auto}.student-day-header-full{display:none}.student-day-header[data-today=true] .student-day-header-full{color:var(--state-error)}.student-week-event{left:5px;right:5px;padding:7px 7px 7px 10px;border-color:color-mix(in srgb,var(--event-status-color) 18%,var(--calendar-border));border-radius:7px;box-shadow:inset 4px 0 0 var(--event-status-color),0 1px 2px color-mix(in srgb,var(--text-primary) 5%,transparent)}.student-week-event strong{font-size:var(--fs-sm)}.calendar-drawer-overlay{align-items:stretch;padding:var(--sp-3)}.calendar-drawer{max-height:100%}.calendar-drawer-wide{border-radius:var(--radius-md)}.calendar-drawer-body,.calendar-drawer-foot,.calendar-drawer-head{padding-left:var(--sp-4);padding-right:var(--sp-4)}.calendar-drawer-wide .calendar-drawer-head{align-items:center;padding-top:var(--sp-3);padding-bottom:var(--sp-3)}.calendar-drawer-wide .calendar-drawer-head p{display:none}.calendar-drawer-wide .calendar-drawer-foot{position:sticky;bottom:0;z-index:1;display:flex;padding-top:var(--sp-3);padding-bottom:var(--sp-3)}.calendar-drawer-wide .calendar-drawer-body{padding-top:var(--sp-3);padding-bottom:var(--sp-4)}.calendar-drawer-wide .booking-tabs{display:flex;gap:var(--sp-1);overflow-x:auto;margin-bottom:var(--sp-3)}.calendar-drawer-wide .booking-tabs button{flex:0 0 auto;min-width:max-content;padding-inline:var(--sp-3);white-space:nowrap}.calendar-drawer-wide .booking-flow{gap:var(--sp-3)}.calendar-drawer-wide .booking-step{gap:var(--sp-2);padding-bottom:var(--sp-3)}.calendar-drawer-wide .booking-teacher{gap:var(--sp-2);margin:var(--sp-3) 0}.calendar-drawer-wide .booking-chip-line{gap:var(--sp-1)}.calendar-drawer-wide .booking-chip-line button,.calendar-drawer-wide .booking-tabs button,.calendar-drawer-wide .booking-teacher select{min-height:36px}.calendar-drawer-wide .booking-chip-line button{padding-inline:var(--sp-3)}.calendar-drawer-wide .booking-schedule-mobile{gap:var(--sp-1);margin-top:var(--sp-2)}.calendar-drawer-wide .booking-schedule-day{gap:var(--sp-1);padding:var(--sp-2)}.calendar-drawer-wide .booking-schedule-day button{min-height:36px;padding:var(--sp-1) var(--sp-3)}.calendar-drawer-wide .booking-summary{width:100%;padding:var(--sp-3)}.calendar-drawer-wide .booking-summary h3{margin-bottom:var(--sp-2);font-size:var(--fs-body-lg)}.calendar-drawer-wide .booking-summary-list{gap:var(--sp-3)}.calendar-drawer-wide .booking-summary-list .radio-group{gap:var(--sp-1)}.calendar-drawer-wide .intensive-booking-flow,.calendar-drawer-wide .intensive-syllabus-step{gap:var(--sp-3)}.calendar-drawer-wide .intensive-action-bar,.calendar-drawer-wide .intensive-group-card,.calendar-drawer-wide .intensive-selected-head{align-items:stretch;flex-direction:column}.calendar-drawer-wide .intensive-action-bar .btn,.calendar-drawer-wide .intensive-group-card em{align-self:stretch}.calendar-drawer-wide .intensive-topic{padding:var(--sp-2)}.calendar-drawer-wide .booking-submit,.calendar-drawer-wide .booking-submit-state{margin-top:var(--sp-3)}.booking-offers,.request-facts,.request-form-grid{grid-template-columns:1fr}.booking-schedule{display:none}.booking-schedule-mobile{display:grid}.booking-schedule-day{grid-template-columns:repeat(2,minmax(0,1fr))}.student-row{grid-template-columns:1fr}.student-row,.student-row-main{align-items:start;gap:var(--sp-2)}.student-row-main{width:100%;display:grid}.student-row-main .student-event-status-row{flex:1 1 auto;flex-wrap:wrap}.student-row-main .student-event-status-row .badge{max-width:100%}.student-row h3{white-space:normal;overflow-wrap:anywhere}.student-row time{font-size:var(--fs-body-lg)}.student-event-material,.student-event-modal-facts{grid-template-columns:1fr}.detail-header h1,.detail-panel h2,.modal-overlay .modal-title{font-size:var(--fs-h3)}.detail-header,.detail-panel{padding:var(--sp-3)}.detail-actions .btn{width:100%;justify-content:center}.blocked-action,.fact-row{gap:var(--sp-2)}}@media (max-width:420px){.booking-schedule-day{grid-template-columns:1fr}}.teacher-chats-page{width:min(960px,calc(100vw - 32px));box-sizing:border-box;margin:0 auto;padding:var(--sp-7) 0 var(--sp-8)}.teacher-chats-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:var(--border-width-sm) solid var(--calendar-border)}.teacher-chats-back{display:inline-flex;width:fit-content;margin-bottom:var(--sp-3);color:var(--text-secondary);font-size:var(--fs-body-sm);text-decoration:none}.teacher-chats-back:hover,.teacher-chats-head h1{color:var(--text-primary)}.teacher-chats-head h1{font-size:var(--fs-h2);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.teacher-chats-head p{max-width:640px;margin-top:var(--sp-2);color:var(--text-secondary);font-size:var(--fs-body-sm);line-height:var(--lh-relaxed)}.teacher-chats-summary{display:inline-flex;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:var(--border-width-sm) solid var(--border-default);border-radius:var(--calendar-radius);background:var(--calendar-surface);color:var(--text-secondary);white-space:nowrap}.teacher-chats-summary strong{color:var(--text-primary);font-size:var(--fs-h3);line-height:1}.teacher-chats-list{display:grid;gap:var(--sp-3);margin-top:var(--sp-5)}.teacher-chat-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-4);padding:var(--sp-4);border:var(--border-width-sm) solid var(--calendar-border);border-radius:var(--calendar-radius);background:var(--calendar-surface)}.teacher-chat-row[data-chat-available=false]{background:var(--calendar-surface-muted)}.teacher-chat-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:var(--border-width-sm) solid var(--border-subtle);border-radius:var(--radius-full);background:var(--surface-page);color:var(--text-secondary)}.teacher-chat-main{min-width:0}.teacher-chat-title-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.teacher-chat-title-row h2{min-width:0;overflow-wrap:anywhere;color:var(--text-primary);font-size:var(--fs-body-lg);font-weight:var(--fw-semibold);line-height:var(--lh-tight)}.teacher-chat-main p{margin-top:var(--sp-1);color:var(--text-secondary);font-size:var(--fs-body-sm);line-height:var(--lh-normal)}.teacher-chat-action{display:flex;justify-content:flex-end}.teacher-chats-state{margin-top:var(--sp-6)}@media (max-width:720px){.teacher-chats-page{width:min(100%,calc(100vw - 24px));padding-top:var(--sp-4)}.teacher-chats-head{align-items:stretch;flex-direction:column;gap:var(--sp-3)}.teacher-chats-summary{width:fit-content}.teacher-chat-row{grid-template-columns:auto minmax(0,1fr)}.teacher-chat-action{grid-column:1/-1;justify-content:stretch}.teacher-chat-action .btn{width:100%;justify-content:center}.teacher-chat-title-row{align-items:flex-start;flex-direction:column}}