/* ============================================================
   FINANCA â€” Component styles + Bootstrap overrides v2
   Design system refinado â€” premium fintech SaaS
   Tokens de tema ficam em theme-tokens.css
   ============================================================ */

/* ============================================================
   BASE
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--bg-root); }

body {
  font-family: var(--font-ui);
  background: var(--bg-root);
  color: var(--tx-primary);
  min-height: 100vh;
  font-size: var(--fs-body);
  line-height: var(--lh-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: var(--ls-normal);
}

body.has-navigation-rail {
  background:
    linear-gradient(180deg, rgba(var(--ac-rgb), .035), transparent 240px),
    var(--bg-root);
}

/* ============================================================
   TYPOGRAPHY SCALE
   ============================================================ */

h1, .h1 { font-size: var(--fs-h1); font-weight: var(--fw-bold); letter-spacing: var(--ls-tight); }
h2, .h2 { font-size: var(--fs-h2); font-weight: var(--fw-semibold); letter-spacing: var(--ls-tight); }
h3, .h3 { font-size: var(--fs-h3); font-weight: var(--fw-semibold); }
h4, .h4 { font-size: var(--fs-body); font-weight: var(--fw-semibold); }
h5, .h5 { font-size: var(--fs-sm); font-weight: var(--fw-semibold); }
h6, .h6 { font-size: var(--fs-xs); font-weight: var(--fw-medium); }

p, span, div, li, td, th, label, small { color: inherit; }

/* ============================================================
   BOOTSTRAP OVERRIDES â€” theming via CSS custom properties
   Centralizados aqui para evitar conflito de especificidade.
   ============================================================ */

/* SuperfÃ­cies */
.card,
.card-body,
.card-header,
.card-footer,
.modal-content,
.modal-header,
.modal-body,
.modal-footer,
.dropdown-menu,
.dropdown-item,
.list-group-item,
.popover,
.popover-body,
.toast,
.toast-body {
  background: var(--bg-primary);
  color: var(--tx-primary);
}

.card-header,
.modal-header { border-bottom-color: var(--bd-primary); }

.card-footer,
.modal-footer { border-top-color: var(--bd-primary); }

.dropdown-item:hover,
.list-group-item:hover {
  background: var(--bg-secondary);
  color: var(--tx-primary);
}

/* Headings em cards */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.card-header h5,
.card-header .h5 {
  color: var(--tx-primary);
}

/* Links */
a { color: var(--tx-link); text-decoration: none; }
a:hover { text-decoration: underline; }

/* Nav */
.nav-link { color: var(--tx-primary); }

/* Muted */
.text-muted,
.text-secondary {
  color: var(--tx-secondary) !important;
}

/* Forms */
.form-label,
.form-text,
.form-check-label {
  color: var(--tx-secondary);
}

.form-control,
.form-select,
.form-check-input {
  background-color: var(--inp-bg);
  border-color: var(--inp-bd);
  color: var(--inp-tx);
}

.form-control::placeholder { color: var(--inp-ph); }

select,
.form-select {
  color-scheme: light;
}

[data-theme="dark"] select,
[data-theme="dark"] .form-select {
  color-scheme: dark;
}

select option,
select optgroup,
.form-select option,
.form-select optgroup {
  background-color: var(--bg-elevated);
  color: var(--tx-primary);
}

select option:checked,
.form-select option:checked {
  background-color: var(--ac);
  color: var(--tx-on-accent);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--inp-bg);
  color: var(--inp-tx);
  border-color: var(--ac);
  box-shadow: 0 0 0 3px rgba(var(--ac-rgb), 0.12);
  outline: none;
}

/* Tables */
.table {
  color: var(--tx-primary);
  --bs-table-bg: var(--bg-primary);
  --bs-table-color: var(--tx-primary);
  --bs-table-hover-bg: var(--bg-secondary);
  --bs-table-hover-color: var(--tx-primary);
  --bs-table-striped-bg: var(--bg-secondary);
  --bs-table-striped-color: var(--tx-primary);
  --bs-table-border-color: var(--bd-primary);
}

.table thead th {
  color: var(--tx-secondary);
  background: var(--bg-secondary);
  border-bottom-color: var(--bd-primary);
}

.table tbody td { border-color: var(--bd-secondary); }

/* Input group */
.input-group-text {
  background: var(--bg-secondary);
  border-color: var(--inp-bd);
  color: var(--tx-secondary);
}

/* Nav tabs */
.nav-tabs .nav-link { color: var(--tx-secondary); }
.nav-tabs .nav-link.active {
  color: var(--tx-primary);
  background: var(--bg-primary);
  border-color: var(--bd-primary);
}

/* Breadcrumb */
.breadcrumb { background: transparent; }
.breadcrumb-item.active { color: var(--tx-secondary); }

/* Alerts */
.alert { color: var(--tx-primary); }

/* Buttons: visual contract lives in the BUTTONS section below. */

/* Dropdowns */
.dropdown-divider { border-color: var(--bd-primary); }

/* Code */
code, pre {
  background: var(--bg-secondary);
  color: var(--tx-primary);
}

/* ============================================================
   NAVIGATION RAIL / SIDEBAR
   ============================================================ */

:root {
  --rail-width: 248px;
  --rail-width-collapsed: 76px;
}

html,
body.has-navigation-rail {
  max-width: 100%;
  overflow-x: clip;
}

.app-rail {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1040;
  width: var(--rail-width);
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow: visible;
  transition:
    width var(--motion-sidebar),
    padding var(--motion-sidebar),
    transform var(--motion-sidebar);
}

.rail-brand {
  display: grid;
  align-items: center;
  min-width: 0;
}

.rail-brand a {
  min-width: 0;
  display: flex;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.rail-brand strong,
.rail-brand small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rail-collapse-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-glass);
  color: var(--tx-secondary);
  cursor: pointer;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    transform var(--transition-fast);
}

.rail-nav {
  width: 100%;
  display: grid;
  flex: 1 1 auto;
  min-height: 0;
  scrollbar-width: none;
}

.rail-nav::-webkit-scrollbar { display: none; }

.rail-section-label {
  color: var(--tx-tertiary);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rail-link {
  min-width: 0;
  display: flex;
  align-items: center;
  text-decoration: none;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    transform var(--transition-fast);
}

.rail-link:hover {
  text-decoration: none;
}

.rail-link i {
  text-align: center;
  line-height: 1;
}

.rail-link span,
.rail-create span,
.rail-icon-button span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rail-actions {
  width: 100%;
  display: grid;
  margin-top: auto;
}

.rail-create,
.rail-icon-button {
  width: 100%;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--border-glass);
  border-radius: 10px;
  background: transparent;
  color: var(--tx-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    box-shadow var(--transition-fast),
    transform var(--transition-fast);
}

.rail-create:hover,
.rail-icon-button:hover {
  text-decoration: none;
}

.theme-toggle,
.rail-avatar,
.rail-icon-button {
  width: 100%;
}

.rail-avatar {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border-glass);
  cursor: pointer;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast);
}

.rail-avatar-icon,
.rail-avatar-chevron {
  flex: 0 0 auto;
}

.rail-avatar-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rail-user .dropdown-header {
  padding: .45rem .65rem .55rem;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
}

.rail-user .dropdown-item {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem .65rem;
  border-radius: 8px;
  color: var(--tx-primary);
  font-size: var(--fs-sm);
}

.rail-user .dropdown-item:hover {
  background: var(--surface-hover);
  color: var(--tx-primary);
}

.rail-user .dropdown-divider {
  margin: .45rem .25rem;
  border-color: var(--bd-subtle);
}

.rail-language-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px 34px;
  align-items: center;
  gap: .45rem;
  padding: .4rem .65rem;
}

.rail-lang-button {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--bd-primary);
  border-radius: 999px;
  background: var(--bg-primary);
}

.rail-lang-button.active,
.rail-lang-button:hover {
  border-color: rgba(var(--ac-rgb), .5);
  background: var(--ac-soft);
}

.app-main {
  width: min(100%, 1440px);
  max-width: 100%;
  margin: 0;
  padding: 1.1rem clamp(.75rem, 2vw, 1.6rem) !important;
}

body.has-navigation-rail .app-main {
  margin-left: var(--rail-width);
  width: calc(100vw - var(--rail-width));
}

body.has-navigation-rail .app-footer,
body.has-navigation-rail .app-message-stack {
  margin-left: var(--rail-width);
  width: calc(100vw - var(--rail-width));
}

.app-message-stack {
  padding: .85rem clamp(.75rem, 2vw, 1.6rem) 0;
}

.app-toast-stack {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 2200;
  display: grid;
  gap: .65rem;
  width: min(360px, calc(100vw - 2rem));
  pointer-events: none;
}

body.has-navigation-rail .app-toast-stack {
  left: auto;
  right: 1rem;
}

.app-toast {
  width: 100%;
  pointer-events: auto;
  overflow: hidden;
  background: var(--bg-elevated);
  border: 1px solid var(--bd-primary);
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(0,0,0,.18);
  color: var(--tx-primary);
}

.app-toast .toast-body {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 24px;
  align-items: center;
  gap: .75rem;
  padding: .8rem .85rem;
}

.app-toast .toast-icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--info-soft);
  color: var(--info);
}

.app-toast .toast-message {
  color: var(--tx-primary);
  font-size: var(--fs-sm);
  line-height: 1.35;
}

.app-toast .btn-close {
  width: 24px;
  height: 24px;
  padding: 0;
  margin: 0;
  box-shadow: none !important;
}

.app-toast-success .toast-icon { background: var(--green-soft); color: var(--green); }
.app-toast-warning .toast-icon { background: var(--amber-soft); color: var(--amber); }
.app-toast-error .toast-icon,
.app-toast-danger .toast-icon { background: var(--red-soft); color: var(--red); }

html.rail-collapsed {
  --rail-width: var(--rail-width-collapsed);
}

/* ============================================================
   PAGE HEADER
   ============================================================ */

.page-header {
  margin-bottom: var(--space-lg);
}

.container-fluid > .d-flex.justify-content-between.align-items-center.mb-4,
.container-fluid > .d-flex.justify-content-between.align-items-center.mb-3 {
  padding: .25rem 0 .65rem;
  border-bottom: 1px solid var(--bd-subtle);
}

.container-fluid > .d-flex.justify-content-between.align-items-center.mb-4 h1,
.container-fluid > .d-flex.justify-content-between.align-items-center.mb-4 h2,
.container-fluid > .d-flex.justify-content-between.align-items-center.mb-3 h1,
.container-fluid > .d-flex.justify-content-between.align-items-center.mb-3 h2 {
  margin: 0;
  font-size: var(--fs-h1);
  letter-spacing: -0.03em;
}

.page-title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-tight);
  margin-bottom: 0;
  line-height: var(--lh-tight);
}

.page-subtitle {
  font-size: var(--fs-sm);
  color: var(--tx-tertiary);
  margin-top: var(--space-xs);
}

/* ============================================================
   KPI / STAT CARDS â€” premium compactos
   ============================================================ */

.stat-card {
  border-radius: var(--radius-lg);
  border: 1px solid var(--bd-primary);
  box-shadow: var(--sh-card);
  background: var(--bg-primary);
  transition: box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
  overflow: hidden;
}

.card.bg-success,
.card.bg-danger,
.card.bg-primary,
.card.bg-warning {
  border: 0;
  border-radius: var(--radius-md);
  box-shadow: var(--sh-card);
  background-image: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,0)) !important;
}

.card.bg-success .card-body,
.card.bg-danger .card-body,
.card.bg-primary .card-body,
.card.bg-warning .card-body {
  padding: 1rem;
}

.card.bg-success h6,
.card.bg-danger h6,
.card.bg-primary h6,
.card.bg-warning h6 {
  color: rgba(255,255,255,.78);
  font-size: var(--fs-xxs);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.card.bg-success h3,
.card.bg-danger h3,
.card.bg-primary h3,
.card.bg-warning h3 {
  color: #fff;
  margin: .25rem 0 0;
}

.stat-card:hover {
  box-shadow: var(--sh-card-hover);
  border-color: var(--bd-primary);
  transform: translateY(-1px);
}

.stat-card .card-body {
  padding: var(--space-md) var(--space-lg);
}

.stat-card-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-md);
}

.stat-card-content { flex: 1; min-width: 0; }

.stat-label {
  font-size: var(--fs-kpi-label);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--tx-tertiary);
  margin-bottom: var(--space-xs);
  line-height: var(--lh-tight);
}

.stat-value {
  font-size: var(--fs-kpi);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  transition: color var(--transition-fast);
}

