/* =========================================================
   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}
.payment-required-state{display:grid;gap:12px}.payment-required-state h2{font-size:1.25rem;letter-spacing:-.02em}.payment-required-state>p{margin:0;line-height:1.45}.billing-plans{display:grid;gap:9px}.billing-plan{display:grid;gap:8px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.billing-plan-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.billing-plan-head strong{font-size:.9rem}.billing-plan-head span{font-size:.72rem;color:var(--muted)}.billing-plan .button{margin-top:2px}
.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}}

/* 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}}

/* RC25 dev.7 — organização financeira, Empréstimo Livre e UX progressiva */
.classification-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.free-loan-panel,.free-loan-payment{margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}
.free-loan-panel .hint,.free-loan-payment .hint{margin:4px 0 0;color:var(--muted);font-size:.82rem;line-height:1.35}
.free-loan-payment-copy{display:grid;gap:4px}
.free-loan-payment-copy span{color:var(--muted);font-size:.82rem;line-height:1.35}
.quick-pay-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.category-manager-list{display:grid;gap:9px;margin-top:10px}
.category-manager-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:10px}
.category-manager-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center}
.category-manager-head small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}
.category-manager-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--surface-2);font-size:1.15rem}
.subcategory-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;padding-left:45px}
.subcategory-chip{appearance:none;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);padding:6px 9px;font:inherit;font-size:.78rem;cursor:pointer}
.category-actions,.report-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.category-report-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}
.category-report-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.category-report-summary>div{padding:9px;border-radius:10px;background:var(--surface-2);min-width:0}
.category-report-summary span{display:block;color:var(--muted);font-size:.72rem}
.category-report-summary strong{display:block;margin-top:3px;font-size:.92rem;overflow-wrap:anywhere}
.category-report-list{display:grid;gap:7px;margin-top:9px}
.category-report-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.category-report-row small{display:block;color:var(--muted);margin-top:2px}
.category-report-row .amounts{text-align:right;font-size:.78rem;color:var(--muted)}
.category-report-row .amounts strong{display:block;color:var(--text);font-size:.88rem}
.settings-group-head>p,.form-section>.hint,.modal-head+*.hint{max-width:68ch}
.settings-group{content-visibility:auto;contain-intrinsic-size:220px}
@media(max-width:520px){.classification-fields,.category-report-controls{grid-template-columns:1fr}.category-report-summary{grid-template-columns:1fr 1fr}.subcategory-chips{padding-left:0}.category-manager-head{grid-template-columns:auto minmax(0,1fr)}.category-manager-head .mini-action{grid-column:2;justify-self:start}.category-report-row{grid-template-columns:1fr}.category-report-row .amounts{text-align:left;display:flex;gap:8px;flex-wrap:wrap}.free-loan-panel,.free-loan-payment{padding:10px}}
@media(max-width:340px){.category-report-summary{grid-template-columns:1fr}.quick-pay-actions,.category-actions,.report-actions{display:grid;grid-template-columns:1fr}.quick-pay-actions>*{width:100%}}
.report-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.report-totals>div{padding:9px;border-radius:10px;background:var(--surface-2)}
.report-totals span,.report-row span{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}
.report-totals strong{display:block;margin-top:3px;font-size:.92rem}
.report-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.report-row>div:last-child{text-align:right}
@media(max-width:520px){.report-row{grid-template-columns:1fr}.report-row>div:last-child{text-align:left}.report-totals{grid-template-columns:1fr 1fr}}
@media(max-width:340px){.report-totals{grid-template-columns:1fr}}

/* =========================================================
   RC25 dev.8 — iOS / Liquid Glass premium redesign
   UI-only: preserva regras financeiras, APIs e schema 10.
   ========================================================= */
:root{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
  --bg:#f2f2f7;
  --surface:#ffffff;
  --surface-2:#f7f7fa;
  --surface-3:#ececf1;
  --surface-elevated:#ffffff;
  --ink:#111114;
  --ink-soft:#34343a;
  --muted:rgba(60,60,67,.66);
  --line:rgba(60,60,67,.16);
  --line-strong:rgba(60,60,67,.24);
  --primary:#0a84ff;
  --primary-strong:#0071e3;
  --primary-soft:rgba(10,132,255,.12);
  --success:#30a14e;
  --success-soft:rgba(48,161,78,.12);
  --warning:#b56a00;
  --warning-soft:rgba(255,159,10,.14);
  --danger:#ff3b30;
  --danger-soft:rgba(255,59,48,.12);
  --teal:#00a6a6;
  --teal-strong:#007f7f;
  --teal-soft:rgba(0,166,166,.12);
  --border:var(--line);
  --text:var(--ink);
  --radius-xs:10px;
  --radius-sm:14px;
  --radius:20px;
  --radius-md:18px;
  --radius-lg:24px;
  --radius-xl:30px;
  --shadow-soft:0 8px 28px rgba(0,0,0,.05);
  --shadow:0 12px 36px rgba(0,0,0,.08);
  --shadow-elevated:0 28px 80px rgba(0,0,0,.20);
  --focus-ring:0 0 0 3px rgba(10,132,255,.28);
  --page-x:18px;
  --nav-h:78px;
  --ios-glass:rgba(255,255,255,.68);
  --ios-glass-strong:rgba(255,255,255,.82);
  --ios-glass-border:rgba(255,255,255,.72);
  --ios-highlight:rgba(255,255,255,.74);
  --blur-sm:12px;
  --blur-md:20px;
  --blur-lg:28px;
  --blur-xl:40px;
  --ease-spring:cubic-bezier(.2,.8,.2,1);
  --transition-fast:180ms var(--ease-spring);
}
html[data-theme="dark"]{
  --bg:#000000;
  --surface:#0a0a0a;
  --surface-2:#101010;
  --surface-3:#171717;
  --surface-elevated:#121212;
  --ink:#ffffff;
  --ink-soft:rgba(255,255,255,.84);
  --muted:rgba(255,255,255,.58);
  --line:rgba(255,255,255,.085);
  --line-strong:rgba(255,255,255,.14);
  --primary:#0a84ff;
  --primary-strong:#64b5ff;
  --primary-soft:rgba(10,132,255,.16);
  --success:#30d158;
  --success-soft:rgba(48,209,88,.14);
  --warning:#ffd60a;
  --warning-soft:rgba(255,214,10,.12);
  --danger:#ff453a;
  --danger-soft:rgba(255,69,58,.14);
  --teal:#64d2ff;
  --teal-strong:#9be1ff;
  --teal-soft:rgba(100,210,255,.14);
  --border:var(--line);
  --text:var(--ink);
  --shadow-soft:0 10px 32px rgba(0,0,0,.30);
  --shadow:0 16px 44px rgba(0,0,0,.38);
  --shadow-elevated:0 34px 90px rgba(0,0,0,.62);
  --ios-glass:rgba(28,28,30,.62);
  --ios-glass-strong:rgba(35,35,38,.80);
  --ios-glass-border:rgba(255,255,255,.13);
  --ios-highlight:rgba(255,255,255,.10);
}
html,body{background:var(--bg)}
html[data-theme="dark"] body{background:#000}
body{letter-spacing:-.005em}
h1,h2,h3,strong{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif}
.surface{border-color:var(--line);box-shadow:none}
.eyebrow,.section-kicker{color:var(--muted);font-size:.69rem;letter-spacing:.02em;text-transform:none;font-weight:650}

/* Cabeçalho com hierarquia de Large Title. */
.app-header{
  min-height:88px;
  padding:max(12px,env(safe-area-inset-top)) var(--page-x) 12px;
  background:color-mix(in srgb,var(--bg) 78%,transparent);
  border-bottom:1px solid transparent;
  backdrop-filter:blur(var(--blur-xl)) saturate(160%);
  -webkit-backdrop-filter:blur(var(--blur-xl)) saturate(160%);
}
.brand-mark.tiny{display:none}
.header-identity{align-items:flex-end}
.header-copy .eyebrow{font-size:.74rem;font-weight:600;color:var(--muted)}
.header-copy h1{margin-top:2px;font-size:2rem;line-height:1.02;letter-spacing:-.045em;font-weight:780}
.header-context{display:none}
.icon-button{
  border-color:var(--ios-glass-border);
  border-radius:16px;
  background:var(--ios-glass);
  backdrop-filter:blur(var(--blur-md)) saturate(150%);
  -webkit-backdrop-filter:blur(var(--blur-md)) saturate(150%);
  box-shadow:inset 0 1px 0 var(--ios-highlight),0 8px 24px rgba(0,0,0,.08);
}
.app-main{padding-top:12px;padding-bottom:calc(var(--nav-h) + 58px + env(safe-area-inset-bottom))}
.view.active{animation:ios-view-in 220ms var(--ease-spring)}
@keyframes ios-view-in{from{opacity:.72;transform:translateY(5px)}to{opacity:1;transform:none}}

/* Home: conteúdo vertical, números em primeiro plano. */
.home-overview-grid{display:grid;grid-template-columns:1fr;gap:14px}
.finance-hero,.portfolio-overview{
  min-height:0;
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:none;
  background:var(--surface);
}
.finance-hero{padding:20px;color:var(--ink);background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 96%,var(--primary) 4%),var(--surface))}
.hero-topline{align-items:start;margin-bottom:16px}
.hero-month-copy{display:grid;gap:3px}
.month-large-title{font-size:1.28rem;font-weight:760;line-height:1.08;letter-spacing:-.025em;color:var(--ink);text-transform:none}
.hero-caption{font-size:.72rem;color:var(--muted);font-weight:600}
.hero-amount{font-size:2.65rem;line-height:1;letter-spacing:-.055em;color:var(--ink);margin:2px 0 18px}
.hero-progress{height:7px;background:var(--surface-3);border-radius:999px}
.hero-progress>span{background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 65%,#fff));border-radius:999px}
.hero-progress-copy{color:var(--muted);font-size:.72rem;margin-top:8px}
.hero-stats{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;gap:0}
.hero-stats>div{padding:0 12px;border:0;background:transparent;border-radius:0}
.hero-stats>div:first-child{padding-left:0}
.hero-stats>div+div{border-left:1px solid var(--line)}
.hero-stats span,.hero-stats small{color:var(--muted)}
.hero-stats strong{color:var(--ink);font-size:.96rem}
.month-control input{
  min-height:40px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface-2);
  color:var(--ink);
  padding:7px 10px;
}
.hero-month input{width:154px}

