:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#6366f12e,#0000 35%),linear-gradient(#f8fbff 0%,#eef4ff 100%);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}body,button,input{font:inherit}button,input{font-family:inherit}h1,h2,strong{color:#111827}a{color:inherit}#root{min-height:100vh}.app-shell{gap:24px;max-width:1440px;margin:0 auto;padding:32px;display:grid}.panel{background:#fff;border:1px solid #d7deea;border-radius:20px;box-shadow:0 24px 60px #0f172a0f}.hero-panel{grid-template-columns:2fr minmax(280px,1fr);gap:24px;padding:32px;display:grid}.hero-copy h1{margin:0 0 12px;font-size:clamp(2.2rem,4vw,3.6rem);line-height:1}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#4f46e5;margin:0 0 10px;font-size:.8rem;font-weight:700}.lead{color:#4b5563;max-width:62ch;margin:0;font-size:1.05rem}.hero-actions{align-content:start;gap:12px;display:grid}.auth-summary{border:1px solid #e5e7eb;border-radius:16px;gap:6px;padding:14px 16px;display:grid}.auth-summary span,.search-field span,.filter-field span,.section-heading p{color:#6b7280;font-size:.9rem}.auth-summary strong{color:#111827;word-break:break-word}.auth-summary p{color:#4b5563;word-break:break-word;margin:0}.controls-panel,.table-panel{padding:24px}.controls-panel{justify-content:space-between;align-items:start;gap:20px;display:flex}.controls-copy{flex:0 300px;max-width:300px}.controls-stack{flex:1 1 0;gap:16px;min-width:0;display:grid}.toolbar{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.search-field,.filter-field{gap:8px;display:grid}.search-field{flex:280px;min-width:280px}.filter-field{min-width:190px}.search-field input,.filter-field select{color:#111827;background:#fff;border:1px solid #cbd5e1;border-radius:12px;min-height:44px;padding:0 14px}.search-field input:focus,.filter-field select:focus{border-color:#6366f1;outline:2px solid #4f46e533}.filter-summary{flex-wrap:wrap;gap:10px;display:flex}.drop-zone{background:#f8faff;border:2px dashed #c7d2fe;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;transition:border-color .12s,background .12s;display:flex}.drop-zone.dragging{background:#eef2ff;border-color:#4f46e5}.drop-zone p,.empty-substate p{color:#6b7280;margin:0}.drop-zone strong,.empty-substate h3{color:#111827}.drop-zone-actions{flex:none}.hidden-input{display:none}.button{cursor:pointer;border:none;border-radius:12px;min-height:44px;padding:0 16px;font-weight:600;transition:transform .12s,box-shadow .12s,opacity .12s}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 20px #0f172a1a}.button:disabled{cursor:not-allowed;opacity:.65}.primary-button{color:#fff;background:linear-gradient(135deg,#4338ca,#2563eb)}.secondary-button{color:#312e81;background:#eef2ff}.danger-button{color:#b91c1c;background:#fef2f2}.link-button{color:#2563eb;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:600}.link-button:hover{text-decoration:underline}.file-button{justify-content:center;align-items:center;display:inline-flex;position:relative}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.message-banner{border-radius:16px;gap:8px;padding:16px 18px;display:grid}.message-banner p{margin:0}.error-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.info-banner{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.progress-banner{color:#5b21b6;background:#f5f3ff;border:1px solid #ddd6fe}.loading-indicator{align-items:center;gap:10px;display:inline-flex}.loading-dot{background:#4f46e5;border-radius:999px;width:10px;height:10px;animation:1.1s ease-in-out infinite pulse;box-shadow:0 0 #4f46e559}.empty-state,.empty-substate{text-align:center;justify-items:center;gap:16px;padding:32px;display:grid}.empty-state h2,.section-heading h2{margin:0}.section-heading{justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px;display:flex}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-top:1px solid #e5e7eb;padding:16px}thead th{color:#6b7280;text-transform:uppercase;letter-spacing:.06em;border-top:none;font-size:.85rem}.key-cell,.file-meta{gap:4px;display:grid}.key-cell strong,.file-meta strong{color:#111827}.key-cell span,.file-meta span,.muted{color:#6b7280}.lesson-title{color:#374151;word-break:break-word;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.nowrap-text{white-space:nowrap}.status-pill{border-radius:999px;align-items:center;padding:6px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.status-pill.pending{color:#c2410c;background:#fff7ed}.status-pill.uploaded{color:#047857;background:#ecfdf5}.row-actions{flex-wrap:wrap;gap:12px;display:flex}.nowrap-row-actions{flex-wrap:nowrap}.nowrap-row-actions .button,.nowrap-row-actions .file-button{white-space:nowrap}.modal-backdrop{z-index:10;background:#0f172aa6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:24px;gap:20px;width:min(100%,960px);padding:24px;display:grid;box-shadow:0 30px 80px #0f172a4d}.modal-header{justify-content:space-between;align-items:start;gap:16px;display:flex}.modal-header h2{margin:0 0 6px}.modal-body{gap:12px;display:grid}.modal-body p{color:#4b5563;margin:0}.confirm-modal{width:min(100%,560px)}.modal-actions{flex-wrap:wrap;justify-content:end;gap:12px;display:flex}.preview-player{background:#000;border-radius:18px;width:100%;max-height:70vh}code{color:#312e81;background:#eef2ff;border-radius:8px;padding:1px 6px;display:inline-block}@keyframes pulse{0%{transform:scale(.9);box-shadow:0 0 #4f46e559}70%{transform:scale(1);box-shadow:0 0 0 10px #4f46e500}to{transform:scale(.9);box-shadow:0 0 #4f46e500}}@media (width<=1100px){.hero-panel{grid-template-columns:1fr}.controls-panel,.toolbar,.drop-zone,.modal-header,.modal-actions{flex-direction:column;align-items:stretch}.controls-stack,.search-field,.filter-field{min-width:0}}@media (width<=720px){.app-shell{padding:16px}.hero-panel,.controls-panel,.table-panel,.empty-state,.empty-substate,.modal-card{padding:20px}th,td,.modal-backdrop{padding:12px}}
