.container { width: 100%; }
main.container { flex: 1; min-width: 0; }
header > .container { gap: 20px; }
header nav { flex-shrink: 0; }
header .logo { display: inline-block; }
.site-nav-toggle { display: none; }
.summary-grid > *, .chart-grid > *, .form-grid > *, .loan-form-grid > * { min-width: 0; }
.table-scroll { max-width: 100%; overflow-x: auto; }
.table-scroll:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible {
    outline: 3px solid var(--primary-color);
    outline-offset: 3px;
}
input[type="date"] { position: relative; min-width: 0; }
textarea.form-control { max-width: 100%; }
.page-toolbar { gap: 20px; flex-wrap: wrap; }
.page-toolbar > div { min-width: 0; }
.filter-form { min-width: 0; }
.filter-form > div { min-width: 0; }
.filter-form select { max-width: 100%; }

@media (max-width: 1100px) {
    header > .container { flex-wrap: wrap; }
    header nav { width: 100%; flex-wrap: wrap; gap: 8px !important; }
    header nav > a { padding: 12px !important; min-height: 44px; }
    header nav > span { padding: 10px 12px; }
    .site-nav-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 10px 16px;
        border: 1px solid var(--glass-border);
        border-radius: 8px;
        background: var(--card-bg);
        color: white;
        font: inherit;
        font-weight: 600;
        cursor: pointer;
        margin-left: auto;
    }
    header .nav-enhanced > nav { display: none !important; }
    header .nav-enhanced.nav-open > nav {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-top: 12px;
        border-top: 1px solid var(--glass-border);
    }
    header .nav-enhanced nav > span { grid-column: 1 / -1; }
    header .nav-enhanced nav > a { display: flex; align-items: center; border-radius: 8px; }
    .chart-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (max-width: 640px) {
    .container { padding: 16px; }
    header { padding: 8px 0 !important; margin-bottom: 16px; position: static !important; }
    header > .container { gap: 12px; }
    header .logo { font-size: 1.05rem; }
    header > .container > div { flex: 1 1 180px; min-width: 0; }
    header > .container > div > span { display: block; margin: 6px 0 0 !important; font-size: 0.8rem !important; }
    main.container { padding-top: 16px !important; }
    h1 { font-size: 1.8rem; line-height: 1.2; }
    h2 { font-size: 1.3rem; }
    h3 { line-height: 1.35; }
    h1, h2, h3, p, .conta-titulo, .conta-subtitulo { overflow-wrap: anywhere; }
    .glass-card, .total-section { padding: 16px; min-width: 0; }
    .mini-card { min-width: 0; padding: 16px; }
    .mini-card-label { font-size: 0.72rem; line-height: 1.5; }
    .mini-card-sub { font-size: 0.8rem; line-height: 1.6; }
    .summary-grid, .cards-grid, .loan-stats { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; }
    .account-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; }
    .account-grid > a { grid-column: auto !important; }
    .form-grid, .loan-form-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-bottom: 24px; }
    .full-width, .loan-wide { grid-column: 1 / -1; }
    .form-group { margin-bottom: 8px; }
    .form-control, .filter-form select { min-height: 44px; font-size: 16px !important; }
    .form-control { padding: 12px; }
    select.form-control { padding-right: 40px !important; }
    .form-actions { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 24px; padding-top: 20px; }
    .form-actions > * { text-align: center; width: 100%; }
    .btn, .btn-save, .btn-cancel, main button { min-height: 44px; }
    .btn-save { font-size: 1rem; padding: 14px 16px; }
    .page-toolbar, .dashboard-header { flex-direction: column; align-items: stretch !important; gap: 16px; }
    .movement-actions { flex: none !important; width: 100%; }
    .movement-actions > .btn { width: 100%; text-align: center; }
    .filter-form, form.loan-toolbar {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex: none !important;
        width: 100%;
        gap: 12px !important;
    }
    .filter-form select, .filter-form .form-control { width: 100% !important; }
    .filter-form select { padding: 10px !important; }
    .filter-form select[name="id_categoria"], .filter-form select[name="id_pessoa_relacionada"] { grid-column: 1 / -1; }
    .filter-form .btn, .filter-form > a { min-height: 44px; height: auto !important; padding: 12px !important; font-size: 0.85rem !important; text-align: center; justify-content: center; }
    form.loan-toolbar > label, form.loan-toolbar > select { grid-column: 1 / -1; }
    .loan-account { max-width: 100%; }
    .loan-wide > label { display: flex; align-items: center; gap: 10px; min-height: 44px; }
    .loan-wide input[type="checkbox"] { flex-shrink: 0; width: 20px; height: 20px; }
    .loan-toolbar > .btn { text-align: center; }
    .budget-table-toolbar { flex-wrap: wrap; gap: 16px; }
    canvas { max-width: 100%; }
    .mobile-table-ready { display: block; min-width: 0 !important; width: 100%; margin-top: 0 !important; }
    .mobile-table-ready caption { display: block; padding: 16px; text-align: left; }
    .mobile-table-ready thead {
        position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
        overflow: hidden; clip-path: inset(50%); white-space: nowrap;
    }
    .mobile-table-ready tbody { display: block; width: 100%; }
    .mobile-table-ready tbody tr { display: grid; grid-template-columns: minmax(0, 1fr); padding: 16px; border-bottom: 1px solid var(--glass-border); gap: 12px; }
    .mobile-table-ready tbody td, .mobile-table-ready tbody th {
        display: block; width: 100%; min-width: 0; padding: 0 !important;
        border: 0; text-align: left !important; white-space: normal !important; overflow-wrap: anywhere;
    }
    .mobile-table-ready [data-label]::before {
        content: attr(data-label); display: block; margin-bottom: 4px;
        font-size: 0.7rem; font-weight: 600; color: #8b949e; text-transform: uppercase; letter-spacing: 0.04em;
    }
    .mobile-table-ready td > a, .mobile-table-ready td > div > a, .mobile-table-ready td button, .mobile-table-ready summary {
        display: inline-flex; align-items: center; min-height: 44px; padding: 10px !important;
    }
    .mobile-table-ready .loan-notes { white-space: pre-wrap; }
    .loan-table-wrap { padding: 0; }
    .loan-table details { min-width: 0; }
    .glass-card:hover, .mini-card:hover { transform: none; }
    footer { padding: 24px 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; }
}