.overview-disclosure{padding:0;overflow:hidden}
.overview-summary{list-style:none;min-height:76px;padding:16px 18px;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;gap:10px;align-items:center;cursor:pointer}
.overview-summary::-webkit-details-marker{display:none}
.overview-summary-copy{display:grid;gap:3px}.overview-summary-copy strong{font-size:.98rem}.overview-summary-copy small{font-size:.72rem;color:var(--muted)}
.overview-status{font-size:.68rem;padding:5px 8px}
.disclosure-chevron{width:18px;height:18px;color:var(--muted);transition:transform 220ms var(--ease-spring)}
details[open]>.overview-summary .disclosure-chevron,details[open]>.settings-group-summary .disclosure-chevron,details[open]>.settings-card-summary .disclosure-chevron,details[open]>.category-manager-head .disclosure-chevron{transform:rotate(180deg)}
.overview-body{padding:0 18px 18px;border-top:1px solid var(--line)}
.overview-balance{display:block;font-size:2.15rem;letter-spacing:-.045em;margin:18px 0 14px}
.overview-foot{gap:12px}.overview-note{font-size:.72rem;max-width:40ch}

.section-block{margin-top:28px}.section-head{margin-bottom:11px;align-items:center}.section-head h2{font-size:1.18rem;letter-spacing:-.025em}.section-subcopy{display:none}
.text-button{min-height:40px;border-radius:999px;padding:7px 10px;color:var(--primary);font-weight:650}
.monthly-projection{gap:10px;padding-bottom:4px;scrollbar-width:none}.monthly-projection::-webkit-scrollbar{display:none}
.month-projection-card{
  min-width:148px;
  flex-basis:148px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface);
  box-shadow:none;
  transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast);
}
.month-projection-card:active{transform:scale(.98)}.month-projection-card.selected{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));background:color-mix(in srgb,var(--surface) 91%,var(--primary) 9%)}
.projection-badge{font-size:.58rem}.projection-month-name{font-size:.78rem}.month-projection-card strong{font-size:1.05rem}.projection-meter{height:5px}

/* Origem do mês: lista agrupada em vez de dashboard de cards. */
.source-groups{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--surface)}
.source-group{border:0;border-radius:0;background:transparent;box-shadow:none}
.source-group+.source-group{border-top:1px solid var(--line)}
.source-group-summary{min-height:78px;padding:13px 15px;border:0;border-radius:0;background:transparent}
.source-group-items{border-top:1px solid var(--line);background:var(--surface-2);padding:0 14px}
.source-line{border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:12px 0}.source-line:last-child{border-bottom:0}
.source-kind{width:44px;height:44px;border-radius:14px;background:var(--surface-2)}
.source-kind.brand-source{background:transparent;overflow:hidden}.source-kind.brand-source>.source-brand-mark{width:44px;min-width:44px;height:44px;border-radius:14px}
.source-kind.brand-source>.source-brand-mark.has-logo{background:color-mix(in srgb,var(--surface) 92%,var(--brand-accent) 8%);border-color:color-mix(in srgb,var(--brand-accent) 24%,var(--line))}
.source-summary-copy strong{font-size:.88rem}.source-summary-copy span,.source-summary-copy small{font-size:.66rem}.source-summary-value strong{font-size:.9rem}

/* Listas financeiras: superfícies contínuas e linhas claras. */
.list-card,.debt-card,.recurring-card,.wallet-card,.crediario-card,.agenda-calendar-card,.agenda-metric,.detail-section,.debt-detail-hero{
  border-color:var(--line);
  box-shadow:none;
}
.card-list,.recurring-bills-list{gap:10px}
.debt-card,.recurring-card,.wallet-card,.crediario-card{border-radius:22px;background:var(--surface)}
.row-actions .button,.mini-action,.source-view,.source-pay{border-radius:12px}
.wallet-card,.crediario-card{overflow:hidden}
.wallet-card::after,.crediario-card::before{opacity:.30}
.wallet-cycle,.crediario-rule,.recurring-card-grid>div,.recurring-current{background:var(--surface-2);border-color:var(--line)}

