@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--ink:#13172a;--muted:#6b7280;--primary:#635bff;--primary-dark:#4f46e5;--surface:#fff;--bg:#f5f7fb;--radius:1.35rem;--shadow:0 24px 70px rgba(24,30,64,.13)}*{box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink)}.login-body{background:#101329;min-height:100vh;overflow-x:hidden}.ambient{position:fixed;border-radius:50%;filter:blur(8px);opacity:.45;animation:float 9s ease-in-out infinite}.ambient-one{width:36rem;height:36rem;background:#5145cd;top:-18rem;left:-10rem}.ambient-two{width:26rem;height:26rem;background:#06b6d4;right:-12rem;bottom:-12rem;animation-delay:-4s}.login-card{max-width:1080px;min-height:650px;border-radius:1.75rem;box-shadow:0 35px 100px rgba(0,0,0,.35);animation:rise .65s ease-out}.login-visual{background:linear-gradient(145deg,rgba(78,70,229,.92),rgba(20,28,70,.97)),radial-gradient(circle at 75% 25%,#22d3ee,transparent 45%);color:white}.brand,.navbar-brand{font-size:1.45rem;font-weight:800;letter-spacing:-.04em}.brand span,.navbar-brand span{color:#8b85ff}.brand-mark{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;margin-right:.4rem;border-radius:.75rem;background:linear-gradient(135deg,#756eff,#4f46e5);color:#fff;box-shadow:0 8px 20px rgba(99,91,255,.35)}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.login-form-wrap{display:flex;align-items:center}.form-inner{width:100%;max-width:430px}.form-control,.input-group-text,.password-toggle{border-color:#e5e7eb;background:#f8fafc}.input-group-text{border-right:0;color:#8b92a5;padding-left:1rem}.input-group .form-control{border-left:0;padding-left:.25rem}.input-group .form-control:focus{background:#fff;box-shadow:none;border-color:#a5a1ff}.input-group:focus-within .input-group-text,.input-group:focus-within .password-toggle{background:#fff;border-color:#a5a1ff}.password-toggle{border-left:0;color:#777f91}.login-button{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:0;min-height:3.5rem;box-shadow:0 12px 24px rgba(99,91,255,.25);transition:.25s}.login-button:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(99,91,255,.35)}.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}.app-body{background:var(--bg);min-height:100vh}.glass-nav{background:rgba(18,22,47,.96);backdrop-filter:blur(18px);min-height:72px;box-shadow:0 5px 30px rgba(15,18,42,.15)}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;font-weight:700;background:linear-gradient(135deg,#7c75ff,#22d3ee);color:#fff}.dashboard-shell{padding:104px 1rem 2rem;max-width:1500px}.hero-panel{background:linear-gradient(125deg,#fff 60%,#ebeaff);border:1px solid #e9eaf2;border-radius:var(--radius);box-shadow:0 12px 45px rgba(31,38,78,.06)}.role-pill{display:inline-flex;align-items:center;padding:.7rem 1rem;border-radius:2rem;background:#efefff;color:#5149dc;font-weight:700}.stat-card,.content-card{background:var(--surface);border:1px solid #e9eaf2;border-radius:var(--radius);box-shadow:0 10px 30px rgba(31,38,78,.055);transition:transform .25s,box-shadow .25s}.stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;height:100%}.stat-card:hover,.content-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(31,38,78,.1)}.stat-card strong{font-size:1.65rem;display:block}.stat-icon{width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;font-size:1.3rem;flex:0 0 auto}.purple{background:#efefff;color:#5c54e8}.cyan{background:#e6fafe;color:#0891b2}.orange{background:#fff4e5;color:#ea8a15}.green{background:#e8f9f0;color:#159766}.content-card{padding:1.5rem}.quick-link{border:1px solid #edf0f5;background:#fafbfc;border-radius:1rem;padding:1rem;display:flex;align-items:center;gap:.9rem;transition:.22s;color:var(--ink)}.quick-link:hover{background:#fff;border-color:#c9c7ff;transform:translateX(3px)}.quick-link strong,.quick-link small{display:block}.quick-link small{color:var(--muted);margin-top:.15rem}.timeline{border-left:2px solid #e5e7eb;margin-left:.55rem}.timeline-item{display:flex;gap:1rem;position:relative;padding:0 0 1.6rem 1.3rem}.timeline-item:before{content:'';position:absolute;left:-.45rem;top:.3rem;width:.8rem;height:.8rem;border-radius:50%;background:var(--primary);box-shadow:0 0 0 5px #efefff}.timeline-item>span{color:var(--primary);font-size:.65rem;font-weight:800;min-width:3.1rem}.timeline-item strong,.timeline-item small{display:block}.timeline-item small{color:var(--muted);margin-top:.25rem}.reveal{animation:rise .5s both}.delay-1{animation-delay:.08s}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translate(20px,25px) scale(1.06)}}@media(max-width:575.98px){.login-body{background:#f7f8fc}.ambient{display:none}.login-card{min-height:calc(100vh - 2rem);border-radius:1.25rem;box-shadow:0 15px 50px rgba(24,30,64,.12)}.login-form-wrap{align-items:flex-start}.dashboard-shell{padding-top:92px}.hero-panel,.content-card{padding:1.25rem!important}.stat-card{padding:1rem}.display-6{font-size:1.8rem}.quick-link small{font-size:.73rem}.glass-nav .navbar-brand{font-size:1.15rem}.glass-nav .brand-mark{width:2rem;height:2rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Production dashboard */
.glass-nav .nav-link{color:rgba(255,255,255,.68);font-size:.88rem;font-weight:600;padding:.55rem .85rem;border-radius:.65rem;transition:.2s}.glass-nav .nav-link:hover,.glass-nav .nav-link.active{color:#fff;background:rgba(255,255,255,.1)}.dashboard-hero{position:relative;overflow:hidden}.dashboard-hero:after{content:'';position:absolute;width:18rem;height:18rem;border-radius:50%;right:-5rem;top:-9rem;background:radial-gradient(circle,rgba(99,91,255,.18),transparent 68%);pointer-events:none}.status-dot{width:.55rem;height:.55rem;border-radius:50%;background:#22c55e;box-shadow:0 0 0 .3rem rgba(34,197,94,.12);animation:pulse-status 2s infinite}.min-w-0{min-width:0}.stat-label{font-size:.82rem}.course-list{display:grid}.course-row{display:flex;align-items:center;gap:1rem;padding:1rem .25rem;color:var(--ink);text-decoration:none;border-bottom:1px solid #edf0f5;transition:.2s}.course-row:last-child{border-bottom:0}.course-row:hover{padding-left:.7rem;padding-right:.7rem;background:#f8f8ff;border-radius:.85rem}.course-index{font-size:.7rem;font-weight:800;color:#969bad;letter-spacing:.08em}.course-meta{align-items:center;gap:1rem;font-size:.75rem;color:var(--muted)}.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.empty-state>i{display:block;font-size:2.5rem;color:#aaa6ff;margin-bottom:1rem}.empty-state h3{color:var(--ink)}.mobile-menu{--bs-offcanvas-width:min(88vw,360px)}.mobile-profile{display:flex;align-items:center;gap:.8rem;padding:1rem;background:#f5f6fb;border-radius:1rem}.mobile-profile small{display:block;color:var(--muted)}.mobile-nav-link{display:flex;align-items:center;gap:.85rem;color:var(--ink);text-decoration:none;font-weight:650;padding:.9rem 1rem;border-radius:.8rem}.mobile-nav-link i{color:var(--primary);font-size:1.2rem}.mobile-nav-link:hover{background:#efefff;color:var(--primary)}@keyframes pulse-status{50%{box-shadow:0 0 0 .5rem rgba(34,197,94,0)}}@media(max-width:575.98px){.dashboard-hero .lead{font-size:1rem}.stat-card{display:block}.stat-card .stat-icon{margin-bottom:.65rem;width:2.65rem;height:2.65rem}.stat-card strong{font-size:1.4rem}.stat-label{font-size:.7rem;line-height:1.2;display:block}.course-row{gap:.65rem}.course-index{display:none}}
.category-card{padding:1.25rem;border:1px solid #e8eaf1;border-radius:1rem;background:#fff;transition:.22s}.category-card:hover{transform:translateY(-3px);border-color:#c9c7ff;box-shadow:0 14px 35px rgba(31,38,78,.08)}.category-description{min-height:2.7rem}.quick-link-featured{border-color:#bdebd0;background:#f3fcf7}.quick-link-featured:hover{border-color:#55c888}.modal-content{border:0;border-radius:1.25rem;box-shadow:0 30px 80px rgba(20,25,55,.2)}
.video-dropzone{min-height:210px;border:2px dashed #aaa6ff;border-radius:1.15rem;background:linear-gradient(145deg,#fafaff,#f3f7ff);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem;cursor:pointer;color:var(--ink);transition:.25s}.video-dropzone:hover,.video-dropzone.is-dragging{border-color:var(--primary);background:#efefff;transform:translateY(-2px)}.video-dropzone.has-file{border-color:#22a867;background:#f1fbf6}.video-dropzone>span{color:var(--muted);font-size:.86rem}.video-dropzone small{margin-top:.75rem;padding:.4rem .75rem;border-radius:2rem;background:#fff;color:var(--primary);font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis}.upload-icon{width:3.5rem;height:3.5rem!important;display:grid;place-items:center;border-radius:1rem;background:#e8e7ff;color:var(--primary)!important;font-size:1.65rem!important;margin-bottom:.75rem}.video-player-wrap{background:#0c1020;border-radius:1rem;overflow:hidden;aspect-ratio:16/9;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}.course-video{display:block;width:100%;height:100%;object-fit:contain}.lesson-card{overflow:hidden}
.validation-alert{color:#7f1d1d;background:#fff7f7;border:1px solid #fecaca;border-left:4px solid #dc3545;border-radius:1rem;box-shadow:0 10px 30px rgba(127,29,29,.08);padding:1rem 3rem 1rem 1rem}.validation-alert-icon{width:2.35rem;height:2.35rem;display:grid;place-items:center;flex:0 0 auto;border-radius:.7rem;background:#fee2e2;color:#dc3545}.validation-alert li+li{margin-top:.25rem}

/* academIA-T identity */
.app-logo{display:block;width:4.5rem;height:auto;object-fit:contain;border-radius:.55rem;flex:0 0 auto}.login-visual .app-logo{width:9rem;vertical-align:middle;box-shadow:0 12px 30px rgba(0,0,0,.18)}.mobile-menu .app-logo{width:6.5rem}

/* Sequential course player */
.course-learning-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(19rem,1fr);gap:1.5rem;align-items:start}.course-stage{min-width:0}.course-stage .video-player-wrap{border-radius:1.25rem}.course-outline{position:sticky;top:96px;max-height:calc(100vh - 120px);display:flex;flex-direction:column}.course-outline-list{overflow-y:auto;display:grid;gap:.55rem;padding-right:.25rem}.outline-lesson{display:grid;grid-template-columns:2.25rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.8rem;border:1px solid #e8eaf1;border-radius:.9rem;color:var(--ink);text-decoration:none;background:#fff;transition:.2s}.outline-lesson:hover{border-color:#aaa6ff;background:#f8f8ff}.outline-lesson.active{border-color:var(--primary);background:#efefff;box-shadow:0 8px 22px rgba(99,91,255,.12)}.outline-number{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:50%;background:#f0f1f5;font-size:.75rem;font-weight:800}.outline-lesson.completed .outline-number{background:#dcfce7;color:#15803d}.outline-lesson-title{font-size:.86rem;font-weight:700;line-height:1.25}.outline-lesson small{display:block;color:var(--muted);margin-top:.2rem}.learning-progress-label{font-size:.8rem;font-weight:700}.review-item{border-bottom:1px solid #edf0f5;padding-bottom:1rem}.review-item:last-child{border-bottom:0;padding-bottom:0}@media(max-width:991.98px){.course-learning-grid{grid-template-columns:1fr}.course-outline{position:static;max-height:none}.course-outline-list{max-height:30rem}}
