.course-card-green{--card-from:#003d35;--card-to:#001a16;--card-accent:#01c3a8;--bar-color:#01c3a8}.course-card-blue{--card-from:#0c2340;--card-to:#050f1c;--card-accent:#1890ff;--bar-color:#1890ff}.course-card-orange{--card-from:#3d2800;--card-to:#1a1000;--card-accent:#ffb741;--bar-color:#ffb741}.course-card-red{--card-from:#3d0d00;--card-to:#1a0500;--card-accent:#e05252;--bar-color:#e05252}.course-card-purple{--card-from:#1e0a3d;--card-to:#0d0520;--card-accent:#8b5cf6;--bar-color:#8b5cf6}.course-card-completed{--card-from:#1c1c1c;--card-to:#111;--card-accent:#4b5563;--bar-color:#4b5563;filter:grayscale(.6);opacity:.75}.course-card{background:linear-gradient(145deg, var(--card-from) 0%, var(--card-to) 100%);border:1px solid #ffffff0f;border-radius:20px;flex-direction:column;padding:0;transition:transform .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden}.course-card:hover{transform:translateY(-4px);box-shadow:0 20px 48px #00000080}.course-card-completed:hover{box-shadow:none;transform:none}.course-card:before{content:"";background:radial-gradient(circle, var(--card-accent) 0%, transparent 70%);opacity:.12;pointer-events:none;border-radius:50%;width:120px;height:120px;position:absolute;top:0;right:0;transform:translate(30%,-30%)}.course-card-header{justify-content:space-between;align-items:center;padding:1.25rem 1.25rem .75rem;display:flex}.course-card-date{color:#ffffff59;letter-spacing:.04em;font-size:.72rem}.course-card-body{flex:1;padding:0 1.25rem 1.25rem}.course-card-title{color:#fff;letter-spacing:-.02em;margin-bottom:.2rem;font-size:1.2rem;font-weight:800;line-height:1.2}.course-card-subtitle{color:#fff6;margin-bottom:1rem;font-size:.8rem}.course-progress-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.72rem;font-weight:700}.course-progress-track{background:#ffffff14;border-radius:999px;height:6px;margin-bottom:.3rem;overflow:hidden}.course-progress-fill{background:var(--bar-color);border-radius:999px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.course-progress-value{text-align:right;color:var(--card-accent);font-size:.8rem;font-weight:700}.course-meta{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.course-meta-tag{color:#ffffff8c;background:#ffffff0f;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.7rem;display:inline-flex}.course-description{color:#ffffff61;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.75rem;font-size:.8rem;line-height:1.6;display:-webkit-box;overflow:hidden}.course-card-footer{border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1.25rem;display:flex}.course-countdown{color:#ffffff8c;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;padding:.35rem 1rem;font-size:.75rem;font-weight:500}.course-countdown.upcoming{color:var(--card-accent);border-color:var(--card-accent);background:#ffffff08}.status-badge{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.68rem;font-weight:700;display:inline-flex}.status-badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-ongoing{color:#01c3a8;background:#01c3a81f}.status-ongoing .status-badge-dot{background:#01c3a8;animation:2s infinite pulseDot}.status-completed{color:#9ca3af;background:#6b72801f}.status-completed .status-badge-dot{background:#9ca3af}.status-upcoming{color:#a78bfa;background:#8b5cf61f}.status-upcoming .status-badge-dot{background:#a78bfa}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}.prereq-list{flex-direction:column;gap:.3rem;margin-top:.6rem;display:flex}.prereq-item{color:#fff6;align-items:center;gap:.4rem;font-size:.72rem;display:flex}.prereq-item:before{content:"";background:var(--card-accent);border-radius:50%;flex-shrink:0;width:4px;height:4px}.course-filters{flex-wrap:wrap;gap:.5rem;display:flex}.filter-tab{cursor:pointer;color:#ffffff73;white-space:nowrap;background:#ffffff08;border:1px solid #ffffff1a;border-radius:999px;padding:.45rem 1.1rem;font-size:.8rem;font-weight:600;transition:all .2s}.filter-tab:hover{color:#fff;border-color:#ffffff40}.filter-tab.active-all{color:#fff;background:#ffffff14;border-color:#fff3}.filter-tab.active-ongoing{color:#01c3a8;background:#01c3a81f;border-color:#01c3a8}.filter-tab.active-completed{color:#9ca3af;background:#6b72801f;border-color:#9ca3af}.filter-tab.active-upcoming{color:#a78bfa;background:#8b5cf61f;border-color:#a78bfa}.course-card{cursor:pointer}.course-modal-overlay{z-index:999;-webkit-backdrop-filter:blur(16px);background:#030303b3;justify-content:center;align-items:center;padding:1.5rem;animation:.2s overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.course-modal{background:linear-gradient(160deg, var(--card-from) 0%, var(--card-to) 100%);scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;border:1px solid #ffffff14;border-radius:24px;width:100%;max-width:680px;max-height:90vh;animation:.28s cubic-bezier(.34,1.56,.64,1) modalIn;position:relative;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:scale(.92)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.course-modal:before{content:"";background:radial-gradient(circle, var(--card-accent) 0%, transparent 70%);opacity:.1;pointer-events:none;border-radius:50%;width:200px;height:200px;position:absolute;top:0;right:0;transform:translate(30%,-30%)}.modal-close{color:#fff9;cursor:pointer;z-index:10;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:#fff;background:#ffffff1f;border-color:#ffffff40}.modal-header{padding:2rem 2rem 1.25rem}.modal-status-row{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.modal-title{color:#fff;letter-spacing:-.03em;margin-bottom:.5rem;font-size:1.75rem;font-weight:800;line-height:1.15}.modal-meta-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin:1.5rem 0;display:grid}.modal-meta-item{background:#ffffff0a;border:1px solid #ffffff12;border-radius:14px;padding:.9rem 1rem}.modal-meta-label{color:#ffffff4d;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem;font-size:.65rem;font-weight:700}.modal-meta-value{color:var(--card-accent);font-size:1rem;font-weight:700}.modal-body{padding:0 2rem 2rem}.modal-section-title{text-transform:uppercase;letter-spacing:.1em;color:#ffffff4d;margin-bottom:.75rem;font-size:.7rem;font-weight:700}.modal-description{color:#fff9;margin-bottom:1.75rem;font-size:.9rem;line-height:1.8}.modal-prereq-list{flex-direction:column;gap:.5rem;margin-bottom:1.75rem;display:flex}.modal-prereq-item{color:#ffffff8c;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .9rem;font-size:.85rem;display:flex}.modal-prereq-dot{background:var(--card-accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.modal-progress-bar{background:#ffffff12;border-radius:999px;height:8px;margin-bottom:.4rem;overflow:hidden}.modal-progress-fill{background:var(--bar-color);border-radius:999px;height:100%}.modal-cta{border-top:1px solid #ffffff0f;flex-wrap:wrap;gap:.75rem;padding-top:1.25rem;display:flex}.modal-btn-primary{background:var(--card-accent);color:#000;cursor:pointer;border:none;border-radius:12px;flex:1;min-width:160px;height:48px;font-size:.9rem;font-weight:700;transition:opacity .2s,transform .2s}.modal-btn-primary:hover{opacity:.85;transform:translateY(-1px)}.modal-btn-primary:disabled{opacity:.35;cursor:not-allowed;transform:none}.modal-btn-secondary{color:#ffffff8c;cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:12px;height:48px;padding:0 1.5rem;font-size:.88rem;font-weight:500;transition:all .2s}.modal-btn-secondary:hover{color:#fff;border-color:#ffffff4d}.modal-duration-badge{background:#ffffff0a;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:.6rem;margin-bottom:1.25rem;padding:.75rem 1.25rem;display:flex}.modal-duration-text{color:var(--card-accent);letter-spacing:-.03em;font-size:1.5rem;font-weight:800}.modal-duration-sub{color:#ffffff59;font-size:.78rem;font-weight:500}.modal-curriculum{flex-direction:column;gap:.5rem;margin-bottom:1.75rem;display:flex}.modal-curriculum-item{background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;align-items:center;gap:.85rem;padding:.65rem .9rem;transition:background .2s;display:flex}.modal-curriculum-item:hover{background:#ffffff0f}.modal-curriculum-week{background:#ffffff12;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.modal-curriculum-num{color:var(--card-accent);font-size:.72rem;font-weight:700}.modal-curriculum-content{flex-direction:column;gap:.1rem;display:flex}.modal-curriculum-label{color:#ffffff4d;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;font-weight:700}.modal-curriculum-topic{color:#fffc;font-size:.88rem;font-weight:600}@media (max-width:640px){.course-modal-overlay{align-items:flex-end;padding:0;overflow:hidden}.course-modal{border-radius:24px 24px 0 0;width:100%;max-width:100%;max-height:92vh;margin:0;animation:.3s cubic-bezier(.34,1.2,.64,1) modalInMobile;overflow-x:hidden}@keyframes modalInMobile{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-header,.modal-body{overflow-x:hidden}.modal-meta-grid{grid-template-columns:1fr 1fr}.modal-cta{flex-direction:column}.modal-btn-primary,.modal-btn-secondary{text-align:center;width:100%}}
