/* =========================================================
   Gestão de Dívidas — RC25 Comprovantes Privados + R2 Local
   Design System RC22 preservado, com densidade visual refinada.
   UI-only: sem alterações em regras financeiras, APIs ou schema.
   ========================================================= */

:root{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-synthesis:none;
  color-scheme:light;
  --bg:#f4f7fb;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-3:#eef3f8;
  --surface-elevated:#ffffff;
  --ink:#172033;
  --ink-soft:#334155;
  --muted:#64748b;
  --line:#d8e1ea;
  --line-strong:#c3cfdb;
  --primary:#1d4ed8;
  --primary-strong:#1e40af;
  --primary-soft:#e8efff;
  --teal:#0f766e;
  --teal-strong:#0b5f59;
  --teal-soft:#e6f5f2;
  --success:#15803d;
  --success-soft:#e9f7ee;
  --warning:#9a5a00;
  --warning-soft:#fff4dc;
  --danger:#b42318;
  --danger-soft:#fff0ef;
  --rose:#b42318;
  --rose-soft:#fff0ef;
  --mint:#0f766e;
  --mint-soft:#e6f5f2;
  --emerald:#0f766e;
  --emerald-strong:#0b5f59;
  --emerald-soft:#e6f5f2;
  --navy:#0f172a;
  --navy-2:#1e293b;
  --peach-soft:#fff5e9;
  --radius-xs:8px;
  --radius-sm:12px;
  --radius:16px;
  --radius-lg:20px;
  --shadow-soft:0 4px 14px rgba(15,23,42,.045);
  --shadow:0 10px 28px rgba(15,23,42,.07);
  --shadow-elevated:0 24px 64px rgba(15,23,42,.18);
  --focus-ring:0 0 0 3px rgba(29,78,216,.22);
  --nav-h:74px;
  --page-x:16px;
  --side-nav:196px;
  --content-max:1180px;
  --density-card-pad:13px;
  --density-card-pad-mobile:11px;
  --density-gap:10px;
  --density-section-gap:22px;
  --transition-fast:140ms ease;
}

html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0b1018;
  --surface:#111827;
  --surface-2:#172033;
  --surface-3:#1e293b;
  --surface-elevated:#182235;
  --ink:#f8fafc;
  --ink-soft:#d8e1ec;
  --muted:#a9b6c6;
  --line:#2b3a4e;
  --line-strong:#3a4b61;
  --primary:#7aa2ff;
  --primary-strong:#c4d4ff;
  --primary-soft:#1a2c50;
  --teal:#54c9b8;
  --teal-strong:#8de1d4;
  --teal-soft:#123730;
  --success:#65d58d;
  --success-soft:#163823;
  --warning:#f2c46d;
  --warning-soft:#3d3019;
  --danger:#ff9189;
  --danger-soft:#3d2024;
  --rose:#ff9189;
  --rose-soft:#3d2024;
  --mint:#54c9b8;
  --mint-soft:#123730;
  --emerald:#54c9b8;
  --emerald-strong:#8de1d4;
  --emerald-soft:#123730;
  --navy:#f8fafc;
  --navy-2:#d8e1ec;
  --peach-soft:#392a1c;
  --shadow-soft:0 4px 14px rgba(0,0,0,.16);
  --shadow:0 12px 30px rgba(0,0,0,.24);
  --shadow-elevated:0 24px 70px rgba(0,0,0,.46);
  --focus-ring:0 0 0 3px rgba(122,162,255,.28);
}

/* Base */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-size:16px;background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-width:280px;min-height:100dvh;overflow-x:hidden;background:var(--bg);color:var(--ink);text-rendering:optimizeLegibility}
body,button,input,select,textarea{font:inherit}
button,input,select,textarea{font-size:1rem}
button{touch-action:manipulation}
button,a{-webkit-tap-highlight-color:transparent}
button:disabled{cursor:not-allowed;opacity:.64}
h1,h2,h3,p{margin:0}
h1{font-size:1.28rem;line-height:1.18;letter-spacing:-.025em}
h2{font-size:1.18rem;line-height:1.22;letter-spacing:-.018em}
h3{font-size:1rem;line-height:1.3}
strong{font-variant-numeric:tabular-nums}
svg{display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow,.section-kicker{display:block;font-size:.72rem;line-height:1.25;letter-spacing:.06em;font-weight:800;color:var(--primary)}
.muted{color:var(--muted);font-size:.875rem;line-height:1.5}
.hint{color:var(--muted);font-size:.78rem;line-height:1.5}
.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}

/* Autenticação */
.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));background:linear-gradient(155deg,#0f172a 0,#16324a 48%,var(--bg) 48%)}
.auth-shell{width:min(100%,900px);display:grid;place-items:center}
.auth-brand-panel{display:none}
.auth-card{width:min(100%,400px);padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-elevated)}
.auth-card h1{margin-top:6px;font-size:1.6rem}.auth-intro{margin:10px 0 20px}
.auth-brand-kicker{font-size:.75rem;font-weight:800;letter-spacing:.06em;color:#a9c7d9;margin-bottom:8px}
.brand-mark{display:grid;place-items:center;background:#132238;color:#fff;font-weight:900;letter-spacing:-.04em}
.brand-mark.mobile-brand{width:48px;height:48px;border-radius:14px;margin-bottom:18px}
.brand-mark.tiny{width:38px;height:38px;border-radius:12px;font-size:.74rem;flex:0 0 auto}
.brand-mark.large{width:58px;height:58px;border-radius:16px;font-size:1rem}
.form-error{margin-top:12px;color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 22%,var(--line));border-radius:var(--radius-sm);padding:10px 12px;font-size:.8rem;line-height:1.4}
.stack{display:grid;gap:14px}

/* Shell */
.app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top)) var(--page-x) 10px;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.header-identity,.header-actions{display:flex;align-items:center}.header-identity{gap:11px;min-width:0}.header-actions{gap:8px}.header-copy{min-width:0}.header-copy .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.header-copy h1{margin-top:2px}.header-context{display:block;margin-top:2px;color:var(--muted);font-size:.7rem;line-height:1.2}
.app-main{width:100%;max-width:var(--content-max);margin:0 auto;padding:14px var(--page-x) calc(var(--nav-h) + 48px + env(safe-area-inset-bottom))}
.view{display:none;min-width:0}.view.active{display:block}
.icon-button{width:44px;height:44px;min-width:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-soft)}
.icon-button svg{width:20px;height:20px}.icon-button.light{background:var(--surface-3);box-shadow:none}
.demo-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:var(--warning-soft);border:1px solid color-mix(in srgb,var(--warning) 22%,var(--line));color:var(--warning);font-size:.66rem;font-weight:900;letter-spacing:.035em}