.stat-trend {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--fs-xxs);
  font-weight: var(--fw-semibold);
  margin-top: 3px;
  line-height: var(--lh-tight);
}

.stat-trend.up   { color: var(--green); }
.stat-trend.down { color: var(--red); }
.stat-trend.flat { color: var(--tx-tertiary); }

.stat-icon {
  font-size: 1.35rem;
  opacity: 0.85;
  flex-shrink: 0;
  transition: transform var(--transition-base), opacity var(--transition-base);
}

.stat-card:hover .stat-icon {
  transform: scale(1.05);
  opacity: 1;
}

/* Semantic stat variants */
.stat-card.stat-receita .stat-icon,
.stat-receita .stat-value { color: var(--green); }

.stat-card.stat-despesa .stat-icon,
.stat-despesa .stat-value { color: var(--red); }

.stat-card.stat-saldo.positive .stat-icon,
.stat-saldo.positive .stat-value { color: var(--green); }

.stat-card.stat-saldo.negative .stat-icon,
.stat-saldo.negative .stat-value { color: var(--red); }

.stat-card.stat-total .stat-icon,
.stat-total .stat-value { color: var(--ac); }

.stat-card.stat-total { border-left: 3px solid var(--ac); }

.stat-value-sm { font-size: var(--fs-sm); font-weight: var(--fw-semibold); }

.stat-value.text-success { color: var(--green) !important; }
.stat-value.text-danger  { color: var(--red)   !important; }
.stat-value.text-primary { color: var(--ac)    !important; }

/* Responsivo â€” KPI */
@media (max-width: 767.98px) {
  .stat-value { font-size: var(--fs-kpi-sm); }
  .stat-card .card-body { padding: var(--space-sm) var(--space-md); }
  .stat-icon { font-size: 1.15rem; }
}

/* ============================================================
   INSIGHT FEED â€” feed financeiro inteligente
   ============================================================ */

.insight-feed { margin-bottom: var(--space-lg); }

.insight-card {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-md);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  line-height: var(--lh-normal);
  border: 1px solid transparent;
  transition: border-color var(--transition-fast), background var(--transition-fast);
  min-height: 40px;
}

.insight-card:hover {
  filter: brightness(0.97);
}

.insight-icon {
  flex-shrink: 0;
  font-size: var(--fs-body);
  opacity: 0.85;
}

.insight-text { flex: 1; min-width: 0; }

.insight-card.insight-positive {
  background: var(--insight-positive-bg);
  color: var(--insight-positive-tx);
  border-color: var(--insight-positive-bd);
}
.insight-card.insight-positive .insight-icon { color: var(--green); }

.insight-card.insight-negative {
  background: var(--insight-negative-bg);
  color: var(--insight-negative-tx);
  border-color: var(--insight-negative-bd);
}
.insight-card.insight-negative .insight-icon { color: var(--red); }

.insight-card.insight-warning {
  background: var(--insight-warning-bg);
  color: var(--insight-warning-tx);
  border-color: var(--insight-warning-bd);
}
.insight-card.insight-warning .insight-icon { color: var(--amber); }

.insight-card.insight-info {
  background: var(--insight-info-bg);
  color: var(--insight-info-tx);
  border-color: var(--insight-info-bd);
}
.insight-card.insight-info .insight-icon { color: var(--info); }

/* ============================================================
   TRANSACTIONS â€” feed financeiro premium
   ============================================================ */

.transaction-item {
  display: flex;
  align-items: center;
  padding: var(--space-sm) var(--space-lg);
  border-radius: var(--radius-sm);
  transition: background var(--transition-fast);
  border-bottom: 1px solid var(--bd-subtle);
  margin: 0;
}

.transaction-item:last-child { border-bottom: none; }

.transaction-item:hover { background: var(--surface-hover); }

.transaction-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: var(--space-md);
  font-size: var(--fs-body);
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}

.transaction-item:hover .transaction-icon { transform: scale(1.05); }

.transaction-icon.receita {
  background: var(--green-soft);
  color: var(--green);
}

.transaction-icon.despesa {
  background: var(--red-soft);
  color: var(--red);
}

.transaction-details { flex: 1; min-width: 0; }

.transaction-title {
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  color: var(--tx-primary);
  line-height: var(--lh-tight);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.transaction-meta {
  font-size: var(--fs-xs);
  color: var(--tx-tertiary);
  margin-top: 1px;
  display: flex;
  gap: var(--space-sm);
  align-items: center;
}

.transaction-meta i { font-size: 10px; }

.transaction-value {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  white-space: nowrap;
  margin-left: var(--space-lg);
  letter-spacing: var(--ls-tight);
  transition: transform var(--transition-fast);
}

.transaction-item:hover .transaction-value { transform: scale(1.02); }

.transaction-value.receita { color: var(--green) !important; }
.transaction-value.despesa { color: var(--red) !important; }

/* Responsivo â€” transactions */
@media (max-width: 767.98px) {
  .transaction-item { padding: var(--space-sm) var(--space-md); }
  .transaction-icon { width: 32px; height: 32px; margin-right: var(--space-sm); }
}

/* ============================================================
   CHARTS â€” refinados e compactos
   ============================================================ */

.chart-container {
  position: relative;
  height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chart-evolucao { height: 300px; }

@media (min-width: 768px) {
  .chart-container { height: 230px; }
  .chart-evolucao   { height: 320px; }
}

/* ============================================================
   ACCOUNT CARDS â€” hierarquia refinada
   ============================================================ */

.account-card {
  border-radius: var(--radius-md);
  border: 1px solid var(--bd-primary);
  background: var(--bg-primary);
  box-shadow: var(--sh-card);
  transition: box-shadow var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}

.account-card:hover {
  box-shadow: var(--sh-card-hover);
  border-color: var(--bd-primary);
  transform: translateY(-1px);
}

.account-card .card-body { padding: var(--space-md) var(--space-lg); }

.account-card .account-name {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--tx-primary);
  margin-bottom: 2px;
  line-height: var(--lh-tight);
}

.account-card .account-type {
  font-size: var(--fs-xs);
  color: var(--tx-tertiary);
  margin-bottom: var(--space-xs);
}

.account-card .account-balance {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
}

/* ============================================================
   SECTION HEADER
   ============================================================ */

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-md);
}

.section-header h5 { margin: 0; font-size: var(--fs-sm); font-weight: var(--fw-semibold); }

/* ============================================================
   FORMS
   ============================================================ */

.form-control,
.form-select {
  background: var(--inp-bg);
  border: 1px solid var(--inp-bd);
  border-radius: var(--radius-sm);
  padding: 8px 11px;
  font-size: var(--fs-body);
  color: var(--inp-tx);
  color-scheme: light;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

[data-theme="dark"] .form-select,
[data-theme="dark"] select {
  color-scheme: dark;
}

.form-control::placeholder { color: var(--inp-ph); }

.form-label {
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--tx-secondary);
  margin-bottom: 4px;
}

input[type="date"].form-control,
input[type="time"].form-control,
input[type="datetime-local"].form-control {
  -webkit-appearance: auto;
  appearance: auto;
  cursor: pointer;
}

/* ============================================================
   TABLES
   ============================================================ */

.table {
  color: var(--tx-primary);
  border-color: var(--bd-primary);
}

.table thead th {
  font-size: var(--fs-xxs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--tx-tertiary);
  padding: var(--space-sm) var(--space-md);
  border-bottom: 2px solid var(--bd-primary);
}

.table tbody td {
  padding: var(--space-sm) var(--space-md);
  font-size: var(--fs-sm);
  border-color: var(--bd-secondary);
  transition: background var(--transition-fast);
}

.table tbody tr:hover { background: var(--surface-hover); }

/* ============================================================
   BADGES
   ============================================================ */

.badge {
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xxs);
  letter-spacing: 0.02em;
}

/* ============================================================
   ALERTS
   ============================================================ */

.alert {
  border-radius: var(--radius-md);
  padding: var(--space-md) var(--space-lg);
  font-size: var(--fs-sm);
  border: 1px solid var(--bd-primary);
  box-shadow: var(--sh-sm);
}

.alert-success { background: var(--green-soft); color: var(--green); border-color: var(--green-soft); }
.alert-danger  { background: var(--red-soft);   color: var(--red);   border-color: var(--red-soft); }
.alert-info    { background: var(--ac-soft);     color: var(--ac);    border-color: var(--ac-soft); }
.alert-warning { background: var(--amber-soft);  color: var(--amber); border-color: var(--amber-soft); }

[data-theme="dark"] .alert-dismissible .btn-close { filter: invert(1); }

/* ============================================================
   EMPTY STATE
   ============================================================ */

.empty-state {
  text-align: center;
  padding: var(--space-2xl) var(--space-lg);
}

.empty-state-icon {
  font-size: 36px;
  color: var(--tx-tertiary);
  margin-bottom: var(--space-sm);
  opacity: 0.6;
}

.empty-state h3 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
  color: var(--tx-primary);
  margin-bottom: 4px;
}

.empty-state p {
  font-size: var(--fs-sm);
  color: var(--tx-secondary);
}

/* ============================================================
   DROPDOWNS
   ============================================================ */

.dropdown-menu {
  background: var(--bg-elevated);
  border: 1px solid var(--bd-primary);
  box-shadow: var(--sh-lg);
  border-radius: var(--radius-md);
  padding: var(--space-xs);
}

.dropdown-item {
  color: var(--tx-primary);
  font-size: var(--fs-sm);
  border-radius: var(--radius-sm);
  padding: 7px var(--space-md);
  transition: background var(--transition-fast);
}

.dropdown-item:hover { background: var(--bg-secondary); }

/* ============================================================
   MODAL
   ============================================================ */

.modal-content {
  background: var(--bg-elevated);
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--sh-xl);
}

.modal-header { border-color: var(--bd-primary); }
.modal-footer { border-color: var(--bd-primary); }

/* ============================================================
   FOOTER
   ============================================================ */

footer {
  background: var(--bg-primary) !important;
  border-top: 1px solid var(--bd-subtle);
  color: var(--tx-tertiary) !important;
  font-size: var(--fs-xs);
}

footer.py-3 { padding: var(--space-md) 0 !important; }
footer.mt-5 { margin-top: var(--space-2xl) !important; }

/* ============================================================
   FAB
   ============================================================ */

.fab-container {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1040;
}

.btn-fab {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background: var(--ac);
  color: var(--tx-on-accent);
  box-shadow: var(--sh-lg);
  font-size: var(--fs-h2);
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.btn-fab:hover {
  transform: scale(1.05);
  box-shadow: var(--sh-xl);
}

/* ============================================================
   SCROLLBAR â€” premium slim
   ============================================================ */

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--tx-tertiary);
  border-radius: var(--radius-full);
}
::-webkit-scrollbar-thumb:hover { background: var(--tx-secondary); }

/* ============================================================
   UTILITIES
   ============================================================ */

.text-muted { color: var(--tx-tertiary) !important; }

.page-link {
  background: var(--bg-primary);
  border-color: var(--bd-primary);
  color: var(--tx-primary);
  transition: background var(--transition-fast);
}
.page-link:hover { background: var(--bg-secondary); color: var(--tx-primary); }
.page-item.active .page-link {
  background: var(--ac);
  border-color: var(--ac);
  color: var(--tx-on-accent);
}

/* ============================================================
   AUTH
   ============================================================ */

.auth-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-root);
  padding: var(--space-xl);
}

.auth-card { max-width: 400px; width: 100%; }

.auth-header { text-align: center; padding: var(--space-lg) var(--space-lg) var(--space-sm); }
.auth-header h1 { font-size: var(--fs-h1); font-weight: var(--fw-bold); color: var(--tx-primary); }
.auth-header p  { font-size: var(--fs-sm); color: var(--tx-secondary); margin-top: 4px; }

.auth-card .card {
  border-radius: var(--radius-lg);
  box-shadow: var(--sh-xl);
}

.biometric-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  padding: var(--space-sm) 0;
}

.biometric-btn {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
  color: #fff;
  font-size: 1.8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  box-shadow: 0 6px 16px rgba(99, 102, 241, 0.25);
  transition: transform .1s;
}
.biometric-btn:active { transform: scale(.97); }

.alternative-login {
  text-align: center;
  margin: .75rem 0;
  color: var(--tx-secondary);
  font-size: .85rem;
  position: relative;
}
.alternative-login::before,
.alternative-login::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 38%;
  height: 1px;
  background: var(--bd-primary);
}
.alternative-login::before { left: 2%; }
.alternative-login::after  { right: 2%; }

