/* ═══════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════ */
@media (max-width: 768px) {
    .calc-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .calc-right {
        position: static;
        height: auto;
    }

    .nav-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        background: rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        z-index: 105;
        opacity: 0;
        visibility: hidden;
        transition: opacity 300ms var(--ease), visibility 300ms var(--ease);
    }

    .nav-overlay.active {
        opacity: 1;
        visibility: visible;
    }

    .topbar-nav {
        display: flex;
        position: fixed;
        top: 0;
        right: -100%;
        height: 100vh;
        height: 100dvh;
        width: 80%;
        max-width: 320px;
        background: var(--surface);
        opacity: 1;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        flex-direction: column;
        padding: 80px 24px 24px;
        margin: 0;
        gap: 20px;
        box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
        align-items: flex-start;
        justify-content: flex-start;
        z-index: 110;
        transform: translateX(0);
        transition: right 300ms ease-in-out;
    }

    .topbar-nav.active {
        right: 0;
    }

    .btn-close-menu {
        display: block;
        position: absolute;
        top: 24px;
        right: 24px;
        background: transparent;
        border: none;
        color: var(--text-1);
        padding: 8px;
        cursor: pointer;
    }

    .mobile-menu-btn {
        display: block;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 60px 24px 40px;
    }

    .footer-col {
        align-items: center;
        text-align: center;
    }

    .footer-brand-logo {
        width: 100%;
    }

    .footer-brand-logo img {
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .footer-nav {
        justify-content: center;
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
        gap: 12px;
    }
}

@media (max-width: 640px) {
    .stats-row {
        grid-template-columns: 1fr;
    }

    .stat+.stat {
        border-left: none;
        border-top: 1px solid var(--border-subtle);
    }

    .fail-alert {
        margin: 0 16px 16px;
    }
}

/* Mobile: 2-line stacked layout */
@media (max-width: 480px) {
    .course-list-header {
        display: none;
    }

    .course-row {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px;
        gap: 12px;
        padding: 16px var(--space-card);
    }

    .course-row > :first-child {
        grid-column: 1 / -1;
        margin-bottom: 4px;
    }

    .course-row .btn-remove {
        margin-top: 0;
        align-self: flex-end;
    }

    #cgpa-semesters .course-row {
        grid-template-columns: minmax(0, 1fr) 80px 44px;
    }
    
    #cgpa-semesters .course-row > :first-child {
        grid-column: auto;
        margin-bottom: 0;
    }
}

@media (max-width: 420px) {
    .card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}