/* Navegação */
.bottom-nav{position:fixed;z-index:35;left:10px;right:10px;bottom:max(8px,env(safe-area-inset-bottom));height:68px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:6px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 38px rgba(15,23,42,.16);backdrop-filter:blur(18px)}
.nav-item{min-width:0;min-height:54px;border:0;border-radius:13px;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;font-size:.63rem;font-weight:760;cursor:pointer}
.nav-icon{width:28px;height:26px;border-radius:9px;display:grid;place-items:center}.nav-icon svg{width:20px;height:20px}
.nav-item.active{background:var(--primary-soft);color:var(--primary-strong)}
.nav-item.active .nav-icon{color:var(--primary-strong)}
.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 22px + env(safe-area-inset-bottom));z-index:34;width:56px;height:56px;border:0;border-radius:17px;background:var(--primary);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 15px 34px rgba(29,78,216,.28)}
.fab svg{width:25px;height:25px}.fab:active{transform:translateY(1px)}

/* Botões e formulários */
.button{min-height:48px;border:1px solid transparent;border-radius:12px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-size:.85rem;font-weight:800;line-height:1.2;cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}
.button:active{transform:translateY(1px)}
.button.primary{background:var(--primary);color:#fff}.button.primary:hover{background:#1b47c4}
.button.secondary{background:var(--surface-3);color:var(--ink-soft);border-color:var(--line)}
.button.secondary:hover{background:color-mix(in srgb,var(--surface-3) 70%,var(--primary-soft))}
.button.success-button{background:var(--teal);color:#fff}.button.danger-button{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 14%,var(--line))}
.button.ghost-button,.ghost-button{background:transparent;color:var(--primary-strong);border-color:transparent;box-shadow:none}
.button.wide,.wide{width:100%}.compact-button{width:auto}.button-icon{width:18px;height:18px;flex:none}
label{display:grid;gap:7px;color:var(--ink-soft);font-size:.78rem;font-weight:760}
input,select,textarea{width:100%;min-height:52px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);padding:11px 12px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}
textarea{min-height:96px;resize:vertical;line-height:1.45}
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 88%,transparent)}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}
.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-section{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}
.form-section-title{display:flex;align-items:center;gap:9px;font-size:.82rem}.form-section-title span{width:28px;height:28px;border-radius:9px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center;font-size:.72rem;font-weight:900}
.info-hint{padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}

