/* FlowFin Web v4.0.3 — revisão estrutural, alinhamento e acabamento final */
:root{--web-section-gap:18px;--web-card-radius:18px;--web-card-shadow:0 10px 28px rgba(10,48,40,.055)}

/* Todas as páginas, exceto o Dashboard, recebem uma hierarquia visual mais sóbria. */
.page:not(#page-dashboard).active-page{width:100%;min-width:0}
.page:not(#page-dashboard)>.page-intro{align-items:center;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid #e6eeeb}
.page:not(#page-dashboard)>.page-intro>div:first-child{min-width:0;max-width:720px}
.page:not(#page-dashboard)>.page-intro h2{font-size:24px;line-height:1.15;letter-spacing:-.7px}
.page:not(#page-dashboard)>.page-intro p{font-size:11.5px;max-width:680px}
.page:not(#page-dashboard) .page-actions{justify-content:flex-end;align-items:center;gap:8px}
.page:not(#page-dashboard) .panel{border:1px solid #dce9e4!important;border-radius:var(--web-card-radius)!important;box-shadow:var(--web-card-shadow)!important}
.page:not(#page-dashboard) .panel.double-border-card::before{content:none!important}
.page:not(#page-dashboard) .panel-head{padding:20px 20px 14px}
.page:not(#page-dashboard) .panel-head h3{font-size:15px}
.page:not(#page-dashboard) .panel-head p{font-size:10px;line-height:1.45}
.page:not(#page-dashboard) .metric-card{border:1px solid #dce9e4!important;border-radius:16px!important;box-shadow:0 8px 22px rgba(10,48,40,.05)!important}
.page:not(#page-dashboard) .table-panel{border:1px solid #dce9e4!important;border-radius:16px!important;box-shadow:0 8px 22px rgba(10,48,40,.04)!important}
.page:not(#page-dashboard) .data-table th{font-size:9px;padding-top:13px;padding-bottom:13px}
.page:not(#page-dashboard) .data-table td{padding-top:14px;padding-bottom:14px}
.page:not(#page-dashboard) .security-note{border:1px solid #d7ebe3}

/* Botões e filtros com altura consistente. */
.page:not(#page-dashboard) .primary-action-button,
.page:not(#page-dashboard) .secondary-action-button{min-height:40px;border-radius:11px;padding-inline:14px}
.page:not(#page-dashboard) .month-picker{height:42px;border-radius:11px}
.page:not(#page-dashboard) .month-picker span{min-width:150px}

/* Luna: todos os controles ficam na mesma barra, alinhados e sem coluna solta à direita. */
#page-luna>.page-intro{display:flex;align-items:center;gap:18px}
#page-luna>.page-intro>div:first-child{flex:1 1 360px}
#page-luna .page-actions{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end}
#page-luna .parity-luna-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
#page-luna .parity-luna-toolbar .secondary-action-button{white-space:nowrap}
#page-luna .luna-page-hero{margin-bottom:16px;gap:14px}
#page-luna .luna-page-hero>div,#page-luna .luna-page-hero>button{border-radius:17px;min-height:82px}
#page-luna .luna-page-skills{margin-bottom:16px}
#page-luna .luna-page-layout{gap:18px}
#page-luna .luna-page-chat{height:calc(100vh - 230px);min-height:560px;border-radius:18px!important}
#page-luna .luna-page-layout>.panel:last-child{align-self:start;position:sticky;top:92px}

/* Planejamentos, acordos e configurações: evita cards muito largos com conteúdo perdido no vazio. */
#page-planning .panel,#page-agreements .panel,#page-settings .panel,#page-privacy .panel,#page-notifications .panel{overflow:hidden}
#page-agreements .couple-web-grid,#page-planning .life-planning-grid,#page-settings .settings-grid{gap:16px}
#page-settings .settings-hub-grid,#page-settings .settings-subgrid{gap:16px}
#page-shopping .shopping-stats,#page-budgets .metric-grid,#page-goals .metric-grid,#page-income .metric-grid,#page-cards .metric-grid{gap:14px}

/* Tabelas não ocupam altura artificial: rolagem acontece somente quando necessária. */
.page:not(#page-dashboard) .table-scroll{max-height:none}
.page:not(#page-dashboard) .transactions-table-scroll{max-height:min(68vh,720px)}

/* Reduz “vazios acidentais” sem comprimir conteúdo legítimo. */
.page:not(#page-dashboard) section+section{margin-top:0}
.page:not(#page-dashboard) .empty-state{min-height:160px}

@media(max-width:1180px){#page-luna>.page-intro{align-items:flex-start;flex-wrap:wrap}#page-luna .page-actions{width:100%;justify-content:flex-start}#page-luna .luna-page-layout>.panel:last-child{position:static}}
@media(max-width:760px){.page:not(#page-dashboard)>.page-intro{align-items:flex-start}.page:not(#page-dashboard) .page-actions{justify-content:flex-start}.page:not(#page-dashboard) .primary-action-button,.page:not(#page-dashboard) .secondary-action-button{min-height:42px}.page:not(#page-dashboard) .month-picker{width:100%}.page:not(#page-dashboard) .month-picker span{flex:1;min-width:0}#page-luna .parity-luna-toolbar{width:100%}#page-luna .parity-luna-toolbar .secondary-action-button{flex:1 1 170px}#page-luna .luna-page-chat{height:auto;min-height:620px}}


/* ===== v4.0.3 — correções definitivas observadas em produção ===== */

/* Luna: quando a sidebar está aberta, os cinco controles usam uma grade previsível.
   Isso evita o grupo Histórico/Nova conversa cair em uma posição arbitrária. */
#page-luna>.page-intro{
  display:grid!important;
  grid-template-columns:minmax(330px,1fr) minmax(560px,620px)!important;
  align-items:start!important;
  gap:24px!important;
}
#page-luna>.page-intro>div:first-child{align-self:center;max-width:520px!important}
#page-luna .page-actions{
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(250px,1.55fr) minmax(145px,.82fr) minmax(155px,.9fr)!important;
  grid-auto-rows:44px;
  gap:8px 10px!important;
  justify-content:stretch!important;
  align-items:stretch!important;
}
#page-luna .page-actions>.month-picker{width:100%!important;height:44px!important;grid-column:1;grid-row:1}
#page-luna .page-actions>[data-luna-action-history]{grid-column:2;grid-row:1;width:100%!important}
#page-luna .page-actions>.tag.success{grid-column:3;grid-row:1;min-height:44px;display:flex;align-items:center;justify-content:center;padding:0 12px;white-space:nowrap}
#page-luna .page-actions>.parity-luna-toolbar{
  grid-column:2/4;grid-row:2;
  display:grid!important;grid-template-columns:1fr 1fr!important;
  gap:10px!important;width:100%!important;margin:0!important;align-items:stretch!important
}
#page-luna .parity-luna-toolbar .secondary-action-button{width:100%!important;min-width:0!important;height:44px!important;justify-content:center;white-space:nowrap}
#page-luna .page-actions .secondary-action-button{min-height:44px!important}

/* Acordos: ações da página têm largura do conteúdo, não ocupam o card inteiro. */
#page-agreements .ff41-actions{display:flex!important;justify-content:flex-start!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}
#page-agreements .ff41-actions .btn{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:40px!important;
  padding:0 16px!important;
  border-radius:11px!important;
  font-size:11px!important;
  white-space:nowrap!important
}
#page-agreements .ff41-card>.ff41-actions{margin-top:14px!important}

@media(max-width:1180px){
  #page-luna>.page-intro{grid-template-columns:1fr!important;gap:14px!important}
  #page-luna>.page-intro>div:first-child{max-width:680px!important}
  #page-luna .page-actions{max-width:720px!important;grid-template-columns:minmax(240px,1.4fr) minmax(145px,.8fr) minmax(155px,.9fr)!important}
}
@media(max-width:760px){
  #page-luna .page-actions{display:flex!important;max-width:none!important;flex-wrap:wrap!important}
  #page-luna .page-actions>.month-picker{flex:1 1 100%!important}
  #page-luna .page-actions>[data-luna-action-history],#page-luna .page-actions>.tag.success{flex:1 1 180px!important}
  #page-luna .page-actions>.parity-luna-toolbar{display:flex!important;flex:1 1 100%!important}
  #page-agreements .ff41-actions .btn{flex:1 1 150px!important;justify-content:center}
}