/* Botões: menos caixas permanentes, mais ação contextual. */
.button{min-height:46px;border-radius:14px;font-weight:680;transition:transform var(--transition-fast),filter var(--transition-fast),background var(--transition-fast)}
.button:active,.icon-button:active,.fab:active,.nav-item:active,.entry-choice-card:active,.settings-group-summary:active,.settings-card-summary:active{transform:scale(.98)}
.button.primary{background:var(--primary);color:#fff;border-color:transparent}
.button.secondary{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
.danger-link{border:0;background:transparent;color:var(--danger);box-shadow:none}

/* Liquid Glass: navegação, FAB e sheets. */
.bottom-nav{
  left:14px;right:14px;bottom:max(10px,env(safe-area-inset-bottom));height:72px;
  padding:7px;gap:3px;
  border:1px solid var(--ios-glass-border);
  border-radius:24px;
  background:var(--ios-glass);
  box-shadow:inset 0 1px 0 var(--ios-highlight),0 18px 46px rgba(0,0,0,.16);
  backdrop-filter:blur(var(--blur-xl)) saturate(180%);
  -webkit-backdrop-filter:blur(var(--blur-xl)) saturate(180%);
  transition:height 240ms var(--ease-spring),left 240ms var(--ease-spring),right 240ms var(--ease-spring),transform 240ms var(--ease-spring);
}
.nav-item{min-height:56px;border-radius:18px;font-size:.61rem;font-weight:650;transition:transform var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}
.nav-icon{width:29px;height:28px}.nav-icon svg{width:20px;height:20px;stroke-width:1.9}
.nav-item.active{background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary-strong)}
.bottom-nav.compact{height:58px;left:44px;right:44px}
.bottom-nav.compact .nav-item{min-height:44px}.bottom-nav.compact .nav-item>span:last-child{display:none}.bottom-nav.compact .nav-icon{height:34px}
.fab{
  width:58px;height:58px;right:18px;bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom));
  border:1px solid var(--ios-glass-border);border-radius:22px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 78%,rgba(255,255,255,.18)),var(--primary));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),0 16px 40px color-mix(in srgb,var(--primary) 30%,rgba(0,0,0,.24));
  backdrop-filter:blur(var(--blur-lg)) saturate(160%);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(160%);
  transition:transform 220ms var(--ease-spring),box-shadow 220ms var(--ease-spring);
}
.fab svg{width:25px;height:25px;stroke-width:2}

