@media (max-width: 1100px) {
  .app-shell { grid-template-columns: 215px minmax(0, 1fr); }
  .sidebar { padding-inline: 12px; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid .balance-card { grid-column: 1 / -1; min-height: 140px; }
  .two-column { grid-template-columns: 1fr; }
  .three-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toolbar-primary { grid-template-columns: minmax(180px, 1.3fr) repeat(2, minmax(125px, 1fr)); }
  .toolbar-search { grid-column: 1 / -1; }
  .toolbar-primary .toolbar-count { justify-self: end; }
  .report-range-panel { grid-template-columns: minmax(155px, .7fr) minmax(0, 1.7fr); gap: 11px 16px; padding: 15px; }
  .report-range-fields { gap: 7px; }
  .advanced-filters-grid { grid-template-columns: repeat(3, minmax(115px, 1fr)); }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .settings-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .bank-process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-wrap { padding-top: 24px; }
}
@media (max-width: 760px) {
  body { font-size: 13px; }
  .app-shell { display: block; padding-bottom: 79px; }
  .main-column { background: var(--ink-50); }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: min(290px, 84vw); height: 100dvh; transform: translateX(-105%); transition: transform .22s ease; box-shadow: var(--shadow-menu); }
  .sidebar.is-open { transform: translateX(0); }
  .mobile-menu-button { width: 38px; height: 38px; display: inline-grid; place-items: center; background: #fff; border: 1px solid var(--ink-200); border-radius: 11px; color: var(--ink-700); }
  .topbar { min-height: 62px; justify-content: flex-start; padding: 9px 15px; }
  .topbar-title { display: block; flex: 1; font-size: 14px; font-weight: 800; }
  .global-search { width: min(180px, 42vw); margin-left: auto; }
  .global-search input { height: 38px; padding-left: 34px; font-size: 11px; }
  .global-search .search-icon { left: 11px; top: 50%; transform: translateY(-50%); }
  .page-wrap { padding: 20px 14px 32px; }
  .page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 17px;
  }
  .page-heading > div:first-child {
    flex: 1;
    min-width: 0;
  }
  .page-heading h1 { font-size: 22px; letter-spacing: -.03em; }
  .page-heading p { font-size: 11.5px; line-height: 1.45; }
  .heading-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 7px;
    width: clamp(140px, 42vw, 154px);
    flex-shrink: 0;
  }
  .heading-actions .button,
  .heading-actions .field-inline,
  .heading-actions .custom-select,
  .heading-actions .custom-select-trigger {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    font-size: 11.5px !important;
    font-weight: 600;
    box-sizing: border-box !important;
    white-space: nowrap !important;
    justify-content: center !important;
    text-align: center !important;
  }
  .heading-actions .button {
    border-radius: 9px;
  }
  .heading-actions .custom-select-trigger {
    border-radius: 9px;
    justify-content: space-between !important;
  }
  .heading-actions .custom-select-value {
    font-size: 11.5px;
  }
  .heading-actions .button-icon {
    margin-right: 3px;
  }
  .stats-grid { gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-grid .balance-card { grid-column: 1 / -1; min-height: 132px; }
  .recurring-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stat-card { min-height: 112px; padding: 15px; }
  .stat-value { font-size: 19px; }
  .balance-card { padding: 19px; }
  .balance-value { font-size: 28px; }
  .balance-meta { font-size: 10px; }
  .card { padding: 15px; border-radius: 15px; }
  .section-gap { margin-top: 11px; }
  .three-column, .budget-grid, .goal-grid, .help-grid { grid-template-columns: 1fr; }
  .goal-summary-card { align-items: flex-start; flex-direction: column; gap: 15px; padding: 18px; }
  .goal-summary-progress { width: 100%; }
  .donut-layout { grid-template-columns: minmax(115px, .85fr) minmax(0, 1.15fr); gap: 8px; }
  .donut-chart { width: min(145px, 100%); }
  .toolbar { padding: 9px; }
  .report-range-panel { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 14px; }
  .report-range-heading { grid-column: 1; }
  .report-range-fields { grid-column: 1; }
  .report-range-summary { grid-column: 1; }
  .toolbar-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .toolbar-search { grid-column: 1 / -1; }
  .toolbar-primary .button { min-height: 36px; }
  .toolbar-count { grid-column: 1 / -1; justify-self: start; }
  .advanced-filters-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .category-toolbar { align-items: stretch; flex-direction: column; }
  .category-tabs { width: fit-content; max-width: 100%; }
  .category-tab { min-width: 108px; }
  .category-search { width: 100%; }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .settings-layout { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .settings-subnav { position: static; display: flex; align-items: center; gap: 4px; overflow-x: auto; padding: 8px; white-space: nowrap; }
  .settings-subnav-label { display: none; }
  .settings-subnav-link { flex: 0 0 auto; min-height: 34px; font-size: 10px; }
  .settings-content { gap: 10px; }
  .currency-setting-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .currency-choice { width: min(100%, 360px); }
  .fx-rate-card { padding: 13px; }
  .fx-rate-body { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .fx-rate-chart-area { min-width: 0; }
  .fx-rate-footer { align-items: flex-start; }
  .desktop-mini-app-row { align-items: flex-start; flex-wrap: wrap; }
  .desktop-mini-app-copy { flex-basis: calc(100% - 55px); }
  .desktop-mini-app-row > .button { margin-left: 50px; }
  .settings-profile-grid { grid-template-columns: minmax(0, 1fr); }
  .profile-email-input-row { align-items: stretch; flex-direction: column; }
  .profile-email-input-row .button { align-self: flex-start; }
  .settings-section .setting-row .field-inline { width: min(240px, 55%); }
  .settings-security-row { align-items: flex-start; flex-direction: column; }
  .bank-link-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .bank-link-heading h2 { font-size: 20px; }
  .bank-selector-card { padding: 15px; }
  .bank-selector-top { align-items: flex-start; flex-direction: column; gap: 7px; }
  .bank-connect-row { align-items: stretch; flex-direction: column; }
  .bank-connect-button { width: 100%; }
  .bank-link-provider-state { align-items: flex-start; flex-wrap: wrap; }
  .bank-link-provider-state > span:last-child { margin-left: auto; }
  .bank-link-process { padding: 15px; }
  .bank-process-steps { grid-template-columns: minmax(0, 1fr); }
  .bank-process-steps li { padding: 10px; }
  .transaction-table-wrap { overflow: visible; }
  .transaction-table, .transaction-table tbody, .transaction-table tr, .transaction-table td { display: block; width: 100%; }
  .transaction-table thead { display: none; }
  .transaction-table tbody { display: grid; gap: 9px; }
  .transaction-table tbody tr { display: grid; grid-template-columns: 1fr auto; gap: 5px 8px; padding: 11px; border: 1px solid var(--ink-100); border-radius: 13px; background: #fff; }
  .transaction-table td { padding: 0; border: 0; }
  .transaction-table td:first-child { grid-column: 1 / -1; }
  .transaction-table td:nth-child(2), .transaction-table td:nth-child(3) { color: var(--ink-500); font-size: 10px; }
  .transaction-table td:nth-child(4) { grid-column: 2; grid-row: 2; }
  .transaction-table td:last-child { grid-column: 1 / -1; }
  .transaction-table td:last-child .table-actions { justify-content: flex-start; }
  .transaction-main { min-width: 0; }
  .transaction-main strong { max-width: 190px; }
  .amount-cell { text-align: left; }
  .report-chart { min-height: 220px; }
  .mobile-bottom-nav { position: fixed; z-index: 4; inset: auto 0 0; display: grid; grid-template-columns: repeat(4, 1fr); padding: 7px 6px calc(7px + env(safe-area-inset-bottom)); background: rgb(255 255 255 / 97%); border-top: 1px solid var(--ink-100); box-shadow: 0 -5px 18px rgb(23 32 51 / 5%); }
  .mobile-bottom-nav button { min-width: 0; display: grid; place-items: center; gap: 2px; padding: 3px 0; background: transparent; border: 0; color: var(--ink-500); font-size: 9px; }
  .mobile-bottom-nav button[aria-current="page"] { color: var(--blue-700); font-weight: 800; }
  .mobile-bottom-nav .mobile-nav-icon { min-height: 21px; display: grid; place-items: center; }
  .modal { width: calc(100vw - 16px); max-height: calc(100dvh - 20px); border-radius: 18px; }
  .modal-header { padding: 17px 17px 13px; }
  .modal-body { padding: 16px 17px; }
  .modal-footer { padding: 12px 17px 17px; }
  .form-grid { grid-template-columns: 1fr; gap: 10px; }
  .form-field.full { grid-column: auto; }
  .auth-page { display: block; min-height: 100dvh; padding: 14px; }
  .auth-stage { max-width: 520px; min-height: 0; grid-template-columns: minmax(0, 1fr); margin: 12px auto; border-radius: 24px; }
  .auth-showcase { min-height: 0; padding: 22px 24px 24px; }
  .auth-brand-lockup { width: 150px; }
  .auth-copy { margin: 23px 0 24px; }
  .auth-copy h1 { font-size: 25px; }
  .auth-copy p { max-width: 430px; margin-top: 8px; font-size: 11px; line-height: 1.6; }
  .auth-growth-scene { width: min(360px, 100%); height: 190px; }
  .auth-form-panel { padding: 28px 24px 34px; }
  .auth-form-wrap { max-width: 390px; }
  .auth-form-wrap h2 { font-size: 24px; }
  .auth-form-wrap > p { margin-bottom: 19px; }
}
@media (max-width: 380px) {
  .global-search { width: 125px; }
  .stats-grid { grid-template-columns: 1fr; }
  .stats-grid .balance-card { grid-column: auto; }
  .donut-layout { grid-template-columns: 1fr; }
  .donut-chart { width: 145px; }
  .recurring-summary-grid { grid-template-columns: 1fr; }
  .category-grid { grid-template-columns: 1fr; }
  .bank-selection-details { padding: 13px; }
  .bank-selected-summary { gap: 9px; }
  .bank-selection-empty { align-items: flex-start; justify-content: flex-start; }
  .settings-subnav-link { padding-inline: 7px; }
  .fx-rate-heading { flex-direction: column; }
  .fx-rate-status { align-self: flex-start; }
  .fx-converter-row { grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr); gap: 5px; }
  .fx-swap-button { width: 32px; }
  .fx-converter-field { padding-inline: 7px; }
  .report-range-fields { grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .report-range-connector { width: 100%; height: 16px; transform: rotate(90deg); }
  .bank-link-provider-state { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .bank-link-provider-state > span:last-child { margin-left: 0; text-align: left; }
  .auth-page { padding: 9px; }
  .auth-stage { margin-block: 9px; }
  .auth-showcase { padding: 18px 18px 20px; }
  .auth-copy h1 { font-size: 23px; }
  .auth-growth-scene { height: 155px; }
  .auth-form-panel { padding: 24px 18px 28px; }
}
