:root{--font-sans:var(--font-inter),"Segoe UI",system-ui,-apple-system,sans-serif;--brand-primary:#1e3a8a;--brand-accent:#3b82f6;--bg:#f4f6fb;--bg-subtle:#eef2f9;--surface:#fff;--surface-raised:#fff;--border:#e4e9f2;--border-strong:#d0d9e8;--text:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--success-bg:#ecfdf5;--success-text:#047857;--warning-bg:#fffbeb;--warning-text:#b45309;--error-bg:#fef2f2;--error-text:#b91c1c;--info-bg:#eff6ff;--info-text:#1d4ed8;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:999px;--shadow-xs:0 1px 2px rgba(15,23,42,.04);--shadow-sm:0 2px 8px rgba(15,23,42,.05);--shadow-md:0 8px 30px rgba(15,23,42,.07);--shadow-lg:0 16px 48px rgba(15,23,42,.1);--topbar-h:4rem;--content-max:72rem;--aside-w:17rem}*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5;color:var(--text);background:var(--bg)}a{color:var(--brand-accent);text-decoration:none}a:hover{text-decoration:underline}img{display:block;max-width:100%}.skip-link{position:absolute;top:-3rem;left:1rem;z-index:1000;padding:.5rem .75rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none}.skip-link:focus-visible{top:1rem}:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}h1,h2,h3,h4{margin:0;letter-spacing:-.02em;line-height:1.25}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5625rem 1.125rem;font-family:inherit;font-size:.875rem;font-weight:600;line-height:1.25;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){filter:brightness(1.06);text-decoration:none;box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);text-decoration:none}.btn-ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text);text-decoration:none}.btn-lg{padding:.75rem 1.25rem;font-size:.9375rem;border-radius:var(--radius-md)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-block{width:100%}.field{display:grid;grid-gap:.375rem;gap:.375rem}.field>span{font-size:.8125rem;font-weight:600;color:var(--text)}.form-field,.input{width:100%;padding:.625rem .875rem;font-family:inherit;font-size:.9375rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}.form-field:focus,.input:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-accent) 18%,transparent)}.input::placeholder{color:var(--text-subtle)}.avatar{border-radius:var(--radius-full);object-fit:cover;flex-shrink:0}.avatar-sm{width:2.25rem;height:2.25rem}.avatar{width:2.75rem;height:2.75rem}.avatar-lg{width:4rem;height:4rem}.avatar-xl{width:5.5rem;height:5.5rem}.avatar-fallback{display:grid;place-items:center;background:color-mix(in srgb,var(--brand-primary) 12%,#fff);color:var(--brand-primary);font-weight:700}.app-shell{min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;height:var(--topbar-h);background:hsla(0,0%,100%,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs)}.topbar-inner{max-width:var(--content-max);margin:0 auto;height:100%;padding:0 1.5rem;gap:1.5rem}.brand,.topbar-inner{display:flex;align-items:center}.brand{gap:.625rem;color:var(--text);font-weight:700;font-size:.9375rem;flex-shrink:0}.brand,.brand:hover{text-decoration:none}.brand-logo{height:2rem;width:auto}.brand-mark{width:2rem;height:2rem;border-radius:var(--radius-sm);background:var(--brand-primary);color:#fff;display:grid;place-items:center;font-size:.875rem;font-weight:800}.brand-name{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topnav{display:flex;align-items:center;gap:.25rem;flex:1 1}.nav-link{padding:.5rem .875rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{background:var(--bg-subtle);color:var(--text);text-decoration:none}.nav-link--active{background:color-mix(in srgb,var(--brand-primary) 10%,#fff);color:var(--brand-primary);font-weight:600}.topnav-admin{margin-left:.25rem}.topbar-user{gap:.75rem;margin-left:auto;flex-shrink:0}.topbar-user,.topbar-user-info{display:flex;align-items:center}.topbar-user-info{gap:.625rem}.topbar-user-info strong{display:block;font-size:.8125rem;line-height:1.2}.topbar-user-info span{display:block;font-size:.75rem;color:var(--text-subtle);text-transform:capitalize}.main-content{max-width:var(--content-max);margin:0 auto;padding:2rem 1.5rem 3rem}.page{animation:fade-in .35s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.75rem}.page-header h1{font-size:1.75rem;font-weight:700}.page-header p{margin:.375rem 0 0;color:var(--text-muted);font-size:.9375rem;max-width:36rem}.page-footer-note{margin-top:1.25rem;color:var(--text-muted);font-size:.875rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.75rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.125rem 1.25rem;box-shadow:var(--shadow-xs)}.stat-card-accent{background:linear-gradient(135deg,color-mix(in srgb,var(--brand-primary) 8%,#fff),var(--surface));border-color:color-mix(in srgb,var(--brand-primary) 15%,var(--border))}.stat-label{display:block;font-size:.8125rem;color:var(--text-muted);margin-bottom:.25rem}.stat-value{font-size:1.75rem;font-weight:700;letter-spacing:-.03em}.stat-value-sm{font-size:1rem;font-weight:600}.stat-card-link{display:inline-block;margin-top:.5rem;font-size:.8125rem;font-weight:600;color:var(--brand-accent);text-decoration:none}.stat-card-link:hover{text-decoration:underline}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));grid-gap:1.25rem;gap:1.25rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-xs)}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.875rem;border-bottom:1px solid var(--border)}.panel-header h2{font-size:1rem;font-weight:600}.panel-link{font-size:.8125rem;font-weight:600;color:var(--brand-accent);text-decoration:none}.panel-link:hover{text-decoration:underline}.item-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.5rem;gap:.5rem}.item-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid transparent;transition:border-color .15s}.item-row:hover{border-color:var(--border)}.item-row-main{display:grid;grid-gap:.125rem;gap:.125rem}.item-row-main strong{font-size:.875rem}.item-row-main span{font-size:.8125rem;color:var(--text-muted)}.compact-teacher-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.375rem;gap:.375rem}.compact-teacher-row{display:flex;align-items:center;gap:.75rem;padding:.625rem;border-radius:var(--radius-md);color:inherit;text-decoration:none;transition:background .15s}.compact-teacher-row:hover{background:var(--bg-subtle);text-decoration:none}.compact-teacher-row strong{display:block;font-size:.875rem}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs)}.admin-table,.data-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th,.data-table td,.data-table th{padding:.875rem 1.125rem;text-align:left;border-bottom:1px solid var(--border)}.admin-table th,.data-table th{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-subtle)}.admin-table tbody tr:hover,.data-table tbody tr:hover{background:color-mix(in srgb,var(--bg-subtle) 60%,#fff)}.admin-table tbody tr:last-child td,.data-table tbody tr:last-child td{border-bottom:none}.teacher-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));grid-gap:1rem;gap:1rem}.teacher-card{display:grid;grid-gap:.875rem;gap:.875rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:inherit;text-decoration:none;box-shadow:var(--shadow-xs);transition:border-color .2s,box-shadow .2s,transform .2s;height:100%}.teacher-card:hover{border-color:color-mix(in srgb,var(--brand-accent) 40%,var(--border));box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}.teacher-card-top{display:flex;gap:.875rem;align-items:center}.teacher-card-title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.teacher-card h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:var(--radius-full);font-size:.6875rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.badge-featured{background:color-mix(in srgb,var(--brand-accent) 14%,#fff);color:var(--brand-primary)}.catalog-filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1.5rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.catalog-filter-search{flex:1 1 14rem;min-width:12rem}.catalog-filter-select{flex:0 1 12rem;min-width:10rem}.catalog-filter-checkbox{display:inline-flex;align-items:center;gap:.5rem;min-height:2.625rem;padding:0 .25rem;color:var(--text-muted);font-size:.875rem;font-weight:500}.catalog-pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.75rem;flex-wrap:wrap}.catalog-pagination-pages{display:flex;align-items:center;gap:.375rem}.catalog-page-link{display:inline-grid;place-items:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-muted);text-decoration:none;font-size:.875rem;font-weight:600}.catalog-page-link:hover{background:var(--bg-subtle);color:var(--text);text-decoration:none}.catalog-page-link--active{background:color-mix(in srgb,var(--brand-primary) 10%,#fff);border-color:color-mix(in srgb,var(--brand-primary) 25%,var(--border));color:var(--brand-primary)}.teacher-card-bio{font-size:.875rem;color:var(--text-muted);line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.teacher-card-cta{font-size:.8125rem;font-weight:600;color:var(--brand-accent);margin-top:auto}.back-link{display:inline-flex;align-items:center;gap:.25rem;margin-bottom:1.25rem;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none}.back-link:hover{color:var(--brand-accent)}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-sm)}.profile-hero{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.profile-hero h1{font-size:1.5rem}.profile-meta{display:flex;align-items:center;gap:.625rem;margin-top:.375rem;flex-wrap:wrap}.profile-bio{line-height:1.65;color:var(--text-muted);margin:0 0 1.5rem}.profile-section{margin-bottom:1.25rem}.profile-section h2{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.625rem}.profile-rate{font-size:.9375rem;font-weight:600;color:var(--text);margin:0 0 1.25rem}.notice{padding:1rem 1.125rem;background:var(--info-bg);border:1px solid color-mix(in srgb,var(--brand-accent) 20%,transparent);border-radius:var(--radius-md);font-size:.875rem;color:var(--info-text);line-height:1.5}.tag-list{display:flex;flex-wrap:wrap;gap:.375rem}.tag{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-muted)}.tag-success{background:var(--success-bg);border-color:transparent;color:var(--success-text)}.star-rating{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:600;color:#b45309}.star-rating svg{color:#f59e0b}.star-rating-count{font-weight:400;color:var(--text-subtle)}.status-badge{padding:.25rem .625rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.format-badge,.status-badge{display:inline-flex;align-items:center;font-size:.6875rem;border-radius:var(--radius-full);white-space:nowrap}.format-badge{margin-top:.25rem;padding:.125rem .5rem;font-weight:600}.format-badge--group{background:#eef2ff;color:#4338ca}.format-badge--fixed{background:var(--bg-subtle);color:var(--text-muted)}.table-lesson-cell{display:flex;flex-direction:column;gap:.25rem}.group-card-list{display:grid;grid-gap:.75rem;gap:.75rem;list-style:none;padding:0;margin:0}.group-card{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.125rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.group-card:hover{border-color:#c7d2fe;box-shadow:var(--shadow-sm)}.group-card-main{display:flex;flex-direction:column;gap:.25rem}.group-card-meta,.group-card-sessions{font-size:.875rem;color:var(--text-muted)}.group-card-schedule{margin:.25rem 0 0;padding:0;list-style:none;font-size:.8125rem;color:var(--text-muted)}.group-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.group-card-list--compact .group-card--compact{padding:.875rem 1rem}.group-detail-grid{display:grid;grid-gap:1rem;gap:1rem}@media (min-width:768px){.group-detail-grid{grid-template-columns:1fr 1fr}}.group-schedule-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:.75rem;gap:.75rem}.group-schedule-list li{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.group-detail-meta{margin-top:1rem;font-size:.875rem;color:var(--text-muted)}.booking-detail-group-link{margin:.25rem 0 0;font-size:.875rem}.student-calendar-event--group{background:#eef2ff}.status-pending{background:var(--warning-bg);color:var(--warning-text)}.status-confirmed{background:var(--info-bg);color:var(--info-text)}.status-completed{background:var(--success-bg);color:var(--success-text)}.status-cancelled{background:var(--error-bg);color:var(--error-text)}.status-default{background:var(--bg-subtle);color:var(--text-muted)}.empty-state{text-align:center;padding:2.5rem 1.5rem}.empty-state-icon{width:3.5rem;height:3.5rem;margin:0 auto 1rem;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-subtle)}.empty-state h3{font-size:1rem;margin-bottom:.375rem}.empty-state p{color:var(--text-muted);font-size:.875rem;max-width:24rem;margin:0 auto 1.25rem;line-height:1.55}.alert{padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:1rem;line-height:1.45}.alert-error{background:var(--error-bg);border:1px solid #fecaca;color:var(--error-text)}.alert-success{border:1px solid #a7f3d0}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand-panel{display:flex;align-items:center;justify-content:center;padding:3rem;background:radial-gradient(ellipse 80% 60% at 20% 10%,color-mix(in srgb,var(--brand-accent) 35%,transparent),transparent),linear-gradient(155deg,var(--brand-primary) 0,color-mix(in srgb,var(--brand-primary) 70%,#000) 100%);color:#fff}.auth-brand-content{max-width:22rem}.auth-brand-link{display:inline-block;color:inherit;text-decoration:none}.auth-brand-link:hover{opacity:.95}.auth-brand-content h1{font-size:2rem;margin:1rem 0 .75rem}.auth-brand-content p{margin:0;opacity:.88;line-height:1.6;font-size:1rem}.auth-brand-logo{height:3rem;width:auto}.auth-brand-mark{width:3.5rem;height:3.5rem;border-radius:var(--radius-md);background:hsla(0,0%,100%,.15);display:grid;place-items:center;font-size:1.5rem;font-weight:800}.auth-main-panel{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg)}.auth-main-stack{width:100%;max-width:24rem;display:grid;grid-gap:1.25rem;gap:1.25rem}.auth-login-slogan{margin:0;text-align:center;font-size:.875rem;color:var(--text-muted);line-height:1.55}.auth-main-panel-solo{grid-column:1/-1}.auth-layout-compact{grid-template-columns:1fr}.auth-card{width:100%;max-width:24rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md);display:grid;grid-gap:1.125rem;gap:1.125rem}.auth-card-centered{text-align:center}.auth-card-head h1{font-size:1.5rem;margin-bottom:.25rem}.auth-card-head p,.auth-lead{margin:0;color:var(--text-muted);font-size:.9375rem}.auth-card h2{font-size:1.375rem}.auth-footer{text-align:center;margin:0;font-size:.875rem}.auth-footer a{color:var(--brand-accent);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-footer-sep{color:var(--text-subtle)}.admin-layout{display:grid;grid-template-columns:var(--aside-w) 1fr;min-height:100vh}.admin-aside{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem 1rem;background:var(--brand-primary);color:#fff;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.admin-aside-brand h1{font-size:1.0625rem;font-weight:700;line-height:1.35;margin-top:.25rem}.admin-aside-eyebrow{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;opacity:.65}.admin-aside-nav{display:flex;flex-direction:column;gap:.125rem;flex:1 1}.admin-nav-link.nav-link{color:hsla(0,0%,100%,.78);font-size:.875rem;border-radius:var(--radius-sm)}.admin-nav-link.nav-link:hover{background:hsla(0,0%,100%,.1);color:#fff}.admin-nav-link.nav-link--active{background:hsla(0,0%,100%,.16);color:#fff;font-weight:600}.admin-aside-footer{display:grid;grid-gap:.75rem;gap:.75rem;padding-top:1rem;border-top:1px solid hsla(0,0%,100%,.12);font-size:.8125rem}.admin-aside-user{display:flex;align-items:center;gap:.625rem}.admin-aside-user strong{display:block;font-size:.8125rem}.admin-aside-user span{display:block;opacity:.7;text-transform:capitalize;font-size:.75rem}.admin-aside-portal-link{color:hsla(0,0%,100%,.8);font-size:.8125rem;text-decoration:none}.admin-aside-portal-link:hover{color:#fff}.admin-body{background:var(--bg);min-height:100vh}.admin-page,.portal-page{padding:2rem;max-width:var(--content-max)}.admin-page-header,.portal-page-header{margin-bottom:1.75rem}.admin-page-header h1,.portal-page-header h1{font-size:1.75rem}.admin-muted,.portal-muted{color:var(--text-muted);margin:.25rem 0 0}.admin-stats,.portal-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.75rem}.admin-stat-card,.portal-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.125rem;box-shadow:var(--shadow-xs)}.admin-stat-label,.portal-stat-label{font-size:.8125rem;color:var(--text-muted)}.admin-form{display:grid;grid-gap:1rem;gap:1rem;max-width:36rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-xs)}.admin-form label{display:grid;grid-gap:.375rem;gap:.375rem;font-size:.875rem;font-weight:500}.admin-form .form-hint{font-size:.75rem;font-weight:400;color:var(--text-subtle);line-height:1.4}.admin-form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.admin-error{color:var(--error-text);margin:0;font-size:.875rem}.admin-success{color:var(--success-text);margin:0;font-size:.875rem}.teacher-pool-search{display:grid;grid-gap:1rem;gap:1rem}.teacher-pool-search-form{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));align-items:end}.teacher-pool-search-hint{margin:0}.teacher-pool-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.teacher-pool-badge--firm_slot{background:#ecfdf5;color:#047857}.teacher-pool-badge--standby_slot{background:var(--info-bg);color:var(--info-text)}.teacher-pool-badge--open_pool{background:#ecfeff;color:#0e7490}.teacher-pool-badge--busy{background:#f1f5f9;color:#475569}.teacher-pool-status{font-size:.875rem;font-weight:600}.teacher-pool-status--available{color:var(--success-text)}.teacher-pool-status--busy{color:var(--text-muted)}.card-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:1rem;gap:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-xs)}.page-center{min-height:100vh;display:grid;place-items:center;padding:2rem}.landing{--landing-max:76rem;background:var(--bg);color:var(--text)}.landing-container{width:100%;max-width:var(--landing-max);margin:0 auto;padding:0 1.5rem}.landing-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.landing-header-inner{display:flex;align-items:center;gap:1.5rem;height:4.25rem}.landing-nav{display:flex;gap:.25rem;flex:1 1}.landing-nav a{padding:.5rem .75rem;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;border-radius:var(--radius-sm);transition:color .15s,background .15s}.landing-nav a:hover{color:var(--text);background:var(--bg-subtle);text-decoration:none}.landing-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.landing-hero{position:relative;overflow:hidden;padding:4.5rem 0 5rem;background:radial-gradient(ellipse 70% 55% at 85% 15%,color-mix(in srgb,var(--brand-accent) 22%,transparent),transparent 55%),radial-gradient(ellipse 50% 45% at 10% 80%,color-mix(in srgb,var(--brand-primary) 12%,transparent),transparent 50%),linear-gradient(180deg,var(--surface) 0,var(--bg) 100%);border-bottom:1px solid var(--border)}.landing-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:3rem;gap:3rem;align-items:center}.landing-eyebrow{display:inline-block;font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-accent);margin-bottom:.875rem}.landing-hero h1{font-size:clamp(2.25rem,5vw,3.5rem);font-weight:800;line-height:1.08;letter-spacing:-.035em;margin-bottom:1.125rem}.landing-hero h1 em{font-style:normal;color:var(--brand-primary)}.landing-hero-copy>p{font-size:1.0625rem;line-height:1.65;color:var(--text-muted);max-width:34rem;margin:0 0 1.75rem}.landing-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.landing-trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:1.25rem 2rem;font-size:.875rem;color:var(--text-muted)}.landing-trust strong{display:block;font-size:1.125rem;color:var(--text);letter-spacing:-.02em}.landing-hero-visual{position:relative;min-height:22rem;display:grid;place-items:center}.landing-hero-orb{position:absolute;width:18rem;height:18rem;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--brand-accent) 25%,transparent),transparent 70%);filter:blur(2px)}.landing-hero-card{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.125rem 1.25rem;box-shadow:var(--shadow-md);max-width:14rem}.landing-hero-card-a{top:12%;right:8%;transform:rotate(2deg)}.landing-hero-card-b{bottom:10%;left:4%;transform:rotate(-2deg)}.landing-hero-card-label{display:block;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-accent);margin-bottom:.375rem}.landing-hero-card strong{display:block;font-size:.9375rem;margin-bottom:.25rem}.landing-hero-card p{margin:0;font-size:.8125rem;color:var(--text-muted);line-height:1.45}.landing-section{padding:4.5rem 0}.landing-section-label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brand-accent);margin-bottom:.625rem}.landing-section-head{margin-bottom:2.5rem;max-width:36rem}.landing-section-head h2{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700;letter-spacing:-.03em}.landing-section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;max-width:none}.landing-section-sub{margin:.5rem 0 0;color:var(--text-muted);font-size:1rem}.landing-about{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.landing-about-grid{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:3rem;gap:3rem;align-items:start}.landing-about-body p{font-size:1.0625rem;line-height:1.7;color:var(--text-muted);margin:0 0 1rem}.landing-external-link{font-weight:600;font-size:.9375rem;text-decoration:none}.landing-external-link:hover{text-decoration:underline}.landing-features{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.25rem;gap:1.25rem}.landing-feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-xs);transition:box-shadow .2s,transform .2s}.landing-feature:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.landing-feature-icon{width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:color-mix(in srgb,var(--brand-primary) 10%,#fff);color:var(--brand-primary);display:grid;place-items:center;margin-bottom:1rem}.landing-feature h3{font-size:1.0625rem;margin-bottom:.5rem}.landing-feature p{margin:0;font-size:.9375rem;color:var(--text-muted);line-height:1.55}.landing-teachers-section{background:var(--bg-subtle)}.landing-teachers-empty{padding:2.5rem;text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-xl);color:var(--text-muted)}.landing-teacher-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));grid-gap:1.125rem;gap:1.125rem}.landing-teacher-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.25rem;height:100%;box-shadow:var(--shadow-xs);transition:box-shadow .2s,border-color .2s}.landing-teacher-card:hover{border-color:color-mix(in srgb,var(--brand-accent) 35%,var(--border));box-shadow:var(--shadow-sm)}.landing-teacher-card-top{display:flex;gap:.875rem;align-items:center;margin-bottom:.875rem}.landing-teacher-card h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.landing-teacher-bio{font-size:.875rem;color:var(--text-muted);line-height:1.55;margin:0 0 .875rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.landing-cta{padding:4.5rem 0;background:linear-gradient(135deg,var(--brand-primary) 0,color-mix(in srgb,var(--brand-primary) 75%,#000) 100%);color:#fff}.landing-cta-inner{text-align:center;max-width:36rem}.landing-cta h2{font-size:clamp(1.75rem,3vw,2.25rem);margin-bottom:.75rem}.landing-cta p{margin:0 0 1.5rem;opacity:.88;line-height:1.6;font-size:1.0625rem}.landing-cta .btn-primary{background:#fff;color:var(--brand-primary)}.landing-cta .btn-primary:hover{filter:brightness(.97)}.landing-cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.landing-footer{padding:2.5rem 0;background:var(--surface);border-top:1px solid var(--border);font-size:.875rem}.landing-footer-inner{display:grid;grid-gap:1.25rem;gap:1.25rem}.landing-footer strong{font-size:1rem;display:block;margin-bottom:.25rem}.landing-footer p{margin:.125rem 0;color:var(--text-muted)}.landing-footer-links{display:flex;gap:1.25rem;flex-wrap:wrap}.landing-footer-links a{color:var(--text-muted);text-decoration:none;font-weight:500}.landing-footer-links a:hover{color:var(--brand-accent)}.landing-footer-copy{margin:.5rem 0 0;padding-top:1.25rem;border-top:1px solid var(--border);color:var(--text-subtle);font-size:.8125rem}.status-page-body{margin:0;background:var(--bg)}.status-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem}.status-card{width:min(100%,28rem);padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center}.status-card h1{margin:1rem 0 .5rem;font-size:1.375rem}.status-card p{margin:0 0 .75rem;color:var(--text-muted)}.status-muted{font-size:.875rem;color:var(--text-subtle)!important}.status-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}.status-icon{width:3.5rem;height:3.5rem;margin:0 auto;border-radius:var(--radius-full);display:grid;place-items:center;background:var(--bg-subtle);color:var(--text-muted)}.status-icon-warning{background:var(--warning-bg);color:var(--warning-text)}.status-icon-error{background:var(--error-bg);color:var(--error-text)}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-subtle) 0,#e8edf5 50%,var(--bg-subtle) 100%);background-size:200% 100%;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-title{height:1.75rem;width:14rem;max-width:70%}.skeleton-title-sm{height:1.125rem;width:8rem}.skeleton-text{height:.875rem;width:20rem;max-width:90%;margin-top:.5rem}.skeleton-label{height:.75rem;width:5rem}.skeleton-value{height:2rem;width:3rem;margin-top:.5rem}.skeleton-link{height:.875rem;width:4rem}.skeleton-row{height:3rem;width:100%}.skeleton-avatar{width:3rem;height:3rem;border-radius:var(--radius-full)}.skeleton-list{list-style:none;margin:0;padding:0}.skeleton-list,.skeleton-table{display:grid;grid-gap:.75rem;gap:.75rem}.skeleton-table{padding:1rem}.page-header-skeleton{margin-bottom:1.75rem}.teacher-card-skeleton{padding:1.25rem;display:grid;grid-gap:.75rem;gap:.75rem}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.quick-action-card{display:flex;align-items:center;gap:.875rem;padding:1rem 1.125rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);text-decoration:none;transition:border-color .15s,box-shadow .15s}.quick-action-card:hover{border-color:color-mix(in srgb,var(--brand-accent) 35%,var(--border));box-shadow:var(--shadow-sm);text-decoration:none}.quick-action-card strong{display:block;font-size:.9375rem}.quick-action-card small{display:block;color:var(--text-muted);font-size:.8125rem}.quick-action-icon{width:2.5rem;height:2.5rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--brand-primary) 10%,#fff);color:var(--brand-primary);display:grid;place-items:center;flex-shrink:0}.dashboard-onboarding{display:grid;grid-gap:.25rem;gap:.25rem;margin-bottom:1.25rem}.dashboard-onboarding strong{display:block}.dashboard-advisors{margin-bottom:1.5rem}.dashboard-advisors-grid{display:grid;grid-gap:1rem;gap:1rem;padding:1rem 1.25rem 1.25rem}@media (min-width:768px){.dashboard-advisors-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.advisor-card{border:1px solid var(--border);border-radius:1rem;padding:1rem;background:var(--surface-elevated,#fff)}.advisor-card-head{display:flex;gap:.75rem;align-items:center}.advisor-avatar{width:3rem;height:3rem;border-radius:9999px;object-fit:cover}.advisor-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.advisor-name{font-size:1rem;font-weight:700}.advisor-bio,.advisor-title{margin-top:.5rem;font-size:.875rem;color:var(--muted)}.advisor-contacts{margin-top:.75rem}.advisor-contacts-label{font-size:.75rem;font-weight:600;margin-bottom:.25rem}.advisor-contacts ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem}.advisor-contacts a{color:var(--primary);text-decoration:none;font-size:.875rem}.advisor-contacts a:hover{text-decoration:underline}.alert-info{background:var(--info-bg);color:var(--info-text);border:1px solid color-mix(in srgb,var(--info-text) 15%,transparent)}.alert-warning{background:#fffbeb;color:#92400e;border:1px solid #fcd34d}.action-center-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.action-center-banner>div{display:grid;grid-gap:.2rem;gap:.2rem}.action-center-banner strong{display:block}.action-center-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;color:var(--text-muted);text-decoration:none}.action-center-badge:hover{background:var(--surface-muted);color:var(--text)}.action-center-badge-count{position:absolute;top:-.15rem;right:-.15rem;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:#ef4444;color:#fff;font-size:.625rem;font-weight:700;line-height:1.1rem;text-align:center}.action-center-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.75rem;gap:.75rem}.action-center-item{display:grid;grid-gap:.35rem;gap:.35rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.action-center-item:hover{border-color:color-mix(in srgb,var(--brand-primary) 35%,var(--border));box-shadow:var(--shadow-sm)}.action-center-item p{margin:0;color:var(--text-muted);font-size:.9375rem}.action-center-type{display:inline-flex;align-self:start;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.action-center-type-lesson_proposal{background:#fef3c7;color:#92400e}.action-center-type-upcoming_lesson{background:#dbeafe;color:#1d4ed8}.action-center-type-lesson_review{background:#ede9fe;color:#5b21b6}.action-center-type-confirmation_needed{background:#fef3c7;color:#92400e}.action-center-type-starting_soon{background:#dbeafe;color:#1d4ed8}.action-center-type-meeting_link_missing{background:#fee2e2;color:#b91c1c}.alert-success{background:var(--success-bg);color:var(--success-text);border:1px solid color-mix(in srgb,var(--success-text) 15%,transparent)}.profile-form{display:grid;grid-gap:1.25rem;gap:1.25rem;max-width:40rem}.profile-hero{display:flex;align-items:center;gap:1.25rem}.profile-hero-meta h2{font-size:1.25rem;margin-bottom:.25rem}.profile-hero-meta p{margin:0 0 .75rem;color:var(--text-muted)}.profile-avatar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.profile-section{display:grid;grid-gap:1rem;gap:1rem}.profile-section h3{font-size:1rem}.profile-section-note{margin:-.25rem 0 0;color:var(--text-muted);font-size:.875rem}.profile-readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.field-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.profile-form-actions{display:flex;justify-content:flex-start}.topbar-user-link{color:inherit;text-decoration:none}.topbar-user-link:hover{text-decoration:none;opacity:.9}.topbar-user-menu{position:relative}.topbar-user-menu-trigger{display:flex;align-items:center;gap:.625rem;padding:.25rem .5rem .25rem .25rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:background .15s ease,border-color .15s ease}.topbar-user-menu-trigger:hover,.topbar-user-menu.is-open .topbar-user-menu-trigger{background:var(--surface-muted);border-color:var(--border)}.topbar-user-menu-labels strong{display:block;font-size:.8125rem;line-height:1.2}.topbar-user-menu-labels span{display:block;font-size:.75rem;color:var(--text-subtle);text-transform:capitalize}.topbar-user-menu-chevron{width:.45rem;height:.45rem;margin-left:.125rem;border-right:1.5px solid var(--text-subtle);border-bottom:1.5px solid var(--text-subtle);transform:rotate(45deg) translateY(-1px);transition:transform .15s ease}.topbar-user-menu.is-open .topbar-user-menu-chevron{transform:rotate(-135deg) translateY(1px)}.topbar-user-menu-panel{position:absolute;top:calc(100% + .5rem);right:0;z-index:40;min-width:14rem;padding:.375rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease,visibility .15s ease}.topbar-user-menu.is-open .topbar-user-menu-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.topbar-user-menu-header{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.topbar-user-menu-header strong{display:block;font-size:.8125rem}.topbar-user-menu-header span{display:block;font-size:.75rem;color:var(--text-subtle);text-transform:capitalize}.topbar-user-menu-list{list-style:none;margin:0;padding:0}.topbar-user-menu-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.5rem .75rem;border:none;border-radius:var(--radius-md);background:transparent;color:inherit;font:inherit;font-size:.875rem;text-decoration:none;cursor:pointer;text-align:left}.topbar-user-menu-item:focus-visible,.topbar-user-menu-item:hover{background:var(--surface-muted);text-decoration:none}.topbar-user-menu-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:.6875rem;font-weight:600}.topbar-user-menu-footer{margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--border)}.topbar-user-menu-signout{color:var(--danger,#b42318)}.teacher-detail-card{display:grid;grid-gap:1.5rem;gap:1.5rem}.teacher-detail-hero{display:grid;grid-template-columns:auto 1fr;grid-gap:1.5rem;gap:1.5rem;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.teacher-detail-hero-copy{display:grid;grid-gap:.75rem;gap:.75rem;align-content:start}.teacher-detail-hero h1{font-size:1.75rem}.teacher-detail-rate{margin:0;color:var(--text-muted);font-weight:600}.teacher-detail-actions{display:grid;grid-gap:.5rem;gap:.5rem;margin-top:.25rem}.teacher-detail-actions-note{margin:0;color:var(--text-subtle);font-size:.875rem}.teacher-detail-section{padding:1.25rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.teacher-detail-section h2{font-size:1rem;margin-bottom:.875rem}.package-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.75rem;gap:.75rem}.package-card{padding:1rem 1.125rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle)}.package-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.package-price{font-weight:700;color:var(--brand-primary)}.package-description,.package-meta{margin:.375rem 0 0;color:var(--text-muted);font-size:.875rem}.slot-picker{display:grid;grid-gap:1.25rem;gap:1.25rem}.slot-picker-toolbar{display:grid;grid-gap:1rem;gap:1rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.slot-picker-field{max-width:24rem}.slot-picker-week-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.slot-picker-week-label{font-weight:600;color:var(--text)}.slot-picker-timezone{margin:0;color:var(--text-subtle);font-size:.875rem}.slot-picker-loading{padding:2rem 1rem;text-align:center;color:var(--text-muted)}.slot-picker-days{display:grid;grid-gap:1rem;gap:1rem}.slot-picker-day{padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.slot-picker-day h3{font-size:.9375rem;margin-bottom:.75rem}.slot-picker-slot-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.slot-picker-slot{padding:.5rem .875rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.slot-picker-slot:hover{border-color:color-mix(in srgb,var(--brand-accent) 35%,var(--border))}.slot-picker-slot--active{background:color-mix(in srgb,var(--brand-primary) 10%,#fff);border-color:var(--brand-primary);color:var(--brand-primary)}.slot-picker-selection{padding:1rem 1.25rem;background:var(--info-bg);border:1px solid color-mix(in srgb,var(--info-text) 15%,transparent);border-radius:var(--radius-md);color:var(--info-text)}.slot-picker-selection-note{margin:.375rem 0 0;font-size:.875rem}.slot-picker-selection-meta{margin:.35rem 0 0;font-size:.875rem;opacity:.9}.slot-picker-confirm-field{margin-top:1rem;max-width:280px}.slot-picker-selection .btn{margin-top:1rem}.item-row-link,.table-row-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;color:inherit;text-decoration:none}.table-row-link{display:inline}.btn-danger{background:#dc2626;color:#fff;border:1px solid #dc2626}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;text-decoration:none}.booking-detail-card{display:grid;grid-gap:1.25rem;gap:1.25rem;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated)}.booking-detail-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.booking-detail-teacher{display:flex;align-items:center;gap:.875rem}.booking-detail-teacher strong{display:block;margin-bottom:.35rem}.booking-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:.875rem;gap:.875rem;margin:0}.booking-detail-meta dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.booking-detail-meta dd{margin:.2rem 0 0;font-weight:600}.booking-detail-section h2{font-size:.95rem;margin:0 0 .5rem}.booking-materials-list{margin:0;padding-left:1.1rem}.booking-actions-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.booking-meeting-link-form{display:grid;grid-gap:.75rem;gap:.75rem;margin-bottom:1rem}.booking-actions-hint{margin:.75rem 0 0;color:var(--muted);font-size:.9rem}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1rem;background:rgba(15,23,42,.45)}.modal-card{width:min(100%,28rem);padding:1.25rem;border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.modal-card h2{margin:0 0 .5rem;font-size:1.1rem}.modal-copy,.modal-hint{margin:0 0 1rem;color:var(--text-muted);font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.student-calendar{display:grid;grid-gap:1rem;gap:1rem}.student-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.student-calendar-title{text-align:center}.student-calendar-title strong{display:block;font-size:1.05rem}.student-calendar-title span{display:block;margin-top:.2rem;font-size:.85rem;color:var(--text-muted)}.student-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.student-calendar-weekday{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 .25rem}.student-calendar-day{min-height:7rem;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.student-calendar-day--muted{opacity:.55}.student-calendar-day-label{font-size:.8rem;font-weight:600;margin-bottom:.35rem}.student-calendar-events{list-style:none;margin:0;padding:0;display:grid;grid-gap:.35rem;gap:.35rem}.student-calendar-event{display:grid;grid-gap:.1rem;gap:.1rem;padding:.35rem .45rem;border-left:3px solid var(--brand-primary);border-radius:.35rem;background:var(--bg-subtle);color:inherit;text-decoration:none;font-size:.75rem}.student-calendar-event:hover{background:color-mix(in srgb,var(--brand-primary) 8%,var(--bg-subtle))}.student-calendar-event-time{font-weight:600}.student-calendar-event-title{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-calendar-loading{font-size:.9rem;color:var(--text-muted)}.teacher-calendar{display:grid;grid-gap:1rem;gap:1rem}.teacher-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.teacher-calendar-title{display:grid;grid-gap:.15rem;gap:.15rem;text-align:center;flex:1 1}.teacher-calendar-title strong{font-size:1.05rem}.teacher-calendar-title span{font-size:.85rem;color:var(--text-muted)}.teacher-calendar-toolbar-actions{display:flex;gap:.5rem}.teacher-calendar-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:var(--text-muted)}.legend-dot{display:inline-block;width:.65rem;height:.65rem;border-radius:999px;margin-right:.35rem;vertical-align:middle}.legend-dot--pending{background:#f59e0b}.legend-dot--confirmed{background:#10b981}.legend-dot--group{background:#6366f1}.teacher-calendar-shell{display:grid;grid-template-columns:3.5rem 1fr;grid-gap:.75rem;gap:.75rem;overflow-x:auto}.teacher-calendar-time-axis{display:grid;grid-template-rows:auto repeat(15,3rem)}.teacher-calendar-time-axis-spacer{height:3.25rem}.teacher-calendar-hour-label{font-size:.72rem;color:var(--text-muted);padding-top:.15rem}.teacher-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(7.5rem,1fr));grid-gap:.5rem;gap:.5rem;min-width:52rem}.teacher-calendar-day-column{display:grid;grid-template-rows:auto 1fr;min-height:28rem}.teacher-calendar-day-header{display:flex;align-items:baseline;justify-content:space-between;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--surface);font-size:.82rem}.teacher-calendar-day-header strong{font-size:1rem}.teacher-calendar-day-body{position:relative;border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius-md) var(--radius-md);background:color-mix(in srgb,var(--surface) 88%,var(--bg));min-height:45rem}.teacher-calendar-hour-line{height:3rem;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.teacher-calendar-event{position:absolute;left:.35rem;right:.35rem;display:grid;grid-gap:.1rem;gap:.1rem;padding:.35rem .45rem;border-radius:var(--radius-sm);border-left:3px solid var(--brand-accent);background:color-mix(in srgb,var(--surface) 92%,#fff);box-shadow:var(--shadow-sm);overflow:hidden;text-decoration:none;color:inherit;z-index:1}.teacher-calendar-event:hover{box-shadow:var(--shadow-md)}.teacher-calendar-event--pending{background:color-mix(in srgb,#f59e0b 12%,var(--surface))}.teacher-calendar-event--confirmed{background:color-mix(in srgb,#10b981 10%,var(--surface))}.teacher-calendar-event--group{background:color-mix(in srgb,#6366f1 10%,var(--surface))}.teacher-calendar-event-time{font-size:.72rem;color:var(--text-muted)}.teacher-calendar-event-title{font-size:.78rem;font-weight:600;line-height:1.25}.teacher-calendar-loading{font-size:.9rem;color:var(--text-muted)}.teacher-calendar-day-column--today .teacher-calendar-day-header{border-color:var(--brand-accent);background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface))}.lesson-filter-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.lesson-filter-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:.45rem .9rem;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none}.lesson-filter-tab:hover{color:var(--text);border-color:color-mix(in srgb,var(--brand-accent) 35%,var(--border))}.lesson-filter-tab--active{color:var(--brand-primary);border-color:color-mix(in srgb,var(--brand-accent) 45%,var(--border));background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface))}.table-lesson-subtext{display:block;color:var(--text-muted);font-size:.8125rem}.teacher-lesson-row-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.teacher-lesson-row-actions-error{flex:1 1 100%;color:var(--danger);font-size:.8125rem}.teacher-lesson-context{display:grid;grid-gap:1.25rem;gap:1.25rem;margin-bottom:1.25rem}.teacher-lesson-context-main{display:flex;gap:1rem;align-items:center}.teacher-lesson-context-main h2{margin:0 0 .25rem;font-size:1.25rem}.teacher-lesson-context-meta{margin:0 0 .5rem;color:var(--text-muted);font-size:.9rem}.teacher-lesson-context-badges{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.teacher-lesson-context-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));grid-gap:.75rem 1rem;gap:.75rem 1rem;margin:0}.teacher-lesson-context-facts dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.teacher-lesson-context-facts dd{margin:.15rem 0 0;font-weight:600}.teacher-lesson-timeline{margin-bottom:1.25rem}.teacher-lesson-timeline h2{font-size:1rem;margin-bottom:.75rem}.teacher-lesson-timeline-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.5rem;gap:.5rem}.teacher-lesson-timeline-step{position:relative;padding:.65rem .85rem .65rem 1.5rem;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);background:var(--surface)}.teacher-lesson-timeline-step:before{content:"";position:absolute;left:.65rem;top:50%;width:.5rem;height:.5rem;border-radius:50%;transform:translateY(-50%);background:var(--border)}.teacher-lesson-timeline-step--complete{color:var(--text)}.teacher-lesson-timeline-step--complete:before{background:var(--success-text)}.teacher-lesson-timeline-step--active{border-color:color-mix(in srgb,var(--brand-accent) 40%,var(--border));background:color-mix(in srgb,var(--brand-accent) 8%,var(--surface));color:var(--text);font-weight:600}.teacher-lesson-timeline-step--active:before{background:var(--brand-accent)}.teacher-lesson-meeting-top{margin-bottom:1rem}.teacher-lesson-detail-card{display:grid;grid-gap:0;gap:0}@media (max-width:900px){.teacher-calendar-toolbar,.teacher-lessons-table .teacher-lesson-row-actions{flex-direction:column;align-items:stretch}.teacher-calendar-toolbar-actions{justify-content:space-between}.teacher-calendar-event-title{font-size:.72rem}.student-calendar-grid{gap:.35rem}.student-calendar-day{min-height:5.5rem;padding:.35rem}.student-calendar-event-title{display:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topnav-toggle{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-left:auto;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer}@media (max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-brand-panel{padding:2rem;min-height:auto}.auth-brand-content h1{font-size:1.5rem}.quick-actions{grid-template-columns:1fr}}@media (max-width:768px){.admin-layout{grid-template-columns:1fr}.admin-aside{position:relative;height:auto;min-height:auto}.topbar-inner{flex-wrap:wrap;height:auto;padding:.75rem 1rem;gap:.75rem}.topbar{height:auto}.topnav-toggle{display:inline-flex}.topnav{order:4;width:100%;display:none;flex-direction:column;align-items:stretch;gap:.25rem;padding-top:.25rem}.topnav--open{display:flex}.topnav .nav-link{width:100%}.topbar-user{margin-left:0;width:100%;justify-content:space-between;order:3}.page-header,.profile-hero{flex-direction:column}.profile-hero{text-align:center}.teacher-detail-hero{grid-template-columns:1fr;text-align:center}.teacher-detail-hero .profile-meta,.teacher-detail-hero .teacher-card-title-row{justify-content:center}.admin-form-row{grid-template-columns:1fr}.main-content{padding:1.25rem 1rem 2rem}.landing-header-inner{height:auto;padding:.75rem 0;flex-wrap:wrap}.landing-nav{order:3;width:100%;overflow-x:auto}.landing-hero{padding:2.5rem 0 3rem}.landing-hero-grid{grid-template-columns:1fr;gap:2rem}.landing-hero-visual{min-height:14rem}.landing-hero-card-a{right:2%;top:5%}.landing-hero-card-b{left:2%;bottom:5%}.landing-about-grid{gap:1.5rem}.landing-about-grid,.landing-features{grid-template-columns:1fr}.landing-section-head-row{flex-direction:column;align-items:flex-start}.landing-section{padding:3rem 0}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_1b85de{font-family:Inter,Inter Fallback;font-style:normal}.__variable_1b85de{--font-inter:"Inter","Inter Fallback"}