.dashboard-hero{min-height:calc(100vh - 200px);padding:32px 0 60px;background:radial-gradient(ellipse at top left,rgba(26,35,126,.05),transparent 50%),radial-gradient(ellipse at bottom right,rgba(245,124,0,.04),transparent 50%),#f4f7f6}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px;color:#6c757d}.dashboard-welcome{display:flex;align-items:center;gap:20px;margin-bottom:28px}.dashboard-avatar-placeholder,.dashboard-welcome-avatar img{width:60px;height:60px;border-radius:50%;object-fit:cover}.dashboard-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a237e,#f57c00);color:#fff;font-size:1.6rem;font-weight:700}.dashboard-welcome-title{font-size:1.55rem;font-weight:700;margin:0;color:#1a237e}.dashboard-welcome-title span{color:#f57c00}.dashboard-welcome-sub{margin:2px 0 0;color:#6c757d;font-size:.95rem}.dashboard-stats-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-bottom:8px}.dashboard-stat-card{display:flex;align-items:center;gap:14px;background:#fff;border-radius:16px;padding:20px 22px;box-shadow:0 2px 12px rgba(0,0,0,.05);transition:transform .2s ease,box-shadow .2s ease}.dashboard-stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.08)}.dashboard-stat-card>i{font-size:2rem}.stat-total>i{color:#1a237e}.stat-active>i{color:#f57c00}.stat-completed>i{color:#2e7d32}.dashboard-stat-value{display:block;font-size:1.6rem;font-weight:800;line-height:1;color:#212529}.dashboard-stat-label{font-size:.82rem;color:#6c757d;text-transform:uppercase;letter-spacing:.04em}.dashboard-section{background:#fff;border-radius:18px;padding:28px;box-shadow:0 2px 12px rgba(0,0,0,.05)}.dashboard-section-title{font-size:1.15rem;font-weight:700;color:#1a237e;margin-bottom:22px;display:flex;align-items:center;gap:8px}.dashboard-section-title i{color:#f57c00}.dashboard-enrollment-card{background:#fafbfc;border:1px solid #e9ecef;border-radius:14px;padding:22px;margin-bottom:18px;transition:border-color .2s ease,box-shadow .2s ease}.dashboard-enrollment-card:hover{border-color:#c5cae9;box-shadow:0 4px 16px rgba(26,35,126,.06)}.dashboard-enrollment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.dashboard-enrollment-title{font-size:1.08rem;font-weight:700;margin:0 0 6px}.dashboard-enrollment-title a{color:#212529;text-decoration:none}.dashboard-enrollment-title a:hover{color:#1a237e}.dashboard-enrollment-badge{font-size:.72rem;margin-right:8px}.dashboard-enrollment-meta{font-size:.8rem;color:#6c757d}.dashboard-enrollment-progress-ring{flex-shrink:0}.dashboard-ring-svg{width:64px;height:64px}.dashboard-ring-bg{fill:none;stroke:#e9ecef;stroke-width:3.5}.dashboard-ring-fill{fill:none;stroke:url(#ring-gradient);stroke-width:3.5;stroke-linecap:round;transition:stroke-dasharray .6s ease}.dashboard-ring-text{fill:#1a237e;font-size:.48rem;font-weight:700;text-anchor:middle}.dashboard-enrollment-card .dashboard-ring-fill{stroke:#f57c00}.dashboard-progress-track{position:relative;height:10px;background:#e9ecef;border-radius:10px;overflow:hidden;margin-bottom:16px}.dashboard-progress-fill{height:100%;background:linear-gradient(90deg,#f57c00,#00bcd4);border-radius:10px;transition:width .6s ease}.dashboard-progress-label{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:.6rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.dashboard-milestones-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.dashboard-milestone-chip{display:inline-flex;align-items:center;gap:5px;background:#f1f3f5;border:1px solid #dee2e6;border-radius:20px;padding:5px 12px;font-size:.78rem;color:#495057;transition:all .2s ease}.dashboard-milestone-chip.done{background:#e8f5e9;border-color:#a5d6a7;color:#2e7d32}.dashboard-milestone-chip.done i{color:#2e7d32}.dashboard-milestone-chip i{font-size:.85rem;color:#adb5bd}.dashboard-milestone-chip.quiz-locked{background:#fff3e0;border-color:#ffcc80;color:#e65100}.dashboard-milestone-chip.quiz-locked i{color:#e65100}.dashboard-nudge-quiz-info{display:flex;align-items:flex-start;gap:6px;background:#fff3e0;border:1px solid #ffcc80;border-radius:8px;padding:10px 14px;font-size:.82rem;color:#4e342e;line-height:1.5}.dashboard-nudge-quiz-info i{color:#e65100;flex-shrink:0;margin-top:2px}.dashboard-nudge-quiz-info a{color:#f57c00;font-weight:600;text-decoration:underline}.dashboard-milestone-weight{font-size:.68rem;color:#868e96;font-weight:600}.dashboard-nudge{display:flex;gap:14px;background:linear-gradient(135deg,#fff8e1,#fff3e0);border:1px solid #ffe0b2;border-radius:12px;padding:14px 18px;margin-top:4px}.dashboard-nudge-icon{font-size:1.5rem;color:#f57c00;flex-shrink:0;margin-top:2px}.dashboard-nudge-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#f57c00;font-weight:700;display:block;margin-bottom:2px}.dashboard-nudge-text{font-size:.88rem;color:#4e342e;margin:0 0 8px;line-height:1.5}.dashboard-nudge-btn{background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.8rem;padding:6px 16px;transition:all .2s ease}.dashboard-nudge-btn:hover{background:linear-gradient(135deg,#e65100,#f57c00);transform:scale(1.03);color:#fff}.dashboard-timeline{position:relative;padding-left:28px}.dashboard-timeline:before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:#e0e0e0;border-radius:2px}.dashboard-timeline-item{position:relative;padding-bottom:20px}.dashboard-timeline-item:last-child{padding-bottom:0}.dashboard-timeline-dot{position:absolute;left:-28px;top:2px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;background:#e0e0e0;color:#fff}.dashboard-timeline-dot.enrollment{background:linear-gradient(135deg,#1a237e,#3f51b5)}.dashboard-timeline-dot.milestone{background:linear-gradient(135deg,#2e7d32,#66bb6a)}.dashboard-timeline-dot.exam{background:linear-gradient(135deg,#f57c00,#ffb74d)}.dashboard-timeline-message{font-size:.88rem;color:#212529;margin:0 0 2px;font-weight:500}.dashboard-timeline-time{font-size:.75rem;color:#868e96}.dashboard-empty-timeline{text-align:center;color:#adb5bd;padding:30px 10px}.dashboard-empty-timeline i{font-size:2.5rem;display:block;margin-bottom:10px}.dashboard-empty-state,.dashboard-unauthenticated{text-align:center;padding:40px 20px}.dashboard-empty-state i,.dashboard-unauth-card i{font-size:3rem;color:#c5cae9;display:block;margin-bottom:12px}.dashboard-empty-state h5,.dashboard-unauth-card h3{font-weight:700;color:#1a237e}.dashboard-empty-state p,.dashboard-unauth-card p{color:#6c757d;max-width:400px;margin:8px auto 20px}.dashboard-unauth-card{background:#fff;border-radius:20px;padding:48px 32px;max-width:480px;margin:60px auto;box-shadow:0 4px 24px rgba(0,0,0,.06)}.dashboard-cta-btn{background:linear-gradient(135deg,#1a237e,#3949ab);color:#fff;border:none;border-radius:10px;padding:10px 28px;font-weight:600;font-size:.95rem;transition:all .2s ease}.dashboard-cta-btn:hover{background:linear-gradient(135deg,#0d1557,#1a237e);transform:translateY(-1px);color:#fff}.enroll-roadmap-btn{background:linear-gradient(135deg,#f57c00,#ff9800);color:#fff;border:none;border-radius:12px;padding:14px 24px;font-weight:700;font-size:1rem;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 14px rgba(245,124,0,.25)}.enroll-roadmap-btn:hover{background:linear-gradient(135deg,#e65100,#f57c00);transform:translateY(-2px);box-shadow:0 6px 20px rgba(245,124,0,.35);color:#fff}.enroll-roadmap-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.enrolled-badge-card{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border:1px solid #a5d6a7;border-radius:12px;padding:14px 20px;display:flex;align-items:center;gap:12px;width:100%}.enrolled-badge-card i{color:#2e7d32;font-size:1.4rem}.enrolled-badge-card .enrolled-info{flex:1 1}.enrolled-badge-card .enrolled-title{font-weight:700;color:#2e7d32;font-size:.9rem}.enrolled-badge-card .enrolled-sub{font-size:.78rem;color:#558b2f}.student-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,rgba(245,124,0,.08),transparent 40%),linear-gradient(135deg,#f8f9fa,#e8eaf6);padding:32px 16px}.student-login-card{background:#fff;border-radius:24px;box-shadow:0 8px 40px rgba(0,0,0,.08);max-width:440px;width:100%;overflow:hidden}.student-login-header{background:linear-gradient(135deg,#1a237e,#283593);padding:32px 28px 24px;text-align:center;color:#fff}.student-login-header h2{font-size:1.5rem;font-weight:800;margin:8px 0 4px}.student-login-header p{font-size:.88rem;color:rgba(255,255,255,.8);margin:0}.student-login-body{padding:28px}.student-login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#adb5bd;font-size:.82rem}.student-login-divider:after,.student-login-divider:before{content:"";flex:1 1;height:1px;background:#dee2e6}.student-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border:2px solid #e0e0e0;border-radius:12px;background:#fff;font-weight:600;color:#212529;font-size:.95rem;cursor:pointer;transition:all .2s ease}.student-google-btn:hover{border-color:#1a237e;background:#f8f9ff}.student-form-group{margin-bottom:16px}.student-form-group label{display:block;font-size:.82rem;font-weight:600;color:#495057;margin-bottom:6px}.student-form-group input{width:100%;padding:10px 14px;border:2px solid #e9ecef;border-radius:10px;font-size:.95rem;transition:border-color .2s ease;outline:none}.student-form-group input:focus{border-color:#1a237e}.student-submit-btn{width:100%;padding:12px;background:linear-gradient(135deg,#1a237e,#3949ab);color:#fff;border:none;border-radius:12px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .2s ease}.student-submit-btn:hover{background:linear-gradient(135deg,#0d1557,#1a237e)}.student-submit-btn:disabled{opacity:.7;cursor:not-allowed}.student-login-footer{text-align:center;padding:0 28px 24px;font-size:.85rem;color:#6c757d}.student-login-footer a{color:#1a237e;font-weight:600;text-decoration:none}.student-login-error{background:#fdeaea;color:#c62828;border-radius:8px;padding:10px 14px;font-size:.85rem;margin-bottom:14px}@media (max-width:768px){.dashboard-stats-row{grid-template-columns:1fr}.dashboard-enrollment-header{flex-direction:column;gap:12px}.dashboard-enrollment-progress-ring{align-self:flex-start}.dashboard-welcome{flex-direction:column;text-align:center}}.admin-milestones-form .form-control,.admin-milestones-form .form-select{border-radius:8px}.milestone-list-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fafbfc;border:1px solid #e9ecef;border-radius:10px;margin-bottom:8px;transition:border-color .2s ease}.milestone-list-item:hover{border-color:#c5cae9}.milestone-list-item .milestone-order{width:30px;height:30px;border-radius:50%;background:#1a237e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}.milestone-list-item .milestone-info{flex:1 1}.milestone-list-item .milestone-name{font-weight:600;font-size:.92rem}.milestone-list-item .milestone-details{font-size:.78rem;color:#6c757d}.milestone-list-item .milestone-actions{display:flex;gap:6px}