/* ============================================================
   BADGES DE CATEGORIA / CONTA
   ============================================================ */

.category-badge,
.account-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .75rem;
  border-radius: var(--radius-sm);
  font-weight: var(--fw-medium);
  font-size: .85rem;
}

/* ============================================================
   ANIMAÃ‡Ã•ES
   ============================================================ */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fade-in {
  animation: fadeIn .25s ease;
  will-change: opacity, transform;
}

/* Stagger animation for stat cards */
.stat-card:nth-child(1) { animation: fadeInUp .3s ease both; animation-delay: 0ms; }
.stat-card:nth-child(2) { animation: fadeInUp .3s ease both; animation-delay: 40ms; }
.stat-card:nth-child(3) { animation: fadeInUp .3s ease both; animation-delay: 80ms; }
.stat-card:nth-child(4) { animation: fadeInUp .3s ease both; animation-delay: 120ms; }

/* ============================================================
   LAYOUT HELPERS
   ============================================================ */

.row.g-2 { --bs-gutter-x: var(--space-sm); --bs-gutter-y: var(--space-sm); }
.row.g-3 { --bs-gutter-y: var(--space-md); }

.container-fluid > .row:last-child { margin-bottom: 0; }

/* Section spacing */
.dashboard-section { margin-bottom: var(--space-lg); }

/* ============================================================
   DARK MODE â€” refinamentos de profundidade
   ============================================================ */

[data-theme="dark"] .card {
  background: var(--bg-primary);
  border-color: var(--bd-primary);
}

[data-theme="dark"] .card-header {
  background: var(--bg-secondary);
  border-bottom-color: var(--bd-primary);
}

[data-theme="dark"] .stat-card {
  background: var(--bg-primary);
  border-color: var(--bd-primary);
}

[data-theme="dark"] .transaction-item:hover {
  background: var(--surface-hover);
}

[data-theme="dark"] .modal-content {
  background: var(--bg-elevated);
  border-color: var(--bd-primary);
}

[data-theme="dark"] .dropdown-menu {
  background: var(--bg-elevated);
  border-color: var(--bd-primary);
}

[data-theme="dark"] .account-card {
  background: var(--bg-primary);
  border-color: var(--bd-primary);
}

/* Dark mode â€” separaÃ§Ã£o de layers mais clara */
[data-theme="dark"] .card-header {
  background: rgba(255, 255, 255, 0.02);
}

[data-theme="dark"] .stat-card.stat-total {
  border-left-color: var(--ac);
}

[data-theme="dark"] .table thead th {
  background: rgba(255, 255, 255, 0.02);
}

/* ============================================================
   DASHBOARD v2 â€” Preview-style layout
   ============================================================ */

.dash-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-xl);
  flex-wrap: wrap;
  gap: var(--space-md);
}

.dash-header-row .page-title {
  margin-bottom: 0;
}

.health-badge-dash {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: var(--green-soft);
  border: 1px solid rgba(var(--green-rgb), 0.25);
  padding: 0.35rem 0.85rem;
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
  color: var(--green);
  font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
  font-weight: var(--fw-semibold);
  white-space: nowrap;
}

.health-badge-dash.warning {
  background: var(--amber-soft);
  border-color: rgba(var(--amber-rgb), 0.25);
  color: var(--amber);
}

.health-badge-dash.danger {
  background: var(--red-soft);
  border-color: rgba(var(--red-rgb), 0.25);
  color: var(--red);
}

/* Mini cards â€” KPI compactos 4-col */
.dash-mini-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-bottom: var(--space-lg);
}

.mini-card {
  background: var(--bg-primary);
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-md);
  padding: 0.9rem 1rem;
  transition: border-color var(--transition-fast);
}

.mini-card:hover {
  border-color: var(--ac);
}

.mini-label {
  font-size: var(--fs-xxs);
  color: var(--tx-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.3rem;
}

.mini-val {
  font-size: var(--fs-kpi-sm);
  font-weight: var(--fw-bold);
  letter-spacing: -0.03em;
  font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
  line-height: var(--lh-tight);
}

.mini-val.green { color: var(--green); }
.mini-val.red   { color: var(--red); }
.mini-val.sky   { color: var(--info); }
.mini-val.amber { color: var(--amber); }

/* Dash bottom grid â€” grÃ¡fico + transaÃ§Ãµes lado a lado */
.dash-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: var(--space-lg);
}

.dash-chart-box {
  background: var(--bg-primary);
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-md);
  padding: 1rem 1rem 0.5rem;
  min-height: 200px;
  display: flex;
  flex-direction: column;
}

.dash-chart-box .chart-label {
  font-size: var(--fs-xs);
  color: var(--tx-secondary);
  margin-bottom: 0.5rem;
  font-weight: var(--fw-medium);
}

.dash-chart-box canvas {
  flex: 1;
  max-height: 180px;
}

.dash-tx-list {
  background: var(--bg-primary);
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-md);
  padding: 0.5rem 0;
  overflow: hidden;
}

.dash-tx-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.4rem 1rem;
  border-bottom: 1px solid var(--bd-subtle);
  font-size: var(--fs-sm);
}

.dash-tx-item:last-child { border-bottom: none; }

.dash-tx-name {
  color: var(--tx-secondary);
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.dash-tx-val {
  font-weight: var(--fw-semibold);
  font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
  font-size: var(--fs-sm);
}

.dash-tx-val.neg { color: var(--red); }
.dash-tx-val.pos { color: var(--green); }

.dash-tx-empty {
  padding: 2rem 1rem;
  text-align: center;
  color: var(--tx-tertiary);
  font-size: var(--fs-sm);
}

/* Responsivo dash v2 */
@media (max-width: 900px) {
  .dash-mini-cards  { grid-template-columns: repeat(2, 1fr); }
  .dash-bottom-grid { grid-template-columns: 1fr; }
}

@media (max-width: 500px) {
  .dash-mini-cards { grid-template-columns: 1fr 1fr; }
  .mini-val { font-size: var(--fs-h3); }
}

/* ============================================================
   RESPONSIVO
   ============================================================ */

@media (max-width: 767.98px) {
  .page-title     { font-size: 1.25rem; }
  .card-body      { padding: var(--space-md); }
  .card-header    { padding: var(--space-sm) var(--space-md); }
  .stat-value     { font-size: var(--fs-kpi-sm); }
  .transaction-item { padding: var(--space-sm) var(--space-md); }
  .chart-container  { height: 200px; }
  .app-main { padding-inline: .75rem !important; }
}

@media (max-width: 420px) {
  .auth-card     { margin: .25rem; }
  .biometric-btn { width: 78px; height: 78px; font-size: 1.5rem; }
  .stat-label    { font-size: 0.6rem; }
}

/* ============================================================
   LIQUID FINANCE FOUNDATION
   Global shell, components and motion for the premium redesign.
   ============================================================ */

* {
  letter-spacing: 0 !important;
}

html {
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

body {
  overflow-x: hidden;
  background:
    linear-gradient(180deg, rgba(var(--ac-rgb), 0.085), transparent 360px),
    var(--bg-root);
}

body.has-navigation-rail {
  background:
    linear-gradient(180deg, rgba(var(--ac-rgb), 0.10), transparent 380px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018), transparent 38%),
    var(--bg-root);
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-ui);
}

h1,
h2,
.page-title,
.auth-header h1 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.04;
}

.page-title {
  font-size: clamp(1.85rem, 2.8vw, 2.4rem);
}

.page-subtitle,
.mini-label,
.stat-label,
.rail-section-label,
.form-label {
  font-family: var(--font-ui);
}

.money,
.stat-value,
.mini-val,
.transaction-value,
.dash-tx-val,
.health-badge-dash,
.account-balance,
td.amount,
.badge {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

a,
button,
.btn,
.rail-link,
.rail-create,
.rail-icon-button,
.theme-toggle,
.form-control,
.form-select {
  touch-action: manipulation;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.rail-link:focus-visible,
.dropdown-item:focus-visible {
  outline: 2px solid var(--ac) !important;
  outline-offset: 2px;
}

.app-main {
  width: 100%;
  max-width: none;
  padding: 32px !important;
  overflow-x: clip;
}

body.has-navigation-rail .app-main {
  margin-left: var(--rail-width);
  width: calc(100vw - var(--rail-width));
}

body.has-navigation-rail .app-footer,
body.has-navigation-rail .app-message-stack {
  margin-left: var(--rail-width);
  width: calc(100vw - var(--rail-width));
}

.app-main > .container-fluid {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 0;
}

.container-fluid > .d-flex.justify-content-between.align-items-center.mb-4,
.container-fluid > .d-flex.justify-content-between.align-items-center.mb-3,
.dash-header-row {
  padding: 0 0 20px;
  border-bottom: 1px solid var(--border-subtle);
}

.glass-card,
.card,
.stat-card,
.mini-card,
.dash-chart-box,
.dash-tx-list,
.account-card,
.modal-content,
.dropdown-menu,
.app-toast {
  background: var(--bg-glass);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-lg);
  box-shadow: var(--sh-card);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
}

.card-header,
.card-footer {
  background: transparent;
  border-color: var(--border-subtle);
}

.glass-card:hover,
.card:hover,
.stat-card:hover,
.mini-card:hover,
.dash-chart-box:hover,
.dash-tx-list:hover,
.account-card:hover {
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: var(--sh-card-hover);
  transform: translateY(-2px);
}

.card,
.stat-card,
.mini-card,
.dash-chart-box,
.dash-tx-list,
.account-card {
  transition:
    transform var(--transition-base),
    border-color var(--transition-base),
    box-shadow var(--transition-base),
    background var(--transition-base);
}

:root {
  --btn-height: 48px;
  --btn-height-sm: 38px;
  --btn-height-lg: 52px;
  --btn-radius: var(--radius-full);
  --btn-px: 24px;
  --btn-gap: 8px;
}

:is(
  .btn:not(.btn-link):not(.btn-close):not(.btn-fab),
  .plan-btn,
  .btn-login,
  .btn-google,
  .btn-home,
  .btn-back,
  .setup-btn
) {
  min-height: var(--btn-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--btn-gap);
  padding: 12px var(--btn-px);
  border: 1px solid var(--border-glass);
  border-radius: var(--btn-radius);
  background: transparent;
  color: var(--tx-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: 650;
  line-height: 1.1;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none;
  transition:
    background var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    box-shadow var(--transition-fast),
    filter var(--transition-fast),
    transform var(--transition-fast);
}

:is(
  .btn:not(.btn-link):not(.btn-close):not(.btn-fab),
  .plan-btn,
  .btn-login,
  .btn-google,
  .btn-home,
  .btn-back,
  .setup-btn
):hover {
  color: var(--tx-primary);
  transform: translateY(-1px);
}

:is(
  .btn:not(.btn-link):not(.btn-close):not(.btn-fab),
  .plan-btn,
  .btn-login,
  .btn-google,
  .btn-home,
  .btn-back,
  .setup-btn
):focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(var(--ac-rgb), .24);
}

:is(
  .btn:not(.btn-link):not(.btn-close):not(.btn-fab),
  .plan-btn,
  .btn-login,
  .btn-google,
  .btn-home,
  .btn-back,
  .setup-btn
):active {
  transform: translateY(0) scale(0.98);
}

.btn-sm {
  min-height: var(--btn-height-sm);
  padding: 8px 14px;
  font-size: var(--fs-xs);
}

.btn-lg {
  min-height: var(--btn-height-lg);
  padding: 14px 28px;
  font-size: var(--fs-body);
}

.btn-primary,
.btn-login,
.btn-home,
.setup-btn,
.plan-btn.primary,
.plan-btn.filled {
  background: var(--accent-primary);
  border-color: var(--accent-primary);
  color: var(--tx-on-accent);
  box-shadow: 0 16px 34px rgba(var(--ac-rgb), 0.24);
}

.btn-primary:hover,
.btn-login:hover,
.btn-home:hover,
.setup-btn:hover,
.plan-btn.primary:hover,
.plan-btn.filled:hover {
  background: var(--accent-primary-hover);
  border-color: var(--accent-primary-hover);
  color: var(--tx-on-accent);
  filter: brightness(1.08);
}

.btn-secondary,
.btn-outline-secondary,
.plan-btn.secondary,
.plan-btn.outline,
.btn-back,
.btn-google {
  background: transparent;
  border-color: var(--border-glass);
  color: var(--tx-secondary);
  box-shadow: none;
}

.btn-secondary:hover,
.btn-outline-secondary:hover,
.plan-btn.secondary:hover,
.plan-btn.outline:hover,
.btn-back:hover,
.btn-google:hover {
  background: var(--surface-hover);
  border-color: rgba(var(--ac-rgb), .35);
  color: var(--tx-primary);
}

.btn-outline-primary {
  background: transparent;
  border-color: rgba(var(--ac-rgb), .32);
  color: var(--ac);
}

.btn-outline-primary:hover {
  background: var(--ac-soft);
  border-color: var(--ac);
  color: var(--ac);
}

.btn-danger,
.plan-btn.danger {
  background: var(--red);
  border-color: var(--red);
  color: var(--tx-on-accent);
  box-shadow: 0 16px 32px rgba(var(--red-rgb), .18);
}

.btn-danger:hover,
.plan-btn.danger:hover {
  color: var(--tx-on-accent);
  filter: brightness(.96);
}

.btn-outline-danger {
  background: transparent;
  border-color: rgba(var(--red-rgb), .32);
  color: var(--red);
}

.btn-outline-danger:hover {
  background: var(--red-soft);
  border-color: var(--red);
  color: var(--red);
}

.btn-success {
  background: var(--green);
  border-color: var(--green);
  color: var(--tx-on-accent);
  box-shadow: 0 16px 32px rgba(var(--green-rgb), .18);
}

.btn-success:hover {
  color: var(--tx-on-accent);
  filter: brightness(.96);
}

.btn-outline-success {
  background: transparent;
  border-color: rgba(var(--green-rgb), .32);
  color: var(--green);
}

.btn-outline-success:hover {
  background: var(--green-soft);
  border-color: var(--green);
  color: var(--green);
}

.btn-warning {
  background: var(--amber);
  border-color: var(--amber);
  color: #111827;
}

.btn-outline-warning {
  background: transparent;
  border-color: rgba(var(--amber-rgb), .34);
  color: var(--amber);
}

.btn-outline-warning:hover {
  background: var(--amber-soft);
  border-color: var(--amber);
  color: var(--amber);
}

:is(
  .btn,
  .plan-btn,
  .btn-login,
  .btn-google,
  .btn-home,
  .btn-back,
  .setup-btn
):is(:disabled, .disabled, [aria-disabled="true"]) {
  opacity: .52;
  pointer-events: none;
  box-shadow: none;
  filter: saturate(.72);
  transform: none;
}

.form-control,
.form-select {
  min-height: 48px;
  padding: 0 16px;
  border-radius: var(--radius-md);
  background: var(--inp-bg);
  border: 1px solid var(--inp-bd);
  color: var(--inp-tx);
  font-family: var(--font-ui);
}

textarea.form-control {
  min-height: 112px;
  padding-top: 14px;
  padding-bottom: 14px;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--accent-primary);
  box-shadow: 0 0 0 3px rgba(var(--ac-rgb), 0.15);
}