/* Cabeçalhos de página e seções */
.page-intro{margin:2px 2px 14px}.page-intro h2{font-size:1.4rem;margin:3px 0 5px}.page-head-row{display:grid;gap:9px;margin-bottom:10px}.page-head-row .page-intro{margin-bottom:0}
.section-block{margin-bottom:var(--density-section-gap)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 2px 9px}.section-head h2{font-size:1.12rem;margin-top:3px}.section-subcopy{margin-top:4px;color:var(--muted);font-size:.76rem;line-height:1.4;max-width:460px}.section-kicker{color:var(--primary)}
.text-button{min-height:42px;border:0;background:transparent;color:var(--primary);font-size:.78rem;font-weight:850;padding:0 2px;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.text-button span{font-size:1.15rem}

/* Home */
.home-overview-grid{display:grid;gap:10px;margin-bottom:22px}
.finance-hero{position:relative;overflow:hidden;margin:0;padding:16px;border-radius:var(--radius-lg);background:linear-gradient(140deg,#102b46 0%,#17466a 58%,#0f6b72 100%);color:#fff;box-shadow:0 18px 44px rgba(15,42,70,.20)}
.finance-hero:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-90px;top:-108px;background:rgba(255,255,255,.07);pointer-events:none}
.hero-topline{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.light-kicker{color:#b7d8e8}.hero-label{margin-top:6px;color:#d7e7ef;font-size:.8rem;line-height:1.32;max-width:180px}.hero-amount{position:relative;z-index:1;display:block;margin:7px 0 12px;font-size:2.05rem;line-height:1.02;letter-spacing:-.045em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-control{display:block}.month-control input{width:150px}.hero-month input{width:132px;min-height:42px;padding:8px 9px;border-color:rgba(255,255,255,.22);background:rgba(0,0,0,.18);color:#fff;color-scheme:dark;border-radius:11px;font-size:.76rem;font-weight:760}
.progress-track{height:7px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress-track>span{display:block;height:100%;border-radius:inherit;background:var(--teal);transition:width .25s ease}.hero-progress{position:relative;z-index:1;height:8px;background:rgba(255,255,255,.16)}.hero-progress>span{background:#72e0c2}.hero-progress-copy{position:relative;z-index:1;display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:#bfd1dc;font-size:.72rem}.hero-progress-copy span:first-child{color:#fff;font-weight:800}
.hero-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}.hero-stats span,.hero-stats small{display:block;color:#bed0da;font-size:.68rem}.hero-stats strong{display:block;margin-top:5px;color:#fff;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-stats small{margin-top:3px}.hero-stats .has-overdue strong{color:#ffd1ce}
.portfolio-overview{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.overview-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.overview-topline h2{font-size:1.13rem;margin-top:4px}.overview-status{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:4px 8px;border-radius:999px;background:var(--teal-soft);color:var(--teal-strong);font-size:.68rem;font-weight:800;white-space:nowrap}.overview-status i{width:6px;height:6px;border-radius:50%;background:var(--teal)}.overview-balance{display:block;font-size:1.82rem;line-height:1;letter-spacing:-.04em;color:var(--ink)}.overview-foot{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding-top:11px;border-top:1px solid var(--line)}.overview-count{display:flex;align-items:baseline;gap:5px}.overview-count>strong{font-size:1.15rem;color:var(--primary)}.overview-count>span{font-size:.74rem;font-weight:760}.overview-note{font-size:.72rem;line-height:1.4;color:var(--muted);text-align:right}
.monthly-projection{display:flex;gap:9px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.monthly-projection::-webkit-scrollbar{display:none}.month-projection-card{flex:0 0 154px;min-height:124px;display:grid;align-content:start;gap:6px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:left;box-shadow:var(--shadow-soft);scroll-snap-align:start;cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.month-projection-card:active{transform:scale(.975)}.month-projection-card.selected{border-color:var(--teal);box-shadow:0 0 0 2px color-mix(in srgb,var(--teal) 15%,transparent),var(--shadow)}.projection-badge{min-height:18px;color:var(--primary);font-size:.64rem;font-weight:900;letter-spacing:.04em}.projection-month-name{color:var(--muted);font-size:.78rem;font-weight:800}.month-projection-card>strong{font-size:1.18rem}.month-projection-card>small{color:var(--muted);font-size:.69rem;line-height:1.4}.projection-meter{height:5px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin-top:2px}.projection-meter>i{display:block;height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--teal))}.month-projection-card.zero .projection-meter>i{width:0!important}.projection-empty{min-width:100%}
.source-groups{display:grid;gap:9px}.source-group{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.source-group:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 5px 5px 0;background:var(--muted)}.source-group:has(.source-kind.card):before{background:var(--primary)}.source-group:has(.source-kind.crediario):before{background:var(--teal)}.source-group-summary{width:100%;min-height:72px;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 11px 10px 13px;text-align:left;cursor:pointer}.source-kind{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-soft);font-size:.62rem;font-weight:900;text-align:center}.source-kind.card{background:var(--primary-soft);color:var(--primary-strong)}.source-kind.crediario{background:var(--teal-soft);color:var(--teal-strong)}.source-kind.other{background:var(--surface-3);color:var(--muted)}.source-summary-copy{min-width:0;display:grid;gap:3px}.source-summary-copy>strong{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-summary-copy>span,.source-summary-copy>small{color:var(--muted);font-size:.72rem}.source-summary-value{display:grid;justify-items:end;gap:3px;min-width:88px;text-align:right}.source-summary-value>strong{font-size:.94rem}.source-summary-value>span{color:var(--muted);font-size:.66rem}.source-chevron{font-size:1rem;color:var(--muted)}.source-group-items{display:grid;gap:0;padding:0 13px 10px 15px;border-top:1px solid var(--line)}.source-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0}.source-line+.source-line{border-top:1px solid var(--line)}.source-line-copy{display:grid;gap:3px;min-width:0}.source-line-copy strong{font-size:.84rem}.source-line-copy span{color:var(--muted);font-size:.71rem}.source-line-side{display:grid;grid-template-columns:auto auto;align-items:center;gap:7px;justify-items:end}.source-line-side>strong{font-size:.82rem}.source-pay,.source-view,.mini-action{min-height:36px;border:0;border-radius:999px;padding:7px 10px;background:var(--primary-soft);color:var(--primary-strong);font-size:.71rem;font-weight:850;cursor:pointer}.source-line-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quick-action{min-height:96px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;box-shadow:var(--shadow-soft);cursor:pointer}.quick-action.primary-action{background:var(--teal-soft);border-color:color-mix(in srgb,var(--teal) 22%,var(--line))}.quick-action>span:last-child{display:grid;gap:3px}.quick-action strong{font-size:.9rem}.quick-action small{font-size:.73rem;color:var(--muted);line-height:1.4}.quick-icon{width:38px;height:38px;border-radius:11px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center}.primary-action .quick-icon{background:color-mix(in srgb,var(--teal) 16%,var(--surface));color:var(--teal-strong)}.quick-icon svg{width:19px;height:19px}

/* Listas e dívidas */
.list{display:grid;gap:8px;min-width:0}.card-list{padding-bottom:6px}.list-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.list-card-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.item-copy{min-width:0}.item-title{display:block;font-size:.94rem}.item-meta{display:block;margin-top:3px;color:var(--muted);font-size:.75rem;line-height:1.45}.item-side{text-align:right}.item-amount{display:block;font-size:.96rem}.item-subamount{display:block;margin-top:3px;color:var(--muted);font-size:.7rem}.status,.light-status{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 9px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:.66rem;font-weight:850;white-space:nowrap}.status.overdue{background:var(--rose-soft);color:var(--rose)}.status.partial{background:var(--warning-soft);color:var(--warning)}.status.paid{background:var(--success-soft);color:var(--success)}
.debt-card{overflow:hidden}.debt-card-open{display:block;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:0;cursor:pointer}.debt-progress{margin-top:9px}.debt-progress-row{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--muted);font-size:.72rem}.row-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.debt-filters{display:grid;gap:9px;margin:11px 0 13px;padding:11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.search-field{position:relative;display:block}.search-field svg{position:absolute;left:13px;top:50%;width:20px;height:20px;transform:translateY(-50%);stroke:var(--muted);pointer-events:none}.search-field input{padding-left:42px;background:var(--surface-2)}.filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.filter-row label{gap:5px;font-size:.72rem}.filter-row select{min-height:46px;padding-block:8px}.filter-count{color:var(--muted);font-size:.74rem;font-weight:720}

/* Recorrentes */
.recurring-section{margin-bottom:20px}.recurring-head{align-items:flex-end}.recurring-bills-list{display:grid;gap:8px}.recurring-card{padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.recurring-card-top{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:9px;align-items:center}.recurring-card-icon{width:40px;height:40px;border-radius:11px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center}.recurring-card-icon svg{width:21px;height:21px}.recurring-card-copy{min-width:0;display:grid;gap:2px}.recurring-card-copy>span{font-size:.66rem;color:var(--muted);font-weight:850;letter-spacing:.05em;text-transform:uppercase}.recurring-card-copy>strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recurring-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.recurring-card-grid>div{display:grid;gap:3px;padding:8px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.recurring-card-grid span{font-size:.68rem;color:var(--muted)}.recurring-card-grid strong{font-size:.82rem}.recurring-current{margin-top:7px;padding:9px;border-radius:var(--radius-sm);background:var(--surface-2);display:flex;justify-content:space-between;gap:10px;align-items:center}.recurring-current span{font-size:.68rem;color:var(--muted)}.recurring-current strong{display:block;margin-top:2px;font-size:.83rem}.recurring-card .row-actions{grid-template-columns:1fr auto}.recurring-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.recurring-detail-value{display:grid;gap:3px}.recurring-detail-value span,.recurring-detail-value small{font-size:.72rem;color:var(--muted)}.recurring-detail-value strong{font-size:1.65rem;letter-spacing:-.035em}.recurring-charge-summary{background:linear-gradient(145deg,#113552,#0f5e68)}

/* Agenda */
.agenda-intro{margin-bottom:10px}.agenda-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.agenda-metric{min-width:0;min-height:78px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);text-align:left;color:var(--ink);cursor:pointer;display:grid;align-content:center;gap:3px}.agenda-metric span{font-size:.7rem;color:var(--muted);font-weight:820}.agenda-metric strong{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-metric small{font-size:.67rem;color:var(--muted)}.agenda-metric.overdue{background:color-mix(in srgb,var(--danger-soft) 50%,var(--surface));border-color:color-mix(in srgb,var(--danger) 20%,var(--line))}.agenda-metric.overdue strong{color:var(--danger)}.agenda-metric.overdue.clear{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 18%,var(--line))}.agenda-metric.overdue.clear strong{color:var(--success)}.agenda-metric.today{background:color-mix(in srgb,var(--primary-soft) 42%,var(--surface))}.agenda-metric.tomorrow{background:color-mix(in srgb,var(--warning-soft) 46%,var(--surface))}.agenda-metric.week{background:color-mix(in srgb,var(--teal-soft) 48%,var(--surface))}.agenda-metric.active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 10%,transparent)}.agenda-tools{display:grid;gap:9px;margin-bottom:10px}.agenda-scopes{display:flex;gap:7px;overflow:auto;padding:1px 1px 4px;scrollbar-width:none}.agenda-scopes::-webkit-scrollbar{display:none}.agenda-chip{flex:0 0 auto;min-height:38px;border:1px solid var(--line);border-radius:999px;padding:7px 12px;background:var(--surface);color:var(--muted);font-size:.71rem;font-weight:820;cursor:pointer}.agenda-chip.active{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 24%,var(--line));color:var(--primary-strong)}.agenda-filter-row{display:grid;grid-template-columns:1.25fr .8fr;gap:9px}.agenda-filter-row label{gap:5px;font-size:.7rem}.agenda-filter-row select{min-height:46px;padding-block:8px}.agenda-calendar-card{margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.agenda-calendar-head{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:7px;margin-bottom:7px}.calendar-nav{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--primary-soft);color:var(--primary-strong);font-size:1.35rem;line-height:1;cursor:pointer}.agenda-month-control input{width:100%;min-height:40px;border:0;background:var(--surface-2);text-align:center;font-weight:850;padding-inline:8px}.agenda-weekdays,.agenda-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.agenda-weekdays{margin-bottom:3px}.agenda-weekdays span{display:grid;place-items:center;height:21px;color:var(--muted);font-size:.61rem;font-weight:900}.calendar-day{position:relative;min-width:0;aspect-ratio:1.08/1;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--muted);display:grid;place-items:center;align-content:center;gap:2px;padding:2px;cursor:pointer}.calendar-day>span{font-size:.72rem;font-weight:800;line-height:1}.calendar-day>i{width:5px;height:5px;border-radius:50%;background:var(--primary)}.calendar-day>small{font-size:.5rem;line-height:1;color:var(--muted);font-weight:850}.calendar-day.has-items{background:var(--surface-3);color:var(--ink)}.calendar-day.overdue{background:var(--danger-soft);color:var(--danger)}.calendar-day.overdue>i{background:var(--danger)}.calendar-day.today{box-shadow:inset 0 0 0 1.5px var(--primary)}.calendar-day.selected{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 8px 18px rgba(29,78,216,.22)}.calendar-day.selected>i{background:#fff}.calendar-day.selected>small{color:#eaf0ff}.calendar-day.blank{pointer-events:none}.agenda-calendar-hint{margin:7px 2px 0;text-align:center;color:var(--muted);font-size:.64rem;line-height:1.4}.agenda-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 2px 10px}.agenda-list-total{text-align:right;display:grid;gap:2px}.agenda-list-total strong{font-size:.9rem}.agenda-list-total span{color:var(--muted);font-size:.66rem}.agenda-list{display:grid;gap:10px}.agenda-day-group{display:grid;gap:7px}.agenda-day-head{display:flex;align-items:end;justify-content:space-between;gap:10px}.agenda-day-head>div{display:grid;gap:2px}.agenda-day-head strong{font-size:.84rem}.agenda-day-head span{color:var(--muted);font-size:.66rem}.agenda-day-items{display:grid;gap:7px}.due-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.due-date{width:48px;height:50px;border-radius:12px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center;align-content:center}.due-date strong{font-size:1rem;line-height:1}.due-date span{font-size:.62rem;font-weight:900;margin-top:3px}.due-main{min-width:0;display:grid;gap:3px}.due-main>strong{font-size:.84rem}.due-main>span,.due-main>small{color:var(--muted);font-size:.69rem;line-height:1.35}.due-relative{font-size:.67rem;font-weight:800}.due-side{display:grid;justify-items:end;gap:5px;text-align:right}.due-side>strong{font-size:.82rem;white-space:nowrap}

/* Crédito e identidades */
.source-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.top-action{margin-bottom:14px}.credit-source-section{margin-bottom:20px}.cards-wallet,.crediario-wallet{display:grid;gap:9px}.wallet-card{position:relative;overflow:hidden;min-width:0;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-lg);background:linear-gradient(145deg,#16324a,#0f2538);color:#fff;box-shadow:0 15px 36px rgba(15,23,42,.16)}.wallet-card::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;bottom:-125px;background:rgba(255,255,255,.07);pointer-events:none}.wallet-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.wallet-brand{display:flex;align-items:center;gap:9px;min-width:0}.wallet-name{display:grid;gap:2px;min-width:0;font-size:.95rem;font-weight:850}.wallet-name>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet-brand-caption{font-size:.64rem;color:rgba(255,255,255,.78);font-weight:700}.wallet-status{min-height:26px;padding:4px 8px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#fff;font-size:.63rem;font-weight:850}.wallet-cycle{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:16px}.wallet-cycle div{padding:8px 9px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.11)}.wallet-cycle span{display:block;font-size:.62rem;color:rgba(255,255,255,.76);font-weight:820;text-transform:uppercase}.wallet-cycle strong{display:block;margin-top:4px;font-size:.9rem}.wallet-card .row-actions{position:relative;z-index:1;grid-template-columns:1fr;margin-top:9px}.wallet-card .button.secondary{background:rgba(8,17,28,.78);border-color:rgba(255,255,255,.14);color:#fff}.wallet-card .button.secondary:hover{background:rgba(8,17,28,.9)}
.source-brand-mark{display:grid;place-items:center;flex:0 0 auto;overflow:hidden}.source-brand-mark.has-logo{width:66px;min-width:66px;height:40px;padding:0;border:1px solid rgba(255,255,255,.24);border-radius:11px;background:rgba(255,255,255,.94)}.source-brand-logo{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px}.wallet-card.brand-nubank{--brand-accent:#820ad1;background:linear-gradient(145deg,#820ad1 0%,#9b19dc 58%,#6b08b1 100%)}.wallet-card.brand-inter{--brand-accent:#ff6200;background:linear-gradient(145deg,#ff6200 0%,#ff7a1a 58%,#f04d00 100%)}.wallet-card.brand-nubank .source-brand-mark.has-logo{width:58px;min-width:58px;background:#820ad1}.wallet-card.brand-inter .source-brand-mark.has-logo{background:#fff}
.crediario-card{position:relative;overflow:hidden;padding:13px;border:1px solid var(--line);border-left:4px solid var(--brand-accent,var(--primary));border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.crediario-card::before{content:"";position:absolute;width:145px;height:145px;border-radius:50%;right:-82px;top:-88px;background:color-mix(in srgb,var(--brand-accent,var(--primary)) 8%,transparent);pointer-events:none}.crediario-top{position:relative;z-index:1;display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:9px;align-items:center}.crediario-icon{width:70px;height:42px;border-radius:12px;overflow:hidden}.crediario-icon>.source-brand-mark.has-logo{width:70px;min-width:70px;height:42px;border-color:color-mix(in srgb,var(--brand-accent,var(--primary)) 18%,var(--line));background:transparent}.crediario-name{display:grid;gap:2px;min-width:0}.crediario-name span{font-size:.63rem;color:var(--muted);font-weight:850;letter-spacing:.05em;text-transform:uppercase}.crediario-name strong{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crediario-rule{position:relative;z-index:1;display:grid;gap:3px;margin-top:9px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.crediario-rule span{font-size:.69rem;color:var(--muted)}.crediario-rule strong{font-size:.84rem}.crediario-card>p{position:relative;z-index:1;margin-top:7px;color:var(--muted);font-size:.72rem;line-height:1.4}.crediario-card .row-actions{position:relative;z-index:1;grid-template-columns:1fr}.brand-casas_bahia{--brand-accent:#0756c8}.brand-magalu{--brand-accent:#008cff}.brand-lojas_nacional{--brand-accent:#e51d3b}.brand-nubank{--brand-accent:#820ad1}.brand-inter{--brand-accent:#ff6200}.brand-custom-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}

/* Settings */
.settings-card{display:grid;gap:12px;padding:14px;margin-bottom:10px}.settings-heading{display:flex;align-items:flex-start;gap:10px}.settings-heading>div{min-width:0}.settings-heading strong{font-size:.94rem}.settings-heading .muted{margin-top:2px}.settings-icon{width:38px;height:38px;border-radius:11px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center;flex:none}.settings-icon svg{width:19px;height:19px}.calendar-integration-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-integration-meta>div{display:grid;gap:3px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.calendar-integration-meta span{font-size:.68rem;color:var(--muted)}.calendar-integration-meta strong{font-size:.8rem;overflow-wrap:anywhere}.settings-actions{display:grid;gap:8px}.theme-segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.theme-segmented button{min-height:48px;border:0;border-radius:10px;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;font-size:.78rem;font-weight:800;cursor:pointer}.theme-segmented button:hover{background:var(--surface-3)}.theme-segmented button.active{background:var(--surface);color:var(--primary-strong);box-shadow:var(--shadow-soft)}.theme-choice-icon{width:19px;height:19px;display:grid;place-items:center;flex:none}.theme-choice-icon svg{width:19px;height:19px}.version-line{text-align:center;color:var(--muted);font-size:.7rem;padding:8px 0 4px}

/* Sheets, detalhes e estados */
dialog{border:0;padding:0;background:transparent;color:inherit}dialog::backdrop{background:rgba(9,16,27,.56);backdrop-filter:blur(3px)}.sheet{position:fixed;inset:auto 0 0;width:100%;max-width:none;height:min(92dvh,840px);max-height:100dvh;margin:0;border-radius:20px 20px 0 0;background:var(--surface);box-shadow:var(--shadow-elevated);overflow:hidden}.compact-sheet{height:auto;max-height:min(86dvh,720px)}.sheet-form{height:100%;display:flex;flex-direction:column;min-height:0}.sheet-head{min-height:68px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 12px 10px;background:color-mix(in srgb,var(--surface) 96%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.sheet-head>div{text-align:center;min-width:0}.sheet-head h2{font-size:1.04rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.head-spacer{width:44px}.sheet-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:14px 12px 28px}.sheet-footer{display:flex;gap:8px;padding:10px 12px max(12px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(15,23,42,.045)}.split-footer{display:grid;grid-template-columns:auto 1fr}.payment-summary{display:grid;gap:3px;padding:17px;border-radius:var(--radius);background:linear-gradient(145deg,#102b46,#14526a);color:#fff}.payment-summary span,.payment-summary small{color:#d5e5ed;font-size:.72rem}.payment-summary strong{font-size:1.7rem;letter-spacing:-.035em}
.entry-choice-body{padding-top:16px}.entry-choice-card{width:100%;min-height:148px;display:grid;grid-template-columns:48px minmax(0,1fr) 20px;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}.entry-choice-card.recurring-choice{background:color-mix(in srgb,var(--teal-soft) 52%,var(--surface))}.entry-choice-icon{width:48px;height:48px;border-radius:13px;background:var(--primary-soft);color:var(--primary-strong);display:grid;place-items:center}.recurring-choice .entry-choice-icon{background:var(--teal-soft);color:var(--teal-strong)}.entry-choice-icon svg{width:22px;height:22px}.entry-choice-copy{display:grid;gap:4px}.entry-choice-copy strong{font-size:.9rem}.entry-choice-copy small{color:var(--muted);font-size:.72rem;line-height:1.45}.entry-choice-arrow{color:var(--muted);font-size:1.25rem}.entry-choice-hint{margin-top:0}
.debt-detail-body{gap:11px}.debt-detail-hero{position:relative;overflow:hidden;padding:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);box-shadow:var(--shadow-soft)}.debt-detail-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.debt-detail-hero>span{display:block;color:var(--muted);font-size:.74rem;margin-bottom:4px}.debt-detail-hero>strong{display:block;font-size:1.85rem;line-height:1.05;letter-spacing:-.035em;margin-bottom:14px}.detail-section{padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}.detail-section-head{margin-bottom:9px}.detail-section-head h3{margin-top:3px}.detail-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.detail-meta-grid>div{display:grid;gap:3px;padding:10px 11px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);min-width:0}.detail-meta-grid span{font-size:.7rem;color:var(--muted)}.detail-meta-grid strong{font-size:.82rem;overflow-wrap:anywhere}.detail-notes{margin-top:11px;padding:11px 12px;border-radius:var(--radius-sm);background:var(--peach-soft);color:var(--ink-soft);font-size:.78rem;line-height:1.45}.detail-installments{display:grid;gap:7px}.detail-installment{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.detail-installment-date{display:grid;place-items:center;align-content:center;min-height:50px;border-radius:12px;background:var(--primary-soft);color:var(--primary-strong)}.detail-installment-date strong{font-size:.98rem;line-height:1}.detail-installment-date span{font-size:.61rem;font-weight:900;margin-top:3px}.detail-installment-copy{display:grid;gap:3px;min-width:0}.detail-installment-copy>strong{font-size:.8rem}.detail-installment-copy>span,.detail-installment-copy>small{font-size:.68rem;color:var(--muted);line-height:1.35}.detail-installment-side{display:grid;justify-items:end;gap:5px;text-align:right}.detail-installment-side>strong{font-size:.79rem;white-space:nowrap}.payment-history{display:grid}.payment-event{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding-bottom:14px}.payment-event:not(:last-child):before{content:"";position:absolute;left:5px;top:13px;bottom:0;width:1px;background:var(--line)}.payment-event-dot{width:11px;height:11px;margin-top:4px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px var(--success-soft);z-index:1}.payment-event>div{display:grid;gap:2px}.payment-event strong{font-size:.82rem}.payment-event span,.payment-event small{font-size:.68rem;color:var(--muted);line-height:1.35}.compact-empty{padding:12px 0;text-align:left}.detail-footer{display:grid;grid-template-columns:1fr}
.empty{display:grid;gap:4px;place-items:center;min-height:76px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);text-align:center;font-size:.78rem;line-height:1.45}.empty strong{color:var(--ink);font-size:.82rem}.toast{position:fixed;z-index:90;left:12px;right:12px;bottom:calc(var(--nav-h) + 18px + env(safe-area-inset-bottom));padding:13px 15px;border-radius:13px;background:#111827;color:#fff;text-align:center;font-size:.82rem;font-weight:760;box-shadow:var(--shadow-elevated)}

/* Confirmação RC22 */
.confirm-dialog{width:min(92vw,430px);max-width:430px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-elevated)}.confirm-shell{display:grid;gap:0}.confirm-body{display:grid;gap:10px;padding:20px}.confirm-body h2{font-size:1.12rem}.confirm-body p{color:var(--muted);font-size:.84rem;line-height:1.5}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-top:1px solid var(--line)}

/* Branding auxiliar */
.source-brand-mark:not(.has-logo){width:46px;height:38px;padding:6px;border-radius:10px;background:var(--surface-3);color:var(--ink);font-size:.64rem;font-weight:900}.source-brand-mark.source-brand-nubank:not(.has-logo){background:#820ad1;color:#fff}.source-brand-mark.source-brand-inter:not(.has-logo){background:#fff;color:#ff6200}.source-brand-mark.source-brand-casas_bahia:not(.has-logo){background:#0756c8;color:#fff}.source-brand-mark.source-brand-magalu:not(.has-logo){background:#008cff;color:#fff}.source-brand-mark.source-brand-lojas_nacional:not(.has-logo){background:#e51d3b;color:#fff}

/* Tema escuro: componentes especiais; demais superfícies dependem apenas dos tokens */
html[data-theme="dark"] body{background:radial-gradient(circle at 85% -8%,rgba(46,91,151,.16),transparent 30%),linear-gradient(180deg,#0b1018,#0d131d 55%,#0b1018)}
html[data-theme="dark"] .app-header{background:rgba(11,16,24,.90)}
html[data-theme="dark"] .bottom-nav{background:rgba(17,24,39,.94);box-shadow:0 18px 46px rgba(0,0,0,.38)}
html[data-theme="dark"] .button.primary{background:#315fe4;color:#fff}html[data-theme="dark"] .button.primary:hover{background:#3f6ced}
html[data-theme="dark"] .fab{background:#315fe4;box-shadow:0 15px 34px rgba(49,95,228,.28)}
html[data-theme="dark"] .wallet-card .button.secondary{background:rgba(7,13,22,.78)}
html[data-theme="dark"] .crediario-card{background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--brand-accent,var(--primary)) 9%,var(--surface)))}
html[data-theme="dark"] .source-brand-mark.has-logo{border-color:rgba(255,255,255,.14);box-shadow:0 6px 18px rgba(0,0,0,.22)}
html[data-theme="dark"] .payment-summary{background:linear-gradient(145deg,#11304b,#11505e)}
html[data-theme="dark"] .auth-screen{background:linear-gradient(155deg,#090f18 0,#10263a 48%,var(--bg) 48%)}


/* RC23 — densidade compacta: mais informação por viewport sem reduzir controles críticos. */
@media(max-width:440px){
  :root{--density-card-pad:12px;--density-section-gap:19px}
  .app-main{padding-top:11px}
  .page-intro{margin-bottom:11px}
  .section-block{margin-bottom:19px}
  .section-head{margin-bottom:8px}
  .month-projection-card{flex-basis:148px;min-height:116px;padding:11px}
  .source-group-summary{min-height:68px}
  .agenda-metric{min-height:72px;padding:9px 10px}
  .agenda-calendar-card{padding:9px}
  .agenda-list-head{margin-bottom:8px}
  .wallet-card{padding:13px}
  .wallet-cycle{margin-top:13px}
  .crediario-card{padding:12px}
  .settings-card{padding:12px}
}


/* RC24 — correção direcionada para 320–360 px.
   Preserva a densidade da RC23 e elimina cortes de cabeçalho, chips e mês do calendário. */
@media(max-width:360px){
  .app-header{gap:7px}
  .header-identity{gap:7px}
  .brand-mark.tiny{width:34px;height:34px;border-radius:10px;font-size:.68rem}
  .header-actions{gap:5px;flex:0 0 auto}
  .app-header .icon-button{width:40px;height:40px;min-width:40px;border-radius:11px}
  .demo-badge{min-height:24px;padding:4px 6px;font-size:.58rem}
  .header-copy .eyebrow{max-width:132px;font-size:.64rem}
  .header-copy h1{font-size:1.08rem;white-space:nowrap}
  .header-context{max-width:132px;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .agenda-scopes{flex-wrap:wrap;overflow:visible;gap:5px;padding-bottom:0}
  .agenda-chip{min-height:38px;padding:7px 9px;font-size:.68rem}
  .agenda-calendar-head{gap:4px}
  .agenda-month-control input{font-size:.78rem;padding-inline:5px}
  .agenda-month-control input::-webkit-calendar-picker-indicator{width:14px;height:14px;margin-left:1px}
}
@media(max-width:340px){
  .demo-badge{padding-inline:5px;font-size:.54rem}
  .header-copy .eyebrow,.header-context{max-width:116px}
  .agenda-chip{padding-inline:8px;font-size:.66rem}
}

/* Responsividade */
@media(max-width:440px){
  .source-brand-mark.has-logo{width:62px;min-width:62px;height:38px}
  .wallet-card.brand-nubank .source-brand-mark.has-logo{width:54px;min-width:54px}
  .crediario-top{grid-template-columns:68px minmax(0,1fr) auto;gap:9px}
  .crediario-icon,.crediario-icon>.source-brand-mark.has-logo{width:68px;min-width:68px;height:42px}
  .theme-segmented button{flex-direction:column;gap:3px;min-height:56px;font-size:.72rem}
}
@media(max-width:360px){
  :root{--page-x:12px}
  .finance-hero{padding:14px}.hero-amount{font-size:1.84rem}.hero-month input{width:120px}.hero-stats strong{font-size:.82rem}
  .source-group-summary{grid-template-columns:40px minmax(0,1fr) auto;padding-inline:10px;gap:7px}.source-kind{width:40px;height:40px}.source-summary-value{min-width:72px}
  .due-card{grid-template-columns:44px minmax(0,1fr)}.due-date{width:44px}.due-side{grid-column:2;grid-template-columns:auto auto;align-items:center;justify-content:space-between;text-align:left}
  .recurring-card-grid{grid-template-columns:1fr}.recurring-card .row-actions{grid-template-columns:1fr}
  .filter-row,.agenda-filter-row{grid-template-columns:1fr}.detail-meta-grid{grid-template-columns:1fr}.detail-installment{grid-template-columns:44px minmax(0,1fr)}.detail-installment-side{grid-column:2;grid-template-columns:auto auto auto;align-items:center;justify-content:start;text-align:left}
  .entry-choice-card{grid-template-columns:44px minmax(0,1fr) 18px;min-height:132px;padding:12px}.entry-choice-icon{width:44px;height:44px}
}
@media(max-width:340px){
  .hero-topline{display:grid}.hero-month input{width:100%}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stats>div:last-child{grid-column:1/-1}
  .quick-grid,.form-two,.source-actions{grid-template-columns:1fr}.nav-item{font-size:.56rem}.nav-icon svg{width:18px;height:18px}
  .crediario-top{grid-template-columns:64px minmax(0,1fr)}.crediario-icon,.crediario-icon>.source-brand-mark.has-logo{width:64px;min-width:64px;height:40px}.crediario-top .light-status{grid-column:2;justify-self:start;margin-top:-3px}
  .brand-custom-fields{grid-template-columns:1fr}.calendar-integration-meta{grid-template-columns:1fr}
}
@media(min-width:560px){
  .page-head-row{grid-template-columns:1fr auto;align-items:end}.page-head-row .month-control input{width:158px}
  .quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.agenda-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:700px){
  :root{--page-x:22px}
  .app-header{padding-left:max(22px,calc((100vw - var(--content-max))/2 + 22px));padding-right:max(22px,calc((100vw - var(--content-max))/2 + 22px))}
  .home-overview-grid{grid-template-columns:1.08fr .92fr;align-items:stretch}.portfolio-overview{align-content:space-between}.monthly-projection{padding-inline:0}.month-projection-card{flex-basis:160px}
  .source-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.source-group-items{grid-column:1/-1}.cards-wallet,.crediario-wallet{grid-template-columns:repeat(2,minmax(0,1fr))}
  .agenda-tools{grid-template-columns:1fr auto;align-items:end}.agenda-filter-row{grid-template-columns:220px 160px}.agenda-calendar-card{max-width:660px}.agenda-list{max-width:800px}.debt-filters{grid-template-columns:minmax(280px,1fr) auto;align-items:end}.debt-filters .filter-row{grid-template-columns:170px 190px}.filter-count{grid-column:1/-1}.detail-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sheet{width:min(620px,calc(100% - 32px));height:min(820px,calc(100dvh - 32px));inset:0;margin:auto;border-radius:20px}.compact-sheet{height:auto;max-height:min(760px,calc(100dvh - 32px))}
  .toast{left:50%;right:auto;transform:translateX(-50%);width:min(440px,calc(100% - 24px))}
  .auth-shell{grid-template-columns:minmax(0,1fr) 400px;place-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:26px;overflow:hidden;box-shadow:var(--shadow-elevated)}.auth-brand-panel{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;min-height:520px;padding:34px;background:linear-gradient(155deg,#102b46,#0f5e68);color:#fff}.auth-brand-panel .brand-mark{margin-bottom:auto}.auth-brand-panel h2{font-size:2rem;letter-spacing:-.04em;line-height:1.08}.auth-brand-panel p:last-child{margin-top:13px;color:#c4d6df;max-width:330px;line-height:1.5}.auth-card{border:0;border-radius:0;box-shadow:none;padding:34px;align-self:center}.mobile-brand{display:none!important}
}
@media(min-width:1000px){
  :root{--page-x:28px}
  .app-header{margin-left:var(--side-nav);padding-left:max(28px,calc((100vw - var(--side-nav) - var(--content-max))/2 + 28px));padding-right:max(28px,calc((100vw - var(--side-nav) - var(--content-max))/2 + 28px))}
  .app-main{margin-left:var(--side-nav);margin-right:0;width:calc(100% - var(--side-nav));max-width:none;padding-left:max(28px,calc((100vw - var(--side-nav) - var(--content-max))/2 + 28px));padding-right:max(28px,calc((100vw - var(--side-nav) - var(--content-max))/2 + 28px));padding-bottom:48px}
  .bottom-nav{left:0;right:auto;top:0;bottom:0;width:var(--side-nav);height:100dvh;padding:max(28px,env(safe-area-inset-top)) 14px max(20px,env(safe-area-inset-bottom));grid-template-columns:1fr;grid-template-rows:repeat(5,62px);align-content:center;border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;backdrop-filter:none}
  .nav-item{min-height:56px;flex-direction:row;justify-content:flex-start;padding:0 14px;gap:12px;font-size:.76rem}.nav-icon{width:30px;height:30px}.fab{right:max(28px,calc((100vw - var(--side-nav) - var(--content-max))/2 + 28px));bottom:28px}.toast{bottom:28px}
  .home-overview-grid{grid-template-columns:1.1fr .9fr;gap:12px}.finance-hero,.portfolio-overview{min-height:232px}.cards-wallet{grid-template-columns:repeat(2,minmax(0,1fr))}.crediario-wallet{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1440px){.monthly-projection{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}.month-projection-card{min-width:0;flex-basis:auto}.source-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.progress-track>span,.button,.month-projection-card,.agenda-metric,.fab{transition:none!important}.button:active,.month-projection-card:active,.agenda-metric:active,.fab:active{transform:none!important}}

/* Complementos semânticos */
.category-chip{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
.recurring-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:999px;background:var(--teal-soft);color:var(--teal-strong);font-size:.64rem;font-weight:850;white-space:nowrap}
.recurring-pill.variable{background:var(--warning-soft);color:var(--warning)}
.status.future{background:var(--primary-soft);color:var(--primary-strong)}
.debt-list-heading{margin:4px 0 10px}
.debt-card.paid-debt .progress-track>span{background:var(--success)}
.appearance-settings,.projection-section,.quick-section,.source-section,.source-section-head,.entry-choice-sheet,.debt-detail-sheet,.detail-hero,.brand-select{min-width:0}


/* RC25 — comprovantes privados associados ao ledger de pagamentos. */
.receipt-section{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);min-width:0}
.receipt-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.receipt-section-head>div{display:grid;gap:2px;min-width:0}.receipt-section-head strong{font-size:.82rem}.receipt-private-badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 8px;border-radius:999px;background:var(--teal-soft);color:var(--teal-strong);font-size:.62rem;font-weight:850;white-space:nowrap}
.receipt-picker-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.receipt-pick-button{position:relative;cursor:pointer;text-align:center}.receipt-pick-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.receipt-progress{padding:9px 10px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary-strong);font-size:.72rem;font-weight:750}.receipt-selected{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.receipt-selected>div{display:grid;gap:3px;min-width:0}.receipt-selected strong{font-size:.76rem;overflow-wrap:anywhere}.receipt-selected span{font-size:.66rem;color:var(--muted);line-height:1.35}.field-error{margin:0;color:var(--danger);font-size:.7rem;line-height:1.4}
.payment-event-content{display:grid;gap:4px;min-width:0}.payment-receipts{display:grid;gap:6px;margin-top:6px}.payment-receipt-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.payment-receipt-row>div:first-child{display:grid;gap:2px;min-width:0}.payment-receipt-row strong{font-size:.7rem;overflow-wrap:anywhere}.payment-receipt-row span{font-size:.62rem;color:var(--muted)}.payment-receipt-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.payment-receipt-actions .mini-action,.receipt-attach-inline{min-height:34px}.receipt-attach-inline{justify-self:start;border:0;background:transparent;color:var(--primary-strong);font-size:.68rem;font-weight:850;padding:5px 2px;cursor:pointer}.danger-mini{color:var(--danger)!important}
.detail-inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.receipt-viewer-sheet{width:min(760px,calc(100% - 20px));height:min(900px,calc(100dvh - 20px))}.receipt-viewer-body{display:grid;place-items:center;min-height:280px;background:var(--surface-3);overflow:auto}.receipt-viewer-image{display:block;max-width:100%;height:auto;max-height:70dvh;object-fit:contain;border-radius:var(--radius-sm);box-shadow:var(--shadow)}.receipt-viewer-pdf{display:grid;place-items:center;text-align:center;gap:10px;width:min(420px,100%);padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.receipt-viewer-pdf span{color:var(--muted);font-size:.74rem;line-height:1.45}.split-footer{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:360px){.receipt-picker-actions{grid-template-columns:1fr}.payment-receipt-row{grid-template-columns:1fr}.payment-receipt-actions{justify-content:flex-start}.receipt-viewer-sheet{width:calc(100% - 12px);height:calc(100dvh - 12px)}}

/* RC25 dev.3 — autenticação determinística + Ajustes por tópicos + Google automático */
.settings-group{display:grid;gap:8px;margin-bottom:18px}.settings-group-head{display:grid;gap:2px;padding:0 2px}.settings-group-head h3{font-size:1rem;line-height:1.2}.settings-group-head .muted{font-size:.76rem;line-height:1.4}.integration-card .settings-heading{align-items:center}.integration-status{margin-left:auto;flex:none;padding:5px 8px;border-radius:999px;background:var(--success-soft);color:var(--success-strong);font-size:.68rem;font-weight:900;letter-spacing:.02em}.integration-account{display:grid;gap:3px;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.integration-account span{font-size:.68rem;color:var(--muted)}.integration-account strong{font-size:.8rem;overflow-wrap:anywhere}.setting-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer}.setting-toggle-row>span{display:grid;gap:3px;min-width:0}.setting-toggle-row strong{font-size:.82rem}.setting-toggle-row small{font-size:.7rem;line-height:1.35;color:var(--muted)}.setting-toggle-row input[role="switch"]{appearance:none;-webkit-appearance:none;width:46px;height:26px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-3);position:relative;flex:none;cursor:pointer;transition:.2s ease}.setting-toggle-row input[role="switch"]::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:.2s ease}.setting-toggle-row input[role="switch"]:checked{background:var(--primary);border-color:var(--primary)}.setting-toggle-row input[role="switch"]:checked::after{left:23px;background:#fff}.setting-toggle-row input[role="switch"]:focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}#authRetryBtn{margin-top:4px}
@media(max-width:440px){.settings-group{margin-bottom:16px}.settings-group-head .muted{font-size:.72rem}.setting-toggle-row{gap:10px;padding:10px}.setting-toggle-row small{font-size:.68rem}}

/* Preserve room for the localized month and native picker. */
.hero-month{flex-shrink:0}.hero-month input{width:180px;max-width:100%}
@media(max-width:440px){.hero-topline{display:grid;grid-template-columns:minmax(0,1fr)}.hero-label{max-width:none}.hero-month{justify-self:end}.hero-month input{width:190px}}
