html:has(.room-view.is-in-call),html:has(.room-view.is-in-call) body{background:#0f172a;margin:0;height:100%;overflow:hidden;overscroll-behavior:none}html:has(.room-view.is-in-call) #app{height:100%;overflow:hidden}html,body,#app{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5;color:#0f172a}.site-page{min-height:100vh;display:flex;flex-direction:column;gap:2rem;padding:1.5rem;font-family:system-ui,sans-serif;max-width:40rem;margin:0 auto;overflow-x:clip;box-sizing:border-box}.site-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:nowrap;min-width:0}.site-topbar--marketing{gap:.5rem 1rem}.site-marketing-nav{display:none;align-items:center;gap:.15rem .35rem;flex:1;justify-content:center;min-width:0;flex-wrap:wrap}@media(min-width:900px){.site-marketing-nav{display:flex}}.site-marketing-nav-link{padding:.35rem .55rem;border-radius:.375rem;font-size:.82rem;font-weight:500;color:#475569;text-decoration:none;white-space:nowrap}.site-marketing-nav-link:hover{color:#2563eb;background:#eff6ff}@media(min-width:900px){.site-marketing-nav-link{font-size:.88rem;padding:.4rem .65rem}}.site-brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.25rem;color:#0f172a;text-decoration:none}.site-brand-text{line-height:1}.site-topbar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;flex-shrink:0}.site-topbar-actions--mobile-shell{display:none}.site-nav{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.site-nav-action{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .75rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;color:#334155;font-size:inherit;font-family:inherit;line-height:1.25;text-decoration:none;cursor:pointer;white-space:nowrap}.site-nav-action:hover{background:#f8fafc;border-color:#94a3b8}.site-nav-action.router-link-active,.site-nav-action--primary{border-color:#2563eb;color:#1d4ed8;background:#eff6ff}.site-nav-action--primary:hover{background:#dbeafe}.site-nav .nav-btn:hover{background:#f1f5f9}.site-hero{text-align:center}.site-hero h1{margin:0 0 .5rem;font-size:1.75rem;color:#0f172a}.site-hero p{margin:0;color:#475569;line-height:1.5}.site-card{padding:1.25rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#f8fafc;display:flex;flex-direction:column;gap:.75rem}.site-card h1,.site-card h2{margin:0;font-size:1rem;color:#334155}.site-card>h1{font-size:1.35rem;color:#0f172a}.site-form{display:flex;flex-direction:column;gap:.75rem}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.field-label{display:grid;gap:.35rem;font-size:.85rem;color:#475569}.field-input{padding:.55rem .65rem;border:1px solid #cbd5e1;border-radius:.5rem;font-size:1rem;font-family:inherit;color:#0f172a;background:#fff}.field-input:focus{outline:2px solid #93c5fd;outline-offset:1px}.btn-primary{align-self:flex-start;padding:.6rem 1.2rem;border:none;border-radius:.5rem;background:#2563eb;color:#fff;font-size:1rem;cursor:pointer}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.site-error{color:#b42318;margin:0}.site-footer-links{font-size:.9rem;color:#475569;margin:0}.site-footer-links a{color:#2563eb}.site-menu-toggle{display:none;flex-direction:column;justify-content:center;gap:.28rem;width:2.5rem;height:2.5rem;padding:.4rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;cursor:pointer;flex-shrink:0}.site-menu-toggle-bar{display:block;height:2px;width:100%;background:#334155;border-radius:1px}.site-mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;justify-content:flex-end;background:#0f172a73}.site-mobile-nav{display:flex;flex-direction:column;gap:.35rem;width:min(100%,17rem);max-height:100dvh;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));background:#fff;box-shadow:-8px 0 32px #0f172a26;overflow-y:auto;box-sizing:border-box}.site-mobile-nav-locale{margin-bottom:.5rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.site-mobile-nav-heading{margin:0 0 .25rem;padding:0 .5rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.site-mobile-nav-anchor{display:block;padding:.65rem .5rem;color:#334155;text-decoration:none;font-size:.95rem;border-radius:.375rem}.site-mobile-nav-anchor:hover{background:#f1f5f9;color:#2563eb}.site-mobile-nav-divider{height:1px;margin:.5rem 0 .65rem;background:#e2e8f0}.site-mobile-nav-action{display:block;width:100%;box-sizing:border-box;margin-top:.15rem;padding:.65rem .5rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;color:#334155;font-size:1rem;font-family:inherit;text-align:left;text-decoration:none;cursor:pointer}.site-mobile-nav-action:hover{background:#f1f5f9}.site-mobile-nav-action--primary{border-color:#2563eb;color:#1d4ed8;background:#eff6ff;text-align:center}@media(max-width:899px){.site-topbar--marketing .site-topbar-actions--desktop{display:none}.site-topbar--marketing .site-menu-toggle{display:flex}}@media(max-width:639px){.site-page{gap:1.25rem;padding:1rem}.site-topbar-actions--desktop{display:none}.site-topbar-actions--mobile-shell{display:flex;align-items:center;gap:.35rem;margin-left:auto;min-width:0}.site-nav--compact{display:flex;align-items:center;gap:.35rem;flex-wrap:nowrap;min-width:0}.site-nav-action--compact{padding:.35rem .55rem;font-size:.78rem;white-space:nowrap}.site-nav-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.25rem;height:2.25rem;padding:0;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;color:#334155;cursor:pointer}.site-nav-icon-btn:hover{background:#f1f5f9}.site-menu-toggle{display:flex}.site-brand-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-brand{gap:0}}html:has(.admin-shell),html:has(.admin-shell) body{margin:0;height:100%}html:has(.admin-shell) #app{margin:0;height:100%}.admin-shell{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;background:#f1f5f9;color:#0f172a;font-family:inherit}.admin-shell>.site-topbar{flex-shrink:0;min-height:3.5rem;padding:.75rem 1.5rem;border-bottom:1px solid #e2e8f0;background:#fff}.admin-frame{display:flex;flex:1;min-height:0;width:100%;gap:0;overflow:hidden}.admin-frame--sidebar-collapsed .admin-sidebar{flex:0 0 3.5rem;width:3.5rem;min-width:3.5rem;padding:.75rem .35rem;overflow:hidden}.admin-frame--sidebar-collapsed .admin-sidebar-heading,.admin-frame--sidebar-collapsed .admin-sidebar-brand,.admin-frame--sidebar-collapsed .admin-sidebar-nav,.admin-frame--sidebar-collapsed .dashboard-workspace-switcher,.admin-frame--sidebar-collapsed .dashboard-student-account{display:none}.admin-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:1rem;padding:0 .15rem}.admin-frame--sidebar-collapsed .admin-sidebar-header{justify-content:center;margin-bottom:0}.admin-sidebar-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:.28rem;flex-shrink:0;width:2.5rem;height:2.5rem;padding:.4rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;cursor:pointer}.admin-sidebar-toggle-bar{display:block;height:2px;width:100%;background:#334155;border-radius:1px}.admin-sidebar{flex:0 0 220px;min-height:0;overflow-y:auto;background:#fff;border-right:1px solid #e2e8f0;padding:1.25rem .75rem;align-self:stretch}.admin-sidebar-heading{margin:0;padding:0 .5rem;font-size:1.05rem;font-weight:700;flex:1;min-width:0}.admin-sidebar-brand{flex:1;min-width:0}.admin-sidebar-subheading{margin:.2rem 0 0;padding:0 .5rem;font-size:.85rem;font-weight:500;color:#64748b}.admin-sidebar-nav{display:flex;flex-direction:column;gap:.2rem}.admin-sidebar-link{display:block;padding:.55rem .65rem;border-radius:.375rem;color:#475569;text-decoration:none;font-size:.92rem;font-weight:500;border-left:3px solid transparent}.admin-sidebar-link:hover{background:#f8fafc;color:#0f172a}.admin-sidebar-link--active{background:#eff6ff;color:#1d4ed8;border-left-color:#2563eb;font-weight:600}.admin-sidebar-group{display:flex;flex-direction:column;gap:.15rem}.admin-sidebar-link--with-icon{display:flex;align-items:center;gap:.55rem}.admin-sidebar-link-icon{opacity:.85}.admin-sidebar-link--active .admin-sidebar-link-icon{opacity:1}.admin-sidebar-group-toggle{width:100%;border:none;background:transparent;cursor:pointer;text-align:left;font:inherit}.admin-sidebar-group-label,.admin-sidebar-link-text{flex:1}.admin-sidebar-live-dot{width:.5rem;height:.5rem;border-radius:50%;background:#dc2626;flex-shrink:0;box-shadow:0 0 0 2px #fff}.admin-sidebar-chevron{margin-left:auto;opacity:.65;transition:transform .15s ease}.admin-sidebar-group-toggle--open .admin-sidebar-chevron{transform:rotate(180deg)}.admin-sidebar-children{display:flex;flex-direction:column;gap:.1rem;margin:.1rem 0 .25rem;padding:.35rem 0 .35rem .35rem;border-radius:.375rem;background:#f8fafc}.admin-sidebar-link--child{margin-left:.15rem;padding-left:.55rem;font-size:.86rem;font-weight:500;border-left-width:2px}.admin-sidebar-link--disabled{opacity:.45;cursor:not-allowed;border-left-color:transparent}.admin-sidebar-link--disabled:hover{background:transparent;color:#475569}.admin-content{flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:1.25rem 1.5rem 2rem;background:#f8fafc}.admin-page-title{margin:0 0 .25rem;font-size:1.35rem;font-weight:700}.admin-page-lead{margin:0 0 1.25rem;color:#64748b;font-size:.92rem}.admin-overview-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.admin-overview-meta{margin:0;color:#64748b;font-size:.82rem}.admin-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1.5rem}.admin-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;padding:.85rem 1rem}.admin-kpi-label{margin:0;font-size:.78rem;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.admin-kpi-sub{margin:.25rem 0 0;font-size:.78rem;color:#64748b}.admin-kpi-hint{display:block;margin-top:.2rem;font-size:.7rem;font-weight:400;text-transform:none;letter-spacing:normal;color:#94a3b8}.admin-kpi-value{margin:.35rem 0 0;font-size:1.35rem;font-weight:700}.admin-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.admin-chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;padding:1rem}.admin-chart-card h3{margin:0 0 .75rem;font-size:.95rem;font-weight:600}.admin-chart-empty{margin:0;padding:2rem 0;text-align:center;color:#94a3b8;font-size:.88rem}.admin-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem}.admin-table-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.admin-btn-icon{display:inline-flex;align-items:center;justify-content:center;padding:.3rem;border:1px solid #e2e8f0;border-radius:.375rem;background:#fff;color:#64748b;line-height:0;cursor:pointer}.admin-btn-icon:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.admin-btn-icon:disabled{opacity:.5;cursor:not-allowed}.admin-btn-icon--delete{color:#b91c1c;border-color:#fecaca}.admin-btn-icon--delete:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem}.admin-table th,.admin-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid #f1f5f9;vertical-align:middle}.admin-table th{background:#f8fafc;color:#475569;font-weight:600}.admin-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}.admin-toolbar--align-end{align-items:flex-end}.admin-field--submit>span:first-child{visibility:hidden;-webkit-user-select:none;user-select:none}.admin-toolbar input,.admin-toolbar select{padding:.4rem .55rem;border:1px solid #cbd5e1;border-radius:.375rem;font-size:.88rem;font-family:inherit}.admin-date-field{display:inline-flex;align-items:center;gap:.4rem}.admin-date-label{margin:0;font-size:.88rem;color:#475569;white-space:nowrap}.admin-btn{padding:.35rem .65rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;color:#334155;font-size:.82rem;font-family:inherit;cursor:pointer}.admin-btn--primary{border-color:#2563eb;background:#2563eb;color:#fff}.admin-btn--primary:hover:not(:disabled){background:#1d4ed8}.admin-btn--danger{color:#b91c1c;border-color:#fecaca}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-error{color:#b91c1c;margin:0 0 1rem;padding:.65rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;font-size:.9rem}.admin-banner{margin:0 0 1rem;padding:.65rem .75rem;border-radius:.375rem;font-size:.9rem}.admin-banner--warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.admin-notice{color:#166534;margin:0 0 1rem;padding:.65rem .75rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;font-size:.9rem}.admin-notice-fade-enter-active,.admin-notice-fade-leave-active{transition:opacity .4s ease}.admin-notice-fade-enter-from,.admin-notice-fade-leave-to{opacity:0}.admin-badge{display:inline-block;padding:.12rem .4rem;border-radius:.25rem;font-size:.72rem;font-weight:600}.admin-badge--active{background:#dcfce7;color:#166534}.admin-badge--inactive{background:#f1f5f9;color:#64748b}.admin-badge--admin{background:#dbeafe;color:#1d4ed8}.admin-badge--danger{background:#fef2f2;color:#b91c1c}.admin-badge--warning{background:#fef3c7;color:#92400e}.admin-badge--pending{background:#ffedd5;color:#c2410c}.lms-status-badge{display:inline-flex;align-items:center;gap:.35rem}.lms-status-badge :deep(.check-icon),.lms-status-badge :deep(.xmark-icon),.lms-status-badge :deep(.hourglass-icon){width:1rem;height:1rem;flex-shrink:0}.admin-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem}.admin-pagination-summary{margin:0;color:#64748b;font-size:.85rem}.admin-pagination-actions{display:flex;align-items:center;gap:.5rem}.admin-pagination-page{font-size:.85rem;color:#475569}.admin-back-link{margin-bottom:1rem}.admin-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1.25rem;margin:0 0 1.5rem;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem}.admin-detail-grid dt{margin:0;font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.admin-detail-grid dd{margin:.2rem 0 0;font-size:.95rem}.admin-detail-form{max-width:28rem;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem}.admin-detail-form-title{margin:0 0 1rem;font-size:1rem}.admin-field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.85rem;font-size:.9rem}.admin-field select,.admin-field input,.admin-field textarea{padding:.45rem .55rem;border:1px solid #cbd5e1;border-radius:.375rem;font-family:inherit;font-size:.9rem}.admin-field--checkbox{flex-direction:row;align-items:center}.admin-fieldset{margin:1rem 0;padding:.75rem;border:1px dashed #cbd5e1;border-radius:.375rem;opacity:.7}.admin-fieldset legend{padding:0 .25rem;font-size:.82rem;color:#64748b}.admin-detail-hint{margin:0 0 .75rem;color:#b45309;font-size:.85rem}.admin-plans-features{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.82rem;color:#475569}.admin-plans-features span{background:#e2e8f0;border-radius:.25rem;padding:.15rem .4rem}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;box-sizing:border-box;padding:2rem;overflow-y:auto;background:#0f172a73}.admin-modal{box-sizing:border-box;width:min(52rem,100%);margin:0 auto;padding:0;overflow:visible;background:#fff;border:1px solid #e2e8f0;border-radius:.625rem;box-shadow:0 20px 40px #0f172a1f}.admin-modal-header,.admin-modal-body,.admin-modal .admin-detail-actions{padding-inline:2rem}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.75rem;padding-bottom:0}.admin-modal-body{padding-block:1.25rem .5rem}.admin-modal .admin-detail-actions{padding-top:1.25rem;padding-bottom:1.75rem}.admin-modal-close{flex-shrink:0;width:2rem;height:2rem;padding:0;font-size:1.35rem;line-height:1}.admin-modal .admin-detail-form-title{margin:0}.admin-plan-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem;row-gap:1.75rem;align-items:start;width:100%}.admin-plan-form-grid .admin-field{margin:0;min-width:0}.admin-plan-form-grid .admin-field--full{grid-column:1 / -1}.admin-plan-form-section-title{grid-column:1 / -1;margin:0;padding-top:1rem;border-top:1px solid #e2e8f0;color:#64748b;font-size:.82rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.admin-plan-form-section-title:first-child{padding-top:0;border-top:none}.admin-plan-form-checkboxes{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem;row-gap:1.25rem;width:100%}.admin-plan-form-checkboxes .admin-field{margin:0;min-width:0}.admin-field-hint{margin:0;color:#64748b;font-size:.8rem;line-height:1.35}.admin-locale-tabs{gap:.65rem}.admin-locale-tabs-label{font-size:.9rem;font-weight:600;color:#334155}.admin-locale-tabs-nav{display:flex;flex-wrap:wrap;gap:.35rem}.admin-locale-tab{padding:.35rem .7rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;color:#475569;font-size:.85rem;font-family:inherit;cursor:pointer}.admin-locale-tab--active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}.admin-locale-tab-panel{display:flex;flex-direction:column;gap:.15rem;padding-top:.35rem}.admin-detail-form input[type=text],.admin-detail-form input[type=number],.admin-modal input[type=text],.admin-modal input[type=number],.admin-modal textarea{box-sizing:border-box;display:block;width:100%;max-width:none;margin:0;padding:.5rem .65rem;border:1px solid #cbd5e1;border-radius:.375rem;font:inherit}.admin-modal input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.admin-modal input[type=number]::-webkit-outer-spin-button,.admin-modal input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.admin-modal input[type=checkbox]{flex-shrink:0;margin:0}.admin-modal textarea{resize:vertical;min-height:5rem}.admin-detail-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #e2e8f0}.admin-modal .admin-detail-actions{margin-top:0}@media(max-width:767px){.admin-modal-backdrop{padding:1rem}.admin-modal{width:min(52rem,100%)}.admin-modal-header,.admin-modal-body,.admin-modal .admin-detail-actions{padding-inline:1.25rem}.admin-shell--mobile-nav .admin-content{padding-bottom:calc(4.25rem + env(safe-area-inset-bottom,0px))}.admin-frame--mobile .admin-sidebar{position:fixed;top:3.5rem;left:0;bottom:0;z-index:1050;flex:none;width:min(18.5rem,88vw);min-height:0;overflow-y:auto;border-right:1px solid #e2e8f0;border-bottom:none;background:#fff;box-shadow:4px 0 24px #0f172a1f;transform:translate(0);transition:transform .2s ease}.admin-frame--mobile.admin-frame--sidebar-collapsed .admin-sidebar{transform:translate(-105%);pointer-events:none}.admin-frame--mobile .admin-sidebar-nav{flex-direction:column;flex-wrap:nowrap}.admin-frame--mobile .admin-sidebar-link{border-left:3px solid transparent;border-bottom:none}.admin-frame--mobile .admin-sidebar-link--active{border-left-color:#2563eb;border-bottom:none}.admin-frame--mobile .admin-sidebar-header{position:sticky;top:0;z-index:1;background:#fff}.admin-mobile-drawer-backdrop{position:fixed;top:3.5rem;right:0;bottom:0;left:0;z-index:1040;background:#0f172a59}.admin-mobile-toolbar{display:flex;align-items:center;margin:-.5rem 0 .75rem}.admin-shell--mobile-drawer .admin-frame--mobile .admin-content{width:100%}.admin-plan-form-grid,.admin-plan-form-checkboxes{grid-template-columns:1fr}}.app-confirm-backdrop{display:flex;align-items:center;justify-content:center;padding:1.5rem}.app-confirm-dialog{box-sizing:border-box;width:min(28rem,100%);margin:0;padding:1.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:.625rem;box-shadow:0 20px 40px #0f172a1f}.app-confirm-title{margin:0 0 .75rem;color:#0f172a;font-size:1.05rem;font-weight:600}.app-confirm-message{margin:0 0 1.25rem;color:#475569;font-size:.92rem;line-height:1.5;white-space:pre-wrap}.app-confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}
