:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-family,"Segoe UI", system-ui, -apple-system, sans-serif);font-size:var(--font-size-base,16px);color:#0f172a;--primary:#2563eb;--primary-dark:#1d4ed8;--surface:#fff;--border:#e2e8f0;--muted:#64748b;--danger:#dc2626;--shadow:0 10px 30px #0f172a14;background:#f1f5f9;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:var(--page-background-gradient,linear-gradient(180deg, #eff6ff 0%, #f8fafc 40%, #f1f5f9 100%));min-height:100vh;margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:.65rem 1rem;transition:background .15s,border-color .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-ghost{border-color:var(--border);color:#334155;background:0 0}.muted{color:var(--muted)}.form-error{color:var(--danger);margin:0}.form-success{color:#15803d;margin:0}.page-center{place-items:center;min-height:60vh;display:grid}.auth-page{place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);width:min(100%,420px);box-shadow:var(--shadow);border-radius:20px;padding:2rem}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-brand h1{margin:.5rem 0 .25rem}.auth-form{gap:1rem;display:grid}.auth-form-row{justify-content:flex-end;margin-top:-.35rem;display:flex}.auth-form-row a{font-size:.9rem}.auth-form label{gap:.35rem;font-size:.95rem;display:grid}.auth-form input{border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem}.auth-footer{text-align:center;margin-top:1rem}.brand-mark{background:var(--primary);color:#fff;border-radius:10px;place-items:center;width:2rem;height:2rem;font-weight:700;display:inline-grid}.brand-mark.lg{width:3rem;height:3rem;font-size:1.25rem}.app-logo{object-fit:contain;display:block}.app-logo-header{width:auto;max-width:180px;height:42px}.app-logo-auth{width:auto;max-width:min(100%,280px);height:128px;margin:0 auto}.app-shell{min-height:100vh}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:10;background:#ffffffd9;align-items:center;gap:1.5rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}:root[data-tenant-branded=true] .app-header{border-bottom-color:color-mix(in srgb, var(--brand-header-border) 35%, var(--border));box-shadow:inset 0 -3px 0 color-mix(in srgb, var(--brand-accent) 85%, white)}.brand{color:inherit;align-items:center;gap:.65rem;font-weight:700;text-decoration:none;display:inline-flex}.app-nav{flex:1;gap:1rem;display:flex}.app-nav a{color:#334155;font-weight:500;text-decoration:none}.app-user{align-items:center;gap:.75rem;display:flex}.user-meta{text-align:right;font-size:.9rem;display:grid}.role-badge{color:var(--muted);font-size:.8rem}.app-main{max-width:1200px;margin:0 auto;padding:1.5rem}.dashboard,.courses-page,.admin-page{gap:1.5rem;display:grid}.hero-card,.panel,.stat-card,.course-card,.empty-state{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px}.hero-card{padding:1.75rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin:0;font-size:.75rem;font-weight:700}.hero-card h1,.page-header h1{margin:.35rem 0}.back-link{margin-bottom:.5rem;font-size:.9rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--primary)}.stats-grid,.panel-grid,.course-grid{gap:1rem;display:grid}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-grid,.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card,.panel,.empty-state{padding:1.25rem}.stat-label{color:var(--muted);margin-bottom:.35rem;font-size:.85rem;display:block}.check-list{margin:0;padding-left:1.1rem}.content-type-grid{flex-wrap:wrap;gap:.5rem;display:flex}.content-type-chip{color:#1e40af;background:#eff6ff;border-radius:999px;padding:.35rem .7rem;font-size:.85rem}.page-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.course-card{flex-direction:column;display:flex;overflow:hidden}.course-card-thumb{object-fit:cover;border-bottom:1px solid var(--border);background:#f1f5f9;width:100%;height:140px}.course-card-body{flex:1;padding:1.25rem}.course-card-footer{border-top:1px solid var(--border);padding:.85rem 1.25rem;font-size:.9rem}.school-card-title-row{align-items:center;gap:.75rem;display:flex}.school-card-title-text{min-width:0}.school-card-title-text h3{margin:0 0 .25rem}.school-card-title-text p{margin:0}.school-card-logo{object-fit:contain;background:#fff}.school-card-logo-fallback{border:1px solid var(--border);color:#475569;background:#f1f5f9;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-weight:700;display:inline-flex}.status-pill{color:#475569;text-transform:uppercase;background:#f1f5f9;border-radius:999px;margin-bottom:.75rem;padding:.2rem .55rem;font-size:.75rem;display:inline-block}.empty-state{text-align:center;padding:2.5rem 1.5rem}.startup-error{background:var(--surface);border:1px solid var(--border);max-width:560px;box-shadow:var(--shadow);border-radius:18px;margin:2rem auto;padding:1.5rem}.startup-error h1,.startup-error h2{margin-top:0}.startup-error ul{margin-bottom:0;padding-left:1.2rem}.startup-error code{background:#f1f5f9;border-radius:4px;padding:.1rem .35rem}@media (width<=900px){.stats-grid,.panel-grid,.course-grid{grid-template-columns:1fr}.app-header{flex-wrap:wrap}.user-meta{text-align:left}.form-row{grid-template-columns:1fr}}.form-page,.course-detail-page{gap:1.5rem;display:grid}.form-panel{gap:1rem;display:grid}.form-panel label,.auth-form label{gap:.35rem;font-size:.95rem;display:grid}.form-panel input,.form-panel textarea,.form-panel select,.inline-form input{border:1px solid var(--border);border-radius:10px;width:100%;padding:.7rem .85rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-actions,.header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn-sm{padding:.4rem .75rem;font-size:.85rem}.link-card{color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s}.link-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px #0f172a1f}.module-list{gap:1rem;margin:1rem 0;display:grid}.module-card{border:1px solid var(--border);background:#f8fafc;border-radius:14px;padding:1rem}.module-card-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.module-card-header-text{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.module-card-header-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.module-card-header h3{margin:0}.content-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.content-list li{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:.75rem;padding:.5rem .65rem;display:flex}.content-list-title{flex:1;min-width:0}.content-list-meta{flex-shrink:0;align-items:center;gap:.5rem;margin-left:auto;display:flex}.content-type-icon{color:var(--primary);white-space:nowrap;font-size:.8rem;font-weight:600}.status-pill.sm{font-size:.65rem}.inline-form{gap:.75rem;margin-top:1rem;display:flex}.module-add-form{flex-direction:column;align-items:stretch}.tenant-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.tenant-list-item{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.tenant-card-grid{gap:1rem;margin-top:1rem;display:grid}.tenant-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.tenant-card-header h3{margin:0 0 .25rem}.tenant-admins h4{margin:0 0 .5rem;font-size:.95rem}.admin-user-list{gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.admin-user-list li{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:.15rem;padding:.6rem .75rem;display:grid}.tenant-assign-form{flex-direction:column;align-items:stretch}.license-banner{color:#92400e;background:#fef3c7;border-bottom:1px solid #fcd34d;padding:.85rem 1.5rem}.license-banner strong{margin-bottom:.25rem;display:block}.license-banner p{margin:0}.license-block{background:#fffbeb;border-color:#fcd34d}.status-pill.warning{color:#92400e;background:#fef3c7}.checkbox-label{align-items:center;gap:.5rem;padding-top:1.6rem;flex-direction:row!important;display:flex!important}.stat-sub{margin-top:.35rem;font-size:.8rem;font-weight:400;display:block}.tenant-license-info{margin-bottom:1rem}.tenant-license-form{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem}.tenant-license-form h4{margin:0 0 .75rem;font-size:.95rem}.tenant-assign-form input{flex:1}.field-hint{font-size:.85rem}.auth-note{margin:0;font-size:.9rem}.register-link{word-break:break-all;background:#f1f5f9;border-radius:8px;margin:.75rem 0;padding:.65rem .85rem;display:block}.registration-code-box{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;gap:.35rem;width:fit-content;min-width:180px;margin:.85rem 0;padding:1rem 1.1rem;display:grid}.registration-code-label{text-transform:uppercase;letter-spacing:.04em;color:#1d4ed8;font-size:.78rem;font-weight:700}.registration-code-value{letter-spacing:.03em;color:#0f172a;font-size:1.5rem}.registration-url-link{color:var(--primary);word-break:break-all}.users-table-wrap{overflow-x:auto}.users-search{border:1px solid var(--border);min-width:240px;font:inherit;border-radius:10px;padding:.55rem .75rem}.users-table{border-collapse:collapse;width:100%}.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--border);padding:.65rem .75rem}.users-table select{border:1px solid var(--border);border-radius:8px;padding:.35rem .5rem}.tenant-users-page{gap:1.5rem;display:grid}.tenant-scope-note{margin:.35rem 0 0;font-size:.95rem}.hero-cta{margin-top:1rem;display:inline-block}.content-list-link{color:inherit;border-radius:8px;flex:1;align-items:center;gap:.65rem;padding:.5rem .35rem;text-decoration:none;display:flex}.content-list-item{align-items:center;gap:.5rem;display:flex}.content-list-actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.btn.danger{color:#b91c1c}.btn.danger:hover{background:#fef2f2}.content-list-link:hover{background:#f8fafc;text-decoration:none}.content-complete-badge{color:#fff;background:#16a34a;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.content-view-page{gap:1.5rem;display:grid}.content-viewer-panel{min-height:320px}.content-frame{background:#fff;border:none;border-radius:10px;width:100%}.pdf-frame,.html-frame{min-height:70vh}.interactive-frame-shell{border:1px solid var(--border);background:#f8fafc;border-radius:12px;gap:.65rem;padding:.65rem;display:grid}.interactive-frame-shell.is-fullscreen{background:#0f172a;flex-direction:column;gap:.65rem;padding:.75rem;display:flex}.interactive-frame-toolbar{justify-content:flex-end;display:flex}.interactive-frame-shell.is-fullscreen .interactive-frame-toolbar{flex-shrink:0}.interactive-frame-shell .interactive-frame{min-height:70vh}.interactive-frame-shell.is-fullscreen .interactive-frame{flex:1;height:calc(100vh - 4rem);min-height:0}.native-content-panel{gap:.85rem;display:grid}.native-content-actions{flex-wrap:wrap;gap:.75rem;display:flex}.native-content-waiting{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.65rem .85rem}.video-frame{background:#000;max-height:70vh}.content-image{border-radius:10px;max-width:100%}.content-audio{width:100%}.completion-panel{margin-top:1rem}.completion-summary{color:#166534;background:#ecfdf5;border-radius:10px;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:.85rem 1rem;display:flex}.completion-form textarea{border:1px solid var(--border);resize:vertical;border-radius:10px;width:100%;padding:.65rem .85rem}.filter-field{gap:.35rem;max-width:320px;display:grid}.filter-field select{border:1px solid var(--border);border-radius:10px;padding:.55rem .75rem}.completion-note{white-space:pre-wrap;max-width:280px}.student-completions-page{gap:1.5rem;display:grid}.student-progress-layout{grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.student-list-panel{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow:auto}.student-list-hint{margin:0 0 .75rem;font-size:.9rem}.student-search-field{margin-bottom:.65rem;display:block}.student-search-field input{border:1px solid var(--border);color:#0f172a;background:#fff;border-radius:10px;width:100%;padding:.65rem .85rem}.student-search-empty{margin:.5rem 0 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.student-name-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.student-name-button{text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;gap:.2rem;width:100%;padding:.75rem .85rem;transition:border-color .15s,background .15s;display:grid}.student-name-button:hover{background:#f8fafc;border-color:#bfdbfe}.student-name-button.active{border-color:var(--primary);background:#eff6ff}.student-name-label{color:#0f172a;font-weight:600}.student-name-email,.student-name-branch,.student-name-stats{color:var(--muted);font-size:.85rem}.student-name-branch{color:#475569;font-weight:500}.branch-edit-cell{align-items:center;gap:.35rem;min-width:220px;display:flex}.branch-edit-cell input{border:1px solid var(--border);border-radius:8px;flex:1;min-width:0;padding:.45rem .6rem;font-size:.9rem}.student-progress-detail{gap:1rem;min-width:0;display:grid}.student-progress-placeholder{align-content:center;justify-items:start;min-height:220px;display:grid}@media (width<=900px){.student-progress-layout{grid-template-columns:1fr}.student-list-panel{max-height:none;position:static}}.quiz-editor-section{gap:.75rem;display:grid}.quiz-editor,.quiz-player-form{gap:1rem;display:grid}.quiz-editor-empty{gap:.75rem;display:grid}.quiz-question-card,.quiz-player-question{border:1px solid var(--border);border-radius:12px;gap:.75rem;padding:1rem;display:grid}.quiz-question-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.quiz-question-header h4{margin:0}.quiz-options-fieldset,.quiz-player-options{border:none;gap:.5rem;margin:0;padding:0;display:grid}.quiz-options-fieldset legend,.quiz-player-question legend{margin-bottom:.35rem;padding:0;font-weight:600}.quiz-option-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid}.quiz-option-correct{justify-content:center;align-items:center;display:inline-flex}.quiz-option-correct input[type=radio]{cursor:pointer;width:1.1rem;height:1.1rem;margin:0}.quiz-option-text,.quiz-question-card textarea,.quiz-question-card input[type=number]{border:1px solid var(--border);color:#0f172a;background:#fff;border-radius:10px;width:100%;min-width:0;padding:.7rem .85rem}.quiz-player-option{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;padding:.55rem .65rem;display:grid}.quiz-player-option input[type=radio]{width:1.1rem;height:1.1rem;margin:0}.quiz-player-option span{color:#0f172a;min-width:0;line-height:1.4}.quiz-player-meta{margin-bottom:.5rem}.quiz-result{border-radius:10px;margin-top:1rem;padding:.85rem 1rem}.quiz-result.passed{color:#166534;background:#ecfdf5}.quiz-result.failed{color:#991b1b;background:#fef2f2}.completion-auto-note{width:100%;margin:.5rem 0 0;font-size:.9rem}.progress-bar-wrap{gap:.5rem;margin:1rem 0;display:grid}.progress-bar-track{background:#e2e8f0;border-radius:999px;height:10px;overflow:hidden}.progress-bar-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .25s}.iframe-hint{margin-bottom:.75rem;font-size:.9rem}.iframe-hint code{background:#f1f5f9;border-radius:6px;padding:.1rem .35rem}.iframe-message-example{color:#e2e8f0;white-space:pre-wrap;background:#0f172a;border-radius:10px;margin:0 0 .75rem;padding:.85rem 1rem;font-size:.82rem;overflow-x:auto}.panel-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.panel-header h2{margin:0 0 .25rem}.announcements-panel{margin-top:.5rem}.announcement-form{border:1px solid var(--border);background:#f8fafc;border-radius:12px;gap:.85rem;margin-bottom:1.25rem;padding:1rem;display:grid}.announcement-form label{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.announcement-form input[type=text],.announcement-form textarea{border:1px solid var(--border);width:100%;font:inherit;border-radius:10px;padding:.7rem .85rem;font-weight:400}.announcement-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.announcement-item{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1rem 1.1rem}.announcement-item.is-pinned{background:#eff6ff;border-color:#93c5fd}.announcement-item-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.announcement-item h3{margin:0 0 .25rem;font-size:1.05rem}.announcement-meta{margin:0;font-size:.82rem}.announcement-pin{color:#fff;text-transform:uppercase;letter-spacing:.03em;background:#2563eb;border-radius:999px;margin-bottom:.35rem;padding:.15rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.announcement-body{white-space:pre-wrap;margin:.75rem 0 0;line-height:1.55}.announcement-actions{flex-shrink:0;gap:.35rem;display:flex}.btn-danger{color:#b91c1c}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.profile-form{gap:.85rem;display:grid}.profile-form label{gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.profile-form input:not([type=checkbox]){border:1px solid var(--border);width:100%;font:inherit;border-radius:10px;padding:.7rem .85rem;font-weight:400}.profile-form input:disabled{color:var(--muted);background:#f1f5f9}.user-profile-link{color:inherit;text-decoration:none}.user-profile-link:hover{color:var(--primary)}@media (width<=900px){.profile-grid{grid-template-columns:1fr}}.membership-actions{flex-wrap:wrap;gap:.35rem;display:flex}.membership-gate{min-height:50vh;padding:2rem 1rem}.membership-gate-card{width:100%;max-width:560px}.membership-gate-logo{height:96px;margin-bottom:.75rem}.pending-members-panel{background:#fffbeb;border-color:#fcd34d}.tenant-branding-page .tenant-branding-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:1.5rem;display:grid}.tenant-branding-form,.tenant-branding-preview{gap:1rem;display:grid}.tenant-branding-logo-preview{border:1px dashed var(--border);background:#f8fafc;border-radius:16px;justify-content:center;padding:1rem;display:flex}.color-input-row{grid-template-columns:56px minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.color-input-row input[type=color]{border:1px solid var(--border);background:#fff;border-radius:10px;width:56px;height:42px;padding:.2rem}.checkbox-row{align-items:center;gap:.6rem;font-weight:500;display:flex}.file-input-label{gap:.35rem;font-weight:600;display:grid}.tenant-branding-preview-shell{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:16px;gap:1rem;padding:1.25rem;display:grid}.tenant-branding-preview-header{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding-bottom:.75rem;font-weight:700;display:flex}.tenant-branding-form select{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;padding:.7rem .85rem}.tenant-branding-font-preview{border:1px solid var(--border);background:#f8fafc;border-radius:12px;gap:.35rem;padding:1rem;display:grid}.tenant-branding-font-preview p{margin:0}.form-actions{flex-wrap:wrap;gap:.75rem;display:flex}@media (width<=900px){.tenant-branding-page .tenant-branding-grid{grid-template-columns:1fr}}.thumbnail-upload-field{gap:.5rem;display:grid}.thumbnail-upload-hint{margin:0;font-size:.85rem}.entity-thumb-preview{justify-content:flex-start;display:flex}.entity-thumb-image,.entity-thumb{object-fit:cover;border:1px solid var(--border);background:#f8fafc;border-radius:12px;flex-shrink:0;width:72px;height:72px}.entity-thumb.sm{border-radius:8px;width:40px;height:40px}.entity-thumb.lg{border-radius:16px;width:96px;height:96px}.course-detail-header{align-items:flex-start;gap:1rem;display:flex}.course-detail-header-text{flex:1;min-width:0}.content-list-link .entity-thumb.sm{margin-right:.15rem}