.badge {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  font-weight: 650;
}

.badge.bg-success,
.badge-paga,
.status-paid {
  background: rgba(var(--green-rgb), 0.15) !important;
  color: var(--green) !important;
}

.badge.bg-warning,
.badge-pendente,
.status-pending {
  background: rgba(var(--amber-rgb), 0.15) !important;
  color: var(--amber) !important;
}

.badge.bg-danger,
.badge-vencida,
.status-overdue {
  background: rgba(var(--red-rgb), 0.15) !important;
  color: var(--red) !important;
}

.table {
  --bs-table-bg: transparent;
}

::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.10);
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.20);
}

.has-navigation-rail .app-main > * {
  animation: pageFadeUp 300ms ease-out both;
}

@keyframes liquidLogoPulse {
  0%,
  100% {
    transform: translateY(0) scale(1);
    box-shadow: 0 14px 34px rgba(var(--ac-rgb), 0.24);
  }
  50% {
    transform: translateY(-1px) scale(1.025);
    box-shadow: 0 18px 42px rgba(var(--ac-rgb), 0.34);
  }
}

@keyframes pageFadeUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 767.98px) {
  .page-title {
    font-size: 1.65rem;
  }

  .app-main {
    padding: 18px !important;
  }

  body.has-navigation-rail {
    padding-bottom: 78px;
  }

  .app-rail {
    inset: auto 0 0 0;
    width: 100%;
    height: 74px;
    min-height: 74px;
    max-height: 74px;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border-right: 0;
    border-top: 1px solid var(--border-glass);
    box-shadow: 0 -18px 48px rgba(0, 0, 0, 0.30);
  }

  .rail-brand,
  .rail-section-label,
  .rail-icon-button,
  .theme-toggle,
  .rail-user {
    display: none;
  }

  .rail-nav {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .rail-link {
    min-width: 58px;
    min-height: 56px;
    flex: 0 0 58px;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 0 6px;
    border-radius: 18px;
  }

  .rail-link i {
    width: auto;
    flex-basis: auto;
    font-size: 1.25rem;
  }

  .rail-link span {
    max-width: 54px;
    font-size: 0.62rem;
    line-height: 1.1;
  }

  .rail-actions {
    width: auto;
    margin-top: 0;
    padding: 0;
    border: 0;
    display: flex;
    flex: 0 0 auto;
  }

  .rail-create {
    width: 56px;
    min-width: 56px;
    min-height: 56px;
    padding: 0;
    border-radius: 18px;
  }

  .rail-create span {
    display: none;
  }

  body.has-navigation-rail .app-main,
  body.has-navigation-rail .app-footer,
  body.has-navigation-rail .app-message-stack {
    margin-left: 0;
    width: 100%;
  }

  .app-main > .container-fluid {
    max-width: 100%;
  }
}

/* ============================================================
   LIQUID FINANCE SPRINT 2 SCREENS
   Dashboard, transactions feed and transaction entry form.
   ============================================================ */

.lf-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border-subtle);
}

.lf-breadcrumb {
  display: inline-flex;
  margin-bottom: 6px;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: 650;
  text-transform: uppercase;
}

.lf-head-actions,
.lf-hero-actions,
.lf-form-actions,
.lf-filter-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.lf-account-filter {
  width: min(280px, 100%);
}

.lf-filter-note {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px 14px;
  border: 1px solid rgba(var(--info-rgb), 0.22);
  border-radius: var(--radius-lg);
  background: rgba(var(--info-rgb), 0.10);
  color: var(--tx-primary);
}

.lf-filter-note .btn {
  margin-left: auto;
}

.lf-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  gap: 16px;
  align-items: start;
}

.lf-balance-hero,
.lf-activity-card,
.lf-health-card,
.lf-metric-card,
.lf-flow-card,
.lf-filter-shell,
.lf-transaction-feed,
.lf-entry-card,
.lf-smart-panel {
  background: var(--bg-glass);
  border: 1px solid var(--border-glass);
  border-radius: 8px;
  box-shadow: var(--sh-card);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
}

.lf-balance-hero {
  min-height: 312px;
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 2.5vw, 26px);
  overflow: hidden;
  position: relative;
}

.lf-balance-hero::after {
  content: "";
  position: absolute;
  right: -12%;
  top: -34%;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--ac-rgb), 0.16), transparent 64%);
  pointer-events: none;
}

.lf-card-kicker {
  display: block;
  color: var(--tx-tertiary);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.lf-balance-value {
  position: relative;
  z-index: 1;
  margin-top: 10px;
  color: var(--tx-primary);
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 5vw, 4.25rem);
  line-height: 1.02;
  font-variant-numeric: tabular-nums;
}

.lf-balance-meta {
  position: relative;
  z-index: 1;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 7px 11px;
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 650;
}

.lf-balance-meta.positive {
  background: rgba(var(--green-rgb), 0.12);
  color: var(--green);
}

.lf-balance-meta.negative {
  background: rgba(var(--red-rgb), 0.12);
  color: var(--red);
}

.lf-sparkline-wrap {
  position: relative;
  z-index: 1;
  height: 58px;
  margin: 16px 0 12px;
}

.lf-hero-actions {
  position: relative;
  z-index: 1;
}

.lf-hero-actions .btn {
  min-height: 44px !important;
}

.lf-side-column {
  display: grid;
  gap: 14px;
}

.lf-activity-card,
.lf-health-card,
.lf-flow-card {
  padding: 16px;
}

.lf-activity-card {
  min-height: 0;
}

.lf-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  color: var(--tx-primary);
  font-weight: 750;
}

.lf-section-title a {
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: 650;
}

.lf-activity-list {
  display: grid;
  gap: 8px;
}

.lf-activity-item {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.lf-activity-icon,
.lf-transaction-mark,
.lf-metric-icon,
.lf-smart-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
}

.lf-activity-icon {
  width: 36px;
  height: 36px;
  background: color-mix(in srgb, var(--category-color, var(--ac)) 20%, transparent);
  color: var(--category-color, var(--ac));
}

.lf-activity-main {
  min-width: 0;
}

.lf-activity-main strong,
.lf-transaction-copy strong {
  display: block;
  overflow: hidden;
  color: var(--tx-primary);
  font-size: var(--fs-sm);
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lf-activity-main small,
.lf-transaction-copy span {
  display: block;
  overflow: hidden;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lf-activity-value,
.lf-transaction-value,
.lf-transaction-summary strong,
.lf-metric-card strong {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.lf-activity-value {
  font-size: var(--fs-xs);
  font-weight: 750;
  white-space: nowrap;
}

.lf-activity-value.receita,
.lf-transaction-value.receita,
.lf-metric-card .success,
.lf-transaction-summary .success {
  color: var(--green);
}

.lf-activity-value.despesa,
.lf-transaction-value.despesa,
.lf-metric-card .danger,
.lf-transaction-summary .danger {
  color: var(--red);
}

.lf-metric-card .amber {
  color: var(--amber);
}

.lf-score-row {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.lf-score-ring {
  width: 86px;
  height: 86px;
  transform: rotate(-90deg);
}

.lf-score-ring circle {
  fill: none;
  stroke-width: 11;
  stroke-linecap: round;
}

.lf-score-ring .track {
  stroke: var(--border-subtle);
}

.lf-score-ring .progress {
  stroke: var(--green);
}

.lf-score-ring .progress.warning {
  stroke: var(--amber);
}

.lf-score-ring .progress.danger {
  stroke: var(--red);
}

.lf-score-row strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 400;
  line-height: 1;
}

.lf-score-row span {
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
}

.lf-ai-badge {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid rgba(var(--ac-rgb), 0.22);
  border-radius: var(--radius-md);
  background: rgba(var(--ac-rgb), 0.10);
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
  line-height: 1.45;
}

.lf-ai-badge i {
  color: var(--ac);
}

.lf-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}

.lf-metric-card {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 78px;
  padding: 14px 16px;
}

.lf-metric-icon {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  background: rgba(var(--ac-rgb), 0.12);
  color: var(--ac);
}

.lf-metric-icon.success {
  background: rgba(var(--green-rgb), 0.12);
  color: var(--green);
}

.lf-metric-icon.danger {
  background: rgba(var(--red-rgb), 0.12);
  color: var(--red);
}

.lf-metric-icon.amber {
  background: rgba(var(--amber-rgb), 0.13);
  color: var(--amber);
}

.lf-metric-card strong {
  display: block;
  margin-top: 4px;
  font-size: clamp(1rem, 1.5vw, 1.25rem);
  font-weight: 800;
}

.lf-flow-card {
  margin-top: 16px;
}

.lf-chart-legend {
  display: inline-flex;
  gap: 14px;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
}

.lf-chart-legend .success {
  color: var(--green);
}

.lf-chart-legend .danger {
  color: var(--red);
}

.lf-flow-chart {
  height: 310px;
}

.lf-empty-compact,
.lf-empty-state {
  display: grid;
  place-items: center;
  gap: 10px;
  color: var(--tx-secondary);
  text-align: center;
}

.lf-empty-compact {
  min-height: 140px;
  font-size: var(--fs-sm);
}

.lf-empty-compact i,
.lf-empty-state i {
  color: var(--tx-tertiary);
  font-size: 1.6rem;
}

.lf-filter-shell {
  margin-bottom: 16px;
  padding: 10px;
}

.lf-filter-drawer summary {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  list-style: none;
  cursor: pointer;
}

.lf-filter-drawer summary::-webkit-details-marker {
  display: none;
}

.lf-filter-chip,
.lf-filter-active {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 12px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-glass);
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
  font-weight: 650;
}

.lf-filter-active {
  background: rgba(var(--ac-rgb), 0.13);
  color: var(--ac);
  border-color: rgba(var(--ac-rgb), 0.24);
}

.lf-filter-form {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border-subtle);
}

