*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#0f172a;background:#f1f5f9;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;background:#0f172a;border-bottom:1px solid #1e293b;padding:1rem 1.25rem}.topbar h1{margin:0;font-size:1.25rem}.topbar p{color:#94a3b8;margin:.25rem 0 .85rem;font-size:.9rem}.topbar-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.auth-link{color:#cbd5e1;border:1px solid #334155;border-radius:999px;padding:.35rem .7rem;font-size:.82rem;text-decoration:none}.auth-link:hover{color:#ede9fe;border-color:#7c3aed}.auth-user{color:#cbd5e1;align-items:center;gap:.6rem;font-size:.84rem;display:flex}.auth-role{color:#e2e8f0;border:1px solid #334155;border-radius:999px;padding:.3rem .7rem;font-size:.78rem;font-weight:600}.auth-logout-btn{color:#cbd5e1;background:0 0;border:1px solid #334155;border-radius:999px;padding:.3rem .7rem;font-size:.78rem}.auth-logout-btn:hover{color:#fff;border-color:#7c3aed}.role-tabs,.subnav{flex-wrap:wrap;gap:.5rem;display:flex}.role-tabs a,.subnav a{color:#cbd5e1;border:1px solid #334155;border-radius:999px;padding:.35rem .7rem;font-size:.82rem;text-decoration:none}.role-tabs a.active,.subnav a.active{color:#fff;background:#7c3aed;border-color:#7c3aed}.subnav{background:#111827;border-bottom:1px solid #1f2937;padding:.7rem 1.25rem}.content{width:min(1100px,100% - 2rem);margin:1.25rem auto 2rem}.page{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.2rem}.page h2{margin:0;font-size:1.2rem}.subtitle{color:#64748b;margin:.4rem 0 1rem}.grid{gap:1rem;display:grid}.grid.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-bottom:1rem}.card,.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:.55rem;padding:1rem;display:flex}.card h3{margin:0;font-size:1rem}.card p{color:#64748b;margin:0;line-height:1.45}.badge{color:#5b21b6;background:#ede9fe;border-radius:999px;width:fit-content;padding:.2rem .6rem;font-size:.75rem;font-weight:700}button{color:#fff;cursor:pointer;background:#7c3aed;border:none;border-radius:8px;width:fit-content;padding:.45rem .8rem}button:disabled{color:#64748b;cursor:not-allowed;background:#cbd5e1}.stat-value{color:#7c3aed;font-size:1.5rem;font-weight:800}.stat-label{color:#64748b;font-size:.85rem}.row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.status-badge{text-transform:uppercase;border-radius:999px;padding:.2rem .5rem;font-size:.72rem;font-weight:700}.status-badge.active{color:#065f46;background:#d1fae5}.status-badge.expired{color:#991b1b;background:#fee2e2}.status-badge.locked{color:#334155;background:#e2e8f0}.progress-bar{background:#e2e8f0;border-radius:99px;height:8px;overflow:hidden}.progress-fill{background:#7c3aed;height:100%}.progress-label{color:#64748b;font-size:.8rem}.status-active{border-left:4px solid #10b981}.status-expired{border-left:4px solid #ef4444}.status-locked{border-left:4px solid #94a3b8}.course-content-stats{margin-bottom:1rem}.login-page{max-width:460px;margin:0 auto}.login-form{gap:.85rem;display:grid}.login-label{color:#334155;gap:.35rem;font-size:.86rem;display:grid}.login-input{border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:.6rem .75rem;font-size:.92rem}.login-input:focus{border-color:#7c3aed;outline:none;box-shadow:0 0 0 2px #ede9fe}.course-content-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.course-content-sidebar{gap:1rem;display:grid}.course-content-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1rem}.course-content-panel h3{margin:0 0 .75rem;font-size:1rem}.course-content-list{flex-direction:column;gap:.6rem;display:flex}.course-content-item{color:#0f172a;text-align:left;background:#fff;border:1px solid #dbe4f0;border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.8rem .9rem;display:flex}.course-content-item.active{border-color:#7c3aed;box-shadow:inset 0 0 0 1px #7c3aed}.course-content-viewer{gap:1rem;display:grid}.course-content-preview-header{background:#fff}.course-content-frame,.course-content-empty{background:#fff;border:1px solid #dbe4f0;border-radius:12px;width:100%;min-height:72vh}.course-content-empty{color:#64748b;place-items:center;padding:1.5rem;display:grid}.token-list{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=900px){.course-content-layout{grid-template-columns:1fr}.course-content-frame,.course-content-empty{min-height:55vh}}.um-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem;display:flex}.um-toolbar{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.um-search{border:1px solid #cbd5e1;border-radius:8px;outline:none;flex:1;min-width:180px;padding:.42rem .75rem;font-size:.9rem}.um-search:focus{border-color:#7c3aed;box-shadow:0 0 0 2px #ede9fe}.um-select{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;padding:.42rem .65rem;font-size:.875rem}.um-select:focus{border-color:#7c3aed}.um-error{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:.75rem;padding:.6rem .9rem;font-size:.88rem}.um-table-wrap{border:1px solid #e2e8f0;border-radius:10px;overflow-x:auto}.um-table{border-collapse:collapse;width:100%;font-size:.88rem}.um-table thead{background:#f8fafc}.um-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:#64748b;white-space:nowrap;border-bottom:1px solid #e2e8f0;padding:.6rem .85rem;font-size:.78rem;font-weight:700}.um-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:.65rem .85rem}.um-table tr:last-child td{border-bottom:none}.um-table tbody tr:hover{background:#f8fafc}.um-name{color:#0f172a;font-weight:600}.um-email{color:#475569;font-size:.85rem}.um-date{color:#94a3b8;font-size:.82rem}.um-empty{text-align:center;color:#94a3b8;padding:2.5rem 1rem}.um-actions{gap:.35rem;display:flex}.um-btn-ghost{color:#475569;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:6px;padding:.25rem .55rem;font-size:.78rem;transition:border-color .15s}.um-btn-ghost:hover{color:#7c3aed;border-color:#7c3aed}.um-btn-ghost:disabled{opacity:.6;cursor:not-allowed}.role-badge{text-transform:capitalize;border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.role-admin{color:#92400e;background:#fef3c7}.role-student{color:#1e40af;background:#dbeafe}.role-coach{color:#065f46;background:#d1fae5}.um-pagination{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:1rem;display:flex}.um-page-btn{cursor:pointer;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:6px;min-width:32px;padding:.3rem .55rem;font-size:.82rem;transition:all .12s}.um-page-btn:hover:not(:disabled){color:#7c3aed;border-color:#7c3aed}.um-page-btn:disabled{color:#cbd5e1;cursor:not-allowed}.um-page-current{color:#fff;background:#7c3aed;border-color:#7c3aed;font-weight:700}.um-page-ellipsis{color:#94a3b8;padding:0 .2rem;font-size:.82rem}.um-page-info{color:#64748b;margin-left:.5rem;font-size:.82rem}.um-overlay{z-index:200;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.um-modal{background:#fff;border-radius:14px;flex-direction:column;width:min(520px,100vw - 2rem);max-height:90vh;display:flex;overflow-y:auto;box-shadow:0 20px 60px #0003}.um-drawer{z-index:201;background:#fff;flex-direction:column;width:min(420px,100vw);height:100vh;display:flex;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-4px 0 32px #00000026}.um-modal-header{z-index:1;background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1rem 1.2rem;display:flex;position:sticky;top:0}.um-modal-header h3{margin:0;font-size:1rem}.um-close-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .4rem;font-size:1.1rem;line-height:1}.um-close-btn:hover{color:#0f172a;background:#f1f5f9}.um-modal-footer{background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:.6rem;padding:.9rem 1.2rem;display:flex;position:sticky;bottom:0}.um-btn-secondary{color:#334155;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.45rem .8rem;font-size:.88rem}.um-btn-secondary:hover{background:#e2e8f0}.um-form{flex-direction:column;gap:.85rem;padding:1rem 1.2rem;display:flex}.um-row{gap:.75rem;display:flex}.um-row .um-field{flex:1}.um-field{flex-direction:column;gap:.3rem;display:flex}.um-field label{color:#334155;font-size:.8rem;font-weight:600}.um-field input,.um-field select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:.42rem .75rem;font-size:.9rem}.um-field input:focus,.um-field select:focus{border-color:#7c3aed;box-shadow:0 0 0 2px #ede9fe}.um-field input:disabled{color:#94a3b8;cursor:not-allowed;background:#f8fafc}.um-input-error{border-color:#f87171!important}.um-field-error{color:#dc2626;font-size:.76rem}.um-detail-hero{border-bottom:1px solid #f1f5f9;align-items:flex-start;gap:1rem;padding:1.1rem 1.2rem;display:flex}.um-avatar{object-fit:cover;border:2px solid #e2e8f0;border-radius:50%;flex-shrink:0;width:56px;height:56px}.um-avatar-placeholder{color:#5b21b6;text-transform:uppercase;background:#ede9fe;border-radius:50%;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:1.1rem;font-weight:800;display:grid}.um-detail-name{color:#0f172a;font-size:1rem;font-weight:700}.um-detail-email{color:#64748b;margin-top:.1rem;font-size:.85rem}.um-detail-fields{flex-direction:column;flex:1;gap:.75rem;padding:.9rem 1.2rem;display:flex}.um-detail-field{flex-direction:column;gap:.15rem;display:flex}.um-detail-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.um-detail-value{color:#1e293b;word-break:break-all;font-size:.9rem}.um-credentials-body{padding:1rem 1.2rem}.um-credentials-warning{color:#854d0e;background:#fefce8;border:1px solid #facc15;border-radius:8px;padding:.65rem .75rem;font-size:.84rem}.um-credentials-password{color:#0f172a;word-break:break-all;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:.45rem .55rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1rem}@media (width<=600px){.um-row{flex-direction:column}.um-modal{border-radius:14px 14px 0 0;align-self:flex-end;width:100%}.um-overlay.form{align-items:flex-end}}
