@font-face {
  font-family: Manrope;
  src: url('/fonts/manrope-variable.ttf') format('truetype');
  font-weight: 200 800;
  font-display: swap;
}
/* Bolso Digital — shared presentation system. Screen-only: print remains original. */
@media screen {
:root {
  --ui-bg: #f5f6f8;
  --ui-surface: #fff;
  --ui-secondary: #f7f8fa;
  --ui-elevated: #fff;
  --ui-text: #243044;
  --ui-muted: #626f82;
  --ui-border: #e3e7ed;
  --ui-accent: #5268a3;
  --ui-accent-soft: #edf1f8;
  --ui-green: #287660;
  --ui-red: #b45160;
  --ui-amber: #8e6b30;
  --ui-shadow: 0 5px 24px -12px rgba(31,37,75,.15);
  --ui-float: 0 16px 48px rgba(20,35,60,.14);
  --ui-radius: 18px;
  --sidebar-width: 236px;
  --sidebar-width-collapsed: 76px;
  --bs-body-color: var(--ui-text);
  --bs-body-bg: var(--ui-bg);
  --bs-border-color: var(--ui-border);
  --bs-secondary-color: var(--ui-muted);
  --bs-tertiary-bg: var(--ui-secondary);
  --bs-emphasis-color: var(--ui-text);
  --bs-secondary-bg: var(--ui-secondary);
  --bs-primary-rgb: 82,104,163;
  --bs-link-color: var(--ui-accent);
  --bs-link-hover-color: var(--ui-accent);
  --bd-brand: var(--ui-accent);
  --bd-appbar-height: 64px;
  color-scheme: light;
  --ui-ink: #202b3c;
  --ui-nav: #aeb9ca;
  --ui-nav-active: #fff;
  --ui-ease: cubic-bezier(.2,.75,.25,1);
}
:root[data-bs-theme="dark"] {
  --ui-bg: #151c27;
  --ui-surface: #1e2735;
  --ui-secondary: #253041;
  --ui-elevated: #2b3749;
  --ui-text: #e8edf5;
  --ui-muted: #a8b5c8;
  --ui-border: #344156;
  --ui-accent: #a2b5e1;
  --ui-accent-soft: #2d3b55;
  --ui-green: #83cbb2;
  --ui-red: #e39aa6;
  --ui-amber: #d9bb83;
  --ui-shadow: 0 12px 32px -22px rgba(0,0,0,.7);
  --ui-float: 0 18px 50px rgba(4,10,20,.4);
  --bs-body-color: var(--ui-text);
  --bs-body-bg: var(--ui-bg);
  --bs-secondary-color: var(--ui-muted);
  --bs-emphasis-color: var(--ui-text);
  --bs-border-color: var(--ui-border);
  --bs-tertiary-bg: var(--ui-secondary);
  --bs-secondary-bg: var(--ui-secondary);
  color-scheme: dark;
  --ui-ink: #182130;
  --ui-nav: #a6b3c7;
}
body { background:var(--ui-bg)!important; color:var(--ui-text)!important; font-family:Manrope,"Segoe UI",system-ui,sans-serif; font-size:14px; line-height:1.55; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6 { color:var(--ui-text); letter-spacing:-.025em; font-weight:650; line-height:1.3; }
h1 { font-size:clamp(1.5rem,2.1vw,2rem); } h2 { font-size:1.5rem; } h3 { font-size:1.25rem; }
.text-muted,.text-secondary,.form-text { color:var(--ui-muted)!important; }
.text-dark,.text-body { color:var(--ui-text)!important; }
.text-success { color:var(--ui-green)!important; } .text-danger { color:var(--ui-red)!important; }
.text-warning { color:var(--ui-amber)!important; } .text-primary { color:var(--ui-accent)!important; }
.bg-white,.bg-light { background-color:var(--ui-surface)!important; }
.border { border-color:var(--ui-border)!important; }
.navbar.fixed-top { min-height:64px; background:var(--ui-surface)!important; border-bottom:1px solid var(--ui-border); box-shadow:none; padding:8px 20px; }
.navbar .navbar-brand { font-size:1.12rem; font-style:normal; font-weight:750; letter-spacing:-.04em; }
.navbar .text-light,.navbar .username,.mobile-appbar-title,.mobile-appbar-action { color:var(--ui-text)!important; }
.navbar .btn-outline-light,.notificacoes-botao,.user-menu__button { background:var(--ui-secondary); color:var(--ui-muted); border:1px solid var(--ui-border); border-radius:10px; }
.navbar .btn-outline-light:hover,.notificacoes-botao:hover,.user-menu__button:hover { background:var(--ui-accent-soft); color:var(--ui-accent); border-color:var(--ui-border); box-shadow:none; }
.user-menu__avatar { background:var(--ui-accent-soft); color:var(--ui-accent); }
.user-menu__name { font-size:.84rem; font-weight:600; }
#sidebar { background:var(--ui-surface)!important; border-right:1px solid var(--ui-border); padding-top:82px; padding-bottom:24px; scrollbar-width:thin; }
#sidebar a { margin:3px 12px; padding:10px 13px; min-height:43px; color:var(--ui-muted); border-radius:9px; font-size:.83rem; font-weight:550; transition:background .16s,color .16s; }
#sidebar a:hover { background:var(--ui-secondary); color:var(--ui-text); }
#sidebar a.active,#sidebar a[aria-current="page"] { background:var(--ui-accent-soft); color:var(--ui-accent); box-shadow:inset 3px 0 var(--ui-accent); font-weight:650; }
#sidebar .link-icon { font-size:1.1rem; line-height:1; }
#sidebar a[href="/logout"] { margin-top:20px; border-top:1px solid var(--ui-border); border-radius:0 0 9px 9px; padding-top:17px; }
#mainContent.content { padding:92px 28px 32px; margin-top:0!important; max-width:none; }
#mainContent > .container-fluid { padding:0; }
#mainContent > .mt-4:first-child { margin-top:0!important; }
.card,.small-box,.login-container,.card-analise { background:var(--ui-surface); color:var(--ui-text); border:1px solid var(--ui-border); border-radius:var(--ui-radius)!important; box-shadow:var(--ui-shadow)!important; }
.card { --bs-card-bg:var(--ui-surface); --bs-card-color:var(--ui-text); --bs-card-border-color:var(--ui-border); }
.card-header,.card-header.text-white { background:var(--ui-surface)!important; color:var(--ui-text)!important; border-bottom:1px solid var(--ui-border); padding:16px 20px; font-size:.88rem; font-weight:650; border-radius:var(--ui-radius) var(--ui-radius) 0 0!important; }
.card-header > i { color:var(--ui-accent); margin-right:6px; }
.card-body { padding:20px; } .card-body.py-2 { padding-top:16px!important; padding-bottom:16px!important; }
.card-footer { background:var(--ui-secondary); border-color:var(--ui-border); padding:14px 20px; }
.small-box { position:relative; min-height:145px; padding:22px!important; transition:box-shadow .18s,border-color .18s; }
.small-box.bg-success,.small-box.bg-danger,.small-box.bg-primary,.small-box.bg-warning,.small-box.bg-info { background:var(--ui-surface)!important; color:var(--ui-text)!important; border-top:3px solid var(--ui-accent); }
.small-box.bg-success { border-top-color:var(--ui-green); } .small-box.bg-danger { border-top-color:var(--ui-red); } .small-box.bg-warning { border-top-color:var(--ui-amber); }
.small-box:hover { transform:none; box-shadow:0 7px 22px rgba(26,40,64,.09)!important; }
.small-box h5 { font-size:clamp(1.25rem,1.9vw,1.85rem); font-weight:700; font-variant-numeric:tabular-nums; margin-bottom:5px; }
.small-box p,.small-box small { color:var(--ui-muted); font-size:.8rem; }
.small-box .fs-3 { background:var(--ui-accent-soft); color:var(--ui-accent); border-radius:12px; padding:8px 12px; font-size:1.25rem!important; }
.small-box.bg-success .fs-3 { color:var(--ui-green); } .small-box.bg-danger .fs-3 { color:var(--ui-red); }
.btn { border-radius:8px; font-size:.84rem; font-weight:600; padding:.55rem .9rem; transition:background-color .15s,border-color .15s,box-shadow .15s; }
.btn-sm { padding:.38rem .7rem; font-size:.78rem; } .btn-lg { font-size:.94rem; padding:.75rem 1rem; }
.btn-primary { --bs-btn-bg:#5268a3; --bs-btn-border-color:#5268a3; --bs-btn-hover-bg:#455b95; --bs-btn-hover-border-color:#455b95; --bs-btn-active-bg:#3b5087; --bs-btn-active-border-color:#3b5087; }
.btn-outline-primary { --bs-btn-color:var(--ui-accent); --bs-btn-border-color:var(--ui-accent); --bs-btn-hover-bg:#5268a3; --bs-btn-hover-border-color:#5268a3; }
.btn:disabled,.btn.disabled { opacity:.48; }
:where(button,a,input,select,textarea):focus-visible { outline:3px solid var(--ui-accent); outline-offset:3px; }
.form-control,.form-select,.input-group-text { background-color:var(--ui-surface); color:var(--ui-text); border-color:var(--ui-border); border-radius:8px; font-size:.87rem; min-height:40px; }
.form-control::placeholder { color:var(--ui-muted); opacity:.8; }
.form-control:focus,.form-select:focus { background-color:var(--ui-surface); color:var(--ui-text); border-color:var(--ui-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-accent) 16%,transparent); }
.form-control:disabled,.form-select:disabled,.input-group-text { background-color:var(--ui-secondary); color:var(--ui-muted); }
.form-control.is-invalid,.form-select.is-invalid,.was-validated .form-control:invalid,.was-validated .form-select:invalid { border-color:var(--ui-red); }
.form-control.is-valid,.form-select.is-valid,.was-validated .form-control:valid,.was-validated .form-select:valid { border-color:var(--ui-green); }
/* Esconde o botão nativo de mostrar/ocultar senha do Edge/IE — os campos de
   senha já têm nosso próprio botão (ver public/js/passwordToggle.js), e sem
   isso os dois ícones aparecem lado a lado, duplicados. */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear { display:none; width:0; height:0; }
.form-label { font-size:.78rem; font-weight:600; color:var(--ui-muted); margin-bottom:7px; }
.form-check-input { background-color:var(--ui-surface); border-color:var(--ui-muted); } .form-check-input:checked { background-color:#5268a3; border-color:#5268a3; }
.table { --bs-table-bg:var(--ui-surface); --bs-table-color:var(--ui-text); --bs-table-border-color:var(--ui-border); --bs-table-striped-bg:var(--ui-secondary); --bs-table-striped-color:var(--ui-text); --bs-table-hover-bg:var(--ui-accent-soft); --bs-table-hover-color:var(--ui-text); font-size:.83rem; vertical-align:middle; font-variant-numeric:tabular-nums; }
.table > :not(caption) > * > * { padding:12px 14px; }
body .table thead th,body .thead-gradient th,body #tabelaResumo thead th,body #tabelaResumoReceitas thead th { background:var(--ui-secondary)!important; color:var(--ui-muted)!important; font-size:.73rem!important; font-weight:650; letter-spacing:.025em; border-bottom:1px solid var(--ui-border)!important; padding-top:13px; padding-bottom:13px; }
.table-responsive { border-radius:10px; scrollbar-width:thin; }
.badge { font-weight:600; padding:.45em .65em; border-radius:6px; letter-spacing:.01em; }
.modal-content,.dropdown-menu,.user-menu__dropdown,.notificacoes-painel,.toast,.banco-busca-resultados { background:var(--ui-elevated); color:var(--ui-text); border:1px solid var(--ui-border); border-radius:14px; box-shadow:var(--ui-float); }
.modal-header,.modal-footer { padding:18px 24px; border-color:var(--ui-border); } .modal-body { padding:24px; }
.dropdown-item,.user-menu__item,.user-menu__full-name { color:var(--ui-text); }
.dropdown-item:hover,.user-menu__item:hover { color:var(--ui-accent); background:var(--ui-accent-soft); }
.user-menu__summary,.notificacoes-item + .notificacoes-item { border-color:var(--ui-border); }
.user-menu__email,.notificacoes-item__data,.notificacoes-item__mensagem,.notificacoes-vazio { color:var(--ui-muted); }
.notificacoes-painel__titulo,.notificacoes-item__cabecalho strong { color:var(--ui-text); }
.notificacoes-item:hover { background:var(--ui-secondary); }
.nav-tabs { border-color:var(--ui-border); gap:5px; }
.nav-tabs .nav-link { color:var(--ui-muted); border-radius:8px 8px 0 0; font-weight:600; padding:12px 16px; }
.nav-tabs .nav-link.active { background:var(--ui-surface); color:var(--ui-accent); border-color:var(--ui-border) var(--ui-border) var(--ui-surface); }
.list-group-item { background:var(--ui-surface); color:var(--ui-text); border-color:var(--ui-border); }
.chart-wrap { height:280px; padding:8px 0; }
.plano-hero { background:#29374a!important; border:1px solid #435268; border-radius:16px; box-shadow:var(--ui-shadow); }
.plano-card,.plano-option { background:var(--ui-surface); border-color:var(--ui-border); border-radius:12px; padding:16px; }
.plano-card__preco { color:var(--ui-muted); }
.plano-card.is-selected { border-color:var(--ui-green); background:color-mix(in srgb,var(--ui-green) 8%,var(--ui-surface)); }
.chat-assistente-panel,.chat-card,.chat-msg--assistant,.chat-lista-item { background:var(--ui-surface); color:var(--ui-text); border-color:var(--ui-border); }
.chat-assistente-mensagens,.chat-assistente-acoes-rapidas { background:var(--ui-secondary); }
.chat-assistente-form,.chat-card-form input,.chat-card-form select,.chat-assistente-form input { background:var(--ui-surface); color:var(--ui-text); border-color:var(--ui-border); }
.chat-card-titulo,.chat-lista-item-info strong { color:var(--ui-text); }
.chat-assistente-acoes-rapidas button { background:var(--ui-surface); color:var(--ui-accent); border-color:var(--ui-border); }
.chat-assistente-header,.chat-assistente-fab { background:#5268a3; }
.mobile-bottom-nav { background:var(--ui-surface); border-top:1px solid var(--ui-border); box-shadow:var(--ui-shadow); }
.mobile-bottom-nav__item { color:var(--ui-muted); } .mobile-bottom-nav__item.active { color:var(--ui-accent); }
.mobile-summary-card { background:var(--ui-surface)!important; color:var(--ui-text)!important; border:1px solid var(--ui-border); box-shadow:var(--ui-shadow); }
.mobile-summary-card__label,.mobile-summary-card__meta { color:var(--ui-muted)!important; }
.login-container,.card-analise { background:var(--ui-surface)!important; backdrop-filter:none; padding:clamp(24px,4vw,44px)!important; }
body:has(.login-container),body:has(.card-analise) { background:radial-gradient(ellipse at 12% 10%,var(--ui-accent-soft),transparent 55%),var(--ui-bg)!important; height:auto!important; min-height:100dvh; padding-top:72px!important; padding-bottom:40px!important; }
.card-analise .text-white,.card-analise .text-white-50 { color:var(--ui-muted)!important; }
.step-card,.email-badge { background:var(--ui-secondary); border:1px solid var(--ui-border); }
.step-num { background:var(--ui-accent-soft); color:var(--ui-accent); }
.ui-theme-toggle { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; flex:none; border:1px solid var(--ui-border); border-radius:10px; background:var(--ui-secondary); color:var(--ui-text); margin-left:auto; margin-right:12px; cursor:pointer; }
.ui-theme-toggle:hover { background:var(--ui-accent-soft); color:var(--ui-accent); }
.ui-theme-toggle--floating { position:fixed; top:16px; right:16px; z-index:1040; margin:0; }
@media (min-width:993px) { .row.g-3 { --bs-gutter-x:20px; --bs-gutter-y:20px; } #mainContent .mb-3 { margin-bottom:20px!important; } }
@media (max-width:992px) {
 .navbar.fixed-top { height:64px; padding:8px 10px; } #sidebar { padding-top:78px; }
 #mainContent.content { padding-top:84px!important; padding-left:16px; padding-right:16px; }
 .card-body { padding:16px; } .card-header { padding:14px 16px; }
 .ui-theme-toggle { width:34px; height:34px; margin-right:8px; }
 .chart-wrap { height:250px; } .modal-body { padding:18px; }
 .table > :not(caption) > * > * { padding:10px; }
}
@media (max-width:575px) {
 #mainContent.content { padding-left:12px; padding-right:12px; }
 .navbar > .container-fluid { padding-left:0; padding-right:0; flex-wrap:nowrap; }
 .navbar .me-3 { margin-right:6px!important; } .mobile-appbar-title { max-width:125px; font-size:.95rem; }
 .form-control,.form-select { font-size:16px; }
 .card-body .row > .col-auto:has(.form-select) { flex:1 1 135px; }
 .card-body .form-select { min-width:0!important; max-width:100%; }
 .login-container { width:100%; } .btn { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }
}
@media print { .ui-theme-toggle { display:none!important; } }
@media screen {
body table.table[id] thead,body table.table[id] thead th { background:var(--ui-secondary)!important; color:var(--ui-muted)!important; font-size:.73rem!important; border-bottom:1px solid var(--ui-border)!important; }
body table.table[id],body table.table[id] tbody tr:nth-of-type(odd) { background-color:var(--ui-surface); }
body table.table[id] tbody tr:hover { background-color:var(--ui-accent-soft); }
.finance-card,.admin-card { background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:12px; box-shadow:var(--ui-shadow); padding:16px; }
.finance-card__title,.finance-card__text,.admin-card__title { color:var(--ui-text); font-weight:650; }
.finance-card__date,.finance-card__label,.admin-card__meta,.admin-card__subtitle { color:var(--ui-muted); }
.finance-card__meta-item { background:var(--ui-secondary); padding:10px; }
.finance-card__footer { border-color:var(--ui-border); }
.finance-card__value { font-weight:700; font-variant-numeric:tabular-nums; }
body:has(#tabelaReceitaPesquisar) .finance-card__value { color:var(--ui-green); }
body:has(#tabelaDespesaPesquisar) .finance-card__value { color:var(--ui-red); }
.plano-opcao { border-color:var(--ui-border); border-radius:12px; padding:20px; }
.plano-opcao.is-atual { border-color:var(--ui-green); background:color-mix(in srgb,var(--ui-green) 8%,var(--ui-surface)); }
.relatorio-preview .secao h2 { color:var(--ui-accent); }
.relatorio-preview th,.relatorio-preview tfoot td { background:var(--ui-secondary); color:var(--ui-text); }
.relatorio-preview th,.relatorio-preview td { border-color:var(--ui-border); }
.relatorio-preview .subtitulo,.relatorio-preview .totais-label { color:var(--ui-muted); }
@media(max-width:575px) {
 .navbar .navbar-brand { font-size:.9rem; margin-right:6px; }
 .navbar .brand-logo--nav { max-height:28px; }
 .navbar .username { max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
 .navbar-user-group { gap:6px; } .ui-theme-toggle { margin-left:auto; }
}
}
@media screen {
body #mainContent .table thead,body #mainContent .table thead th { background:var(--ui-secondary)!important; color:var(--ui-muted)!important; font-size:.73rem!important; font-weight:650; border-bottom:1px solid var(--ui-border)!important; }
.navbar .username,.navbar .user-menu,.navbar .navbar-user-group { margin-left:0; }
#resumoAtividade .rounded { background:var(--ui-secondary)!important; border-color:var(--ui-border)!important; }
.card-analise .bi-check-circle-fill { color:var(--ui-green)!important; }
.card-analise a { color:var(--ui-accent); }
.btn-reenviar { background:var(--ui-accent-soft); color:var(--ui-accent); }
.btn-reenviar:hover { background:var(--ui-secondary); color:var(--ui-text); }
#formSenha .btn[style],button[style*="linear-gradient(90deg,#fd7e14"] { background:#8e6b30!important; color:#fff!important; }
button[style*="linear-gradient(90deg,#59a14f"] { background:#287660!important; color:#fff!important; }
.alert { border-radius:10px; font-size:.85rem; }
}
@media screen {
.chart-wrap { min-width:0; } .chart-wrap canvas { max-width:100%; }
@media (min-width:993px) and (max-width:1199px) {
 #mainContent .row:has(.chart-wrap) > .col-lg-4 { flex:0 0 100%; max-width:100%; }
 .small-box .fs-3 { padding:6px; }
 .small-box { padding:16px!important; }
}
}
@media screen {
#mainContent { transition:margin-left var(--sidebar-transition-duration) ease,width var(--sidebar-transition-duration) ease; }
@media (min-width:993px) and (max-width:1199px) {
 #mainContent .row:has(.chart-wrap) > .col-md-4 { flex:0 0 100%; max-width:100%; }
}
}
/* V2 art direction: ink navigation, editorial typography, airy work surfaces. */
@media screen {


body { letter-spacing:-.015em; }
h1,h2,h3,h4,h5,h6 { font-family:Manrope,"Segoe UI",sans-serif; letter-spacing:-.045em; }
h1 { font-size:clamp(1.6rem,2.25vw,2.2rem); font-weight:800; }
.ui-icon { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; display:inline-block; vertical-align:-.2em; flex-shrink:0; }
.navbar.fixed-top { height:76px; padding:12px 26px; border-bottom:1px solid var(--ui-border); }
.navbar .navbar-brand { font-size:1rem; letter-spacing:-.035em; }
.navbar .brand-logo--nav { max-height:30px; border-radius:10px; }
#toggleSidebar { min-width:34px; min-height:36px; border:0; background:transparent; }
.ui-theme-toggle { border:0; background:transparent; border-radius:50%; margin-right:16px; width:40px; height:40px; }
.user-menu__button { border:0; background:var(--ui-secondary); padding:5px 12px 5px 5px; border-radius:30px; gap:10px; }
.user-menu__avatar { width:32px; height:32px; background:#edf1f8; color:#5268a3; }
#sidebar { background:var(--ui-ink)!important; border:0; padding-top:100px; }
#sidebar a { color:var(--ui-nav); margin:4px 14px; padding:12px; border-radius:10px; min-height:46px; font-size:.78rem; font-weight:500; }
#sidebar a:hover { color:#fff; background:#2c394d; }
#sidebar a.active,#sidebar a[aria-current="page"] { color:var(--ui-nav-active); background:#5268a3; box-shadow:0 6px 18px #101a3133; }
#sidebar a.active .link-icon,#sidebar a[aria-current="page"] .link-icon { color:#fff; }
#sidebar .link-icon { width:21px; color:#a4b3c8; }
#sidebar .link-text { margin-left:12px; }
#sidebar a[href*="configuracoes"],#sidebar a[href*="gerenciar-bancos"] { margin-top:22px; }
#sidebar a[href="/logout"] { border-top-color:#34425b; color:#aeb9ca; }
#mainContent.content { padding:110px 34px 40px; }
#mainContent > h1,#mainContent > .d-flex:has(>h1) { margin-bottom:28px!important; text-align:left!important; }
#mainContent > h1 { display:flex; align-items:center; gap:14px; }
.ui-heading-icon { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:14px; color:var(--ui-accent); vertical-align:middle; box-shadow:var(--ui-shadow); }
.ui-heading-icon .ui-icon { width:23px; height:23px; }
.ui-page-heading { display:flex; align-items:center; gap:14px; margin-bottom:26px; }
.ui-page-heading h1 { margin:0; }
.card { box-shadow:var(--ui-shadow)!important; border-color:var(--ui-border); }
.card-header,.card-header.text-white { padding:21px 24px 16px; border-bottom:0; font-size:.88rem; font-weight:800; letter-spacing:-.025em; }
.card-header > .ui-icon { color:var(--ui-accent); margin-right:7px; width:19px; height:19px; }
.card-body { padding:20px 24px 24px; }
.card-body.py-2 { padding-top:10px!important; padding-bottom:20px!important; }
.btn { padding:.65rem 1rem; border-radius:10px; font-size:.8rem; font-weight:700; }
.btn-primary { --bs-btn-bg:#5268a3; --bs-btn-border-color:#5268a3; --bs-btn-hover-bg:#455b95; --bs-btn-hover-border-color:#455b95; --bs-btn-active-bg:#3b5087; --bs-btn-active-border-color:#3b5087; box-shadow:0 4px 10px #5268a320; }
.btn-outline-primary { --bs-btn-hover-bg:#5268a3; --bs-btn-hover-border-color:#5268a3; --bs-btn-active-bg:#5268a3; --bs-btn-active-border-color:#5268a3; }
.btn-outline-secondary { --bs-btn-color:var(--ui-muted); --bs-btn-border-color:var(--ui-border); --bs-btn-hover-bg:var(--ui-secondary); --bs-btn-hover-color:var(--ui-text); --bs-btn-hover-border-color:var(--ui-muted); }
.btn-success { --bs-btn-bg:#287660; --bs-btn-border-color:#287660; }
.btn > .ui-icon { width:17px; height:17px; margin-right:3px; }
.btn-sm { padding:.4rem .72rem; font-size:.75rem; }
.btn[aria-busy="true"] { cursor:progress; }
.form-control,.form-select { min-height:43px; border-radius:10px; background-color:var(--ui-secondary); border-color:var(--ui-border); font-size:.82rem; padding:.62rem .8rem; }
.form-select { padding-right:2.3rem; }
.form-label { color:var(--ui-muted); font-size:.72rem; font-weight:700; }
.form-check-input:checked { background-color:#5268a3; border-color:#5268a3; }
.form-check-input:focus { border-color:var(--ui-accent); box-shadow:0 0 0 3px var(--ui-accent-soft); }
#filtrosCollapse { background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:16px; padding:20px; box-shadow:var(--ui-shadow); }
.table-responsive { background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:15px; box-shadow:var(--ui-shadow); }
.card .table-responsive { border:0; border-radius:0 0 18px 18px; box-shadow:none; }
.table { margin-bottom:0; font-size:.8rem; --bs-table-striped-bg:color-mix(in srgb,var(--ui-secondary) 65%,var(--ui-surface)); }
.table-bordered > :not(caption) > * > * { border-left:0; border-right:0; }
body #mainContent .table thead th { padding:15px 16px; font-size:.68rem!important; letter-spacing:.05em; font-weight:700; text-transform:uppercase; background:var(--ui-secondary)!important; }
.table > :not(caption) > * > td { padding:16px; border-bottom-color:var(--ui-border); }
.table tbody tr:last-child td { border-bottom:0; }
.table .btn { border-radius:8px; box-shadow:none; }
.badge { padding:.55em .75em; font-size:.68rem; border-radius:7px; }
.badge.bg-success { background:color-mix(in srgb,var(--ui-green) 12%,var(--ui-surface))!important; color:var(--ui-green); }
.badge.bg-danger { background:color-mix(in srgb,var(--ui-red) 12%,var(--ui-surface))!important; color:var(--ui-red); }
.badge.bg-primary { background:var(--ui-accent-soft)!important; color:var(--ui-accent); }
.nav-tabs { display:flex; gap:5px; background:var(--ui-secondary); padding:5px; border:1px solid var(--ui-border); border-radius:12px; width:fit-content; max-width:100%; margin-bottom:24px; }
.nav-tabs .nav-link { padding:10px 17px; border:0; border-radius:8px; font-size:.78rem; }
.nav-tabs .nav-link.active { background:var(--ui-surface); box-shadow:var(--ui-shadow); border:0; }
.alert { background:var(--ui-surface); border:1px solid var(--ui-border); border-left:3px solid var(--ui-accent); padding:16px 20px; color:var(--ui-muted); font-size:.8rem; }
.alert-danger { border-left-color:var(--ui-red); } .alert-warning { border-left-color:var(--ui-amber); } .alert-success { border-left-color:var(--ui-green); }
.modal-content { border-radius:20px; overflow:hidden; }
.modal-header { padding:22px 26px; background:var(--ui-secondary); }
.modal-title { font-size:1.2rem; font-weight:800; }
.modal-body { padding:26px; } .modal-footer { background:var(--ui-secondary); padding:18px 26px; }
.finance-card,.admin-card { border-radius:16px; padding:20px; }
.finance-card__value { font-size:1.12rem; }
.plano-hero { background:linear-gradient(115deg,#29374a,#303f54)!important; border:1px solid #435268; border-radius:20px; padding:32px; }
.plano-hero__nome { letter-spacing:-.04em; }
.plano-opcao { padding:24px; border-radius:16px; }
.login-container { max-width:470px; border-radius:24px!important; box-shadow:0 22px 80px -38px #25254355!important; }
.login-container .brand-logo--login { max-height:66px; }
body:has(.login-container),body:has(.card-analise) { background:radial-gradient(ellipse at 15% 15%,var(--ui-accent-soft),transparent 55%),radial-gradient(ellipse at 85% 80%,color-mix(in srgb,var(--ui-accent) 5%,transparent),transparent 50%),var(--ui-bg)!important; }
/* Dashboard hierarchy: compact filter toolbar, metric cards and a prominent balance. */
.ui-dashboard .ui-filters { border-radius:14px!important; }
.ui-dashboard .ui-filters .card-header { padding:15px 20px 0; font-size:.76rem; }
.ui-dashboard .ui-filters .card-body { padding:10px 20px 18px!important; }
.ui-dashboard .ui-filters .form-label { font-size:.67rem; }
.ui-dashboard .ui-filters .row { --bs-gutter-x:16px; }
.ui-dashboard .ui-filters .col-auto:has(select) { flex:1 1 130px; }
.ui-dashboard .ui-filters select { min-width:0!important; width:100%; }
.small-box { --metric:var(--ui-accent); min-height:174px; padding:24px!important; border:1px solid var(--ui-border)!important; border-radius:18px!important; overflow:hidden; }
.small-box.bg-success { --metric:var(--ui-green); } .small-box.bg-danger { --metric:var(--ui-red); }
.small-box > .d-flex { align-items:flex-start!important; gap:8px; }
.small-box > .d-flex > div { display:flex; flex-direction:column; min-width:0; }
.small-box p { order:-1; font-size:.78rem; font-weight:600; margin-bottom:16px!important; }
.small-box h5 { font-size:clamp(1.3rem,2.05vw,2rem); letter-spacing:-.055em; line-height:1.15; font-weight:800; }
.small-box .ui-metric-icon { display:flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border-radius:13px; background:color-mix(in srgb,var(--metric) 9%,var(--ui-surface)); color:var(--metric); flex-shrink:0; }
.small-box .ui-metric-icon .ui-icon { width:22px; height:22px; }
.small-box small { font-size:.68rem; margin-top:18px!important; opacity:1; }
.small-box small .ui-icon { width:14px; height:14px; margin-left:4px; }
.small-box:has(#saldoLiquido) { background:#29374a!important; color:#fff!important; border-color:#29374a!important; }
.small-box:has(#saldoLiquido)::after { content:""; pointer-events:none; position:absolute; width:200px; height:200px; right:-90px; bottom:-130px; border:1px solid #ffffff12; border-radius:50%; box-shadow:0 0 0 20px #ffffff05,0 0 0 40px #ffffff04,0 0 0 60px #ffffff03; }
.small-box:has(#saldoLiquido) h5 { color:#edf3ff; }
.small-box:has(#saldoLiquido) p { color:#d3ddeb; }
.small-box:has(#saldoLiquido) .ui-metric-icon { background:#ffffff0c; color:#edf3ff; }
.ui-balance .card-header { color:var(--ui-muted)!important; font-size:.76rem; padding:20px 24px 8px; }
.ui-balance .card-body { padding:8px 24px 24px; }
.ui-balance .row { text-align:left!important; }
.ui-balance .row > div { padding-left:24px; border-left:1px solid var(--ui-border); }
.ui-balance .row > div:first-child { border:0; padding-left:10px; }
.ui-balance h5 { margin-top:8px; font-size:1.4rem; font-weight:800; font-variant-numeric:tabular-nums; }
.ui-balance .small { font-size:.7rem; }
.ui-balance #saldoContasAtual { color:var(--ui-green); }
.ui-charts .card-header { min-height:70px; font-size:.78rem; }
.ui-charts .card-body { padding:4px 18px 18px; }
.ui-charts .chart-wrap { height:250px; }
.ui-dashboard .mobile-summary-card { border-radius:16px; padding:19px; }
.ui-dashboard .mobile-summary-card__label { font-size:.7rem; margin-bottom:10px; }
.ui-dashboard .mobile-summary-card__value { font-size:1.25rem; font-weight:800; letter-spacing:-.05em; }
.ui-dashboard .mobile-summary-card:has(#saldoContasAtualMobile) { background:#29374a!important; border-color:#29374a; }
.ui-dashboard .mobile-summary-card:has(#saldoContasAtualMobile) .mobile-summary-card__label { color:#d3ddeb!important; }
.ui-dashboard #saldoContasAtualMobile { color:#edf3ff; }
@media(min-width:993px) {
 .navbar::before { content:""; position:absolute; inset:0 auto 0 0; width:var(--sidebar-width); background:var(--ui-ink); pointer-events:none; }
 .navbar > .container-fluid { position:relative; padding:0; }
 .navbar .navbar-brand.text-light,#toggleSidebar { color:#f0f3fa!important; }
 .navbar #toggleSidebar.me-3 { margin-right:10px!important; }
 #mainContent .row.g-3 { --bs-gutter-x:22px; --bs-gutter-y:22px; }
 #mainContent .ui-charts > .col-md-4 { flex:0 0 28%; max-width:28%; }
 #mainContent .ui-charts > #graficoReceitaDespesaCol { flex-basis:44%; max-width:44%; }
}
@media(min-width:993px) and (max-width:1199px) {
 .small-box { padding:18px!important; min-height:160px; }
 .small-box h5 { font-size:1.45rem; }
 .small-box .ui-metric-icon { width:30px; height:30px; border-radius:9px; }
 #mainContent .ui-charts > .col-md-4 { flex-basis:50%; max-width:50%; }
 #mainContent .ui-charts > #graficoReceitaDespesaCol { flex-basis:100%; max-width:100%; }
}
@media(max-width:992px) {
 .navbar.fixed-top { height:64px; padding:8px 12px; }
 #sidebar { padding-top:78px; }
 #mainContent.content { padding:88px 20px 90px!important; }
 #mainContent > h1,#mainContent > .d-flex:has(>h1) { margin-bottom:22px!important; }
 .ui-heading-icon { width:38px; height:38px; border-radius:12px; }
 .ui-page-heading { margin-bottom:20px; gap:10px; }
 .ui-page-heading h1 { font-size:1.6rem; }
 .card-header { padding:19px 20px 12px; } .card-body { padding:16px 20px 20px; }
 .ui-balance .row > div { border:0; padding-left:10px; }
 .ui-balance .row { --bs-gutter-y:20px; }
 .mobile-bottom-nav { border-radius:18px 18px 0 0; box-shadow:0 -6px 24px #202b3c0a; }
 .mobile-bottom-nav__item .ui-icon { width:22px; height:22px; }
 .mobile-bottom-nav__item.active { color:var(--ui-accent); }
 .mobile-bottom-nav__item.active .ui-icon { background:var(--ui-accent-soft); box-sizing:content-box; padding:4px 14px; border-radius:12px; }
}
@media(max-width:575px) {
 #mainContent.content { padding-left:14px!important; padding-right:14px!important; }
 .form-control,.form-select { font-size:16px; }
 .ui-dashboard .ui-filters .col-auto:has(select) { flex-basis:40%; }
 .ui-dashboard .ui-filters .card-header { padding-top:16px; }
 .ui-dashboard .ui-filters .card-body { padding:12px 16px 16px!important; }
 .ui-balance .row > div { width:33.333%; padding-left:10px; }
 .ui-balance .card-body { padding:12px 16px 22px; }
 .ui-balance h5 { font-size:1rem; } .ui-balance .small { font-size:.63rem; }
 .ui-theme-toggle { width:32px; height:32px; margin-right:6px; }
 .modal-body { padding:22px; } .modal-header { padding:20px 22px; }
 .ui-charts .chart-wrap { height:260px; }
 .ui-charts .card-header { min-height:0; padding-bottom:20px; }
}
/* Motion is decorative only: no delayed controls, changing values or endless loops. */
@keyframes ui-arrive { from { opacity:.3; translate:0 12px; } to { opacity:1; translate:0 0; } }
@keyframes ui-dialog { from { opacity:.6; scale:.98; } to { opacity:1; scale:1; } }
@media(prefers-reduced-motion:no-preference) {
 #mainContent > h1,.ui-page-heading { animation:ui-arrive .45s var(--ui-ease) both; }
 .ui-dashboard .ui-filters { animation:ui-arrive .5s var(--ui-ease) both; }
 .small-box { animation:ui-arrive .55s var(--ui-ease) both; }
 .ui-kpis > :nth-child(2) .small-box { animation-delay:45ms; }
 .ui-kpis > :nth-child(3) .small-box { animation-delay:90ms; }
 .ui-kpis > :nth-child(4) .small-box { animation-delay:135ms; }
 .ui-balance,.ui-charts,.ui-surface-enter { animation:ui-arrive .6s var(--ui-ease) both; }
 .modal.show .modal-content { animation:ui-dialog .2s var(--ui-ease); }
 .btn,.small-box,.finance-card,.plano-opcao,.ui-theme-toggle { transition:transform .22s var(--ui-ease),box-shadow .22s,border-color .22s,background-color .18s; }
 .btn:hover:not(:disabled):not(.disabled) { transform:translateY(-1px); }
 .btn:active:not(:disabled) { transform:translateY(0) scale(.98); }
 a .small-box:hover { transform:translateY(-4px); border-color:color-mix(in srgb,var(--metric) 35%,var(--ui-border))!important; box-shadow:0 15px 28px -18px var(--metric)!important; }
 #sidebar a .ui-icon { transition:transform .2s var(--ui-ease); }
 #sidebar a:hover .ui-icon { transform:translateX(2px); }
 .ui-theme-toggle:hover svg { transform:rotate(18deg); transition:transform .25s; }
 .plano-opcao:hover { transform:translateY(-3px); border-color:var(--ui-accent); }
}
}
@media screen {
.small-box { justify-content:flex-start; min-height:160px; }
.ui-dashboard .ui-balance .card-header { padding-top:18px; }
.ui-dashboard .ui-balance .card-body { padding-bottom:20px; }
@media(min-width:1200px) {
 .ui-dashboard .ui-filters { display:flex; flex-direction:row; align-items:center; gap:22px; padding:20px; }
 .ui-dashboard .ui-filters .card-header { padding:0; display:flex; align-items:center; gap:7px; background:transparent!important; }
 .ui-dashboard .ui-filters .card-body { flex:1; min-width:0; padding:0!important; }
 .ui-dashboard .ui-filters .card-header .ui-icon { margin:0; }
}
}
@media screen {
#mainContent .ui-section-heading { display:flex; align-items:center; gap:8px; text-align:left!important; font-size:clamp(1.6rem,2.25vw,2.2rem); font-weight:800; margin-bottom:26px!important; }
#mainContent .d-flex > .ui-section-heading { margin-bottom:0!important; }
#mainContent:has(#formPerfil) > .row > .col-md-5 { flex:0 0 50%; max-width:50%; }
#mainContent:has(#formPerfil) > .row > .col-md-10 { flex:0 0 100%; max-width:100%; }
#mainContent:has(#formPerfil) .card-body { padding-top:8px; }
#mainContent:has(#formPerfil) .btn[style] { background:#5268a3!important; }
@media(max-width:767px) {
 #mainContent:has(#formPerfil) > .row > .col-md-5 { flex-basis:100%; max-width:100%; }
 #mainContent .ui-section-heading { font-size:1.5rem; }
}
}
@media screen {
.small-box small.opacity-75 { opacity:1!important; }
.btn-outline-secondary[data-bs-target^="#modalAdicionar"]:not(:disabled) { background:#5268a3; border-color:#5268a3; color:#fff; }
.btn-outline-secondary[data-bs-target^="#modalAdicionar"]:not(:disabled):hover { background:#455b95; border-color:#455b95; }
}
@media screen {
#cardsContainer > [class*="col-"] { flex:1 1 220px; }
#cardsContainer .card { height:100%; }
#cardsContainer .card-header { font-size:.72rem; padding:16px 20px 8px; }
#cardsContainer .card-body.py-2 { padding:0 20px 18px!important; }
#cardsContainer h5 { font-size:1.35rem; font-weight:800; font-variant-numeric:tabular-nums; }
}
/* Palette refinement only: geometry, typography, motion and interactions stay unchanged. */
@media screen {
.btn-success { --bs-btn-bg:#5268a3; --bs-btn-border-color:#5268a3; --bs-btn-hover-bg:#455b95; --bs-btn-hover-border-color:#455b95; --bs-btn-active-bg:#3b5087; --bs-btn-active-border-color:#3b5087; }
.btn-secondary { --bs-btn-bg:var(--ui-secondary); --bs-btn-color:var(--ui-muted); --bs-btn-border-color:var(--ui-border); --bs-btn-hover-bg:var(--ui-border); --bs-btn-hover-color:var(--ui-text); --bs-btn-hover-border-color:var(--ui-border); --bs-btn-active-bg:var(--ui-border); --bs-btn-active-color:var(--ui-text); --bs-btn-active-border-color:var(--ui-border); }
body #mainContent .table .btn-warning { background-color:var(--ui-accent-soft)!important; color:var(--ui-accent)!important; border-color:var(--ui-accent-soft)!important; }
body #mainContent .table .btn-warning:hover { background-color:color-mix(in srgb,var(--ui-accent) 18%,var(--ui-surface))!important; }
body #mainContent .table .btn-danger { background-color:color-mix(in srgb,var(--ui-red) 9%,var(--ui-surface))!important; color:var(--ui-red)!important; border-color:color-mix(in srgb,var(--ui-red) 9%,var(--ui-surface))!important; }
body #mainContent .table .btn-danger:hover { background-color:color-mix(in srgb,var(--ui-red) 18%,var(--ui-surface))!important; }
.badge.bg-secondary { background-color:var(--ui-secondary)!important; color:var(--ui-muted)!important; }
.badge.bg-warning { background-color:color-mix(in srgb,var(--ui-amber) 12%,var(--ui-surface))!important; color:var(--ui-amber)!important; }
.user-menu__avatar { background:var(--ui-accent-soft); color:var(--ui-accent); }
.login-container .btn-success { --bs-btn-bg:var(--ui-accent-soft); --bs-btn-color:var(--ui-accent); --bs-btn-border-color:var(--ui-accent-soft); --bs-btn-hover-bg:var(--ui-border); --bs-btn-hover-color:var(--ui-accent); --bs-btn-hover-border-color:var(--ui-border); }
}
@media screen {
.btn-danger { --bs-btn-bg:#b45160; --bs-btn-border-color:#b45160; --bs-btn-hover-bg:#9e4352; --bs-btn-hover-border-color:#9e4352; --bs-btn-active-bg:#8b3947; --bs-btn-active-border-color:#8b3947; }
.btn-outline-success { --bs-btn-color:var(--ui-green); --bs-btn-border-color:var(--ui-green); --bs-btn-hover-bg:#287660; --bs-btn-hover-border-color:#287660; }
.btn-outline-danger { --bs-btn-color:var(--ui-red); --bs-btn-border-color:var(--ui-red); --bs-btn-hover-bg:#b45160; --bs-btn-hover-border-color:#b45160; }
.badge.bg-info { background-color:var(--ui-accent-soft)!important; color:var(--ui-accent)!important; }
.text-info { color:var(--ui-accent)!important; }
}
