:root{
  color-scheme:light;
  --bg-page:#f4f8f6;
  --bg-surface:#ffffff;
  --bg-sidebar:#ffffff;
  --bg-soft:#edf5f1;
  --text-primary:#17372f;
  --text-secondary:#687a74;
  --border-color:#dce7e2;
  --primary:#278268;
  --primary-hover:#1f6d58;
  --accent-soft:#e2f3ec;
  --note-bg:#f1ebf8;
  --note-text:#7652a8;
  --shadow:0 12px 35px rgba(30,70,58,.08);
  --input-bg:#ffffff;
  --table-hover:#f6faf8;
  --overlay:rgba(15,25,22,.55);
  --hero-start:#286f5c;
  --hero-end:#399477;
}

html[data-theme="dark"]{
  color-scheme:dark;
  --bg-page:#202124;
  --bg-surface:#2b2c30;
  --bg-sidebar:#252629;
  --bg-soft:#34363b;
  --text-primary:#f1f3f4;
  --text-secondary:#bdc1c6;
  --border-color:#44464c;
  --primary:#8ab4f8;
  --primary-hover:#a8c7fa;
  --accent-soft:#303846;
  --note-bg:#34313a;
  --note-text:#f0c6ff;
  --shadow:0 14px 38px rgba(0,0,0,.24);
  --input-bg:#303134;
  --table-hover:#33353a;
  --overlay:rgba(0,0,0,.68);
  --hero-start:#3c4043;
  --hero-end:#5f6368;
}

html[data-theme="rose"]{
  color-scheme:light;
  --bg-page:#fff7fa;
  --bg-surface:#ffffff;
  --bg-sidebar:#fffafe;
  --bg-soft:#fdebf2;
  --text-primary:#3a2430;
  --text-secondary:#795b68;
  --border-color:#efd5df;
  --primary:#b84f78;
  --primary-hover:#983f63;
  --accent-soft:#fde7f0;
  --note-bg:#f7e9ff;
  --note-text:#6f3f85;
  --shadow:0 12px 32px rgba(120,55,82,.10);
  --input-bg:#fffafd;
  --table-hover:#fff0f5;
  --overlay:rgba(58,36,48,.46);
  --hero-start:#b84f78;
  --hero-end:#db789b;
}