/* Bottom sheets com materialidade, não glassmorphism generalizado. */
dialog::backdrop{background:rgba(0,0,0,.46);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sheet{border-radius:30px 30px 0 0;background:var(--ios-glass-strong);border:1px solid var(--ios-glass-border);border-bottom:0;backdrop-filter:blur(var(--blur-xl)) saturate(170%);-webkit-backdrop-filter:blur(var(--blur-xl)) saturate(170%);box-shadow:0 -10px 60px rgba(0,0,0,.32)}
.sheet::before{content:"";position:absolute;z-index:4;top:8px;left:50%;width:38px;height:5px;border-radius:999px;background:color-mix(in srgb,var(--muted) 65%,transparent);transform:translateX(-50%)}
.sheet-head{min-height:74px;padding-top:18px;background:transparent;border-bottom:1px solid var(--line);backdrop-filter:none}
.sheet-body{padding:16px 16px 34px}.sheet-footer{background:color-mix(in srgb,var(--surface) 86%,transparent);border-color:var(--line);backdrop-filter:blur(var(--blur-md));-webkit-backdrop-filter:blur(var(--blur-md))}
.form-section{border-radius:22px;border-color:var(--line);background:var(--surface);box-shadow:none}
input,select,textarea{border-radius:14px;border-color:var(--line);background:var(--surface-2);color:var(--ink)}
.entry-choice-body{gap:8px}
.entry-choice-card{min-height:74px;grid-template-columns:46px minmax(0,1fr) 18px;padding:11px 12px;border-radius:18px;border-color:var(--line);background:var(--surface);box-shadow:none;transition:transform var(--transition-fast),background var(--transition-fast)}
.entry-choice-icon{width:44px;height:44px;border-radius:15px;background:var(--ios-glass);border:1px solid var(--ios-glass-border);box-shadow:inset 0 1px 0 var(--ios-highlight)}
.entry-choice-copy strong{font-size:.86rem}.entry-choice-copy small{font-size:.68rem}

/* Ajustes: índice de áreas, recolhível, com divulgação progressiva. */
.ios-large-intro{margin-bottom:12px}.ios-large-intro h2{font-size:2rem;letter-spacing:-.045em}
.settings-group{display:block;margin:0 0 12px;content-visibility:visible}
.settings-disclosure{border:1px solid var(--line);border-radius:22px;background:var(--surface);overflow:hidden}
.settings-group-summary{list-style:none;min-height:70px;display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:10px;align-items:center;padding:14px 16px;cursor:pointer}
.settings-group-summary::-webkit-details-marker,.settings-card-summary::-webkit-details-marker,.category-manager-head::-webkit-details-marker{display:none}
.settings-group-summary>span{display:grid;gap:3px}.settings-group-summary strong{font-size:.96rem}.settings-group-summary small{font-size:.7rem;color:var(--muted)}
.settings-group-body{display:grid;gap:9px;padding:0 9px 9px;border-top:1px solid var(--line);background:var(--surface-2)}
.settings-card{margin:9px 0 0;padding:13px;border-radius:18px;border-color:var(--line);background:var(--surface);box-shadow:none}
.nested-disclosure.settings-card{padding:0;overflow:hidden}
.settings-card-summary{list-style:none;min-height:64px;padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:10px;align-items:center;cursor:pointer}
.settings-card-summary>span{display:grid;gap:3px}.settings-card-summary strong{font-size:.88rem}.settings-card-summary small{font-size:.68rem;color:var(--muted)}
.settings-card-body{display:grid;gap:10px;padding:12px 13px 13px;border-top:1px solid var(--line)}
.compact-settings-heading .settings-icon{display:none}
.compact-settings-heading{min-height:0}
.settings-heading strong{font-size:.88rem}.settings-heading .muted{font-size:.72rem}
.calendar-integration-meta{gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.calendar-integration-meta>div{border:0;border-radius:0;background:transparent;padding:10px 12px}.calendar-integration-meta>div+div{border-top:1px solid var(--line)}
.integration-account,.setting-toggle-row{border-radius:16px;background:var(--surface-2)}
.theme-segmented{border-radius:16px;background:var(--surface-2);padding:4px}.theme-segmented button{min-height:42px;border-radius:12px}.theme-segmented button.active{background:var(--surface);box-shadow:0 1px 6px rgba(0,0,0,.09);color:var(--ink)}
.version-line{padding:16px;text-align:left;font-size:.72rem}

/* Categorias: cada grupo abre sob demanda. */
.category-manager-list{gap:7px}
.category-manager-item{padding:0;border-radius:16px;overflow:hidden;background:var(--surface);border-color:var(--line)}
.category-manager-head{list-style:none;min-height:58px;padding:10px 11px;grid-template-columns:auto minmax(0,1fr) 18px;cursor:pointer}
.category-manager-icon{width:36px;height:36px;border-radius:12px;background:var(--surface-2)}
.category-manager-body{display:grid;gap:9px;padding:10px 12px 12px;border-top:1px solid var(--line);background:var(--surface-2)}
.subcategory-chips{padding-left:0;margin-top:0}.subcategory-chip{background:var(--surface);border-color:var(--line)}
.category-edit-action{justify-self:start}
.report-totals,.category-report-summary{gap:6px}.report-totals>div,.category-report-summary>div{border-radius:14px;background:var(--surface-2)}
.report-row,.category-report-row{border-radius:14px;border-color:var(--line);background:var(--surface)}

/* Agenda e filtros com controles semelhantes aos controles segmentados do iOS. */
.page-intro{margin-bottom:18px}.page-intro h2{font-size:1.8rem;letter-spacing:-.04em}.page-intro .muted{margin-top:4px;max-width:42rem;font-size:.78rem}
.agenda-scopes,.theme-segmented{backdrop-filter:blur(var(--blur-sm));-webkit-backdrop-filter:blur(var(--blur-sm))}
.agenda-chip{border-radius:999px}.agenda-chip.active{background:var(--primary);color:#fff}
.search-field{border-radius:16px;background:var(--surface);border-color:var(--line)}

/* Empty states leves. */
.empty{border:0;background:var(--surface-2);border-radius:18px;min-height:88px;color:var(--muted)}
.empty strong{font-size:.88rem}

/* Desktop: preserva linguagem mobile; usa espaço sem virar dashboard corporativo. */
@media(min-width:700px){
  :root{--page-x:22px}
  .home-overview-grid{grid-template-columns:1fr}.view[data-view="home"]{max-width:900px;margin-inline:auto}.view[data-view="settings"]{max-width:820px;margin-inline:auto}
  .source-groups{grid-template-columns:1fr}.cards-wallet,.crediario-wallet{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sheet{border-radius:30px;border-bottom:1px solid var(--ios-glass-border)}
}
@media(min-width:1000px){
  :root{--side-nav:210px;--page-x:28px}
  .bottom-nav{
    left:14px;right:auto;top:14px;bottom:14px;width:182px;height:calc(100dvh - 28px);
    grid-template-columns:1fr;grid-template-rows:repeat(5,58px);align-content:center;
    border:1px solid var(--ios-glass-border);border-radius:28px;
    box-shadow:inset 0 1px 0 var(--ios-highlight),0 20px 50px rgba(0,0,0,.12);
  }
  .bottom-nav.compact{height:calc(100dvh - 28px);left:14px;right:auto}
  .bottom-nav.compact .nav-item>span:last-child{display:inline}
  .nav-item{flex-direction:row;justify-content:flex-start;gap:11px;padding:0 13px;font-size:.76rem}
  .app-header{margin-left:var(--side-nav)}.app-main{margin-left:var(--side-nav);width:calc(100% - var(--side-nav))}
  .fab{right:max(30px,calc((100vw - var(--side-nav) - 900px)/2 + 28px));bottom:30px}
}

/* Acessibilidade e fallbacks. */
@media(prefers-reduced-motion:reduce){
  .view.active{animation:none}.bottom-nav,.nav-item,.fab,.disclosure-chevron,.entry-choice-card,.settings-group-summary,.settings-card-summary{transition:none}
  .button:active,.icon-button:active,.fab:active,.nav-item:active,.entry-choice-card:active,.settings-group-summary:active,.settings-card-summary:active{transform:none}
}
@media(prefers-contrast:more){
  :root{--line:rgba(60,60,67,.34);--line-strong:rgba(60,60,67,.48)}
  html[data-theme="dark"]{--line:rgba(255,255,255,.24);--line-strong:rgba(255,255,255,.38)}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .bottom-nav,.sheet,.icon-button{background:var(--surface-elevated)}
}
@media(max-width:440px){
  :root{--page-x:16px}
  .app-header{min-height:82px;padding-left:16px;padding-right:16px}.header-copy h1{font-size:1.82rem}.header-copy .eyebrow{max-width:230px}
  .app-main{padding-left:16px;padding-right:16px}.finance-hero{padding:18px}.hero-amount{font-size:2.35rem}.hero-month input{width:146px}
  .hero-stats>div{padding-inline:8px}.hero-stats strong{font-size:.86rem}.hero-stats span{font-size:.63rem}
  .bottom-nav{left:10px;right:10px}.bottom-nav.compact{left:34px;right:34px}
  .fab{right:16px}.overview-summary{grid-template-columns:minmax(0,1fr) auto 18px;padding-inline:15px}.overview-status{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .settings-group-summary{padding-inline:14px}.settings-group-body{padding-inline:7px;padding-bottom:7px}.settings-card{margin-top:7px}
  .category-report-controls,.classification-fields{grid-template-columns:1fr}
}
@media(max-width:340px){
  .hero-amount{font-size:2rem}.hero-month input{width:140px}.header-copy h1{font-size:1.62rem}.header-copy .eyebrow{max-width:190px}
  .nav-item{font-size:.56rem}.bottom-nav{left:7px;right:7px;padding:5px}.fab{width:54px;height:54px}
}

/* RC25 dev.8 — refinamentos de conteúdo primeiro e formulário progressivo. */
.smart-insight{display:flex;align-items:center;min-height:44px;margin:0 0 18px;padding:10px 13px;border-radius:15px;background:var(--surface-2);color:var(--text-secondary,var(--muted));font-size:.76rem;font-weight:720;line-height:1.35;border:1px solid var(--line)}
.smart-insight::before{content:"";width:7px;height:7px;margin-right:9px;border-radius:999px;background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.smart-insight.warning{color:var(--warning)}.smart-insight.warning::before{background:var(--warning);box-shadow:0 0 0 4px var(--warning-soft)}
.smart-insight.success{color:var(--success-strong)}.smart-insight.success::before{background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}
.form-more-options{padding:0;overflow:hidden}
.form-more-options>summary{list-style:none;min-height:54px;display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;font-size:.82rem;font-weight:800}
.form-more-options>summary::-webkit-details-marker{display:none}.form-more-options[open]>summary{border-bottom:1px solid var(--line)}
.form-more-options-body{display:grid;gap:12px;padding:13px 14px 14px}
.form-more-options[open] .disclosure-chevron{transform:rotate(180deg)}
.view[data-view="installments"]>.page-intro,.view[data-view="debts"]>.page-intro,.view[data-view="cards"]>.page-intro{margin-bottom:14px}
.view[data-view="installments"]>.page-intro h2,.view[data-view="debts"]>.page-intro h2,.view[data-view="cards"]>.page-intro h2{font-size:2rem}
@media(max-width:440px){.smart-insight{margin-bottom:16px}.form-more-options-body{padding-inline:12px}}

/* RC25 dev.8 H2 — Contas do mês como iOS Inset Grouped List. */
.source-section .section-head{align-items:center;margin-bottom:9px}
.source-section .section-head h2{font-size:1.35rem;letter-spacing:-.035em}
.source-section .text-button{font-size:.76rem;font-weight:700}
.source-groups{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  background:color-mix(in srgb,var(--surface) 96%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 5%,transparent),0 10px 30px rgba(0,0,0,.08);
}
.source-group{position:relative;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
.source-group::before{content:none}
.source-group+.source-group{border-top:1px solid var(--line)}
.source-group-summary{
  list-style:none;
  width:100%;
  min-height:80px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:11px 14px;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background var(--transition-fast),transform var(--transition-fast);
}
.source-group-summary::-webkit-details-marker{display:none}
.source-group-summary::marker{content:""}
.source-group-summary:active{background:color-mix(in srgb,var(--ink) 4%,transparent)}
.source-group-summary:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.source-kind.brand-avatar{
  width:46px;
  height:46px;
  min-width:46px;
  border-radius:14px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:var(--surface-2);
  color:var(--ink-soft);
}
.source-kind.brand-avatar.brand-source{background:var(--surface-2);padding:0}
.source-kind.brand-avatar>.source-brand-mark,
.source-kind.brand-avatar>.source-brand-mark.has-logo{
  width:46px;
  min-width:46px;
  height:46px;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:0;
  border-radius:14px;
  padding:6px;
  background:transparent;
  box-shadow:none;
}
.source-kind.brand-avatar>.source-brand-mark.has-logo{background:transparent}
.source-kind.brand-avatar .source-brand-logo{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  border-radius:10px;
}
.source-kind.brand-avatar.generic-source svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.8;fill:none}
.source-summary-copy{min-width:0;display:grid;gap:4px;align-content:center}
.source-summary-copy>strong{font-size:.91rem;line-height:1.15;font-weight:760;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.source-summary-meta{display:block;min-width:0;color:var(--muted);font-size:.68rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.source-summary-value{
  min-width:max-content;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  text-align:right;
}
.source-summary-value>strong{font-size:.91rem;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.source-summary-value>span{display:none}
.source-chevron{width:18px;height:18px;flex:0 0 18px;stroke:var(--muted);stroke-width:2;fill:none;transition:transform var(--transition-fast)}
.source-group[open]>.source-group-summary .source-chevron{transform:rotate(90deg)}
.source-group-items{display:grid;gap:0;padding:0 14px 7px 73px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 84%,transparent)}
.source-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-radius:0;background:transparent}
.source-line+.source-line{border-top:1px solid var(--line)}
.source-line-copy strong{font-size:.8rem}.source-line-copy span{font-size:.66rem}
.source-line-side>strong{font-size:.8rem;font-variant-numeric:tabular-nums}

html[data-theme="dark"] .source-groups{
  background:rgba(10,10,10,.90);
  border-color:rgba(255,255,255,.085);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 14px 34px rgba(0,0,0,.18);
}
html[data-theme="dark"] .source-kind.brand-avatar{background:#101010}
html[data-theme="dark"] .source-group-items{background:rgba(16,16,16,.86)}

@media(max-width:440px){
  .source-groups{border-radius:21px}
  .source-group-summary{min-height:76px;grid-template-columns:46px minmax(0,1fr) auto;gap:9px;padding:10px 12px}
  .source-kind.brand-avatar,.source-kind.brand-avatar>.source-brand-mark,.source-kind.brand-avatar>.source-brand-mark.has-logo{width:44px;min-width:44px;height:44px;border-radius:13px}
  .source-kind.brand-avatar>.source-brand-mark,.source-kind.brand-avatar>.source-brand-mark.has-logo{padding:6px}
  .source-summary-copy>strong{font-size:.88rem}
  .source-summary-meta{font-size:.64rem}
  .source-summary-value{gap:6px}
  .source-summary-value>strong{font-size:.87rem}
  .source-chevron{width:17px;height:17px;flex-basis:17px}
  .source-group-items{padding-left:66px;padding-right:12px}
}
@media(max-width:340px){
  .source-group-summary{grid-template-columns:42px minmax(0,1fr) auto;gap:7px;padding-inline:10px}
  .source-kind.brand-avatar,.source-kind.brand-avatar>.source-brand-mark,.source-kind.brand-avatar>.source-brand-mark.has-logo{width:40px;min-width:40px;height:40px;border-radius:12px}
  .source-summary-copy>strong{font-size:.84rem}.source-summary-meta{font-size:.61rem}
  .source-summary-value>strong{font-size:.82rem}.source-chevron{width:16px;height:16px;flex-basis:16px}
  .source-group-items{padding-left:59px;padding-right:10px}
}
@media(prefers-reduced-motion:reduce){.source-group-summary,.source-chevron{transition:none}.source-group-summary:active{transform:none}}


/* =========================================================
   RC25 dev.8 H3 — Symbol System & Motion
   Vetores próprios; nenhuma dependência/redistribuição SF Symbols.
   ========================================================= */
.symbol-slot{display:inline-grid;place-items:center;line-height:0;flex:none}
.symbol-icon{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;transform-origin:center;transition:transform 220ms var(--ease-spring),opacity 160ms ease,color 160ms ease}
.symbol-icon .symbol-solid{fill:currentColor;stroke:none}.symbol-icon .symbol-on-solid{fill:none;stroke:var(--surface);stroke-width:2.2}
.nav-icon.symbol-slot .symbol-icon{width:20px;height:20px}.button-icon.symbol-slot .symbol-icon{width:18px;height:18px}
.entry-choice-icon.symbol-slot .symbol-icon{width:22px;height:22px}.icon-button .symbol-slot .symbol-icon{width:20px;height:20px}.fab .symbol-slot .symbol-icon{width:25px;height:25px}.header-actions .symbol-slot .symbol-icon{width:20px;height:20px}
.nav-item.active .symbol-icon{animation:gd-symbol-bounce 260ms var(--ease-spring)}
.fab.is-open .symbol-icon{transform:rotate(45deg)}
.icon-button.is-loading .symbol-icon{animation:gd-symbol-rotate .72s linear infinite}
.entry-choice-card:active .symbol-icon,.button:active .symbol-icon{transform:scale(.92)}
@keyframes gd-symbol-bounce{0%{transform:scale(.88)}58%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes gd-symbol-rotate{to{transform:rotate(360deg)}}
@keyframes gd-symbol-wiggle{0%,100%{transform:translateX(0)}35%{transform:translateX(-2px)}65%{transform:translateX(2px)}}
@keyframes gd-symbol-appear{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}

/* =========================================================
   RC25 dev.8 H4 — Visual Stabilization
   UI-only: UTF-8, hierarchy, duplicate icons, close labels,
   source-card contrast and lighter Liquid Glass navigation.
   ========================================================= */
/* screenTitle is the single screen-level title outside Home; page-local duplicates were removed from markup. */
.view[data-view="installments"],.view[data-view="debts"],.view[data-view="cards"],.view[data-view="reports"],.view[data-view="settings"]{padding-top:2px}

/* Brand cards keep legible cycle data even after the generic surface normalization above. */
.wallet-card .wallet-cycle{background:transparent;border:0}
.wallet-card .wallet-cycle>div{background:rgba(8,17,28,.58);border-color:rgba(255,255,255,.24);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.wallet-card .wallet-cycle span{color:rgba(255,255,255,.90);text-shadow:0 1px 2px rgba(0,0,0,.28)}
.wallet-card .wallet-cycle strong{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.32)}

/* Lighter floating material: more translucency, less visual weight, same navigation contract. */
.bottom-nav{
  background:color-mix(in srgb,var(--ios-glass) 76%,transparent);
  border-color:color-mix(in srgb,var(--ios-glass-border) 82%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ios-highlight) 88%,transparent),0 12px 34px rgba(15,23,42,.12);
  backdrop-filter:blur(24px) saturate(155%);-webkit-backdrop-filter:blur(24px) saturate(155%);
}
.nav-item.active{background:color-mix(in srgb,var(--primary) 11%,transparent)}
html[data-theme="dark"] .bottom-nav{background:rgba(20,20,22,.52);border-color:rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 14px 38px rgba(0,0,0,.30)}
@media(max-width:999px){.bottom-nav{height:68px;padding:6px;border-radius:23px}.nav-item{min-height:52px}.bottom-nav.compact{height:56px}}
@media(min-width:1000px){.bottom-nav{background:color-mix(in srgb,var(--ios-glass) 82%,transparent)}}
@media(prefers-reduced-transparency:reduce){.bottom-nav{background:var(--surface-elevated);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){
  .symbol-icon,.nav-item.active .symbol-icon,.icon-button.is-loading .symbol-icon{animation:none;transition:none}
  .fab.is-open .symbol-icon,.entry-choice-card:active .symbol-icon,.button:active .symbol-icon{transform:none}
}


/* =========================================================
   RC25 dev.8 H5 — Interaction & Scroll Stabilization
   Video audit: iPhone scroll, bottom navigation, FAB, sheets,
   keyboard/visualViewport and custom brand rendering.
   ========================================================= */
:root{--dialog-vvh:100dvh;--dialog-vv-bottom:0px}
html.modal-open,body.modal-open{overscroll-behavior:none}
body.modal-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}

/* Sheets own their scroll. The page behind them must remain frozen. */
.sheet{bottom:var(--dialog-vv-bottom,0px);height:min(92dvh,calc(var(--dialog-vvh,100dvh) - 8px),840px);max-height:calc(var(--dialog-vvh,100dvh) - 4px)}
.compact-sheet{height:auto;max-height:min(86dvh,calc(var(--dialog-vvh,100dvh) - 8px),720px)}
.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-padding-block:18px 96px;touch-action:pan-y}
.sheet-footer{position:relative;z-index:5;flex:0 0 auto}

/* Keep the iOS bar stable: no lateral squeeze while the user scrolls. */
.bottom-nav{will-change:transform,opacity;transition:height 220ms var(--ease-spring),transform 220ms var(--ease-spring),opacity 160ms ease}
.fab{will-change:transform,opacity;transition:transform 220ms var(--ease-spring),opacity 160ms ease,box-shadow 220ms var(--ease-spring)}
.bottom-nav.scroll-away{transform:translate3d(0,calc(100% + 26px + env(safe-area-inset-bottom)),0);opacity:0;pointer-events:none}
.fab.scroll-away{transform:translate3d(0,calc(100% + var(--nav-h) + 54px),0);opacity:0;pointer-events:none}
@media(max-width:999px){
  .app-main{padding-bottom:calc(var(--nav-h) + 96px + env(safe-area-inset-bottom))}
  .bottom-nav.compact{height:58px;left:14px;right:14px;padding:5px 7px}
  .bottom-nav.compact .nav-item{min-height:46px}
}
@media(max-width:440px){.bottom-nav.compact{left:10px;right:10px}}
@media(max-width:340px){.bottom-nav.compact{left:7px;right:7px}}
@media(min-width:1000px){.sheet{bottom:0;height:min(820px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}}

/* A custom card must use the color the user selected, not the neutral surface. */
.wallet-card.brand-custom{background:linear-gradient(145deg,var(--brand-accent) 0%,color-mix(in srgb,var(--brand-accent) 72%,#000 28%) 100%);color:var(--brand-ink,#fff)}
.wallet-card.brand-custom .wallet-name,.wallet-card.brand-custom .wallet-brand-caption,.wallet-card.brand-custom .wallet-status{color:var(--brand-ink,#fff)}
.wallet-card.brand-custom .wallet-status{border-color:color-mix(in srgb,var(--brand-ink,#fff) 42%,transparent)}
.wallet-card.brand-custom .source-brand-mark:not(.has-logo){background:color-mix(in srgb,var(--brand-ink,#fff) 15%,transparent);color:var(--brand-ink,#fff);border:1px solid color-mix(in srgb,var(--brand-ink,#fff) 26%,transparent)}

@media(prefers-reduced-motion:reduce){.bottom-nav.scroll-away,.fab.scroll-away{transition:none}}

/* =========================================================
   RC25 dev.9 — Faturas Inteligentes, Descontos e Origens
   ========================================================= */
.source-choice-list{display:grid;gap:8px}.source-choice-item{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);border-radius:18px;padding:10px 12px;min-height:64px}.source-choice-item>span:nth-child(2){min-width:0;display:grid;gap:2px}.source-choice-item strong,.source-choice-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-choice-item small{color:var(--muted)}.source-choice-item:active{transform:scale(.985)}
.invoice-group-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-soft) 84%,transparent)}.invoice-group-actions>span{grid-column:1/-1;color:var(--muted);font-size:.78rem}.invoice-group-actions .mini-action{min-height:40px}.invoice-group-actions .mini-action.strong{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary)}
.selectable-source-line{grid-template-columns:auto minmax(0,1fr) auto}.invoice-check{display:grid;place-items:center;width:34px;min-height:44px;cursor:pointer}.invoice-check input{position:absolute;opacity:0;pointer-events:none}.invoice-check span{width:22px;height:22px;border:1.5px solid var(--border-strong);border-radius:7px;background:var(--surface);display:grid;place-items:center;transition:background 140ms ease,border-color 140ms ease,transform 140ms ease}.invoice-check input:checked+span{background:var(--primary);border-color:var(--primary)}.invoice-check input:checked+span::after{content:'✓';font-size:.78rem;font-weight:900;color:#fff;line-height:1}.invoice-check input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.source-more{display:inline-grid;place-items:center;min-width:38px;min-height:38px;border:0;background:transparent;color:var(--muted);border-radius:12px;font-weight:800;letter-spacing:1px}.source-more:hover{background:var(--surface-soft);color:var(--text)}
.discount-control{display:flex;align-items:center;justify-content:space-between;gap:12px}.discount-control>span{font-weight:700}.segmented-control{display:inline-grid;grid-auto-flow:column;padding:3px;border:1px solid var(--border);background:var(--surface-soft);border-radius:13px}.discount-choice{border:0;background:transparent;color:var(--muted);min-height:36px;padding:0 13px;border-radius:10px;font-weight:700}.discount-choice.active{background:var(--surface-elevated);color:var(--text);box-shadow:0 2px 8px rgba(15,23,42,.08)}.discount-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:11px;border:1px solid var(--border);background:var(--surface-soft);border-radius:16px}.discount-summary>div{min-width:0;display:grid;gap:3px}.discount-summary span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.discount-summary strong{font-size:.92rem;overflow-wrap:anywhere}
.brand-logo-picker{display:grid;gap:8px;padding:12px;border:1px solid var(--border);background:var(--surface-soft);border-radius:16px}.brand-logo-picker>label{margin:0}.brand-logo-preview{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:14px}.brand-logo-preview img{width:48px;height:48px;object-fit:contain;border-radius:11px;background:#fff;padding:4px}.brand-logo-preview span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.82rem}.audit-event .payment-event-dot{background:var(--warning)}
@media(max-width:390px){.invoice-group-actions{grid-template-columns:1fr}.invoice-group-actions>span{grid-column:auto}.discount-summary{grid-template-columns:1fr}.discount-summary>div{grid-template-columns:1fr auto;align-items:center}.source-choice-item{padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.source-choice-item,.invoice-check span{transition:none}}
.invoice-check{display:none}.invoice-group-actions [data-bulk-only]{display:none}.source-group.bulk-selecting .invoice-check{display:grid}.source-group.bulk-selecting .invoice-group-actions [data-bulk-only]{display:inline-flex}.source-group.bulk-selecting .invoice-group-actions span[data-bulk-only]{display:block}.source-group.bulk-selecting .selectable-source-line{background:color-mix(in srgb,var(--primary) 3%,transparent)}


/* =========================================================
   RC25 dev.9 H4 — Home / Contas do mês — Expanded Layout Refinement
   UI-only: melhora alinhamento, respiro e geometria do estado expandido
   sem alterar regras financeiras, seleção ou pagamentos.
   ========================================================= */
.source-group[open]>.source-group-summary{
  background:color-mix(in srgb,var(--surface-2) 52%,transparent);
}
.source-group[open]>.source-group-items{
  margin:0 10px 10px;
  padding:0;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);
  border-radius:18px;
  overflow:hidden;
  background:color-mix(in srgb,var(--surface-2) 92%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--ink) 4%,transparent);
}
.source-group[open]>.source-group-items>.invoice-group-actions{
  margin:0;
  padding:10px;
  border:0;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 50%,transparent);
}
.invoice-group-actions .mini-action{
  min-height:42px;
  border:1px solid color-mix(in srgb,var(--line) 92%,transparent);
  border-radius:14px;
  padding:8px 12px;
  background:color-mix(in srgb,var(--surface-3) 86%,transparent);
  color:var(--ink-soft);
  font-size:.72rem;
  font-weight:820;
  line-height:1.15;
}
.invoice-group-actions .mini-action.strong{
  border-color:color-mix(in srgb,var(--primary) 22%,var(--line));
  background:color-mix(in srgb,var(--primary) 14%,var(--surface));
  color:var(--primary-strong);
}
.invoice-group-actions .mini-action:active{transform:scale(.985)}
.invoice-group-actions>span{
  padding:0 2px 1px;
  font-size:.7rem;
  line-height:1.3;
}
.source-group[open] .source-line{
  min-height:92px;
  padding:12px 11px;
  gap:10px 12px;
  align-items:start;
  background:transparent;
}
.source-group[open] .source-line+.source-line{
  border-top:1px solid color-mix(in srgb,var(--line) 88%,transparent);
}
.source-group[open] .source-line-copy{
  align-self:start;
  gap:4px;
  padding-top:2px;
}
.source-group[open] .source-line-copy strong{
  font-size:.83rem;
  line-height:1.2;
  font-weight:760;
}
.source-group[open] .source-line-copy span{
  font-size:.67rem;
  line-height:1.35;
}
.source-group[open] .source-line-side{
  min-width:132px;
  display:grid;
  grid-template-columns:auto auto;
  grid-template-areas:
    "amount status"
    "actions actions";
  justify-content:end;
  align-items:center;
  gap:8px 7px;
  text-align:right;
}
.source-group[open] .source-line-side>strong{
  grid-area:amount;
  justify-self:end;
  align-self:center;
  font-size:.82rem;
  line-height:1;
  white-space:nowrap;
}
.source-group[open] .source-line-side>.status{
  grid-area:status;
  justify-self:end;
  align-self:center;
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  font-size:.64rem;
  line-height:1;
  white-space:nowrap;
}
.source-group[open] .source-line-actions{
  grid-area:actions;
  justify-self:end;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:6px;
}
.source-group[open] .source-view,
.source-group[open] .source-pay,
.source-group[open] .source-more{
  min-height:36px;
  border-radius:12px;
}
.source-group[open] .source-view{
  border:1px solid color-mix(in srgb,var(--line) 92%,transparent);
  background:color-mix(in srgb,var(--surface-3) 80%,transparent);
  color:var(--ink-soft);
}
.source-group[open] .source-pay{
  border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);
  background:color-mix(in srgb,var(--primary) 14%,var(--surface));
  color:var(--primary-strong);
}
.source-group[open] .source-more{
  min-width:36px;
  width:36px;
  padding:0;
  border:1px solid transparent;
  background:transparent;
}
.source-group[open] .selectable-source-line{
  grid-template-columns:minmax(0,1fr) auto;
}
.source-group.bulk-selecting[open] .selectable-source-line{
  grid-template-columns:36px minmax(0,1fr) auto;
}
.source-group.bulk-selecting[open] .invoice-check{
  width:36px;
  min-height:44px;
  align-self:center;
}
.source-group.bulk-selecting[open] .selectable-source-line{
  background:color-mix(in srgb,var(--primary) 3.5%,transparent);
}
html[data-theme="dark"] .source-group[open]>.source-group-summary{
  background:rgba(255,255,255,.018);
}
html[data-theme="dark"] .source-group[open]>.source-group-items{
  background:rgba(18,18,18,.94);
  border-color:rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
html[data-theme="dark"] .source-group[open]>.source-group-items>.invoice-group-actions{
  background:rgba(255,255,255,.012);
}
@media(max-width:440px){
  .source-group[open]>.source-group-items{margin:0 8px 9px;border-radius:17px}
  .source-group[open]>.source-group-items>.invoice-group-actions{padding:9px}
  .invoice-group-actions{gap:7px}
  .invoice-group-actions .mini-action{min-height:41px;padding-inline:9px;font-size:.69rem}
  .source-group[open] .source-line{min-height:90px;padding:11px 10px;gap:8px 9px}
  .source-group[open] .source-line-side{min-width:126px;gap:7px 6px}
  .source-group[open] .source-line-actions{gap:5px}
  .source-group[open] .source-view,.source-group[open] .source-pay{padding-inline:9px;font-size:.69rem}
}
@media(max-width:390px){
  .source-group[open]>.source-group-items{margin-inline:7px}
  .invoice-group-actions{grid-template-columns:1fr 1fr}
  .invoice-group-actions>span{grid-column:1/-1}
  .source-group[open] .source-line{
    grid-template-columns:minmax(0,1fr) auto;
    padding:11px 9px;
  }
  .source-group[open] .source-line-side{min-width:118px}
  .source-group[open] .source-line-copy strong{font-size:.8rem}
  .source-group[open] .source-line-copy span{font-size:.64rem}
  .source-group[open] .source-line-side>strong{font-size:.79rem}
  .source-group[open] .source-line-side>.status{padding-inline:7px;font-size:.61rem}
}
@media(max-width:340px){
  .source-group[open]>.source-group-items{margin-inline:6px;border-radius:16px}
  .invoice-group-actions{grid-template-columns:1fr}
  .invoice-group-actions>span{grid-column:auto}
  .source-group[open] .source-line{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
  }
  .source-group[open] .source-line-side{
    min-width:0;
    width:100%;
    grid-template-columns:auto auto minmax(0,1fr);
    grid-template-areas:"amount status actions";
    justify-content:start;
    text-align:left;
  }
  .source-group[open] .source-line-side>strong,
  .source-group[open] .source-line-side>.status,
  .source-group[open] .source-line-actions{justify-self:start}
  .source-group[open] .source-line-actions{justify-content:flex-start}
  .source-group.bulk-selecting[open] .selectable-source-line{grid-template-columns:34px minmax(0,1fr)}
  .source-group.bulk-selecting[open] .source-line-side{grid-column:2}
}
@media(prefers-reduced-motion:reduce){.invoice-group-actions .mini-action{transition:none}}

/* RC25 dev.10 — Pessoas + Central de Relatórios */
.bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
.purchase-person-fields{display:grid;gap:9px;padding:11px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.purchase-person-fields[hidden]{display:none!important}
.purchase-person-fields small{display:block;margin-top:5px;color:var(--muted);font-size:.68rem}

.hero-breakdown-toggle{position:relative;z-index:1;width:100%;margin-top:14px;padding:12px 0 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:10px;align-items:center;text-align:left;cursor:pointer}
.hero-breakdown-toggle>span:first-child{display:grid;gap:2px}.hero-breakdown-toggle strong{font-size:.82rem}.hero-breakdown-toggle small{font-size:.66rem;color:var(--muted)}
.hero-breakdown-toggle .symbol-icon{width:18px;height:18px;transition:transform var(--transition-fast)}.hero-breakdown-toggle.open .symbol-icon{transform:rotate(180deg)}
.hero-person-breakdown{position:relative;z-index:1;margin-top:10px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:color-mix(in srgb,var(--surface-2) 82%,transparent)}
.hero-person-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 12px}.hero-person-row+.hero-person-row{border-top:1px solid var(--line)}
.hero-person-row>div{min-width:0;display:grid;gap:2px}.hero-person-row>div strong{font-size:.78rem;overflow:hidden;text-overflow:ellipsis}.hero-person-row span{font-size:.65rem;color:var(--muted)}.hero-person-row>strong{font-size:.82rem;white-space:nowrap}.hero-person-empty{margin:0;padding:12px;color:var(--muted);font-size:.72rem}

.reports-view{gap:14px}.view.reports-view.active{display:grid}.reports-primary-panel{order:0}.reports-filter-card,.reports-export-card{padding:0;border-radius:22px}.reports-filter-disclosure{overflow:hidden}.reports-filter-summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:10px;align-items:center;padding:14px 16px;cursor:pointer}.reports-filter-summary::-webkit-details-marker{display:none}.reports-filter-summary>span{display:grid;gap:3px}.reports-filter-summary strong{font-size:.82rem}.reports-filter-summary small{font-size:.66rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reports-filter-summary .disclosure-chevron{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;transition:transform var(--transition-fast)}.reports-filter-disclosure[open] .reports-filter-summary .disclosure-chevron{transform:rotate(180deg)}.reports-filter-body{padding:0 16px 16px;border-top:1px solid var(--line)}.reports-export-card{padding:16px}
.reports-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:13px 0}.reports-filter-grid label{min-width:0}
.reports-period-label{font-size:.68rem;color:var(--muted);white-space:nowrap}
.reports-ranking{display:grid;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface)}
.reports-rank-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 13px}.reports-rank-row+.reports-rank-row{border-top:1px solid var(--line)}
.reports-rank-position{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);font-size:.72rem;font-weight:800;color:var(--muted)}
.reports-rank-main{min-width:0;display:grid;gap:7px}.reports-rank-main>div:first-child{display:grid;gap:2px}.reports-rank-main strong{font-size:.78rem}.reports-rank-main span,.reports-rank-value span{font-size:.64rem;color:var(--muted)}
.reports-rank-track{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden}.reports-rank-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}
.reports-rank-value{text-align:right}.reports-rank-value strong{display:block;font-size:.82rem;white-space:nowrap}
.reports-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reports-kpis article{padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.reports-kpis span{display:block;color:var(--muted);font-size:.68rem}.reports-kpis strong{display:block;margin-top:5px;font-size:1.05rem}
.reports-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reports-dashboard-card{padding:15px;border-radius:20px;min-width:0}.reports-dashboard-wide{grid-column:1/-1}
.reports-monthly-chart{display:flex;align-items:flex-end;gap:10px;min-height:190px;padding-top:8px;overflow-x:auto}.reports-month-bar{min-width:64px;flex:1;display:grid;grid-template-rows:125px auto auto;gap:5px;text-align:center}.reports-month-bar-visual{height:125px;display:flex;align-items:flex-end;justify-content:center;background:var(--surface-2);border-radius:13px;padding:5px}.reports-month-bar-visual span{display:block;width:100%;min-height:5px;border-radius:9px;background:linear-gradient(180deg,var(--primary),var(--primary-strong))}.reports-month-bar strong{font-size:.7rem;white-space:nowrap}.reports-month-bar small{font-size:.61rem;color:var(--muted)}
.reports-simple-list{display:grid}.reports-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0}.reports-list-row+.reports-list-row{border-top:1px solid var(--line)}.reports-list-row>span{display:grid;gap:2px;min-width:0}.reports-list-row strong{font-size:.76rem}.reports-list-row small{font-size:.63rem;color:var(--muted)}.reports-list-row>strong{white-space:nowrap}
.reports-export-meta{margin:10px 0 12px;color:var(--muted);font-size:.68rem;line-height:1.45}

@media(max-width:760px){.reports-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-filter-grid label:last-child{grid-column:1/-1}.reports-dashboard-grid{grid-template-columns:1fr}.reports-dashboard-wide{grid-column:auto}}
@media(max-width:440px){.reports-filter-grid{grid-template-columns:1fr}.reports-filter-grid label:last-child{grid-column:auto}.reports-kpis{grid-template-columns:1fr 1fr}.reports-kpis article:first-child{grid-column:1/-1}.reports-rank-row{grid-template-columns:28px minmax(0,1fr)}.reports-rank-value{grid-column:2;text-align:left;display:flex;gap:8px;align-items:baseline}.hero-person-row{padding:10px}.nav-item{font-size:.5rem}.bottom-nav{gap:2px;padding-inline:4px}}
@media(max-width:340px){.reports-kpis{grid-template-columns:1fr}.reports-kpis article:first-child{grid-column:auto}.nav-item{font-size:.46rem}.nav-icon svg{width:17px;height:17px}}
@media(min-width:1000px){.bottom-nav{grid-template-columns:1fr;grid-template-rows:repeat(6,62px)}.reports-filter-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.hero-breakdown-toggle .symbol-icon,.reports-filter-summary .disclosure-chevron{transition:none}}