.lf-filter-field,
.lf-form-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.lf-filter-field label,
.lf-form-field label {
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.lf-filter-field :is(input, select),
.lf-form-field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-md);
  background: var(--inp-bg);
  color: var(--tx-primary);
  font-family: var(--font-ui);
}

.lf-form-field textarea {
  min-height: 112px;
  padding-top: 14px !important;
}

.lf-filter-actions {
  align-self: end;
  grid-column: span 2;
}

.lf-transaction-summary {
  position: sticky;
  top: 12px;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.lf-transaction-summary article {
  padding: 16px 18px;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--bg-glass) 86%, transparent);
  backdrop-filter: blur(16px) saturate(180%);
}

.lf-transaction-summary span {
  display: block;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
}

.lf-transaction-summary strong {
  display: block;
  margin-top: 6px;
  font-size: 1.25rem;
}

.lf-transaction-feed {
  padding: 18px;
}

.lf-date-group + .lf-date-group {
  margin-top: 26px;
}

.lf-date-group h2 {
  margin: 0 0 10px;
  color: var(--tx-secondary);
  font-family: var(--font-ui);
  font-size: var(--fs-sm);
  font-weight: 750;
}

.lf-date-list {
  display: grid;
  gap: 8px;
}

.lf-transaction-row {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) minmax(126px, auto) 96px;
  align-items: center;
  gap: 14px;
  min-height: 66px;
  padding: 10px 12px;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  border-left: 4px solid var(--category-color, var(--ac));
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.025);
  transition: border-color var(--transition-base), background var(--transition-base), transform var(--transition-base);
}

.lf-transaction-row:hover {
  background: rgba(255, 255, 255, 0.055);
  border-color: rgba(255, 255, 255, 0.13);
  transform: translateY(-1px);
}

.lf-transaction-mark {
  width: 44px;
  height: 44px;
  background: color-mix(in srgb, var(--category-color, var(--ac)) 18%, transparent);
  color: var(--category-color, var(--ac));
}

.lf-transaction-value {
  justify-self: end;
  font-size: var(--fs-sm);
  font-weight: 800;
  white-space: nowrap;
}

.lf-row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  opacity: 0;
  transform: translateX(10px);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.lf-transaction-row:hover .lf-row-actions,
.lf-transaction-row:focus-within .lf-row-actions {
  opacity: 1;
  transform: translateX(0);
}

.lf-row-actions form {
  margin: 0;
}

.lf-status-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: var(--radius-full);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
}

.lf-status-badge.pending {
  background: rgba(var(--amber-rgb), 0.15);
  color: var(--amber);
  animation: statusPulse 1.6s ease-in-out infinite;
}

.lf-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 22px;
}

.lf-pagination span {
  color: var(--tx-secondary);
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
}

.lf-entry-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(300px, 2fr);
  gap: 20px;
  align-items: start;
}

.lf-entry-card {
  display: grid;
  gap: 24px;
  padding: clamp(20px, 3vw, 32px);
}

.lf-entry-type {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: var(--radius-full);
  font-size: var(--fs-sm);
  font-weight: 750;
}

.lf-entry-type.despesa {
  background: rgba(var(--red-rgb), 0.13);
  color: var(--red);
}

.lf-entry-type.receita {
  background: rgba(var(--green-rgb), 0.13);
  color: var(--green);
}

.lf-form-section {
  display: grid;
  gap: 16px;
}

.lf-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.lf-form-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lf-form-grid.three {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}

.lf-form-field.full {
  grid-column: 1 / -1;
}

.lf-form-field.compact select {
  min-height: 44px;
}

.lf-money-field {
  position: relative;
}

.lf-money-field > span {
  position: absolute;
  left: 14px;
  top: 34px;
  color: var(--tx-tertiary);
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  pointer-events: none;
}

.lf-money-field input {
  padding-left: 42px !important;
  font-family: var(--font-mono) !important;
}

.lf-segmented {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 4px;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.035);
}

.lf-segmented label {
  min-width: 0;
}

.lf-segmented input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.lf-segmented span {
  min-height: 40px;
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border-radius: 10px;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: 700;
  cursor: pointer;
}

.lf-segmented input:checked + span {
  background: rgba(var(--ac-rgb), 0.18);
  color: var(--tx-primary);
}

.lf-advanced {
  border-top: 1px solid var(--border-subtle);
  padding-top: 4px;
}

.lf-advanced summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  list-style: none;
  color: var(--tx-secondary);
  cursor: pointer;
  font-weight: 700;
}

.lf-advanced summary::-webkit-details-marker {
  display: none;
}

.lf-advanced[open] {
  display: grid;
  gap: 16px;
}

.lf-check-row {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.035);
}

.lf-check-row input {
  width: 18px;
  height: 18px;
  accent-color: var(--ac);
}

.lf-checkbox-list ul {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.lf-checkbox-list label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.lf-checkbox-list input {
  accent-color: var(--ac);
}

.lf-form-alert {
  padding: 12px 14px;
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
}

.lf-form-alert.danger,
.lf-field-error {
  background: rgba(var(--red-rgb), 0.12);
  color: var(--red);
}

.lf-field-error {
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  font-size: var(--fs-xs);
}

.lf-form-actions {
  justify-content: flex-end;
  padding-top: 4px;
}

.lf-smart-panel {
  position: sticky;
  top: 24px;
  padding: 22px;
}

.lf-smart-hero {
  display: grid;
  gap: 10px;
  margin-bottom: 18px;
}

.lf-smart-icon {
  width: 48px;
  height: 48px;
  background: rgba(var(--ac-rgb), 0.13);
  color: var(--ac);
  font-size: 1.25rem;
}

.lf-smart-hero h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 400;
}

.lf-smart-hero p {
  margin: 0;
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
  line-height: 1.5;
}

.lf-smart-list {
  display: grid;
  gap: 10px;
}

.lf-smart-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 64px;
  padding: 12px;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.035);
  color: var(--tx-primary);
  text-align: left;
  cursor: pointer;
  transition: background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}

.lf-smart-item:hover {
  border-color: rgba(var(--ac-rgb), 0.28);
  background: rgba(var(--ac-rgb), 0.08);
  transform: translateY(-1px);
}

.lf-smart-item strong {
  display: block;
  font-size: var(--fs-sm);
}

.lf-smart-item small {
  display: block;
  margin-top: 2px;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
}

.lf-smart-item > span:last-child,
.lf-context-list dd {
  color: var(--tx-primary);
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  font-weight: 750;
}

.lf-context-list {
  display: grid;
  gap: 0;
  margin: 0;
}

.lf-context-list div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-subtle);
}

.lf-context-list div:last-child {
  border-bottom: 0;
}

.lf-context-list dt {
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
  font-weight: 600;
}

.lf-context-list dd {
  margin: 0;
  text-align: right;
}

.is-muted {
  opacity: 0.58;
}

@keyframes statusPulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(var(--amber-rgb), 0.18);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(var(--amber-rgb), 0);
  }
}

@media (max-width: 1180px) {
  .lf-dashboard-grid,
  .lf-entry-layout {
    grid-template-columns: 1fr;
  }

  .lf-side-column {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .lf-smart-panel {
    position: static;
  }

  .lf-filter-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .lf-page-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .lf-side-column,
  .lf-metric-grid,
  .lf-transaction-summary,
  .lf-form-grid,
  .lf-form-grid.two,
  .lf-form-grid.three,
  .lf-filter-form {
    grid-template-columns: 1fr;
  }

  .lf-filter-actions {
    grid-column: auto;
  }

  .lf-transaction-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
  }

  .lf-row-actions {
    grid-column: 2 / -1;
    justify-content: flex-start;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 560px) {
  .lf-balance-hero,
  .lf-activity-card,
  .lf-health-card,
  .lf-flow-card,
  .lf-transaction-feed,
  .lf-entry-card,
  .lf-smart-panel {
    border-radius: var(--radius-md);
    padding: 16px;
  }

  .lf-balance-value {
    font-size: 3rem;
  }

  .lf-flow-chart {
    height: 260px;
  }

  .lf-transaction-row {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
  }

  .lf-transaction-mark {
    width: 38px;
    height: 38px;
  }

  .lf-transaction-value {
    grid-column: 2;
    justify-self: start;
  }

  .lf-row-actions {
    grid-column: 1 / -1;
  }

  .lf-segmented {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   LIQUID FINANCE SPRINT 3 SCREENS
   Categories, accounts, credit cards and reports.
   ============================================================ */

.lf-category-section + .lf-category-section {
  margin-top: 34px;
}

.lf-category-section .lf-section-title small {
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
}

.lf-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.lf-category-card,
.lf-bank-card,
.lf-credit-shell,
.lf-report-control,
.lf-report-summary-strip,
.lf-report-metrics article,
.lf-report-chart-card {
  background: var(--bg-glass);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-lg);
  box-shadow: var(--sh-card);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
}

.lf-category-card {
  position: relative;
  min-height: 214px;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 10px;
  padding: 22px 18px 18px;
  overflow: hidden;
  text-align: center;
  transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.lf-category-card:hover,
.lf-bank-card:hover,
.lf-credit-shell:hover,
.lf-report-chart-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.13);
  box-shadow: var(--sh-card-hover);
}

.lf-category-icon {
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 22px;
  background: color-mix(in srgb, var(--category-color, var(--ac)) 18%, transparent);
  color: var(--category-color, var(--ac));
  font-size: 2rem;
}

.lf-category-card h2 {
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: var(--tx-primary);
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lf-category-type,
.lf-status-badge.inactive {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  font-size: var(--fs-xxs);
  font-weight: 800;
}

.lf-category-type.danger {
  background: rgba(var(--red-rgb), 0.13);
  color: var(--red);
}

.lf-category-type.success {
  background: rgba(var(--green-rgb), 0.13);
  color: var(--green);
}

.lf-status-badge.inactive {
  background: rgba(255, 255, 255, 0.08);
  color: var(--tx-tertiary);
}

.lf-usage {
  width: 100%;
  margin-top: auto;
}

.lf-usage-track {
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.07);
}

.lf-usage-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--category-color, var(--ac));
  min-width: 3px;
}

.lf-usage-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  color: var(--tx-secondary);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
}

.lf-usage-meta strong {
  color: var(--tx-primary);
}

.lf-card-actions {
  position: absolute;
  inset: auto 14px 14px auto;
  display: inline-flex;
  gap: 6px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.lf-category-card:hover .lf-card-actions,
.lf-category-card:focus-within .lf-card-actions,
.lf-bank-card:hover .lf-card-actions,
.lf-bank-card:focus-within .lf-card-actions,
.lf-credit-shell:hover .lf-card-actions,
.lf-credit-shell:focus-within .lf-card-actions {
  opacity: 1;
  transform: translateY(0);
}

.lf-card-actions form {
  margin: 0;
}

.lf-bank-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.lf-bank-card {
  position: relative;
  min-height: 260px;
  padding: 24px;
  overflow: hidden;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--account-color, var(--ac)) 18%, transparent), transparent 42%),
    var(--bg-glass);
  transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.lf-bank-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(120deg, rgba(255,255,255,0.22), transparent 30%, color-mix(in srgb, var(--account-color, var(--ac)) 42%, transparent));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.lf-bank-shine {
  position: absolute;
  inset: -80px -90px auto auto;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--account-color, var(--ac)) 28%, transparent), transparent 62%);
}

.lf-bank-top,
.lf-bank-metrics {
  position: relative;
  z-index: 1;
}

.lf-bank-top {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  color: var(--tx-primary);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.lf-bank-type {
  position: relative;
  z-index: 1;
  margin-top: 14px;
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
}

.lf-bank-balance {
  position: relative;
  z-index: 1;
  margin-top: 22px;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 2.6rem);
  line-height: 0.95;
  font-variant-numeric: tabular-nums;
}

.lf-bank-balance.positive {
  color: var(--green);
}

.lf-bank-balance.negative {
  color: var(--red);
}

.lf-bank-label {
  position: relative;
  z-index: 1;
  margin-top: 8px;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
}

.lf-bank-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 28px;
}

.lf-bank-metrics span {
  min-width: 0;
}

.lf-bank-metrics small {
  display: block;
  color: var(--tx-tertiary);
  font-size: 0.65rem;
}

