:root{--primary-50:#f0f9ff;--primary-100:#e0f2fe;--primary-200:#bae6fd;--primary-300:#7dd3fc;--primary-400:#38bdf8;--primary-500:#0ea5e9;--primary-600:#0284c7;--primary-700:#0369a1;--primary-800:#075985;--primary-900:#0c4a6e;--success-50:#f0fdf4;--success-100:#dcfce7;--success-500:#22c55e;--success-600:#16a34a;--success-700:#15803d;--success-800:#166534;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-500:#f59e0b;--warning-600:#d97706;--warning-700:#a16207;--warning-800:#92400e;--error-50:#fef2f2;--error-100:#fee2e2;--error-500:#ef4444;--error-600:#dc2626;--error-700:#b91c1c;--error-800:#991b1b;--info-50:#eff6ff;--info-100:#dbeafe;--info-500:#3b82f6;--info-600:#2563eb;--info-700:#1d4ed8;--info-800:#1e40af;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--page-background:#f8fafc;--background:#fff;--background-secondary:var(--page-background);--surface:#fff;--surface-secondary:var(--gray-100);--border:var(--gray-200);--border-strong:var(--gray-300);--lesson-scheduled:var(--warning-500);--lesson-confirmed:var(--success-500);--lesson-in-progress:var(--warning-600);--lesson-completed:var(--info-500);--lesson-cancelled:var(--gray-500);--lesson-noshow:var(--error-500);--lesson-no-show:var(--error-500);--payment-paid:var(--success-500);--payment-pending:var(--warning-500);--payment-overdue:var(--error-500);--payment-partial:var(--info-500);--rating-excellent:#10b981;--rating-good:#3b82f6;--rating-needs-work:#f59e0b;--focus-ring-color:#0c4a6e;--focus-shadow-primary:0 0 0 3px #0ea5e91a;--focus-shadow-success:0 0 0 3px #22c55e1a;--focus-shadow-error:0 0 0 3px #ef44441a;--focus-shadow-warning:0 0 0 3px #eab3081a;--font-primary:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--page-title-font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--page-title-size:40px;--page-header-action-offset:15px;--page-content-width:1220px;--page-content-gutter:22.5px;--font-mono:"JetBrains Mono","SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-2-5:0.625rem;--button-padding-y:var(--space-3);--page-padding:var(--space-6);--container-xs:480px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--transition-fast:0.15s ease;--transition-normal:0.25s ease;--transition-slow:0.5s ease;--radius-sm:0.25rem;--radius-base:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-base:0 1px 3px #0000001a;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #0000001a;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-fab:400;--z-modal-backdrop:900;--z-modal:1000;--z-popover:1100;--z-tooltip:1200;--z-notification:1300;--z-skip-link:9999}.text-h1{font-size:var(--text-4xl);font-weight:var(--font-bold)}.text-h1,.text-h2{color:var(--gray-900);line-height:var(--leading-tight);margin:0}.text-h2{font-size:var(--text-3xl);font-weight:var(--font-semibold)}.text-h3{font-size:var(--text-2xl)}.text-h3,.text-h4{color:var(--gray-900);font-weight:var(--font-semibold);line-height:var(--leading-normal);margin:0}.text-h4{font-size:var(--text-xl)}.text-h5{font-size:var(--text-lg)}.text-h5,.text-h6{color:var(--gray-900);font-weight:var(--font-medium);line-height:var(--leading-normal);margin:0}.text-h6{font-size:var(--text-base)}.text-body{font-size:var(--text-base);line-height:var(--leading-normal)}.text-body,.text-body-lg{color:var(--gray-700);font-weight:var(--font-normal);margin:0}.text-body-lg{font-size:var(--text-lg);line-height:var(--leading-relaxed)}.text-body-sm{color:var(--gray-600);font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);margin:0}.text-label{font-size:var(--text-sm)}.text-label,.text-label-lg{color:var(--gray-700);font-weight:var(--font-medium);line-height:var(--leading-normal);margin:0}.text-label-lg{font-size:var(--text-base)}.text-caption{color:var(--gray-500);font-size:var(--text-xs);font-weight:var(--font-normal);line-height:var(--leading-normal);margin:0}.text-primary{color:var(--primary-600)}.muted{color:var(--gray-500)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.italic{font-style:italic}.not-italic{font-style:normal}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.no-underline{text-decoration:none}.leading-tight{line-height:var(--leading-tight)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.tracking-tight{letter-spacing:-.025em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-overflow-clip{text-overflow:clip}.text-overflow-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.font-mono{font-family:var(--font-mono)}.font-primary{font-family:var(--font-primary)}@media (max-width:767px){.text-h1{font-size:var(--text-3xl)}.text-h2{font-size:var(--text-2xl)}.text-h3{font-size:var(--text-xl)}}.text-body,.text-body-lg,.text-body-sm,p{line-height:var(--leading-normal)}.text-readable{max-width:65ch}a{color:var(--primary-600);text-decoration:underline;transition:color var(--transition-fast)}a:hover{color:var(--primary-700)}a:focus-visible{border-radius:2px;outline:2px solid var(--focus-ring-color);outline-offset:2px}a.btn,a.card,a.nav-link{text-decoration:none}:root{--space-0:0;--space-1:0.25rem;--space-1-5:0.375rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--card-padding:var(--space-6);--card-padding-sm:var(--space-4);--card-gap:var(--space-4);--button-padding-x:var(--space-4);--button-padding-y:var(--space-2);--button-padding-x-sm:var(--space-3);--button-padding-y-sm:var(--space-1);--button-padding-x-lg:var(--space-6);--button-padding-y-lg:var(--space-3);--form-field-spacing:var(--space-4);--form-label-spacing:var(
    --space-2
  );--input-padding-x:var(--space-3);--input-padding-y:var(--space-2);--section-spacing:var(--space-8);--section-spacing-lg:var(--space-12);--grid-gap:var(--space-6);--grid-gap-sm:var(--space-4);--grid-gap-lg:var(--space-8);--header-padding:var(--space-4);--nav-spacing:var(--space-6);--list-item-spacing:var(--space-3);--list-indent:var(--space-6);--modal-padding:var(--space-6);--modal-header-spacing:var(--space-4);--container-padding:var(--space-6);--container-padding-mobile:var(--space-4);--inline-spacing-xs:var(--space-1);--inline-spacing-sm:var(--space-2);--inline-spacing:var(--space-3);--inline-spacing-lg:var(--space-4)}@media (max-width:640px){:root{--card-padding:var(--space-4);--section-spacing:var(--space-6);--section-spacing-lg:var(--space-8);--grid-gap:var(--space-4);--container-padding:var(--space-4)}}.text-primary{color:var(--primary-500)}.text-primary-light{color:var(--primary-400)}.text-primary-dark{color:var(--primary-700)}.text-success{color:var(--success-600)}.text-warning{color:var(--warning-600)}.text-error{color:var(--error-600)}.text-info{color:var(--info-600)}.text-muted{color:var(--gray-500)}.text-disabled{color:var(--gray-400)}.text-body{color:var(--gray-800)}.text-heading{color:var(--gray-900)}.text-white{color:#fff}.bg-primary{background-color:var(--primary-500)}.bg-primary-light{background-color:var(--primary-50)}.bg-primary-medium{background-color:var(--primary-100)}.bg-success{background-color:var(--success-500)}.bg-success-light{background-color:var(--success-50)}.bg-warning{background-color:var(--warning-500)}.bg-warning-light{background-color:var(--warning-50)}.bg-error{background-color:var(--error-500)}.bg-error-light{background-color:var(--error-50)}.bg-info{background-color:var(--info-500)}.bg-info-light{background-color:var(--info-50)}.bg-surface{background-color:var(--surface)}.bg-surface-secondary{background-color:var(--surface-secondary)}.bg-background{background-color:var(--background)}.bg-background-secondary{background-color:var(--background-secondary)}.bg-gray-50{background-color:var(--gray-50)}.bg-gray-100{background-color:var(--gray-100)}.bg-gray-200{background-color:var(--gray-200)}.bg-white{background-color:#fff}.border{border-color:var(--border)}.border-strong{border-color:var(--border-strong)}.border-primary{border-color:var(--primary-500)}.border-primary-light{border-color:var(--primary-300)}.border-success{border-color:var(--success-500)}.border-warning{border-color:var(--warning-500)}.border-error{border-color:var(--error-500)}.border-info{border-color:var(--info-500)}.border-gray-200{border-color:var(--gray-200)}.border-gray-300{border-color:var(--gray-300)}.border-transparent{border-color:#0000}.lesson-scheduled{color:var(--lesson-scheduled)}.lesson-completed{color:var(--lesson-completed)}.lesson-cancelled{color:var(--lesson-cancelled)}.lesson-noshow{color:var(--lesson-noshow)}.bg-lesson-scheduled{background-color:var(--info-50)}.bg-lesson-completed{background-color:var(--success-50)}.bg-lesson-cancelled{background-color:var(--gray-100)}.bg-lesson-noshow{background-color:var(--error-50)}.payment-paid{color:var(--payment-paid)}.payment-pending{color:var(--payment-pending)}.payment-overdue{color:var(--payment-overdue)}.payment-partial{color:var(--payment-partial)}.bg-payment-paid{background-color:var(--success-50)}.bg-payment-pending{background-color:var(--warning-50)}.bg-payment-overdue{background-color:var(--error-50)}.bg-payment-partial{background-color:var(--info-50)}.rating-excellent{color:var(--rating-excellent)}.rating-good{color:var(--rating-good)}.rating-needs-work{color:var(--rating-needs-work)}.focus-ring:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.hover-bg-gray-50:hover{background-color:var(--gray-50)}.hover-bg-gray-100:hover{background-color:var(--gray-100)}.hover-bg-primary-light:hover{background-color:var(--primary-50)}.hover-text-primary:hover{color:var(--primary-600)}.text-high-contrast{color:var(--gray-900)}.skip-link{background-color:var(--primary-600)}.sr-only-focusable:focus{clip:auto;height:auto;margin:inherit;overflow:visible;padding:inherit;position:static;white-space:normal;width:auto}.skip-link{background:var(--primary-600);border-radius:0 0 .375rem 0;color:#fff;font-weight:var(--font-medium);left:0;padding:var(--space-2) var(--space-4);position:absolute;text-decoration:none;top:-40px;transition:top .2s ease;z-index:var(--z-skip-link)}.skip-link:focus{top:0}.focus-ring,.skip-link:focus{outline:2px solid var(--focus-ring-color);outline-offset:2px}.focus-ring-inset{outline:2px solid var(--focus-ring-color);outline-offset:-2px}.focus-ring-error{outline:2px solid var(--error-500);outline-offset:2px}.focus-ring-success{outline:2px solid var(--success-500);outline-offset:2px}.aria-live-assertive,.aria-live-polite{height:1px;left:-10000px;overflow:hidden;position:absolute;width:1px}@media (prefers-contrast:high){.btn,.card,.form-input,.form-select,.form-textarea{border-width:2px}.focus-ring,:focus-visible{outline-width:3px}}@media (prefers-reduced-motion:reduce){.no-motion-animation{animation:none!important;transition:none!important}}.focusable{outline:none}.focusable:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.no-focus-visible:focus:not(:focus-visible){outline:none}.touch-target{align-items:center;display:inline-flex;justify-content:center;min-height:44px;min-width:44px}.touch-target-sm{min-height:36px;min-width:36px}.touch-target-lg{min-height:48px;min-width:48px}.pattern-fill{background-image:repeating-linear-gradient(45deg,#0000,#0000 10px,#0000001a 0,#0000001a 20px)}.hidden{display:none!important}.invisible{visibility:hidden!important}.focus-trap-end,.focus-trap-start,.visually-hidden{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.hidden-mobile{display:none}@media (min-width:640px){.hidden-mobile{display:inline;display:initial}}@media (min-width:640px) and (max-width:1023px){.hidden-tablet{display:none}}@media (min-width:1024px){.hidden-desktop{display:none}}.mobile-only{display:inline;display:initial}@media (min-width:640px){.mobile-only{display:none}}.tablet-only{display:none}@media (min-width:640px) and (max-width:1023px){.tablet-only{display:inline;display:initial}}.desktop-only{display:none}@media (min-width:1024px){.desktop-only{display:inline;display:initial}}.visible-mobile{display:inline;display:initial}@media (min-width:640px){.visible-mobile{display:none}}.visible-tablet{display:none}@media (min-width:640px) and (max-width:1023px){.visible-tablet{display:inline;display:initial}}.visible-desktop{display:none}@media (min-width:1024px){.visible-desktop{display:inline;display:initial}}.flex-mobile-column{flex-direction:column}@media (min-width:640px){.flex-mobile-column{flex-direction:row}}.flex-tablet-column{flex-direction:column}@media (min-width:1024px){.flex-tablet-column{flex-direction:row}}.flex-mobile-row{flex-direction:row}@media (min-width:640px){.flex-mobile-row{flex-direction:column}}.flex-tablet-row{flex-direction:column}@media (min-width:640px){.flex-tablet-row{flex-direction:row}}.flex-desktop-row{flex-direction:column}@media (min-width:1024px){.flex-desktop-row{flex-direction:row}}.text-mobile-center{text-align:center}@media (min-width:1024px){.text-mobile-center{text-align:left}}.text-desktop-center{text-align:left}@media (min-width:1024px){.text-desktop-center{text-align:center}}.text-mobile-center-desktop-right{text-align:center}@media (min-width:1024px){.text-mobile-center-desktop-right{text-align:right}}.text-desktop-left{text-align:left}@media (min-width:1024px){.text-desktop-left{text-align:right}}.text-desktop-right{text-align:right}@media (min-width:1024px){.text-desktop-right{text-align:left}}.p-mobile-0{padding:0}.p-mobile-1{padding:var(--space-1)}.p-mobile-2{padding:var(--space-2)}.p-mobile-3{padding:var(--space-3)}.p-mobile-4{padding:var(--space-4)}.p-mobile-5{padding:var(--space-5)}.p-mobile-6{padding:var(--space-6)}@media (min-width:640px){.p-tablet-0{padding:0}.p-tablet-1{padding:var(--space-1)}.p-tablet-2{padding:var(--space-2)}.p-tablet-3{padding:var(--space-3)}.p-tablet-4{padding:var(--space-4)}.p-tablet-5{padding:var(--space-5)}.p-tablet-6{padding:var(--space-6)}.p-tablet-8{padding:var(--space-8)}}@media (min-width:1024px){.p-desktop-0{padding:0}.p-desktop-1{padding:var(--space-1)}.p-desktop-2{padding:var(--space-2)}.p-desktop-3{padding:var(--space-3)}.p-desktop-4{padding:var(--space-4)}.p-desktop-5{padding:var(--space-5)}.p-desktop-6{padding:var(--space-6)}.p-desktop-8{padding:var(--space-8)}.p-desktop-10{padding:var(--space-10)}}.mt-mobile-0{margin-top:0}.mt-mobile-1{margin-top:var(--space-1)}.mt-mobile-2{margin-top:var(--space-2)}.mt-mobile-3{margin-top:var(--space-3)}.mt-mobile-4{margin-top:var(--space-4)}.mt-mobile-5{margin-top:var(--space-5)}.mt-mobile-6{margin-top:var(--space-6)}@media (min-width:640px){.mt-tablet-0{margin-top:0}.mt-tablet-1{margin-top:var(--space-1)}.mt-tablet-2{margin-top:var(--space-2)}.mt-tablet-3{margin-top:var(--space-3)}.mt-tablet-4{margin-top:var(--space-4)}.mt-tablet-5{margin-top:var(--space-5)}.mt-tablet-6{margin-top:var(--space-6)}.mt-tablet-8{margin-top:var(--space-8)}}@media (min-width:1024px){.mt-desktop-0{margin-top:0}.mt-desktop-1{margin-top:var(--space-1)}.mt-desktop-2{margin-top:var(--space-2)}.mt-desktop-3{margin-top:var(--space-3)}.mt-desktop-4{margin-top:var(--space-4)}.mt-desktop-5{margin-top:var(--space-5)}.mt-desktop-6{margin-top:var(--space-6)}.mt-desktop-8{margin-top:var(--space-8)}.mt-desktop-10{margin-top:var(--space-10)}}.mb-mobile-0{margin-bottom:0}.mb-mobile-1{margin-bottom:var(--space-1)}.mb-mobile-2{margin-bottom:var(--space-2)}.mb-mobile-3{margin-bottom:var(--space-3)}.mb-mobile-4{margin-bottom:var(--space-4)}.mb-mobile-5{margin-bottom:var(--space-5)}.mb-mobile-6{margin-bottom:var(--space-6)}@media (min-width:640px){.mb-tablet-0{margin-bottom:0}.mb-tablet-1{margin-bottom:var(--space-1)}.mb-tablet-2{margin-bottom:var(--space-2)}.mb-tablet-3{margin-bottom:var(--space-3)}.mb-tablet-4{margin-bottom:var(--space-4)}.mb-tablet-5{margin-bottom:var(--space-5)}.mb-tablet-6{margin-bottom:var(--space-6)}.mb-tablet-8{margin-bottom:var(--space-8)}}@media (min-width:1024px){.mb-desktop-0{margin-bottom:0}.mb-desktop-1{margin-bottom:var(--space-1)}.mb-desktop-2{margin-bottom:var(--space-2)}.mb-desktop-3{margin-bottom:var(--space-3)}.mb-desktop-4{margin-bottom:var(--space-4)}.mb-desktop-5{margin-bottom:var(--space-5)}.mb-desktop-6{margin-bottom:var(--space-6)}.mb-desktop-8{margin-bottom:var(--space-8)}.mb-desktop-10{margin-bottom:var(--space-10)}}.mx-mobile-0{margin-left:0;margin-right:0}.mx-mobile-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-mobile-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-mobile-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-mobile-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-mobile-auto{margin-left:auto;margin-right:auto}@media (min-width:1024px){.mx-desktop-0{margin-left:0;margin-right:0}.mx-desktop-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-desktop-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-desktop-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-desktop-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-desktop-6{margin-left:var(--space-6);margin-right:var(--space-6)}.mx-desktop-auto{margin-left:auto;margin-right:auto}}.gap-mobile-0{gap:0}.gap-mobile-1{gap:var(--space-1)}.gap-mobile-2{gap:var(--space-2)}.gap-mobile-3{gap:var(--space-3)}.gap-mobile-4{gap:var(--space-4)}.gap-mobile-5{gap:var(--space-5)}.gap-mobile-6{gap:var(--space-6)}@media (min-width:640px){.gap-tablet-0{gap:0}.gap-tablet-1{gap:var(--space-1)}.gap-tablet-2{gap:var(--space-2)}.gap-tablet-3{gap:var(--space-3)}.gap-tablet-4{gap:var(--space-4)}.gap-tablet-5{gap:var(--space-5)}.gap-tablet-6{gap:var(--space-6)}.gap-tablet-8{gap:var(--space-8)}}@media (min-width:1024px){.gap-desktop-0{gap:0}.gap-desktop-1{gap:var(--space-1)}.gap-desktop-2{gap:var(--space-2)}.gap-desktop-3{gap:var(--space-3)}.gap-desktop-4{gap:var(--space-4)}.gap-desktop-5{gap:var(--space-5)}.gap-desktop-6{gap:var(--space-6)}.gap-desktop-8{gap:var(--space-8)}.gap-desktop-10{gap:var(--space-10)}}.w-mobile-full{width:100%}@media (min-width:1024px){.w-mobile-full{width:auto}}.w-desktop-full{width:auto}@media (min-width:1024px){.w-desktop-full{width:100%}}.w-mobile-50{width:50%}.w-mobile-100{width:100%}@media (min-width:640px){.w-tablet-25{width:25%}.w-tablet-33{width:33.333%}.w-tablet-50{width:50%}.w-tablet-66{width:66.666%}.w-tablet-75{width:75%}.w-tablet-100{width:100%}}@media (min-width:1024px){.w-desktop-25{width:25%}.w-desktop-33{width:33.333%}.w-desktop-50{width:50%}.w-desktop-66{width:66.666%}.w-desktop-75{width:75%}.w-desktop-100{width:100%}}.touch-target-base{min-height:44px;min-width:44px}.touch-target-base,.touch-target-comfortable{align-items:center;display:inline-flex;justify-content:center}.touch-target-comfortable{min-height:48px;min-width:48px}.touch-target-spacious{align-items:center;display:inline-flex;justify-content:center;min-height:56px;min-width:56px}@media (max-width:768px){.touch-target-auto{align-items:center;display:inline-flex;justify-content:center;min-height:44px;min-width:44px}.btn:not(.touch-target-override),[role=button]:not(.touch-target-override),a.btn:not(.touch-target-override),button:not(.touch-target-override){min-height:44px;padding:var(--space-2) var(--space-4)}input:not([type=checkbox]):not([type=radio]):not(.touch-target-override),select:not(.touch-target-override),textarea:not(.touch-target-override){font-size:16px;min-height:44px;padding:var(--space-3) var(--space-3)}input[type=checkbox],input[type=radio]{cursor:pointer;height:24px;width:24px}input[type=checkbox]+label,input[type=radio]+label{align-items:center;cursor:pointer;display:inline-flex;min-height:44px;padding:var(--space-3)}}.touch-spacing{margin:var(--space-2)}.touch-spacing-sm{margin:var(--space-1)}.touch-spacing-lg{margin:var(--space-3)}.touch-spacing-y{margin-bottom:var(--space-2);margin-top:var(--space-2)}.touch-spacing-y-sm{margin-bottom:var(--space-1);margin-top:var(--space-1)}.touch-spacing-y-lg{margin-bottom:var(--space-3);margin-top:var(--space-3)}@media (max-width:768px){.mobile-input-full{max-width:100%;width:100%}.mobile-input-comfortable{font-size:16px;padding:var(--space-4)}input[type=number].mobile-friendly{padding-right:var(--space-4)}input[type=date],input[type=datetime-local],input[type=time]{font-size:16px;min-height:44px;padding:var(--space-3)}.form-group-mobile-stack{display:flex;flex-direction:column;gap:var(--space-3)}.form-label-mobile-stack{display:block;font-weight:var(--font-medium);margin-bottom:var(--space-2)}.form-control-mobile-full{width:100%}.form-actions-mobile-sticky{background:var(--white);bottom:0;box-shadow:0 -2px 8px #0000001a;left:0;padding:var(--space-4);position:-webkit-sticky;position:sticky;right:0;z-index:var(--z-sticky)}}.touch-feedback{-webkit-tap-highlight-color:rgba(0,0,0,.1);transition:background-color .15s ease,transform .15s ease}.touch-feedback:active{background-color:var(--gray-100);transform:scale(.98)}.touch-no-highlight{-webkit-tap-highlight-color:transparent}.swipeable{touch-action:pan-y}.swipeable,.swipeable-x{user-select:none;-webkit-user-select:none}.swipeable-x{touch-action:pan-x}.swipeable-none{touch-action:none;user-select:none;-webkit-user-select:none}.no-zoom-on-focus{font-size:16px}@media (max-width:768px){.keyboard-aware{padding-bottom:env(safe-area-inset-bottom)}}.touch-scroll-smooth{scroll-behavior:smooth}.touch-momentum,.touch-scroll-smooth{-webkit-overflow-scrolling:touch}@media (max-width:768px){select.touch-select{background-position:right var(--space-3) center;font-size:16px}select.touch-select,select.touch-select option{min-height:44px;padding:var(--space-3)}}.fab{align-items:center;background:var(--primary-600);border:none;border-radius:50%;bottom:var(--space-6);box-shadow:0 4px 12px #00000026;color:var(--white);cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:var(--space-4);transition:all .2s ease;width:56px;z-index:var(--z-fab)}.fab:hover{background:var(--primary-700);box-shadow:0 6px 16px #0003}.fab:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){.fab{transition:none}.fab:active{transform:none}}.bottom-sheet{background:var(--white);border-radius:var(--radius-lg) var(--radius-lg) 0 0;bottom:0;box-shadow:0 -4px 16px #0000001a;left:0;max-height:80vh;overflow-y:auto;padding:var(--space-4);position:fixed;right:0;transform:translateY(100%);transition:transform .3s ease;z-index:var(--z-modal)}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-handle{background:var(--gray-300);border-radius:2px;height:4px;margin:0 auto var(--space-4);width:40px}@media (prefers-reduced-motion:reduce){.bottom-sheet{transition:none}}.pull-to-refresh{align-items:center;background:var(--gray-50);display:flex;height:60px;justify-content:center;left:0;position:absolute;right:0;top:0;transform:translateY(-100%);transition:transform .2s ease}.pull-to-refresh.visible{transform:translateY(0)}@media (max-width:768px){.table-mobile-cards{display:block}.table-mobile-cards thead{display:none}.table-mobile-cards tbody{display:block}.table-mobile-cards tr{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);display:block;margin-bottom:var(--space-4);padding:var(--space-4)}.table-mobile-cards td{border:none;display:block;padding:var(--space-2) 0;text-align:left}.table-mobile-cards td:before{color:var(--gray-600);content:attr(data-label);display:block;font-weight:var(--font-semibold);margin-bottom:var(--space-1)}}@media (pointer:coarse){[role=button],[role=link],a,button,input,select,textarea{margin:var(--space-1)}}@media (max-width:768px){.safe-area-inset{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.safe-area-inset-top{padding-top:env(safe-area-inset-top)}.safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}}.grid-auto-fill-sm{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}.grid-auto-fill-md{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}.grid-auto-fill-lg{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(400px,100%),1fr))}.grid-auto-fit-sm{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.grid-auto-fit-md{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.grid-auto-fit-lg{grid-gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr))}.grid-auto-fit-lg,.grid-cols-1{display:grid;gap:var(--space-4)}.grid-cols-1{grid-gap:var(--space-4);grid-template-columns:1fr}.grid-cols-2{grid-gap:var(--space-4);grid-template-columns:repeat(2,1fr)}.grid-cols-2,.grid-cols-3{display:grid;gap:var(--space-4)}.grid-cols-3{grid-gap:var(--space-4);grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(4,1fr)}.grid-cols-mobile-1{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.grid-cols-tablet-2{grid-template-columns:repeat(2,1fr)}.grid-cols-tablet-3{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.grid-cols-desktop-2{grid-template-columns:repeat(2,1fr)}.grid-cols-desktop-3{grid-template-columns:repeat(3,1fr)}.grid-cols-desktop-4{grid-template-columns:repeat(4,1fr)}}.dashboard-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.dashboard-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1280px){.dashboard-grid{grid-template-columns:repeat(4,1fr)}}.widget-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:768px){.widget-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.widget-grid{grid-template-columns:repeat(3,1fr)}}.card-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.card-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.gap-mobile-1{gap:var(--space-1)}.gap-mobile-2{gap:var(--space-2)}.gap-mobile-3{gap:var(--space-3)}.gap-mobile-4{gap:var(--space-4)}.gap-mobile-5{gap:var(--space-5)}.gap-mobile-6{gap:var(--space-6)}}@media (min-width:640px) and (max-width:1024px){.gap-tablet-1{gap:var(--space-1)}.gap-tablet-2{gap:var(--space-2)}.gap-tablet-3{gap:var(--space-3)}.gap-tablet-4{gap:var(--space-4)}.gap-tablet-5{gap:var(--space-5)}.gap-tablet-6{gap:var(--space-6)}}@media (min-width:1024px){.gap-desktop-1{gap:var(--space-1)}.gap-desktop-2{gap:var(--space-2)}.gap-desktop-3{gap:var(--space-3)}.gap-desktop-4{gap:var(--space-4)}.gap-desktop-5{gap:var(--space-5)}.gap-desktop-6{gap:var(--space-6)}}.gap-responsive{gap:var(--space-3)}@media (min-width:640px){.gap-responsive{gap:var(--space-4)}}@media (min-width:1024px){.gap-responsive{gap:var(--space-5)}}.col-span-1{grid-column:span 1}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.col-span-full{grid-column:1/-1}.row-span-1{grid-row:span 1}.row-span-2{grid-row:span 2}.row-span-3{grid-row:span 3}.row-span-full{grid-row:1/-1}.metrics-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.metrics-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1280px){.metrics-grid{grid-template-columns:repeat(4,1fr)}}.students-grid{grid-gap:var(--space-4);gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.students-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.students-grid{grid-template-columns:repeat(3,1fr)}}.payments-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:1fr}@media (min-width:768px){.payments-grid{gap:0;grid-template-columns:1fr}}.progress-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:640px){.progress-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.progress-grid{grid-template-columns:repeat(3,1fr)}}.portal-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}@media (min-width:768px){.portal-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.portal-grid{grid-template-columns:repeat(3,1fr)}}.justify-items-start{justify-items:start}.justify-items-center{justify-items:center}.justify-items-end{justify-items:end}.justify-items-stretch{justify-items:stretch}.align-items-start{align-items:start}.align-items-center{align-items:center}.align-items-end{align-items:end}.align-items-stretch{align-items:stretch}.justify-content-start{justify-content:start}.justify-content-center{justify-content:center}.justify-content-end{justify-content:end}.justify-content-between{justify-content:space-between}.justify-content-around{justify-content:space-around}.justify-content-evenly{justify-content:space-evenly}.align-content-start{align-content:start}.align-content-center{align-content:center}.align-content-end{align-content:end}.align-content-between{align-content:space-between}.align-content-around{align-content:space-around}.align-content-evenly{align-content:space-evenly}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}@media (max-width:639px){.grid-hide-mobile{display:none}}@media (min-width:640px) and (max-width:1023px){.grid-hide-tablet{display:none}}@media (min-width:1024px){.grid-hide-desktop{display:none}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{animation:shimmer 1.2s ease-in-out infinite;background:var(--gray-200);background-image:linear-gradient(90deg,var(--gray-200) 0,var(--gray-100) 40px,var(--gray-200) 80px);background-size:468px 100%;border-radius:var(--radius-base);display:inline-block;overflow:hidden;position:relative}.skeleton-text{height:1em;margin-bottom:var(--space-2);width:100%}.skeleton-text-sm{height:.875em;margin-bottom:var(--space-1);width:100%}.skeleton-text-lg{height:1.25em;margin-bottom:var(--space-3);width:100%}.skeleton-heading{height:1.5em;margin-bottom:var(--space-4);width:60%}.skeleton-avatar{border-radius:50%;height:48px;width:48px}.skeleton-avatar-sm{border-radius:50%;height:32px;width:32px}.skeleton-avatar-lg{border-radius:50%;height:64px;width:64px}.skeleton-button{border-radius:var(--radius-base);height:40px;width:120px}.skeleton-card{border-radius:var(--radius-md);height:200px;width:100%}.skeleton-thumbnail{border-radius:var(--radius-base);height:160px;width:100%}.spinner{animation:spin .8s linear infinite;border:4px solid var(--gray-200);border-radius:50%;border-top-color:var(--primary-500);display:inline-block;height:40px;width:40px}.spinner-sm{border-width:3px;height:24px;width:24px}.spinner-lg{border-width:5px;height:56px;width:56px}.spinner-container{align-items:center;display:flex;justify-content:center;padding:var(--space-8)}.progress-bar{background:var(--gray-200);height:8px;width:100%}.progress-bar-fill{background:var(--primary-500);border-radius:var(--radius-full);height:100%;transition:width .3s ease}.progress-bar-sm{height:4px}.progress-bar-lg{height:12px}@keyframes progress-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(400%)}}.progress-bar-indeterminate .progress-bar-fill{animation:progress-indeterminate 1.5s ease-in-out infinite;width:30%}.progress-ring{display:inline-block;height:48px;width:48px}.progress-ring-circle{fill:none;stroke:var(--primary-500);stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .3s ease}.progress-ring-background{fill:none;stroke:var(--gray-200);stroke-width:4}.progress-ring-sm{height:32px;width:32px}.progress-ring-lg{height:64px;width:64px}@keyframes loading-dot{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.loading-dots{align-items:center;display:inline-flex;gap:var(--space-2)}.loading-dot{animation:loading-dot 1.4s ease-in-out infinite;background:var(--primary-500);border-radius:50%;height:8px;width:8px}.loading-dot:first-child{animation-delay:0s}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}.loading-overlay{align-items:center;background:#ffffffe6;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:var(--z-modal)}.loading-overlay-dark{background:#00000080}.loading-pulse{animation:pulse 1.5s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.loading-dot,.loading-pulse,.progress-bar-fill,.progress-bar-indeterminate .progress-bar-fill,.progress-ring-circle,.skeleton,.spinner{animation:none}.skeleton{background:var(--gray-200);background-image:none}.spinner{border-right-color:var(--primary-500);border-top-color:var(--primary-500)}.loading-dot{opacity:.6}.progress-bar-fill,.progress-ring-circle{transition:none}}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-base);cursor:pointer;display:inline-flex;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);justify-content:center;line-height:var(--leading-tight);padding:var(--button-padding-y) var(--button-padding-x);text-decoration:none;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-user-select:none;user-select:none}.btn:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{--btn-spinner-color:#fff;background:var(--primary-500);border-color:var(--primary-500);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-600);border-color:var(--primary-600);color:#fff}.btn-primary:active:not(:disabled){background:var(--primary-700);border-color:var(--primary-700)}.btn-secondary{--btn-spinner-color:var(--gray-700);background:var(--background);border-color:var(--border-strong);color:var(--gray-700)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);color:var(--gray-700)}.btn-secondary:active:not(:disabled){background:var(--gray-100)}.btn-success{--btn-spinner-color:#fff;background:var(--success-600);border-color:var(--success-600);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-700);border-color:var(--success-700)}.btn-success:active:not(:disabled){background:var(--success-800);border-color:var(--success-800)}.btn-warning{--btn-spinner-color:#fff;background:var(--warning-600);border-color:var(--warning-600);color:#fff}.btn-warning:hover:not(:disabled){background:var(--warning-700);border-color:var(--warning-700)}.btn-warning:active:not(:disabled){background:var(--warning-800);border-color:var(--warning-800)}.btn-danger,.btn-error{--btn-spinner-color:#fff;background:var(--error-600);border-color:var(--error-600);color:#fff}.btn-danger:hover:not(:disabled),.btn-error:hover:not(:disabled){background:var(--error-700);border-color:var(--error-700)}.btn-danger:active:not(:disabled),.btn-error:active:not(:disabled){background:var(--error-800);border-color:var(--error-800)}.btn-info{--btn-spinner-color:#fff;background:var(--info-600);border-color:var(--info-600);color:#fff}.btn-info:hover:not(:disabled){background:var(--info-700);border-color:var(--info-700)}.btn-info:active:not(:disabled){background:var(--info-800);border-color:var(--info-800)}.btn-outline-primary{--btn-spinner-color:var(--primary-600);background:#0000;border-color:var(--primary-600);color:var(--primary-600)}.btn-outline-primary:hover:not(:disabled){background:var(--primary-50);border-color:var(--primary-700);color:var(--primary-700)}.btn-outline-secondary{--btn-spinner-color:var(--gray-700);background:#0000;border-color:var(--gray-300);color:var(--gray-700)}.btn-outline-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-text{--btn-spinner-color:var(--primary-600);background:#0000;border-color:#0000;color:var(--primary-600)}.btn-text:hover:not(:disabled){background:var(--primary-50);color:var(--primary-700)}.btn-text-secondary{--btn-spinner-color:var(--gray-600);background:#0000;border-color:#0000;color:var(--gray-600)}.btn-text-secondary:hover:not(:disabled){background:var(--gray-50);color:var(--gray-800)}.btn-sm{font-size:var(--text-xs);gap:var(--space-1);padding:var(--space-2) var(--space-3)}.btn-md{font-size:var(--text-sm);padding:var(--button-padding-y) var(--button-padding-x)}.btn-lg{font-size:var(--text-base);padding:var(--space-3) var(--space-5)}.btn-xl{font-size:var(--text-lg);padding:var(--space-4) var(--space-6)}.btn-block{width:100%}.btn-icon{aspect-ratio:1;padding:var(--space-2)}.btn-icon.btn-sm{padding:var(--space-1-5)}.btn-icon.btn-lg{padding:var(--space-3)}.btn-loading{--btn-spinner-color:var(--gray-50);color:#0000;pointer-events:none;position:relative}.btn-loading:after{animation:btn-spin .6s linear infinite;border:2px solid var(--btn-spinner-color,var(--gray-50));border-radius:50%;border-top:2px solid #0000;content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}@keyframes btn-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.btn-loading:after{animation:none;border-top-color:initial}}.btn-group{display:inline-flex;gap:0}.btn-group>.btn{border-radius:0;position:relative}.btn-group>.btn:first-child{border-bottom-left-radius:var(--radius-base);border-top-left-radius:var(--radius-base)}.btn-group>.btn:last-child{border-bottom-right-radius:var(--radius-base);border-top-right-radius:var(--radius-base)}.btn-group>.btn:not(:last-child){border-right-width:0}.btn-group>.btn:focus-visible,.btn-group>.btn:hover{z-index:1}@media (max-width:640px){.btn-sm-responsive{font-size:var(--text-xs);padding:var(--space-2) var(--space-3)}.btn-block-mobile{width:100%}}@media (max-width:768px){.btn{font-size:var(--text-base);padding:var(--space-3) var(--space-4)}.btn,.btn-sm{min-height:44px}.btn-sm{font-size:var(--text-sm);padding:var(--space-2-5) var(--space-4)}.btn-md{font-size:var(--text-base);min-height:44px;padding:var(--space-3) var(--space-4)}.btn-lg{font-size:var(--text-lg);min-height:48px;padding:var(--space-4) var(--space-6)}.btn-xl{font-size:var(--text-xl);min-height:56px;padding:var(--space-5) var(--space-8)}.btn-icon{padding:var(--space-3)}.btn-icon,.btn-icon.btn-sm{min-height:44px;min-width:44px}.btn-icon.btn-sm{padding:var(--space-2)}.btn-icon.btn-lg{min-height:48px;min-width:48px;padding:var(--space-3)}.btn-danger.btn-block-mobile,.btn-error.btn-block-mobile,.btn-outline-primary.btn-block,.btn-outline-secondary.btn-block,.btn-primary.btn-block-mobile,.btn-secondary.btn-block,.btn-success.btn-block-mobile{width:100%}.btn-group{flex-direction:column;width:100%}.btn-group>.btn{border-bottom-width:0;border-radius:0;border-right-width:1px;width:100%}.btn-group>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:var(--radius-base);border-top-right-radius:var(--radius-base)}.btn-group>.btn:last-child{border-bottom-left-radius:var(--radius-base);border-bottom-right-radius:var(--radius-base);border-bottom-width:1px;border-top-right-radius:0}.btn+.btn{margin-top:var(--space-3)}.btn{-webkit-tap-highlight-color:rgba(0,0,0,.1)}.btn:active:not(:disabled){transform:scale(.98)}}@media (max-width:768px){@media (prefers-reduced-motion:reduce){.btn:active:not(:disabled){transform:none}}}@media (max-width:768px){.btn:not(.btn-group>.btn)+.btn:not(.btn-group>.btn){margin-left:0}.btn-stack{display:flex;flex-direction:column;gap:var(--space-3)}.btn-stack>.btn{width:100%}}@media (pointer:coarse){.btn{margin:var(--space-1)}.btn:focus-visible{outline-offset:2px;outline-width:3px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.card:focus-within{outline:2px solid var(--primary-500);outline-offset:2px}.card-interactive{cursor:pointer}.card-interactive:focus-visible,.card-interactive:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.card-interactive:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.card-header{align-items:center;background:var(--surface-secondary);border-bottom:1px solid var(--border);color:var(--gray-900);display:flex;padding:var(--card-padding);position:relative}.card-header h2,.card-header h3{color:var(--gray-900);margin:0}.card-body,.card-footer{padding:var(--card-padding)}.card-footer{align-items:center;background:var(--surface-secondary);border-top:1px solid var(--border);display:flex;justify-content:space-between}.card-bordered,.card-flat{box-shadow:none}.card-bordered{border-color:var(--border-strong)}.card-elevated{box-shadow:0 4px 6px #0000001a}.card-elevated:hover{box-shadow:0 6px 12px #00000026}.card-primary{background:var(--primary-50);border-color:var(--primary-300)}.card-success{background:var(--success-50);border-color:var(--success-300)}.card-warning{background:var(--warning-50);border-color:var(--warning-300)}.card-error{background:var(--error-50);border-color:var(--error-300)}.card-info{background:var(--info-50);border-color:var(--info-300)}.card-no-padding,.card-no-padding .card-body{padding:0}.card-compact .card-body,.card-compact .card-footer,.card-compact .card-header{padding:var(--space-3)}.card-spacious .card-body,.card-spacious .card-footer,.card-spacious .card-header{padding:var(--space-6)}@media (max-width:640px){.card{border-radius:var(--radius-base)}.card-body,.card-footer,.card-header{padding:var(--space-3)}}.form-group{margin-bottom:var(--form-field-spacing)}.form-label{color:var(--gray-700);font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-2)}.form-label-required:after{color:var(--error-500);content:" *"}.form-help-text{color:var(--gray-600);display:block;font-size:var(--text-xs);margin-top:var(--space-1)}.form-input,.form-select,.form-textarea{background-color:var(--background);border:1px solid var(--border);border-radius:var(--radius-base);color:var(--gray-900)!important;font-family:inherit;font-size:var(--text-sm);line-height:var(--leading-normal);padding:var(--space-2-5) var(--space-3);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-500);box-shadow:var(--focus-shadow-primary);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--gray-400)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background-color:var(--gray-50);color:var(--gray-500);cursor:not-allowed;opacity:.6}.form-textarea{min-height:80px;resize:vertical}.form-textarea-fixed{resize:none}.form-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:16px 12px;height:var(--space-10);padding:0 var(--space-10) 0 var(--space-3)}.form-checkbox,.form-radio,input[type=checkbox],input[type=radio]{-webkit-appearance:none;appearance:none;background-color:var(--background);border:1px solid var(--gray-900);cursor:pointer;flex-shrink:0;height:18px;transition:background-color .15s ease-in-out,border-color .15s ease-in-out;width:18px}.form-checkbox,input[type=checkbox]{border-radius:var(--radius-sm)}.form-radio,input[type=radio]{border-radius:50%}.form-checkbox:checked,.form-radio:checked,input[type=checkbox]:checked,input[type=radio]:checked{background-color:var(--background);border-color:var(--gray-900)}.form-checkbox:checked,input[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.form-radio:checked,input[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.form-checkbox:focus,.form-radio:focus,input[type=checkbox]:focus,input[type=radio]:focus{border-color:var(--primary-500);box-shadow:var(--focus-shadow-primary);outline:none}.form-checkbox:disabled,.form-radio:disabled{cursor:not-allowed;opacity:.5}.form-check{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.form-check-label{color:var(--gray-700);cursor:pointer;font-size:var(--text-sm);-webkit-user-select:none;user-select:none}.form-input-success,.form-select-success,.form-textarea-success{border-color:var(--success-500)}.form-input-success:focus,.form-select-success:focus,.form-textarea-success:focus{border-color:var(--success-600);box-shadow:var(--focus-shadow-success)}.form-feedback-success{color:var(--success-600);display:block;font-size:var(--text-xs);margin-top:var(--space-1)}.form-input-error,.form-select-error,.form-textarea-error{border-color:var(--error-500)}.form-input-error:focus,.form-select-error:focus,.form-textarea-error:focus{border-color:var(--error-600);box-shadow:var(--focus-shadow-error)}.form-feedback-error{color:var(--error-600);display:block;font-size:var(--text-xs);margin-top:var(--space-1)}.form-input-warning,.form-select-warning,.form-textarea-warning{border-color:var(--warning-500)}.form-input-warning:focus,.form-select-warning:focus,.form-textarea-warning:focus{border-color:var(--warning-600);box-shadow:var(--focus-shadow-warning)}.form-feedback-warning{color:var(--warning-600);display:block;font-size:var(--text-xs);margin-top:var(--space-1)}.form-input-sm,.form-select-sm,.form-textarea-sm{font-size:var(--text-xs);padding:var(--space-1-5) var(--space-2)}.form-input-lg,.form-select-lg,.form-textarea-lg{font-size:var(--text-base);padding:var(--space-3) var(--space-4)}.input-group{align-items:stretch;display:flex;width:100%}.input-group>.form-input,.input-group>.form-select{flex:1 1;min-width:0}.input-group-append,.input-group-prepend{align-items:center;background-color:var(--gray-50);border:1px solid var(--border);color:var(--gray-700);display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2-5) var(--space-3);white-space:nowrap}.input-group-prepend{border-radius:var(--radius-base) 0 0 var(--radius-base);border-right:0}.input-group-append{border-left:0;border-radius:0 var(--radius-base) var(--radius-base) 0}.input-group>.form-input:not(:first-child),.input-group>.form-select:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group>.form-input:not(:last-child),.input-group>.form-select:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.form-inline .form-group{margin-bottom:0}.form-grid{grid-gap:var(--form-field-spacing);display:grid;gap:var(--form-field-spacing);grid-template-columns:1fr}.form-grid-2{grid-template-columns:repeat(2,1fr)}.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.form-grid-2,.form-grid-3,.form-grid-4{grid-template-columns:1fr}.form-inline{align-items:stretch;flex-direction:column}.input-group{flex-wrap:wrap}.form-input,.form-select,.form-textarea{font-size:16px;min-height:44px;padding:var(--space-3) var(--space-3)}.form-input-lg,.form-select-lg,.form-textarea-lg{font-size:16px;min-height:48px;padding:var(--space-4) var(--space-4)}.form-input-sm,.form-select-sm{font-size:16px;min-height:44px;padding:var(--space-2-5) var(--space-3)}.form-checkbox,.form-radio{height:24px;width:24px}.form-check{align-items:center;min-height:44px;padding:var(--space-2) 0}.form-check-label{cursor:pointer;flex:1 1;padding:var(--space-2)}.form-select{background-position:right var(--space-4) center;padding-right:var(--space-12)}.form-textarea{font-size:16px;min-height:120px;padding:var(--space-4)}.form-label{font-size:var(--text-base);margin-bottom:var(--space-2)}.form-help-text{font-size:var(--text-sm)}.form-feedback-error,.form-feedback-success,.form-feedback-warning{font-size:var(--text-sm);margin-top:var(--space-2)}.input-group-append,.input-group-prepend{min-height:44px;padding:var(--space-3) var(--space-4)}}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}@media (max-width:768px){.form-input-number-wrapper{align-items:stretch;display:flex}.form-input-number-wrapper input[type=number]{border-left:0;border-radius:0;border-right:0;flex:1 1}.form-input-number-btn{align-items:center;background:var(--gray-100);border:1px solid var(--border);color:var(--gray-700);cursor:pointer;display:flex;font-weight:var(--font-semibold);justify-content:center;min-height:44px;min-width:44px;-webkit-user-select:none;user-select:none}.form-input-number-btn:active{background:var(--gray-200)}.form-input-number-btn:first-child{border-radius:var(--radius-base) 0 0 var(--radius-base)}.form-input-number-btn:last-child{border-radius:0 var(--radius-base) var(--radius-base) 0}input,select,textarea{font-size:max(16px,1em)}input[type=date],input[type=datetime-local],input[type=month],input[type=time],input[type=week]{font-size:16px;min-height:44px;padding:var(--space-3)}}table th{border-bottom:2px solid var(--border);color:var(--gray-700);font-weight:500}table td{color:var(--gray-900);font-weight:400}.form-actions{border-top:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4);padding-top:var(--space-4)}@media (max-width:768px){.form-actions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.form-actions .btn,.form-actions button{font-size:var(--text-base);min-height:48px;width:100%}.form-actions-sticky{background:var(--white);bottom:0;box-shadow:0 -2px 8px #0000001a;left:0;margin-bottom:calc(var(--space-4)*-1);margin-left:calc(var(--space-4)*-1);margin-right:calc(var(--space-4)*-1);padding:var(--space-4);position:-webkit-sticky;position:sticky;right:0;z-index:var(--z-sticky)}}.badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-medium);justify-content:center;line-height:1;padding:var(--space-1) var(--space-2);white-space:nowrap}.badge-primary{background:var(--primary-100);color:var(--primary-700)}.badge-secondary{background:var(--gray-100);color:var(--gray-700)}.badge-success{background:var(--success-100);color:var(--success-700)}.badge-warning{background:var(--warning-100);color:var(--warning-700)}.badge-danger,.badge-error{background:var(--error-100);color:var(--error-700)}.badge-info{background:var(--info-100);color:var(--info-700)}.badge-primary-solid{background:var(--primary-600);color:#fff}.badge-success-solid{background:var(--success-600);color:#fff}.badge-warning-solid{background:var(--warning-600);color:#fff}.badge-danger-solid,.badge-error-solid{background:var(--error-600);color:#fff}.badge-info-solid{background:var(--info-600);color:#fff}.status-badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.025em;line-height:1;padding:var(--space-1) var(--space-3)}.status-badge--success{background:#22c55e1a;color:var(--success-500)}.status-badge--warning{background:#f59e0b1a;color:var(--warning-500)}.status-badge--error{background:#ef44441a;color:var(--error-500)}.status-badge--info{background:#0ea5e91a;color:var(--primary-500)}.status-badge--neutral{background:#6b72801a;color:var(--gray-500)}.lesson-status-badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-2)}.lesson-status-scheduled{background:var(--lesson-scheduled-bg);border:1px solid var(--lesson-scheduled-border);color:var(--lesson-scheduled-text)}.lesson-status-completed{background:var(--lesson-completed-bg);border:1px solid var(--lesson-completed-border);color:var(--lesson-completed-text)}.lesson-status-cancelled{background:var(--lesson-cancelled-bg);border:1px solid var(--lesson-cancelled-border);color:var(--lesson-cancelled-text)}.lesson-status-noshow{background:var(--lesson-noshow-bg);border:1px solid var(--lesson-noshow-border);color:var(--lesson-noshow-text)}.payment-status-badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-2)}.payment-status-completed{background:var(--payment-completed-bg);border:1px solid var(--payment-completed-border);color:var(--payment-completed-text)}.payment-status-pending{background:var(--payment-pending-bg);border:1px solid var(--payment-pending-border);color:var(--payment-pending-text)}.payment-status-failed{background:var(--payment-failed-bg);border:1px solid var(--payment-failed-border);color:var(--payment-failed-text)}.payment-status-refunded{background:var(--payment-refunded-bg);border:1px solid var(--payment-refunded-border);color:var(--payment-refunded-text)}.progress{background:var(--gray-200);height:8px;overflow:hidden;width:100%}.progress,.progress-bar{border-radius:var(--radius-full)}.progress-bar{background:var(--primary-600);height:100%;transition:width .3s ease}.progress-bar-success{background:var(--success-600)}.progress-bar-warning{background:var(--warning-600)}.progress-bar-error{background:var(--error-600)}.progress-ring{height:120px;position:relative;width:120px}.progress-ring__circle{transform:rotate(-90deg);transform-origin:50% 50%}.progress-ring__circle-bg{fill:none;stroke:var(--gray-200);stroke-width:8}.progress-ring__circle-progress{fill:none;stroke:var(--primary-600);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.progress-ring__text{color:var(--gray-900);font-size:var(--text-2xl);font-weight:var(--font-bold);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.status-dot{border-radius:var(--radius-full);display:inline-block;height:8px;margin-right:var(--space-2);width:8px}.status-dot-primary{background:var(--primary-600)}.status-dot-success{background:var(--success-600)}.status-dot-warning{background:var(--warning-600)}.status-dot-error{background:var(--error-600)}.status-dot-info{background:var(--info-600)}.status-dot-gray{background:var(--gray-400)}.status-dot-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.status-dot-pulse{animation:none}}.rating-stars{display:inline-flex;gap:var(--space-1)}.rating-star{color:var(--gray-300);height:20px;transition:color .15s ease;width:20px}.rating-star-filled{color:var(--warning-500)}.rating-star-half{color:var(--gray-300);position:relative}.rating-star-half:before{color:var(--warning-500);content:"";height:100%;left:0;overflow:hidden;position:absolute;top:0;width:50%}.notification-badge{align-items:center;background:var(--error-500);border:2px solid var(--background);border-radius:var(--radius-full);color:#fff;display:flex;font-size:11px;font-weight:var(--font-semibold);height:18px;justify-content:center;min-width:18px;padding:0 var(--space-1);position:absolute;right:-4px;top:-4px}.notification-badge-sm{font-size:10px;height:14px;min-width:14px;padding:0}.notification-badge-lg{font-size:12px;height:22px;min-width:22px;padding:0 var(--space-1-5)}.badge-sm{font-size:10px;padding:0 var(--space-1-5)}.badge-lg{font-size:var(--text-sm);padding:var(--space-1-5) var(--space-3)}.badge-pill{border-radius:var(--radius-full)}.badge-with-dot{align-items:center;display:inline-flex;gap:var(--space-1-5)}.badge-with-dot:before{background:currentColor;border-radius:var(--radius-full);content:"";display:inline-block;height:6px;width:6px}.container{margin-left:auto;margin-right:auto;max-width:var(--container-max-width);padding-left:var(--container-padding);padding-right:var(--container-padding);width:100%}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}.container-fluid{max-width:100%}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky)}.app-main{display:flex;flex:1 1;flex-direction:column}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;width:280px}.app-content{background:var(--background);flex:1 1;padding:var(--space-6)}.app-footer{background:var(--surface-secondary);border-top:1px solid var(--border);padding:var(--space-4) var(--space-6)}.app-sidebar-collapsed{width:64px}.app-layout-with-sidebar{display:flex;flex:1 1;flex-direction:row}.grid{grid-gap:var(--grid-gap);display:grid;gap:var(--grid-gap)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid-gap-sm{gap:var(--grid-gap-sm)}.grid-gap-lg{gap:var(--grid-gap-lg)}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-6{grid-column:span 6/span 6}.col-span-12,.col-span-full{grid-column:1/-1}.flex{display:flex}.flex-inline{display:inline-flex}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.flex-1{flex:1 1}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.m-0{margin:0}.m-auto{margin:auto}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:-webkit-sticky;position:sticky}.static{position:static}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}@media (max-width:1024px){.app-sidebar{width:240px}}@media (max-width:768px){.app-layout-with-sidebar{flex-direction:column}.app-sidebar{border-bottom:1px solid var(--border);border-right:none;width:100%}.app-content{padding:var(--space-4)}.grid-cols-2,.grid-cols-3,.grid-cols-4,.grid-cols-5,.grid-cols-6{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-md-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}.app-content{padding:var(--space-3)}.grid-auto-fill,.grid-auto-fit{grid-template-columns:1fr}}@media (min-width:1024px){.desktop-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.desktop-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--page-background);color:var(--gray-900);font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}code{font-family:var(--font-mono)}*{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.form-group{margin-bottom:1rem;margin-bottom:var(--form-field-spacing,1rem)}.form-label{color:#374151;color:var(--gray-700,#374151);display:block;font-size:.875rem;font-size:var(--text-sm,.875rem);font-weight:var(--font-medium,500);line-height:1.5;line-height:var(--leading-normal,1.5);margin-bottom:.5rem;margin-bottom:var(--space-2,.5rem)}.form-label.required:after{color:#ef4444;color:var(--error-500,#ef4444);content:" *"}.form-input{background:#fff;background:var(--background,#fff);border:1px solid #d1d5db;border:1px solid var(--border-strong,#d1d5db);border-radius:.375rem;color:#111827;color:var(--gray-900,#111827);font-family:Inter,sans-serif;font-family:var(--font-primary,"Inter",sans-serif);font-size:.875rem;font-size:var(--text-sm,.875rem);line-height:1.5;line-height:var(--leading-normal,1.5);padding:.75rem 1rem;padding:var(--space-3,.75rem) var(--space-4,1rem);transition:border-color .15s ease,box-shadow .15s ease;width:100%}.form-input::placeholder{color:#9ca3af;color:var(--gray-400,#9ca3af)}.form-input:focus-visible{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);box-shadow:0 0 0 3px #0c4a6e1a;outline:2px solid #0c4a6e;outline:2px solid var(--focus-ring-color,#0c4a6e);outline-offset:1px}.form-input:disabled{background-color:#f3f4f6;background-color:var(--gray-100,#f3f4f6);color:#6b7280;color:var(--gray-500,#6b7280);cursor:not-allowed;opacity:.7}.form-input.error{border-color:#ef4444;border-color:var(--error-500,#ef4444)}.form-input.error:focus-visible{border-color:#ef4444;border-color:var(--error-500,#ef4444);box-shadow:0 0 0 3px #ef44441a;outline-color:#ef4444;outline-color:var(--error-500,#ef4444)}.form-error{color:#ef4444;color:var(--error-500,#ef4444)}.form-error,.form-help{font-size:.75rem;font-size:var(--text-xs,.75rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin-top:.25rem;margin-top:var(--space-1,.25rem)}.form-help{color:#6b7280;color:var(--gray-500,#6b7280)}@media (prefers-reduced-motion:reduce){.form-input{transition:none}}.form-group-container{margin-bottom:2rem;margin-bottom:var(--section-spacing,2rem)}.form-group-container--tight{margin-bottom:1rem;margin-bottom:var(--space-4,1rem)}.form-group-container--loose{margin-bottom:3rem;margin-bottom:var(--space-12,3rem)}.form-group-header{margin-bottom:1.5rem;margin-bottom:var(--space-6,1.5rem)}.form-group-title{color:#111827;color:var(--gray-900,#111827);font-size:1.125rem;font-size:var(--text-lg,1.125rem);font-weight:600;font-weight:var(--font-semibold,600);line-height:1.25;line-height:var(--leading-tight,1.25);margin:0 0 .5rem;margin:0 0 var(--space-2,.5rem) 0}.form-group-description{color:#4b5563;color:var(--gray-600,#4b5563);font-size:.875rem;font-size:var(--text-sm,.875rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin:0}.button{align-items:center;border:1px solid #0000;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-family-base);font-weight:600;gap:.5rem;justify-content:center;line-height:1.5;position:relative;text-align:center;text-decoration:none;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;white-space:nowrap}.button:focus-visible{box-shadow:0 0 0 4px var(--focus-ring-shadow);outline:2px solid var(--focus-ring-color);outline-offset:2px}.button--disabled,.button:disabled{cursor:not-allowed;opacity:.6}.button--loading{cursor:wait;position:relative}.button--sm{font-size:.875rem;min-height:2rem;padding:.5rem .75rem}.button--md{font-size:.9375rem;min-height:2.5rem;padding:.625rem 1rem}.button--lg{font-size:1rem;min-height:3rem;padding:.75rem 1.5rem}.button--primary{background-color:var(--primary-600);border-color:var(--primary-600);color:#fff}.button--primary:hover:not(:disabled){background-color:var(--primary-700);border-color:var(--primary-700)}.button--primary:active:not(:disabled){background-color:var(--primary-800);border-color:var(--primary-800)}.button--secondary{background-color:#fff;border-color:var(--gray-300);color:var(--gray-700)}.button--secondary:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--gray-400)}.button--secondary:active:not(:disabled){background-color:var(--gray-100);border-color:var(--gray-500)}.button--tertiary{background-color:var(--gray-100);border-color:var(--gray-100);color:var(--gray-700)}.button--tertiary:hover:not(:disabled){background-color:var(--gray-200);border-color:var(--gray-200)}.button--tertiary:active:not(:disabled){background-color:var(--gray-300);border-color:var(--gray-300)}.button--ghost{background-color:initial;border-color:#0000;color:var(--gray-700)}.button--ghost:hover:not(:disabled){background-color:var(--gray-100)}.button--ghost:active:not(:disabled){background-color:var(--gray-200)}.button--destructive{background-color:var(--error-600);border-color:var(--error-600);color:#fff}.button--destructive:hover:not(:disabled){background-color:var(--error-700);border-color:var(--error-700)}.button--destructive:active:not(:disabled){background-color:var(--error-800);border-color:var(--error-800)}.button__icon,.button__text{align-items:center;display:inline-flex}.button__icon{flex-shrink:0;justify-content:center}.button__icon--left{margin-right:.25rem}.button__icon--right{margin-left:.25rem}.button__spinner{align-items:center;display:inline-flex;justify-content:center;margin-right:.5rem}.button__spinner-circle{animation:button-spinner-rotate .75s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;display:inline-block;height:1rem;width:1rem}@keyframes button-spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.button[aria-pressed=true]{background-color:var(--primary-700);border-color:var(--primary-700);color:#fff}.button--secondary[aria-pressed=true]{background-color:var(--gray-200);border-color:var(--gray-400)}.button[aria-expanded=true]{background-color:var(--primary-700)}.button--secondary[aria-expanded=true]{background-color:var(--gray-100)}.button,.button--sm{min-height:44px;min-width:44px}@media (prefers-reduced-motion:reduce){.button{transition:none}.button__spinner-circle{animation:none;border-right-color:initial;opacity:.5}}@media (prefers-contrast:high){.button{border-width:2px}.button:focus-visible{outline-width:3px}}@media print{.button{background:#fff!important;border:1px solid var(--gray-400);color:var(--gray-900)!important}.button__spinner{display:none}}.login-page{align-items:center;background:#f9fafb;background:var(--background-secondary,#f9fafb);display:flex;justify-content:center;min-height:100vh;padding:1rem;padding:var(--space-4,1rem)}.login-container{background:#fff;background:var(--background,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:.5rem;box-shadow:0 4px 6px #0000000d;max-width:400px;padding:2rem;padding:var(--space-8,2rem);width:100%}.login-header{margin-bottom:2rem;margin-bottom:var(--space-8,2rem);text-align:center}.login-title{color:#111827;color:var(--gray-900,#111827);font-size:1.875rem;font-size:var(--text-3xl,1.875rem);font-weight:700;font-weight:var(--font-bold,700);line-height:1.25;line-height:var(--leading-tight,1.25);margin:0 0 .5rem;margin:0 0 var(--space-2,.5rem) 0}.login-subtitle{color:#4b5563;color:var(--gray-600,#4b5563);font-size:1rem;font-size:var(--text-base,1rem);margin:0}.login-error,.login-subtitle{line-height:1.5;line-height:var(--leading-normal,1.5)}.login-error{background:#fef2f2;background:var(--error-50,#fef2f2);border:1px solid #fecaca;border:1px solid var(--error-200,#fecaca);border-radius:.375rem;color:#b91c1c;color:var(--error-700,#b91c1c);font-size:.875rem;font-size:var(--text-sm,.875rem);margin-bottom:1.5rem;margin-bottom:var(--space-6,1.5rem);padding:.75rem 1rem;padding:var(--space-3,.75rem) var(--space-4,1rem)}.lockout-error{background:#fff7ed;background:var(--orange-50,#fff7ed);border:1px solid #fed7aa;border:1px solid var(--orange-200,#fed7aa);color:#9a3412;color:var(--orange-800,#9a3412)}.lockout-error strong{color:#7c2d12;color:var(--orange-900,#7c2d12);font-weight:600;font-weight:var(--font-semibold,600)}.lockout-timer{font-weight:500;font-weight:var(--font-medium,500);margin-top:.5rem;margin-top:var(--space-2,.5rem)}.csrf-error{align-items:center;display:flex;gap:.75rem;gap:var(--space-3,.75rem);justify-content:space-between}.retry-button{background:#dc2626;background:var(--error-600,#dc2626);border:none;border-radius:.25rem;color:#fff;cursor:pointer;flex-shrink:0;font-size:.75rem;font-size:var(--text-xs,.75rem);font-weight:500;font-weight:var(--font-medium,500);padding:.25rem .75rem;padding:var(--space-1,.25rem) var(--space-3,.75rem);transition:background-color .15s ease;transition:background-color var(--transition-fast,.15s ease)}.retry-button:hover:not(:disabled){background:#b91c1c;background:var(--error-700,#b91c1c)}.retry-button:disabled{cursor:not-allowed;opacity:.5}.login-info{align-items:center;background:#eff6ff;background:var(--blue-50,#eff6ff);border:1px solid #bfdbfe;border:1px solid var(--blue-200,#bfdbfe);border-radius:.375rem;color:#1d4ed8;color:var(--blue-700,#1d4ed8)}.login-info,.success-message{display:flex;font-size:.875rem;font-size:var(--text-sm,.875rem);gap:.5rem;gap:var(--space-2,.5rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin-bottom:1.5rem;margin-bottom:var(--space-6,1.5rem);padding:.75rem 1rem;padding:var(--space-3,.75rem) var(--space-4,1rem)}.success-message{align-items:flex-start;background:#f0fdf4;background:var(--green-50,#f0fdf4);border:1px solid #bbf7d0;border:1px solid var(--green-200,#bbf7d0);border-radius:.375rem;color:#15803d;color:var(--green-700,#15803d)}.success-icon{flex-shrink:0;margin-top:1px}.error-message,.success-icon{font-size:.875rem;font-size:var(--text-sm,.875rem)}.error-message{align-items:flex-start;background:#fef2f2;background:var(--red-50,#fef2f2);border:1px solid #fecaca;border:1px solid var(--red-200,#fecaca);border-radius:.375rem;color:#b91c1c;color:var(--red-700,#b91c1c);gap:var(--space-2,.5rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin-bottom:var(--space-6,1.5rem);padding:.75rem 1rem;padding:var(--space-3,.75rem) var(--space-4,1rem)}.error-icon{flex-shrink:0;font-size:.875rem;font-size:var(--text-sm,.875rem);margin-top:1px}.password-strength{border-radius:.375rem;font-size:.75rem;font-size:var(--text-xs,.75rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin-top:.5rem;margin-top:var(--space-2,.5rem);padding:.75rem;padding:var(--space-3,.75rem)}.password-strength.valid{background:#f0fdf4;background:var(--green-50,#f0fdf4);border:1px solid #bbf7d0;border:1px solid var(--green-200,#bbf7d0);color:#15803d;color:var(--green-700,#15803d)}.password-strength.invalid{background:#fefce8;background:var(--yellow-50,#fefce8);border:1px solid #fde047;border:1px solid var(--yellow-200,#fde047);color:#854d0e;color:var(--yellow-800,#854d0e)}.strength-header{align-items:center;display:flex;font-weight:500;gap:.25rem;gap:var(--space-1,.25rem);margin-bottom:.5rem;margin-bottom:var(--space-2,.5rem)}.strength-icon{font-size:.75rem;font-size:var(--text-xs,.75rem)}.strength-icon.valid{color:#16a34a;color:var(--green-600,#16a34a)}.strength-icon.invalid{color:#ca8a04;color:var(--yellow-600,#ca8a04)}.strength-requirements{list-style-type:disc;margin:0;padding-left:1rem;padding-left:var(--space-4,1rem)}.strength-requirements li{margin-bottom:.25rem;margin-bottom:var(--space-1,.25rem)}.strength-success{color:#16a34a;color:var(--green-600,#16a34a);font-weight:500}.auth-link{color:#0284c7;color:var(--primary-600,#0284c7);text-decoration:none;transition:color .15s ease;transition:color var(--transition-fast,.15s ease)}.auth-link:hover{color:#0369a1;color:var(--primary-700,#0369a1);text-decoration:underline}.auth-link:focus-visible{border-radius:.25rem;outline:2px solid #0c4a6e;outline:2px solid var(--focus-ring-color,#0c4a6e);outline-offset:2px}.login-actions{margin-bottom:1.5rem;margin-bottom:var(--space-6,1.5rem)}.login-button{align-items:center;display:flex;gap:.5rem;gap:var(--space-2,.5rem);justify-content:center;width:100%}.login-footer{text-align:center}.forgot-password-text{color:#4b5563;color:var(--gray-600,#4b5563);font-size:.875rem;font-size:var(--text-sm,.875rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin:0}.forgot-password-link{color:#0284c7;color:var(--primary-600,#0284c7);text-decoration:none;transition:color .15s ease;transition:color var(--transition-fast,.15s ease)}.forgot-password-link:hover{color:#0369a1;color:var(--primary-700,#0369a1);text-decoration:underline}.forgot-password-link:focus-visible{border-radius:.25rem;outline:2px solid #0c4a6e;outline:2px solid var(--focus-ring-color,#0c4a6e);outline-offset:2px}.remember-me-container{margin:.25rem 0;margin:var(--space-1,.25rem) 0}.remember-me-label{align-items:flex-start;color:#374151;color:var(--gray-700,#374151);cursor:pointer;display:flex;font-size:.875rem;font-size:var(--text-sm,.875rem);gap:.75rem;gap:var(--space-3,.75rem);line-height:1.5;line-height:var(--leading-normal,1.5)}.remember-me-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#fff;background:var(--background,#fff);border:1px solid #d1d5db;border:1px solid var(--border,#d1d5db);border-radius:.25rem;cursor:pointer;flex-shrink:0;height:16px;margin-top:2px;position:relative;transition:all .15s ease;transition:all var(--transition-fast,.15s ease);width:16px}.remember-me-checkbox:checked{background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.remember-me-checkbox:checked:after{color:#fff;content:"\2713";font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Segoe UI Symbol,Apple Color Emoji,Noto Color Emoji,sans-serif;font-size:12px;font-weight:700;left:50%;line-height:1;position:absolute;top:50%;transform:translate(-50%,-50%)}.remember-me-checkbox:focus-visible{outline:2px solid #0c4a6e;outline:2px solid var(--focus-ring-color,#0c4a6e);outline-offset:2px}.remember-me-checkbox:hover:not(:disabled){border-color:#38bdf8;border-color:var(--primary-400,#38bdf8)}.remember-me-checkbox:disabled{cursor:not-allowed;opacity:.5}.remember-me-text{color:#111827;color:var(--gray-900,#111827);font-weight:500;font-weight:var(--font-medium,500)}.remember-me-description{color:#6b7280;color:var(--gray-500,#6b7280);font-size:.75rem;font-size:var(--text-xs,.75rem);line-height:1.5;line-height:var(--leading-normal,1.5);margin:.25rem 0 0 1.25rem;margin:var(--space-1,.25rem) 0 0 var(--space-5,1.25rem)}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;height:16px;width:16px}@media (max-width:480px){.login-container{padding:1.5rem;padding:var(--space-6,1.5rem)}.login-title{font-size:1.5rem;font-size:var(--text-2xl,1.5rem)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none;border-right:2px solid;border-top:2px solid}.forgot-password-link{transition:none}}.toast-container{display:flex;flex-direction:column;gap:10px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:9999}.toast{align-items:center;background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;font-size:14px;gap:12px;line-height:1.4;max-width:400px;min-width:300px;opacity:0;padding:12px 16px;pointer-events:auto;transform:translateX(100%);transition:all .3s ease-in-out}.toast--visible{opacity:1;transform:translateX(0)}.toast--error{background:#fef2f2;border-left-color:#ef4444;color:#991b1b}.toast--success{background:#f0fdf4;border-left-color:#10b981;color:#065f46}.toast--warning{background:#fffbeb;border-left-color:#f59e0b;color:#92400e}.toast--info{background:#eff6ff;border-left-color:#3b82f6;color:#1e40af}.toast__icon{flex-shrink:0;font-size:16px}.toast__message{flex:1 1;word-break:break-word}.toast__close{background:none;border:none;border-radius:4px;color:inherit;cursor:pointer;flex-shrink:0;font-size:14px;line-height:1;opacity:.7;padding:4px;transition:opacity .2s}.toast__close:hover{background:#0000001a;opacity:1}.toast__close:focus{outline:2px solid currentColor;outline-offset:2px}.toast:not(:last-child){margin-bottom:8px}@media (max-width:640px){.toast-container{left:10px;right:10px;top:10px}.toast{max-width:none;min-width:0;min-width:auto}}.portal-manager{margin:0 auto;max-width:1200px;padding:2rem}.portal-manager-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.portal-manager-header h2{color:#2c3e50;font-size:1.8rem;margin:0}.portal-manager-header p{color:#6c757d;font-size:.95rem;margin:.5rem 0 0}.students-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-top:1rem}.portal-manager .student-card{background:#fff;border:1px solid #e0e6ed;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem;transition:box-shadow .2s ease,transform .2s ease}@media (prefers-reduced-motion:reduce){.portal-manager .student-card{transition:none}}.portal-manager .student-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.student-info h3{color:#2c3e50;font-size:1.2rem;margin:0 0 .5rem}.student-email{font-size:.9rem}.portal-status{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.status-badge{border-radius:12px;padding:.25rem .75rem}.portal-users-count,.status-badge{font-size:.85rem;width:-webkit-fit-content;width:fit-content}.portal-users-count{background:#f8f9fa;border-radius:4px;color:#6c757d;padding:.25rem .5rem}.student-actions{align-items:center;display:flex;gap:.5rem;justify-content:flex-end}.student-actions .btn-small{background:#f8f9fa;border:1px solid #6c757d;border-radius:4px;color:#495057;display:inline-block;font-size:.85rem;padding:.5rem 1rem;text-align:center;text-decoration:none;transition:all .2s ease}.student-actions .btn-small:hover{background:#e9ecef;border-color:#495057;text-decoration:none}.no-students{color:#6c757d;grid-column:1/-1;padding:3rem;text-align:center}.no-students p{font-size:1.1rem;margin:.5rem 0}.reason-dialog-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.reason-dialog{background:#fff;border-radius:8px;box-shadow:0 8px 32px #0000004d;max-height:90vh;max-width:500px;overflow:auto;width:100%}.dialog-header{border-bottom:1px solid #e0e6ed;padding:1.5rem 1.5rem 1rem}.dialog-header h3{color:#2c3e50;font-size:1.3rem;margin:0}.dialog-content{padding:1.5rem}.dialog-content p{color:#495057;line-height:1.5;margin:0 0 1.5rem}.text-muted{color:#6c757d!important;font-size:.85rem}.dialog-actions{border-top:1px solid #e0e6ed;gap:1rem;padding:1rem 1.5rem 1.5rem}@media (max-width:768px){.portal-manager{padding:1rem}.portal-manager-header{align-items:flex-start;flex-direction:column;text-align:left}.students-grid{gap:1rem;grid-template-columns:1fr}.portal-manager .student-card{padding:1rem}.student-actions{justify-content:flex-start}.student-actions button{flex:1 1}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%}}@media (max-width:480px){.portal-manager,.reason-dialog-overlay{padding:.5rem}.dialog-actions,.dialog-content,.dialog-header{padding:1rem}}.portal-status{margin:0 auto;max-width:1200px;padding:2rem}.portal-status-header{margin-bottom:2rem}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.loading-message{color:#6c757d;font-size:1.1rem;padding:3rem;text-align:center}.error-message{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;display:flex;gap:.5rem;margin-bottom:1.5rem;padding:1rem}.error-icon{font-size:1.1rem}.student-header{background:#fff;border:1px solid #e0e6ed;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:2rem}.student-header h2{color:#2c3e50;font-size:2rem;margin:0 0 .5rem}.student-email{color:#6c757d;font-size:1.1rem;font-style:italic;margin:0 0 1rem}.portal-access-status{margin-top:1rem}.status-badge{border-radius:20px;display:inline-block;font-size:.9rem;font-weight:500;padding:.5rem 1rem}.status-badge.large{font-size:1rem;padding:.75rem 1.5rem}.status-badge.enabled{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.status-badge.disabled{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.status-badge.inactive{background:#f8f9fa;border:1px solid #dee2e6;color:#6c757d}.status-badge.locked{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.status-badge.verified{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.status-summary{background:#fff;border:1px solid #e0e6ed;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;padding:1.5rem}.status-summary h3{color:#2c3e50;font-size:1.3rem;margin:0 0 1rem}.summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;flex-direction:column;padding:1rem;text-align:center}.summary-label{color:#6c757d;font-size:.85rem;font-weight:500;margin-bottom:.5rem}.summary-value{color:#2c3e50;font-size:1.5rem;font-weight:600}.summary-value.active{color:#28a745}.summary-value.locked{color:#ffc107}.no-portal-users,.portal-users{background:#fff;border:1px solid #e0e6ed;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.no-portal-users h3,.portal-users h3{color:#2c3e50;font-size:1.3rem;margin:0 0 1.5rem}.users-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.user-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:1.5rem;transition:box-shadow .2s ease}.user-card:hover{box-shadow:0 4px 8px #0000001a}.user-card.inactive{background:#f5f5f5;border-color:#d6d6d6}.user-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.user-name{color:#2c3e50;font-size:1.1rem;font-weight:600}.user-badges{display:flex;flex-wrap:wrap;gap:.25rem}.role-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:.25rem .5rem;text-transform:uppercase}.role-badge.role-student{background:#e3f2fd;border:1px solid #bbdefb;color:#1565c0}.role-badge.role-parent{background:#f3e5f5;border:1px solid #e1bee7;color:#7b1fa2}.role-badge.role-guardian{background:#fff3e0;border:1px solid #ffcc02;color:#f57c00}.role-badge.role-unknown{background:#f5f5f5;border:1px solid #d6d6d6;color:#6c757d}.user-details{display:flex;flex-direction:column;gap:1rem}.user-email{color:#6c757d;font-size:.9rem;font-style:italic}.user-stats{display:flex;flex-direction:column;gap:.5rem}.stat{align-items:center;display:flex;font-size:.85rem;justify-content:space-between}.stat-label{color:#6c757d;font-weight:500}.stat-value{color:#495057;font-weight:400}.stat.warning .stat-value{color:#ffc107;font-weight:600}.stat.error .stat-value{color:#dc3545;font-weight:600}.user-actions{border-top:1px solid #e9ecef;display:flex;justify-content:flex-end;margin-top:1rem;padding-top:1rem}.user-actions .btn-small{font-size:.8rem;padding:.4rem .8rem}.user-actions .btn-warning{background:#ffc107;border-color:#ffc107;color:#212529}.user-actions .btn-warning:hover:not(:disabled){background:#e0a800;border-color:#d39e00}.empty-state{color:#6c757d;padding:2rem;text-align:center}.empty-state p{line-height:1.5;margin:.5rem 0}@media (max-width:768px){.portal-status{padding:1rem}.header-actions{align-items:stretch;flex-direction:column}.header-actions button{width:100%}.student-header{padding:1.5rem}.student-header h2{font-size:1.5rem}.summary-grid{gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.summary-item{padding:.75rem}.users-grid{gap:1rem;grid-template-columns:1fr}.user-card{padding:1rem}.user-header{align-items:flex-start;flex-direction:column}.user-badges{justify-content:flex-start;width:100%}}@media (max-width:480px){.portal-status{padding:.5rem}.no-portal-users,.portal-users,.status-summary,.student-header{padding:1rem}.summary-grid{grid-template-columns:1fr}.stat{align-items:flex-start;flex-direction:column;gap:.25rem}}.draggable-lesson{border:1px solid #0000;border-radius:6px;display:flex;flex-direction:column;padding:.5rem;position:relative;touch-action:none;transition:all .2s ease;-webkit-user-select:none;user-select:none}.draggable-lesson--draggable{cursor:grab}.draggable-lesson--draggable:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.draggable-lesson--draggable:active{cursor:grabbing}.draggable-lesson--dragging{box-shadow:0 4px 16px #0003;opacity:.5;transform:rotate(2deg);z-index:1000}.draggable-lesson--disabled{cursor:not-allowed;opacity:.6}.draggable-lesson--disabled:hover{box-shadow:none;transform:none}.draggable-lesson--scheduled{background-color:var(--warning-50);border-color:var(--warning-300);color:var(--warning-700)}.draggable-lesson--confirmed{background-color:var(--success-50);border-color:var(--success-300);color:var(--success-700)}.draggable-lesson--completed{background-color:var(--info-50);border-color:var(--info-300);color:var(--info-700)}.draggable-lesson--cancelled{background-color:var(--gray-100);border-color:var(--gray-300);color:var(--gray-600);text-decoration:line-through}.draggable-lesson--no-show{background-color:var(--error-50);border-color:var(--error-300);color:var(--error-700)}.draggable-lesson--trial{border-left:4px solid var(--color-yellow-400)}.draggable-lesson--makeup{border-left:4px solid var(--color-indigo-400)}.draggable-lesson--recital{border-left:4px solid var(--color-pink-400)}.draggable-lesson__default-content{display:flex;flex:1 1;flex-direction:column;gap:.125rem}.draggable-lesson__student{font-size:.875rem;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draggable-lesson__time{font-size:.75rem;font-weight:500;line-height:1.2;opacity:.8}.draggable-lesson__type{font-size:.625rem;font-weight:500;letter-spacing:.05em;margin-top:.125rem;opacity:.7;text-transform:uppercase}.draggable-lesson__drag-handle{align-items:center;color:currentColor;cursor:grab;display:flex;font-size:.625rem;height:12px;justify-content:center;opacity:.5;position:absolute;right:.25rem;top:.25rem;transition:opacity .2s ease;-webkit-user-select:none;user-select:none;width:12px}.draggable-lesson:hover .draggable-lesson__drag-handle{opacity:.8}.draggable-lesson--dragging .draggable-lesson__drag-handle{opacity:0}.draggable-lesson:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.draggable-lesson--compact{min-height:24px;padding:.25rem}.draggable-lesson--compact .draggable-lesson__default-content{gap:0}.draggable-lesson--compact .draggable-lesson__student{font-size:.75rem}.draggable-lesson--compact .draggable-lesson__time{font-size:.625rem}.draggable-lesson--compact .draggable-lesson__type{display:none}.draggable-lesson--compact .draggable-lesson__drag-handle{font-size:.5rem;height:8px;right:.125rem;top:.125rem;width:8px}@media (max-width:768px){.draggable-lesson{min-height:32px;padding:.375rem}.draggable-lesson__student{font-size:.8125rem}.draggable-lesson__time{font-size:.6875rem}.draggable-lesson__type{font-size:.5625rem}.draggable-lesson__drag-handle{font-size:.75rem;height:14px;width:14px}.draggable-lesson--draggable{min-height:44px;padding:.5rem}}@media (prefers-contrast:high){.draggable-lesson{border-width:2px}.draggable-lesson--draggable:hover{border-color:currentColor}.draggable-lesson__drag-handle{opacity:.8}.draggable-lesson:hover .draggable-lesson__drag-handle{opacity:1}}@media (prefers-reduced-motion:reduce){.draggable-lesson{transition:opacity .2s ease}.draggable-lesson--draggable:hover,.draggable-lesson--dragging{transform:none}}@media print{.draggable-lesson__drag-handle{display:none}.draggable-lesson{break-inside:avoid;cursor:default;page-break-inside:avoid}.draggable-lesson--draggable:hover{box-shadow:none;transform:none}}@media (prefers-color-scheme:dark){.draggable-lesson--scheduled{background-color:var(--color-blue-900);border-color:var(--color-blue-700);color:var(--color-blue-100)}.draggable-lesson--confirmed{background-color:var(--color-green-900);border-color:var(--color-green-700);color:var(--color-green-100)}.draggable-lesson--completed{background-color:var(--color-purple-900);border-color:var(--color-purple-700);color:var(--color-purple-100)}.draggable-lesson--cancelled{background-color:var(--color-red-900);border-color:var(--color-red-700);color:var(--color-red-100)}.draggable-lesson--no-show{background-color:var(--color-orange-900);border-color:var(--color-orange-700);color:var(--color-orange-100)}}.draggable-lesson__ghost{background-color:var(--color-primary-100);border:2px dashed var(--color-primary-400);border-radius:6px;box-shadow:0 4px 12px #00000026;opacity:.8;padding:.5rem;transform:rotate(1deg)}.draggable-lesson--conflict{background-color:var(--color-red-100);border-color:var(--color-red-400);color:var(--color-red-800)}.draggable-lesson--conflict:after{content:"⚠️";font-size:.75rem;left:.25rem;position:absolute;top:.25rem}.draggable-lesson--drop-success{animation:pulse-success .6s ease-in-out;background-color:var(--color-green-100);border-color:var(--color-green-400)}@keyframes pulse-success{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.time-slot-drop-zone{border-radius:4px;isolation:isolate;min-height:20px;position:relative;transition:all .2s ease}.time-slot-drop-zone:before{background:#0000;border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute;transition:background-color .2s ease,border-color .2s ease;z-index:0}.drop-zone{border-radius:4px;min-height:20px;position:relative;transition:all .2s ease}.drop-zone--valid,.time-slot-drop-zone--can-drop{cursor:copy}.drop-zone--highlighted,.time-slot-drop-zone--over{background-color:var(--color-primary-25);border:2px dashed var(--color-primary-300)}.drop-zone--highlighted.drop-zone--invalid,.time-slot-drop-zone--over.time-slot-drop-zone--invalid{background-color:var(--color-red-25);border-color:var(--color-red-300)}.time-slot-drop-zone--over.time-slot-drop-zone--warning{background-color:var(--color-yellow-25);border-color:var(--color-yellow-300)}.time-slot-drop-zone--disabled{opacity:.5;pointer-events:none}.time-slot-drop-zone__overlay{align-items:center;background-color:#fffffff2;border-radius:4px;bottom:0;display:flex;justify-content:center;left:0;padding:.5rem;position:absolute;right:0;top:0;z-index:10}.time-slot-drop-zone__feedback{align-items:center;display:flex;flex-direction:column;font-size:.75rem;gap:.25rem;max-width:200px;text-align:center}.time-slot-drop-zone__feedback-valid{align-items:center;color:var(--color-green-700);display:flex;gap:.25rem}.time-slot-drop-zone__feedback-invalid{align-items:center;color:var(--color-red-700);display:flex;flex-direction:column;gap:.25rem}.time-slot-drop-zone__feedback-icon{font-size:1rem;font-weight:700}.time-slot-drop-zone__error-list{font-size:.625rem;list-style:none;margin:.25rem 0 0;padding:0}.time-slot-drop-zone__error-list li{padding:.125rem 0}.time-slot-drop-zone__warnings{margin-top:.25rem}.time-slot-drop-zone__warning{align-items:center;color:var(--color-orange-700);display:flex;font-size:.625rem;gap:.25rem;padding:.125rem 0}.time-slot-drop-zone__preview{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.time-slot-drop-zone__preview-lesson{background-color:var(--color-primary-100);border:1px solid var(--color-primary-400);border-radius:4px;display:flex;flex-direction:column;height:100%;justify-content:center;opacity:.8;padding:.25rem;width:100%}.time-slot-drop-zone__preview-student{color:var(--color-primary-800);font-size:.75rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-slot-drop-zone__preview-time{color:var(--color-primary-600);font-size:.625rem;font-weight:500;margin-top:.125rem}.time-slot-drop-zone:not(.time-slot-drop-zone--disabled):hover{background-color:initial}.time-slot-drop-zone:not(.time-slot-drop-zone--disabled):hover:before{background-color:var(--color-gray-25)}.time-slot-drop-zone--can-drop:hover{background-color:initial;border:1px dashed var(--color-primary-200)}.time-slot-drop-zone--can-drop:hover:before{background-color:var(--color-primary-25)}.time-slot-drop-zone--small{min-height:15px}.time-slot-drop-zone--small .time-slot-drop-zone__feedback{font-size:.625rem}.time-slot-drop-zone--large{min-height:30px}.time-slot-drop-zone--large .time-slot-drop-zone__feedback{font-size:.875rem}@media (max-width:768px){.time-slot-drop-zone{min-height:30px}.time-slot-drop-zone__feedback,.time-slot-drop-zone__preview-student{font-size:.6875rem}.time-slot-drop-zone__preview-time{font-size:.5625rem}.time-slot-drop-zone--over{border-width:3px}}@media (prefers-contrast:high){.time-slot-drop-zone--over{border-style:solid;border-width:3px}.time-slot-drop-zone__overlay{background-color:#fff;border:2px solid var(--color-text-primary)}.time-slot-drop-zone__preview-lesson{border-width:2px}}@media (prefers-reduced-motion:reduce){.time-slot-drop-zone{transition:background-color .2s ease}.time-slot-drop-zone__overlay,.time-slot-drop-zone__preview{transition:none}}@media print{.time-slot-drop-zone__overlay,.time-slot-drop-zone__preview{display:none}.time-slot-drop-zone{background:#0000;border:none}}@media (prefers-color-scheme:dark){.time-slot-drop-zone__overlay{background-color:#000000f2;color:var(--color-text-primary)}.time-slot-drop-zone__feedback-valid{color:var(--color-green-300)}.time-slot-drop-zone__feedback-invalid{color:var(--color-red-300)}.time-slot-drop-zone__warning{color:var(--color-orange-300)}.time-slot-drop-zone__preview-lesson{background-color:var(--color-primary-800);border-color:var(--color-primary-400)}.time-slot-drop-zone__preview-student{color:var(--color-primary-100)}.time-slot-drop-zone__preview-time{color:var(--color-primary-200)}}.time-slot-drop-zone:focus-within{outline:2px solid var(--color-primary-500);outline-offset:2px}.time-slot-drop-zone--drop-success{animation:drop-success .6s ease-in-out}@keyframes drop-success{0%{background-color:var(--color-green-100);transform:scale(1)}50%{background-color:var(--color-green-200);transform:scale(1.02)}to{background-color:initial;transform:scale(1)}}.time-slot-drop-zone--pulse{animation:pulse-drop-zone 2s ease-in-out infinite}@keyframes pulse-drop-zone{0%,to{background-color:initial}50%{background-color:var(--color-primary-25)}}.drag-preview{align-items:center;background-color:var(--color-surface);border:2px solid var(--color-primary-400);border-radius:8px;box-shadow:0 8px 24px #0003;display:flex;font-family:inherit;gap:.5rem;max-width:280px;min-width:200px;padding:.75rem;pointer-events:none;transform:rotate(2deg);transition:transform .2s ease;-webkit-user-select:none;user-select:none;z-index:9999}.drag-preview--dragging{animation:drag-float 2s ease-in-out infinite;transform:rotate(3deg) scale(1.05)}.drag-preview--scheduled{background-color:var(--color-blue-50);border-color:var(--color-blue-400)}.drag-preview--confirmed{background-color:var(--color-green-50);border-color:var(--color-green-400)}.drag-preview--completed{background-color:var(--color-purple-50);border-color:var(--color-purple-400)}.drag-preview--cancelled{background-color:var(--color-red-50);border-color:var(--color-red-400)}.drag-preview--no-show{background-color:var(--color-orange-50);border-color:var(--color-orange-400)}.drag-preview__content{display:flex;flex:1 1;flex-direction:column;gap:.375rem}.drag-preview__header{align-items:flex-start;display:flex;gap:.5rem;justify-content:space-between}.drag-preview__student{color:var(--color-text-primary);flex:1 1;font-size:.875rem;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drag-preview__status{border-radius:999px;font-size:.625rem;font-weight:600;letter-spacing:.05em;padding:.125rem .375rem;text-transform:uppercase;white-space:nowrap}.drag-preview--scheduled .drag-preview__status{background-color:var(--color-blue-100);color:var(--color-blue-700)}.drag-preview--confirmed .drag-preview__status{background-color:var(--color-green-100);color:var(--color-green-700)}.drag-preview--completed .drag-preview__status{background-color:var(--color-purple-100);color:var(--color-purple-700)}.drag-preview--cancelled .drag-preview__status{background-color:var(--color-red-100);color:var(--color-red-700)}.drag-preview--no-show .drag-preview__status{background-color:var(--color-orange-100);color:var(--color-orange-700)}.drag-preview__details{display:flex;flex-direction:column;gap:.25rem}.drag-preview__time,.drag-preview__timezone,.drag-preview__type{align-items:center;color:var(--color-text-secondary);display:flex;font-size:.75rem;gap:.375rem}.drag-preview__time{color:var(--color-text-primary);font-weight:600}.drag-preview__time-icon,.drag-preview__timezone-icon,.drag-preview__type-icon{font-size:.75rem;opacity:.8}.drag-preview__type{text-transform:capitalize}.drag-preview__timezone{font-size:.625rem;opacity:.7}.drag-preview__notes{color:var(--color-text-secondary);font-size:.625rem;font-style:italic;line-height:1.3;margin-top:.125rem}.drag-preview__drag-indicator{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.drag-preview__drag-dots{align-items:center;display:flex;flex-direction:column;gap:2px}.drag-preview__drag-dots span{background-color:var(--color-gray-500);border-radius:50%;height:3px;opacity:.6;width:3px}.drag-preview--dragging .drag-preview__drag-dots span{animation:drag-dots 1s ease-in-out infinite}.drag-preview--dragging .drag-preview__drag-dots span:nth-child(2){animation-delay:.2s}.drag-preview--dragging .drag-preview__drag-dots span:nth-child(3){animation-delay:.4s}.drag-preview--compact{max-width:200px;min-width:150px;padding:.5rem}.drag-preview--compact .drag-preview__student{font-size:.8125rem}.drag-preview--compact .drag-preview__status{font-size:.5625rem;padding:.0625rem .25rem}.drag-preview--compact .drag-preview__time,.drag-preview--compact .drag-preview__timezone,.drag-preview--compact .drag-preview__type{font-size:.6875rem}.drag-preview--compact .drag-preview__notes{font-size:.5625rem}@media (max-width:768px){.drag-preview{max-width:240px;min-width:180px;padding:.625rem;transform:rotate(1deg)}.drag-preview--dragging{transform:rotate(2deg) scale(1.02)}.drag-preview__header{gap:.375rem}.drag-preview__student{font-size:.8125rem}.drag-preview__status{font-size:.5625rem}.drag-preview__details{gap:.1875rem}.drag-preview__time,.drag-preview__timezone,.drag-preview__type{font-size:.6875rem;gap:.25rem}}@media (prefers-contrast:high){.drag-preview{border-width:3px;box-shadow:0 8px 24px #0006}.drag-preview__status{border:1px solid}.drag-preview__drag-dots span{background-color:var(--color-text-primary);opacity:1}}@media (prefers-reduced-motion:reduce){.drag-preview{transform:rotate(0deg);transition:none}.drag-preview--dragging{animation:none;transform:rotate(0deg) scale(1)}.drag-preview__drag-dots span{animation:none}}@media (prefers-color-scheme:dark){.drag-preview{background-color:var(--color-gray-800);border-color:var(--color-primary-400);box-shadow:0 8px 24px #0009}.drag-preview--scheduled{background-color:var(--color-blue-900);border-color:var(--color-blue-400)}.drag-preview--confirmed{background-color:var(--color-green-900);border-color:var(--color-green-400)}.drag-preview--completed{background-color:var(--color-purple-900);border-color:var(--color-purple-400)}.drag-preview--cancelled{background-color:var(--color-red-900);border-color:var(--color-red-400)}.drag-preview--no-show{background-color:var(--color-orange-900);border-color:var(--color-orange-400)}.drag-preview__drag-dots span{background-color:var(--color-gray-300)}}@keyframes drag-float{0%,to{transform:rotate(3deg) scale(1.05) translateY(0)}50%{transform:rotate(3deg) scale(1.05) translateY(-2px)}}@keyframes drag-dots{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.drag-preview--trial .drag-preview__content:before{content:"🏃";font-size:.75rem;left:.25rem;position:absolute;top:.25rem}.drag-preview--makeup .drag-preview__content:before{content:"🔄";font-size:.75rem;left:.25rem;position:absolute;top:.25rem}.drag-preview--recital .drag-preview__content:before{content:"🎵";font-size:.75rem;left:.25rem;position:absolute;top:.25rem}.drag-preview--error{animation:shake .5s ease-in-out;background-color:var(--color-red-100);border-color:var(--color-red-500)}@keyframes shake{0%,to{transform:rotate(3deg) scale(1.05) translateX(0)}25%{transform:rotate(3deg) scale(1.05) translateX(-2px)}75%{transform:rotate(3deg) scale(1.05) translateX(2px)}}.weekly-grid-view,.weekly-grid-view.weekly-grid-view{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;overflow:hidden}.weekly-grid-view__header{background:var(--gray-50);border-bottom:1px solid var(--border);display:grid;grid-template-columns:96px repeat(7,minmax(0,1fr))}.weekly-grid-view__period-header{background:var(--gray-50);border-right:1px solid var(--border)}.weekly-grid-view__day-header{background:var(--gray-50);border-left:1px solid var(--border);min-width:0;padding:var(--space-3);text-align:center}.weekly-grid-view__day-header:first-of-type{border-left:none}.weekly-grid-view__day-name{color:var(--gray-600);font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.025em;text-transform:uppercase}.weekly-grid-view__day-number{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-top:var(--space-1)}.weekly-grid-view__day-header--today .weekly-grid-view__day-number{color:var(--primary-500)}.weekly-grid-view__period-row{border-bottom:1px solid var(--border);display:grid;grid-template-columns:96px repeat(7,minmax(0,1fr));min-height:172px}.weekly-grid-view__period-row:last-of-type{border-bottom:0}.weekly-grid-view__period-label-column{align-items:center;background:var(--gray-50);border-right:1px solid var(--border);display:flex;justify-content:center;min-width:0;padding:var(--space-3) var(--space-2)}.weekly-grid-view__period-title{color:var(--gray-900);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.weekly-grid-view__period-cell{background:var(--background);border-left:1px solid var(--border);cursor:pointer;isolation:isolate;min-height:172px;min-width:0;padding:0;position:relative}.weekly-grid-view__period-cell:before{background:#0000;content:"";inset:0;pointer-events:none;position:absolute;transition:background-color .15s ease;z-index:0}.weekly-grid-view__period-cell:first-of-type{border-left:none}.weekly-grid-view__period-cell:hover{background:var(--background)}.weekly-grid-view__period-cell:hover:before{background:var(--gray-50)}.weekly-grid-view__period-cell:focus-visible{outline:2px solid var(--primary-500);outline-offset:-2px}.weekly-grid-view__period-cell--today{background:#0ea5e905}.weekly-grid-view__period-cell--today:hover{background:#0ea5e90d}.weekly-grid-view__period-cell-content{height:100%;min-height:172px;min-width:0;padding:var(--space-2);position:relative;z-index:1}.weekly-grid-view__lessons{align-items:center;display:flex;flex-direction:column;gap:var(--space-1);position:relative;z-index:2}.weekly-grid-view__draggable-lesson{background:#0000;border:0;box-shadow:none;margin-bottom:0;max-width:100%;min-width:0;padding:0;width:min(150px,100%)}.weekly-grid-view__draggable-lesson .draggable-lesson__drag-handle{display:none}.weekly-grid-view__empty-period{align-items:center;color:var(--gray-600);display:flex;font-style:italic;height:100%;opacity:.75}.weekly-grid-view__lesson{background:var(--primary-100);border:1px solid var(--primary-300);border-radius:.25rem;color:var(--primary-700);cursor:pointer;font:inherit;font-size:11px;margin-bottom:0;max-width:100%;min-width:0;padding:4px 6px;position:relative;text-align:left;transition:all .15s ease;width:100%;z-index:3}.weekly-grid-view__lesson:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.weekly-grid-view__lesson:active{transform:scale(.99)}.weekly-grid-view__lesson:focus-visible{box-shadow:0 0 0 2px #0ea5e933;outline:2px solid var(--primary-500);outline-offset:1px}.weekly-grid-view__lesson--scheduled{background:var(--warning-50);border-color:var(--lesson-scheduled);color:var(--warning-700)}.weekly-grid-view__lesson--confirmed{background:var(--success-50);border-color:var(--lesson-confirmed);color:var(--success-700)}.weekly-grid-view__lesson--completed{background:var(--info-50);border-color:var(--lesson-completed);color:var(--info-700)}.weekly-grid-view__lesson--cancelled{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-600);opacity:.7}.weekly-grid-view__lesson--noshow{background:var(--error-50);border-color:var(--lesson-noshow);color:var(--error-700)}.weekly-grid-view__lesson-time{font-weight:var(--font-normal);margin-bottom:0}.weekly-grid-view__lesson-student,.weekly-grid-view__lesson-time{font-size:11px;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-grid-view__lesson-student{opacity:.8}.weekly-grid-view__error,.weekly-grid-view__loading{font-size:var(--text-sm);padding:var(--space-3) var(--space-4);text-align:center}.weekly-grid-view__loading{background:var(--surface-secondary);border-top:1px solid var(--border);color:var(--gray-500)}.weekly-grid-view__error{background:var(--error-50);border-top:1px solid var(--error-300);color:var(--error-700)}@media (max-width:768px){.weekly-grid-view__header,.weekly-grid-view__period-row{grid-template-columns:88px repeat(7,minmax(92px,1fr));min-width:732px}.weekly-grid-view{overflow-x:auto}.weekly-grid-view__day-header{padding:var(--space-2)}.weekly-grid-view__day-name{font-size:10px}.weekly-grid-view__day-number{font-size:var(--text-sm)}.weekly-grid-view__period-cell-content,.weekly-grid-view__period-label-column{padding:var(--space-2)}.weekly-grid-view__period-title{font-size:var(--text-sm)}.weekly-grid-view__period-cell,.weekly-grid-view__period-cell-content,.weekly-grid-view__period-row{min-height:160px}.weekly-grid-view__lesson{font-size:10px;padding:3px 5px}}.timezone-difference-display{align-items:center;color:var(--color-text-primary);display:inline-flex;font-family:inherit}.timezone-difference-display--significant{font-weight:600}.timezone-difference-display--ahead{color:var(--color-green-700)}.timezone-difference-display--behind{color:var(--color-blue-700)}.timezone-difference-display--compact{background-color:var(--color-gray-50);border:1px solid var(--color-border);border-radius:6px;font-size:.75rem;padding:.375rem .5rem}.timezone-difference-display__compact-content{align-items:center;display:flex;flex-direction:column;gap:.125rem}.timezone-difference-display__time-pair{align-items:center;display:flex;gap:.375rem;white-space:nowrap}.timezone-difference-display__primary{color:var(--color-text-primary);font-weight:600}.timezone-difference-display__secondary{color:var(--color-text-secondary)}.timezone-difference-display__arrow{color:var(--color-primary-500);font-size:.875rem;font-weight:700}.timezone-difference-display__difference{color:var(--color-text-tertiary);font-size:.625rem;font-style:italic}.timezone-difference-display--detailed{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;min-width:300px;padding:1rem}.timezone-difference-display__detailed-content{align-items:center;display:flex;gap:1rem}.timezone-difference-display__timezone-block{align-items:center;background-color:var(--color-gray-25);border:1px solid var(--color-border);border-radius:6px;display:flex;flex:1 1;flex-direction:column;gap:.375rem;padding:.75rem}.timezone-difference-display__timezone-header{align-items:center;display:flex;flex-direction:column;gap:.125rem;text-align:center}.timezone-difference-display__timezone-name{color:var(--color-text-primary);font-size:.75rem;font-weight:600}.timezone-difference-display__timezone-abbr{color:var(--color-text-secondary);font-size:.625rem;letter-spacing:.05em;text-transform:uppercase}.timezone-difference-display__timezone-time{font-feature-settings:"tnum";color:var(--color-primary-600);font-size:1.125rem;font-variant-numeric:tabular-nums;font-weight:700}.timezone-difference-display__connector{align-items:center;display:flex;flex-direction:column;gap:.25rem;min-width:80px}.timezone-difference-display__difference-badge{background-color:var(--color-primary-100);border-radius:999px;color:var(--color-primary-700);font-size:.75rem;font-weight:600;padding:.25rem .5rem;white-space:nowrap}.timezone-difference-display__direction-arrow{color:var(--color-primary-500);font-size:1.5rem;font-weight:700}.timezone-difference-display__direction-label{color:var(--color-text-secondary);font-size:.625rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.timezone-difference-display--clock{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;min-width:350px;padding:1.5rem;position:relative}.timezone-difference-display__clock-content{align-items:center;display:flex;gap:1.5rem;justify-content:space-between}.timezone-difference-display__clock-item{flex:1 1}.timezone-difference-display__clock-face{align-items:center;background:linear-gradient(135deg,var(--color-gray-25) 0,var(--color-gray-50) 100%);border:2px solid var(--color-border);border-radius:50%;box-shadow:inset 0 2px 4px #0000000d;display:flex;flex-direction:column;gap:.5rem;height:120px;padding:1.5rem;position:relative;width:120px}.timezone-difference-display__clock-time{font-feature-settings:"tnum";color:var(--color-primary-600);font-size:1rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2;text-align:center}.timezone-difference-display__clock-label{color:var(--color-text-primary);font-size:.625rem;font-weight:600;letter-spacing:.05em;text-align:center;text-transform:uppercase}.timezone-difference-display__clock-abbr{color:var(--color-text-secondary);font-size:.5rem;opacity:.8;text-align:center}.timezone-difference-display__clock-connector{align-items:center;display:flex;justify-content:center;position:relative}.timezone-difference-display__clock-difference{background-color:var(--color-primary-500);border-radius:999px;box-shadow:0 2px 4px #0000001a;color:#fff;font-size:.8125rem;font-weight:700;padding:.5rem .75rem;position:relative;white-space:nowrap;z-index:1}.timezone-difference-display__clock-difference:before{background-color:var(--color-primary-200);content:"";height:2px;left:-20px;position:absolute;right:-20px;top:50%;transform:translateY(-50%);z-index:-1}.timezone-difference-display__live-indicator{align-items:center;color:var(--color-green-600);display:flex;font-size:.625rem;font-weight:500;gap:.25rem;letter-spacing:.05em;position:absolute;right:.5rem;text-transform:uppercase;top:.5rem}.timezone-difference-display__live-dot{animation:pulse-live 2s ease-in-out infinite;background-color:var(--color-green-500);border-radius:50%;height:6px;width:6px}@media (max-width:768px){.timezone-difference-display--compact{font-size:.6875rem;padding:.25rem .375rem}.timezone-difference-display--detailed{min-width:auto;padding:.75rem}.timezone-difference-display__detailed-content{flex-direction:column;gap:.75rem}.timezone-difference-display__connector{min-width:auto;transform:rotate(90deg)}.timezone-difference-display__timezone-block{padding:.5rem;width:100%}.timezone-difference-display--clock{min-width:auto;padding:1rem}.timezone-difference-display__clock-content{flex-direction:column;gap:1rem}.timezone-difference-display__clock-face{height:100px;padding:1rem;width:100px}.timezone-difference-display__clock-time{font-size:.875rem}.timezone-difference-display__clock-difference:before{bottom:-15px;height:auto;left:50%;right:auto;top:-15px;transform:translateX(-50%);width:2px}}@media (prefers-contrast:high){.timezone-difference-display--clock,.timezone-difference-display--compact,.timezone-difference-display--detailed,.timezone-difference-display__clock-face,.timezone-difference-display__timezone-block{border-width:2px}.timezone-difference-display__clock-difference,.timezone-difference-display__difference-badge{border:1px solid}}@media (prefers-reduced-motion:reduce){.timezone-difference-display__live-dot{animation:none}}@media (prefers-color-scheme:dark){.timezone-difference-display--compact{background-color:var(--color-gray-800);border-color:var(--color-gray-600)}.timezone-difference-display--clock,.timezone-difference-display--detailed{background-color:var(--color-gray-900);border-color:var(--color-gray-700)}.timezone-difference-display__timezone-block{background-color:var(--color-gray-800);border-color:var(--color-gray-600)}.timezone-difference-display__clock-face{background:linear-gradient(135deg,var(--color-gray-800) 0,var(--color-gray-700) 100%);border-color:var(--color-gray-600)}.timezone-difference-display--ahead{color:var(--color-green-400)}.timezone-difference-display--behind{color:var(--color-blue-400)}}@media print{.timezone-difference-display{break-inside:avoid;page-break-inside:avoid}.timezone-difference-display__live-indicator{display:none}.timezone-difference-display--clock{break-inside:avoid;page-break-inside:avoid}}@keyframes pulse-live{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.timezone-difference-display:focus-within{outline:2px solid var(--color-primary-500);outline-offset:2px}.timezone-difference-display--compact:hover{background-color:var(--color-gray-100);transform:translateY(-1px);transition:all .2s ease}.timezone-difference-display--detailed:hover .timezone-difference-display__timezone-block{background-color:var(--color-gray-50);transition:background-color .2s ease}.timezone-difference-display--clock:hover .timezone-difference-display__clock-face{transform:scale(1.02);transition:transform .2s ease}.timezone-difference-display--same-timezone{opacity:.7}.timezone-difference-display--same-timezone .timezone-difference-display__difference{display:none}.timezone-difference-display--dst-affected{border-left:3px solid var(--color-orange-400)}.timezone-difference-display--dst-affected:after{content:"⏰";font-size:.75rem;left:.25rem;position:absolute;top:.25rem}.timezone-selector{align-items:center;display:flex;inset:0;justify-content:center;padding:1rem;padding:var(--space-4,1rem);position:fixed;z-index:900;z-index:var(--z-modal-backdrop,900)}.timezone-selector__backdrop{background:#0f172a80;inset:0;position:absolute}.timezone-selector__content{background:#fff;background:var(--surface,#fff);border-radius:.75rem;border-radius:var(--radius-lg,.75rem);box-shadow:0 20px 25px -5px #0000001a;box-shadow:var(--shadow-xl,0 20px 25px -5px #0000001a);color:#111827;color:var(--gray-900,#111827);display:flex;flex-direction:column;font-family:Inter,system-ui,sans-serif;font-family:var(--font-primary,"Inter",system-ui,sans-serif);max-height:80vh;max-width:500px;overflow:hidden;position:relative;width:100%;z-index:1000;z-index:var(--z-modal,1000)}.timezone-selector__header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border,#e5e7eb);display:flex;justify-content:space-between;padding:1rem;padding:var(--space-4,1rem)}.timezone-selector__title{color:#111827;color:var(--gray-900,#111827);font-size:1.125rem;font-size:var(--text-lg,1.125rem);font-weight:600;font-weight:var(--font-semibold,600);line-height:1.25;line-height:var(--leading-tight,1.25);margin:0}.timezone-selector__close{align-items:center;background:#0000;border:0;border-radius:.25rem;border-radius:var(--radius-sm,.25rem);color:#6b7280;color:var(--gray-500,#6b7280);cursor:pointer;display:flex;font-size:1.25rem;height:2rem;justify-content:center;line-height:1;padding:0 .25rem;padding:0 var(--space-1,.25rem);transition:color .15s ease,background-color .15s ease;transition:color var(--transition-fast,.15s ease),background-color var(--transition-fast,.15s ease);width:2rem}.timezone-selector__close:focus-visible,.timezone-selector__close:hover{background-color:#f3f4f6;background-color:var(--gray-100,#f3f4f6);color:#111827;color:var(--gray-900,#111827);outline:none}.timezone-selector__close:focus-visible{box-shadow:0 0 0 2px #0ea5e9;box-shadow:0 0 0 2px var(--primary-500,#0ea5e9)}.timezone-selector__error{align-items:center;background-color:#fef2f2;background-color:var(--error-50,#fef2f2);border:1px solid #fee2e2;border:1px solid var(--error-100,#fee2e2);border-radius:6px;color:#991b1b;color:var(--error-800,#991b1b);display:flex;font-size:.875rem;gap:.5rem;margin:0 1.5rem;padding:.75rem}.timezone-selector__error-icon{font-size:1rem}.timezone-selector__search{padding:1rem 1.5rem;padding:var(--space-4,1rem) var(--space-6,1.5rem)}.timezone-selector__search-wrapper{position:relative}.timezone-selector__search-input{background-color:#fff;background-color:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;color:#111827;color:var(--gray-900,#111827);font-size:.875rem;padding:.75rem 2.5rem .75rem 1rem;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.timezone-selector__search-input:focus{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);box-shadow:0 0 0 3px #e0f2fe;box-shadow:0 0 0 3px var(--primary-100,#e0f2fe);outline:none}.timezone-selector__search-input::placeholder,.timezone-selector__status{color:#6b7280;color:var(--gray-500,#6b7280)}.timezone-selector__status{font-size:.875rem;font-size:var(--text-sm,.875rem);padding:0 1.5rem .75rem;padding:0 var(--space-6,1.5rem) var(--space-3,.75rem)}.timezone-selector__search-clear{background:none;border:none;border-radius:4px;color:#6b7280;color:var(--gray-500,#6b7280);cursor:pointer;font-size:1.25rem;line-height:1;padding:.25rem;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);transition:all .2s ease}.timezone-selector__search-clear:hover{background-color:#f3f4f6;background-color:var(--gray-100,#f3f4f6);color:#111827;color:var(--gray-900,#111827)}.timezone-selector__section{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.timezone-selector__section:not(:last-child){border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border,#e5e7eb)}.timezone-selector__section--suggested{flex:0 0 auto}.timezone-selector__section-title{color:#6b7280;color:var(--gray-500,#6b7280);font-size:.875rem;font-weight:600;letter-spacing:.05em;margin:0;padding:1rem 1.5rem .5rem;text-transform:uppercase}.timezone-selector__list{flex:1 1;overflow-y:auto;padding-bottom:1rem}.timezone-selector__list--suggested{flex:0 0 auto;overflow:visible;padding-bottom:.5rem;padding-bottom:var(--space-2,.5rem)}.timezone-selector__no-results{color:#6b7280;color:var(--gray-500,#6b7280);font-style:italic;padding:2rem 1.5rem;text-align:center}.timezone-selector__item{align-items:center;background:#0000;border:0;color:#111827;color:var(--gray-900,#111827);cursor:pointer;display:flex;justify-content:space-between;padding:.75rem 1.5rem;position:relative;text-align:left;transition:background-color .2s ease;width:100%}.timezone-selector__item:hover{background-color:#f9fafb;background-color:var(--gray-50,#f9fafb)}.timezone-selector__item:focus{background-color:#f0f9ff;background-color:var(--primary-50,#f0f9ff);box-shadow:inset 2px 0 0 #0ea5e9;box-shadow:inset 2px 0 0 var(--primary-500,#0ea5e9);outline:none}.timezone-selector__item.timezone-selector__item--selected{background-color:#f0f9ff;background-color:var(--primary-50,#f0f9ff);color:#0c4a6e;color:var(--primary-900,#0c4a6e);padding-right:3rem}.timezone-selector__item--detected{background-color:#eff6ff;background-color:var(--info-50,#eff6ff);border-left:3px solid #3b82f6;border-left:3px solid var(--info-500,#3b82f6)}.timezone-selector__item-main{flex:1 1;min-width:0}.timezone-selector__item-name{color:#111827;color:var(--gray-900,#111827);display:block;font-weight:500;margin-bottom:.125rem}.timezone-selector__item-id{color:#6b7280;color:var(--gray-500,#6b7280);display:block;font-family:var(--font-mono);font-size:.75rem}.timezone-selector__item-details{align-items:flex-end;display:flex;flex-direction:column;margin-left:1rem;min-width:0}.timezone-selector__item-abbr{color:#111827;color:var(--gray-900,#111827);font-size:.75rem;font-weight:600;margin-bottom:.125rem}.timezone-selector__item-offset{color:#6b7280;color:var(--gray-500,#6b7280);font-family:var(--font-mono);font-size:.6875rem}.timezone-selector__item-checkmark{color:#0284c7;color:var(--primary-600,#0284c7);font-size:1rem;font-weight:700;position:absolute;right:.5rem;top:50%;transform:translateY(-50%)}@media (max-width:640px){.timezone-selector{padding:.5rem}.timezone-selector__content{border-radius:8px;margin:0;max-height:90vh}.timezone-selector__header{padding:1rem 1rem .75rem}.timezone-selector__title{font-size:1.125rem}.timezone-selector__search{padding:.75rem 1rem;padding:var(--space-3,.75rem) var(--space-4,1rem)}.timezone-selector__section-title{padding:.75rem 1rem .5rem}.timezone-selector__item{padding:.75rem 1rem}.timezone-selector__item.timezone-selector__item--selected{padding-right:2.75rem}.timezone-selector__item-details{margin-left:.75rem}}.timezone-selector__list:focus-within{outline:none}.timezone-selector__list::-webkit-scrollbar{width:6px}.timezone-selector__list::-webkit-scrollbar-track{background:#f9fafb;background:var(--gray-50,#f9fafb)}.timezone-selector__list::-webkit-scrollbar-thumb{background:#d1d5db;background:var(--gray-300,#d1d5db);border-radius:3px}.timezone-selector__list::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--gray-400,#9ca3af)}.timezone-selector__item--loading{opacity:.6;pointer-events:none}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.timezone-selector__content{animation:fadeIn .2s ease}.timezone-indicator{align-items:center;display:inline-flex;font-family:var(--font-family);gap:.5rem;position:relative;transition:all .2s ease}.timezone-indicator--clickable{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;padding:.375rem .75rem}.timezone-indicator--clickable:hover{background-color:var(--color-gray-50);border-color:var(--color-primary-300)}.timezone-indicator--clickable:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.timezone-indicator__default{display:flex;flex-direction:column;gap:.125rem}.timezone-indicator__main{align-items:center;display:flex;gap:.5rem}.timezone-indicator__abbr{color:var(--color-text-primary);font-size:.875rem;font-weight:600;letter-spacing:.025em}.timezone-indicator__offset{background-color:var(--color-gray-100);border-radius:4px;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.75rem;padding:.125rem .375rem}.timezone-indicator__dst{font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.timezone-indicator__dst-active{background-color:var(--color-primary-100);border-radius:3px;color:var(--color-primary-700);padding:.125rem .25rem}.timezone-indicator__dst-inactive{background-color:var(--color-gray-100);border-radius:3px;color:var(--color-gray-600);padding:.125rem .25rem}.timezone-indicator--compact .timezone-indicator__compact{align-items:center;display:flex;gap:.25rem}.timezone-indicator--compact .timezone-indicator__abbr{color:var(--color-text-primary);font-size:.75rem;font-weight:600}.timezone-indicator__dst-badge{background-color:var(--color-primary-100);border-radius:2px;color:var(--color-primary-700);font-size:.625rem;font-weight:600;letter-spacing:.05em;padding:.125rem .25rem;text-transform:uppercase}.timezone-indicator--badge .timezone-indicator__badge{align-items:center;background-color:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:999px;display:flex;gap:.375rem;padding:.25rem .5rem}.timezone-indicator--badge .timezone-indicator__abbr{color:var(--color-blue-800);font-size:.75rem;font-weight:600}.timezone-indicator--badge .timezone-indicator__offset{background-color:var(--color-blue-100);border-radius:999px;color:var(--color-blue-600);font-size:.6875rem;padding:.125rem .25rem}.timezone-indicator__click-hint{font-size:.75rem;opacity:.6;transition:opacity .2s ease}.timezone-indicator--clickable:hover .timezone-indicator__click-hint{opacity:1}@media (max-width:640px){.timezone-indicator__default{gap:.25rem}.timezone-indicator__main{gap:.375rem}.timezone-indicator__abbr{font-size:.8125rem}.timezone-indicator__offset{font-size:.6875rem;padding:.125rem .25rem}.timezone-indicator__dst{font-size:.625rem}.timezone-indicator--adaptive{display:none}.timezone-indicator--adaptive .timezone-indicator__compact{display:flex}}@media (prefers-contrast:high){.timezone-indicator--clickable{border-width:2px}.timezone-indicator__dst-active,.timezone-indicator__dst-badge,.timezone-indicator__dst-inactive,.timezone-indicator__offset{border:1px solid}}@media (prefers-reduced-motion:reduce){.timezone-indicator,.timezone-indicator__click-hint{transition:none}}@media (prefers-color-scheme:dark){.timezone-indicator--clickable{background-color:var(--color-gray-800);border-color:var(--color-gray-600)}.timezone-indicator--clickable:hover{background-color:var(--color-gray-700);border-color:var(--color-primary-400)}.timezone-indicator__offset{background-color:var(--color-gray-700);color:var(--color-gray-300)}.timezone-indicator__dst-active{background-color:var(--color-primary-900);color:var(--color-primary-200)}.timezone-indicator__dst-inactive{background-color:var(--color-gray-700);color:var(--color-gray-300)}.timezone-indicator--badge .timezone-indicator__badge{background-color:var(--color-blue-900);border-color:var(--color-blue-700)}.timezone-indicator--badge .timezone-indicator__abbr{color:var(--color-blue-200)}.timezone-indicator--badge .timezone-indicator__offset{background-color:var(--color-blue-800);color:var(--color-blue-100)}}@keyframes dstPulse{0%,to{opacity:1}50%{opacity:.7}}.timezone-indicator__dst-active{animation:dstPulse 2s ease-in-out infinite}.timezone-indicator[title]:hover:after{background-color:var(--color-gray-900);border-radius:6px;bottom:calc(100% + .5rem);box-shadow:var(--shadow-lg);color:#fff;content:attr(title);font-size:.75rem;left:50%;padding:.5rem .75rem;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1000}.timezone-indicator--clickable:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.daily-agenda{background-color:var(--background);display:flex;flex-direction:column;height:100%}.daily-agenda__header{align-items:center;background-color:var(--surface);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1.5rem 1.5rem 1rem}.daily-agenda__title{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.daily-agenda__date-title{color:var(--gray-900);font-size:1.5rem;font-weight:600;margin:0}.daily-agenda__dst-warning{align-items:center;background-color:var(--warning-50);border:1px solid var(--warning-50);border-radius:999px;color:var(--warning-800);display:flex;font-size:.75rem;font-weight:500;gap:.375rem;padding:.25rem .5rem}.daily-agenda__dst-icon{font-size:.875rem}.daily-agenda__navigation{align-items:center;display:flex;gap:.5rem}.daily-agenda__nav-button{background:var(--background);border:1px solid var(--border);border-radius:8px;color:var(--gray-900);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem .75rem;transition:all .2s ease}.daily-agenda__nav-button:hover{background-color:var(--gray-50);border-color:var(--primary-300)}.daily-agenda__nav-button:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.daily-agenda__summary{background-color:var(--gray-50);border:1px solid #e2e8f0;border-bottom:0;border-radius:0;display:flex;gap:2rem;margin:0;padding:1rem 1.5rem}.daily-agenda__summary-item{align-items:center;display:flex;flex-direction:column;gap:.25rem}.daily-agenda__summary-number{color:var(--primary-600);font-size:1.25rem;font-weight:700}.daily-agenda__summary-label{color:var(--gray-600);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.daily-agenda__content{flex:1 1;overflow-y:auto;position:relative}.daily-agenda__loading{align-items:center;color:var(--gray-600);display:flex;font-size:.875rem;gap:.5rem;justify-content:center;padding:3rem}.daily-agenda__loading-spinner{animation:spin 1s linear infinite}.daily-agenda__error{align-items:center;background-color:var(--error-50);border:1px solid var(--error-100);border-radius:8px;color:var(--error-600);display:flex;gap:.5rem;justify-content:center;margin:1rem;padding:2rem}.daily-agenda__error-icon{font-size:1.25rem}.daily-agenda__empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem 2rem;text-align:center}.daily-agenda__empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.6}.daily-agenda__empty-title{color:var(--gray-900);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.daily-agenda__empty-description{color:var(--gray-600);line-height:1.5;margin:0 0 2rem;max-width:400px}.daily-agenda__empty-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.daily-agenda__empty-add-button{align-items:center;background:var(--primary-50);border:1px solid var(--primary-200);border-radius:12px;color:var(--primary-700);cursor:pointer;display:flex;flex-direction:column;font-size:.875rem;font-weight:500;gap:.5rem;min-width:120px;padding:1rem 1.5rem;transition:all .2s ease}.daily-agenda__empty-add-button:hover{background-color:var(--primary-100);border-color:var(--primary-300);transform:translateY(-2px)}.daily-agenda__empty-add-button span{font-size:1.5rem}.daily-agenda__schedule{background:#fff;border:1px solid #e2e8f0;border-radius:0 0 0 0;box-shadow:none;margin:0;overflow:hidden}.daily-agenda__time-period{border-bottom:1px solid var(--border);display:grid;grid-template-columns:150px minmax(0,1fr);min-height:208px}.daily-agenda__time-period:last-child{border-bottom:0}.daily-agenda__time-period-label-column{align-items:center;background:var(--gray-50);border-right:1px solid var(--border);display:flex;padding:var(--space-4)}.daily-agenda__time-period-title{color:var(--gray-900);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0}.daily-agenda__time-period-content{isolation:isolate;min-width:0;position:relative}.daily-agenda__time-period-content:before{background:#0000;content:"";inset:0;pointer-events:none;position:absolute;transition:background-color .15s ease,box-shadow .15s ease;z-index:0}.daily-agenda__time-period-content:focus-within:before,.daily-agenda__time-period-content:hover:before{background:var(--primary-50);box-shadow:inset 0 0 0 1px var(--primary-200)}.daily-agenda__empty-period{align-items:center;color:var(--gray-600);display:flex;font-style:italic;height:100%;opacity:.75;padding:var(--space-4);position:relative;z-index:1}.daily-agenda__empty-period--clickable{cursor:pointer}.daily-agenda__empty-period--clickable:focus-visible,.daily-agenda__empty-period--clickable:hover{outline:none}.daily-agenda__lessons{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);position:relative;z-index:2}.daily-agenda__lesson{align-items:center;background:var(--primary-100);border:1px solid var(--primary-300);border-radius:.5rem;color:var(--primary-700);cursor:pointer;display:flex;gap:var(--space-3);justify-content:space-between;min-width:0;padding:var(--space-2) var(--space-3);position:relative;transition:all .15s ease;z-index:3}.daily-agenda__lesson:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.daily-agenda__lesson:focus{outline:2px solid var(--primary-500);outline-offset:2px}.daily-agenda__lesson--expanded{border-color:var(--primary-500);box-shadow:0 0 0 2px #0ea5e933}.daily-agenda__lesson--scheduled{background:var(--warning-50);border-color:var(--lesson-scheduled);color:var(--warning-700)}.daily-agenda__lesson--confirmed{background:var(--success-50);border-color:var(--lesson-confirmed);color:var(--success-700)}.daily-agenda__lesson--completed{background:var(--info-50);border-color:var(--lesson-completed);color:var(--info-700)}.daily-agenda__lesson--cancelled{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-600);opacity:.7}.daily-agenda__lesson--no-show,.daily-agenda__lesson--no_show{background:var(--error-50);border-color:var(--lesson-noshow);color:var(--error-700);opacity:.8}.daily-agenda__lesson-main-line{align-items:center;display:flex;gap:var(--space-3);min-width:0;overflow:hidden;white-space:nowrap}.daily-agenda__lesson-title{color:var(--gray-900);flex:0 1 auto;font-size:1rem;font-weight:700;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis}.daily-agenda__lesson-time-range{align-items:center;color:var(--gray-900);display:inline-flex;flex:0 0 auto;font-size:.875rem;font-weight:600;gap:.25rem}.daily-agenda__lesson-separator{color:var(--gray-600);font-weight:400}.daily-agenda__lesson-duration,.daily-agenda__lesson-email{color:var(--gray-600);flex:0 1 auto;font-size:.8125rem;min-width:0;overflow:hidden;text-overflow:ellipsis}.daily-agenda__lesson-duration{font-weight:500}.daily-agenda__lesson-content{flex:1 1;min-width:0}.daily-agenda__lesson-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.daily-agenda__lesson-badges{display:flex;flex-shrink:0;gap:.5rem}.daily-agenda__lesson-status-badge,.daily-agenda__lesson-type-badge{border-radius:999px;flex:0 0 auto;font-size:.625rem;font-weight:600;letter-spacing:.05em;padding:.25rem .5rem;text-transform:uppercase}.daily-agenda__lesson-status-badge--scheduled,.daily-agenda__lesson-type-badge{background-color:var(--info-100);color:var(--info-800)}.daily-agenda__lesson-status-badge--confirmed{background-color:var(--success-100);color:var(--success-800)}.daily-agenda__lesson-status-badge--in_progress{background-color:var(--warning-100);color:var(--warning-800)}.daily-agenda__lesson-status-badge--completed{background-color:var(--info-100);color:var(--info-800)}.daily-agenda__lesson-status-badge--cancelled,.daily-agenda__lesson-status-badge--no-show,.daily-agenda__lesson-status-badge--no_show{background-color:var(--error-100);color:var(--error-800)}.daily-agenda__lesson-notes{color:var(--gray-600);font-size:.875rem;line-height:1.4;margin-bottom:.5rem}.daily-agenda__lesson-details{grid-gap:.5rem;border-top:1px solid var(--border);display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:.75rem;padding-top:.75rem}.daily-agenda__lesson-detail{display:flex;flex-direction:column;gap:.125rem}.daily-agenda__lesson-detail-label{color:var(--gray-600);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.daily-agenda__lesson-detail-value{color:var(--gray-900);font-size:.875rem}@media (max-width:768px){.daily-agenda__header{align-items:stretch;flex-direction:column;gap:.75rem;padding:1rem}.daily-agenda__title{justify-content:center;text-align:center}.daily-agenda__date-title{font-size:1.25rem}.daily-agenda__navigation{justify-content:center}.daily-agenda__summary{gap:1rem;justify-content:center;padding:.75rem 1rem}.daily-agenda__lessons{padding:0 1rem}.daily-agenda__lesson{flex-direction:column;gap:.75rem}.daily-agenda__lesson-time{flex-direction:row;justify-content:space-between;min-width:auto;text-align:left}.daily-agenda__lesson-header{flex-direction:column;gap:.5rem}.daily-agenda__lesson-badges{justify-content:flex-start}.daily-agenda__lesson-details{grid-template-columns:1fr}.daily-agenda__empty-actions{align-items:center;flex-direction:column}}@media (max-width:480px){.daily-agenda__time-period-header{align-items:stretch;flex-direction:column;gap:.5rem;padding:0 1rem .75rem}.daily-agenda__lesson-time-range{font-size:.8125rem}.daily-agenda__lesson-title{font-size:.9375rem}}@media (prefers-contrast:high){.daily-agenda__lesson{border-width:2px}.daily-agenda__lesson-badges>*{border:1px solid}}@media (prefers-reduced-motion:reduce){.daily-agenda__empty-add-button,.daily-agenda__lesson{transition:none}.daily-agenda__loading-spinner{animation:none}}@media print{.daily-agenda__empty-actions,.daily-agenda__navigation{display:none}.daily-agenda__lesson{border:1px solid;box-shadow:none;break-inside:avoid;page-break-inside:avoid}}.monthly-calendar{background-color:var(--background);border-radius:8px;display:flex;flex-direction:column;height:100%;overflow:hidden}.monthly-calendar__header{align-items:center;background-color:var(--surface);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1.5rem 1.5rem 1rem}.monthly-calendar__title{align-items:center;display:flex;gap:1rem}.monthly-calendar__month-title{color:var(--gray-900);font-size:1.5rem;font-weight:600;margin:0}.monthly-calendar__navigation{align-items:center;display:flex;gap:.5rem}.monthly-calendar__nav-button{background:var(--background);border:1px solid var(--border);border-radius:8px;color:var(--gray-900);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem .75rem;transition:all .2s ease}.monthly-calendar__nav-button:hover{background-color:var(--gray-50);border-color:var(--primary-300)}.monthly-calendar__nav-button:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.monthly-calendar__stats{background-color:var(--gray-50);border-bottom:1px solid var(--border);display:flex;gap:2rem;padding:1rem 1.5rem}.monthly-calendar__stat{align-items:center;display:flex;flex-direction:column;gap:.25rem}.monthly-calendar__stat-number{color:var(--primary-600);font-size:1.5rem;font-weight:700}.monthly-calendar__stat-label{color:var(--gray-600);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-align:center;text-transform:uppercase}.monthly-calendar__loading{align-items:center;background-color:var(--surface);border-radius:8px;box-shadow:var(--shadow-md);color:var(--gray-600);display:flex;font-size:.875rem;gap:.5rem;left:50%;padding:1rem 1.5rem;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:100}.monthly-calendar__loading-spinner{animation:spin 1s linear infinite}.monthly-calendar__error{align-items:center;background-color:var(--error-50);border:1px solid var(--error-100);border-radius:8px;color:var(--error-600);display:flex;gap:.5rem;justify-content:center;margin:1rem;padding:2rem}.monthly-calendar__error-icon{font-size:1.25rem}.monthly-calendar__grid-container{flex:1 1;overflow:auto;padding:1rem;position:relative}.monthly-calendar__grid{min-height:400px;width:100%}.monthly-calendar__weekdays{grid-gap:1px;background-color:var(--border);display:grid;gap:1px;grid-template-columns:repeat(7,1fr);margin-bottom:1px}.monthly-calendar__weekday{background-color:var(--gray-100);color:var(--gray-600);font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.75rem;text-align:center;text-transform:uppercase}.monthly-calendar__days{grid-gap:1px;background-color:var(--border);display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.monthly-calendar__day{align-items:flex-start;background-color:var(--surface);cursor:pointer;display:flex;flex-direction:column;isolation:isolate;justify-content:flex-start;min-height:80px;overflow:hidden;padding:.5rem;position:relative;transition:all .2s ease}.monthly-calendar__day:before{background:#0000;content:"";inset:0;pointer-events:none;position:absolute;transition:background-color .2s ease,box-shadow .2s ease;z-index:0}.monthly-calendar__day:hover{background-color:var(--surface)}.monthly-calendar__day:hover:before{background-color:var(--primary-100);box-shadow:inset 0 0 0 2px var(--primary-200)}.monthly-calendar__day:focus{box-shadow:inset 0 0 0 2px var(--primary-500);outline:none}.monthly-calendar__day--other-month{background-color:var(--gray-50);color:var(--gray-600);opacity:.6}.monthly-calendar__day--today{background-color:var(--info-50);border:2px solid var(--info-500)}.monthly-calendar__day--today .monthly-calendar__day-number{color:var(--info-700);font-weight:700}.monthly-calendar__day--dst-transition{background-color:var(--warning-50);border-left:3px solid var(--warning-500)}.monthly-calendar__day-number{color:var(--gray-900);font-size:.875rem;font-weight:600;margin-bottom:.25rem;position:relative;z-index:1}.monthly-calendar__dst-indicator{font-size:.75rem;opacity:.7;position:absolute;right:.25rem;top:.25rem;z-index:2}.monthly-calendar__lesson-pills{display:flex;flex-direction:column;gap:.25rem;margin-top:.375rem;position:relative;width:100%;z-index:2}.monthly-calendar__lesson-pill{align-items:center;border:1px solid #0000;border-radius:var(--radius-base);color:var(--gray-900);cursor:pointer;display:flex;font:inherit;font-size:var(--text-xs);font-weight:var(--font-medium);gap:.25rem;line-height:var(--leading-tight);min-width:0;padding:.25rem .375rem;position:relative;text-align:left;transition:transform var(--transition-fast),box-shadow var(--transition-fast);width:100%;z-index:3}.monthly-calendar__lesson-pill:hover{box-shadow:0 2px 4px #0f172a1f;transform:translateY(-1px)}.monthly-calendar__lesson-pill:focus-visible{outline:2px solid var(--primary-500);outline-offset:1px}.monthly-calendar__lesson-pill-student,.monthly-calendar__lesson-pill-time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monthly-calendar__lesson-pill-student{flex:1 1 auto}.monthly-calendar__lesson-pill-time{flex:0 0 auto;opacity:.85}.monthly-calendar__lesson-pill--scheduled{background:var(--warning-50);border-color:var(--lesson-scheduled);color:var(--warning-700)}.monthly-calendar__lesson-pill--confirmed{background:var(--success-50);border-color:var(--lesson-confirmed);color:var(--success-700)}.monthly-calendar__lesson-pill--completed{background:var(--info-50);border-color:var(--lesson-completed);color:var(--info-700)}.monthly-calendar__lesson-pill--cancelled{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-600);opacity:.75}.monthly-calendar__lesson-pill--noshow{background:var(--error-50);border-color:var(--lesson-noshow);color:var(--error-700)}.monthly-calendar__lesson-pill--more{background:var(--gray-50);border-color:var(--gray-200);color:var(--gray-600);font-weight:var(--font-semibold);justify-content:center}.monthly-calendar__lesson-preview{background-color:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);left:0;margin-top:.25rem;max-width:280px;min-width:200px;padding:.75rem;position:absolute;right:0;top:100%;z-index:1000}.monthly-calendar__preview-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.5rem}.monthly-calendar__preview-date{color:var(--gray-900);font-size:.8125rem;font-weight:600}.monthly-calendar__preview-count{color:var(--gray-600);font-size:.75rem}.monthly-calendar__preview-lessons{display:flex;flex-direction:column;gap:.375rem}.monthly-calendar__preview-lesson{align-items:center;border-left:2px solid;border-radius:4px;cursor:pointer;display:flex;gap:.5rem;padding:.25rem .5rem;transition:background-color .2s ease}.monthly-calendar__preview-lesson:hover{background-color:var(--gray-50)}.monthly-calendar__preview-lesson--scheduled{border-left-color:var(--info-500)}.monthly-calendar__preview-lesson--confirmed{border-left-color:var(--success-500)}.monthly-calendar__preview-lesson--completed{border-left-color:var(--info-500)}.monthly-calendar__preview-lesson--cancelled{border-left-color:var(--error-500);opacity:.7}.monthly-calendar__preview-lesson-time{color:var(--primary-600);font-size:.75rem;font-weight:600;min-width:60px}.monthly-calendar__preview-lesson-student{color:var(--gray-900);flex:1 1;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monthly-calendar__preview-lesson-type{color:var(--gray-600);font-size:.625rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.monthly-calendar__preview-more{color:var(--gray-600);font-size:.75rem;font-style:italic;padding:.25rem;text-align:center}@media (max-width:768px){.monthly-calendar__header{flex-direction:column;gap:.75rem;padding:1rem}.monthly-calendar__title{justify-content:center}.monthly-calendar__month-title{font-size:1.25rem}.monthly-calendar__stats{flex-wrap:wrap;gap:1rem;justify-content:center;padding:.75rem 1rem}.monthly-calendar__stat-number{font-size:1.25rem}.monthly-calendar__grid-container{padding:.5rem}.monthly-calendar__day{min-height:60px;padding:.25rem}.monthly-calendar__day-number{font-size:.8125rem}.monthly-calendar__lesson-pills{gap:.1875rem;margin-top:.25rem}.monthly-calendar__lesson-pill{font-size:.6875rem;padding:.1875rem .25rem}.monthly-calendar__lesson-preview{left:50%;max-width:calc(100vw - 2rem);position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1001}}@media (max-width:480px){.monthly-calendar__weekday{font-size:.6875rem;padding:.5rem .25rem}.monthly-calendar__day{min-height:50px;padding:.25rem}.monthly-calendar__day-number{font-size:.75rem}.monthly-calendar__lesson-pill-time{display:none}}@media (prefers-contrast:high){.monthly-calendar__day{border:1px solid var(--border)}.monthly-calendar__day--today{border-width:3px}.monthly-calendar__lesson-pill,.monthly-calendar__lesson-preview{border-width:2px}}@media (prefers-reduced-motion:reduce){.monthly-calendar__day,.monthly-calendar__nav-button,.monthly-calendar__preview-lesson{transition:none}.monthly-calendar__loading-spinner{animation:none}}@media print{.monthly-calendar__lesson-preview,.monthly-calendar__navigation{display:none}.monthly-calendar__day{break-inside:avoid;min-height:40px;page-break-inside:avoid}.monthly-calendar__day:hover{background-color:initial;box-shadow:none}}.monthly-calendar__grid:focus-within{outline:none}.monthly-calendar__grid-container::-webkit-scrollbar{height:8px;width:8px}.monthly-calendar__grid-container::-webkit-scrollbar-track{background:var(--gray-50)}.monthly-calendar__grid-container::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.monthly-calendar__grid-container::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.list-view{background-color:var(--background);border-radius:8px;height:100%;overflow:hidden}.list-view,.list-view__header{display:flex;flex-direction:column}.list-view__header{background-color:var(--surface);border-bottom:1px solid var(--border);gap:1rem;padding:1.5rem 1.5rem 1rem}.list-view__title{align-items:center;display:flex;justify-content:space-between}.list-view__title-text{color:var(--gray-900);font-size:1.5rem;font-weight:600;margin:0}.list-view__controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-start}.list-view__control-label{color:var(--gray-600);font-size:.875rem;font-weight:500;margin-right:.5rem}.list-view__search{align-items:center;display:flex;min-width:200px}.list-view__search-input{background-color:var(--background);border:1px solid var(--border);border-radius:6px;color:var(--gray-900);font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s ease;width:100%}.list-view__search-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.list-view__search-input::placeholder{color:var(--gray-500)}.list-view__dual-time-control,.list-view__filter,.list-view__sort{align-items:center;display:flex;gap:.5rem}.list-view__filter-select,.list-view__sort-select,.list-view__timezone-select{background-color:var(--background);border:1px solid var(--border);border-radius:6px;color:var(--gray-900);cursor:pointer;font-size:.875rem;min-width:120px;padding:.5rem;transition:border-color .2s ease}.list-view__filter-select:focus,.list-view__sort-select:focus,.list-view__timezone-select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.list-view__custom-range{background-color:var(--gray-50);border-bottom:1px solid var(--border);display:flex;gap:1rem;padding:1rem 1.5rem}.list-view__custom-range-input{display:flex;flex-direction:column;gap:.25rem}.list-view__custom-range-input label{color:var(--gray-600);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.list-view__custom-range-input input{background-color:var(--background);border:1px solid var(--border);border-radius:6px;color:var(--gray-900);font-size:.875rem;padding:.5rem}.list-view__custom-range-input input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.list-view__content{flex:1 1;overflow-y:auto;padding:1rem}.list-view__empty,.list-view__loading{align-items:center;color:var(--gray-600);display:flex;font-size:.875rem;gap:.5rem;justify-content:center;padding:3rem 2rem;text-align:center}.list-view__loading-spinner{animation:spin 1s linear infinite}.list-view__empty-icon{font-size:2rem;opacity:.5}.list-view__error{align-items:center;background-color:var(--error-50);border:1px solid var(--error-100);border-radius:8px;color:var(--error-600);display:flex;gap:.5rem;justify-content:center;margin:1rem;padding:2rem}.list-view__error-icon{font-size:1.25rem}.list-view__lessons{display:flex;flex-direction:column;gap:1.5rem}.list-view__lessons-ungrouped{display:flex;flex-direction:column;gap:.5rem}.list-view__time-period{display:flex;flex-direction:column;gap:.75rem}.list-view__time-period-header{align-items:center;background-color:var(--gray-50);border:1px solid var(--border);border-radius:6px;display:flex;justify-content:space-between;padding:.75rem 1rem}.list-view__time-period-title{color:var(--gray-900);font-size:1rem;font-weight:600;margin:0}.list-view__time-period-count{background-color:var(--gray-100);border-radius:999px;color:var(--gray-600);font-size:.75rem;padding:.25rem .5rem}.list-view__time-period-lessons{display:flex;flex-direction:column;gap:.5rem;margin-left:1rem}.list-view__lesson{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all .2s ease}.list-view__lesson:hover{background-color:var(--gray-50);border-color:var(--primary-200);box-shadow:0 2px 4px #0000000d}.list-view__lesson:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.list-view__lesson--scheduled{border-left:4px solid var(--info-500)}.list-view__lesson--confirmed{border-left:4px solid var(--success-500)}.list-view__lesson--completed{border-left:4px solid var(--info-500);opacity:.8}.list-view__lesson--cancelled{border-left:4px solid var(--error-500);opacity:.7}.list-view__lesson--no-show{border-left:4px solid var(--warning-500);opacity:.7}.list-view__lesson-time{display:flex;flex-direction:column;flex-shrink:0;gap:.25rem;min-width:140px}.list-view__lesson-primary-time,.list-view__lesson-secondary-time{display:flex;flex-direction:column;gap:.125rem}.list-view__lesson-time-label{color:var(--gray-600);font-size:.625rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.list-view__lesson-time-value{color:var(--gray-900);font-size:.875rem;font-weight:600}.list-view__lesson-secondary-time .list-view__lesson-time-value{color:var(--gray-600);font-weight:500}.list-view__lesson-details{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.list-view__lesson-student{color:var(--gray-900);font-size:1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-view__lesson-meta{align-items:center;color:var(--gray-600);display:flex;font-size:.75rem;gap:.75rem}.list-view__lesson-date{font-weight:500}.list-view__lesson-type{background-color:var(--gray-100);border-radius:4px;font-weight:500;padding:.125rem .375rem;text-transform:capitalize}.list-view__lesson-notes{color:var(--gray-600);font-size:.8125rem;line-height:1.4;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-view__lesson-status{flex-shrink:0}.list-view__lesson-status-badge{border-radius:999px;display:inline-block;font-size:.75rem;font-weight:600;padding:.375rem .75rem;text-transform:capitalize;white-space:nowrap}.list-view__lesson-status-badge--scheduled{background-color:var(--info-100);color:var(--info-700)}.list-view__lesson-status-badge--confirmed{background-color:var(--success-100);color:var(--success-700)}.list-view__lesson-status-badge--completed{background-color:var(--info-100);color:var(--info-700)}.list-view__lesson-status-badge--cancelled{background-color:var(--error-100);color:var(--error-700)}.list-view__lesson-status-badge--no-show{background-color:var(--warning-100);color:var(--warning-700)}.list-view__lessons--virtual{height:min(70vh,640px);position:relative}.list-view__virtual-lesson,.list-view__virtual-period{box-sizing:border-box;padding:.5rem .75rem}.list-view__virtual-period .list-view__time-period-header{margin-bottom:0}.list-view__virtual-lesson .list-view__lesson{margin:0}.list-view__summary-metrics{align-items:center;color:var(--gray-600);display:inline-flex;font-size:.75rem;gap:.25rem;margin-left:auto}.list-view__summary{background-color:var(--gray-50);border-top:1px solid var(--border);color:var(--gray-600);font-size:.875rem;padding:1rem 1.5rem;text-align:center}.list-view__summary-text{font-weight:500}@media (max-width:768px){.list-view__header{gap:.75rem;padding:1rem}.list-view__title{align-items:flex-start;flex-direction:column;gap:.5rem}.list-view__title-text{font-size:1.25rem}.list-view__controls{align-items:stretch;flex-direction:column;gap:.75rem}.list-view__search{min-width:100%}.list-view__dual-time-control,.list-view__filter,.list-view__sort{align-items:flex-start;flex-direction:column;gap:.25rem}.list-view__filter-select,.list-view__sort-select,.list-view__timezone-select{min-width:auto;width:100%}.list-view__custom-range{flex-direction:column;gap:.75rem;padding:.75rem 1rem}.list-view__content{padding:.75rem}.list-view__time-period-header{align-items:flex-start;flex-direction:column;gap:.25rem;padding:.5rem .75rem}.list-view__time-period-lessons{margin-left:0}.list-view__lesson{align-items:stretch;flex-direction:column;gap:.75rem;padding:.75rem}.list-view__lesson-time{align-self:stretch;min-width:auto}.list-view__lesson-details{order:-1}.list-view__lesson-status{align-self:flex-start}.list-view__summary{padding:.75rem 1rem}}@media (max-width:480px){.list-view__header{padding:.75rem}.list-view__controls{gap:.5rem}.list-view__content{padding:.5rem}.list-view__lessons{gap:1rem}.list-view__lesson{gap:.5rem;padding:.5rem}.list-view__lesson-details,.list-view__lesson-time{gap:.125rem}.list-view__lesson-student{font-size:.9375rem}.list-view__lesson-meta{gap:.5rem}.list-view__lesson-status-badge{font-size:.6875rem;padding:.25rem .5rem}}@media (prefers-contrast:high){.list-view__lesson{border-width:2px}.list-view__lesson-status-badge{border:1px solid}.list-view__time-period-header{border-width:2px}}@media (prefers-reduced-motion:reduce){.list-view__filter-select,.list-view__lesson,.list-view__search-input,.list-view__sort-select,.list-view__timezone-select{transition:none}.list-view__loading-spinner{animation:none}}@media print{.list-view__controls,.list-view__custom-range{display:none}.list-view__lesson{border:1px solid var(--gray-900);break-inside:avoid;margin-bottom:.5rem;page-break-inside:avoid}.list-view__lesson:hover{background-color:initial;box-shadow:none}.list-view__summary,.list-view__time-period{break-inside:avoid;page-break-inside:avoid}}.list-view__content::-webkit-scrollbar{width:8px}.list-view__content::-webkit-scrollbar-track{background:var(--gray-50)}.list-view__content::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.list-view__content::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.date-picker{display:flex;flex-direction:column;gap:.25rem;position:relative}.date-picker__label{color:var(--gray-700);font-size:.875rem;font-weight:500}.date-picker__input{background-color:var(--background);border:1px solid var(--gray-300);border-radius:.375rem;color:var(--gray-900);cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s,outline .2s}.date-picker__input:focus{border-color:var(--primary-500);outline:2px solid var(--primary-500);outline-offset:2px}.date-picker__popover{background-color:var(--background);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 25px #00000026;padding:.75rem;position:fixed;width:280px;z-index:1100}.date-picker__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.date-picker__header-text{color:var(--gray-700);font-size:.875rem;font-weight:600}.date-picker__nav{display:flex;gap:.25rem}.date-picker__nav-button{background:none;border:none;border-radius:.25rem;color:var(--gray-700);cursor:pointer;font-size:1rem;padding:.25rem .5rem;transition:background-color .2s}.date-picker__nav-button:hover{background-color:var(--gray-100)}.date-picker__weekdays{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem}.date-picker__weekday{color:var(--gray-500);font-size:.75rem;font-weight:600;padding:.25rem;text-align:center}.date-picker__days{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(7,1fr)}.date-picker__day{align-items:center;background:none;border:none;border-radius:50%;color:var(--gray-700);cursor:pointer;display:flex;font-size:.875rem;height:2rem;justify-content:center;transition:background-color .2s;width:2rem}.date-picker__day:hover:not(:disabled){background-color:var(--gray-100)}.date-picker__day--today:not(.date-picker__day--selected){border:1px solid var(--primary-500)}.date-picker__day--selected{background-color:var(--primary-500);color:#fff}.date-picker__day--disabled{color:var(--gray-400);cursor:not-allowed;opacity:.5}.date-picker__day--disabled:hover{background-color:initial}.date-picker__day--outside-month{color:var(--gray-400);opacity:.5}.date-picker__footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;margin-top:.75rem;padding-top:.75rem}.date-picker__footer-link{background:none;border:none;border-radius:.25rem;color:var(--primary-500);cursor:pointer;font-size:.875rem;padding:.25rem .5rem;transition:background-color .2s}.date-picker__footer-link:hover{background-color:var(--gray-100)}.date-picker__footer-link--today{margin-left:auto}@media (max-width:480px){.date-picker__popover{max-width:280px;width:calc(100vw - 2rem)}}.quick-lesson-creator__backdrop{align-items:center;background:#0f172a80;display:flex;inset:0;justify-content:center;padding:.5rem;position:fixed;z-index:1000}.quick-lesson-creator{background:#fff;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column;max-height:calc(100vh - .5rem);max-width:520px;position:relative;width:100%}.quick-lesson-creator__header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border,#e5e7eb);display:flex;flex-shrink:0;justify-content:space-between;padding:.75rem 1rem}.quick-lesson-creator__title{color:#111827;color:var(--gray-900,#111827);font-size:18px;font-weight:600;line-height:1.2;margin:0}.quick-lesson-creator__close{background:#0000;border:0;border-radius:.25rem;color:#6b7280;color:var(--gray-500,#6b7280);cursor:pointer;font-size:20px;line-height:1;padding:0 .25rem}.quick-lesson-creator__close:focus-visible,.quick-lesson-creator__close:hover{background:#f3f4f6;background:var(--gray-100,#f3f4f6);color:#111827;color:var(--gray-900,#111827);outline:none}.quick-lesson-creator__body{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem;min-height:0;overflow-y:auto;padding:1rem}.quick-lesson-creator__field{display:flex;flex-direction:column;gap:.375rem;width:100%}.quick-lesson-creator__row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.quick-lesson-creator__label{color:#111827;color:var(--gray-900,#111827);font-size:.875rem;font-weight:600}.quick-lesson-creator__input,.quick-lesson-creator__select{background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.375rem;color:#111827;color:var(--gray-900,#111827);font-size:.875rem;padding:.5rem .75rem;width:100%}.quick-lesson-creator__select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236b7280' d='M2.5 4.25a.75.75 0 0 1 1.06-.02L6 6.627 8.44 4.23a.75.75 0 1 1 1.04 1.08L6.52 8.217a.75.75 0 0 1-1.04 0L2.52 5.31a.75.75 0 0 1-.02-1.06z'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:12px 12px;cursor:pointer;padding-right:2rem}.quick-lesson-creator__textarea{background:#fff;border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.375rem;color:#111827;color:var(--gray-900,#111827);font-family:inherit;font-size:.875rem;min-height:5rem;padding:.5rem .75rem;resize:vertical;width:100%}.quick-lesson-creator__input:focus,.quick-lesson-creator__select:focus,.quick-lesson-creator__textarea:focus{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.quick-lesson-creator__error{color:#dc2626;color:var(--error-600,#dc2626);font-size:.75rem}.quick-lesson-creator__recurring-toggle{margin-top:.25rem}.quick-lesson-creator__recurring-label{align-items:center;color:#374151;color:var(--gray-700,#374151);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem}.quick-lesson-creator__checkbox{-webkit-appearance:none;appearance:none;background-color:#fff;background-color:var(--background,#fff);border:1px solid var(--gray-900);border-radius:4px;border-radius:var(--radius-sm,4px);cursor:pointer;flex-shrink:0;height:16px;margin:0;position:relative;transition:background-color .15s ease-in-out,border-color .15s ease-in-out;width:16px}.quick-lesson-creator__checkbox:checked{background-color:#fff;background-color:var(--background,#fff);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:var(--gray-900)}.quick-lesson-creator__checkbox:focus{border-color:var(--primary-500);box-shadow:var(--focus-shadow-primary);outline:none}.quick-lesson-creator__recurrence{margin-top:.5rem;padding-top:.75rem}.quick-lesson-creator__recurrence,.recurrence-editor{border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb)}.recurrence-editor{display:flex;flex-direction:column;padding-top:1rem}.recurrence-editor__row{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem}.recurrence-editor__label{color:#374151;color:var(--gray-700,#374151);flex-shrink:0;font-size:.875rem;font-weight:500;width:7rem}.recurrence-editor__select{-webkit-appearance:none;appearance:none;background-color:#fff;background-color:var(--background,#fff);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236b7280' d='M2.5 4.25a.75.75 0 0 1 1.06-.02L6 6.627 8.44 4.23a.75.75 0 1 1 1.04 1.08L6.52 8.217a.75.75 0 0 1-1.04 0L2.52 5.31a.75.75 0 0 1-.02-1.06z'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:12px 12px;border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.375rem;color:#111827;color:var(--gray-900,#111827);cursor:pointer;flex:1 1;font-size:.875rem;padding:.5rem 2rem .5rem .75rem}.recurrence-editor__select:disabled{cursor:not-allowed;opacity:.5}.recurrence-editor__number{background-color:#fff;background-color:var(--background,#fff);border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.375rem;color:#111827;color:var(--gray-900,#111827);font-size:.875rem;padding:.5rem .75rem;width:4rem}.recurrence-editor__number:focus{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.recurrence-editor__days{display:flex;flex:1 1;gap:.25rem}.recurrence-editor__day{align-items:center;background:#fff;background:var(--background,#fff);border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.25rem;color:#374151;color:var(--gray-700,#374151);cursor:pointer;display:flex;font-size:.75rem;font-weight:500;height:2rem;justify-content:center;padding:0;transition:all .15s ease;width:2rem}.recurrence-editor__day:hover{background:#f3f4f6;background:var(--gray-100,#f3f4f6)}.recurrence-editor__day--selected{background:#0ea5e9;background:var(--primary-500,#0ea5e9);border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);color:#fff}.recurrence-editor__day--selected:hover{background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.recurrence-editor__row--disabled{opacity:.5;pointer-events:none}.recurrence-editor__row--disabled .recurrence-editor__day--selected{background-color:#fff;background-color:var(--background,#fff);border-color:var(--gray-300);color:var(--gray-700)}.quick-lesson-creator__footer{border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);display:flex;flex-shrink:0;gap:.5rem;padding:.75rem 1rem}.quick-lesson-creator__btn-cancel,.quick-lesson-creator__btn-primary{border:1px solid #0000;border-radius:.375rem;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.625rem 1rem;transition:all .15s ease}.quick-lesson-creator__btn-cancel{background:#fff;border-color:#d1d5db;border-color:var(--gray-300,#d1d5db);color:#374151;color:var(--gray-700,#374151)}.quick-lesson-creator__btn-cancel:hover{background:#f9fafb;background:var(--gray-50,#f9fafb)}.quick-lesson-creator__btn-cancel:focus{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.quick-lesson-creator__btn-primary{background:#0ea5e9;background:var(--primary-500,#0ea5e9);border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);color:#fff}.quick-lesson-creator__btn-primary:hover:not(:disabled){background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.quick-lesson-creator__btn-primary:focus{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.quick-lesson-creator__btn-primary:disabled{cursor:not-allowed;opacity:.6}.quick-lesson-creator__submit-error{background:#fef2f2;background:var(--error-50,#fef2f2);border:1px solid #fecaca;border:1px solid var(--error-200,#fecaca);border-radius:.375rem;color:#991b1b;color:var(--error-800,#991b1b);font-size:.875rem;margin-top:-.25rem;padding:.75rem}@media (max-width:480px){.quick-lesson-creator__backdrop{align-items:flex-end;padding:0}.quick-lesson-creator{border-radius:.5rem .5rem 0 0;max-width:none}.quick-lesson-creator__row{grid-template-columns:1fr}.quick-lesson-creator__footer{flex-direction:column}.quick-lesson-creator__btn-cancel,.quick-lesson-creator__btn-primary{width:100%}}.error-boundary{align-items:center;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);color:var(--color-error-dark);display:flex;gap:var(--spacing-md);padding:var(--spacing-lg)}.error-boundary__icon{align-items:center;background:var(--color-error);border-radius:50%;color:var(--color-white);display:inline-flex;font-size:var(--font-size-lg);font-weight:700;height:40px;justify-content:center;width:40px}.error-boundary__content{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-sm)}.error-boundary__title{font-size:var(--font-size-lg);font-weight:600;margin:0}.error-boundary__message{color:var(--color-error-dark);font-size:var(--font-size-sm);margin:0}.error-boundary__details{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-family:SFMono-Regular,Consolas,monospace;font-family:var(
    --font-family-monospace,"SFMono-Regular",Consolas,monospace
  );font-size:var(--font-size-xs);margin:0;padding:var(--spacing-sm);white-space:pre-wrap}.error-boundary__actions{display:flex;gap:var(--spacing-sm)}.error-boundary__retry{background:var(--color-white);border:1px solid var(--color-error);border-radius:var(--border-radius-sm);color:var(--color-error-dark);cursor:pointer;font-weight:600;padding:var(--spacing-xs) var(--spacing-md);transition:background .2s ease,color .2s ease}.error-boundary__retry:hover{background:var(--color-error);color:var(--color-white)}@media (max-width:768px){.error-boundary{align-items:flex-start;flex-direction:column}.error-boundary__icon{font-size:var(--font-size-md);height:32px;width:32px}}.lesson-form{background:#fff;background:var(--surface,#fff);border-radius:.5rem;border-radius:var(--radius-md,.5rem);box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column;font-family:Inter,system-ui,sans-serif;font-family:var(--font-primary,"Inter",system-ui,sans-serif);max-height:calc(100vh - 1rem);max-width:520px;position:relative;width:100%}.lesson-form__header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border,#e5e7eb);display:flex;flex-shrink:0;justify-content:space-between;padding:.75rem 1rem}.lesson-form__title{color:#111827;color:var(--gray-900,#111827);font-size:1.125rem;font-size:var(--text-lg,1.125rem);font-weight:600;font-weight:var(--font-semibold,600);line-height:1.25;line-height:var(--leading-tight,1.25);margin:0}.lesson-form__close{background:#0000;border:0;border-radius:.25rem;border-radius:var(--radius-sm,.25rem);color:#6b7280;color:var(--gray-500,#6b7280);cursor:pointer;font-size:1.25rem;line-height:1;padding:0 .25rem}.lesson-form__close:focus-visible,.lesson-form__close:hover{background:#f3f4f6;background:var(--gray-100,#f3f4f6);color:#111827;color:var(--gray-900,#111827);outline:none}.lesson-form__body{display:flex;flex:1 1 auto;flex-direction:column;gap:1rem;min-height:0;overflow-y:auto;padding:1rem}.lesson-form__field{display:flex;flex-direction:column;gap:.375rem;width:100%}.lesson-form__row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.lesson-form__label{color:#111827;color:var(--gray-900,#111827);font-size:.875rem;font-size:var(--text-sm,.875rem);font-weight:600;font-weight:var(--font-semibold,600)}.lesson-form__hint{color:#6b7280;color:var(--gray-500,#6b7280);font-size:.75rem;font-size:var(--text-xs,.75rem);font-weight:400;font-weight:var(--font-normal,400);margin-left:.25rem}.lesson-form__input,.lesson-form__select,.lesson-form__textarea{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.375rem;border-radius:var(--radius-base,.375rem);color:#111827;color:var(--gray-900,#111827);font-family:inherit;font-size:.875rem;font-size:var(--text-sm,.875rem);padding:.5rem .75rem;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition-fast,.15s ease),box-shadow var(--transition-fast,.15s ease);width:100%}.lesson-form__select{-webkit-appearance:none;appearance:none}.lesson-form__input--picker,.lesson-form__select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236b7280' d='M2.5 4.25a.75.75 0 0 1 1.06-.02L6 6.627 8.44 4.23a.75.75 0 1 1 1.04 1.08L6.52 8.217a.75.75 0 0 1-1.04 0L2.52 5.31a.75.75 0 0 1-.02-1.06z'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:12px 12px;cursor:pointer;padding-right:2rem}.lesson-form__input--picker::-webkit-calendar-picker-indicator{cursor:pointer;margin-right:-.5rem;opacity:0;width:2rem}.lesson-form__textarea{min-height:5rem;resize:vertical}.lesson-form__input:focus,.lesson-form__select:focus,.lesson-form__textarea:focus{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.lesson-form__input:disabled,.lesson-form__select:disabled,.lesson-form__textarea:disabled{background-color:#f3f4f6;background-color:var(--gray-100,#f3f4f6);color:#6b7280;color:var(--gray-500,#6b7280);cursor:not-allowed;opacity:.7}.lesson-form__readonly{background:#f9fafb;background:var(--gray-50,#f9fafb);border:1px solid #d1d5db;border:1px solid var(--gray-300,#d1d5db);border-radius:.375rem;border-radius:var(--radius-base,.375rem);color:#374151;color:var(--gray-700,#374151);font-size:.875rem;font-size:var(--text-sm,.875rem);font-weight:500;font-weight:var(--font-medium,500);padding:.5rem .75rem}.lesson-form__error{color:#dc2626;color:var(--error-600,#dc2626);font-size:.75rem;font-size:var(--text-xs,.75rem)}.lesson-form__submit-error{background:#fef2f2;background:var(--error-50,#fef2f2);border:1px solid #fecaca;border:1px solid var(--error-200,#fecaca);border-radius:.375rem;border-radius:var(--radius-base,.375rem);color:#991b1b;color:var(--error-800,#991b1b);font-size:.875rem;font-size:var(--text-sm,.875rem);padding:.75rem}.lesson-form__cost{align-items:center;background:#f9fafb;background:var(--gray-50,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:.375rem;border-radius:var(--radius-base,.375rem);display:flex;justify-content:space-between;padding:.625rem .75rem}.lesson-form__cost-label{color:#374151;color:var(--gray-700,#374151);font-size:.875rem;font-size:var(--text-sm,.875rem);font-weight:500;font-weight:var(--font-medium,500)}.lesson-form__cost-amount{color:#16a34a;color:var(--success-600,#16a34a);font-size:1rem;font-size:var(--text-base,1rem);font-weight:600;font-weight:var(--font-semibold,600)}.lesson-form__footer{border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);display:flex;flex-shrink:0;gap:.5rem;padding:.75rem 1rem}.lesson-form__btn-cancel,.lesson-form__btn-danger,.lesson-form__btn-primary{border:1px solid #0000;border-radius:.375rem;border-radius:var(--radius-base,.375rem);cursor:pointer;flex:1 1;font-family:inherit;font-size:.875rem;font-size:var(--text-sm,.875rem);font-weight:500;font-weight:var(--font-medium,500);padding:.625rem 1rem;transition:all .15s ease;transition:all var(--transition-fast,.15s ease)}.lesson-form__btn-cancel{background:#fff;background:var(--surface,#fff);border-color:#d1d5db;border-color:var(--gray-300,#d1d5db);color:#374151;color:var(--gray-700,#374151)}.lesson-form__btn-cancel:hover:not(:disabled){background:#f9fafb;background:var(--gray-50,#f9fafb)}.lesson-form__btn-cancel:focus-visible{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.lesson-form__btn-primary{background:#0ea5e9;background:var(--primary-500,#0ea5e9);border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);color:#fff;color:var(--surface,#fff)}.lesson-form__btn-danger{background:#fff;background:var(--surface,#fff);border-color:#fca5a5;border-color:var(--error-300,#fca5a5);color:#dc2626;color:var(--error-600,#dc2626)}.lesson-form__btn-danger:hover:not(:disabled){background:#fef2f2;background:var(--error-50,#fef2f2);border-color:#f87171;border-color:var(--error-400,#f87171)}.lesson-form__btn-danger:focus-visible{outline:2px solid #ef4444;outline:2px solid var(--error-500,#ef4444);outline-offset:2px}.lesson-form__btn-primary:hover:not(:disabled){background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.lesson-form__btn-primary:focus-visible{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.lesson-form__btn-cancel:disabled,.lesson-form__btn-danger:disabled,.lesson-form__btn-primary:disabled{cursor:not-allowed;opacity:.6}.lesson-form__loading{color:#6b7280;color:var(--gray-500,#6b7280);font-size:.875rem;font-size:var(--text-sm,.875rem);padding:2rem;text-align:center}@media (max-width:480px){.lesson-form{border-radius:.5rem .5rem 0 0;border-radius:var(--radius-md,.5rem) var(--radius-md,.5rem) 0 0;max-width:none}.lesson-form__row{grid-template-columns:1fr}.lesson-form__footer{flex-direction:column}.lesson-form__btn-cancel,.lesson-form__btn-primary{width:100%}}@media (prefers-reduced-motion:reduce){.lesson-form__input,.lesson-form__select,.lesson-form__textarea{transition:none}}@media (prefers-contrast:high){.lesson-form__input,.lesson-form__select,.lesson-form__textarea{border-width:2px}}.recurrence-builder{background-color:#fff;background-color:var(--color-surface,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border,#e2e8f0);border-radius:8px;display:flex;font-family:inherit;gap:2rem;padding:1.5rem}.recurrence-builder__content{display:flex;flex:1 1;flex-direction:column;gap:1.5rem}.recurrence-builder__preview{border-left:1px solid var(--color-border);flex:0 0 400px;padding-left:2rem}.recurrence-builder__section{display:flex;flex-direction:column;gap:.75rem}.recurrence-builder__section-title{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:1rem;font-weight:600;margin:0;padding-bottom:.5rem}.recurrence-builder__frequency-selector{display:flex;flex-wrap:wrap;gap:1rem}.recurrence-builder__frequency-option{align-items:center;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.5rem .75rem;transition:all .2s ease}.recurrence-builder__frequency-option:hover{background-color:var(--color-gray-50);border-color:var(--color-primary-300)}.recurrence-builder__frequency-option input[type=radio]{margin:0}.recurrence-builder__frequency-option input[type=radio]:checked+.recurrence-builder__frequency-label{color:var(--color-primary-600);font-weight:600}.recurrence-builder__frequency-label{font-size:.875rem;-webkit-user-select:none;user-select:none}.recurrence-builder__interval-selector{align-items:center;display:flex}.recurrence-builder__interval-label{align-items:center;color:var(--color-text-primary);display:flex;font-size:.875rem;gap:.5rem}.recurrence-builder__interval-input{border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;padding:.375rem .5rem;text-align:center;width:60px}.recurrence-builder__interval-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.recurrence-builder__weekdays{display:flex;flex-wrap:wrap;gap:.5rem}.recurrence-builder__weekday-option{align-items:center;border:1px solid var(--color-border);border-radius:50%;cursor:pointer;display:flex;height:3rem;justify-content:center;position:relative;transition:all .2s ease;width:3rem}.recurrence-builder__weekday-option:hover{background-color:var(--color-gray-50);border-color:var(--color-primary-300)}.recurrence-builder__weekday-option input[type=checkbox]{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.recurrence-builder__weekday-option input[type=checkbox]:checked+.recurrence-builder__weekday-label{align-items:center;background-color:var(--color-primary-500);border-radius:50%;color:#fff;display:flex;height:100%;justify-content:center;width:100%}.recurrence-builder__weekday-label{font-size:.75rem;font-weight:600;transition:all .2s ease;-webkit-user-select:none;user-select:none}.recurrence-builder__monthly-options{display:flex;flex-direction:column;gap:.75rem}.recurrence-builder__monthly-option{align-items:center;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem;transition:all .2s ease}.recurrence-builder__monthly-option:hover{background-color:var(--color-gray-50)}.recurrence-builder__monthly-option input[type=radio]:checked{accent-color:var(--color-primary-500)}.recurrence-builder__monthly-day-input,.recurrence-builder__monthly-ordinal-select,.recurrence-builder__monthly-weekday-select{border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;padding:.25rem .5rem}.recurrence-builder__monthly-day-input{text-align:center;width:60px}.recurrence-builder__monthly-day-input:disabled,.recurrence-builder__monthly-ordinal-select:disabled,.recurrence-builder__monthly-weekday-select:disabled{background-color:var(--color-gray-100);color:var(--color-text-tertiary);cursor:not-allowed}.recurrence-builder__end-options{display:flex;flex-direction:column;gap:.75rem}.recurrence-builder__end-option{align-items:center;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;display:flex;gap:.5rem;padding:.75rem;transition:all .2s ease}.recurrence-builder__end-option:hover{background-color:var(--color-gray-50)}.recurrence-builder__end-count-input,.recurrence-builder__end-date-input{border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;padding:.25rem .5rem}.recurrence-builder__end-count-input{text-align:center;width:80px}.recurrence-builder__end-count-input:disabled,.recurrence-builder__end-date-input:disabled{background-color:var(--color-gray-100);color:var(--color-text-tertiary);cursor:not-allowed}.recurrence-builder__rrule-display{align-items:center;background-color:var(--color-gray-50);border:1px solid var(--color-border);border-radius:6px;display:flex;gap:.5rem;padding:.75rem}.recurrence-builder__rrule-code{background:none;color:var(--color-text-primary);flex:1 1;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8125rem;overflow-x:auto;white-space:nowrap}.recurrence-builder__copy-button{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.25rem;transition:background-color .2s ease}.recurrence-builder__copy-button:hover{background-color:var(--color-gray-200)}.recurrence-builder__preview-title{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.recurrence-builder__preview-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.recurrence-builder__preview-item{align-items:center;background-color:var(--color-gray-25);border:1px solid var(--color-border);border-radius:6px;display:flex;gap:.75rem;padding:.75rem;transition:all .2s ease}.recurrence-builder__preview-item:hover{background-color:var(--color-gray-50);border-color:var(--color-primary-200)}.recurrence-builder__preview-item--dst{background-color:var(--color-orange-25);border-left:4px solid var(--color-orange-400)}.recurrence-builder__preview-item--modified{background-color:var(--color-blue-25);border-left:4px solid var(--color-blue-400)}.recurrence-builder__preview-date{color:var(--color-text-primary);flex:1 1;font-size:.875rem;font-weight:600}.recurrence-builder__preview-time{font-feature-settings:"tnum";color:var(--color-text-secondary);font-size:.75rem;font-variant-numeric:tabular-nums}.recurrence-builder__preview-badge{border-radius:999px;font-size:.625rem;font-weight:600;letter-spacing:.05em;padding:.125rem .375rem;text-transform:uppercase}.recurrence-builder__preview-badge--dst{background-color:var(--color-orange-100);color:var(--color-orange-700)}.recurrence-builder__preview-badge--modified{background-color:var(--color-blue-100);color:var(--color-blue-700)}.recurrence-builder__preview-actions{display:flex;gap:.25rem}.recurrence-builder__preview-action{background:none;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;opacity:.6;padding:.25rem;transition:background-color .2s ease}.recurrence-builder__preview-action:hover{background-color:var(--color-gray-200);opacity:1}.recurrence-builder__exceptions{border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1.5rem}.recurrence-builder__exceptions-title{color:var(--color-text-primary);font-size:.875rem;font-weight:600;margin:0 0 .75rem}.recurrence-builder__exceptions-list{display:flex;flex-direction:column;gap:.5rem}.recurrence-builder__exception-item{align-items:center;background-color:var(--color-red-25);border:1px solid var(--color-red-200);border-radius:6px;display:flex;justify-content:space-between;padding:.5rem .75rem}.recurrence-builder__exception-date{color:var(--color-red-700);font-size:.8125rem;font-weight:500}.recurrence-builder__exception-remove{background:none;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;padding:.125rem;transition:background-color .2s ease}.recurrence-builder__exception-remove:hover{background-color:var(--color-red-100)}@media (max-width:768px){.recurrence-builder{flex-direction:column;gap:1.5rem;padding:1rem}.recurrence-builder__preview{border-left:none;border-top:1px solid var(--color-border);flex:none;padding-left:0;padding-top:1.5rem}.recurrence-builder__frequency-selector{gap:.5rem}.recurrence-builder__frequency-option{font-size:.8125rem;padding:.375rem .5rem}.recurrence-builder__weekdays{gap:.375rem}.recurrence-builder__weekday-option{height:2.5rem;width:2.5rem}.recurrence-builder__end-options,.recurrence-builder__monthly-options{gap:.5rem}.recurrence-builder__end-option,.recurrence-builder__monthly-option{font-size:.8125rem;padding:.5rem}.recurrence-builder__preview-item{align-items:flex-start;flex-direction:column;gap:.5rem}.recurrence-builder__preview-actions{align-self:flex-end}}@media (prefers-contrast:high){.recurrence-builder__end-option,.recurrence-builder__frequency-option,.recurrence-builder__monthly-option,.recurrence-builder__preview-item,.recurrence-builder__weekday-option{border-width:2px}.recurrence-builder__preview-item--dst,.recurrence-builder__preview-item--modified{border-left-width:6px}}@media (prefers-reduced-motion:reduce){.recurrence-builder__end-option,.recurrence-builder__exception-remove,.recurrence-builder__frequency-option,.recurrence-builder__monthly-option,.recurrence-builder__preview-action,.recurrence-builder__preview-item,.recurrence-builder__weekday-option{transition:none}}@media (prefers-color-scheme:dark){.recurrence-builder{background-color:var(--color-gray-900);border-color:var(--color-gray-700)}.recurrence-builder__end-option:hover,.recurrence-builder__frequency-option:hover,.recurrence-builder__monthly-option:hover,.recurrence-builder__weekday-option:hover{background-color:var(--color-gray-800)}.recurrence-builder__preview-item,.recurrence-builder__rrule-display{background-color:var(--color-gray-800);border-color:var(--color-gray-600)}.recurrence-builder__preview-item:hover{background-color:var(--color-gray-750)}.recurrence-builder__preview-item--dst{background-color:var(--color-orange-950);border-left-color:var(--color-orange-500)}.recurrence-builder__preview-item--modified{background-color:var(--color-blue-950);border-left-color:var(--color-blue-500)}.recurrence-builder__exception-item{background-color:var(--color-red-950);border-color:var(--color-red-700)}.recurrence-builder__exception-date{color:var(--color-red-300)}}@media print{.recurrence-builder__copy-button,.recurrence-builder__exception-remove,.recurrence-builder__preview-actions{display:none}.recurrence-builder{border:1px solid #000}.recurrence-builder,.recurrence-builder__preview-item{break-inside:avoid;page-break-inside:avoid}}.recurrence-builder__preview-list::-webkit-scrollbar{width:6px}.recurrence-builder__preview-list::-webkit-scrollbar-track{background:var(--color-gray-100);border-radius:3px}.recurrence-builder__preview-list::-webkit-scrollbar-thumb{background:var(--color-gray-400);border-radius:3px}.recurrence-builder__preview-list::-webkit-scrollbar-thumb:hover{background:var(--color-gray-500)}.bulk-scheduling-tools{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-lg);position:relative}.bulk-scheduling-tools .loading-message{color:var(--color-text-muted);font-size:var(--font-size-base);text-align:center}.bulk-scheduling-tools .error-banner{align-items:center;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--border-radius);color:var(--color-error-dark);display:flex;font-weight:500;justify-content:center;padding:var(--spacing-md)}.bulk-scheduling-progress{background:var(--color-primary);border-radius:var(--border-radius) var(--border-radius) 0 0;color:var(--color-white);left:0;padding:var(--spacing-sm);position:absolute;right:0;text-align:center;top:0;z-index:10}.progress-text{font-weight:600;margin-bottom:var(--spacing-xs)}.progress-bar{background:#fff3;height:20px;overflow:hidden;position:relative}.progress-bar,.progress-fill{border-radius:var(--border-radius-sm)}.progress-fill{background:var(--color-white);height:100%;transition:width .3s ease}.progress-count{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.bulk-create-form,.bulk-edit-form{padding-top:var(--spacing-md)}.bulk-create-form h3,.bulk-edit-form h3{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;margin:0 0 var(--spacing-lg) 0}.form-row{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--spacing-lg)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500}.required{color:var(--color-danger)}.bulk-scheduling-tools .form-select,.bulk-scheduling-tools .form-textarea{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:var(--font-size-base);padding:var(--spacing-sm);transition:border-color .2s ease,box-shadow .2s ease;width:100%}.bulk-scheduling-tools .form-select:focus,.bulk-scheduling-tools .form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.bulk-scheduling-tools .form-select:disabled,.bulk-scheduling-tools .form-textarea:disabled{background-color:var(--color-bg-alt);cursor:not-allowed;opacity:.6}.bulk-scheduling-tools .form-textarea{font-family:inherit;line-height:1.5;resize:vertical}.recurrence-section{background:var(--color-bg-alt);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.recurrence-section h4{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:600;margin:0 0 var(--spacing-md) 0}.preview-section{background:var(--color-bg-light);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.preview-section h4{align-items:center;color:var(--color-text-primary);display:flex;font-size:var(--font-size-md);font-weight:600;gap:var(--spacing-sm);margin:0 0 var(--spacing-md) 0}.conflict-warning{background:var(--color-warning);border-radius:var(--border-radius-sm);color:var(--color-warning-text);font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm)}.preview-list{grid-gap:var(--spacing-xs);display:grid;gap:var(--spacing-xs)}.preview-item{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);display:flex;font-size:var(--font-size-sm);justify-content:space-between;padding:var(--spacing-sm)}.preview-item.conflict{background:var(--color-warning-light);border-color:var(--color-warning)}.conflict-marker{color:var(--color-warning);font-weight:600}.preview-more{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic;padding:var(--spacing-sm);text-align:center}.bulk-actions{border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding-top:var(--spacing-md)}.bulk-action-btn{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-primary);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;transition:all .2s ease}.bulk-action-btn:hover:not(:disabled){background:var(--color-bg-light);border-color:var(--color-primary);box-shadow:var(--shadow-sm);color:var(--color-primary);transform:translateY(-1px)}.bulk-action-btn:active:not(:disabled){box-shadow:none;transform:translateY(0)}.bulk-action-btn:disabled{background:var(--color-bg-alt);color:var(--color-text-secondary);cursor:not-allowed;opacity:.6}.bulk-action-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.bulk-action-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-white)}.bulk-action-btn.secondary{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-white)}.bulk-action-btn.secondary:hover:not(:disabled){background:var(--color-secondary-dark);border-color:var(--color-secondary-dark);color:var(--color-white)}.bulk-action-btn.destructive{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-white)}.bulk-action-btn.destructive:hover:not(:disabled){background:var(--color-danger-dark);border-color:var(--color-danger-dark);color:var(--color-white)}.action-icon{font-size:var(--font-size-md);line-height:1}@media (max-width:768px){.bulk-scheduling-tools{padding:var(--spacing-md)}.form-row{gap:var(--spacing-sm);grid-template-columns:1fr}.bulk-actions{flex-direction:column}.bulk-action-btn{justify-content:center;width:100%}.preview-list{font-size:var(--font-size-xs)}}@media (max-width:480px){.bulk-scheduling-tools{margin-bottom:var(--spacing-sm);padding:var(--spacing-sm)}.bulk-create-form h3,.bulk-edit-form h3{font-size:var(--font-size-md)}.preview-section,.recurrence-section{padding:var(--spacing-sm)}}@media (prefers-color-scheme:dark){.bulk-scheduling-tools{background:var(--color-dark-surface);border-color:var(--color-dark-border)}.bulk-scheduling-tools .form-select,.bulk-scheduling-tools .form-textarea{background:var(--color-dark-input);border-color:var(--color-dark-border);color:var(--color-dark-text)}.bulk-scheduling-tools .form-select:focus,.bulk-scheduling-tools .form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-dark)}.preview-section,.recurrence-section{background:var(--color-dark-surface-alt)}.preview-section{border-color:var(--color-dark-border)}.bulk-action-btn,.preview-item{background:var(--color-dark-surface);border-color:var(--color-dark-border)}.bulk-action-btn{color:var(--color-dark-text)}.bulk-action-btn:hover:not(:disabled){background:var(--color-dark-surface-hover)}}.bulk-action-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.bulk-scheduling-tools .form-select:focus-visible,.bulk-scheduling-tools .form-textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.bulk-scheduling-tools:has(.bulk-scheduling-progress){padding-top:calc(var(--spacing-lg) + 60px)}@media (prefers-contrast:high){.bulk-action-btn,.bulk-scheduling-tools .form-select,.bulk-scheduling-tools .form-textarea,.preview-item.conflict{border-width:2px}}.lesson-status-buttons{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-xs);display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm)}.lesson-status-buttons .status-auth-message{color:var(--color-text-muted);flex:1 1;font-size:var(--font-size-sm);font-weight:500;text-align:center}.lesson-status-buttons .status-auth-message[role=alert]{color:var(--color-error-dark)}.lesson-status-buttons.vertical{align-items:stretch;flex-direction:column}.lesson-status-buttons.horizontal{align-items:center;flex-direction:row}.lesson-status-buttons.small{gap:var(--spacing-xs);padding:var(--spacing-xs)}.lesson-status-buttons.small .status-btn{font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.lesson-status-buttons.large{gap:var(--spacing-md);padding:var(--spacing-md)}.lesson-status-buttons.large .status-btn{font-size:var(--font-size-md);padding:var(--spacing-sm) var(--spacing-lg)}.current-status{align-items:center;display:flex;flex-shrink:0}.status-badge{border:1px solid #0000;border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;padding:var(--spacing-xs) var(--spacing-sm);text-transform:uppercase}.status-badge.status-scheduled{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}.status-badge.status-confirmed{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.status-badge.status-in_progress{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.status-badge.status-completed{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark)}.status-badge.status-cancelled{background:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger-dark)}.status-badge.status-no_show{background:var(--color-secondary-light);border-color:var(--color-secondary);color:var(--color-secondary-dark)}.status-badge.status-rescheduled{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.status-badge.status-pending_confirmation{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}.status-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.lesson-status-buttons.vertical .status-actions{flex-direction:column}.status-btn{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-primary);cursor:pointer;display:flex;font-size:var(--font-size-sm);font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);text-decoration:none;transition:all .2s ease;white-space:nowrap}.status-btn:hover:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(-1px)}.status-btn:active:not(:disabled){box-shadow:none;transform:translateY(0)}.status-btn:disabled{background:var(--color-bg-alt);color:var(--color-text-secondary);cursor:not-allowed;opacity:.6;transform:none}.status-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.status-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.status-btn.secondary{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-white)}.status-btn.secondary:hover:not(:disabled){background:var(--color-secondary-dark);border-color:var(--color-secondary-dark)}.status-btn.success{background:var(--color-success);border-color:var(--color-success);color:var(--color-white)}.status-btn.success:hover:not(:disabled){background:var(--color-success-dark);border-color:var(--color-success-dark)}.status-btn.warning{background:var(--color-warning);border-color:var(--color-warning);color:var(--color-white)}.status-btn.warning:hover:not(:disabled){background:var(--color-warning-dark);border-color:var(--color-warning-dark)}.status-btn.danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-white)}.status-btn.danger:hover:not(:disabled){background:var(--color-danger-dark);border-color:var(--color-danger-dark)}.btn-icon{font-size:var(--font-size-md)}.btn-icon,.btn-label{line-height:1}.confirmation-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.confirmation-dialog{animation:fadeInScale .2s ease-out;background:var(--color-white);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);max-width:400px;padding:var(--spacing-lg);width:90%}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.confirmation-dialog h3{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;margin:0 0 var(--spacing-md) 0}.confirmation-dialog p{color:var(--color-text-secondary);line-height:1.5;margin:0 0 var(--spacing-md) 0}.lesson-details{background:var(--color-bg-light);border-radius:var(--border-radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1.4;margin-bottom:var(--spacing-md);padding:var(--spacing-sm)}.dialog-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.dialog-actions .secondary{background:var(--color-bg-alt);border-color:var(--color-border);color:var(--color-text-primary)}.dialog-actions .secondary:hover:not(:disabled){background:var(--color-bg-hover)}@media (max-width:768px){.lesson-status-buttons.horizontal{align-items:stretch;flex-direction:column}.status-actions{flex-direction:column}.status-btn{justify-content:center;width:100%}.confirmation-dialog{margin:var(--spacing-md);width:auto}.dialog-actions{flex-direction:column}}@media (max-width:480px){.lesson-status-buttons{padding:var(--spacing-xs)}.status-btn{font-size:var(--font-size-xs);padding:var(--spacing-sm)}.btn-icon{font-size:var(--font-size-sm)}}@media (prefers-color-scheme:dark){.lesson-status-buttons,.status-btn{background:var(--color-dark-surface);border-color:var(--color-dark-border)}.status-btn{color:var(--color-dark-text)}.status-btn:hover:not(:disabled){background:var(--color-dark-surface-hover)}.confirmation-dialog{background:var(--color-dark-surface)}.lesson-details{background:var(--color-dark-surface-alt)}}.status-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.confirmation-dialog:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-contrast:high){.status-badge,.status-btn{border-width:2px}.confirmation-dialog{border:2px solid var(--color-border)}}@media (prefers-reduced-motion:reduce){.status-btn{transition:none}.status-btn:hover:not(:disabled){transform:none}.confirmation-dialog{animation:none}}.calendar-click-handler{height:100%;position:relative;width:100%}.calendar-click-handler [data-calendar-cell]{cursor:pointer;position:relative;transition:background-color .2s ease}.calendar-click-handler [data-calendar-cell]:hover:before{background:#dbeafe;background:var(--primary-100,#dbeafe);border-radius:4px;bottom:0;content:"";left:0;opacity:.3;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.calendar-click-handler [data-calendar-cell]:hover:after{animation:hintFadeIn .3s ease-in-out .5s forwards;background:#2563eb;background:var(--primary-600,#2563eb);border-radius:12px;bottom:.25rem;color:#fff;content:"+ Click to create lesson";font-size:.75rem;left:50%;opacity:0;padding:.25rem .5rem;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:2}@keyframes hintFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.calendar-click-handler [data-calendar-cell][data-blocked=true]{cursor:not-allowed;position:relative}.calendar-click-handler [data-calendar-cell][data-blocked=true]:hover:before{background:#fee2e2;background:var(--error-100,#fee2e2);opacity:.5}.calendar-click-handler [data-calendar-cell][data-blocked=true]:hover:after{background:#dc2626;background:var(--error-600,#dc2626);content:"Time slot not available"}.calendar-click-handler [data-calendar-cell][data-occupied=true]:hover:after{background:#d97706;background:var(--warning-600,#d97706);content:"Time slot occupied"}.calendar-click-handler [data-calendar-cell][data-preferred=true]:hover:before{background:#dcfce7;background:var(--success-100,#dcfce7);opacity:.4}.calendar-click-handler [data-calendar-cell][data-preferred=true]:hover:after{background:#059669;background:var(--success-600,#059669);content:"+ Recommended time"}.calendar-click-handler [data-calendar-cell=time-slot]{border:1px solid #0000;border-radius:4px;min-height:3rem;padding:.5rem}.calendar-click-handler [data-calendar-cell=time-slot]:hover{background:#f8faff;background:var(--primary-25,#f8faff);border-color:#bfdbfe;border-color:var(--primary-200,#bfdbfe)}.calendar-click-handler [data-calendar-cell=day-cell]{border-radius:6px;min-height:4rem;padding:.75rem}.calendar-click-handler [data-calendar-cell=student-row]{border-radius:3px;min-height:2.5rem;padding:.5rem}.calendar-click-notification{animation:notificationAppear .3s ease-out;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:6px;box-shadow:0 4px 12px #00000026;font-size:.875rem;font-weight:500;max-width:200px;padding:.75rem 1rem;text-align:center}.calendar-click-notification--blocked{background:#fef2f2;background:var(--error-50,#fef2f2);border-color:#fecaca;border-color:var(--error-200,#fecaca);color:#991b1b;color:var(--error-800,#991b1b)}.calendar-click-notification--success{background:#f0fdf4;background:var(--success-50,#f0fdf4);border-color:#bbf7d0;border-color:var(--success-200,#bbf7d0);color:#166534;color:var(--success-800,#166534)}@keyframes notificationAppear{0%{opacity:0;transform:scale(.9) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.calendar-click-handler--disabled [data-calendar-cell]{cursor:default}.calendar-click-handler--disabled [data-calendar-cell]:hover:after,.calendar-click-handler--disabled [data-calendar-cell]:hover:before{display:none}@media (max-width:768px){.calendar-click-handler [data-calendar-cell]:hover:after{font-size:.6875rem;padding:.125rem .375rem}.calendar-click-notification{font-size:.8125rem;max-width:150px;padding:.5rem .75rem}}@media (hover:none) and (pointer:coarse){.calendar-click-handler [data-calendar-cell]:hover:after,.calendar-click-handler [data-calendar-cell]:hover:before{display:none}.calendar-click-handler [data-calendar-cell]:active:before{background:#dbeafe;background:var(--primary-100,#dbeafe);border-radius:4px;bottom:0;content:"";left:0;opacity:.3;pointer-events:none;position:absolute;right:0;top:0;z-index:1}}@media (prefers-contrast:high){.calendar-click-handler [data-calendar-cell]:hover:before{border:2px solid #2563eb;border:2px solid var(--primary-600,#2563eb);opacity:.6}.calendar-click-handler [data-calendar-cell]:hover:after{border:1px solid}}@media (prefers-reduced-motion:reduce){.calendar-click-handler [data-calendar-cell],.calendar-click-handler [data-calendar-cell]:hover:after,.calendar-click-notification{animation:none;transition:none}}@media (prefers-color-scheme:dark){.calendar-click-handler [data-calendar-cell]:hover:before{background:#1e40af;background:var(--primary-800,#1e40af);opacity:.4}.calendar-click-notification{background:#1e293b;background:var(--bg-dark,#1e293b);border-color:#334155;border-color:var(--border-dark,#334155);color:#f1f5f9;color:var(--text-primary-dark,#f1f5f9)}.calendar-click-notification--blocked{background:#7f1d1d;background:var(--error-900,#7f1d1d);border-color:#b91c1c;border-color:var(--error-700,#b91c1c);color:#fee2e2;color:var(--error-100,#fee2e2)}.calendar-click-notification--success{background:#14532d;background:var(--success-900,#14532d);border-color:#15803d;border-color:var(--success-700,#15803d);color:#dcfce7;color:var(--success-100,#dcfce7)}}.teacher-dashboard-nav{align-items:center;background-color:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:1.5rem;padding:.75rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.teacher-dashboard-brand{align-items:center;background:none;border:none;border-radius:.375rem;color:#111827;cursor:pointer;display:inline-flex;font-size:1.125rem;font-weight:600;gap:.5rem;padding:.25rem .5rem;transition:background-color .15s ease}.teacher-dashboard-brand:focus-visible,.teacher-dashboard-brand:hover{background-color:#f3f4f6;outline:none}.teacher-dashboard-brand__mark{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:.5rem;color:#fff;display:inline-flex;height:2rem;justify-content:center;width:2rem}.teacher-dashboard-nav__links{align-items:center;display:flex;flex:1 1;gap:.25rem;justify-content:center;margin-left:1rem}.teacher-dashboard-nav__link{align-items:center;background:none;border:none;border-radius:.5rem;color:#6b7280;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.5rem .875rem;transition:background-color .15s ease,color .15s ease;white-space:nowrap}.teacher-dashboard-nav__link:focus-visible,.teacher-dashboard-nav__link:hover{background-color:#f3f4f6;color:#111827;outline:none}.teacher-dashboard-nav__link--active{background-color:#eff6ff;color:#1d4ed8}.teacher-dashboard-nav__link--active:focus-visible,.teacher-dashboard-nav__link--active:hover{background-color:#dbeafe;color:#1e40af}.teacher-dashboard-user{align-items:center;display:flex;gap:.75rem;position:relative}.teacher-dashboard-icon-button{align-items:center;background:none;border:none;border-radius:.5rem;color:#6b7280;cursor:pointer;display:inline-flex;height:2.25rem;justify-content:center;padding:0;transition:background-color .15s ease,color .15s ease;width:2.25rem}.teacher-dashboard-icon-button:focus-visible,.teacher-dashboard-icon-button:hover{background-color:#f3f4f6;color:#111827;outline:none}.teacher-dashboard-user-trigger{align-items:center;background:none;border:1px solid #0000;border-radius:9999px;color:#111827;cursor:pointer;display:inline-flex;gap:.5rem;padding:.25rem .5rem .25rem .25rem;transition:background-color .15s ease,border-color .15s ease}.teacher-dashboard-user-trigger:focus-visible,.teacher-dashboard-user-trigger:hover{background-color:#f3f4f6;border-color:#e5e7eb;outline:none}.teacher-dashboard-avatar{align-items:center;background-color:#2563eb;border-radius:9999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:.95rem;font-weight:600;height:2.25rem;justify-content:center;width:2.25rem}.teacher-dashboard-role{color:#111827;font-size:.9rem;font-weight:500}.teacher-dashboard-user-chevron{align-items:center;color:#6b7280;display:inline-flex;height:1rem;justify-content:center;width:1rem}.teacher-dashboard-user-menu{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;display:flex;flex-direction:column;min-width:14rem;padding:.375rem;position:absolute;right:0;top:calc(100% + .5rem);z-index:50}.teacher-dashboard-user-menu__header{border-bottom:1px solid #f3f4f6;margin-bottom:.25rem;padding:.5rem .75rem .625rem}.teacher-dashboard-user-menu__name{color:#111827;font-size:.875rem;font-weight:600}.teacher-dashboard-user-menu__email{color:#6b7280;font-size:.75rem;margin-top:.125rem;word-break:break-all}.teacher-dashboard-user-menu__item{align-items:center;background:none;border:none;border-radius:.375rem;color:#111827;cursor:pointer;display:flex;font-size:.875rem;gap:.625rem;padding:.5rem .75rem;text-align:left;transition:background-color .15s ease,color .15s ease;width:100%}.teacher-dashboard-user-menu__item:focus-visible,.teacher-dashboard-user-menu__item:hover{background-color:#f3f4f6;color:#1d4ed8;outline:none}.teacher-dashboard-user-menu__item svg{flex-shrink:0;height:1rem;width:1rem}@media (max-width:768px){.teacher-dashboard-nav{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.teacher-dashboard-nav__links{gap:0;margin-left:.25rem;overflow-x:auto;width:100%}.teacher-dashboard-nav__link{font-size:0;gap:0;padding:.375rem .5rem}.teacher-dashboard-nav__link span:last-child,.teacher-dashboard-role{display:none}.teacher-dashboard-user-menu{right:-.5rem}}.CalendarPage_calendarPage__1sJjf{background:#f8fafc;background:var(--page-background,#f8fafc);color:var(--gray-900);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-primary,system-ui,-apple-system,"Segoe UI",sans-serif);min-height:100vh;padding:12px 22.5px 48px;padding:var(--space-3,12px) var(--page-content-gutter,22.5px) 48px}.CalendarPage_header__D7Kga{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin:0 auto 24px;max-width:1220px;max-width:var(--page-content-width,1220px)}.CalendarPage_title__OtW7i{color:var(--gray-900);font-family:var(--page-title-font-family);font-size:40px;font-size:var(--page-title-size,40px);font-weight:700;letter-spacing:-.01em;margin:0}.CalendarPage_primaryButton__MGd-l{align-items:center;background:var(--primary-500);border:1px solid var(--primary-500);border-radius:8px;color:var(--surface);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;margin-top:7px;margin-top:var(--page-header-action-offset,7px);padding:10px 18px;transition:background-color .12s ease,border-color .12s ease,transform .12s ease;white-space:nowrap}.CalendarPage_primaryButton__MGd-l:hover{background:var(--primary-600);border-color:var(--primary-600)}.CalendarPage_primaryButton__MGd-l:active{transform:translateY(1px)}.CalendarPage_primaryButton__MGd-l:focus-visible{outline:2px solid var(--info-700);outline-offset:2px}.CalendarPage_viewSwitcher__DAAig{align-items:center;background:var(--gray-200);border-radius:10px;display:inline-flex;gap:4px;left:50%;margin:0 auto 16px;max-width:1220px;max-width:var(--page-content-width,1220px);padding:4px;position:relative;transform:translateX(-50%);width:-webkit-fit-content;width:fit-content}.CalendarPage_viewButton__E6Hl7{background:#0000;border:none;border-radius:6px;color:var(--gray-600);cursor:pointer;font-size:14px;font-weight:600;min-width:112px;padding:8px 18px;transition:background-color .15s ease,color .15s ease}.CalendarPage_viewButton__E6Hl7:hover:not(.CalendarPage_viewButtonActive__aWPg7){background:#ffffff80;color:var(--gray-900)}.CalendarPage_viewButton__E6Hl7:focus-visible{outline:2px solid var(--info-700);outline-offset:2px}.CalendarPage_viewButtonActive__aWPg7{box-shadow:0 1px 2px #0f172a26}.CalendarPage_viewButtonActive__aWPg7,.CalendarPage_viewButtonActive__aWPg7:hover{background:var(--primary-500);color:var(--surface)}.CalendarPage_dateNav__QnJyr{align-items:center;display:flex;gap:16px;justify-content:center;margin:0 auto 24px;max-width:1220px;max-width:var(--page-content-width,1220px);width:100%}.CalendarPage_chevronButton__kq1wX{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--gray-600);cursor:pointer;display:inline-flex;height:36px;justify-content:center;transition:background-color .12s ease,border-color .12s ease,color .12s ease;width:36px}.CalendarPage_chevronButton__kq1wX:hover{background:var(--gray-50);border-color:var(--gray-300);color:var(--gray-900)}.CalendarPage_chevronButton__kq1wX:focus-visible{outline:2px solid var(--info-700);outline-offset:2px}.CalendarPage_dateLabel__ke0eH{color:var(--gray-900);font-size:18px;font-weight:700;letter-spacing:-.01em;min-width:220px;text-align:center}.CalendarPage_calendarShell__IgyZp,.CalendarPage_managerPanel__pgMNF{margin:0 auto 16px;max-width:1220px;max-width:var(--page-content-width,1220px)}.CalendarPage_viewPanel__ZgpY3{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px #0f172a0a;min-height:640px;overflow:hidden;padding:0}.CalendarPage_viewPanel__ZgpY3 .daily-agenda__header,.CalendarPage_viewPanel__ZgpY3 .daily-agenda__navigation,.CalendarPage_viewPanel__ZgpY3 .list-view__header,.CalendarPage_viewPanel__ZgpY3 .list-view__navigation,.CalendarPage_viewPanel__ZgpY3 .monthly-calendar__header,.CalendarPage_viewPanel__ZgpY3 .monthly-calendar__navigation,.CalendarPage_viewPanel__ZgpY3 .monthly-calendar__stats{display:none}.CalendarPage_testAnchors__ZpVoe{height:1px;left:-9999px;overflow:hidden;position:absolute;top:auto;width:1px}@media (max-width:768px){.CalendarPage_calendarPage__1sJjf{padding:24px 16px;padding:var(--space-6,24px) 16px}.CalendarPage_header__D7Kga{align-items:stretch;flex-direction:column;gap:12px}.CalendarPage_primaryButton__MGd-l{align-self:flex-end}.CalendarPage_viewSwitcher__DAAig{width:100%}.CalendarPage_viewButton__E6Hl7{flex:1 1;min-width:0}.CalendarPage_dateLabel__ke0eH{font-size:16px;min-width:0}}.CalendarPage_lessonFormModalBackdrop__xVD0P{align-items:center;background:#0f172a80;display:flex;inset:0;justify-content:center;padding:.5rem;position:fixed;z-index:900;z-index:var(--z-modal-backdrop,900)}.CalendarPage_lessonFormModal__vqvnR{display:flex;max-height:calc(100vh - 1rem);max-width:520px;width:100%;z-index:1000;z-index:var(--z-modal,1000)}.MockupOverrides_viewPanel__4kVgn{background:#0000;border:none;box-shadow:none;min-height:0;overflow:visible;padding:0}.MockupOverrides_viewPanel__4kVgn.daily-agenda{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;overflow:hidden}.MockupOverrides_viewPanel__4kVgn.daily-agenda .daily-agenda__summary{border-left:0;border-right:0;border-top:0}.MockupOverrides_viewPanel__4kVgn.daily-agenda .daily-agenda__schedule{border-bottom:0;border-left:0;border-right:0}.MockupOverrides_viewPanel__4kVgn .monthly-calendar{background:#0000;height:auto}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__header,.MockupOverrides_viewPanel__4kVgn .monthly-calendar__stats{display:none}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__grid-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;flex:0 0 auto;overflow:hidden;padding:0}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__grid{padding:0}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__weekdays{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:grid;grid-template-columns:repeat(7,1fr);padding:12px 0}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__weekday{background:#f8fafc;color:#64748b;font-size:12px;font-weight:600;letter-spacing:.05em;padding:0;text-align:center;text-transform:uppercase}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__days{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(7,1fr)}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day{align-items:flex-start;background:#fff;border:1px solid #f1f5f9;border-left:0;border-top:0;cursor:pointer;display:flex;flex-direction:column;isolation:isolate;min-height:128px;padding:10px 12px;position:relative;transition:background-color .12s ease}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day:nth-child(7n){border-right:0}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day:hover{background:#fff}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day:before{background:#0000;content:"";inset:0;pointer-events:none;position:absolute;transition:background-color .12s ease;z-index:0}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day:hover:before{background:#f8fafc}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day-number{color:#0f172a;font-size:14px;font-weight:500;line-height:1.2;position:relative;z-index:1}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day--today{background:#eff6ff;box-shadow:inset 0 0 0 2px #2563eb}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day--today .monthly-calendar__day-number{color:#2563eb;font-weight:700}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day--other-month{background:#fafafa}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day--other-month .monthly-calendar__day-number{color:#cbd5e1;font-weight:400}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pills{gap:4px;margin-top:8px;position:relative;z-index:2}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pill{border-radius:6px;font-size:12px;font-weight:600;min-height:24px;padding:4px 6px;position:relative;z-index:3}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pill--scheduled{background:#fffbeb;border-color:#f59e0b;color:#a16207}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pill--confirmed{background:#f0fdf4;border-color:#22c55e;color:#15803d}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pill--completed{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pill--noshow{background:#fef2f2;border-color:#ef4444;color:#b91c1c}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__lesson-pill--cancelled{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.MockupOverrides_viewPanel__4kVgn .monthly-calendar__day--dst-transition{background-image:linear-gradient(135deg,#0000 96%,#fbbf24 0,#fbbf24)}.payment-form{background:#0000;border:0;border-radius:0;max-width:none;padding:0;width:100%}.payment-form__grid{grid-gap:var(--form-field-spacing);display:grid;gap:var(--form-field-spacing);grid-template-columns:1fr;margin-bottom:var(--space-6)}.payment-form .form-input,.payment-form .form-select{box-sizing:border-box;height:var(--space-10);min-height:var(--space-10)}.payment-form__date-control{-webkit-appearance:none;appearance:none;background-color:var(--background);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:16px 12px;cursor:pointer;padding:0 var(--space-10) 0 var(--space-3)}.payment-form__date-control::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}@media (min-width:768px){.payment-form__grid{grid-template-columns:repeat(2,1fr)}.form-group--full-width{grid-column:1/-1}}.form-error-banner{background:var(--error-50);border:1px solid var(--error-500);border-radius:.375rem;color:var(--error-700);font-size:var(--text-sm);margin-bottom:var(--space-6);padding:var(--space-4)}.payment-form__actions{display:flex;gap:var(--space-3);justify-content:flex-end;padding-top:var(--space-4)}@media (max-width:640px){.payment-form__actions{flex-direction:column-reverse}.payment-form__actions .btn{width:100%}}.payment-form__fieldset{border:none;margin:0;padding:0}.payment-form__fieldset:disabled{opacity:.6;pointer-events:none}.character-count{color:var(--text-secondary);float:right;font-size:var(--text-sm)}.payment-form .form-textarea{min-height:80px;resize:vertical}.invoice-preview{margin:0 auto;max-width:900px;padding:var(--space-4)}.invoice-preview__actions{display:flex;gap:var(--space-3);justify-content:flex-end}.invoice-preview__action-area{margin-top:var(--space-6)}.invoice-preview__email-message{color:var(--gray-600);font-size:var(--text-sm);margin:var(--space-3) 0 0;text-align:right}.invoice-preview__email-message--sent{color:var(--success-700)}.invoice-preview__email-message--error{color:var(--error-700)}.invoice-preview__document{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-8)}.invoice-preview__header{align-items:flex-start;border-bottom:2px solid var(--border);display:flex;justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-6)}.invoice-preview__header-left{flex:1 1}.invoice-preview__header-right{flex:1 1;text-align:right}.invoice-preview__title{color:var(--gray-900);font-size:var(--text-2xl);font-weight:var(--font-bold);margin:0 0 var(--space-1)}.invoice-preview__number{color:var(--gray-600);font-size:var(--text-lg);margin:0}.invoice-preview__teacher-info{margin:0}.invoice-preview__teacher-name{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-1)}.invoice-preview__teacher-contact{color:var(--gray-600);font-size:var(--text-sm);margin:0 0 var(--space-1)}.invoice-preview__details{display:flex;justify-content:space-between;margin-bottom:var(--space-8)}.invoice-preview__detail-group{flex:1 1}.invoice-preview__subtitle{color:var(--gray-900);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-2)}.invoice-preview__student-name{color:var(--gray-900);font-size:var(--text-base);font-weight:var(--font-medium);margin:0 0 var(--space-1)}.invoice-preview__student-contact{color:var(--gray-600);font-size:var(--text-sm);margin:0}.invoice-preview__date-row{display:flex;gap:var(--space-2);justify-content:flex-end;margin-bottom:var(--space-1)}.invoice-preview__date-label{color:var(--gray-600);font-size:var(--text-sm);font-weight:var(--font-medium)}.invoice-preview__date-value{color:var(--gray-900);font-size:var(--text-sm)}.invoice-preview__items{margin-bottom:var(--space-8)}.invoice-preview__table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;width:100%}.invoice-preview__table{border:1px solid var(--border);border-collapse:collapse;border-radius:var(--radius-sm);overflow:hidden;width:100%}.invoice-preview__table thead{background-color:var(--gray-50)}.invoice-preview__table th{border-bottom:2px solid var(--border);color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-semibold);padding:var(--space-2) var(--space-4);text-align:left}.invoice-preview__th-price,.invoice-preview__th-quantity,.invoice-preview__th-tax,.invoice-preview__th-total{text-align:right}.invoice-preview__table tbody tr{border-bottom:1px solid var(--border)}.invoice-preview__table tbody tr:last-child{border-bottom:none}.invoice-preview__table td{color:var(--gray-900);font-size:var(--text-sm);padding:var(--space-4)}.invoice-preview__td-description{font-weight:var(--font-medium)}.invoice-preview__td-price,.invoice-preview__td-quantity,.invoice-preview__td-tax,.invoice-preview__td-total{text-align:right}.invoice-preview__td-total{font-weight:var(--font-semibold)}.invoice-preview__totals{align-items:flex-end;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-8);padding-top:var(--space-4)}.invoice-preview__totals-row{display:flex;gap:var(--space-8);justify-content:space-between;min-width:300px}.invoice-preview__totals-label{color:var(--gray-600);font-size:var(--text-base);font-weight:var(--font-medium)}.invoice-preview__totals-value{color:var(--gray-900);font-size:var(--text-base);font-weight:var(--font-semibold)}.invoice-preview__totals-row--grand{border-top:2px solid var(--border);margin-top:var(--space-2);padding-top:var(--space-2)}.invoice-preview__totals-row--grand .invoice-preview__totals-label,.invoice-preview__totals-row--grand .invoice-preview__totals-value{color:var(--primary-600);font-size:var(--text-lg);font-weight:var(--font-bold)}.invoice-preview__notes{background-color:var(--gray-50);border-radius:var(--radius-sm);margin-bottom:var(--space-6);padding:var(--space-4)}.invoice-preview__notes-text{color:var(--gray-900);font-size:var(--text-sm);line-height:1.6;margin:0;white-space:pre-wrap}.invoice-preview__terms{background-color:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--space-6);padding:var(--space-4)}.invoice-preview__terms-text{color:var(--gray-900);font-size:var(--text-sm);line-height:1.6;margin:var(--space-2) 0 0;white-space:pre-line}.invoice-preview__footer{border-top:1px solid var(--border);padding-top:var(--space-6);text-align:center}.invoice-preview__footer-text{color:var(--gray-600);font-size:var(--text-sm);font-style:italic;margin:0}@media print{@page{size:A4;margin:12mm}body,html{background:#fff!important;height:auto!important;min-height:0!important;overflow:visible!important;width:auto!important}body.invoice-print-active #main-navigation>:not(.invoice-print-host),body.invoice-print-active .skip-links{display:none!important}body.invoice-print-active #main-content,body.invoice-print-active #main-navigation{background:#fff!important;display:block!important;height:auto!important;margin:0!important;min-height:0!important;overflow:visible!important;padding:0!important;position:static!important;width:100%!important}body.invoice-print-active #root,body.invoice-print-active .App,body.invoice-print-active .invoice-preview,body.invoice-print-active .invoice-print-body{background:#fff!important}body.invoice-print-active .invoice-print-host{inset:auto!important;padding:0!important;position:static!important}body.invoice-print-active .invoice-print-dialog,body.invoice-print-active .invoice-print-host{background:#0000!important;display:block!important;height:auto!important;min-height:0!important;overflow:visible!important}body.invoice-print-active .invoice-print-dialog{border:0!important;border-radius:0!important;box-shadow:none!important;max-height:none!important;width:100%!important}body.invoice-print-active .invoice-print-body{height:auto!important;min-height:0!important;overflow:visible!important;padding:0!important}.invoice-preview{height:auto;margin:0;max-width:none;min-height:0;padding:0;width:100%}.invoice-preview__actions,.no-print{display:none!important}.invoice-preview__document{border:none;border-radius:0;box-shadow:none;box-sizing:border-box;padding:0;position:static;width:100%}.invoice-preview__table{page-break-inside:avoid}.invoice-preview__table-scroll{overflow:visible}.invoice-preview__totals{page-break-inside:avoid}}@media (max-width:768px){.invoice-preview__header{flex-direction:column;gap:var(--space-4)}.invoice-preview__header-right{text-align:left}.invoice-preview__details{flex-direction:column;gap:var(--space-6)}.invoice-preview__date-row{justify-content:flex-start}.invoice-preview__table{font-size:var(--text-xs)}.invoice-preview__table td,.invoice-preview__table th{padding:var(--space-1) var(--space-2)}.invoice-preview__totals-row{min-width:100%}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.invoice-form{background:#0000;border:0;border-radius:0;max-width:none;padding:0;width:100%}.invoice-form__fieldset{border:none;margin:0;padding:0}.invoice-form__fieldset:disabled{opacity:.6;pointer-events:none}.invoice-form__header{display:flex;flex-direction:column;gap:var(--form-field-spacing);margin-bottom:var(--space-6)}.invoice-form__header .form-group{margin-bottom:0}.invoice-form__date-row{grid-gap:var(--form-field-spacing);display:grid;gap:var(--form-field-spacing);grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-form__date-control{-webkit-appearance:none;appearance:none;background-color:var(--background);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:16px 12px;box-sizing:border-box;cursor:pointer;height:var(--space-10);min-height:var(--space-10);padding:0 var(--space-10) 0 var(--space-3)}.invoice-form__date-control::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}.required-indicator{color:var(--error-500);margin-left:.25rem}.invoice-form__grid{grid-gap:var(--form-field-spacing);display:grid;gap:var(--form-field-spacing);grid-template-columns:1fr;margin-bottom:var(--space-6)}@media (min-width:768px){.invoice-form__grid{grid-template-columns:repeat(2,1fr)}}.invoice-form__line-items{background:var(--surface-secondary);border-radius:.375rem;margin-bottom:var(--space-6);padding:var(--space-6)}.invoice-form__line-items .text-h3,.line-items-table{margin-bottom:var(--space-4)}.line-items-table{display:flex;flex-direction:column;gap:var(--space-2)}.line-items-table__header,.line-items-table__row{grid-gap:var(--space-2);align-items:start;display:grid;gap:var(--space-2);grid-template-columns:minmax(130px,2fr) 52px 84px 60px 76px 36px}.line-items-table__header{color:var(--gray-600);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:0 var(--space-2);text-transform:uppercase}.line-items-table__row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2)}.line-items-table__cell{min-width:0}.line-items-table__cell .form-input{width:100%}.line-items-table__cell--action,.line-items-table__cell--total{align-items:center;display:flex;min-height:40px}.line-items-table__cell--total{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:var(--font-semibold);justify-content:flex-end}.line-items-table__cell--action{justify-content:center}.invoice-form__totals{background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);margin-bottom:var(--space-6);padding:var(--space-4)}.totals-row{align-items:center;color:var(--gray-700);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-1) 0}.totals-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:var(--font-semibold)}.totals-row--total{border-top:1px solid var(--primary-200);color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-bold);margin-top:var(--space-2);padding-top:var(--space-3)}.invoice-form__preview{border-top:1px solid var(--border);margin-top:var(--space-6);padding-top:var(--space-6)}.invoice-form__preview .invoice-preview{padding:0}.invoice-form__actions{display:flex;gap:var(--space-3);justify-content:flex-end;padding-top:var(--space-4)}@media (max-width:640px){.invoice-form__date-row{grid-template-columns:1fr}.invoice-form__line-items{padding:var(--space-4)}.line-items-table__header{display:none}.line-items-table__row{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.line-items-table__cell:first-child{grid-column:1/-1}.line-items-table__cell:before{color:var(--gray-600);content:attr(data-label);display:block;font-size:var(--text-xs);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.line-items-table__cell--action:before{content:none}.invoice-form__actions{flex-direction:column}.invoice-form__actions .btn{width:100%}}.invoice-form .form-error-banner{background:var(--error-50);border:1px solid var(--error-500);border-radius:.375rem;color:var(--error-700);font-size:var(--text-sm);margin-bottom:var(--space-6);padding:var(--space-4)}.receipt{background:var(--background);margin:0 auto;max-width:800px}.receipt-actions{margin:var(--space-4) auto 0;max-width:800px}.receipt-actions__buttons{display:flex;gap:var(--space-3);justify-content:flex-end}.receipt-actions__message{color:var(--gray-600);font-size:var(--text-sm);margin:var(--space-3) 0 0;text-align:right}.receipt-actions__message--sent{color:var(--success-700)}.receipt-actions__message--error{color:var(--error-700)}.receipt__container{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:var(--space-8)}.receipt__header{border-bottom:2px solid var(--border-strong);margin-bottom:var(--space-6);padding-bottom:var(--space-6);text-align:center}.receipt__title{color:var(--gray-900);font-size:var(--text-4xl);font-weight:var(--font-bold);margin:0 0 var(--space-4) 0}.receipt__meta{color:var(--gray-600);display:flex;font-size:var(--text-sm);gap:var(--space-8);justify-content:center}.receipt__date,.receipt__number{margin:0}.receipt__parties{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:var(--space-6)}.receipt__from,.receipt__to{min-width:0}.receipt__section-title{color:var(--gray-500);font-size:var(--text-sm);font-weight:var(--font-semibold);letter-spacing:.05em;margin:0 0 var(--space-2) 0;text-transform:uppercase}.receipt__business-name,.receipt__student-name{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-1) 0}.receipt__address,.receipt__contact{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.receipt__details,.receipt__invoice{border-top:1px solid var(--border);margin-bottom:var(--space-6);padding-top:var(--space-6)}.receipt__details-list{margin:0}.receipt__detail-row{border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:var(--space-3) 0}.receipt__detail-row:last-child{border-bottom:none}.receipt__detail-label{color:var(--gray-700);font-size:var(--text-sm);font-weight:var(--font-medium)}.receipt__detail-value{color:var(--gray-900);font-size:var(--text-sm);text-align:right}.receipt__amount{color:var(--primary-600);font-size:var(--text-xl);font-weight:var(--font-bold)}.receipt__status{align-items:center;background:var(--gray-100);border-radius:var(--radius-full);color:var(--gray-700);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-semibold);min-height:24px;padding:0 var(--space-2)}.receipt__status--completed{background:var(--success-50);color:var(--success-800)}.receipt__status--pending,.receipt__status--processing{background:var(--warning-50);color:var(--warning-800)}.receipt__status--cancelled,.receipt__status--failed{background:var(--error-50);color:var(--error-800)}.receipt__status--partially_refunded,.receipt__status--refunded{background:var(--info-50);color:var(--info-800)}.receipt__refund-notice{background:var(--info-50);border-left:3px solid var(--info-500);color:var(--info-900);font-size:var(--text-sm);margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4)}.receipt__footer{border-top:2px solid var(--border-strong);margin-top:var(--space-6);padding-top:var(--space-6);text-align:center}.receipt__footer-text{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-medium);margin:0 0 var(--space-4) 0}.receipt__footer-info{color:var(--gray-500);font-size:var(--text-xs);line-height:var(--leading-relaxed)}.receipt__footer-business{color:var(--gray-700);font-weight:var(--font-semibold);margin:0}.receipt__footer-contact{margin:0}@media (max-width:768px){.receipt-actions__buttons{flex-direction:column}.receipt-actions__buttons .btn{width:100%}.receipt-actions__message{text-align:left}.receipt__container{padding:var(--space-6) var(--space-4)}.receipt__meta{flex-direction:column;gap:var(--space-2)}.receipt__parties{gap:var(--space-4);grid-template-columns:1fr}.receipt__detail-row{flex-direction:column;gap:var(--space-1)}.receipt__detail-value{text-align:left}}@media print{@page{size:A4;margin:10mm}.receipt{background:#fff;font-size:11pt;max-width:100%}.receipt__container{border:none;border-radius:0;box-shadow:none;padding:0}.receipt__header{margin-bottom:12px;padding-bottom:10px;text-align:left}.receipt__title{font-size:24pt;margin-bottom:8px;text-align:center}.receipt__meta{flex-direction:row;font-size:9.5pt;gap:16px;justify-content:space-between}.receipt__date,.receipt__number{flex:1 1}.receipt__date{text-align:right}.receipt__parties{gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.receipt__section-title{font-size:9pt;margin-bottom:3px}.receipt__business-name,.receipt__student-name{font-size:11pt;margin-bottom:2px}.receipt__address,.receipt__contact{font-size:9pt;line-height:1.3}.receipt__details,.receipt__invoice{margin-bottom:10px;padding-top:10px}.receipt__detail-row{break-inside:avoid;flex-direction:row;gap:16px;padding:5px 0;page-break-inside:avoid}.receipt__detail-label{flex:0 0 38%;font-size:9.5pt}.receipt__detail-value{flex:1 1;font-size:9.5pt;min-width:0;text-align:right}.receipt__amount{font-size:13pt}.receipt__status{font-size:8.5pt;min-height:18px;padding:0 6px}.receipt__refund-notice{font-size:9pt;margin-top:6px;padding:6px 8px}.receipt__footer{margin-top:10px;padding-top:10px}.receipt__footer-text{font-size:11pt;margin-bottom:6px}.receipt__footer-info{font-size:8.5pt;line-height:1.25}.receipt__header{border-bottom-color:#000}.receipt__footer{border-top-color:#000}.receipt__amount,.receipt__business-name,.receipt__detail-label,.receipt__detail-value,.receipt__student-name,.receipt__title{color:#000}.receipt__details,.receipt__invoice{page-break-inside:avoid}.receipt *{background:#0000!important}.receipt__detail-row{border-bottom:1px solid #ddd}}.FinancePage_page__keTbb{background:var(--page-background);display:flex;flex-direction:column;gap:var(--space-6);margin:0 auto;max-width:1265px;max-width:calc(var(--page-content-width, 1220px) + var(--page-content-gutter, 22.5px)*2);padding:var(--space-3) var(--page-content-gutter,22.5px) var(--space-16)}.FinancePage_header__IvYg3{grid-gap:var(--space-3) var(--space-6);align-items:flex-start;display:grid;gap:var(--space-3) var(--space-6);grid-template-columns:minmax(0,1fr) auto}.FinancePage_title__efu\+j{color:var(--gray-900);font-family:var(--page-title-font-family);font-size:40px;font-size:var(--page-title-size,40px);font-weight:var(--font-bold);line-height:var(--leading-tight);margin:0}.FinancePage_lede__voNvh{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-2) 0 0;max-width:64ch}.FinancePage_actions__EtndL{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end;margin-top:15px;margin-top:var(--page-header-action-offset,15px)}.FinancePage_primaryButton__k7-bz,.FinancePage_secondaryButton__XbPVr{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-semibold);justify-content:center;min-height:var(--space-10);padding:0 var(--space-4);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.FinancePage_primaryButton__k7-bz,.FinancePage_primaryButton__k7-bz:visited{background:var(--primary-500);color:var(--surface);text-decoration:none}.FinancePage_primaryButton__k7-bz:hover:not(:disabled){background:var(--primary-600);color:var(--surface)}.FinancePage_secondaryButton__XbPVr{background:var(--surface);border-color:var(--border-strong);color:var(--gray-900)}.FinancePage_secondaryButton__XbPVr:hover:not(:disabled){background:var(--gray-50)}.FinancePage_filters__lYiuw input:focus-visible,.FinancePage_filters__lYiuw select:focus-visible,.FinancePage_modalClose__twpQg:focus-visible,.FinancePage_primaryButton__k7-bz:focus-visible,.FinancePage_secondaryButton__XbPVr:focus-visible,.FinancePage_studentGate__p4U6y select:focus-visible{box-shadow:var(--focus-shadow-primary);outline:2px solid var(--focus-ring-color);outline-offset:2px}.FinancePage_primaryButton__k7-bz:disabled,.FinancePage_secondaryButton__XbPVr:disabled{cursor:not-allowed;opacity:.55}.FinancePage_recordNavigation__-\+Db2{display:flex;flex-wrap:wrap;gap:var(--space-3)}.FinancePage_error__\+AocQ{background:var(--error-50);border:1px solid var(--error-100);border-radius:var(--radius-md);color:var(--error-800);font-size:var(--text-sm);margin:0;padding:var(--space-3) var(--space-4)}.FinancePage_placeholder__tSOWG,.FinancePage_positiveState__UwvGd{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--gray-600);font-size:var(--text-sm);margin:0;padding:var(--space-5);text-align:center}.FinancePage_positiveState__UwvGd{background:var(--success-50);border-color:var(--success-100);color:var(--success-800)}.FinancePage_kpiGrid__bFPkN{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr))}.FinancePage_kpiCard__D8r95,.FinancePage_panel__GaxNf{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.FinancePage_kpiCard__D8r95{padding:var(--space-4)}.FinancePage_ageBucket__Ttk8D span,.FinancePage_kpiHelper__ptMlr,.FinancePage_kpiLabel__IcTUG,.FinancePage_panelMeta__abjQN,.FinancePage_urgentList__4KZwA span{color:var(--gray-500);font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.FinancePage_kpiLabel__IcTUG{font-weight:var(--font-semibold);text-transform:uppercase}.FinancePage_kpiValue__qLdyZ{font-feature-settings:"tnum";color:var(--gray-900);font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:var(--font-bold);line-height:var(--leading-tight);margin:var(--space-2) 0 var(--space-1)}.FinancePage_analysisGrid__ApwER{grid-gap:var(--space-6);align-items:start;display:grid;gap:var(--space-6);grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.FinancePage_panel__GaxNf{overflow:hidden}.FinancePage_panelHeader__Qz0kQ{align-items:flex-start;background:var(--gray-50);border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-4) var(--space-5)}.FinancePage_panelTitle__2xnjf{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0}.FinancePage_panelMeta__abjQN{margin-top:var(--space-1)}.FinancePage_revenueChart__cBSxf{border:0;border-radius:0;box-shadow:none}.FinancePage_agingGrid__zjObu{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--space-5) var(--space-5) 0}.FinancePage_ageBucket__Ttk8D{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-1);justify-content:center;min-height:82px;padding:var(--space-3)}.FinancePage_ageBucket__Ttk8D strong{font-feature-settings:"tnum";color:var(--gray-900);font-size:var(--text-base);font-variant-numeric:tabular-nums}.FinancePage_ageLabel__ULnEM{color:var(--gray-700);font-weight:var(--font-semibold)}.FinancePage_urgentList__4KZwA{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:0;list-style:none;margin:var(--space-5) 0 0;padding:0}.FinancePage_urgentList__4KZwA li{border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-3) var(--space-5)}.FinancePage_urgentList__4KZwA div{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.FinancePage_urgentList__4KZwA strong{color:var(--gray-900);font-size:var(--text-sm)}.FinancePage_urgentAmount__8gquG{align-items:flex-end;text-align:right}.FinancePage_filters__lYiuw{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end}.FinancePage_filters__lYiuw label{color:var(--gray-600);display:flex;flex-direction:column;font-size:var(--text-xs);font-weight:var(--font-medium);gap:var(--space-1)}.FinancePage_invoiceNumberFilter__mH0pW,.FinancePage_studentFilter__ItW3T{width:196px}.FinancePage_statusFilter__tK39U{width:176px}.FinancePage_filters__lYiuw input,.FinancePage_filters__lYiuw select,.FinancePage_studentGate__p4U6y select{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--gray-900);font-size:var(--text-sm);height:var(--space-10);min-height:var(--space-10)}.FinancePage_filters__lYiuw select,.FinancePage_studentGate__p4U6y select{padding:0 var(--space-10) 0 var(--space-3)}.FinancePage_filters__lYiuw input{padding:0 var(--space-3)}.FinancePage_tableScroll__xMDzp{overflow-x:auto}.FinancePage_dataTable__CdhoZ{border-collapse:collapse;font-size:var(--text-sm);min-width:920px;width:100%}.FinancePage_dataTable__CdhoZ td,.FinancePage_dataTable__CdhoZ th{border-bottom:1px solid var(--border);color:var(--gray-700);padding:var(--space-3) var(--space-4);text-align:left;vertical-align:middle}.FinancePage_dataTable__CdhoZ th{background:var(--gray-50);color:var(--gray-500);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase}.FinancePage_dataTable__CdhoZ tbody tr:hover{background:var(--gray-50)}.FinancePage_clickableInvoiceRow__1kIIK{cursor:pointer}.FinancePage_invoiceLink__mSwLm{background:#0000;border:0;color:var(--primary-600);cursor:pointer;font:inherit;font-weight:var(--font-semibold);padding:0;text-decoration:underline;text-underline-offset:2px}.FinancePage_invoiceLink__mSwLm:hover{color:var(--primary-700)}.FinancePage_invoiceLink__mSwLm:focus-visible{border-radius:var(--radius-sm);outline:2px solid var(--focus-ring-color);outline-offset:2px}.FinancePage_pagination__vDwIc{align-items:center;background:var(--surface);border-top:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-3) var(--space-5)}.FinancePage_pageInfo__Wio0a{color:var(--gray-600);font-size:var(--text-sm);min-width:88px;text-align:center}.FinancePage_numeric__gfFQn{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right!important}.FinancePage_statusBadge__cRD\+j{align-items:center;background:var(--gray-100);border-radius:var(--radius-full);color:var(--gray-700);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-semibold);min-height:24px;padding:0 var(--space-2)}.FinancePage_statusPaid__z4t-f{background:var(--success-50);color:var(--success-800)}.FinancePage_statusPending__CMYSZ,.FinancePage_statusProcessing__V3HST,.FinancePage_statusSent__h7fau,.FinancePage_statusViewed__gUc1N{background:var(--warning-50);color:var(--warning-800)}.FinancePage_statusCancelled__P0h9G,.FinancePage_statusFailed__vlZqi,.FinancePage_statusOverdue__5i2u7{background:var(--error-50);color:var(--error-800)}.FinancePage_statusPartiallyRefunded__pSxH0,.FinancePage_statusRefunded__Ykf0P{background:var(--info-50);color:var(--info-800)}.FinancePage_modalBackdrop__TJ-vD{align-items:center;background:color-mix(in srgb,var(--gray-900) 48%,#0000);display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:var(--z-modal-backdrop)}.FinancePage_modal__N7iRo{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:min(860px,92vh);overflow:hidden;width:min(680px,100%)}.FinancePage_previewModal__6ylJG{width:min(960px,100%)}.FinancePage_previewBody__Z8oHA{padding:var(--space-4)}.FinancePage_modalHeader__DY3n8{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-4) var(--space-5)}.FinancePage_invoiceModal__LaRvb .FinancePage_modalHeader__DY3n8,.FinancePage_paymentModal__LZDDa .FinancePage_modalHeader__DY3n8{border-bottom:0}.FinancePage_invoiceModal__LaRvb .FinancePage_modalTitle__chaYw,.FinancePage_paymentModal__LZDDa .FinancePage_modalTitle__chaYw{font-size:var(--text-2xl)}.FinancePage_modalTitle__chaYw{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.FinancePage_modalClose__twpQg{background:#0000;border:0;border-radius:var(--radius-md);color:var(--gray-500);cursor:pointer;font-size:var(--text-2xl);height:32px;line-height:1;width:32px}.FinancePage_modalClose__twpQg:hover{background:var(--gray-100);color:var(--gray-900)}.FinancePage_modalBody__icQJI{overflow:auto;padding:var(--space-5)}.FinancePage_studentGate__p4U6y{border-bottom:0;display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5);padding-bottom:0}.FinancePage_studentGate__p4U6y label{color:var(--gray-700);font-size:var(--text-sm);font-weight:var(--font-semibold)}.FinancePage_studentGate__p4U6y p{color:var(--gray-500);font-size:var(--text-sm);margin:0}@media (max-width:1024px){.FinancePage_kpiGrid__bFPkN{grid-template-columns:repeat(2,minmax(0,1fr))}.FinancePage_analysisGrid__ApwER{grid-template-columns:1fr}}@media (max-width:760px){.FinancePage_header__IvYg3{grid-template-columns:1fr}.FinancePage_actions__EtndL{justify-content:stretch;margin-top:0}.FinancePage_actions__EtndL a,.FinancePage_actions__EtndL button{flex:1 1 100%}.FinancePage_recordNavigation__-\+Db2{flex-direction:column}.FinancePage_agingGrid__zjObu,.FinancePage_kpiGrid__bFPkN{grid-template-columns:1fr}.FinancePage_panelHeader__Qz0kQ,.FinancePage_urgentList__4KZwA li{flex-direction:column}.FinancePage_filters__lYiuw{justify-content:stretch;width:100%}.FinancePage_filters__lYiuw label{flex:1 1 100%;width:100%}.FinancePage_pagination__vDwIc{justify-content:center}.FinancePage_urgentAmount__8gquG{align-items:flex-start;text-align:left}}.payment-history-table-container{background:var(--surface);border:0;border-radius:0;overflow:hidden}.payment-history-table__controls{background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-4) var(--space-5)}.payment-history-table__controls .form-group{margin-bottom:0;max-width:300px}.payment-history-table__controls .form-label{color:var(--gray-600);font-size:var(--text-xs);font-weight:var(--font-medium)}.payment-history-table__controls .form-select{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--gray-900);font-size:var(--text-sm);height:var(--space-10);min-height:var(--space-10)}.payment-history-table__wrapper{overflow-x:auto}.payment-history-table{border-collapse:collapse;font-size:var(--text-sm);width:100%}.payment-history-table thead{background:var(--gray-50);border-bottom:2px solid var(--border-strong)}.payment-history-table th{color:var(--gray-500);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-3) var(--space-4);text-align:left;text-transform:uppercase;white-space:nowrap}.payment-history-table th.sortable{cursor:pointer;transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.payment-history-table th.sortable:hover{background:var(--gray-100)}.payment-history-table th.sortable:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:-2px}.payment-history-table tbody tr{border-bottom:1px solid var(--border);transition:background-color var(--transition-fast)}.payment-history-table tbody tr:hover{background:var(--gray-50)}.payment-history-table__clickable-row{cursor:pointer}.payment-history-table td{color:var(--gray-700);padding:var(--space-3) var(--space-4)}.payment-history-table td[data-label=Amount],.payment-history-table__numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.payment-history-table__receipt-action{white-space:nowrap}.payment-history-table .status-badge{align-items:center;border:0;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:0;min-height:24px;padding:0 var(--space-2);text-transform:capitalize}.payment-history-table .status-completed{background:var(--success-50);color:var(--success-800)}.payment-history-table .status-pending,.payment-history-table .status-processing{background:var(--warning-50);color:var(--warning-800)}.payment-history-table .status-cancelled,.payment-history-table .status-failed{background:var(--error-50);color:var(--error-800)}.payment-history-table .status-partially-refunded,.payment-history-table .status-refunded{background:var(--info-50);color:var(--info-800)}.payment-history-table__empty{color:var(--gray-500);font-size:var(--text-base);padding:var(--space-12) var(--space-6);text-align:center}.payment-history-table__pagination{align-items:center;background:var(--surface);border-top:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-3) var(--space-5)}.payment-history-table__page-info{color:var(--gray-600);font-size:var(--text-sm)}@media (max-width:768px){.payment-history-table--responsive thead{display:none}.payment-history-table--responsive tbody tr{border:1px solid var(--border);border-radius:.375rem;display:block;margin-bottom:var(--space-4)}.payment-history-table--responsive tbody tr:hover{background:var(--background)}.payment-history-table--responsive td{border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4)}.payment-history-table--responsive td:last-child{border-bottom:none}.payment-history-table--responsive td:before{color:var(--gray-700);content:attr(data-label);flex-shrink:0;font-weight:var(--font-semibold);margin-right:var(--space-4)}.payment-history-table__pagination{flex-direction:column;gap:var(--space-3)}.payment-history-table__pagination .btn{width:100%}}.revenue-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-6)}.revenue-chart__controls{align-items:flex-end;display:flex;gap:var(--space-3);justify-content:flex-end;margin-bottom:var(--space-5)}.revenue-chart__field{min-width:0}.revenue-chart__field:first-child{width:180px}.revenue-chart__field:last-child{width:140px}.revenue-chart__field .form-label{color:var(--gray-600);font-size:var(--text-xs);margin-bottom:var(--space-1-5)}.revenue-chart__select{background-color:var(--surface);height:var(--space-10);padding-bottom:0;padding-top:0;width:100%}.revenue-chart__empty,.revenue-chart__error,.revenue-chart__loading{align-items:center;background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-4);justify-content:center;min-height:300px;padding:var(--space-12);text-align:center}.revenue-chart__error{color:var(--error-600)}.revenue-chart__empty{color:var(--gray-500)}.revenue-chart__container{display:flex;flex-direction:column;gap:var(--space-3)}.revenue-chart__plot{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.revenue-chart__svg{display:block;font-family:var(--font-primary);height:auto;min-height:240px;width:100%}.revenue-chart__grid-line{stroke:var(--gray-200);stroke-width:1;vector-effect:non-scaling-stroke}.revenue-chart__axis-label{fill:var(--gray-600);font-size:12px;font-weight:var(--font-medium)}.revenue-chart__axis-label--y{text-anchor:end}.revenue-chart__axis-label--x{text-anchor:middle}.revenue-chart__area{pointer-events:none}.revenue-chart__line{fill:none;stroke:var(--primary-600);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.revenue-chart__point{cursor:help;outline:none}.revenue-chart__point circle{fill:var(--surface);stroke:var(--primary-600);stroke-width:3;vector-effect:non-scaling-stroke;transition:fill var(--transition-fast),stroke-width var(--transition-fast)}.revenue-chart__point:focus-visible circle,.revenue-chart__point:hover circle{fill:var(--primary-100);stroke-width:5}.revenue-chart__point:focus-visible circle{stroke:var(--focus-ring-color)}.revenue-chart__summary{color:var(--gray-600);margin:0;text-align:center}.revenue-chart__loading .loading-spinner{animation:spin 1s linear infinite;border-top:3px solid var(--gray-200);border:3px solid var(--gray-200);border-radius:var(--radius-full);border-top-color:var(--primary-500);height:40px;width:40px}@media (max-width:640px){.revenue-chart{padding:var(--space-4)}.revenue-chart__controls{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr)}.revenue-chart__field:first-child,.revenue-chart__field:last-child{width:auto}.revenue-chart__svg{min-height:190px}.revenue-chart__axis-label{font-size:20px}.revenue-chart__axis-label--y{font-size:18px}.revenue-chart__axis-label--mobile-optional{display:none}.revenue-chart__empty,.revenue-chart__error,.revenue-chart__loading{min-height:220px;padding:var(--space-6)}}@media (prefers-reduced-motion:reduce){.revenue-chart__loading .loading-spinner,.revenue-chart__point circle{animation:none;transition:none}.revenue-chart__loading .loading-spinner{border-right-color:var(--primary-500);border-top-color:var(--primary-500)}}.AddressAutocomplete_container__Gpqul{min-width:0}.AddressAutocomplete_combobox__3pVPz{position:relative}.AddressAutocomplete_popup__B6cFX{background:var(--surface);border:1px solid var(--gray-300);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);left:0;overflow:hidden;position:absolute;right:0;top:calc(100% + var(--space-1));z-index:1000;z-index:var(--z-dropdown,1000)}.AddressAutocomplete_listbox__UlGhA{list-style:none;margin:0;max-height:18rem;overflow-y:auto;padding:var(--space-1) 0}.AddressAutocomplete_option__cWRje{cursor:pointer;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4)}.AddressAutocomplete_optionActive__YxDG\+,.AddressAutocomplete_option__cWRje:hover{background:var(--primary-50)}.AddressAutocomplete_optionActive__YxDG\+{outline:2px solid var(--primary-500);outline-offset:-2px}.AddressAutocomplete_mainText__TM8sX{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-medium)}.AddressAutocomplete_attribution__4lpGC,.AddressAutocomplete_secondaryText__-OaMB{color:var(--gray-600);font-size:var(--text-xs)}.AddressAutocomplete_attribution__4lpGC{border-top:1px solid var(--gray-200);padding:var(--space-2) var(--space-4);text-align:right}.AddressAutocomplete_status__65rt5{color:var(--gray-600);display:block;font-size:var(--text-xs);margin-top:var(--space-1);min-height:1.25rem}.AddressAutocomplete_error__4qnut{color:#b42318;color:var(--error-700,#b42318)}@media (max-width:480px){.AddressAutocomplete_popup__B6cFX{max-height:min(18rem,45vh)}.AddressAutocomplete_option__cWRje{padding:var(--space-3)}}.holiday-manager__suggested-panel{min-width:0}.holiday-manager__closures-panel{grid-column:1/-1;min-width:0}.holiday-manager__closures-header,.holiday-manager__section-heading{display:block}.holiday-manager__closures-header{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between}.holiday-manager__closures-header>div{min-width:0}.holiday-manager__closures-header h4,.holiday-manager__section-heading h4,.holiday-manager__section-heading h5{color:var(--gray-900);line-height:var(--leading-tight);margin:0}.holiday-manager__closures-header h4,.holiday-manager__section-heading h4{font-size:var(--text-lg);font-weight:var(--font-semibold)}.holiday-manager__section-heading h5{font-size:var(--text-sm);font-weight:var(--font-semibold)}.holiday-manager__closures-header p,.holiday-manager__section-heading p{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-1) 0 0;max-width:64ch}.holiday-manager__suggestion-groups{display:flex;flex-direction:column;gap:var(--space-6);margin-top:var(--space-4)}.holiday-manager__suggestion-group h5{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0 0 var(--space-3)}.holiday-manager__closures,.holiday-manager__suggestions{grid-gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);display:grid;gap:1px;list-style:none;margin:0;overflow:hidden;padding:0}.holiday-manager__suggestion-group--public .holiday-manager__suggestions{grid-template-columns:repeat(2,minmax(0,1fr))}.holiday-manager__closures li,.holiday-manager__suggestions li{background:var(--surface);min-width:0}.holiday-manager__suggestion{align-items:center;background:var(--surface);cursor:pointer;display:flex;gap:var(--space-3);min-height:3.125rem;padding:var(--space-2) var(--space-3);transition:background-color var(--transition-fast)}.holiday-manager__suggestion:hover{background:var(--gray-50)}.holiday-manager__suggestion:focus-within{outline:2px solid var(--primary-500);outline-offset:-2px;position:relative;z-index:1}.holiday-manager__suggestion:has(input:checked){background:var(--primary-50)}.holiday-manager__suggestion:has(input:disabled){cursor:not-allowed;opacity:.65}.holiday-manager__suggestion input{accent-color:var(--primary-500);flex:0 0 auto;height:1.125rem;margin:0;width:1.125rem}.holiday-manager__suggestion-copy{align-items:center;display:flex;flex:1 1;gap:var(--space-3);justify-content:space-between;min-width:0}.holiday-manager__suggestion-name{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-tight);min-width:0;overflow-wrap:anywhere}.holiday-manager__suggestion-meta{color:var(--gray-600);flex:0 1 auto;font-size:var(--text-xs);line-height:var(--leading-tight);text-align:right}.holiday-manager__conflict,.holiday-manager__error{color:var(--error-700);font-size:var(--text-xs)}.holiday-manager__conflict{flex-basis:100%}.holiday-manager__group-empty,.holiday-manager__message{background:var(--gray-50);border-radius:.375rem;color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0;padding:var(--space-3) var(--space-4)}.holiday-manager__message{margin-top:var(--space-4)}.holiday-manager__message--error{background:var(--error-50);border:1px solid var(--error-100);color:var(--error-700)}.holiday-manager__message--error p{margin:0 0 var(--space-2)}.holiday-manager__message button{background:var(--surface);border:1px solid var(--primary-300);border-radius:var(--radius-md);color:var(--primary-700);cursor:pointer;font:inherit;font-size:var(--text-xs);font-weight:var(--font-semibold);min-height:var(--space-10);padding:var(--space-2) var(--space-3)}.holiday-manager__form{margin-top:var(--space-5)}.holiday-manager__form-grid{grid-gap:var(--space-6);align-items:start;display:grid;gap:var(--space-6);grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr))}.holiday-manager__form label{color:var(--gray-700);display:flex;flex-direction:column;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);line-height:var(--leading-normal);min-width:0}.holiday-manager__form input{box-sizing:border-box;margin:0;min-width:0}.holiday-manager__date-control{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right var(--space-4) center;background-repeat:no-repeat;background-size:16px 12px;cursor:pointer;padding-right:var(--space-10)!important}.holiday-manager__date-control::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}.holiday-manager__save-btn{flex:0 0 auto;min-width:8.75rem}.holiday-manager__error{margin:var(--space-3) 0 0}.holiday-manager__current-closures{margin-top:var(--space-4)}.holiday-manager__section-heading--closures{display:block}.holiday-manager__closures{grid-template-columns:1fr;margin-top:var(--space-3)}.holiday-manager__closures li{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-3) var(--space-4)}.holiday-manager__closures li>div{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.holiday-manager__closures strong{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-medium);overflow-wrap:anywhere}.holiday-manager__closures span{color:var(--gray-600);font-size:var(--text-xs)}.holiday-manager__closures button{background:#0000;border:0;color:var(--error-700);cursor:pointer;font:inherit;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1)}@media (max-width:760px){.holiday-manager__closures-header{align-items:stretch;flex-direction:column}.holiday-manager__closures,.holiday-manager__form-grid,.holiday-manager__suggestion-group--public .holiday-manager__suggestions{grid-template-columns:1fr}.holiday-manager__save-btn{width:100%}}@media (max-width:520px){.holiday-manager__suggestion-copy{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.holiday-manager__suggestion-meta{text-align:left}}.AvailabilityPage_errorState__FO90v,.AvailabilityPage_loadingState__0\+RF7{align-items:center;color:var(--gray-600);display:flex;font-size:var(--text-sm);justify-content:center;min-height:11.25rem;text-align:center}.AvailabilityPage_errorState__FO90v{color:var(--error-700);flex-direction:column;gap:var(--space-3)}.AvailabilityPage_errorState__FO90v p{margin:0}.AvailabilityPage_errorState__FO90v button{background:var(--surface);border:1px solid var(--primary-300);border-radius:var(--radius-md);color:var(--primary-700);cursor:pointer;font:inherit;font-size:var(--text-xs);font-weight:var(--font-semibold);min-height:var(--space-10);padding:var(--space-2) var(--space-3)}.AvailabilityPage_availabilityCard__Bd3bU{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.AvailabilityPage_availabilityCard__Bd3bU input.form-input:not([type=checkbox]):not([type=radio]),.AvailabilityPage_availabilityCard__Bd3bU select.form-select{border-color:var(--border-strong);border-radius:.375rem;color:var(--gray-900);font-size:var(--text-sm);height:2.625rem;line-height:normal;min-height:0;padding:var(--space-3) var(--space-4)}.AvailabilityPage_availabilityCard__Bd3bU select.form-select{padding-right:var(--space-10)}.AvailabilityPage_cardHeader__jPD\+\+{align-items:baseline;background:var(--gray-50);display:flex;gap:var(--space-4);padding:var(--space-4) var(--space-5)}.AvailabilityPage_title__nNfkc{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0}.AvailabilityPage_subtitle__hFPSe{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0}.AvailabilityPage_cardBody__tU0HI{padding:var(--space-5)}.AvailabilityPage_saveError__Mupv3{background:var(--error-50);border:1px solid var(--error-100);border-radius:var(--radius-md);color:var(--error-700);font-size:var(--text-sm);grid-column:1/-1;margin:0;padding:var(--space-3) var(--space-4)}.AvailabilityPage_contentLayout__n-3Xw{grid-column-gap:var(--space-8);grid-row-gap:var(--space-4);align-items:start;column-gap:var(--space-8);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-4)}.AvailabilityPage_contentSection__9SoRb,.AvailabilityPage_leftColumn__DQ\+pP,.AvailabilityPage_lessonSection__QHcCS{min-width:0}.AvailabilityPage_lessonSection__QHcCS{margin-top:var(--space-4)}.AvailabilityPage_cardTitle__xsu7q{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0 0 var(--space-4)}.AvailabilityPage_dayList__uDcJF{background:var(--surface);border:1px solid var(--border);border-radius:.375rem;list-style:none;margin:0;overflow:hidden;padding:0}.AvailabilityPage_dayRow__0AdLt{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);justify-content:space-between;min-height:3.75rem;padding:var(--space-2) var(--space-3);transition:background-color var(--transition-fast)}.AvailabilityPage_dayRow__0AdLt:last-child{border-bottom:0}.AvailabilityPage_dayRow__0AdLt:focus-within{background:var(--gray-50)}.AvailabilityPage_dayLabel__eeLyL{align-items:center;cursor:pointer;display:inline-flex;gap:var(--space-3);min-width:8rem}.AvailabilityPage_checkbox__s7pLo{accent-color:var(--primary-500);cursor:pointer;flex:0 0 auto;height:1.125rem;margin:0;width:1.125rem}.AvailabilityPage_dayName__ybLfL{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-medium)}.AvailabilityPage_shortDayName__4lzj-{display:none}.AvailabilityPage_timeControls__nI-VW{align-items:center;display:inline-flex;gap:var(--space-2)}.AvailabilityPage_timeSelect__RWFEd{margin:0;min-width:6.875rem;width:6.875rem}.AvailabilityPage_timeSelect__RWFEd:disabled{background-color:var(--gray-100);color:var(--gray-400);cursor:not-allowed}.AvailabilityPage_timeSeparator__hMvFz{color:var(--gray-500);font-size:var(--text-xs);text-transform:lowercase;-webkit-user-select:none;user-select:none}.AvailabilityPage_lessonFields__M5m6M{display:grid;grid-template-columns:minmax(0,1fr)}.AvailabilityPage_field__G1w1v{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.AvailabilityPage_fieldLabel__gWJ\+I{color:var(--gray-700);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-normal)}.AvailabilityPage_select__MBtjF{margin:0;width:100%}@media (max-width:980px){.AvailabilityPage_contentLayout__n-3Xw{grid-template-columns:1fr}}@media (max-width:680px){.AvailabilityPage_cardHeader__jPD\+\+{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.AvailabilityPage_cardBody__tU0HI{padding:var(--space-4)}.AvailabilityPage_lessonFields__M5m6M{gap:var(--space-4);grid-template-columns:1fr}.AvailabilityPage_dayRow__0AdLt{align-items:center;flex-direction:row;gap:var(--space-2);padding:var(--space-2)}.AvailabilityPage_dayLabel__eeLyL{flex:0 0 4.5rem;gap:var(--space-2);min-width:0}.AvailabilityPage_fullDayName__-DyOo{display:none}.AvailabilityPage_shortDayName__4lzj-{display:inline}.AvailabilityPage_timeControls__nI-VW{flex:1 1;gap:var(--space-1);justify-content:space-between;min-width:0}.AvailabilityPage_timeSelect__RWFEd{background-position:right var(--space-2) center;flex:1 1;min-width:0;padding-left:var(--space-2);padding-right:var(--space-6);width:0}}.SettingsPage_page__6lJ1V{background:var(--gray-50);background:var(--page-background,var(--gray-50));min-height:calc(100vh - 64px);padding:var(--space-3) var(--page-content-gutter,22.5px) var(--space-16)}.SettingsPage_container__Za6W2{margin:0 auto;max-width:1220px;max-width:var(--page-content-width,1220px);width:min(100%,1220px);width:min(100%,var(--page-content-width,1220px))}.SettingsPage_header__8WVrY{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-5)}.SettingsPage_headerCopy__5vwR0{min-width:0}.SettingsPage_title__QqfAj{color:var(--gray-900);font-family:var(--page-title-font-family);font-size:40px;font-size:var(--page-title-size,40px);font-weight:var(--font-bold);letter-spacing:-.01em;line-height:var(--leading-tight);margin:0}.SettingsPage_title__QqfAj:focus{outline:none}.SettingsPage_subtitle__sTirC{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-2) 0 0;max-width:64ch}.SettingsPage_sectionNav__bx5hW{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-6)}.SettingsPage_sectionLink__QX6oH{font-weight:var(--font-semibold);min-height:var(--space-10);min-width:112px}.SettingsPage_content__tvhcu,.SettingsPage_subpage__PmY2b{min-width:0}.SettingsPage_sectionHeading__XoU6C{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-5)}.SettingsPage_sectionTitle__LqE6t{color:var(--gray-900);font-size:var(--text-xl);font-weight:var(--font-bold);line-height:var(--leading-tight);margin:0}.SettingsPage_sectionDescription__Cqbut{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-2) 0 0;max-width:64ch}.SettingsPage_saveButton__s1RND{flex:0 0 auto;margin-top:var(--space-2-5);min-width:146px}.SettingsPage_saveIcon__zTV4K{flex:0 0 auto}.SettingsPage_saveFeedback__u\+mHO{color:var(--success-700);font-size:var(--text-sm);font-weight:var(--font-medium);margin:calc(var(--space-3)*-1) 0 var(--space-4);text-align:right}.SettingsPage_saveFeedbackError__ypVSF{color:var(--error-700)}.SettingsPage_panel__Blc5-{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.SettingsPage_panelHeader__8ultH{align-items:flex-start;background:var(--gray-50);border-bottom:1px solid var(--border);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-4) var(--space-5)}.SettingsPage_panelTitle__fAyGK{color:var(--gray-900);font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0}.SettingsPage_panelDescription__hmrj2{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-1) 0 0}.SettingsPage_panelBody__ppN\+H{padding:var(--space-5)}.SettingsPage_panelStack__MrW65,.SettingsPage_profileForm__mNG1-{display:flex;flex-direction:column}.SettingsPage_panelStack__MrW65,.SettingsPage_profileForm__mNG1-{gap:var(--space-5)}.SettingsPage_profileForm__mNG1- .form-group{margin-bottom:0}.SettingsPage_profileAddressRow__BawPu{grid-gap:var(--space-6);align-items:start;display:grid;gap:var(--space-6);grid-template-columns:minmax(180px,1fr) minmax(0,2fr)}.SettingsPage_addressRow__3Pjyy{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.55fr) minmax(110px,.45fr)}.SettingsPage_suggestionArea__7uxff{border-top:1px solid var(--border);padding-top:var(--space-5)}.SettingsPage_suggestionIntro__L3Y6y,.SettingsPage_suggestionReviewHeader__XsLn3{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between}.SettingsPage_suggestionGroupTitle__VIQjv,.SettingsPage_suggestionReviewTitle__T9AMJ,.SettingsPage_suggestionTitle__ekHTI{color:var(--gray-900);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0}.SettingsPage_suggestionTitle__ekHTI{font-size:var(--text-base)}.SettingsPage_noSuggestions__OgPaG,.SettingsPage_reviewNotice__c5PVI,.SettingsPage_suggestionDescription__rrSYt,.SettingsPage_suggestionError__-d9kM{font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-1) 0 0}.SettingsPage_noSuggestions__OgPaG,.SettingsPage_reviewNotice__c5PVI,.SettingsPage_suggestionDescription__rrSYt{color:var(--gray-600)}.SettingsPage_suggestionError__-d9kM{color:var(--error-700)}.SettingsPage_suggestionReview__b-\+Ny{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:var(--space-4);padding:var(--space-4)}.SettingsPage_suggestionReviewTitle__T9AMJ{font-size:var(--text-sm)}.SettingsPage_reviewBadge__Wq7vl{background:var(--primary-100);border-radius:var(--radius-full);color:var(--primary-700);flex:0 0 auto;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-2)}.SettingsPage_suggestionSummary__7uUmp{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:var(--space-4) 0 0}.SettingsPage_suggestionSummary__7uUmp>div{min-width:0}.SettingsPage_suggestionSummary__7uUmp dt{color:var(--gray-500);font-size:var(--text-xs);font-weight:var(--font-medium)}.SettingsPage_suggestionSummary__7uUmp dd{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-semibold);margin:var(--space-1) 0 0;overflow-wrap:anywhere}.SettingsPage_suggestionGroup__ZGjIp{margin-top:var(--space-4)}.SettingsPage_suggestionGroupTitle__VIQjv{font-size:var(--text-sm)}.SettingsPage_suggestionList__85ulZ{grid-gap:var(--space-2);display:grid;gap:var(--space-2);list-style:none;margin:var(--space-2) 0 0;padding:0}.SettingsPage_suggestionList__85ulZ li{align-items:baseline;color:var(--gray-800);display:flex;font-size:var(--text-sm);gap:var(--space-4);justify-content:space-between}.SettingsPage_suggestionList__85ulZ li span{color:var(--gray-600);flex:0 0 auto;font-size:var(--text-xs)}.SettingsPage_invoiceSuggestion__IDbf5{color:var(--gray-800);font-size:var(--text-sm);margin-top:var(--space-2)}.SettingsPage_invoiceSuggestion__IDbf5 p{margin:var(--space-2) 0;white-space:pre-wrap}.SettingsPage_invoiceSuggestion__IDbf5 small{color:var(--gray-600);line-height:var(--leading-normal)}.SettingsPage_timezonePanel__z7Rul{margin-top:var(--space-5)}.SettingsPage_timezoneSetting__fp80k{align-items:center;display:flex;gap:var(--space-8);justify-content:space-between}.SettingsPage_timezoneCopy__wxlyz{min-width:0}.SettingsPage_timezoneDescription__tDkci{color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-normal);margin:var(--space-1) 0 0;max-width:58ch}.SettingsPage_timezoneControls__saxkZ{align-items:center;display:flex;flex:0 0 auto;gap:var(--space-5)}.SettingsPage_timezoneCurrent__u2boN{display:flex;flex-direction:column;gap:var(--space-1);min-width:180px}.SettingsPage_timezoneCurrentLabel__qfGGh{color:var(--gray-500);font-size:var(--text-xs);font-weight:var(--font-medium)}.SettingsPage_timezoneCurrentValue__TiBdk{color:var(--gray-900);font-size:var(--text-sm);font-weight:var(--font-semibold)}.SettingsPage_timezoneActions__impbY{align-items:center;display:flex;gap:var(--space-3)}.SettingsPage_timezoneSaveStatus__GU2Z5{color:var(--success-700);font-size:var(--text-sm);font-weight:var(--font-medium)}.SettingsPage_timezoneSaveStatusError__TZ7tO{color:var(--error-700)}.SettingsPage_financeFieldset__FfrEQ,.SettingsPage_financeForm__iYDNE,.SettingsPage_financeSections__OZYtH,.SettingsPage_financeState__iyz0B,.SettingsPage_wordingSuggestionBody__hLIF1{display:flex;flex-direction:column}.SettingsPage_financeFieldset__FfrEQ,.SettingsPage_financeSections__OZYtH{gap:var(--space-5)}.SettingsPage_financeCardHeader__KoHgH{align-items:baseline;gap:var(--space-4);justify-content:flex-start}.SettingsPage_financeCardHeader__KoHgH .SettingsPage_panelDescription__hmrj2{margin:0}.SettingsPage_financeCardBody__b8ggi .SettingsPage_saveFeedback__u\+mHO{margin:0 0 var(--space-4);text-align:left}.SettingsPage_financeContentLayout__mH0MP{display:flex;flex-direction:column;gap:var(--space-6)}.SettingsPage_financeContentSection__vqWP4{min-width:0;width:100%}.SettingsPage_financeSectionHeader__gR8lq{margin-bottom:var(--space-4)}.SettingsPage_wordingSectionHeader__a8RIC{align-items:flex-start;display:flex;gap:var(--space-6);justify-content:space-between}.SettingsPage_wordingHeaderCopy__x0aRK{min-width:0}.SettingsPage_wordingSectionHeader__a8RIC>button{flex:0 0 auto}.SettingsPage_financeWordingForm__xoLoA{grid-gap:var(--space-6);align-items:start;display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr)}.SettingsPage_financeFieldset__FfrEQ{border:0;margin:0;min-width:0;padding:0}.SettingsPage_financeForm__iYDNE,.SettingsPage_wordingSuggestionBody__hLIF1{gap:var(--space-5)}.SettingsPage_financeState__iyz0B{align-items:flex-start;color:var(--gray-700);gap:var(--space-3)}.SettingsPage_financeState__iyz0B p{margin:0}.SettingsPage_formRow__V-4D-{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr))}.SettingsPage_financeDefaultsGrid__xuGsz{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(4,minmax(0,1fr))}.SettingsPage_financeDefaultsGrid__xuGsz>.SettingsPage_formRow__V-4D-{display:contents}.SettingsPage_financeForm__iYDNE .form-group{margin-bottom:0}.SettingsPage_financeForm__iYDNE .form-help-text{line-height:var(--leading-normal)}.SettingsPage_financeForm__iYDNE .form-textarea.SettingsPage_invoiceWordingTextarea__YyCjS,.SettingsPage_financeForm__iYDNE .form-textarea.SettingsPage_paymentInstructionsTextarea__If3xv{min-height:0}.SettingsPage_checkboxRow__S9kdu{align-items:center;color:var(--gray-800);cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);min-height:var(--space-10)}.SettingsPage_checkboxRow__S9kdu input{accent-color:var(--primary-500);height:18px;margin:0;width:18px}.SettingsPage_inlineAction__9RIdF{background:#0000;border:0;color:var(--primary-700);cursor:pointer;font-weight:var(--font-semibold);font:inherit;padding:0}.SettingsPage_inlineAction__9RIdF:hover{color:var(--primary-800);text-decoration:underline}.SettingsPage_paymentMethods__gTUMH{border:0;margin:0;min-width:0;padding:0}.SettingsPage_paymentMethodGrid__rzf0W{grid-gap:var(--space-2) var(--space-5);display:grid;gap:var(--space-2) var(--space-5);grid-template-columns:repeat(5,minmax(0,1fr));margin-top:var(--space-2)}.SettingsPage_wordingSuggestion__8EASH{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--gray-700);font-size:var(--text-sm);line-height:var(--leading-normal);padding:var(--space-4)}.SettingsPage_wordingSuggestion__8EASH p,.SettingsPage_wordingSuggestion__8EASH small{margin:0;white-space:pre-wrap}.SettingsPage_wordingSuggestionBody__hLIF1>div{display:flex;flex-direction:column;gap:var(--space-1)}.SettingsPage_wordingSuggestionBody__hLIF1 strong{color:var(--gray-900)}.SettingsPage_wordingSuggestionBody__hLIF1 small,.SettingsPage_wordingSuggestionBody__hLIF1 span{color:var(--gray-600)}.SettingsPage_approvalRow__ZMA97{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between}.SettingsPage_approvalStatus__FjqQr{color:var(--gray-600);font-size:var(--text-sm);font-weight:var(--font-semibold)}.SettingsPage_approvalStatusApproved__W4fZ4{color:var(--success-700)}@media (max-width:980px){.SettingsPage_financeDefaultsGrid__xuGsz{grid-template-columns:repeat(2,minmax(0,1fr))}.SettingsPage_paymentMethodGrid__rzf0W{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:768px){.SettingsPage_financeCardHeader__KoHgH{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.SettingsPage_wordingSectionHeader__a8RIC{flex-direction:column;gap:var(--space-3)}.SettingsPage_addressRow__3Pjyy,.SettingsPage_financeDefaultsGrid__xuGsz,.SettingsPage_formRow__V-4D-,.SettingsPage_paymentMethodGrid__rzf0W,.SettingsPage_profileAddressRow__BawPu{grid-template-columns:1fr}.SettingsPage_timezoneControls__saxkZ,.SettingsPage_timezoneSetting__fp80k{align-items:flex-start;flex-direction:column}.SettingsPage_timezoneControls__saxkZ,.SettingsPage_timezoneCurrent__u2boN,.SettingsPage_timezoneSetting__fp80k{width:100%}.SettingsPage_approvalRow__ZMA97{align-items:flex-start;flex-direction:column}}@media (max-width:640px){.SettingsPage_page__6lJ1V{padding-left:var(--space-4);padding-right:var(--space-4)}.SettingsPage_sectionNav__bx5hW{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.SettingsPage_sectionLink__QX6oH{min-width:0;padding-left:var(--space-2);padding-right:var(--space-2)}.SettingsPage_panelBody__ppN\+H,.SettingsPage_panelHeader__8ultH{padding-left:var(--space-4);padding-right:var(--space-4)}.SettingsPage_sectionHeading__XoU6C{align-items:center}.SettingsPage_saveButton__s1RND{min-width:132px}}.ProgressEntryCard_card__cCDS8{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 1px 2px #0000000d;box-shadow:var(--shadow-sm,0 1px 2px #0000000d);display:flex;flex-direction:column;gap:16px;gap:var(--space-4,16px);padding:20px;padding:var(--space-5,20px)}.ProgressEntryCard_header__nWx0z{align-items:center;display:flex;gap:12px;gap:var(--space-3,12px);justify-content:space-between}.ProgressEntryCard_date__cp0Pg{color:#111827;color:var(--gray-900,#111827);font-size:18px;font-size:var(--text-lg,18px);font-weight:700;font-weight:var(--font-bold,700)}.ProgressEntryCard_editButton__Q1Llb{align-items:center;background:#fff;background:var(--surface,#fff);border:0;border-radius:50%;color:#374151;color:var(--gray-700,#374151);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;line-height:1;width:32px}.ProgressEntryCard_editButton__Q1Llb:focus-visible,.ProgressEntryCard_editButton__Q1Llb:hover{box-shadow:0 2px 4px #0000001a;color:#111827;color:var(--gray-900,#111827)}.ProgressEntryCard_editButton__Q1Llb:focus-visible{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.ProgressEntryCard_overview__BAK-l{grid-gap:20px;grid-gap:var(--space-5,20px);align-items:stretch;display:grid;gap:20px;gap:var(--space-5,20px);grid-template-columns:minmax(240px,.72fr) minmax(0,2fr)}.ProgressEntryCard_entrySummary__B\+rp-{background:#f9fafb;background:var(--gray-50,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;border-radius:var(--radius-md,8px);display:flex;flex-direction:column;gap:12px;gap:var(--space-3,12px);min-width:0;padding:16px;padding:var(--space-4,16px)}.ProgressEntryCard_repertoireType__tN7x4{align-self:flex-start;color:#6b7280;color:var(--gray-500,#6b7280);font-size:12px;font-size:var(--text-xs,12px);font-weight:600;font-weight:var(--font-semibold,600);letter-spacing:.04em;text-transform:uppercase}.ProgressEntryCard_repertoireRow__v74Q8{align-items:flex-start;display:flex;gap:12px;gap:var(--space-3,12px);min-width:0}.ProgressEntryCard_musicIcon__N5kqm{color:#0ea5e9;color:var(--primary-500,#0ea5e9);flex-shrink:0;font-size:20px;font-size:var(--text-xl,20px);line-height:1.25}.ProgressEntryCard_repertoireRow__v74Q8>div{display:flex;flex-direction:column;gap:2px;min-width:0}.ProgressEntryCard_repertoireTitle__\+wq64{color:#111827;color:var(--gray-900,#111827);font-size:16px;font-size:var(--text-base,16px);font-weight:600;font-weight:var(--font-semibold,600);overflow-wrap:anywhere}.ProgressEntryCard_composer__Ml2sx{color:#4b5563;color:var(--gray-600,#4b5563);font-size:14px;font-size:var(--text-sm,14px);overflow-wrap:anywhere}.ProgressEntryCard_metaRow__1Epov{align-items:center;display:flex;flex-wrap:wrap;gap:8px;gap:var(--space-2,8px)}.ProgressEntryCard_metaLabel__aj-MS{color:#4b5563;color:var(--gray-600,#4b5563);font-size:12px;font-size:var(--text-xs,12px);font-weight:500;font-weight:var(--font-medium,500)}.ProgressEntryCard_neutralPill__QcJao,.ProgressEntryCard_statusPill__8xLtP{align-items:center;border:1px solid #0000;border-radius:9999px;display:inline-flex;font-size:12px;font-size:var(--text-xs,12px);font-weight:600;font-weight:var(--font-semibold,600);min-height:24px;padding:2px 10px;text-transform:capitalize;white-space:nowrap}.ProgressEntryCard_neutralPill__QcJao,.ProgressEntryCard_statusPill--soft__HH5b7{background:#f3f4f6;background:var(--gray-100,#f3f4f6);border-color:#e5e7eb;border-color:var(--gray-200,#e5e7eb);color:#374151;color:var(--gray-700,#374151)}.ProgressEntryCard_statusPill--success__P6DeQ{background:#f0fdf4;background:var(--success-50,#f0fdf4);border-color:#dcfce7;border-color:var(--success-100,#dcfce7);color:#166534;color:var(--success-800,#166534)}.ProgressEntryCard_statusPill--info__xEXjn{background:#eff6ff;background:var(--info-50,#eff6ff);border-color:#dbeafe;border-color:var(--info-100,#dbeafe);color:#1e40af;color:var(--info-800,#1e40af)}.ProgressEntryCard_statusPill--warning__0p5qj{background:#fffbeb;background:var(--warning-50,#fffbeb);border-color:#fef3c7;border-color:var(--warning-100,#fef3c7);color:#92400e;color:var(--warning-800,#92400e)}.ProgressEntryCard_practiceDetails__64U5-{grid-gap:8px;grid-gap:var(--space-2,8px);border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);display:grid;gap:8px;gap:var(--space-2,8px);grid-template-columns:repeat(2,minmax(0,1fr));margin:auto 0 0;padding-top:8px;padding-top:var(--space-2,8px)}.ProgressEntryCard_practiceDetails__64U5- div{min-width:0}.ProgressEntryCard_practiceDetails__64U5- dt{color:#6b7280;color:var(--gray-500,#6b7280);font-size:12px;font-size:var(--text-xs,12px);font-weight:500;font-weight:var(--font-medium,500);margin:0 0 2px}.ProgressEntryCard_practiceDetails__64U5- dd{color:#1f2937;color:var(--gray-800,#1f2937);font-size:14px;font-size:var(--text-sm,14px);font-weight:500;font-weight:var(--font-medium,500);margin:0;overflow-wrap:anywhere}.ProgressEntryCard_ratingsSection__CyZFQ{display:flex;flex-direction:column;min-width:0}.ProgressEntryCard_ratingsSection__CyZFQ>h2{color:#374151;color:var(--gray-700,#374151);font-size:12px;font-size:var(--text-xs,12px);font-weight:600;font-weight:var(--font-semibold,600);letter-spacing:.04em;margin:0 0 16px;margin:0 0 var(--space-4,16px);text-transform:uppercase}.ProgressEntryCard_ratingsGrid__unVlX{grid-gap:8px;grid-gap:var(--space-2,8px);display:grid;gap:8px;gap:var(--space-2,8px);grid-template-columns:repeat(5,minmax(0,1fr));margin:auto 0}.ProgressEntryCard_ratingTile__Zp5lC{background:#f9fafb;background:var(--gray-50,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--gray-200,#e5e7eb);border-radius:8px;border-radius:var(--radius-md,8px);display:flex;flex-direction:column;gap:4px;justify-content:center;min-height:58px;min-width:0;padding:8px 12px;padding:var(--space-2,8px) var(--space-3,12px)}.ProgressEntryCard_ratingLabel__NvIxh{color:#374151;color:var(--gray-700,#374151);font-size:12px;font-size:var(--text-xs,12px);font-weight:500;font-weight:var(--font-medium,500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ProgressEntryCard_stars__oAD52{display:flex;font-size:15px;gap:2px;line-height:1}.ProgressEntryCard_ratingTile--needs-work__jrX0Z .ProgressEntryCard_starFilled__aXWaD{color:#f59e0b;color:var(--rating-needs-work,#f59e0b)}.ProgressEntryCard_ratingTile--good__dACje .ProgressEntryCard_starFilled__aXWaD{color:#3b82f6;color:var(--rating-good,#3b82f6)}.ProgressEntryCard_ratingTile--excellent__9WhOQ .ProgressEntryCard_starFilled__aXWaD{color:#10b981;color:var(--rating-excellent,#10b981)}.ProgressEntryCard_starEmpty__hSgBR{color:#d1d5db;color:var(--gray-300,#d1d5db)}.ProgressEntryCard_feedbackGrid__eTL5f{grid-gap:12px;grid-gap:var(--space-3,12px);display:grid;gap:12px;gap:var(--space-3,12px);grid-template-columns:repeat(2,minmax(0,1fr))}.ProgressEntryCard_feedbackPanel__g2r2C,.ProgressEntryCard_teacherNotes__kWFJq{border:1px solid;border-radius:8px;border-radius:var(--radius-md,8px);padding:8px 16px 16px;padding:var(--space-2,8px) var(--space-4,16px) var(--space-4,16px)}.ProgressEntryCard_feedbackPanel__g2r2C{min-height:94px}.ProgressEntryCard_feedbackPanel__g2r2C h3,.ProgressEntryCard_teacherNotes__kWFJq h3{font-size:14px;font-size:var(--text-sm,14px);font-weight:600;font-weight:var(--font-semibold,600);margin:0 0 8px;margin:0 0 var(--space-2,8px)}.ProgressEntryCard_feedbackPanel__g2r2C p,.ProgressEntryCard_teacherNotes__kWFJq p{color:#1f2937;color:var(--gray-800,#1f2937);font-size:14px;font-size:var(--text-sm,14px);line-height:1.625;line-height:var(--leading-relaxed,1.625);margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.ProgressEntryCard_feedbackPanel--strengths__X8stt{background:#f0fdf4;background:var(--success-50,#f0fdf4);border-color:#dcfce7;border-color:var(--success-100,#dcfce7)}.ProgressEntryCard_feedbackPanel--strengths__X8stt h3{color:#166534;color:var(--success-800,#166534)}.ProgressEntryCard_feedbackPanel--improvement__zz0NV{background:#fffbeb;background:var(--warning-50,#fffbeb);border-color:#fef3c7;border-color:var(--warning-100,#fef3c7)}.ProgressEntryCard_feedbackPanel--improvement__zz0NV h3{color:#92400e;color:var(--warning-800,#92400e)}.ProgressEntryCard_feedbackPanel--goals__RcrfZ{background:#eff6ff;background:var(--info-50,#eff6ff);border-color:#dbeafe;border-color:var(--info-100,#dbeafe)}.ProgressEntryCard_feedbackPanel--goals__RcrfZ h3{color:#1e40af;color:var(--info-800,#1e40af)}.ProgressEntryCard_feedbackPanel--nextSteps__qGGOq{background:#ecfeff;background:var(--progress-next-steps-bg,#ecfeff);border-color:#a5f3fc;border-color:var(--progress-next-steps-border,#a5f3fc)}.ProgressEntryCard_feedbackPanel--nextSteps__qGGOq h3{color:#0e7490;color:var(--progress-next-steps-text,#0e7490)}.ProgressEntryCard_teacherNotes__kWFJq{background:#f9fafb;background:var(--gray-50,#f9fafb);border-color:#e5e7eb;border-color:var(--border,#e5e7eb)}.ProgressEntryCard_teacherNotes__kWFJq h3{color:#374151;color:var(--gray-700,#374151)}.ProgressEntryCard_muted__hKu3z{color:#6b7280!important;color:var(--gray-500,#6b7280)!important;font-style:italic}@media (max-width:1000px){.ProgressEntryCard_overview__BAK-l{grid-template-columns:1fr}.ProgressEntryCard_ratingsGrid__unVlX{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:680px){.ProgressEntryCard_card__cCDS8{padding:16px;padding:var(--space-4,16px)}.ProgressEntryCard_feedbackGrid__eTL5f,.ProgressEntryCard_practiceDetails__64U5-,.ProgressEntryCard_ratingsGrid__unVlX{grid-template-columns:1fr}.ProgressEntryCard_ratingTile__Zp5lC{min-height:54px}}.ProgressPage_page__8ZePv{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:1265px;max-width:calc(var(--page-content-width, 1220px) + var(--page-content-gutter, 22.5px)*2);padding:12px 22.5px 64px;padding:var(--space-3,12px) var(--page-content-gutter,22.5px) 64px}.ProgressPage_header__H0KqM{align-items:flex-start;display:flex;gap:24px;gap:var(--space-6,24px);justify-content:space-between}.ProgressPage_headerCopy__1\+45P{min-width:240px}.ProgressPage_title__wmeny{color:#111827;color:var(--gray-900,#111827);font-family:var(--page-title-font-family);font-size:40px;font-size:var(--page-title-size,40px);font-weight:700;line-height:1.2;line-height:var(--leading-tight,1.2);margin:0;white-space:nowrap}.ProgressPage_subtitle__kADGL{color:#4b5563;color:var(--gray-600,#4b5563);font-size:14px;font-size:var(--text-sm,14px);line-height:1.5;line-height:var(--leading-normal,1.5);margin:4px 0 0;margin:var(--space-1,4px) 0 0}.ProgressPage_pageControls__np\+Ku{align-items:center;display:flex;flex-wrap:wrap;gap:12px;gap:var(--space-3,12px);justify-content:flex-end;margin-top:7px;margin-top:var(--page-header-action-offset,7px)}.ProgressPage_searchControl__S4vhd{display:block;position:relative}.ProgressPage_levelControl__CxkEx select,.ProgressPage_searchControl__S4vhd input,.ProgressPage_statusControl__gnzfC select{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border-strong,#d1d5db);border-radius:8px;border-radius:var(--radius-md,8px);color:#111827;color:var(--gray-900,#111827);font:inherit;font-size:14px;font-size:var(--text-sm,14px);height:40px;outline:none}.ProgressPage_searchControl__S4vhd input{padding:0 16px 0 40px;padding:0 var(--space-4,16px) 0 var(--space-10,40px);width:min(256px,40vw)}.ProgressPage_searchIcon__oImR0{color:#6b7280;color:var(--gray-500,#6b7280);font-size:18px;font-size:var(--text-lg,18px);left:12px;left:var(--space-3,12px);line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.ProgressPage_levelControl__CxkEx select,.ProgressPage_statusControl__gnzfC select{min-width:144px;padding:0 32px 0 12px;padding:0 var(--space-8,32px) 0 var(--space-3,12px)}.ProgressPage_levelControl__CxkEx select:focus,.ProgressPage_searchControl__S4vhd input:focus,.ProgressPage_statusControl__gnzfC select:focus{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);box-shadow:0 0 0 3px #0ea5e926;box-shadow:var(--focus-shadow-primary,0 0 0 3px #0ea5e926)}.ProgressPage_primaryButton__8aE6n,.ProgressPage_secondaryButton__bcIiG{border:1px solid #0000;border-radius:8px;border-radius:var(--radius-md,8px);cursor:pointer;font-family:inherit;font-size:14px;font-size:var(--text-sm,14px);font-weight:600;height:40px;padding:0 20px;padding:0 var(--space-5,20px);transition:background .12s ease,color .12s ease,border-color .12s ease;white-space:nowrap}.ProgressPage_primaryButton__8aE6n{background:#0ea5e9;background:var(--primary-500,#0ea5e9);border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);color:#fff}.ProgressPage_primaryButton__8aE6n:hover:not(:disabled){background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.ProgressPage_secondaryButton__bcIiG{background:#fff;background:var(--surface,#fff);border-color:#d1d5db;border-color:var(--border-strong,#d1d5db);color:#1f2937;color:var(--gray-800,#1f2937)}.ProgressPage_secondaryButton__bcIiG:hover:not(:disabled){background:#f9fafb;background:var(--gray-50,#f9fafb);border-color:#9ca3af;border-color:var(--gray-400,#9ca3af)}.ProgressPage_primaryButton__8aE6n:disabled,.ProgressPage_secondaryButton__bcIiG:disabled{cursor:not-allowed;opacity:.5}.ProgressPage_paginationBar__JKCSU{align-items:center;display:flex;gap:16px;gap:var(--space-4,16px);justify-content:space-between}.ProgressPage_studentCount__TdjoF{color:#4b5563;color:var(--gray-600,#4b5563);font-size:14px;font-size:var(--text-sm,14px);font-weight:500;font-weight:var(--font-medium,500);margin:0}.ProgressPage_paginationControls__tSLot{align-items:center;display:flex;flex-wrap:wrap;gap:12px;gap:var(--space-3,12px);justify-content:flex-end}.ProgressPage_perPageControl__nKZom{align-items:center;color:#4b5563;color:var(--gray-600,#4b5563);display:inline-flex;font-size:14px;font-size:var(--text-sm,14px);font-weight:500;font-weight:var(--font-medium,500);gap:8px;gap:var(--space-2,8px)}.ProgressPage_perPageControl__nKZom select{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border-strong,#d1d5db);border-radius:8px;border-radius:var(--radius-md,8px);color:#111827;color:var(--gray-900,#111827);cursor:pointer;font:inherit;font-size:14px;font-size:var(--text-sm,14px);height:36px;min-width:72px;outline:none;padding:0 12px;padding:0 var(--space-3,12px)}.ProgressPage_perPageControl__nKZom select:focus{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);box-shadow:0 0 0 3px #0ea5e926;box-shadow:var(--focus-shadow-primary,0 0 0 3px #0ea5e926)}.ProgressPage_pageIndicator__nLSvx{font-feature-settings:"tnum";color:#4b5563;color:var(--gray-600,#4b5563);font-size:14px;font-size:var(--text-sm,14px);font-variant-numeric:tabular-nums;font-weight:500;font-weight:var(--font-medium,500);min-width:5.5rem;padding:0 8px;padding:0 var(--space-2,8px);text-align:center}.ProgressPage_pageNavButton__b\+iiq{align-items:center;background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border-strong,#d1d5db);border-radius:8px;border-radius:var(--radius-md,8px);color:#111827;color:var(--gray-900,#111827);cursor:pointer;display:inline-flex;font:inherit;font-size:14px;font-size:var(--text-sm,14px);font-weight:600;font-weight:var(--font-semibold,600);height:36px;justify-content:center;min-width:6.5rem;padding:0 16px;padding:0 var(--space-4,16px)}.ProgressPage_pageNavButton__b\+iiq:hover:not(:disabled){background:#f9fafb;background:var(--gray-50,#f9fafb);border-color:#9ca3af;border-color:var(--gray-400,#9ca3af)}.ProgressPage_pageNavButton__b\+iiq:focus-visible{border-color:#0ea5e9;border-color:var(--primary-500,#0ea5e9);box-shadow:0 0 0 3px #0ea5e926;box-shadow:var(--focus-shadow-primary,0 0 0 3px #0ea5e926);outline:none}.ProgressPage_pageNavButton__b\+iiq:disabled{background:#f9fafb;background:var(--gray-50,#f9fafb);border-color:#e5e7eb;border-color:var(--border,#e5e7eb);color:#9ca3af;color:var(--gray-400,#9ca3af);cursor:not-allowed}.ProgressPage_error__wjur9{background:#fef2f2;background:var(--error-50,#fef2f2);border:1px solid #fee2e2;border:1px solid var(--error-100,#fee2e2);border-radius:8px;color:#991b1b;color:var(--error-800,#991b1b);font-size:14px;margin:0;padding:12px 16px}.ProgressPage_empty__mNty-,.ProgressPage_loading__4GtvW{background:#fff;background:var(--surface,#fff);border:1px dashed #d1d5db;border:1px dashed var(--border-strong,#d1d5db);border-radius:12px;color:#4b5563;color:var(--gray-600,#4b5563);margin:0;padding:48px 24px;text-align:center}.ProgressPage_empty__mNty- h2{color:#111827;color:var(--gray-900,#111827);font-size:20px;margin:0 0 8px}.ProgressPage_empty__mNty- p{color:#6b7280;color:var(--gray-500,#6b7280);font-size:14px;margin:0 0 20px}.ProgressPage_cardList__cGAkb{grid-gap:24px;grid-gap:var(--space-6,24px);display:grid;gap:24px;gap:var(--space-6,24px);grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}.ProgressPage_cardItem__Q2FtI{margin:0;min-width:0;padding:0}.ProgressPage_studentCard__8aa-m{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;border-radius:var(--radius-md,8px);box-shadow:0 1px 3px #0000001a;cursor:pointer;height:100%;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.ProgressPage_studentCard__8aa-m:focus-visible,.ProgressPage_studentCard__8aa-m:focus-within,.ProgressPage_studentCard__8aa-m:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.ProgressPage_studentCard__8aa-m:focus-visible{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.ProgressPage_cardHeader__BBxC2{align-items:center;background:#fff;background:var(--surface,#fff);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border,#e5e7eb);display:flex;gap:12px;gap:var(--space-3,12px);justify-content:space-between;padding:16px;padding:var(--space-4,16px)}.ProgressPage_cardIdentity__wvpWS{align-items:center;display:flex;gap:12px;gap:var(--space-3,12px);min-width:0}.ProgressPage_avatar__S86Ng{align-items:center;background:#f59e0b;background:var(--warning-500,#f59e0b);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;height:48px;justify-content:center;text-transform:uppercase;width:48px}.ProgressPage_avatar__S86Ng,.ProgressPage_studentName__\+pQIt{font-size:18px;font-size:var(--text-lg,18px);font-weight:700;font-weight:var(--font-bold,700)}.ProgressPage_studentName__\+pQIt{color:#111827;color:var(--gray-900,#111827);line-height:1.2;line-height:var(--leading-tight,1.2);margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ProgressPage_cardAddButton__1qram{align-items:center;background:#0ea5e9;background:var(--primary-500,#0ea5e9);border:1px solid #0ea5e9;border:1px solid var(--primary-500,#0ea5e9);border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-size:14px;font-size:var(--text-sm,14px);font-weight:600;font-weight:var(--font-semibold,600);height:40px;justify-content:center;padding:0 16px;padding:0 var(--space-4,16px);white-space:nowrap}.ProgressPage_cardAddButton__1qram:focus-visible,.ProgressPage_cardAddButton__1qram:hover{background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.ProgressPage_cardAddButton__1qram:focus-visible{outline:2px solid #0ea5e9;outline:2px solid var(--primary-500,#0ea5e9);outline-offset:2px}.ProgressPage_cardBody__IxKtp{background:#f9fafb;background:var(--surface-secondary,#f9fafb);display:flex;flex-direction:column;gap:20px;gap:var(--space-5,20px);padding:16px;padding:var(--space-4,16px)}.ProgressPage_summaryRow__bK\+y1{align-items:center;color:#111827;color:var(--gray-900,#111827);display:flex;font-size:14px;font-size:var(--text-sm,14px);gap:16px;gap:var(--space-4,16px);justify-content:space-between;min-width:0}.ProgressPage_summaryRow__bK\+y1 strong{flex-shrink:0;font-weight:700;font-weight:var(--font-bold,700)}.ProgressPage_summaryRow__bK\+y1 span{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}@media (max-width:1100px){.ProgressPage_header__H0KqM{flex-direction:column}.ProgressPage_pageControls__np\+Ku{justify-content:flex-start;width:100%}}@media (max-width:1024px){.ProgressPage_cardList__cGAkb{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.ProgressPage_levelControl__CxkEx,.ProgressPage_levelControl__CxkEx select,.ProgressPage_primaryButton__8aE6n,.ProgressPage_searchControl__S4vhd,.ProgressPage_searchControl__S4vhd input,.ProgressPage_secondaryButton__bcIiG,.ProgressPage_statusControl__gnzfC,.ProgressPage_statusControl__gnzfC select{width:100%}.ProgressPage_paginationBar__JKCSU{align-items:flex-start;flex-direction:column}.ProgressPage_paginationControls__tSLot{justify-content:flex-start}}@media (max-width:640px){.ProgressPage_cardList__cGAkb{grid-template-columns:1fr}.ProgressPage_cardHeader__BBxC2{align-items:flex-start}.ProgressPage_cardAddButton__1qram{height:36px;padding:0 12px;padding:0 var(--space-3,12px)}}.StudentProgressDetailPage_page__leqmi{display:flex;flex-direction:column;gap:24px;gap:var(--space-6,24px);margin:0 auto;max-width:1265px;max-width:calc(var(--page-content-width, 1220px) + var(--page-content-gutter, 22.5px)*2);padding:12px 22.5px 64px;padding:var(--space-3,12px) var(--page-content-gutter,22.5px) 64px}.StudentProgressDetailPage_header__BYpaC{align-items:flex-start;display:flex;gap:24px;gap:var(--space-6,24px);justify-content:space-between}.StudentProgressDetailPage_identity__Hs8Lq{align-items:center;display:flex;gap:16px;gap:var(--space-4,16px);min-width:0}.StudentProgressDetailPage_avatar__rf2Z0{align-items:center;background:#f59e0b;background:var(--warning-500,#f59e0b);border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:20px;font-size:var(--text-xl,20px);font-weight:700;font-weight:var(--font-bold,700);height:56px;justify-content:center;width:56px}.StudentProgressDetailPage_identity__Hs8Lq h1{color:#111827;color:var(--gray-900,#111827);font-family:var(--page-title-font-family);font-size:40px;font-size:var(--page-title-size,40px);font-weight:700;font-weight:var(--font-bold,700);line-height:1.2;line-height:var(--leading-tight,1.2);margin:0}.StudentProgressDetailPage_identity__Hs8Lq p{color:#4b5563;color:var(--gray-600,#4b5563);font-size:14px;font-size:var(--text-sm,14px);margin:4px 0 0;margin:var(--space-1,4px) 0 0}.StudentProgressDetailPage_actions__\+5\+50{align-items:center;display:flex;gap:12px;gap:var(--space-3,12px);margin-top:7px;margin-top:var(--page-header-action-offset,7px)}.StudentProgressDetailPage_primaryButton__ll\+fN,.StudentProgressDetailPage_secondaryButton__EDeqj{align-items:center;border-radius:8px;border-radius:var(--radius-md,8px);cursor:pointer;display:inline-flex;font:inherit;font-size:14px;font-size:var(--text-sm,14px);font-weight:600;font-weight:var(--font-semibold,600);height:40px;justify-content:center;padding:0 20px;padding:0 var(--space-5,20px);text-decoration:none;white-space:nowrap}.StudentProgressDetailPage_primaryButton__ll\+fN{background:#0ea5e9;background:var(--primary-500,#0ea5e9);border:1px solid #0ea5e9;border:1px solid var(--primary-500,#0ea5e9);color:#fff}.StudentProgressDetailPage_primaryButton__ll\+fN:hover{background:#0284c7;background:var(--primary-600,#0284c7);border-color:#0284c7;border-color:var(--primary-600,#0284c7)}.StudentProgressDetailPage_secondaryButton__EDeqj{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border-strong,#d1d5db);color:#1f2937;color:var(--gray-800,#1f2937)}.StudentProgressDetailPage_secondaryButton__EDeqj:hover{background:#f9fafb;background:var(--gray-50,#f9fafb);border-color:#9ca3af;border-color:var(--gray-400,#9ca3af)}.StudentProgressDetailPage_entriesSection__14Txf{display:flex;flex-direction:column;gap:16px;gap:var(--space-4,16px)}.StudentProgressDetailPage_entriesSection__14Txf>h2{color:#111827;color:var(--gray-900,#111827);font-size:20px;font-size:var(--text-xl,20px);font-weight:700;font-weight:var(--font-bold,700);margin:0}.StudentProgressDetailPage_entryList__IQIbh{display:flex;flex-direction:column;gap:12px;gap:var(--space-3,12px);list-style:none;margin:0;padding:0}.StudentProgressDetailPage_entryList__IQIbh>li{margin:0;padding:0}.StudentProgressDetailPage_empty__z43jL,.StudentProgressDetailPage_state__Rnk58{background:#fff;background:var(--surface,#fff);border:1px dashed #d1d5db;border:1px dashed var(--border-strong,#d1d5db);border-radius:12px;border-radius:var(--radius-lg,12px);color:#4b5563;color:var(--gray-600,#4b5563);padding:48px 24px;padding:var(--space-12,48px) var(--space-6,24px);text-align:center}.StudentProgressDetailPage_empty__z43jL h3,.StudentProgressDetailPage_state__Rnk58 h1{color:#111827;color:var(--gray-900,#111827);margin:0 0 8px;margin:0 0 var(--space-2,8px)}.StudentProgressDetailPage_empty__z43jL p,.StudentProgressDetailPage_state__Rnk58 p{margin:0 0 20px;margin:0 0 var(--space-5,20px)}.StudentProgressDetailPage_error__-7PT9{background:#fef2f2;background:var(--error-50,#fef2f2);border-color:#fee2e2;border-color:var(--error-100,#fee2e2);border-style:solid;color:#991b1b;color:var(--error-800,#991b1b)}@media (max-width:768px){.StudentProgressDetailPage_header__BYpaC{flex-direction:column}.StudentProgressDetailPage_actions__\+5\+50{margin-top:0;width:100%}.StudentProgressDetailPage_primaryButton__ll\+fN,.StudentProgressDetailPage_secondaryButton__EDeqj{flex:1 1}}@media (max-width:520px){.StudentProgressDetailPage_identity__Hs8Lq h1{font-size:32px}.StudentProgressDetailPage_actions__\+5\+50{flex-direction:column}.StudentProgressDetailPage_primaryButton__ll\+fN,.StudentProgressDetailPage_secondaryButton__EDeqj{width:100%}}.skip-links{position:relative;z-index:var(--z-skip-link)}@media (prefers-contrast:high){.skip-link:focus{border:3px solid}}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}.lazy-error-boundary{align-items:center;background-color:var(--color-background);display:flex;justify-content:center;min-height:400px;padding:2rem}.lazy-error-boundary__content{background-color:#fff;background-color:var(--color-card-background,#fff);border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:500px;padding:2rem;text-align:center}.lazy-error-boundary__icon{font-size:3rem;margin-bottom:1rem}.lazy-error-boundary__title{color:#333;color:var(--color-text-primary,#333);font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.lazy-error-boundary__message{color:#666;color:var(--color-text-secondary,#666);font-size:1rem;line-height:1.5;margin-bottom:1.5rem}.lazy-error-boundary__actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.lazy-error-boundary__button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.lazy-error-boundary__button--primary{background-color:#4a90e2;background-color:var(--color-primary,#4a90e2);color:#fff}.lazy-error-boundary__button--primary:hover{background-color:#357abd;background-color:var(--color-primary-dark,#357abd);box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.lazy-error-boundary__button--secondary{background-color:#e0e0e0;background-color:var(--color-gray-200,#e0e0e0);color:#333;color:var(--color-text-primary,#333)}.lazy-error-boundary__button--secondary:hover{background-color:#d0d0d0;background-color:var(--color-gray-300,#d0d0d0);transform:translateY(-1px)}.lazy-error-boundary__details{background-color:#f5f5f5;background-color:var(--color-gray-100,#f5f5f5);border-radius:4px;margin-top:1.5rem;padding:1rem;text-align:left}.lazy-error-boundary__details summary{color:#666;color:var(--color-text-secondary,#666);cursor:pointer;font-weight:500;margin-bottom:.5rem}.lazy-error-boundary__details summary:hover{color:#4a90e2;color:var(--color-primary,#4a90e2)}.lazy-error-boundary__stack{word-wrap:break-word;background-color:#fff;border-radius:4px;color:#d32f2f;color:var(--color-error,#d32f2f);font-family:Courier New,monospace;font-size:.875rem;overflow-x:auto;padding:1rem;white-space:pre-wrap}.App,.App main[role=main]{background:#f8fafc;background:var(--page-background,#f8fafc);min-height:100vh}.App main[role=main],.auth-loading{display:flex;flex-direction:column}.auth-loading{align-items:center;gap:1rem;gap:var(--space-4,1rem);justify-content:center;min-height:100vh}.auth-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-top:3px solid #0ea5e9;border:3px solid var(--gray-200,#e5e7eb);border-radius:50%;border-top-color:var(--primary-500,#0ea5e9);height:32px;width:32px}.auth-loading p{color:#4b5563;color:var(--gray-600,#4b5563);font-size:.875rem;font-size:var(--text-sm,.875rem);margin:0}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.auth-loading .loading-spinner{animation:none;border-right:3px solid #0ea5e9;border-right:3px solid var(--primary-500,#0ea5e9);border-top:3px solid #0ea5e9;border-top:3px solid var(--primary-500,#0ea5e9)}}
/*# sourceMappingURL=main.76b89e0f.css.map*/