body{background:var(--bg-page)!important;color:var(--text-primary)!important}
.sidebar,.topbar,.mobile-nav{background:var(--bg-sidebar)!important;border-color:var(--border-color)!important}
.brand{color:var(--text-primary)!important}
.brand small,.sidebar nav a{color:var(--text-secondary)!important}
.brand-icon,.avatar{background:var(--accent-soft)!important;color:var(--primary)!important}
.sidebar nav a:hover,.sidebar nav a.active{background:var(--accent-soft)!important;color:var(--primary)!important}
.couple-note{background:var(--note-bg)!important;color:var(--note-text)!important}
.couple-note small{color:var(--text-secondary)!important}
.card-soft,.metric,.goal-card,.modal-content{background:var(--bg-surface)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important;box-shadow:var(--shadow)!important}
.hero-balance{background:linear-gradient(125deg,var(--hero-start),var(--hero-end))!important}
.table{--bs-table-bg:var(--bg-surface);--bs-table-color:var(--text-primary);--bs-table-border-color:var(--border-color);--bs-table-hover-bg:var(--table-hover);--bs-table-hover-color:var(--text-primary)}
.form-control,.form-select,.period select{background-color:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}
.form-control::placeholder{color:var(--text-secondary)!important}
.topbar p,.section-title p,.metric span,small,.text-muted,.modal-subtitle,.empty,.goal-foot,.forecast{color:var(--text-secondary)!important}
.modal-header,.modal-footer,.bill-row,.history,.report-lines span{border-color:var(--border-color)!important}
.modal-title,.modal label,h1,h2,strong,b{color:inherit}
.cal-day,.date-box{background:var(--bg-surface)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}
.cal-event,.forecast,.confirmation-summary{background:var(--bg-soft)!important;color:var(--text-primary)!important}
.progress{background:var(--bg-soft)!important}
.modal-backdrop.show{opacity:.7}
.btn-primary{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}
.btn-primary:hover,.btn-primary:focus{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important}
.btn-outline-primary{color:var(--primary)!important;border-color:var(--primary)!important}
.btn-outline-primary:hover,.btn-outline-primary:focus{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}
.btn-light{background:var(--bg-soft)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}
.menu-toggle{background:var(--bg-surface)!important;color:var(--primary)!important;border-color:var(--border-color)!important}
.text-bg-light,.badge.text-bg-light{background:var(--bg-soft)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)}
.period label,.health-score strong,.section-title a{color:var(--primary)!important}
html[data-theme="dark"] .btn-close{filter:invert(1) grayscale(1)}
html[data-theme="dark"] option{background:#303134;color:#f1f3f4}
html[data-theme="rose"] option{background:#fffafd;color:#3a2430}
.sidebar-backdrop{background:var(--overlay)!important}
*{scrollbar-color:var(--border-color) var(--bg-page)}

.grid-3{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
}

:root{
  --marry-primary:#B94E73;
  --marry-primary-hover:#A54265;
  --marry-primary-soft:#F8DDE7;
  --marry-secondary:#6E4054;
  --marry-accent:#D8A2B5;
  --marry-background:#FFF9FB;
  --marry-surface:#FFFFFF;
  --marry-surface-soft:#FDF1F5;
  --marry-text:#321F28;
  --marry-text-secondary:#765E68;
  --marry-border:#EBCFD9;
  --marry-success:#4F8A68;
  --marry-warning:#B8863E;
  --marry-danger:#B44C55;
  --marry-radius:18px;
  --marry-radius-sm:12px;
  --marry-space:16px;
  --marry-shadow:0 18px 45px rgba(80,38,56,.11);
  --marry-transition:180ms ease;
  --bg-page:var(--marry-background);
  --bg-surface:var(--marry-surface);
  --bg-sidebar:var(--marry-surface);
  --bg-soft:var(--marry-surface-soft);
  --text-primary:var(--marry-text);
  --text-secondary:var(--marry-text-secondary);
  --border-color:var(--marry-border);
  --primary:var(--marry-primary);
  --primary-hover:var(--marry-primary-hover);
  --accent-soft:var(--marry-primary-soft);
  --shadow:var(--marry-shadow);
  --input-bg:var(--marry-surface);
  --table-hover:var(--marry-surface-soft);
  --hero-start:#8C3D5A;
  --hero-end:#D77D9A;
}

html[data-theme="dark"]{
  --marry-background:#171116;
  --marry-surface:#241A21;
  --marry-surface-soft:#30212A;
  --marry-primary:#D9799A;
  --marry-primary-hover:#E28BAB;
  --marry-primary-soft:#442734;
  --marry-secondary:#F0C4D2;
  --marry-accent:#BD617F;
  --marry-text:#FFF5F8;
  --marry-text-secondary:#D2BBC4;
  --marry-border:#4B3440;
  --marry-shadow:0 18px 45px rgba(0,0,0,.28);
  --bg-page:var(--marry-background);
  --bg-surface:var(--marry-surface);
  --bg-sidebar:var(--marry-surface);
  --bg-soft:var(--marry-surface-soft);
  --text-primary:var(--marry-text);
  --text-secondary:var(--marry-text-secondary);
  --border-color:var(--marry-border);
  --primary:var(--marry-primary);
  --primary-hover:var(--marry-primary-hover);
  --accent-soft:var(--marry-primary-soft);
  --shadow:var(--marry-shadow);
  --input-bg:#2B2028;
  --table-hover:#30212A;
  --hero-start:#442734;
  --hero-end:#7C4058;
}

html[data-theme="rose"]{
  --marry-background:#FFF7FA;
  --marry-surface:#FFFFFF;
  --marry-surface-soft:#FDF0F5;
  --marry-primary:#B84F78;
  --marry-primary-hover:#983F63;
  --marry-primary-soft:#FBE1EB;
  --marry-secondary:#714056;
  --marry-accent:#D88CA8;
  --marry-text:#3A2430;
  --marry-text-secondary:#795B68;
  --marry-border:#EFD5DF;
  --bg-page:var(--marry-background);
  --bg-surface:var(--marry-surface);
  --bg-sidebar:#FFFAFC;
  --bg-soft:var(--marry-surface-soft);
  --text-primary:var(--marry-text);
  --text-secondary:var(--marry-text-secondary);
  --border-color:var(--marry-border);
  --primary:var(--marry-primary);
  --primary-hover:var(--marry-primary-hover);
  --accent-soft:var(--marry-primary-soft);
  --input-bg:#FFFAFD;
  --table-hover:#FFF0F5;
  --hero-start:#B84F78;
  --hero-end:#DB789B;
}

html{
  --color-success:#2F7D55;
  --color-warning:#A56B14;
  --color-danger:#B4232E;
  --color-info:#2563EB;
  --calendar-receita:var(--color-info);
  --calendar-vencimento:var(--color-warning);
  --calendar-pagamento:var(--color-success);
  --calendar-atraso:var(--color-danger);
  --calendar-aporte:#7C3AED;
  --theme-secondary:#1F2B4D;
  --color-on-primary:#FFFFFF;
  --color-primary-active:var(--color-primary-hover);
  --color-primary-muted:color-mix(in srgb,var(--color-primary) 58%,var(--color-surface));
  --focus-ring:0 0 0 .22rem color-mix(in srgb,var(--color-primary) 24%,transparent);
  --shadow-card:0 18px 45px rgba(35,26,31,.10);
  --chart-1:var(--color-primary);
  --chart-2:var(--theme-secondary);
  --chart-3:#2F7D55;
  --chart-4:#D09A2D;
  --chart-5:#7C3AED;
  --chart-6:#5D6D7D;
}

html[data-theme="together"]{--color-primary:#B94E73;--color-primary-hover:#A54265;--theme-secondary:#1F2B4D;--color-primary-soft:#F8DDE7;--color-background:#FFF9FB;--color-surface:#FFFFFF;--color-surface-alt:#FDF1F5;--color-border:#EBCFD9;--color-text:#321F28;--color-text-muted:#765E68;--hero-start:#8C3D5A;--hero-end:#D77D9A}
html[data-theme="lavender"]{--color-primary:#6857D9;--color-primary-hover:#5748BD;--theme-secondary:#8C3AAE;--color-primary-soft:#EFECFF;--color-background:#FBFAFF;--color-surface:#FFFFFF;--color-surface-alt:#F5F2FF;--color-border:#DED7FF;--color-text:#27213D;--color-text-muted:#67607F;--hero-start:#6857D9;--hero-end:#BA55D3}
html[data-theme="sky"]{--color-primary:#007FB8;--color-primary-hover:#006A9A;--theme-secondary:#4EAEE6;--color-primary-soft:#E6F7FF;--color-background:#F7FCFF;--color-surface:#FFFFFF;--color-surface-alt:#ECF8FF;--color-border:#CBEAF8;--color-text:#173244;--color-text-muted:#5D7380;--hero-start:#007FB8;--hero-end:#87CEFF}
html[data-theme="ocean"]{--color-primary:#008A94;--color-primary-hover:#00737B;--theme-secondary:#27B792;--color-primary-soft:#DDFBFA;--color-background:#F4FEFD;--color-surface:#FFFFFF;--color-surface-alt:#E9FFFB;--color-border:#BDEBE8;--color-text:#173B3E;--color-text-muted:#557477;--hero-start:#008A94;--hero-end:#22CFC7}
html[data-theme="aquamarine"]{--color-primary:#16886E;--color-primary-hover:#126F5A;--theme-secondary:#41B996;--color-primary-soft:#E1FFF6;--color-background:#F7FFFC;--color-surface:#FFFFFF;--color-surface-alt:#EEFFF9;--color-border:#C4EFE3;--color-text:#173B32;--color-text-muted:#5A746D;--hero-start:#16886E;--hero-end:#7FFFD4}
html[data-theme="intense_pink"]{--color-primary:#C80F73;--color-primary-hover:#A90B60;--theme-secondary:#E554A0;--color-primary-soft:#FFE4F2;--color-background:#FFF8FC;--color-surface:#FFFFFF;--color-surface-alt:#FFF0F8;--color-border:#F3C9DE;--color-text:#3C1830;--color-text-muted:#7A5D6F;--hero-start:#C80F73;--hero-end:#FF6EB4}
html[data-theme="orchid"]{--color-primary:#A947A6;--color-primary-hover:#8D3B8A;--theme-secondary:#8547B1;--color-primary-soft:#F8E6F8;--color-background:#FFF9FF;--color-surface:#FFFFFF;--color-surface-alt:#FCF0FC;--color-border:#EDCEEF;--color-text:#351E39;--color-text-muted:#735E77;--hero-start:#A947A6;--hero-end:#BA55D3}
html[data-theme="recovery_green"]{--color-primary:#367A3E;--color-primary-hover:#2D6534;--theme-secondary:#7EA636;--color-primary-soft:#E9FFE9;--color-background:#FAFFF9;--color-surface:#FFFFFF;--color-surface-alt:#F0FFF0;--color-border:#CAEAC9;--color-text:#1D351F;--color-text-muted:#617460;--hero-start:#367A3E;--hero-end:#A2CD5A}
html[data-theme="earth"]{--color-primary:#8C6842;--color-primary-hover:#745534;--theme-secondary:#78933E;--color-primary-soft:#F5EDDF;--color-background:#FFFCF7;--color-surface:#FFFFFF;--color-surface-alt:#F8F1E7;--color-border:#E6D4BC;--color-text:#35281B;--color-text-muted:#76685A;--hero-start:#8C6842;--hero-end:#CDAA7D}
html[data-theme="graphite"]{--color-primary:#4F4F4F;--color-primary-hover:#3F3F3F;--theme-secondary:#6C7B8B;--color-primary-soft:#ECEFF2;--color-background:#F8F9FA;--color-surface:#FFFFFF;--color-surface-alt:#F1F3F5;--color-border:#DDE2E7;--color-text:#242629;--color-text-muted:#666F78;--hero-start:#4F4F4F;--hero-end:#6C7B8B}
html[data-theme="royal_blue"]{--color-primary:#3A5FCD;--color-primary-hover:#2F4EAA;--theme-secondary:#008CBF;--color-primary-soft:#E8EEFF;--color-background:#F8FAFF;--color-surface:#FFFFFF;--color-surface-alt:#EEF3FF;--color-border:#CCD8FA;--color-text:#182545;--color-text-muted:#5B6780;--hero-start:#3A5FCD;--hero-end:#00BFFF}
html[data-theme="commitment_red"]{--color-primary:#B21616;--color-primary-hover:#941212;--theme-secondary:#6C7B8B;--color-primary-soft:#FFE7E7;--color-background:#FFF9F9;--color-surface:#FFFFFF;--color-surface-alt:#FFF0F0;--color-border:#F0CDCD;--color-text:#3E1B1B;--color-text-muted:#795F5F;--color-danger:#8F1F2A;--hero-start:#B21616;--hero-end:#D75858}
html[data-theme="slate_neutral"]{--color-primary:#5D6D7D;--color-primary-hover:#4D5B68;--theme-secondary:#8B8989;--color-primary-soft:#EEF1F4;--color-background:#FAFBFC;--color-surface:#FFFFFF;--color-surface-alt:#F3F5F7;--color-border:#DDE3E8;--color-text:#26313B;--color-text-muted:#687581;--hero-start:#5D6D7D;--hero-end:#8B8989}
html[data-theme="soft_pink"]{--color-primary:#D94E93;--color-primary-hover:#BC3D7C;--theme-secondary:#4C93B7;--color-primary-soft:#FFEAF4;--color-background:#FFF9FC;--color-surface:#FFFFFF;--color-surface-alt:#FFF1F7;--color-border:#F4D1E2;--color-text:#3B2030;--color-text-muted:#795F6D;--hero-start:#D94E93;--hero-end:#87CEFF}
html[data-theme="soft_blue"]{--color-primary:#2D78A8;--color-primary-hover:#23638C;--theme-secondary:#5AAED4;--color-primary-soft:#EAF8FF;--color-background:#F8FCFF;--color-surface:#FFFFFF;--color-surface-alt:#EFF9FF;--color-border:#CFEAF8;--color-text:#1D3443;--color-text-muted:#5C7280;--hero-start:#2D78A8;--hero-end:#BFEFFF}

html[data-color-mode="dark"]{
  color-scheme:dark;
  --color-background:#171519;
  --color-surface:#242129;
  --color-surface-alt:#302B35;
  --color-border:#4B4350;
  --color-text:#FFF8FB;
  --color-text-muted:#D0C2CC;
  --color-primary-soft:color-mix(in srgb,var(--color-primary) 28%,#211B23);
  --shadow-card:0 18px 45px rgba(0,0,0,.30);
  --input-bg:#2A252E;
  --table-hover:#302B35;
}

html[data-color-mode="dark"][data-theme="graphite"]{--color-background:#151617;--color-surface:#232527;--color-surface-alt:#2D3033;--color-border:#484D52;--color-text:#F4F5F6;--color-text-muted:#C5CBD1}
html[data-color-mode="dark"][data-theme="commitment_red"]{--color-danger:#FF8A8A}

html{
  --bg-page:var(--color-background);
  --bg-surface:var(--color-surface);
  --bg-sidebar:var(--color-surface);
  --bg-soft:var(--color-surface-alt);
  --text-primary:var(--color-text);
  --text-secondary:var(--color-text-muted);
  --border-color:var(--color-border);
  --primary:var(--color-primary);
  --primary-hover:var(--color-primary-hover);
  --accent-soft:var(--color-primary-soft);
  --note-bg:var(--color-primary-soft);
  --note-text:var(--color-primary);
  --shadow:var(--shadow-card);
  --input-bg:var(--color-surface);
}

.btn-primary{color:var(--color-on-primary)!important}
.badge-pago,.badge-recebido{background:color-mix(in srgb,var(--color-success) 16%,var(--color-surface))!important;color:var(--color-success)!important}
.badge-pendente,.badge-previsto{background:color-mix(in srgb,var(--color-info) 14%,var(--color-surface))!important;color:var(--color-info)!important}
.badge-parcial{background:color-mix(in srgb,var(--color-warning) 18%,var(--color-surface))!important;color:var(--color-warning)!important}
.badge-atrasado{background:color-mix(in srgb,var(--color-danger) 14%,var(--color-surface))!important;color:var(--color-danger)!important}
.alert-danger{--bs-alert-bg:color-mix(in srgb,var(--color-danger) 14%,var(--color-surface));--bs-alert-color:var(--color-danger);--bs-alert-border-color:color-mix(in srgb,var(--color-danger) 28%,var(--color-border))}
.alert-success{--bs-alert-bg:color-mix(in srgb,var(--color-success) 14%,var(--color-surface));--bs-alert-color:var(--color-success);--bs-alert-border-color:color-mix(in srgb,var(--color-success) 28%,var(--color-border))}
.alert-warning{--bs-alert-bg:color-mix(in srgb,var(--color-warning) 14%,var(--color-surface));--bs-alert-color:var(--color-warning);--bs-alert-border-color:color-mix(in srgb,var(--color-warning) 28%,var(--color-border))}
.alert-info{--bs-alert-bg:color-mix(in srgb,var(--color-info) 12%,var(--color-surface));--bs-alert-color:var(--color-info);--bs-alert-border-color:color-mix(in srgb,var(--color-info) 24%,var(--color-border))}

.login-identity{background:radial-gradient(circle at 15% 20%,rgba(135,206,255,.24),transparent 40%),radial-gradient(circle at 85% 75%,rgba(255,110,180,.20),transparent 42%),linear-gradient(135deg,var(--color-surface-alt),var(--color-surface))!important}
html[data-presentation="blue"] .login-identity{background:radial-gradient(circle at 20% 18%,rgba(135,206,255,.34),transparent 42%),linear-gradient(135deg,var(--color-surface-alt),var(--color-surface))!important}
html[data-presentation="pink"] .login-identity{background:radial-gradient(circle at 82% 72%,rgba(255,110,180,.30),transparent 42%),linear-gradient(135deg,var(--color-surface-alt),var(--color-surface))!important}
html[data-presentation="neutral"] .login-identity{background:linear-gradient(135deg,var(--color-surface-alt),var(--color-surface))!important}

/* Camada semantica final: todas as telas consomem as mesmas variaveis do tema ativo. */
html{
  --color-page-background:var(--color-background);
  --color-surface-secondary:var(--color-surface-alt);
  --color-surface-elevated:var(--color-surface);
  --color-sidebar-background:var(--color-surface);
  --color-header-background:var(--color-surface);
  --color-primary-active:var(--color-primary-hover);
  --color-secondary:var(--theme-secondary);
  --color-text-primary:var(--color-text);
  --color-text-secondary:var(--color-text-muted);
  --color-text-muted:color-mix(in srgb,var(--color-text-muted) 78%,var(--color-surface));
  --color-text-on-primary:var(--color-on-primary);
  --color-border-strong:color-mix(in srgb,var(--color-border) 70%,var(--color-text));
  --color-input-background:var(--color-surface);
  --color-input-border:var(--color-border);
  --color-card-background:var(--color-surface);
  --color-card-border:var(--color-border);
  --color-menu-active-background:var(--color-primary-soft);
  --color-menu-active-text:var(--color-primary);
  --color-focus-ring:color-mix(in srgb,var(--color-primary) 30%,transparent);
  --color-shadow:rgba(35,26,31,.10);
  --radius-card:18px;
  --radius-control:10px;
  --shadow-sm:0 8px 24px color-mix(in srgb,var(--color-shadow) 65%,transparent);
  --shadow-md:0 18px 45px var(--color-shadow);
  --shadow-lg:0 28px 68px color-mix(in srgb,var(--color-shadow) 125%,transparent);
  --bg-page:var(--color-page-background);
  --bg-surface:var(--color-card-background);
  --bg-sidebar:var(--color-sidebar-background);
  --bg-soft:var(--color-surface-secondary);
  --text-primary:var(--color-text-primary);
  --text-secondary:var(--color-text-secondary);
  --border-color:var(--color-border);
  --primary:var(--color-primary);
  --primary-hover:var(--color-primary-hover);
  --accent-soft:var(--color-primary-soft);
  --note-bg:var(--color-primary-soft);
  --note-text:var(--color-primary);
  --shadow:var(--shadow-md);
  --input-bg:var(--color-input-background);
  --table-hover:var(--color-surface-secondary);
  --marry-background:var(--color-page-background);
  --marry-surface:var(--color-card-background);
  --marry-surface-soft:var(--color-surface-secondary);
  --marry-primary:var(--color-primary);
  --marry-primary-hover:var(--color-primary-hover);
  --marry-primary-soft:var(--color-primary-soft);
  --marry-secondary:var(--color-secondary);
  --marry-text:var(--color-text-primary);
  --marry-text-secondary:var(--color-text-secondary);
  --marry-border:var(--color-border);
  --marry-shadow:var(--shadow-md);
}

html[data-theme="graphite"]{
  --color-page-background:#F4F5F6;
  --color-surface:#FFFFFF;
  --color-surface-secondary:#EEF0F2;
  --color-surface-alt:#EEF0F2;
  --color-surface-elevated:#FFFFFF;
  --color-sidebar-background:#FAFAFB;
  --color-header-background:#FFFFFF;
  --color-primary:#4F4F4F;
  --color-primary-hover:#3F3F3F;
  --color-primary-active:#333333;
  --color-primary-soft:#E7EAED;
  --color-secondary:#6C7B8B;
  --color-text-primary:#242629;
  --color-text:#242629;
  --color-text-secondary:#626B73;
  --color-text-muted:#7B858E;
  --color-text-on-primary:#FFFFFF;
  --color-border:#D9DEE3;
  --color-border-strong:#B8C0C8;
  --color-input-background:#FFFFFF;
  --color-input-border:#CCD3DA;
  --color-card-background:#FFFFFF;
  --color-card-border:#D9DEE3;
  --color-menu-active-background:#E7EAED;
  --color-menu-active-text:#32363A;
  --color-focus-ring:rgba(79,79,79,.28);
  --color-shadow:rgba(36,38,41,.12);
  --hero-start:#4F4F4F;
  --hero-end:#6C7B8B;
  --chart-1:#4F4F4F;
  --chart-2:#6C7B8B;
}

html[data-color-mode="dark"]{
  --color-page-background:var(--color-background);
  --color-surface-secondary:var(--color-surface-alt);
  --color-surface-elevated:color-mix(in srgb,var(--color-surface) 86%,#fff 14%);
  --color-sidebar-background:var(--color-surface);
  --color-header-background:var(--color-surface);
  --color-text-primary:var(--color-text);
  --color-text-secondary:var(--color-text-muted);
  --color-text-muted:color-mix(in srgb,var(--color-text-muted) 78%,var(--color-background));
  --color-border-strong:color-mix(in srgb,var(--color-border) 70%,#fff);
  --color-input-background:var(--input-bg);
  --color-card-background:var(--color-surface);
  --color-card-border:var(--color-border);
  --color-menu-active-background:var(--color-primary-soft);
  --color-menu-active-text:color-mix(in srgb,var(--color-primary) 84%,#fff);
  --color-shadow:rgba(0,0,0,.30);
}

html[data-theme="graphite"][data-color-mode="dark"]{
  --color-page-background:#151617;
  --color-background:#151617;
  --color-surface:#232527;
  --color-surface-secondary:#2D3033;
  --color-surface-alt:#2D3033;
  --color-surface-elevated:#292C2F;
  --color-sidebar-background:#1E2022;
  --color-header-background:#232527;
  --color-primary:#B8BEC5;
  --color-primary-hover:#D4D8DC;
  --color-primary-active:#ECEFF2;
  --color-primary-soft:#33373B;
  --color-secondary:#8E9AA7;
  --color-text:#F4F5F6;
  --color-text-primary:#F4F5F6;
  --color-text-secondary:#C5CBD1;
  --color-text-muted:#9EA7B0;
  --color-border:#484D52;
  --color-border-strong:#676E75;
  --color-input-background:#292C2F;
  --color-input-border:#555C63;
  --color-card-background:#232527;
  --color-card-border:#484D52;
  --color-menu-active-background:#33373B;
  --color-menu-active-text:#F4F5F6;
  --color-shadow:rgba(0,0,0,.36);
  --hero-start:#33373B;
  --hero-end:#5F6B78;
}

html,body{background:var(--color-page-background)!important;color:var(--color-text-primary)!important}
main,.content{background:var(--color-page-background)!important;color:var(--color-text-primary)!important}
.sidebar,.topbar,.mobile-nav{background:var(--color-sidebar-background)!important;border-color:var(--color-border)!important;color:var(--color-text-primary)!important}
.topbar{background:var(--color-header-background)!important}
.brand,.topbar h1,.section-title h2,.card-soft h2,.goal-card h2,.metric strong,.empty b{color:var(--color-text-primary)!important}
.brand small,.sidebar nav a,.topbar p,.section-title p,.metric span,.grow small,.goal-mini small,.goal-foot,.forecast,.empty,.empty span,.text-muted,small,.modal-subtitle,.eyebrow{color:var(--color-text-secondary)!important}
.sidebar nav a:hover,.sidebar nav a.active,.mobile-nav a:hover,.mobile-nav a.active{background:var(--color-menu-active-background)!important;color:var(--color-menu-active-text)!important}
.sidebar nav a:hover i,.sidebar nav a.active i{color:var(--color-menu-active-text)!important}
.couple-note{background:var(--color-surface-secondary)!important;color:var(--color-secondary)!important;border:1px solid var(--color-border)!important}
.couple-note small{color:var(--color-text-secondary)!important}
.card-soft,.metric,.goal-card,.modal-content,.visual-card,.theme-card{background:var(--color-card-background)!important;color:var(--color-text-primary)!important;border-color:var(--color-card-border)!important;box-shadow:var(--shadow-md)!important}
.period,.filters,.date-box,.cal-day,.forecast,.confirmation-summary,.preview-table,.report-lines span,.history{background:var(--color-surface-secondary)!important;color:var(--color-text-primary)!important;border-color:var(--color-border)!important}
.bill-row,.modal-header,.modal-footer,.table,.history,.report-lines span{border-color:var(--color-border)!important}
.table{--bs-table-bg:var(--color-card-background);--bs-table-color:var(--color-text-primary);--bs-table-border-color:var(--color-border);--bs-table-hover-bg:var(--color-surface-secondary);--bs-table-hover-color:var(--color-text-primary)}
.table th{color:var(--color-text-secondary)!important}
.form-control,.form-select,.period select,.input-group-text{background-color:var(--color-input-background)!important;color:var(--color-text-primary)!important;border-color:var(--color-input-border)!important}
.form-control::placeholder{color:var(--color-text-muted)!important}
.form-control:focus,.form-select:focus{border-color:var(--color-primary)!important;box-shadow:0 0 0 .22rem var(--color-focus-ring)!important}
.cal-day.is-today{
  position:relative;
  border-color:var(--color-primary)!important;
  background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface-secondary))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 35%,transparent);
}
.cal-day.is-today>b{
  display:inline-grid;
  place-items:center;
  min-width:1.75rem;
  height:1.75rem;
  border-radius:999px;
  background:var(--color-primary);
  color:var(--color-text-on-primary);
}
.report-card .section-title{
  margin-bottom:var(--space-4);
}
.report-summary-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0 var(--space-2);
}
.report-summary-table th,
.report-summary-table td{
  padding:.9rem 1rem;
  background:var(--color-surface-secondary);
  border-block:1px solid var(--color-border);
  vertical-align:middle;
}
.report-summary-table th{
  width:62%;
  border-left:1px solid var(--color-border);
  border-radius:var(--radius-md) 0 0 var(--radius-md);
  color:var(--color-text-primary);
  font-weight:800;
  text-align:left;
}
.report-summary-table td{
  border-right:1px solid var(--color-border);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  text-align:right;
}
.report-summary-table tr:hover th,
.report-summary-table tr:hover td{
  background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface-secondary));
}
.report-summary-table small{
  display:inline-flex;
  margin-left:.35rem;
  padding:.12rem .45rem;
  border-radius:999px;
  background:var(--color-primary-soft);
  color:var(--color-primary)!important;
  font-size:.72rem;
  font-weight:800;
}
.report-summary-table .is-total th,
.report-summary-table .is-total td{
  font-size:1.03rem;
  font-weight:900;
}
.report-value{
  color:var(--color-text-primary)!important;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.report-value--positive{color:var(--color-success)!important}
.report-value--negative{color:var(--color-danger)!important}
.report-value--warning{color:var(--color-warning)!important}
.report-value--neutral{color:var(--color-text-primary)!important}
.calendar-legend span{
  display:inline-flex;
  align-items:center;
}
.calendar-period-heading{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4);margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-card-background);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.calendar-period-heading>div{display:grid;gap:.1rem}.calendar-period-heading span,.calendar-period-heading small{color:var(--color-text-secondary);font-size:.75rem}.calendar-period-heading strong{color:var(--color-text-primary)}.calendar-period-heading small{margin-left:auto;max-width:34rem}
.cal-weekday{padding:.35rem;text-align:center;color:var(--color-text-secondary);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.cal-day__weekday{display:none;color:var(--color-text-secondary);font-size:.65rem;font-weight:750}
.cal-day.is-outside-period{background:var(--color-surface-secondary);border-style:dashed;opacity:.42;pointer-events:none}
.cal-day.is-previous-period{background:color-mix(in srgb,var(--color-surface-secondary) 72%,var(--color-card-background));border-style:dashed;color:var(--color-text-secondary)}
.cal-day.is-previous-period>b{display:flex;align-items:baseline;gap:.25rem}.cal-day.is-previous-period>b small{font-size:.6rem;color:var(--color-text-secondary)}
.cal-day.is-previous-period>em{display:block;margin-bottom:.25rem;font-size:.55rem;font-style:normal;color:var(--color-text-secondary)}
.cal-day.is-current-month-start{border-inline-start:3px solid var(--color-primary)}
.cal-event.is-context-only{opacity:.68;border-style:dashed}
.cal-event--receita,
.calendar-event-row--receita .date-box{border-color:var(--calendar-receita,#2563eb)!important}
.cal-event--vencimento,
.calendar-event-row--vencimento .date-box{border-color:var(--calendar-vencimento,#eab308)!important}
.cal-event--pagamento,
.calendar-event-row--pagamento .date-box{border-color:var(--calendar-pagamento,#16a34a)!important}
.cal-event--atraso,
.calendar-event-row--atraso .date-box{border-color:var(--calendar-atraso,#dc2626)!important}
.cal-event--aporte,
.calendar-event-row--aporte .date-box{border-color:var(--calendar-aporte,#7c3aed)!important}
.calendar-event-row{
  border-radius:var(--radius-md);
  padding-inline:var(--space-3);
}
.calendar-event-row .date-box{
  border:1px solid var(--color-border);
}
.calendar-events .section-title{
  align-items:center;
}
.event-count{
  color:var(--color-text-secondary);
  font-size:.8rem;
  font-weight:800;
}
.calendar-events-more{
  margin-top:var(--space-3);
}
.calendar-events-more summary{
  cursor:pointer;
  color:var(--color-primary);
  font-weight:850;
  padding:var(--space-3) 0;
}
.financial-period-summary{margin:var(--space-5) 0}
.summary-view-badge{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:.35rem .7rem;font-size:.75rem;font-weight:850}
.financial-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.financial-summary-group{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);min-width:0}
.financial-summary-group h3,.benefit-summary h3{font-size:.85rem;margin:0 0 var(--space-3);color:var(--color-text-secondary)}
.financial-summary-group dl{margin:0}.financial-summary-group dl div{display:flex;justify-content:space-between;gap:var(--space-3);padding:.35rem 0}
.financial-summary-group dt{color:var(--color-text-secondary);font-weight:650}.financial-summary-group dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.financial-summary-group .summary-total{border-top:1px solid var(--color-border);margin-top:.35rem;padding-top:.7rem}.financial-summary-group .summary-total dt,.financial-summary-group .summary-total dd{font-weight:900}
.coverage-block{margin-top:var(--space-5)}.coverage-heading{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:.55rem}.coverage-track{height:.7rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:999px;overflow:hidden}.coverage-track span{display:block;height:100%;background:var(--color-primary);border-radius:inherit}.financial-period-summary--deficit .coverage-track span,.financial-period-summary--no_income .coverage-track span{background:var(--color-danger)}
.coverage-message{display:flex;align-items:center;gap:.45rem;margin:.75rem 0 0;color:var(--color-text-primary)}
.benefit-summary{margin-top:var(--space-5);padding:var(--space-4);border:1px solid color-mix(in srgb,var(--calendar-aporte) 38%,var(--color-border));border-radius:var(--radius-md);background:color-mix(in srgb,var(--calendar-aporte) 8%,var(--color-card-background))}.benefit-summary>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.benefit-summary span,.benefit-summary small{color:var(--color-text-secondary)}.benefit-summary span b{display:block;color:var(--color-text-primary);margin-top:.2rem}
.financial-summary-details{margin-top:var(--space-4)}.financial-summary-details summary{cursor:pointer;color:var(--color-primary);font-weight:800}.financial-summary-details>div{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.7rem;color:var(--color-text-secondary);font-size:.8rem}
@media(max-width:900px){.financial-summary-grid{grid-template-columns:1fr 1fr}.financial-summary-group:last-child{grid-column:1/-1}.benefit-summary>div{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.financial-period-summary{padding:var(--space-4)}.financial-period-summary .section-title{gap:.5rem;flex-direction:column}.financial-summary-grid{grid-template-columns:1fr}.financial-summary-group:last-child{grid-column:auto}.benefit-summary>div{grid-template-columns:1fr}.coverage-heading{align-items:flex-start;flex-direction:column}.coverage-message{align-items:flex-start}}
@media(max-width:560px){.calendar-period-heading{align-items:flex-start;flex-direction:column}.calendar-period-heading small{margin-left:0}.calendar-grid{grid-template-columns:1fr}.cal-weekday,.cal-day.is-outside-period{display:none}.cal-day{min-height:auto}.cal-day__weekday{display:inline}.cal-day.is-previous-period{border-inline-start:3px dashed var(--color-border)}}
.login-brand-name{
  color:var(--color-text-primary)!important;
  background:color-mix(in srgb,var(--color-card-background) 78%,transparent);
  border-radius:var(--radius-sm);
  padding:.15rem .35rem;
}
.login-brand small,
.login-copy p:last-child,
.auth-helper,
.auth-create-text{
  color:var(--color-text-secondary)!important;
}
.history small{
  display:block;
  margin-top:.2rem;
  color:var(--color-text-secondary)!important;
}
.history{
  align-items:center;
  gap:var(--space-4);
}
.history__details{
  display:grid;
  min-width:0;
  gap:.15rem;
}
.history__details strong{
  overflow:hidden;
  color:var(--color-text-primary)!important;
  font-weight:800;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.history__details small{
  margin:0;
  line-height:1.3;
}
.history>b{
  flex:0 0 auto;
}
.btn-primary{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:var(--color-text-on-primary)!important}
.btn-primary:hover,.btn-primary:focus{background:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important;color:var(--color-text-on-primary)!important}
.btn-light,.menu-toggle,.password-toggle:hover,.password-toggle:focus{background:var(--color-surface-secondary)!important;border-color:var(--color-border)!important;color:var(--color-text-primary)!important}
.btn-outline-primary{background:transparent!important;border-color:var(--color-primary)!important;color:var(--color-primary)!important}
.btn-outline-primary:hover,.btn-outline-primary:focus{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:var(--color-text-on-primary)!important}
.btn-outline-danger{background:transparent!important}
.avatar,.brand-icon{background:var(--color-primary-soft)!important;color:var(--color-primary)!important}
.hero-balance{background:linear-gradient(125deg,var(--hero-start),var(--hero-end))!important;color:var(--color-text-on-primary)!important;box-shadow:var(--shadow-lg)!important}
.progress{background:var(--color-surface-secondary)!important}
.cal-event{background:var(--color-card-background)!important;color:var(--color-text-primary)!important}
.section-title a,.health-score strong,.auth-links a,.auth-meta a{color:var(--color-primary)!important}
.login-identity{background:radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--color-secondary) 18%,transparent),transparent 40%),radial-gradient(circle at 85% 75%,color-mix(in srgb,var(--color-primary) 16%,transparent),transparent 42%),linear-gradient(135deg,var(--color-surface-secondary),var(--color-card-background))!important}
.login-copy h2,.login-copy p,.login-benefits span{color:var(--color-text-primary)!important}
.login-benefits span{background:var(--color-card-background)!important;border-color:var(--color-border)!important}
.login-copy mark{color:var(--color-primary)!important}
.login-card,.auth-card{background:var(--color-card-background)!important;border-color:var(--color-card-border)!important}
.theme-card.selected{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px var(--color-focus-ring),var(--shadow-md)!important}
.theme-card .bi-check-circle-fill{color:var(--color-primary)!important}
.empty i{color:var(--color-primary)!important}
.sidebar-backdrop{background:color-mix(in srgb,var(--color-page-background) 34%,#000 66%)!important}
html[data-color-mode="dark"] .btn-close{filter:invert(1) grayscale(1)}
html[data-color-mode="dark"] option{background:var(--color-input-background);color:var(--color-text-primary)}

/* Contas: filtros quebram linha antes de comprimir texto ou setas. */
.accounts-toolbar{
  display:flex!important;
  align-items:center!important;
  flex:1 1 auto;
  flex-wrap:wrap!important;
  min-width:0;
  width:auto;
}
.accounts-toolbar>*{flex-shrink:0}
.accounts-toolbar .form-control[name="busca"]{
  flex:1 1 14rem;
  width:auto!important;
  min-width:11.25rem;
}
.accounts-toolbar .status-filter{
  flex:0 0 9.5rem;
  width:9.5rem!important;
  min-width:9.5rem!important;
  padding-right:2.625rem!important;
  box-sizing:border-box;
  white-space:nowrap;
}
.accounts-toolbar .btn{flex:0 0 auto}

/* Contas: a coluna dinamica acompanha integralmente a coluna Bootstrap. */
.account-last-due-field{
  flex:0 0 auto!important;
  width:33.33333333%!important;
  min-width:0!important;
  max-width:none!important;
  justify-self:stretch;
  align-self:stretch;
}
.form-grid.row>.account-last-due-field{width:auto!important}
.account-last-due-field__content,
.account-last-due-field .date-field,
.account-last-due-field input,
.account-last-due-field .date-field__alt{
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box;
}
.account-last-due-field__help{
  display:block;
  width:100%;
  max-width:none;
  margin-top:.375rem;
  line-height:1.4;
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
}

@media(max-width:850px){
  .accounts-page-actions{align-items:stretch;flex-wrap:wrap}
  .accounts-toolbar{display:flex!important;width:100%}
}
@media(max-width:767.98px){
  .account-last-due-field{width:100%!important}
}

/* Filtros de periodo e campos compactos */
.period-filter,
.period,
.filters{
  display:inline-flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:var(--space-3)!important;
  width:auto;
  max-width:100%;
  padding:var(--space-3)!important;
  background:var(--color-card-background)!important;
  color:var(--color-text-primary)!important;
  border:1px solid var(--color-border)!important;
  border-radius:var(--radius-lg)!important;
  box-shadow:var(--shadow-sm)!important;
}
.period-filter__group{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}
.period-filter__label,
.filter-label,
.field-label--accent,
.period label{
  margin:0!important;
  color:var(--color-primary)!important;
  font-weight:800!important;
}
.form-control--compact,
.period .form-control,
.period .form-select,
.period select,
.filters .form-control,
.filters .form-select{
  width:auto!important;
  min-width:6rem;
  min-height:2.75rem!important;
}
.filters .form-control[name="busca"]{min-width:14rem}
.period-filter .btn,
.period .btn,
.filters .btn{
  min-height:2.75rem;
  padding-inline:var(--space-4);
}
.form-control:hover,
.form-select:hover,
.period select:hover{
  border-color:var(--color-border-strong)!important;
}
.form-select option{
  background:var(--color-card-background);
  color:var(--color-text-primary);
}
.topbar-spacer,
.context-select{
  margin-left:auto;
}
.context-select{
  position:relative;
  margin-right:10px;
  min-width:clamp(9rem,18vw,13rem);
}
.context-select__control{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  min-height:2.75rem!important;
  width:100%;
  border-radius:var(--radius-md)!important;
  padding:.625rem 2.35rem .625rem .875rem!important;
  background-color:var(--color-input-background)!important;
  color:var(--color-text-primary)!important;
  border:1px solid var(--color-input-border)!important;
  font-size:.925rem;
  font-weight:750;
  line-height:1.2;
  box-shadow:var(--shadow-sm);
}
.context-select__control i{
  color:var(--color-text-secondary);
  font-size:.8rem;
  transition:transform .16s ease;
}
.context-select.is-open .context-select__control i{
  transform:rotate(180deg);
}
.context-select__control:hover{
  border-color:var(--color-border-strong)!important;
}
.context-select__control:focus,
.context-select__control:focus-visible{
  border-color:var(--color-primary)!important;
  box-shadow:0 0 0 .22rem var(--color-focus-ring)!important;
  outline:0;
}
.context-select__menu{
  position:absolute;
  top:calc(100% + .35rem);
  right:10px;
  z-index:1035;
  width:max(100%,13rem);
  padding:.35rem;
  background:var(--color-card-background);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
}
.context-select__option{
  display:flex;
  align-items:center;
  width:100%;
  min-height:2.35rem;
  padding:.55rem .75rem;
  border:0;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--color-text-primary);
  font-weight:750;
  text-align:left;
}
.context-select__option:hover,
.context-select__option:focus-visible{
  background:var(--color-surface-secondary);
  color:var(--color-text-primary);
  outline:0;
}
.context-select__option[aria-selected="true"]{
  background:var(--color-primary-soft);
  color:var(--color-primary);
}
.is-public main,
.public-main{
  margin-left:0;
}
.topbar--public{
  justify-content:space-between;
}
.topbar-public-brand{
  display:flex;
  align-items:center;
  gap:var(--space-3);
  color:var(--color-text-primary);
  font-weight:850;
  text-decoration:none;
}
.topbar-public-brand span{
  display:grid;
  line-height:1.1;
}
.topbar-public-brand small{
  margin-top:.25rem;
  color:var(--color-text-secondary)!important;
  font-size:.75rem;
  font-weight:700;
}
.topbar-public-action{
  margin-left:auto;
}
.is-public .content{
  max-width:none;
  padding:clamp(1.25rem,3vw,2.25rem);
}
.is-public .login-hero{
  width:min(100%,1240px);
  margin-inline:auto;
}
@media(max-width:640px){
  .history{
    align-items:flex-start;
  }
  .history__details strong{
    white-space:normal;
  }
  .topbar--public{
    height:auto;
    min-height:76px;
    padding:var(--space-4);
  }
  .topbar-public-brand small{
    display:none;
  }
  .topbar-public-action{
    min-height:2.5rem;
    padding-inline:var(--space-3);
  }
  .context-select{
    min-width:7.5rem;
    margin-right:var(--space-2);
  }
  .context-select__menu{
    right:var(--space-2);
    width:max(100%,10rem);
  }
  .period-filter,
  .period,
  .filters{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .period-filter__label,
  .filter-label,
  .field-label--accent,
  .period label,
  .period-filter .btn,
  .period .btn,
  .filters .btn,
  .filters input[name="busca"]{
    grid-column:1/-1;
    width:100%!important;
  }
  .period .form-control,
  .period .form-select,
  .period select,
  .filters .form-control,
  .filters .form-select{
    width:100%!important;
    min-width:0;
  }
}

/* Escala visual compartilhada e componentes reutilizaveis. */
html{
  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-10:2.5rem;
  --space-12:3rem;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:18px;
  --radius-xl:24px;
  --radius-card:var(--radius-lg);
  --radius-control:var(--radius-md);
  --marry-radius:var(--radius-lg);
  --marry-radius-sm:var(--radius-md);
}

.ui-card,
.card-soft,
.metric,
.goal-card,
.modal-content,
.theme-card,
.auth-card,
.login-card{
  background:var(--color-card-background)!important;
  color:var(--color-text-primary)!important;
  border:1px solid var(--color-card-border)!important;
  border-radius:var(--radius-lg)!important;
  box-shadow:var(--shadow-sm)!important;
  padding:var(--space-6)!important;
}

.ui-card--compact{padding:var(--space-4)!important}
.ui-card--muted{background:var(--color-surface-secondary)!important}
.ui-card--interactive:hover,
.theme-card:hover{
  border-color:var(--color-border-strong)!important;
  box-shadow:var(--shadow-md)!important;
}

.settings-page{gap:var(--space-6)!important}
.appearance-controls{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)!important;
  gap:var(--space-4)!important;
  margin:var(--space-5) 0 var(--space-6)!important;
}
.settings-group{
  min-width:0;
  padding:var(--space-5);
  background:var(--color-surface-secondary);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  color:var(--color-text-primary);
}
.settings-group__title{
  margin:0 0 var(--space-4);
  color:var(--color-text-primary);
  font-size:.95rem;
  font-weight:800;
  line-height:1.25;
}
.option-group{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
}
.option-pill{
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  min-height:2.75rem;
  padding:var(--space-3) var(--space-4);
  background:var(--color-card-background);
  color:var(--color-text-primary);
  border:1px solid var(--color-border);
  border-radius:999px;
  cursor:pointer;
  font-size:.86rem;
  font-weight:750;
  line-height:1.15;
  transition:background-color var(--marry-transition),border-color var(--marry-transition),color var(--marry-transition),box-shadow var(--marry-transition);
}
.option-pill:hover,
.option-pill:focus-within{
  background:var(--color-primary-soft);
  border-color:var(--color-primary);
  color:var(--color-menu-active-text);
}
.option-pill:has(input:checked){
  background:var(--color-primary-soft);
  border-color:var(--color-primary);
  color:var(--color-menu-active-text);
  box-shadow:0 0 0 3px var(--color-focus-ring);
}
.option-pill input{
  accent-color:var(--color-primary);
  flex:0 0 auto;
}
.option-pill:has(input:disabled){
  cursor:not-allowed;
  opacity:.58;
}

.appearance-controls label:not(.option-pill){
  background:var(--color-card-background)!important;
  color:var(--color-text-primary)!important;
  border-color:var(--color-border)!important;
}

.form-label,
.modal label,
.permission-row h3{
  color:var(--color-text-primary)!important;
  font-weight:750;
}
.form-control,
.form-select,
textarea.form-control{
  min-height:2.75rem;
  border-radius:var(--radius-md)!important;
  padding-inline:var(--space-4);
}
textarea.form-control{
  min-height:6.25rem;
  padding-block:var(--space-3);
}
.btn{
  border-radius:var(--radius-md)!important;
}
.modal-header,
.modal-body,
.modal-footer{
  background:var(--color-card-background)!important;
  color:var(--color-text-primary)!important;
}
.modal-header{padding:var(--space-6) var(--space-6) var(--space-4)!important}
.modal-body{padding:var(--space-6)!important}
.modal-footer{padding:var(--space-4) var(--space-6) var(--space-6)!important;gap:var(--space-3)!important}
.modal-content>form{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
.modal-content>form>.modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  scrollbar-gutter:stable;
}
.modal-content>form>.modal-footer{
  flex:0 0 auto;
}
.modal-title,
.confirmation-summary strong{
  color:var(--color-text-primary)!important;
}
.modal-subtitle,
.confirmation-summary span{
  color:var(--color-text-secondary)!important;
}
.confirmation-summary,
.preview-table{
  background:var(--color-surface-secondary)!important;
  border-color:var(--color-border)!important;
  border-radius:var(--radius-md)!important;
}
.preview-table>*{border-color:var(--color-border)!important}
.preview-table>b{background:var(--color-surface-elevated)!important;color:var(--color-text-primary)!important}

.theme-grid{gap:var(--space-4)!important}
.theme-card{
  gap:var(--space-4)!important;
  min-height:13.5rem;
  padding:var(--space-4)!important;
}
.theme-card b{color:var(--color-text-primary)!important}
.theme-card small{color:var(--color-text-secondary)!important}
.preview-window{
  background:linear-gradient(135deg,var(--preview-soft),var(--color-card-background))!important;
  border-color:color-mix(in srgb,var(--preview-primary) 24%,var(--color-border))!important;
  border-radius:var(--radius-md)!important;
  padding:var(--space-3)!important;
}
.preview-button{
  color:var(--color-text-on-primary)!important;
  border-radius:var(--radius-sm)!important;
}

.badge-parcialmente-recebido,
.badge-parcial{background:color-mix(in srgb,var(--color-warning) 18%,var(--color-card-background))!important;color:var(--color-warning)!important}
.badge-cancelado,
.status-cancelado,
.badge-concluido{background:var(--color-surface-secondary)!important;color:var(--color-text-secondary)!important;border:1px solid var(--color-border)!important}
.badge-pago_antecipado{background:color-mix(in srgb,var(--color-info) 16%,var(--color-card-background))!important;color:var(--color-info)!important}
.badge-quitado{background:color-mix(in srgb,var(--color-success) 16%,var(--color-card-background))!important;color:var(--color-success)!important}
.text-purple{color:var(--color-secondary)!important}
.badge-benefit{background:color-mix(in srgb,var(--color-secondary) 16%,var(--color-card-background))!important;color:var(--color-secondary)!important;border:1px solid color-mix(in srgb,var(--color-secondary) 28%,var(--color-border))!important}
.benefit-toggle{
  display:flex;
  align-items:flex-start;
  gap:var(--space-3);
  padding:var(--space-4);
  border:1px solid color-mix(in srgb,var(--color-secondary) 28%,var(--color-border));
  border-radius:var(--radius-md);
  background:color-mix(in srgb,var(--color-secondary) 10%,var(--color-card-background));
  color:var(--color-text-primary);
}
.benefit-toggle small{
  display:block;
  margin-top:.2rem;
  color:var(--color-text-secondary);
  line-height:1.35;
}
.modal-dialog-scrollable .modal-body{
  max-height:calc(100vh - 12rem);
  overflow-y:auto;
}
.modal-dialog-scrollable .modal-content>form>.modal-body{
  max-height:none;
}

@media(max-width:850px){
  .ui-card,
  .card-soft,
  .metric,
  .goal-card,
  .modal-content,
  .theme-card,
  .auth-card,
  .login-card{padding:var(--space-4)!important}
  .appearance-controls{grid-template-columns:1fr!important}
  .option-group{flex-direction:column}
  .option-pill{width:100%;border-radius:var(--radius-md)}
  .appearance-actions .btn{width:100%}
}

/* Barras de filtros: no mobile, cada linha acompanha somente a altura do controle. */
@media(max-width:767.98px){
  .accounts-page .accounts-toolbar,
  .revenue-page .revenue-toolbar__period{
    align-content:start;
    align-items:stretch!important;
    grid-auto-rows:auto;
    min-height:0;
    height:auto;
    gap:var(--space-3)!important;
  }
  .accounts-page .accounts-toolbar>*,
  .revenue-page .revenue-toolbar__period>*{
    align-self:stretch;
    min-height:0;
    margin-block:0;
  }
  .accounts-page .accounts-toolbar .together-select,
  .revenue-page .revenue-toolbar__period .together-select{
    height:auto!important;
    min-height:0;
  }
}

/* Calendário: cabeçalho do dia e compromissos nunca disputam a mesma coluna. */
.cal-day__toggle{display:none}
@media(max-width:767.98px){
  .calendar-card,
  .calendar-grid,
  .cal-day,
  .cal-day__events{
    min-width:0;
    max-width:100%;
  }
  .calendar-card{overflow:hidden}
  .calendar-grid{grid-template-columns:minmax(0,1fr);width:100%}
  .cal-weekday{display:none}
  .cal-day{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:var(--space-2);
    width:100%;
    min-height:auto;
    height:auto;
  }
  .cal-day>b{
    display:flex;
    align-items:baseline;
    flex:0 0 auto;
    gap:.25rem;
    width:100%;
    min-width:0;
    margin:0;
  }
  .cal-day__weekday{display:inline}
  .cal-day>em{margin:0}
  .cal-day__events{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    align-items:stretch;
    gap:var(--space-2);
    width:100%;
    overflow:hidden;
  }
  .cal-day__events .cal-event{
    display:block;
    width:100%;
    min-width:0;
    min-height:2.5rem;
    margin:0;
    padding:.65rem .75rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .cal-event--extra{display:none!important}
  .cal-day__events.is-expanded .cal-event--extra{display:block!important}
  .cal-day__toggle{
    display:block;
    align-self:flex-start;
    padding:.25rem 0;
    border:0;
    background:transparent;
    color:var(--color-primary);
    font:inherit;
    font-weight:800;
  }
  .cal-day.is-outside-period{display:none}
}

/* Contrato mobile único para filtros financeiros e navegação fixa. */
@media(max-width:767.98px){
  .content{
    padding-bottom:calc(5rem + env(safe-area-inset-bottom) + var(--space-6,1.5rem))!important;
  }
  .mobile-nav{
    box-sizing:border-box;
    padding-bottom:calc(.5rem + env(safe-area-inset-bottom));
    z-index:1020;
  }
  .accounts-page .financial-filters,
  .revenue-page .financial-filters{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(6.5rem,.38fr)!important;
    grid-auto-rows:auto;
    align-content:start;
    align-items:end!important;
    gap:var(--space-3)!important;
    width:100%;
    min-width:0;
    max-width:100%;
    height:auto;
    box-sizing:border-box;
  }
  .financial-filters__header{
    display:flex;
    grid-column:1/-1;
    align-items:center;
    gap:var(--space-2);
    min-width:0;
  }
  .financial-filters__header label{
    margin:0;
    color:var(--color-text-secondary);
    font-size:.8rem;
    font-weight:750;
  }
  .financial-filters__header .context-help{margin:0}
  .accounts-page .financial-filters .financial-filters__month,
  .accounts-page .financial-filters .financial-filters__year,
  .revenue-page .financial-filters .financial-filters__month,
  .revenue-page .financial-filters .financial-filters__year{
    grid-column:auto;
  }
  .accounts-page .financial-filters .together-select,
  .revenue-page .financial-filters .together-select,
  .accounts-page .financial-filters input,
  .accounts-page .financial-filters select,
  .accounts-page .financial-filters button:not(.context-help__button),
  .revenue-page .financial-filters input,
  .revenue-page .financial-filters select,
  .revenue-page .financial-filters button:not(.context-help__button){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box;
  }
  .accounts-page .financial-filters .together-select,
  .revenue-page .financial-filters .together-select{
    height:auto!important;
    align-self:stretch!important;
  }
  .financial-filters__full,
  .revenue-page .revenue-toolbar__budget{
    grid-column:1/-1!important;
  }
  .accounts-page .financial-filters .status-filter,
  .accounts-page .financial-filters .accounts-toolbar__submit{
    grid-column:auto;
  }
}
@media(max-width:359.98px){
  .accounts-page .financial-filters,
  .revenue-page .financial-filters{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .accounts-page .financial-filters>*,
  .revenue-page .financial-filters>*{
    grid-column:1!important;
  }
}
