/* ============================================================
   RESPONSIVE — Mobile breakpoints
   ============================================================ */

/* ── Tablet (≤ 768px) ── */
@media (max-width: 768px) {
    :root {
        --space-xl: 1.5rem;
        --space-2xl: 2rem;
    }

    .app-main {
        padding: var(--space-md);
    }

    .hero-card {
        padding: var(--space-lg);
    }

    .hero-name {
        font-size: var(--text-2xl);
    }

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

    .game-grid-inner {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }

    .game-group-header {
        font-size: var(--text-sm);
        padding: var(--space-sm) var(--space-md);
        margin-top: var(--space-lg);
    }

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

    .form-row {
        flex-direction: column;
    }

    .session-card-header {
        flex-direction: column;
        gap: var(--space-sm);
    }

    .games-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .games-search {
        max-width: none;
    }

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

    .modal {
        padding: var(--space-lg);
        margin: var(--space-sm);
    }

    .session-add-buttons {
        flex-direction: column;
    }

    .session-detail-admin-bar {
        flex-wrap: wrap;
    }

    .share-url-row {
        flex-direction: column;
    }

    .checkin-form {
        padding: var(--space-md);
    }

    .upcoming-card {
        padding: var(--space-lg);
    }

    .dashboard-events-row {
        flex-direction: column;
    }

    .chat-input-row {
        flex-wrap: wrap;
    }

    .chat-input-row .form-select {
        width: 100%;
    }

    .chat-pin-group {
        width: 100%;
    }

    /* Availability form — stack rows vertically */
    .availability-date-row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-xs);
    }

    .availability-date-label {
        min-width: unset;
    }

    .availability-time-range {
        flex-wrap: wrap;
    }

    /* Calendar */
    .calendar-day {
        min-height: 64px;
    }

    .calendar-dot {
        width: 6px;
        height: 6px;
    }

    .calendar-weekday-full { display: none; }
    .calendar-weekday-short { display: inline; }
}

/* ── Mobile (≤ 480px) ── */
@media (max-width: 480px) {
    .app-header {
        padding: 0 var(--space-md);
    }

    .app-header .logo {
        font-size: var(--text-base);
    }

    .app-nav {
        padding: 0 var(--space-sm);
    }

    .app-nav a {
        padding: var(--space-sm) var(--space-sm);
        font-size: var(--text-xs);
    }

    .hero-card {
        margin-top: 10px;
    }

    .hero-name {
        font-size: var(--text-xl);
    }

    .stats-row {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-sm);
    }

    .stat-card {
        padding: var(--space-sm);
    }

    .stat-value {
        font-size: var(--text-lg);
    }

    .rotation-ring {
        gap: var(--space-sm);
    }

    .rotation-avatar {
        width: 40px;
        height: 40px;
        font-size: var(--text-base);
    }

    .game-grid-inner {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-sm);
    }

    .session-segments {
        flex-direction: column;
    }

    .section-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-sm);
    }

    .session-filters {
        flex-direction: column;
        align-items: stretch;
    }

    .modal {
        padding: var(--space-md);
    }

    .toast-container {
        left: var(--space-md);
        right: var(--space-md);
        bottom: var(--space-md);
    }

    .toast { max-width: none; }

    /* Calendar */
    .calendar-day {
        min-height: 52px;
        padding: 2px;
    }

    .calendar-day-number {
        font-size: 0.65rem;
    }

    .calendar-dot {
        width: 5px;
        height: 5px;
    }

    .calendar-header h3 {
        font-size: var(--text-base);
        min-width: 140px;
    }

    .session-filters {
        gap: var(--space-sm);
    }
}
