@media (max-width: 1180px) {
    .stats-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .login-page {
        grid-template-columns: 1fr;
    }

    .login-visual {
        display: none;
    }

    .login-panel {
        padding: 28px;
    }

    .app-shell {
        display: block;
    }

    .sidebar {
        width: min(86vw, 290px);
        transform: translateX(-105%);
        transition: transform 220ms ease;
    }

    .sidebar.is-open {
        transform: translateX(0);
    }

    .sidebar-overlay {
        position: fixed;
        z-index: 35;
        inset: 0;
        display: none;
        background: rgba(18, 14, 12, 0.45);
        backdrop-filter: blur(2px);
    }

    .sidebar-overlay.is-open {
        display: block;
    }

    .app-main {
        grid-column: auto;
    }

    .mobile-menu-button {
        display: inline-grid;
        flex: 0 0 auto;
        place-items: center;
    }

    .topbar {
        justify-content: flex-start;
        gap: 15px;
        padding: 16px 20px;
    }

    .user-chip {
        margin-left: auto;
    }

    .user-chip-text {
        display: none;
    }

    .page-content {
        padding: 22px 20px 40px;
    }
}

@media (max-width: 680px) {
    .login-panel {
        align-items: flex-start;
        padding: 40px 20px;
    }

    .login-heading h2 {
        font-size: 36px;
    }

    .topbar h1 {
        font-size: 19px;
    }

    .topbar .eyebrow {
        display: none;
    }

    .welcome-banner {
        align-items: flex-start;
        padding: 24px;
    }

    .welcome-icon {
        display: none;
    }

    .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stat-card {
        align-items: flex-start;
        flex-direction: column;
        min-height: 142px;
    }

    .panel-card {
        padding: 19px;
    }
}

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

    .stat-card {
        align-items: center;
        flex-direction: row;
        min-height: 100px;
    }
}