.lf-bank-metrics strong {
  display: block;
  overflow: hidden;
  color: var(--tx-primary);
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lf-vault-empty svg {
  width: min(220px, 74vw);
}

.lf-vault-empty svg :is(rect, circle, path) {
  fill: none;
  stroke: var(--ac);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.lf-credit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.lf-credit-shell {
  position: relative;
  display: grid;
  gap: 18px;
  padding: 20px;
}

.lf-credit-card {
  min-height: 220px;
  perspective: 1000px;
  position: relative;
}

.lf-credit-face {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 24px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--card-color, var(--ac)) 65%, #111118), #101018 72%),
    var(--bg-elevated);
  color: #fff;
  backface-visibility: hidden;
  box-shadow: 0 24px 54px rgba(0, 0, 0, 0.30);
  transform-style: preserve-3d;
  transition: transform 0.6s var(--ease-standard);
}

.lf-credit-face::after {
  content: "";
  position: absolute;
  inset: -40% -20% auto auto;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
}

.lf-credit-front {
  transform: rotateY(0deg);
}

.lf-credit-back {
  transform: rotateY(180deg);
}

.lf-credit-card:hover .lf-credit-front,
.lf-credit-card:focus .lf-credit-front {
  transform: rotateY(180deg);
}

.lf-credit-card:hover .lf-credit-back,
.lf-credit-card:focus .lf-credit-back {
  transform: rotateY(360deg);
}

.lf-credit-top,
.lf-credit-bottom {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.lf-credit-top span {
  font-weight: 800;
}

.lf-credit-number {
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  font-size: clamp(1.2rem, 3vw, 1.65rem);
  letter-spacing: 0.08em !important;
}

.lf-credit-bottom {
  color: rgba(255,255,255,0.72);
  font-size: var(--fs-xs);
  text-transform: uppercase;
}

.lf-credit-strip {
  height: 42px;
  margin: -4px -24px 18px;
  background: rgba(0,0,0,0.42);
}

.lf-credit-back dl {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 10px;
  margin: 0;
}

.lf-credit-back dl div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.lf-credit-back dt {
  color: rgba(255,255,255,0.66);
  font-size: var(--fs-xs);
}

.lf-credit-back dd {
  margin: 0;
  font-family: var(--font-mono);
  font-weight: 800;
}

.lf-credit-usage {
  position: relative;
  display: grid;
  justify-items: center;
  margin-top: 2px;
}

.lf-credit-usage svg {
  width: 150px;
  height: 86px;
}

.lf-credit-usage path {
  fill: none;
  stroke-width: 12;
  stroke-linecap: round;
}

.lf-credit-usage .track {
  stroke: var(--border-subtle);
}

.lf-credit-usage .progress {
  stroke: var(--card-color, var(--ac));
}

.lf-credit-usage strong {
  position: absolute;
  top: 42px;
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 400;
}

.lf-credit-usage span {
  margin-top: -6px;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
}

.lf-credit-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lf-credit-metrics span,
.lf-report-metrics article {
  min-width: 0;
}

.lf-credit-metrics small,
.lf-report-metrics span {
  display: block;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: 750;
  text-transform: uppercase;
}

.lf-credit-metrics strong,
.lf-credit-tx strong,
.lf-report-metrics strong {
  color: var(--tx-primary);
  font-family: var(--font-mono);
  font-size: var(--fs-sm);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.lf-credit-metrics .success,
.lf-report-metrics .success {
  color: var(--green);
}

.lf-credit-metrics .danger,
.lf-report-metrics .danger {
  color: var(--red);
}

.lf-credit-bill {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(var(--amber-rgb), 0.22);
  border-radius: var(--radius-md);
  background: rgba(var(--amber-rgb), 0.10);
  color: var(--amber);
  font-size: var(--fs-sm);
}

.lf-credit-bill small {
  margin-left: auto;
  font-family: var(--font-mono);
}

.lf-credit-recent {
  display: grid;
  gap: 8px;
}

.lf-credit-tx {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid var(--border-subtle);
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
}

.lf-credit-tx:last-child {
  border-bottom: 0;
}

.lf-report-control {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
  padding: 12px;
}

.lf-period-pills {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
}

.lf-period-pills :is(a, span) {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-full);
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
  font-weight: 800;
  text-decoration: none;
}

.lf-period-pills .active {
  background: var(--ac);
  border-color: var(--ac);
  color: var(--tx-on-accent);
}

.lf-report-dates {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.lf-report-dates label {
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.lf-report-dates input {
  width: 150px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-full);
  background: var(--inp-bg);
  color: var(--tx-primary);
}

.lf-report-summary-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 8px;
}

.lf-period-summary {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.lf-period-summary strong {
  color: var(--tx-primary);
  font-family: var(--font-mono);
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}

.lf-summary-chips {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.lf-summary-chips span {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid var(--border-glass);
  border-radius: 8px;
  background: rgba(255, 255, 255, .035);
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: 760;
  line-height: 1.2;
}

.lf-summary-chips i {
  color: var(--ac);
  font-size: .92rem;
}

.lf-summary-chips .insight {
  max-width: min(520px, 100%);
  border-color: rgba(var(--ac-rgb), .22);
  background: rgba(var(--ac-rgb), .1);
  color: var(--tx-primary);
}

.lf-report-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.lf-report-metrics article {
  display: grid;
  align-content: center;
  min-height: 92px;
  padding: 14px 16px;
  border-radius: 8px;
}

.lf-report-metrics article:last-child {
  grid-column: auto;
}

.lf-report-metrics strong {
  display: block;
  margin-top: 7px;
  overflow: visible;
  font-size: 1.18rem;
  line-height: 1.15;
  text-overflow: clip;
  white-space: nowrap;
}

.lf-report-metrics small {
  margin-top: 5px;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
}

.lf-report-charts,
.lf-report-secondary {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.75fr);
  gap: 18px;
}

.lf-report-secondary {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr);
  margin-top: 18px;
}

.lf-report-chart-card {
  padding: 20px;
}

.lf-horizontal-chart {
  height: 420px;
}

.lf-donut-wrap {
  position: relative;
  height: 260px;
}

.lf-donut-center {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  pointer-events: none;
}

.lf-donut-center strong {
  display: block;
  color: var(--tx-primary);
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 400;
}

.lf-donut-center span {
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
}

.lf-chart-legend-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.lf-chart-legend-list div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
}

.lf-chart-legend-list span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.lf-chart-legend-list i {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
}

.lf-evolution-chart {
  height: 300px;
}

.lf-report-top-list {
  display: grid;
  gap: 4px;
}

@media (max-width: 1180px) {
  .lf-category-grid,
  .lf-bank-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lf-credit-grid,
  .lf-report-charts,
  .lf-report-secondary {
    grid-template-columns: 1fr;
  }

  .lf-report-summary-strip {
    align-items: flex-start;
    flex-direction: column;
  }

  .lf-summary-chips {
    justify-content: flex-start;
  }

  .lf-report-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .lf-category-grid,
  .lf-bank-grid,
  .lf-report-metrics,
  .lf-credit-metrics {
    grid-template-columns: 1fr;
  }

  .lf-report-control {
    align-items: stretch;
    flex-direction: column;
  }

  .lf-report-dates {
    align-items: stretch;
  }

  .lf-report-dates input {
    width: 100%;
  }

  .lf-period-summary strong {
    white-space: normal;
  }

  .lf-card-actions {
    position: static;
    justify-content: center;
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 560px) {
  .lf-credit-card {
    min-height: 190px;
  }

  .lf-credit-face {
    padding: 18px;
    border-radius: 20px;
  }

  .lf-horizontal-chart {
    height: 340px;
  }
}

/* ============================================================
   SPRINT 4 - CHAT IA, FATURAS E POLIMENTO FINAL
   ============================================================ */

.lf-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid rgba(var(--ac-rgb), .2);
  border-radius: var(--radius-full);
  background: var(--ac-soft);
  color: var(--ac);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.lf-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  color: var(--tx-tertiary);
  font-size: var(--fs-sm);
}

.lf-breadcrumb a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--tx-secondary);
  font-weight: var(--fw-bold);
}

.lf-breadcrumb a:hover {
  color: var(--ac);
  text-decoration: none;
}

.lf-reveal-card,
.lf-invoice-panel,
.lf-payment-summary,
.lf-payment-form-card {
  animation: lfCardIn 220ms ease-out both;
}

@keyframes lfCardIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.lf-empty-state,
.lf-empty-mini {
  display: grid;
  place-items: center;
  gap: 10px;
  min-height: 280px;
  padding: 28px;
  border: 1px dashed var(--bd-primary);
  border-radius: 8px;
  background: var(--bg-primary);
  color: var(--tx-secondary);
  text-align: center;
}

.lf-empty-state h2 {
  margin: 0;
  color: var(--tx-primary);
  font-size: var(--fs-h2);
}

.lf-empty-state p {
  max-width: 46ch;
  margin: 0;
  color: var(--tx-secondary);
}

.lf-empty-icon {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--ac-soft);
  color: var(--ac);
  font-size: 1.5rem;
}

.lf-empty-mini {
  min-height: 150px;
  padding: 18px;
}

.lf-empty-mini.warning {
  border-color: rgba(var(--amber-rgb), .28);
  background: var(--amber-soft);
  color: var(--amber);
}

/* Faturas */
.lf-invoices-page,
.lf-payment-page {
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 16px 0 28px;
}

.lf-invoices-header {
  margin-bottom: 16px;
}

.lf-invoices-header h1,
.lf-invoice-detail-hero h1,
.lf-payment-summary h1,
body .lf-chat-head h1 {
  margin: 8px 0 6px;
  color: var(--tx-primary);
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: 0;
}

.lf-filter-panel,
.lf-invoice-card,
.lf-invoice-detail-hero,
.lf-invoice-panel,
.lf-payment-summary,
.lf-payment-form-card {
  border: 1px solid var(--bd-primary);
  border-radius: 8px;
  background: var(--bg-primary);
  box-shadow: var(--sh-card);
}

.lf-filter-panel {
  margin-bottom: 18px;
  padding: 14px;
}

.lf-filter-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
}

.lf-filter-grid label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.lf-filter-grid .btn {
  min-width: 140px;
}

.lf-invoice-timeline {
  position: relative;
  display: grid;
  gap: 14px;
  padding-left: 28px;
}

.lf-invoice-timeline::before {
  content: "";
  position: absolute;
  inset: 8px auto 8px 9px;
  width: 2px;
  border-radius: 99px;
  background: var(--bd-primary);
}

.lf-invoice-item {
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
}

.lf-invoice-marker {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  padding-top: 20px;
}

.lf-invoice-marker span {
  width: 14px;
  height: 14px;
  border: 3px solid var(--bg-root);
  border-radius: 50%;
  background: var(--invoice-color, var(--ac));
  box-shadow: 0 0 0 3px rgba(var(--ac-rgb), .14);
}

.lf-invoice-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border-left: 4px solid var(--invoice-color, var(--ac));
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.lf-invoice-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--sh-card-hover);
}

.lf-invoice-main,
.lf-invoice-actions,
.lf-preview-head,
.lf-preview-row,
.lf-invoice-row,
.lf-payment-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.lf-card-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid color-mix(in srgb, var(--invoice-color, var(--ac)) 32%, var(--bd-primary));
  border-radius: var(--radius-full);
  background: color-mix(in srgb, var(--invoice-color, var(--ac)) 12%, var(--bg-primary));
  color: var(--tx-primary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.lf-invoice-main h2 {
  margin: 10px 0 4px;
  color: var(--tx-primary);
  font-size: 1.25rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0;
}

.lf-invoice-main p,
.lf-panel-head p,
.lf-payment-summary p,
body .lf-chat-head p {
  margin: 0;
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
  line-height: 1.5;
}

.lf-invoice-amount {
  min-width: 190px;
  text-align: right;
}

.lf-invoice-amount small,
.lf-payment-total span,
.lf-stat-stack span,
.lf-card-spec span,
.lf-preview-head span {
  display: block;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
}

.lf-invoice-amount strong,
.lf-payment-total strong,
.lf-stat-stack strong {
  display: block;
  margin-top: 4px;
  color: var(--tx-primary);
  font-size: 1.45rem;
  font-weight: 800;
  letter-spacing: 0;
}

.lf-invoice-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 4px 9px;
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.lf-status-paga .lf-invoice-state,
.lf-status-paga .lf-invoice-marker span {
  background: var(--green);
  color: #fff;
}

.lf-status-vencida .lf-invoice-state,
.lf-status-vencida .lf-invoice-marker span {
  background: var(--red);
  color: #fff;
}

.lf-status-aberta .lf-invoice-state,
.lf-status-aberta .lf-invoice-marker span {
  background: var(--amber);
  color: #111;
}

.lf-invoice-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lf-invoice-metrics > div,
.lf-stat-stack > div,
.lf-card-spec > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--bd-subtle);
  border-radius: 8px;
  background: var(--bg-secondary);
}

