/* ═══════════════════════════════════════════════════════
   Gradelytics  –  Responsive Overrides
   ═══════════════════════════════════════════════════════ */

/* ── Tablet (≤ 1024px) ── */
@media (max-width: 1024px) {
    .kpi-grid {
        grid-template-columns: repeat(3, 1fr);
    }

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

    .input-card {
        padding: var(--sp-4);
    }

    .welcome-stats {
        gap: var(--sp-4);
    }
}

/* ── Mobile (≤ 768px) ── */
@media (max-width: 768px) {
    main {
        margin-left: 0;
        padding: var(--sp-4);
    }

    section {
        padding: var(--sp-5);
        border-radius: var(--radius-md);
    }

    .sidebar {
        transform: translateX(-100%);
        transition: transform var(--duration-slow) var(--ease-out);
        width: 260px;
        background: var(--chrome-bg);
    }

    .sidebar.active {
        transform: translateX(0);
        box-shadow: var(--shadow-xl);
    }

    .menu-toggle {
        display: flex;
    }

    header {
        padding-left: 56px;
    }

    .kpi-grid {
        grid-template-columns: 1fr;
        gap: var(--sp-3);
    }

    .kpi-card {
        padding: var(--sp-4) var(--sp-5);
    }

    .kpi-value {
        font-size: 24px;
    }

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

    .chart-wrap {
        height: 220px;
    }

    .chart-wrap--pie {
        height: 240px;
    }

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

    .achievement-grid--improvements {
        grid-template-columns: 1fr;
    }

    .achievement-kpi-strip {
        grid-template-columns: 1fr;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .form-row--thirds {
        grid-template-columns: 1fr 1fr;
    }

    .input-split {
        grid-template-columns: 1fr;
    }

    /* ── Welcome Banner Mobile ── */
    .welcome-banner {
        padding: var(--sp-5);
        border-radius: var(--radius-lg);
    }

    .welcome-content {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-4);
    }

    .welcome-headline {
        font-size: 20px;
    }

    .welcome-stats {
        width: 100%;
        justify-content: space-between;
    }

    .welcome-stat-value {
        font-size: 22px;
    }

    .welcome-stat-divider {
        height: 32px;
    }

    /* ── Chat modal ── */
    .chat-modal {
        width: calc(100vw - 32px);
        right: 16px;
        bottom: 80px;
        height: 60vh;
        max-height: calc(100vh - 120px);
        border-radius: var(--radius-lg);
    }

    .chat-fab {
        bottom: 16px;
        right: 16px;
        width: 50px;
        height: 50px;
        font-size: 24px;
    }

    /* ── Table mobile card layout ── */
    .table-wrap {
        border-radius: var(--radius-md);
    }

    #marks-table thead {
        display: none;
    }

    #marks-table,
    #marks-table tbody,
    #marks-table tr,
    #marks-table td {
        display: block;
    }

    #marks-table tr {
        border: 1px solid var(--border);
        border-radius: var(--radius-md);
        padding: var(--sp-3) var(--sp-4);
        margin-bottom: var(--sp-3);
        background: var(--surface);
    }

    #marks-table td {
        padding: 6px 0;
        border-bottom: 1px solid var(--border);
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    #marks-table td:last-child {
        border-bottom: none;
    }

    #marks-table td::before {
        content: attr(data-label);
        font-weight: 600;
        font-size: 12px;
        color: var(--muted);
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .td-actions {
        justify-content: flex-end;
    }

    #marks-table tbody tr:hover {
        transform: none;
    }

    /* ── Settings mobile ── */
    .settings-row {
        grid-template-columns: 1fr;
    }

    .settings-danger-row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-3);
    }

    .settings-name-actions {
        flex-direction: column;
        align-items: stretch;
        gap: var(--sp-3);
    }

    .settings-name-actions .btn,
    .settings-danger-row .btn {
        width: 100%;
    }

    /* ── AI Hub mobile ── */
    .whatif-form {
        grid-template-columns: 1fr;
    }

    .whatif-weight-seg {
        padding: 6px 10px;
        font-size: 11px;
    }

    .ai-tab {
        padding: 10px 14px;
        font-size: 13px;
    }

    .ai-panel-header {
        padding: var(--sp-4);
    }

    .ai-chat-body {
        height: 60vh;
    }

    /* ── Modals ── */
    .modal {
        max-width: calc(100vw - 32px);
    }
}

/* ── Small mobile (≤ 480px) ── */
@media (max-width: 480px) {
    main {
        padding: var(--sp-3);
    }

    section {
        padding: var(--sp-4);
    }

    .section-header h2 {
        font-size: 18px;
    }

    .form-row--thirds {
        grid-template-columns: 1fr;
    }

    .kpi-card {
        padding: var(--sp-3) var(--sp-4);
    }

    .kpi-icon {
        width: 38px;
        height: 38px;
        font-size: 18px;
    }

    .kpi-value {
        font-size: 22px;
    }

    .chart-wrap {
        height: 200px;
    }

    .chart-wrap--pie {
        height: 220px;
    }

    .welcome-banner {
        padding: var(--sp-4);
    }

    .welcome-headline {
        font-size: 18px;
    }

    .welcome-sub {
        font-size: 13px;
    }

    .welcome-stat-value {
        font-size: 20px;
    }

    .welcome-stat-label {
        font-size: 10px;
    }

    .section-tag {
        font-size: 10px;
        padding: 3px 10px;
    }

    .chat-modal {
        width: calc(100vw - 16px);
        right: 8px;
        bottom: 72px;
        height: 55vh;
        border-radius: var(--radius-md);
    }

    .chat-fab {
        bottom: 12px;
        right: 12px;
        width: 46px;
        height: 46px;
        font-size: 22px;
    }

    .chat-modal-header {
        padding: var(--sp-3) var(--sp-4);
        font-size: 14px;
    }

    .chat-modal-body .suggested-prompts {
        padding: var(--sp-2) var(--sp-3);
        gap: 4px;
        overflow-x: auto;
        flex-wrap: nowrap;
        justify-content: flex-start;
    }

    .chat-modal-body .prompt-btn {
        font-size: 11px;
        padding: 4px 10px;
        flex-shrink: 0;
    }

    .chat-messages {
        padding: var(--sp-3);
    }

    .chat-bubble {
        font-size: 13px;
        padding: var(--sp-2) var(--sp-3);
    }

    .chat-input-area {
        padding: var(--sp-2) var(--sp-3);
    }

    .chat-input-area textarea {
        font-size: 13px;
        padding: 8px 12px;
    }

    .ai-chat-body {
        height: 55vh;
    }

    .ai-panel-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-2);
    }

    .ai-panel-header i {
        font-size: 26px;
    }

    .whatif-class {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-2);
    }

    .whatif-badge {
        font-size: 18px;
    }
}