.lf-invoice-metrics span {
  display: block;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.lf-invoice-metrics strong {
  display: block;
  margin-top: 4px;
  overflow: hidden;
  color: var(--tx-primary);
  font-size: 1rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lf-invoice-preview {
  overflow: hidden;
  border: 1px solid var(--bd-subtle);
  border-radius: 8px;
  background: var(--bg-secondary);
}

.lf-preview-head {
  padding: 10px 12px;
  border-bottom: 1px solid var(--bd-subtle);
}

.lf-preview-head a {
  color: var(--ac);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

.lf-preview-list {
  display: grid;
}

.lf-preview-row {
  min-height: 42px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--bd-subtle);
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
}

.lf-preview-row:last-child {
  border-bottom: 0;
}

.lf-preview-row span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lf-preview-row strong {
  flex: 0 0 auto;
  color: var(--red);
  font-variant-numeric: tabular-nums;
}

.lf-preview-row.muted {
  justify-content: center;
  color: var(--tx-tertiary);
}

.lf-invoice-detail-hero,
.lf-payment-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 16px;
  align-items: stretch;
}

.lf-invoice-detail-hero {
  margin-bottom: 16px;
  padding: 22px;
  border-left: 4px solid var(--invoice-color, var(--ac));
}

.lf-invoice-hero-value,
.lf-payment-total {
  display: grid;
  align-content: center;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--bd-subtle);
  border-radius: 8px;
  background: var(--bg-secondary);
}

.lf-invoice-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 16px;
}

.lf-invoice-panel,
.lf-payment-form-card {
  padding: 16px;
}

.lf-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.lf-panel-head h2 {
  margin: 0;
  color: var(--tx-primary);
  font-size: var(--fs-h2);
}

.lf-invoice-rows,
.lf-stat-stack,
.lf-card-spec,
.lf-account-choice-list {
  display: grid;
  gap: 10px;
}

.lf-invoice-row {
  min-height: 64px;
  padding: 12px;
  border: 1px solid var(--bd-subtle);
  border-radius: 8px;
  background: var(--bg-secondary);
}

.lf-invoice-row strong {
  display: block;
  color: var(--tx-primary);
}

.lf-invoice-row small,
.lf-row-date {
  display: block;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
}

.lf-row-amount {
  color: var(--red) !important;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.lf-card-spec {
  margin-top: 12px;
}

.lf-card-spec strong {
  display: block;
  margin-top: 4px;
  color: var(--tx-primary);
  font-size: var(--fs-sm);
  overflow-wrap: anywhere;
}

/* Pagamento */
.lf-payment-shell {
  grid-template-columns: 360px minmax(0, 1fr);
}

.lf-payment-summary {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 20px;
  border-left: 4px solid var(--invoice-color, var(--ac));
}

.lf-payment-warning {
  display: flex;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(var(--info-rgb), .24);
  border-radius: 8px;
  background: var(--info-soft);
  color: var(--info);
  font-size: var(--fs-sm);
  line-height: 1.45;
}

.lf-payment-form {
  display: grid;
  gap: 16px;
}

.lf-account-choice {
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 64px;
  padding: 12px;
  border: 1px solid var(--bd-primary);
  border-radius: 8px;
  background: var(--bg-secondary);
  cursor: pointer;
  transition: border-color var(--transition-base), background var(--transition-base), transform var(--transition-fast);
}

.lf-account-choice:hover {
  border-color: rgba(var(--ac-rgb), .34);
  transform: translateY(-1px);
}

.lf-account-choice input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.lf-choice-mark {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bd-primary);
  border-radius: 50%;
  color: transparent;
  background: var(--bg-primary);
}

.lf-account-choice:has(input:checked) {
  border-color: var(--ac);
  background: var(--ac-soft);
}

.lf-account-choice:has(input:checked) .lf-choice-mark {
  border-color: var(--ac);
  background: var(--ac);
  color: var(--tx-on-accent);
}

.lf-account-choice strong {
  display: block;
  color: var(--tx-primary);
}

.lf-account-choice small {
  display: block;
  margin-top: 2px;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
}

/* Chat IA */
@supports selector(body:has(.cw)) {
  body:has(.cw) {
    overflow-y: hidden;
  }

  body:has(.cw) .app-main {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  body:has(.cw) .app-footer {
    display: none !important;
  }
}

body .cw {
  width: min(1240px, 100%);
  max-width: min(1240px, calc(100vw - 24px));
  min-height: calc(100dvh - 16px);
  height: calc(100dvh - 16px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 236px minmax(0, 1fr);
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 10px;
  padding: 0;
}

body .lf-chat-side,
body .cbar,
body .act,
body .lf-chat-head,
body .msgs,
body .ia {
  min-width: 0;
  border: 1px solid var(--bd-primary);
  border-radius: 8px;
  background: var(--bg-primary);
  box-shadow: var(--sh-card);
}

body .lf-chat-side {
  grid-column: 1;
  grid-row: 1;
  display: grid;
  gap: 8px;
  align-content: start;
  min-height: 96px;
  padding: 10px;
}

body .lf-chat-brand {
  display: flex;
  align-items: center;
  gap: 10px;
}

body .lf-chat-logo {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--ac);
  color: var(--tx-on-accent);
  font-family: var(--font-display);
  font-weight: 700;
}

body .lf-chat-brand strong,
body .lf-chat-brand small {
  display: block;
}

body .lf-chat-brand small,
body .lf-context-label {
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

body .cbar {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 64px;
  padding: 10px;
  border-bottom: 1px solid var(--bd-primary);
  font-size: var(--fs-sm);
  line-height: 1.45;
}

body .cbar-dot {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--green);
  flex: 0 0 10px;
}

body .cbar-dot.neg {
  background: var(--red);
}

body .cbar .c-val {
  color: var(--tx-primary);
  font-weight: var(--fw-bold);
}

body .cbar .c-val.up { color: var(--green); }
body .cbar .c-val.down { color: var(--red); }

body .cbar-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

body .cbar-copy strong {
  color: var(--tx-primary);
  font-size: var(--fs-sm);
  line-height: 1.35;
}

body .cbar-copy small {
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
}

body .cbar-actions {
  margin-left: auto;
}

body .cbar-actions button,
body .ba,
body .bs {
  min-width: 40px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: transform var(--transition-fast), border-color var(--transition-base), background var(--transition-base);
}

body .cbar-actions button {
  border: 1px solid var(--bd-primary);
  background: var(--bg-secondary);
  color: var(--tx-secondary);
}

body .cbar-actions button:hover {
  border-color: var(--ac);
  background: var(--ac-soft);
  color: var(--ac);
}

body .act {
  grid-column: 1;
  grid-row: 3;
  align-self: start;
  max-height: 176px;
  min-height: 0;
  padding: 12px;
  overflow: auto;
}

body .act-hdr {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-align: left;
  text-transform: uppercase;
}

body .act-items {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

body .act-chip {
  width: 100%;
  justify-content: space-between;
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid var(--bd-subtle);
  border-radius: 8px;
  background: var(--bg-secondary);
  box-shadow: none;
  color: var(--tx-secondary);
}

body .lf-chat-head {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-height: 94px;
  padding: 12px 14px;
}

body .lf-chat-head h1 {
  margin: 6px 0 5px;
  font-size: clamp(1.45rem, 2.1vw, 1.8rem);
}

body .lf-live-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(var(--green-rgb), .22);
  border-radius: var(--radius-full);
  background: var(--green-soft);
  color: var(--green);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

body .msgs {
  grid-column: 2;
  grid-row: 2 / 4;
  gap: 10px;
  min-height: 0;
  padding: 14px 14px 28px;
  overflow-y: auto;
  scroll-padding-bottom: 28px;
}

body .msg {
  max-width: min(820px, 94%);
}

body .msg.ai {
  max-width: min(860px, 96%);
}

body .msg.user {
  max-width: min(680px, 78%);
}

body .av {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  font-size: var(--fs-xs);
}

body .bu {
  border-radius: 8px;
  padding: 12px 14px;
  font-size: var(--fs-body);
}

body .msg.user .bu {
  border-bottom-right-radius: 8px;
  background: var(--ac);
}

body .msg.ai .bu {
  border-bottom-left-radius: 8px;
}

body .ia {
  grid-column: 2;
  grid-row: 4;
  padding: 9px;
  border-top: 1px solid var(--bd-primary);
}

body .sr {
  display: flex;
  gap: 8px;
  padding-bottom: 7px;
  overflow-x: auto;
}

body .sc {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-full);
  background: var(--bg-secondary);
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

body .sc:hover {
  border-color: var(--ac);
  background: var(--ac-soft);
  color: var(--ac);
}

body .ir {
  align-items: flex-end;
}

body .ib {
  min-height: 46px;
  border-radius: 8px;
  background: var(--bg-secondary);
}

body #mi {
  min-height: 44px;
  padding: 11px 48px 11px 14px;
}

body .ba {
  right: 6px;
  bottom: 4px;
  border: 1px solid transparent;
  background: transparent;
}

body .ba:hover {
  border-color: var(--bd-primary);
  background: var(--bg-primary);
}

body .bs {
  width: 46px;
  height: 46px;
  border: 1px solid var(--ac);
  background: var(--ac);
  color: var(--tx-on-accent);
  box-shadow: none;
}

body .bs:hover:not(:disabled),
body .ba:hover {
  transform: translateY(-1px);
}

body .bs:disabled {
  border-color: var(--bd-primary);
  background: var(--bg-secondary);
  color: var(--tx-tertiary);
}

body .tc {
  border-radius: 8px;
  background: var(--bg-secondary);
}

body .lf-welcome-card {
  width: min(760px, 100%);
  max-width: 760px;
  padding: 12px;
  text-align: left;
}

body .lf-welcome-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

body .lf-welcome-title strong {
  color: var(--tx-primary);
  font-size: 1rem;
}

body .lf-health-pill,
body .lf-welcome-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 8px;
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-full);
  background: var(--bg-secondary);
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

body .lf-welcome-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(112px, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

body .lf-welcome-grid div {
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--bd-subtle);
  border-radius: 8px;
  background: var(--bg-secondary);
}

body .lf-welcome-grid span {
  display: block;
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

body .lf-welcome-grid strong {
  display: block;
  margin-top: 4px;
  overflow: visible;
  color: var(--tx-primary);
  font-size: .92rem;
  font-variant-numeric: tabular-nums;
  text-overflow: clip;
  white-space: nowrap;
}

body .lf-welcome-grid strong.up { color: var(--green); }
body .lf-welcome-grid strong.down { color: var(--red); }

body .lf-welcome-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}

body .lf-welcome-note,
body .lf-welcome-prompt {
  margin: 8px 0 0;
  color: var(--tx-secondary);
  font-size: var(--fs-sm);
}

body .lf-welcome-prompt {
  color: var(--tx-tertiary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
}

body .lf-welcome-card .wx {
  display: flex;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}

body .lf-welcome-card .wx span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--bd-primary);
  border-radius: var(--radius-full);
  background: var(--bg-secondary);
  color: var(--tx-secondary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
}

body .lf-welcome-card .wx span:hover {
  border-color: var(--ac);
  background: var(--ac-soft);
  color: var(--ac);
}

body .tc-a button,
body .ma button {
  min-height: 34px;
  border-radius: 8px;
}

body .mo.on {
  backdrop-filter: blur(6px);
}

body .mb {
  border-radius: 8px;
}

@media (max-width: 1080px) {
  .lf-invoice-detail-hero,
  .lf-invoice-detail-grid,
  .lf-payment-shell {
    grid-template-columns: 1fr;
  }

  body .cw {
    height: auto;
    min-height: calc(100dvh - 112px);
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto minmax(420px, 1fr) auto;
  }

  body .lf-chat-side,
  body .cbar,
  body .act,
  body .lf-chat-head,
  body .msgs,
  body .ia {
    grid-column: 1;
  }

  body .lf-chat-side { grid-row: 1; }
  body .cbar { grid-row: 2; min-height: auto; }
  body .act { grid-row: 3; max-height: 220px; }
  body .lf-chat-head { grid-row: 4; }
  body .msgs { grid-row: 5; min-height: 420px; }
  body .ia { grid-row: 6; }
}

@media (max-width: 760px) {
  .lf-filter-grid,
  .lf-invoice-metrics {
    grid-template-columns: 1fr;
  }

  .lf-filter-grid .btn,
  .lf-invoice-actions .btn,
  .lf-payment-actions .btn {
    width: 100%;
  }

  .lf-invoice-timeline {
    padding-left: 0;
  }

  .lf-invoice-timeline::before,
  .lf-invoice-marker {
    display: none;
  }

  .lf-invoice-item {
    grid-template-columns: 1fr;
  }

  .lf-invoice-main,
  .lf-invoice-actions,
  .lf-preview-row,
  .lf-invoice-row,
  .lf-payment-actions,
  body .lf-chat-head {
    align-items: stretch;
    flex-direction: column;
  }

  .lf-invoice-amount,
  .lf-row-amount {
    text-align: left;
  }

  body .cw {
    max-width: calc(100vw - 20px);
    padding: 10px 0 18px;
  }

  body .msg,
  body .msg.user {
    max-width: 100%;
  }

  body .lf-welcome-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .lf-reveal-card,
  .lf-invoice-panel,
  .lf-payment-summary,
  .lf-payment-form-card,
  body .msg {
    animation: none !important;
  }
}

/* Sidebar polish: controlled popovers, no browser-native tooltip layer. */
.rail-user .rail-user-menu,
.rail-user .rail-user-menu[data-bs-popper] {
  position: fixed !important;
  top: auto !important;
  right: auto !important;
  bottom: 12px !important;
  left: calc(var(--rail-width) + 12px) !important;
  z-index: 1300;
  width: min(232px, calc(100vw - var(--rail-width) - 24px));
  min-width: 220px;
  max-height: min(520px, calc(100dvh - 24px));
  overflow-y: auto;
  transform: none !important;
  border-radius: 8px;
}

@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
  html.rail-collapsed .rail-link[aria-label],
  html.rail-collapsed .rail-create[aria-label],
  html.rail-collapsed .rail-icon-button[aria-label] {
    position: relative;
  }

  html.rail-collapsed .rail-link[aria-label]::after,
  html.rail-collapsed .rail-create[aria-label]::after,
  html.rail-collapsed .rail-icon-button[aria-label]::after {
    content: attr(aria-label);
    position: absolute;
    top: 50%;
    left: calc(100% + 10px);
    z-index: 1240;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    border: 1px solid var(--border-glass);
    border-radius: 8px;
    background: var(--bg-elevated);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
    color: var(--tx-primary);
    font-size: var(--fs-xs);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%) translateX(-4px);
    transition: opacity var(--transition-fast), transform var(--transition-fast);
  }

  html.rail-collapsed .rail-link[aria-label]:hover::after,
  html.rail-collapsed .rail-link[aria-label]:focus-visible::after,
  html.rail-collapsed .rail-create[aria-label]:hover::after,
  html.rail-collapsed .rail-create[aria-label]:focus-visible::after,
  html.rail-collapsed .rail-icon-button[aria-label]:hover::after,
  html.rail-collapsed .rail-icon-button[aria-label]:focus-visible::after {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
  }
}

/* Premium sidebar shell */
@media (min-width: 768px) {
  .app-rail {
    isolation: isolate;
    overflow: visible;
    gap: 8px;
    padding: 14px 12px;
    background:
      linear-gradient(180deg, rgba(56, 189, 248, .075), rgba(16, 185, 129, .035) 42%, transparent 86%),
      var(--bg-root);
    border-right: 1px solid rgba(148, 163, 184, .16);
    box-shadow: 18px 0 60px rgba(0, 0, 0, .24);
  }

  .app-rail::before {
    content: "";
    position: absolute;
    inset: 0 0 0 auto;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(56, 189, 248, .42), rgba(16, 185, 129, .24), transparent);
    pointer-events: none;
  }

  .rail-brand {
    grid-template-columns: minmax(0, 1fr) 36px;
    gap: 8px;
    align-items: center;
  }

  .rail-brand a {
    min-height: 58px;
    gap: 10px;
    padding: 8px;
    border-radius: 8px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-glass);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .045);
  }

  .rail-brand a:hover {
    background: var(--surface-hover);
    border-color: rgba(56, 189, 248, .28);
  }

  .rail-monogram {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(10, 18, 24, .88);
    overflow: hidden;
    box-shadow: 0 12px 26px rgba(56, 189, 248, .18);
    animation: none;
  }

  .rail-monogram img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
  }

  .rail-brand strong {
    color: var(--tx-primary);
    font-size: .98rem;
    font-weight: 800;
  }

  .rail-brand small {
    color: var(--tx-secondary);
    font-size: .74rem;
  }

  .rail-collapse-toggle {
    width: 36px;
    height: 36px;
    min-height: 36px;
    border-radius: 8px;
    background: var(--bg-secondary);
    border-color: var(--border-glass);
    box-shadow: none;
  }

  .rail-collapse-toggle:hover {
    background: var(--surface-hover);
    border-color: rgba(56, 189, 248, .32);
    color: var(--tx-primary);
  }

  .rail-nav {
    flex: 1 1 auto;
    min-height: 0;
    align-content: start;
    gap: 1px;
    padding: 0 2px 6px;
    overflow-y: auto;
    overflow-x: visible;
  }

  .rail-section-label {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 16px;
    padding: 5px 10px 1px;
    color: var(--tx-tertiary);
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .08em;
  }

  .rail-section-label::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: rgba(56, 189, 248, .72);
    box-shadow: 0 0 10px rgba(56, 189, 248, .35);
  }

  .rail-link {
    --rail-tone-rgb: 56, 189, 248;
    position: relative;
    min-height: 41px;
    gap: 9px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    color: var(--tx-secondary);
    background: transparent;
    box-shadow: none;
  }

  .rail-link[data-rail-tone="green"] { --rail-tone-rgb: 16, 185, 129; }
  .rail-link[data-rail-tone="amber"] { --rail-tone-rgb: 245, 158, 11; }
  .rail-link[data-rail-tone="cyan"] { --rail-tone-rgb: 34, 211, 238; }
  .rail-link[data-rail-tone="violet"] { --rail-tone-rgb: 124, 111, 255; }
  .rail-link[data-rail-tone="rose"] { --rail-tone-rgb: 244, 63, 94; }
  .rail-link[data-rail-tone="gold"] { --rail-tone-rgb: 250, 204, 21; }

  .rail-link i {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(var(--rail-tone-rgb), .10);
    color: rgba(var(--rail-tone-rgb), .88);
    font-size: 1rem;
  }

  .rail-link span {
    color: inherit;
    font-size: .84rem;
    font-weight: 720;
  }

  .rail-link:hover {
    color: var(--tx-primary);
    background: var(--surface-hover);
    border-color: rgba(var(--ac-rgb), .18);
    transform: translateX(1px);
  }

  .rail-link:hover i {
    background: rgba(var(--rail-tone-rgb), .16);
    color: rgb(var(--rail-tone-rgb));
  }

  .rail-link.active {
    color: var(--tx-primary);
    background: linear-gradient(90deg, rgba(var(--rail-tone-rgb), .18), rgba(var(--rail-tone-rgb), .065));
    border-color: rgba(var(--rail-tone-rgb), .30);
  }

  .rail-link.active::before {
    content: "";
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: -10px;
    width: 3px;
    border-radius: 999px;
    background: rgb(var(--rail-tone-rgb));
    box-shadow: 0 0 14px rgba(var(--rail-tone-rgb), .50);
  }

  .rail-link.active i {
    background: rgba(var(--rail-tone-rgb), .22);
    color: rgb(var(--rail-tone-rgb));
  }

  .rail-actions {
    flex: 0 0 auto;
    gap: 7px;
    padding-top: 8px;
    border-top: 1px solid rgba(148, 163, 184, .12);
  }

  .rail-create {
    min-height: 42px;
    border-radius: 8px;
    background: linear-gradient(135deg, #38bdf8, #10b981);
    border-color: transparent;
    color: #03131a;
    box-shadow: 0 14px 30px rgba(56, 189, 248, .18);
  }

  .rail-create i {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: rgba(3, 19, 26, .12);
  }

  .rail-create:hover {
    filter: none;
    transform: translateY(-1px);
    box-shadow: 0 18px 36px rgba(16, 185, 129, .20);
  }

  .theme-toggle,
  .rail-avatar,
  .rail-icon-button {
    min-height: 38px;
    border-radius: 8px;
    background: var(--bg-secondary);
    border-color: var(--border-glass);
    color: var(--tx-secondary);
  }

  .theme-toggle:hover,
  .rail-avatar:hover,
  .rail-icon-button:hover {
    background: var(--surface-hover);
    border-color: rgba(56, 189, 248, .24);
    color: var(--tx-primary);
  }

  .rail-avatar {
    justify-content: flex-start;
    gap: 9px;
    padding: 0 10px;
  }

  .rail-avatar-icon {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(56, 189, 248, .10);
    color: #7dd3fc;
  }

  .rail-avatar-text {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    color: var(--tx-primary);
    font-size: .78rem;
    font-weight: 720;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .rail-avatar-chevron {
    flex: 0 0 auto;
    color: var(--tx-tertiary);
    font-size: .72rem;
  }

  html.rail-collapsed .app-rail {
    padding: 14px 10px;
  }

  html.rail-collapsed .rail-brand {
    grid-template-columns: 1fr;
  }

  html.rail-collapsed .rail-brand a {
    width: 54px;
    min-height: 54px;
    margin-inline: auto;
    justify-content: center;
    padding: 7px;
    border-radius: 14px;
  }

  html.rail-collapsed .rail-brand a > span:not(.rail-monogram) {
    display: none;
  }

  html.rail-collapsed .rail-brand a .rail-monogram {
    display: inline-flex;
  }

  html.rail-collapsed .rail-collapse-toggle {
    top: 28px;
    left: 58px;
    width: 28px;
    height: 28px;
    min-height: 28px;
    border-radius: 9px;
    background: var(--bg-elevated);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
  }

  html.rail-collapsed .rail-section-label {
    width: 32px;
    min-height: 1px;
    margin: 5px auto 3px;
    padding: 0;
    overflow: hidden;
    color: transparent;
    text-indent: -999px;
    background: rgba(148, 163, 184, .14);
  }

  html.rail-collapsed .rail-section-label::before {
    display: none;
  }

  html.rail-collapsed .rail-link span,
  html.rail-collapsed .rail-create span,
  html.rail-collapsed .rail-icon-button span {
    display: none;
  }

  html.rail-collapsed .rail-nav {
    justify-items: center;
    gap: 2px;
    padding-top: 4px;
  }

  html.rail-collapsed .rail-link,
  html.rail-collapsed .rail-create,
  html.rail-collapsed .rail-icon-button {
    width: 54px;
    min-height: 40px;
    padding: 0;
    border-radius: 12px;
    justify-content: center;
  }

  html.rail-collapsed .rail-link i {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  html.rail-collapsed .rail-link.active::before {
    top: 9px;
    bottom: 9px;
    left: -9px;
  }

  html.rail-collapsed .rail-create {
    min-height: 48px;
    border-radius: 14px;
  }

  html.rail-collapsed .rail-avatar {
    width: 54px;
    min-height: 46px;
    justify-content: center;
    padding: 0;
    border-radius: 14px;
  }

  html.rail-collapsed .rail-avatar-text,
  html.rail-collapsed .rail-avatar-chevron {
    display: none;
  }

  html.rail-collapsed .rail-user .rail-user-menu,
  html.rail-collapsed .rail-user .rail-user-menu[data-bs-popper] {
    left: calc(var(--rail-width-collapsed) + 12px);
  }
}

/* Compact operational page headers */
.lf-page-head {
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
  padding-bottom: 10px !important;
}

.lf-page-head > div:first-child {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.lf-breadcrumb {
  margin-bottom: 0 !important;
  color: rgba(186, 230, 253, .48) !important;
  font-size: .62rem !important;
  font-weight: 780 !important;
  letter-spacing: .06em !important;
  line-height: 1.1 !important;
}

.lf-page-head .page-title {
  margin: 0 !important;
  font-size: clamp(1.55rem, 2.05vw, 2rem) !important;
  line-height: 1 !important;
}

.lf-page-head .page-subtitle {
  max-width: 640px;
  margin: 0 !important;
  color: rgba(203, 213, 225, .55) !important;
  font-size: .78rem !important;
  line-height: 1.25 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 900px) {
  .lf-page-head {
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .lf-page-head .page-subtitle {
    white-space: normal;
  }
}

@media print {
  .app-rail,
  .fab-container,
  footer,
  .theme-toggle { display: none !important; }
  body { background: #fff; color: #000; }
}




