﻿/* ============================================================
   Fontes da marca PRAXXO, hospedadas no proprio projeto.

   Antes daqui, --font-ui e --font-heading declaravam Inter e Space Grotesk
   mas NENHUMA das duas era carregada: nao havia @font-face, nem link, nem
   arquivo em wwwroot. Toda a interface caia num fallback do sistema que
   ninguem escolheu (Segoe UI Variable no Windows, outra coisa em cada SO).

   Sao fontes VARIAVEIS: um arquivo cobre 100..900. Isso importa porque o CSS
   usa pesos intermediarios (650, 750, 850) que uma fonte estatica so
   conseguiria sintetizar - engordando o desenho artificialmente.

   O unicode-range faz o navegador baixar so o subset que a pagina usa: em
   portugues, quase tudo vive no bloco "latin" (71 KB do Inter). O latin-ext
   so desce se aparecer um nome com caractere do leste europeu.

   Sem CDN de proposito: o arquivo vem do mesmo dominio, entra no cache do
   app e nao cria dependencia externa.
   ============================================================ */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Rubik";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("../fonts/rubik-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Rubik";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("../fonts/rubik-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --font-ui: Inter, "Segoe UI Variable Text", "Segoe UI", system-ui, Arial, sans-serif;
  --font-heading: Rubik, Inter, "Segoe UI Variable Display", "Segoe UI", system-ui, Arial, sans-serif;
  /* Paleta Basalto & Turquesa. Os NOMES antigos sao mantidos de proposito:
     a paleta troca sem tocar nas ~28 mil linhas de regra abaixo. */
  --bg: #f1f4f4;
  --surface: #ffffff;
  --surface-muted: #e8eded;
  --brand-blue: #1c2226;
  --brand-blue-strong: #12171a;
  --brand-blue-soft: #e4eaeb;
  --brand-blue-ring: rgba(28, 34, 38, 0.16);
  --brand-orange: #0e7c7b;
  --brand-orange-muted: #35c2be;
  --brand-orange-soft: #d4edec;
  --sidebar: rgba(241, 244, 244, 0.9);
  --sidebar-strong: rgba(255, 255, 255, 0.96);
  --sidebar-soft: rgba(28, 34, 38, 0.075);
  --sidebar-text: #1b2427;
  --sidebar-muted: #64757a;
  --sidebar-link: #2c3a3e;
  --sidebar-disabled: #98a2a5;
  --text: #16211f;
  --muted: #64757a;
  --line: #d3dbdc;
  --accent: var(--brand-blue);
  --accent-strong: var(--brand-blue-strong);
  --accent-soft: var(--brand-blue-soft);
  --accent-warm: var(--brand-orange);
  --accent-warm-muted: var(--brand-orange-muted);
  --accent-warm-soft: var(--brand-orange-soft);
  --success: #2e7d68;
  --success-strong: #205f50;
  --success-soft: #e8f3ef;
  --success-line: #9ccfc1;
  --blue: var(--brand-blue);
  --amber: #b87a0e;
  --danger: #b4453a;
  --brand-gradient-end: var(--brand-orange);
  --breadcrumb-link: var(--accent-strong);
  --breadcrumb-link-hover: var(--accent);
  --breadcrumb-current: var(--text);
  --breadcrumb-separator: var(--muted);
  --shadow: 0 18px 50px rgba(31, 41, 51, 0.08);
  /* Series dos graficos (dashboard BPO). Basalto = entra, turquesa = sai. */
  --chart-vendas: #39464b;
  --chart-compras: var(--brand-orange);
  --sidebar-width: 280px;
  --sidebar-collapsed-width: 86px;
  --desktop-header-height: 74px;
  --context-sidebar-width: 184px;
  --context-sidebar-collapsed-width: 68px;
}

/* Dashboard principal - visao executiva da carteira */
.executive-dashboard-deferred {
  min-width: 0;
}

.executive-dashboard-loading {
  display: grid;
  gap: 18px;
  padding: 28px 0 4px;
}

.executive-dashboard-loading > div:first-child {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 3px 12px;
  color: var(--text);
}

.executive-dashboard-loading-icon {
  display: inline-flex;
  grid-row: 1 / span 2;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(145deg, var(--brand-orange), var(--brand-blue));
  box-shadow: 0 10px 24px rgba(28, 34, 38, 0.2);
}

.executive-dashboard-loading-icon svg {
  width: 21px;
  height: 21px;
}

.executive-dashboard-loading strong {
  font-size: 0.96rem;
  font-weight: 880;
}

.executive-dashboard-loading small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 680;
}

.executive-dashboard {
  display: grid;
  min-width: 0;
  gap: 0;
  padding-top: 26px;
}

@media (min-width: 721px) {
  .content.dashboard-content {
    padding-top: 20px;
  }

  .dashboard-content .executive-dashboard,
  .dashboard-content .executive-dashboard-loading {
    padding-top: 0;
  }
}

.executive-dashboard-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  min-width: 0;
  overflow: hidden;
  padding: 30px 34px;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-radius: 18px;
  background:
    radial-gradient(circle at 85% 10%, color-mix(in srgb, var(--brand-orange-muted) 14%, transparent), transparent 30%),
    radial-gradient(circle at 6% 110%, color-mix(in srgb, var(--brand-orange) 12%, transparent), transparent 35%),
    linear-gradient(115deg, #eef4f2 0%, #fbfcfa 55%, color-mix(in srgb, var(--brand-orange-soft) 58%, #ffffff) 100%);
  box-shadow: 0 18px 44px rgba(16, 24, 40, 0.07);
}

.executive-dashboard-hero::after {
  content: "";
  position: absolute;
  top: -96px;
  right: 7%;
  width: 210px;
  height: 210px;
  border: 1px solid rgba(28, 34, 38, 0.08);
  border-radius: 50%;
  pointer-events: none;
}

.executive-dashboard-hero-copy,
.executive-dashboard-hero-controls {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.executive-dashboard-eyebrow,
.executive-panel-kicker,
.dashboard-section-kicker {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.executive-dashboard-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.executive-dashboard-eyebrow svg {
  width: 17px;
  height: 17px;
}

.executive-dashboard-hero h2 {
  max-width: 780px;
  margin: 10px 0 0;
  color: #0c1933;
  font-size: clamp(1.6rem, 2.4vw, 2.3rem);
  font-weight: 920;
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.executive-dashboard-hero p {
  max-width: 760px;
  margin: 12px 0 0;
  color: #5d6b82;
  font-size: 0.95rem;
  font-weight: 620;
  line-height: 1.55;
}

.executive-dashboard-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 18px;
}

.executive-dashboard-hero-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #33415c;
  font-size: 0.75rem;
  font-weight: 790;
}

.executive-dashboard-hero-meta svg {
  width: 15px;
  height: 15px;
  color: #2039a8;
}

.executive-dashboard-hero-controls {
  display: grid;
  justify-items: end;
  gap: 10px;
}

.executive-dashboard-period-label {
  color: #6b7280;
  font-size: 0.68rem;
  font-weight: 860;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.executive-dashboard-periods {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 7px 20px rgba(15, 23, 42, 0.06);
}

.executive-dashboard-periods a {
  min-width: 72px;
  padding: 8px 11px;
  border-radius: 8px;
  color: #516079;
  font-size: 0.75rem;
  font-weight: 850;
  text-align: center;
  text-decoration: none;
}

.executive-dashboard-periods a:hover,
.executive-dashboard-periods a:focus-visible {
  color: var(--accent);
  background: rgba(28, 34, 38, 0.06);
  outline: none;
}

.executive-dashboard-periods a.is-active {
  color: #fff;
  background: var(--accent);
  box-shadow: 0 6px 14px rgba(28, 34, 38, 0.22);
}

.executive-dashboard-hero-controls .btn-secondary-app {
  min-height: 38px;
  background: rgba(255, 255, 255, 0.8);
}

.executive-dashboard-empty {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

.executive-dashboard-empty > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  color: #233ca8;
  background: #edf1ff;
}

.executive-dashboard-empty > span svg {
  width: 24px;
  height: 24px;
}

.executive-dashboard-empty strong {
  display: block;
  font-size: 1rem;
  font-weight: 900;
}

.executive-dashboard-empty p {
  margin: 5px 0 0;
}

.executive-kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.executive-kpi-card {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: start;
  gap: 13px;
  min-width: 0;
  min-height: 130px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid #dbe2ed;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.055);
}

.executive-kpi-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: #2b4acb;
}

.executive-kpi-card.is-revenue::before,
.executive-kpi-card.is-realization::before {
  background: #14866d;
}

.executive-kpi-card.is-rate::before {
  background: #7c3aed;
}

.executive-kpi-card.is-overdue::before {
  background: #ef5c2f;
}

.executive-kpi-card.is-coverage::before {
  background: #0477a9;
}

.executive-kpi-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  color: #2442b7;
  background: #eef2ff;
}

.is-revenue .executive-kpi-icon,
.is-realization .executive-kpi-icon {
  color: #0e8066;
  background: #e9f7f2;
}

.is-rate .executive-kpi-icon {
  color: #7540c9;
  background: #f2ebff;
}

.is-overdue .executive-kpi-icon {
  color: #d94d24;
  background: #fff0e9;
}

.is-coverage .executive-kpi-icon {
  color: #0477a9;
  background: #e8f6fb;
}

.executive-kpi-icon svg {
  width: 21px;
  height: 21px;
}

.executive-kpi-card > div {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.executive-kpi-card small {
  color: #5f6c80;
  font-size: 0.72rem;
  font-weight: 850;
}

.executive-kpi-card strong {
  overflow: hidden;
  color: #101828;
  font-size: clamp(1.35rem, 1.9vw, 1.8rem);
  font-weight: 920;
  letter-spacing: -0.03em;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.executive-kpi-card > div > span:not(.executive-kpi-progress) {
  color: #667085;
  font-size: 0.72rem;
  font-weight: 680;
  line-height: 1.35;
}

.executive-kpi-progress {
  display: block;
  height: 5px;
  margin-top: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #e9eef2;
}

.executive-kpi-progress > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #159173;
}

.executive-dashboard-confidence {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  padding: 12px 15px;
  border: 1px solid rgba(3, 105, 161, 0.18);
  border-radius: 12px;
  color: #244258;
  background: #f1f9fd;
}

.executive-dashboard-confidence > svg {
  width: 22px;
  height: 22px;
  color: #0477a9;
  justify-self: center;
}

.executive-dashboard-confidence strong,
.executive-dashboard-confidence span {
  display: block;
}

.executive-dashboard-confidence strong {
  font-size: 0.82rem;
  font-weight: 880;
}

.executive-dashboard-confidence span {
  margin-top: 2px;
  color: #587184;
  font-size: 0.73rem;
  font-weight: 650;
  line-height: 1.45;
}

.executive-dashboard-main-grid,
.executive-dashboard-correlation-grid,
.executive-dashboard-insights-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(310px, 0.75fr);
  gap: 16px;
  margin-top: 16px;
}

.executive-dashboard-correlation-grid {
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.75fr);
}

.executive-dashboard-insights-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.executive-panel {
  min-width: 0;
  padding: 22px;
  border-color: #dce3ed;
  border-radius: 14px;
  box-shadow: 0 12px 34px rgba(15, 23, 42, 0.055);
}

.executive-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.executive-panel-heading > div {
  min-width: 0;
}

.executive-panel-heading h3 {
  margin: 5px 0 0;
  color: #152238;
  font-size: 1.16rem;
  font-weight: 900;
  letter-spacing: -0.015em;
}

.executive-panel-heading p {
  max-width: 760px;
  margin: 6px 0 0;
  color: #667085;
  font-size: 0.76rem;
  font-weight: 620;
  line-height: 1.45;
}

.executive-panel-badge {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid rgba(28, 34, 38, 0.13);
  border-radius: 999px;
  color: #263d9f;
  background: #f2f5ff;
  font-size: 0.68rem;
  font-weight: 860;
}

.executive-chart-legend,
.executive-scatter-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px 16px;
  margin-top: 16px;
  color: #536176;
  font-size: 0.7rem;
  font-weight: 760;
}

.executive-chart-legend span,
.executive-scatter-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.executive-chart-legend i,
.executive-scatter-legend i {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 3px;
  background: #2852c8;
}

.executive-chart-legend i.is-honorarium {
  border-radius: 50%;
  background: #ef6335;
}

.executive-chart-legend small {
  margin-left: auto;
  color: #8791a2;
  font-size: 0.65rem;
  font-weight: 680;
}

.executive-chart-scroll,
.executive-scatter-scroll {
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.executive-chart-scroll {
  margin-top: 6px;
}

.executive-evolution-chart {
  display: block;
  height: 300px;
  overflow: visible;
}

.executive-chart-gridline {
  stroke: #e5eaf1;
  stroke-width: 1;
  stroke-dasharray: 4 5;
}

.executive-chart-axis,
.executive-chart-month,
.executive-scatter-axis-title {
  fill: #7b879a;
  font-family: inherit;
  font-size: 10px;
  font-weight: 680;
}

.executive-chart-axis.is-revenue {
  fill: #3650a4;
}

.executive-chart-axis.is-honorarium {
  fill: #c95330;
}

.executive-chart-month {
  fill: #526075;
  font-size: 10.5px;
  font-weight: 760;
}

.executive-evolution-hit {
  fill: transparent;
}

.executive-evolution-bar {
  fill: url(#executiveRevenueGradient);
  fill: #3158c5;
  opacity: 0.88;
}

.executive-evolution-month:hover .executive-evolution-bar {
  fill: #173bb1;
  opacity: 1;
}

.executive-evolution-line {
  fill: none;
  stroke: #ef6335;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
  filter: drop-shadow(0 3px 4px rgba(239, 99, 53, 0.18));
}

.executive-evolution-dot {
  fill: #fff;
  stroke: #ef6335;
  stroke-width: 3;
}

.executive-chart-scroll-hint {
  display: none;
  align-items: center;
  gap: 5px;
  margin: 12px 0 0;
  color: #748096;
  font-size: 0.68rem;
  font-weight: 680;
}

.executive-chart-scroll-hint svg {
  width: 14px;
  height: 14px;
}

.executive-cycle-panel {
  display: flex;
  flex-direction: column;
}

.executive-cycle-gauge {
  display: grid;
  place-items: center;
  width: 154px;
  height: 154px;
  margin: 22px auto 18px;
  border-radius: 50%;
  background: conic-gradient(#159173 0 var(--executive-gauge), #edf1f4 var(--executive-gauge) 100%);
  box-shadow: inset 0 0 0 1px rgba(15, 145, 115, 0.08);
}

.executive-cycle-gauge::before {
  content: "";
  grid-area: 1 / 1;
  width: 116px;
  height: 116px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 7px 22px rgba(15, 23, 42, 0.08);
}

.executive-cycle-gauge > div {
  z-index: 1;
  display: grid;
  grid-area: 1 / 1;
  text-align: center;
}

.executive-cycle-gauge strong {
  color: #132238;
  font-size: 1.65rem;
  font-weight: 920;
}

.executive-cycle-gauge span {
  color: #6b778c;
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.executive-cycle-values {
  display: grid;
  gap: 9px;
}

.executive-cycle-values > span {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.executive-cycle-values i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.executive-cycle-values i.is-received,
.executive-cycle-track .is-received {
  background: #159173;
}

.executive-cycle-values i.is-open,
.executive-cycle-track .is-open {
  background: #d9e0e8;
}

.executive-cycle-values i.is-overdue,
.executive-cycle-track .is-overdue {
  background: #ef6335;
}

.executive-cycle-values small {
  color: #677388;
  font-size: 0.72rem;
  font-weight: 740;
}

.executive-cycle-values strong {
  color: #24334b;
  font-size: 0.78rem;
  font-weight: 880;
}

.executive-cycle-track {
  display: flex;
  height: 9px;
  margin-top: 15px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf1f4;
}

.executive-cycle-track > span {
  height: 100%;
}

.executive-cycle-note {
  margin: 12px 0 0;
  color: #7a8698;
  font-size: 0.66rem;
  font-weight: 650;
  line-height: 1.45;
}

.executive-panel-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 20px;
  color: #1734a1;
  font-size: 0.74rem;
  font-weight: 850;
  text-decoration: none;
}

.executive-panel-link svg {
  width: 15px;
  height: 15px;
}

.executive-scatter-legend i {
  border-radius: 50%;
}

.executive-scatter-legend i.is-balanced,
.executive-scatter-point.is-balanced {
  fill: #3158c5;
  background: #3158c5;
}

.executive-scatter-legend i.is-opportunity,
.executive-scatter-point.is-opportunity {
  fill: #e89a23;
  background: #e89a23;
}

.executive-scatter-legend i.is-review,
.executive-scatter-point.is-review {
  fill: #7c3aed;
  background: #7c3aed;
}

.executive-scatter-legend i.is-overdue,
.executive-scatter-point.is-overdue {
  fill: #e14b35;
  background: #e14b35;
}

.executive-scatter-scroll {
  margin-top: 10px;
}

.executive-scatter-chart {
  display: block;
  width: 100%;
  min-width: 680px;
  height: auto;
}

.executive-scatter-mobile-list {
  display: none;
}

.executive-scatter-mobile-list a {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 10px 0;
  border-bottom: 1px solid #e8ecf2;
  color: inherit;
  text-decoration: none;
}

.executive-scatter-mobile-list a:last-child {
  border-bottom: 0;
}

.executive-scatter-mobile-list a > span:not(.executive-scatter-mobile-status) {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.executive-scatter-mobile-list a > span:last-child {
  justify-items: end;
  text-align: right;
}

.executive-scatter-mobile-list strong {
  overflow: hidden;
  color: #1f2d44;
  font-size: 0.73rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.executive-scatter-mobile-list small {
  color: #718096;
  font-size: 0.62rem;
  font-weight: 650;
  line-height: 1.3;
}

.executive-scatter-mobile-status {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #3158c5;
}

.executive-scatter-mobile-status.is-opportunity {
  background: #e89a23;
}

.executive-scatter-mobile-status.is-review {
  background: #7c3aed;
}

.executive-scatter-mobile-status.is-overdue {
  background: #e14b35;
}

.executive-scatter-median {
  fill: none;
  stroke: #8490a3;
  stroke-width: 1.6;
  stroke-dasharray: 6 5;
  pointer-events: none;
}

.executive-scatter-point {
  stroke: #fff;
  stroke-width: 2;
  opacity: 0.76;
  transition: opacity 130ms ease, stroke-width 130ms ease;
}

.executive-scatter-point:hover,
.executive-scatter-chart a:focus .executive-scatter-point {
  stroke: #101828;
  stroke-width: 3;
  opacity: 1;
  outline: none;
}

.executive-scatter-axis-title {
  fill: #38465c;
  font-size: 10.5px;
  font-weight: 820;
}

.executive-rate-reference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #33415a;
  background: #f3f5fa;
}

.executive-rate-reference span {
  font-size: 0.72rem;
  font-weight: 760;
}

.executive-rate-reference strong {
  color: #162f9f;
  font-size: 0.95rem;
  font-weight: 900;
}

.executive-rate-list,
.executive-concentration-list,
.executive-priority-list {
  display: grid;
  gap: 14px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.executive-rate-list li,
.executive-concentration-list li {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.executive-rate-list li > div,
.executive-concentration-list li > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.executive-rate-list strong,
.executive-concentration-list strong {
  overflow: hidden;
  color: #29374d;
  font-size: 0.74rem;
  font-weight: 840;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.executive-rate-list li > div > span,
.executive-concentration-list li > div > span {
  flex: 0 0 auto;
  color: #172f9f;
  font-size: 0.73rem;
  font-weight: 890;
}

.executive-rate-list small,
.executive-concentration-list small {
  color: #798498;
  font-size: 0.64rem;
  font-weight: 650;
}

.executive-rate-track,
.executive-concentration-track {
  position: relative;
  display: block;
  height: 7px;
  border-radius: 999px;
  background: #edf0f5;
}

.executive-rate-track > span,
.executive-concentration-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3158c5, #6c83dd);
}

.executive-rate-track > i {
  position: absolute;
  top: -3px;
  width: 2px;
  height: 13px;
  border-radius: 2px;
  background: #ef6335;
  transform: translateX(-1px);
}

.executive-concentration-callout {
  display: grid;
  grid-template-columns: 44px auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding: 14px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 12px;
  background: linear-gradient(110deg, #f2f5ff, #fbfcff);
}

.executive-concentration-callout > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  color: #fff;
  background: #1f3fb4;
}

.executive-concentration-callout > span svg {
  width: 20px;
  height: 20px;
}

.executive-concentration-callout strong,
.executive-concentration-callout small {
  display: block;
}

.executive-concentration-callout strong {
  color: #142c97;
  font-size: 1.35rem;
  font-weight: 920;
}

.executive-concentration-callout small {
  max-width: 170px;
  color: #58667a;
  font-size: 0.66rem;
  font-weight: 730;
  line-height: 1.35;
}

.executive-concentration-callout p {
  margin: 0;
  padding-left: 12px;
  border-left: 1px solid rgba(28, 34, 38, 0.12);
  color: #5f6d82;
  font-size: 0.7rem;
  font-weight: 650;
  line-height: 1.42;
}

.executive-concentration-track > span {
  background: linear-gradient(90deg, #159173, #46b49b);
}

.executive-priority-list {
  gap: 9px;
}

.executive-priority-list li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #e2e7ef;
  border-radius: 11px;
  background: #fff;
}

.executive-priority-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  color: #c3412b;
  background: #ffede9;
}

.executive-priority-icon svg {
  width: 18px;
  height: 18px;
}

.executive-priority-list li.is-opportunity .executive-priority-icon {
  color: #a56708;
  background: #fff5dc;
}

.executive-priority-list li.is-review .executive-priority-icon {
  color: #7040ba;
  background: #f2ebff;
}

.executive-priority-list li.is-data .executive-priority-icon {
  color: #08769f;
  background: #e8f6fb;
}

.executive-priority-list li > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.executive-priority-list li > div > span {
  color: #8a5360;
  font-size: 0.61rem;
  font-weight: 890;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.executive-priority-list li.is-opportunity > div > span {
  color: #9c650e;
}

.executive-priority-list li.is-review > div > span {
  color: #7040ba;
}

.executive-priority-list li.is-data > div > span {
  color: #08769f;
}

.executive-priority-list strong {
  overflow: hidden;
  color: #29364a;
  font-size: 0.76rem;
  font-weight: 860;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.executive-priority-list small {
  color: #727e91;
  font-size: 0.65rem;
  font-weight: 640;
  line-height: 1.35;
}

.executive-priority-list li > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  color: #233ca8;
  background: #f0f3ff;
}

.executive-priority-list li > a:hover,
.executive-priority-list li > a:focus-visible {
  color: #fff;
  background: var(--accent);
  outline: none;
}

.executive-priority-list li > a svg {
  width: 15px;
  height: 15px;
}

.executive-method-note {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 13px 0 0;
  color: #778397;
  font-size: 0.65rem;
  font-weight: 630;
  line-height: 1.4;
}

.executive-method-note svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 1px;
}

.dashboard-section-kicker {
  display: block;
  margin-bottom: 4px;
}

.dashboard-kpi-attention {
  border-color: rgba(239, 99, 53, 0.28);
}

.dashboard-kpi-attention strong {
  color: #c84b29;
}

@media (max-width: 1240px) {
  .executive-dashboard-hero {
    grid-template-columns: 1fr;
  }

  .executive-dashboard-hero-controls {
    grid-template-columns: auto auto;
    align-items: center;
    justify-items: start;
  }

  .executive-dashboard-period-label {
    grid-column: 1 / -1;
  }

  .executive-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .executive-dashboard-main-grid,
  .executive-dashboard-correlation-grid {
    grid-template-columns: 1fr;
  }

  .executive-cycle-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 170px minmax(260px, 0.8fr);
    align-items: center;
    gap: 18px;
  }

  .executive-cycle-panel .executive-panel-heading {
    align-self: start;
  }

  .executive-cycle-gauge {
    margin: 0;
  }

  .executive-cycle-panel .executive-panel-link {
    grid-column: 3;
    padding-top: 8px;
  }
}

@media (max-width: 900px) {
  .executive-dashboard-insights-grid {
    grid-template-columns: 1fr;
  }

  .executive-cycle-panel {
    display: flex;
  }

  .executive-cycle-gauge {
    margin: 20px auto 16px;
  }

  .executive-cycle-values {
    width: 100%;
  }

  .executive-cycle-panel .executive-panel-link {
    width: 100%;
  }

  .executive-chart-scroll-hint {
    display: flex;
  }
}

@media (max-width: 720px) {
  html:has(.executive-dashboard) {
    overflow-x: hidden;
  }

  .executive-dashboard-loading {
    padding-top: 14px;
  }

  .executive-dashboard {
    max-width: 100%;
    overflow-x: clip;
    padding-top: 12px;
  }

  .executive-dashboard-hero {
    gap: 20px;
    padding: 21px 18px;
    border-radius: 14px;
  }

  .executive-dashboard-hero h2 {
    font-size: 1.55rem;
  }

  .executive-dashboard-hero p {
    font-size: 0.82rem;
  }

  .executive-dashboard-hero-meta {
    display: grid;
    gap: 7px;
  }

  .executive-dashboard-hero-controls {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .executive-dashboard-period-label {
    grid-column: auto;
  }

  .executive-dashboard-periods {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }

  .executive-dashboard-periods a {
    min-width: 0;
  }

  .executive-dashboard-hero-controls .btn-secondary-app {
    width: 100%;
  }

  .executive-dashboard-empty {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .executive-dashboard-empty > span {
    width: 44px;
    height: 44px;
  }

  .executive-dashboard-empty .btn-primary-app {
    grid-column: 1 / -1;
    width: 100%;
  }

  .executive-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
  }

  .executive-kpi-card {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 9px;
    min-height: 122px;
    padding: 14px 12px;
    border-radius: 12px;
  }

  .executive-kpi-card.is-honorarium,
  .executive-kpi-card.is-revenue {
    grid-column: 1 / -1;
    min-height: 108px;
  }

  .executive-kpi-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }

  .executive-kpi-icon svg {
    width: 18px;
    height: 18px;
  }

  .executive-kpi-card strong {
    font-size: 1.26rem;
  }

  .executive-kpi-card small,
  .executive-kpi-card > div > span:not(.executive-kpi-progress) {
    font-size: 0.65rem;
  }

  .executive-dashboard-confidence {
    grid-template-columns: 28px minmax(0, 1fr);
    margin-top: 10px;
    padding: 11px 12px;
  }

  .executive-dashboard-main-grid,
  .executive-dashboard-correlation-grid,
  .executive-dashboard-insights-grid {
    gap: 10px;
    margin-top: 10px;
  }

  .executive-panel {
    padding: 16px;
    border-radius: 12px;
  }

  .executive-panel-heading {
    flex-direction: column;
    gap: 10px;
  }

  .executive-panel-heading .btn-secondary-app {
    width: 100%;
  }

  .executive-panel-heading h3 {
    font-size: 1.02rem;
  }

  .executive-chart-legend {
    align-items: flex-start;
  }

  .executive-chart-legend small {
    width: 100%;
    margin-left: 0;
  }

  .executive-evolution-chart {
    height: 276px;
    overflow: hidden;
  }

  .executive-evolution-panel {
    overflow: hidden;
  }

  .executive-chart-scroll {
    width: 100%;
    max-width: 100%;
  }

  .executive-scatter-chart {
    min-width: 700px;
  }

  .executive-scatter-legend {
    display: none;
  }

  .executive-scatter-scroll {
    display: none;
  }

  .executive-scatter-mobile-list {
    display: grid;
    margin-top: 8px;
  }

  .executive-concentration-callout {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .executive-concentration-callout > span {
    width: 40px;
    height: 40px;
  }

  .executive-concentration-callout p {
    grid-column: 1 / -1;
    padding: 10px 0 0;
    border-top: 1px solid rgba(28, 34, 38, 0.12);
    border-left: 0;
  }

  .executive-priority-list li {
    grid-template-columns: 34px minmax(0, 1fr) 28px;
    gap: 9px;
    padding: 9px;
  }

  .executive-priority-icon {
    width: 34px;
    height: 34px;
  }
}

.settings-sector-summary .summary-card.warning {
    border-color: color-mix(in srgb, var(--amber) 45%, var(--line));
    background: color-mix(in srgb, #fff7ed 70%, var(--surface));
}

.sector-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
}

.sector-config-chip {
    display: grid;
    gap: 0.15rem;
    min-width: 9rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    color: var(--text);
    background: var(--surface);
    text-decoration: none;
}

.sector-config-chip.active {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 14%, transparent);
}

.sector-config-chip.inactive {
    opacity: 0.62;
}

.sector-config-chip small,
.sector-member-option small {
    color: var(--muted);
}

.sector-members-form {
    display: grid;
    gap: 1rem;
}

.sector-member-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 0.75rem;
}

.sector-member-option {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
    padding: 0.8rem;
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    background: var(--surface);
}

.sector-member-option > span:not(.status-pill) {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
    flex: 1;
}

.sector-member-option strong,
.sector-member-option small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sector-client-table select {
    min-width: 15rem;
}

.task-responsibility-list {
    display: grid;
    gap: 0.45rem;
    min-width: 13rem;
}

.task-responsibility-item {
    display: grid;
    grid-template-columns: minmax(4.75rem, 0.55fr) minmax(0, 1.45fr);
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem;
    border: 1px solid var(--line);
    border-radius: 0.55rem;
    background: var(--surface);
}

.task-responsibility-item.missing {
    border-color: color-mix(in srgb, var(--accent) 28%, var(--line));
    background: color-mix(in srgb, var(--accent-soft) 62%, var(--surface));
}

.service-sector-fieldset {
    gap: 0.55rem;
}

[data-contract-sector-block][hidden] {
    display: none;
}

.service-sector-fieldset > small,
.contract-scope-change small {
    color: var(--muted, #66757f);
}

.service-sector-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.55rem;
    margin-top: 0.25rem;
}

.service-sector-options.compact {
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

.service-sector-option {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 42px;
    padding: 0.65rem 0.75rem;
    border: 1px solid #d8e1e5;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
}

.service-sector-option.is-required {
    background: #f1f8f5;
    border-color: #b9dacf;
    cursor: default;
}

.service-sector-option input {
    flex: 0 0 auto;
}

.field .service-sector-option input[type="checkbox"] {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    min-height: 16px;
    margin: 0;
    padding: 0;
}

.service-sector-option span {
    font-weight: 700;
}

.field .service-sector-option small {
    margin-left: auto;
    color: var(--muted, #66757f);
    font-size: 0.72rem;
    font-weight: 500;
}

.field.service-sector-fieldset > small,
.field .contract-scope-change small {
    color: var(--muted, #66757f);
    font-size: 0.78rem;
    font-weight: 500;
}

.service-sector-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.service-sector-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0.2rem 0.55rem;
    border: 1px solid #cedadd;
    border-radius: 999px;
    background: #f6f9fa;
    color: #34454c;
    font-size: 0.74rem;
    font-weight: 700;
    max-width: 100%;
    line-height: 1.2;
    overflow-wrap: anywhere;
    text-align: left;
    white-space: normal;
}

.service-sector-options[aria-disabled="true"] .service-sector-option:not(.is-required) {
    cursor: not-allowed;
    opacity: 0.62;
}

.service-sector-chip.is-pending {
    border-color: #e6c37a;
    background: #fff7e7;
    color: #895900;
}

.compact-notice {
    margin: 0.35rem 0 0;
    padding: 0.65rem 0.8rem;
}

.contract-scope-change {
    padding: 1rem;
    border: 1px solid #d8e1e5;
    border-radius: 14px;
    background: #f8fafb;
}

.contract-scope-change-header,
.contract-scope-change-grid {
    display: grid;
    gap: 0.75rem;
}

.contract-scope-change-header {
    grid-template-columns: minmax(220px, auto) 1fr;
    align-items: center;
}

.contract-scope-change-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.85rem;
}

.contract-list-sector-chips {
    max-width: 310px;
}

@media (max-width: 720px) {
    .service-sector-options,
    .service-sector-options.compact,
    .contract-scope-change-grid,
    .contract-scope-change-header {
        grid-template-columns: 1fr;
    }

    .service-sector-option small {
        margin-left: 0;
    }
}

/* Entidades - historico transversal de alteracoes */
.entity-history-drawer .inventory-drawer-panel {
  width: min(980px, calc(100vw - 28px));
}

.entity-history-drawer .inventory-drawer-backdrop {
  width: 100%;
  padding: 0;
  border: 0;
}

.entity-history-body {
  background: #f7f9fb;
}

.entity-history-loading {
  display: grid;
  gap: 12px;
}

.entity-history-loading span {
  display: block;
  height: 72px;
  border: 1px solid rgba(28, 34, 38, 0.08);
  border-radius: 9px;
  background: linear-gradient(90deg, #eef2f5 20%, #f8fafc 42%, #eef2f5 64%);
  background-size: 240% 100%;
  animation: entity-history-loading 1.25s ease-in-out infinite;
}

@keyframes entity-history-loading {
  to {
    background-position: -160% 0;
  }
}

.entity-history-empty {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 24px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  color: var(--muted);
  background: #ffffff;
}

.entity-history-empty > svg {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  color: var(--accent);
}

.entity-history-empty strong,
.entity-history-empty p {
  display: block;
  margin: 0;
}

.entity-history-empty p {
  margin-top: 4px;
}

.entity-history-empty .btn-secondary-app {
  margin-top: 14px;
}

.entity-history-empty.is-error > svg {
  color: #b42318;
}

.entity-history-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #c7d7ea;
  border-radius: 8px;
  color: #1e4d73;
  background: #eef6ff;
  font-size: 0.78rem;
  font-weight: 700;
}

.entity-history-notice svg {
  width: 16px;
  height: 16px;
}

.entity-history-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
}

.entity-history-table {
  width: 100%;
  min-width: 790px;
  border-collapse: collapse;
}

.entity-history-table th {
  padding: 11px 13px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  background: #f6f8fa;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.03em;
  text-align: left;
  text-transform: uppercase;
}

.entity-history-table td {
  padding: 13px;
  border-bottom: 1px solid #edf0f2;
  color: var(--text);
  vertical-align: middle;
}

.entity-history-row:last-of-type td {
  border-bottom: 0;
}

.entity-history-row time,
.entity-history-row td > strong {
  display: block;
  font-size: 0.79rem;
  font-weight: 800;
}

.entity-history-row td > small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.68rem;
}

.entity-history-actor-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-top: 6px;
  padding: 3px 7px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 850;
  letter-spacing: 0.045em;
  line-height: 1;
}

.entity-history-actor-badge.is-user {
  border-color: #a7ded6;
  color: #087f72;
  background: #eaf8f5;
}

.entity-history-actor-badge.is-automation {
  border-color: #c7d4f3;
  color: #38558f;
  background: #eef3ff;
}

.entity-history-actor-badge.is-unregistered {
  border-color: #d7dde1;
  color: #68747d;
  background: #f3f5f6;
}

.entity-history-detail-button {
  min-height: 34px;
  padding: 7px 10px;
  white-space: nowrap;
}

.entity-history-detail-button svg {
  width: 15px;
  height: 15px;
}

.entity-history-detail-row td {
  padding: 0;
  background: #f7fafb;
}

.entity-history-detail-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-bottom: 1px solid var(--line);
}

.entity-history-detail-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.entity-history-detail-heading div {
  display: grid;
  gap: 2px;
}

.entity-history-detail-heading span {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 750;
}

.entity-history-detail-heading strong {
  font-size: 0.78rem;
}

.entity-history-changes {
  display: grid;
  gap: 9px;
}

.entity-history-change {
  display: grid;
  grid-template-columns: minmax(150px, 0.72fr) minmax(0, 2fr);
  gap: 14px;
  padding: 12px;
  border: 1px solid #dfe5e8;
  border-radius: 8px;
  background: #ffffff;
}

.entity-history-change.is-sensitive {
  border-color: #d8d2bd;
  background: #fffdf6;
}

.entity-history-change-title {
  display: grid;
  align-content: start;
  gap: 5px;
}

.entity-history-change-title div {
  display: grid;
  gap: 2px;
}

.entity-history-change-title span,
.entity-history-values span {
  color: var(--muted);
  font-size: 0.64rem;
  font-weight: 800;
  text-transform: uppercase;
}

.entity-history-change-title strong,
.entity-history-values strong {
  overflow-wrap: anywhere;
  font-size: 0.76rem;
}

.entity-history-change-title small {
  color: var(--muted);
  font-size: 0.66rem;
}

.entity-history-values {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.entity-history-values div {
  display: grid;
  gap: 3px;
  min-height: 54px;
  padding: 9px 10px;
  border-radius: 7px;
  background: #f4f6f7;
}

.entity-history-values div:last-child {
  background: #edf8f6;
}

.entity-history-values > svg {
  width: 16px;
  height: 16px;
  color: var(--muted);
}

@media (max-width: 760px) {
  .entity-history-drawer .inventory-drawer-panel {
    top: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    border-right: 0;
    border-radius: 0;
  }

  .entity-history-body {
    padding: 12px;
  }

  .entity-history-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .entity-history-table,
  .entity-history-table tbody {
    display: block;
    min-width: 0;
  }

  .entity-history-table thead {
    display: none;
  }

  .entity-history-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 12px;
    margin-bottom: 10px;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #ffffff;
  }

  .entity-history-row td {
    display: grid;
    grid-column: 1;
    gap: 3px;
    padding: 0;
    border: 0;
  }

  .entity-history-row td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.62rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .entity-history-row .actions-cell {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
  }

  .entity-history-row .actions-cell::before {
    display: none;
  }

  .entity-history-detail-button {
    width: 38px;
    min-width: 38px;
    padding: 8px;
  }

  .entity-history-detail-button span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .entity-history-detail-row:not([hidden]) {
    display: block;
    margin: -4px 0 12px;
  }

  .entity-history-detail-row td {
    display: block;
    padding: 0;
    border: 0;
  }

  .entity-history-detail-panel {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
  }

  .entity-history-detail-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .entity-history-change {
    grid-template-columns: 1fr;
  }

  .entity-history-values {
    grid-template-columns: 1fr;
  }

  .entity-history-values > svg {
    justify-self: center;
    transform: rotate(90deg);
  }
}

.task-responsibility-item:has(> .task-responsibility-editor) {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 0.28rem;
}

.task-responsibility-item:has(> .task-responsibility-editor) > strong {
    grid-column: 1 / -1;
    font-size: 0.76rem;
    line-height: 1.1;
}

.task-responsibility-item form.task-responsibility-editor {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.125rem;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
}

.task-responsibility-combobox {
    min-width: 0;
    cursor: pointer;
}

.task-responsibility-combobox input[data-combobox-input] {
    width: 100%;
    min-width: 0;
    min-height: 2.125rem;
    height: 2.125rem;
    padding: 0 1.45rem 0 0.42rem;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--accent) 22%, var(--line));
    background: var(--surface);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

.search-combobox.task-responsibility-combobox::after {
    top: 0.7rem;
    right: 0.5rem;
    width: 0.42rem;
    height: 0.42rem;
}

.task-responsibility-combobox .combobox-popup {
    right: auto;
    left: 0;
    width: min(32rem, calc(100vw - 2.5rem));
    min-width: 100%;
}

.task-responsibility-combobox .combobox-option.task-responsible-option {
    grid-template-columns: minmax(10rem, 0.8fr) minmax(0, 1.2fr);
    gap: 0.16rem;
}

.task-responsible-option > strong,
.task-responsible-option > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.task-responsibility-editor > .icon-action {
    width: 2.125rem;
    height: 2.125rem;
}

.task-responsibility-item small {
    grid-column: 2 / -1;
    color: var(--muted);
}

.obligation-client-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.obligation-client-link:hover,
.obligation-client-link:focus-visible {
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--brand-blue-ring);
    transform: translateY(-1px);
}

.obligation-client-link-action {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--accent);
    font-size: 0.78rem;
    font-weight: 700;
}

.obligation-client-link-action svg {
    width: 0.85rem;
    height: 0.85rem;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.carteira-setores {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.9rem;
}

.carteira-setor-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.42rem 0.85rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}

.carteira-setor-chip:hover,
.carteira-setor-chip:focus-visible {
    border-color: var(--accent);
    color: var(--accent);
}

.carteira-setor-chip.active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.carteira-setor-chip-spinner {
    display: none;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 50%;
    border: 2px solid color-mix(in srgb, currentColor 30%, transparent);
    border-top-color: currentColor;
    animation: carteira-spin 0.6s linear infinite;
}

.carteira-setor-chip.is-loading .carteira-setor-chip-spinner {
    display: inline-block;
}

@keyframes carteira-spin {
    to { transform: rotate(360deg); }
}

[data-carteira-body] {
    transition: opacity 120ms ease;
}

[data-carteira-body].is-loading {
    opacity: 0.55;
    pointer-events: none;
}

.carteira-setor-chip-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--amber) 16%, var(--surface));
    color: #935411;
    font-size: 0.72rem;
    font-weight: 800;
}

.carteira-setor-chip-badge.fora {
    background: rgba(14, 124, 123, 0.12);
    color: #b3300f;
}

.carteira-setor-chip-badge.ok {
    background: rgba(21, 128, 61, 0.12);
    color: #15803d;
}

.carteira-setor-chip-badge svg {
    width: 0.8rem;
    height: 0.8rem;
}

.carteira-setor-chip.active .carteira-setor-chip-badge {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.carteira-layout {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    margin-top: 1rem;
}

.carteira-team {
    position: sticky;
    top: 5.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-height: calc(100vh - 6.5rem);
    overflow-y: auto;
}

.carteira-team-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.carteira-team-header h3 {
    margin: 0;
    font-size: 0.95rem;
}

.carteira-team-header a {
    display: inline-flex;
    color: var(--muted);
}

.carteira-team-header a:hover {
    color: var(--accent);
}

.carteira-team-header svg {
    width: 1rem;
    height: 1rem;
}

.carteira-team-cards {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.carteira-team-card {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.55rem 0.65rem;
    border: 1px solid transparent;
    border-radius: 0.65rem;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background 140ms ease, border-color 140ms ease;
}

.carteira-team-card:hover {
    background: var(--surface-muted);
}

.carteira-team-card.active {
    background: var(--accent-soft);
    border-color: color-mix(in srgb, var(--accent) 35%, transparent);
}

.carteira-team-card.is-warning.active {
    background: #fff7ed;
    border-color: color-mix(in srgb, var(--amber) 45%, transparent);
}

.carteira-team-info {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
    flex: 1;
}

.carteira-team-info strong {
    font-size: 0.85rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.carteira-team-info small {
    color: var(--muted);
    font-size: 0.75rem;
}

.carteira-team-bar {
    display: block;
    height: 4px;
    border-radius: 999px;
    background: var(--surface-muted);
    overflow: hidden;
}

.carteira-team-bar span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--accent);
}

.carteira-team-divider {
    height: 1px;
    margin: 0.35rem 0;
    background: var(--line);
}

.carteira-team-empty {
    display: grid;
    gap: 0.35rem;
    padding: 0.6rem 0.65rem;
    font-size: 0.82rem;
    color: var(--muted);
}

.carteira-team-empty a {
    font-weight: 700;
}

.carteira-team-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: #fff;
    background: var(--accent);
    font-size: 0.8rem;
    font-weight: 800;
}

.carteira-team-avatar svg {
    width: 1rem;
    height: 1rem;
}

.carteira-team-avatar.is-neutral {
    background: var(--surface-muted);
    color: var(--muted);
}

.carteira-team-avatar.is-alert {
    background: #fff7ed;
    color: var(--amber);
}

.carteira-team-avatar.is-mini {
    flex-basis: 24px;
    width: 24px;
    height: 24px;
    font-size: 0.62rem;
}

.carteira-team-avatar.cor-0 { background: var(--accent); }
.carteira-team-avatar.cor-1 { background: #0e7490; }
.carteira-team-avatar.cor-2 { background: #15803d; }
.carteira-team-avatar.cor-3 { background: #b45309; }
.carteira-team-avatar.cor-4 { background: #be185d; }
.carteira-team-avatar.cor-5 { background: #6d28d9; }
.carteira-team-avatar.cor-6 { background: #c2410c; }
.carteira-team-avatar.cor-7 { background: #475569; }

.carteira-main {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}

.carteira-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.carteira-search-field {
    position: relative;
    display: block;
    flex: 1;
    min-width: 240px;
    max-width: 420px;
}

.carteira-search-field svg {
    position: absolute;
    left: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
    height: 1rem;
    color: var(--muted);
    pointer-events: none;
}

.field.carteira-search-field input {
    width: 100%;
    padding-left: 2.2rem;
}

.carteira-search-hint {
    font-size: 0.8rem;
    color: var(--muted);
}

.carteira-list {
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    overflow: hidden;
}

.carteira-list-header,
.carteira-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.85rem;
}

.carteira-list-header {
    background: var(--surface-muted);
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.carteira-list-header span:not(.carteira-list-header-resp) {
    flex: 1;
}

.carteira-list-header-resp {
    flex: 0 0 17rem;
}

.carteira-row {
    border-top: 1px solid var(--line);
    transition: background 120ms ease;
}

.carteira-row.is-editavel {
    cursor: pointer;
}

.carteira-row.is-editavel:hover {
    background: color-mix(in srgb, var(--accent-soft) 45%, var(--surface));
}

.carteira-row.is-checked {
    background: var(--accent-soft);
}

.carteira-row.is-fora {
    box-shadow: inset 3px 0 0 var(--amber);
}

.carteira-check {
    display: inline-flex;
    align-items: center;
}

.carteira-check input {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: var(--accent);
    cursor: pointer;
}

.carteira-row-empresa {
    display: grid;
    gap: 0.1rem;
    flex: 1;
    min-width: 0;
}

.carteira-row-empresa strong {
    font-size: 0.88rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.carteira-row-empresa small {
    color: var(--muted);
}

.carteira-row-resp {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 17rem;
    min-width: 0;
}

.carteira-resp-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text);
}

.carteira-resp-pill.is-sem {
    color: #935411;
}

.carteira-resp-pill svg {
    width: 0.95rem;
    height: 0.95rem;
}

.carteira-list-empty {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1.1rem 0.85rem;
    border-top: 1px solid var(--line);
    color: var(--muted);
}

.carteira-list-empty svg {
    width: 1.1rem;
    height: 1.1rem;
}

.carteira-actionbar {
    position: sticky;
    bottom: 0.75rem;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.85rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--line);
    border-radius: 0.85rem;
    background: var(--surface);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
}

.carteira-actionbar-status {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.85rem;
}

.carteira-actionbar-clear {
    padding: 0;
    border: 0;
    background: none;
    color: var(--accent);
    font-size: 0.8rem;
    font-weight: 700;
    cursor: pointer;
}

.carteira-actionbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.carteira-actionbar-user select {
    min-width: 14rem;
}

.carteira-actionbar-remover {
    color: #b42318;
}

@media (max-width: 980px) {
    /* Acima da .mobile-bottom-nav fixa (~71px + safe area) */
    .carteira-actionbar {
        bottom: calc(86px + env(safe-area-inset-bottom));
    }
}

@media (max-width: 960px) {
    .carteira-layout {
        grid-template-columns: 1fr;
    }

    .carteira-team {
        position: static;
        max-height: none;
        overflow-y: visible;
    }

    .carteira-team-cards {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }

    .carteira-team-divider {
        display: none;
    }
}

@media (max-width: 720px) {
    .carteira-list-header-resp {
        display: none;
    }

    .carteira-row {
        flex-wrap: wrap;
    }

    .carteira-row-resp {
        flex: 1 1 100%;
    }
}

@media (max-width: 720px) {
    .sector-member-grid {
        grid-template-columns: 1fr;
    }

    .sector-client-table select {
        min-width: 12rem;
    }

    .task-responsibility-item {
        grid-template-columns: 1fr;
    }

    .task-responsibility-item > strong,
    .task-responsibility-item > span,
    .task-responsibility-item > small,
    .task-responsibility-item > .task-responsibility-editor {
        grid-column: 1 / -1;
    }

    .task-responsibility-combobox .combobox-popup {
        width: 100%;
        min-width: 0;
    }
}

* {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  min-height: 100%;
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: var(--font-ui);
  letter-spacing: 0;
}

a {
  color: inherit;
}

.app-shell {
  display: grid;
  grid-template-columns: var(--context-sidebar-width) minmax(0, 1fr);
  min-height: calc(100vh - var(--desktop-header-height));
  transition: grid-template-columns 180ms ease;
}

.app-sidebar {
  display: none;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
  height: 100vh;
  position: sticky;
  top: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 24px 18px;
  color: var(--sidebar-text);
  background: var(--sidebar);
  border-right: 1px solid rgba(28, 34, 38, 0.1);
  box-shadow: 12px 0 32px rgba(31, 41, 51, 0.05);
  backdrop-filter: blur(16px);
  transition: gap 180ms ease, padding 180ms ease, background 180ms ease;
}

.mobile-app-header,
.mobile-bottom-nav,
.mobile-nav-backdrop,
.mobile-more-panel {
  display: none;
}

.context-sidebar {
  position: sticky;
  top: var(--desktop-header-height);
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: calc(100vh - var(--desktop-header-height));
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 14px 10px;
  border-right: 1px solid rgba(28, 34, 38, 0.1);
  background: rgba(250, 252, 255, 0.94);
  box-shadow: 10px 0 28px rgba(15, 23, 42, 0.04);
  backdrop-filter: blur(14px);
  transition: padding 180ms ease, background 180ms ease;
}

.context-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 4px 2px 8px;
  border-bottom: 1px solid rgba(216, 222, 230, 0.9);
}

.context-sidebar-title {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.context-sidebar-title span {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.context-sidebar-title strong {
  overflow: hidden;
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.context-sidebar-toggle {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #ffffff;
  cursor: pointer;
}

.context-sidebar-toggle:hover,
.context-sidebar-toggle:focus-visible {
  border-color: rgba(28, 34, 38, 0.28);
  background: var(--accent-soft);
  outline: none;
}

.context-sidebar-toggle svg {
  width: 18px;
  height: 18px;
}

.context-nav {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
}

.context-group {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.context-group-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 8px 8px 2px;
}

.context-group-title {
  min-width: 0;
  color: var(--accent-strong);
  font-size: 0.9rem;
  font-weight: 950;
  letter-spacing: -0.01em;
}

/* Recuperacao assistida das NF-e de entrada de julho/2026. */
.fiscal-nfe-recovery-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
  padding: 0;
  list-style: none;
}

.fiscal-nfe-recovery-steps li {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--border-color, #dbe3e8);
  border-radius: 12px;
  background: var(--surface-soft, #f7fafb);
}

.fiscal-nfe-recovery-steps li > strong {
  display: grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: var(--brand, #087f83);
}

.fiscal-nfe-recovery-steps li > span {
  min-width: 0;
  font-size: 0.82rem;
  line-height: 1.3;
}

.metric-grid.fiscal-nfe-recovery-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 18px 0;
}

.fiscal-nfe-recovery-metrics .metric-card.is-positive {
  border-color: rgba(8, 127, 131, 0.35);
  background: rgba(8, 127, 131, 0.06);
}

.fiscal-nfe-recovery-companies {
  margin-top: 18px;
}

.fiscal-nfe-recovery-company-list {
  display: grid;
  gap: 8px;
}

.fiscal-nfe-recovery-company {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid var(--border-color, #dbe3e8);
  border-radius: 12px;
  background: var(--surface, #fff);
  cursor: pointer;
}

.fiscal-nfe-recovery-company:has(input:checked) {
  border-color: rgba(8, 127, 131, 0.5);
  box-shadow: 0 0 0 2px rgba(8, 127, 131, 0.08);
}

.fiscal-nfe-recovery-company.is-disabled {
  cursor: default;
  opacity: 0.72;
}

.fiscal-nfe-recovery-company-copy,
.fiscal-nfe-recovery-company-count {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.fiscal-nfe-recovery-company-copy strong,
.fiscal-nfe-recovery-company-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
}

.fiscal-nfe-recovery-company-count {
  text-align: right;
}

.fiscal-nfe-recovery-company-count strong {
  color: var(--brand, #087f83);
  font-size: 1.15rem;
}

.fiscal-nfe-recovery-declaration {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  margin-top: 18px;
  padding: 14px;
  border: 1px solid rgba(181, 116, 17, 0.35);
  border-radius: 12px;
  background: rgba(245, 158, 11, 0.07);
  cursor: pointer;
}

.fiscal-nfe-recovery-declaration > span {
  display: grid;
  gap: 4px;
}

.fiscal-nfe-recovery-selection {
  margin-top: 10px;
  color: var(--muted-color, #64748b);
  font-size: 0.82rem;
  font-weight: 700;
}

@media (max-width: 900px) {
  .fiscal-nfe-recovery-steps,
  .metric-grid.fiscal-nfe-recovery-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .fiscal-nfe-recovery-steps,
  .metric-grid.fiscal-nfe-recovery-metrics {
    grid-template-columns: 1fr;
  }

  .fiscal-nfe-recovery-company {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .fiscal-nfe-recovery-company-count {
    grid-column: 2;
    text-align: left;
  }
}

.fiscal-nfe-recovery .app-drawer-footer .actions-row {
  margin-top: 0;
}

.context-group-title-link {
  width: calc(100% - 16px);
  min-height: 42px;
  padding: 7px 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: inherit;
  background: transparent;
  text-decoration: none;
}

.context-group-title-link:hover,
.context-group-title-link:focus-visible,
.context-group-title-link.active {
  border-color: rgba(28, 34, 38, 0.12);
  color: var(--accent-strong);
  background: var(--accent-soft);
  outline: none;
}

.context-group-title-link.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.context-group-title-link-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: var(--accent-strong);
}

.context-group-toggle.context-group-title-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: calc(100% - 16px);
  min-height: 32px;
  height: auto;
  padding: 3px 5px 3px 3px;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  font: inherit;
  text-align: left;
}

.context-group-toggle.context-group-title-toggle:hover {
  background: color-mix(in srgb, var(--accent-soft), transparent 28%);
}

.context-group-toggle.context-group-title-toggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent), transparent 35%);
  outline-offset: 2px;
}

.context-group-toggle {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}

.context-group-toggle svg {
  width: 16px;
  height: 16px;
  transition: transform 160ms ease;
}

.context-group-toggle[aria-expanded="false"] svg {
  transform: rotate(-90deg);
}

.context-group-toggle:hover,
.context-group-toggle:focus-visible {
  border-color: rgba(28, 34, 38, 0.16);
  color: var(--accent-strong);
  background: var(--accent-soft);
  outline: none;
}

.context-group-panel {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.context-group-panel[hidden] {
  display: none;
}

.context-nav-divider {
  height: 1px;
  margin: 8px 10px 6px;
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.18), rgba(28, 34, 38, 0.04));
  border-radius: 999px;
}

.context-section-label {
  display: block;
  margin: 10px 8px 3px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.context-link {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 5px 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #334155;
  font-size: 0.76rem;
  font-weight: 850;
  text-decoration: none;
}

.context-link:hover,
.context-link:focus-visible,
.context-link.active {
  border-color: rgba(28, 34, 38, 0.12);
  color: var(--accent-strong);
  background: var(--accent-soft);
  outline: none;
}

.context-link.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.entity-history-actor-badge.is-praxxo-agent {
    color: #075985;
    background: #e0f2fe;
    border-color: #7dd3fc;
}

/* Vinculo entre NF-e de venda, devolucao e efeito financeiro. */
.fiscal-devolution-link-row > td {
  border-top: 0;
  padding-top: 0;
}

.fiscal-documents-table tr[data-fiscal-document-row]:has(+ tr.fiscal-devolution-link-row) > td {
  border-bottom: 0;
}

.fiscal-devolution-link-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: .75rem;
  align-items: center;
  margin: -.2rem .25rem .65rem 1.35rem;
  padding: .65rem .75rem;
  border: 1px solid color-mix(in srgb, var(--accent, #0f766e) 22%, #dbe4e8);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--accent, #0f766e) 6%, #fff);
}

.fiscal-devolution-link-card.is-origin {
  border-style: dashed;
}

.fiscal-devolution-link-card > div {
  display: grid;
  min-width: 0;
  gap: .1rem;
}

.fiscal-devolution-link-card small,
.fiscal-devolution-link-card span {
  color: var(--text-muted, #60717a);
}

.fiscal-devolution-link-card > div > span {
  overflow: hidden;
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-devolution-link-icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 999px;
  background: #fff;
  color: var(--accent, #0f766e);
}

.fiscal-devolution-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 1rem;
}

.fiscal-devolution-summary > div {
  display: grid;
  gap: .2rem;
  padding: .8rem;
  border: 1px solid var(--border-color, #dbe4e8);
  border-radius: .75rem;
  background: var(--surface-muted, #f7fafb);
}

.fiscal-devolution-summary span {
  color: var(--text-muted, #60717a);
  font-size: .76rem;
}

.fiscal-devolution-mode {
  display: grid;
  gap: .65rem;
  margin: 1rem 0;
  padding: 0;
  border: 0;
}

.fiscal-devolution-mode label {
  display: flex;
  gap: .65rem;
  align-items: flex-start;
  padding: .75rem;
  border: 1px solid var(--border-color, #dbe4e8);
  border-radius: .75rem;
  cursor: pointer;
}

.fiscal-devolution-mode label:has(input:checked) {
  border-color: var(--accent, #0f766e);
  background: color-mix(in srgb, var(--accent, #0f766e) 6%, #fff);
}

.fiscal-devolution-mode label span,
.fiscal-devolution-mode label small {
  display: grid;
  gap: .15rem;
}

.fiscal-devolution-mode small {
  color: var(--text-muted, #60717a);
}

.fiscal-devolution-title-list,
[data-fiscal-devolution-installments] {
  display: grid;
  gap: .65rem;
  margin: .75rem 0;
}

.fiscal-devolution-title-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, .32fr);
  gap: .8rem;
  align-items: end;
  padding: .75rem;
  border: 1px solid var(--border-color, #dbe4e8);
  border-radius: .75rem;
}

.fiscal-devolution-title-item > div {
  display: grid;
  gap: .15rem;
}

.fiscal-devolution-title-item small,
.fiscal-devolution-title-item > div > span {
  color: var(--text-muted, #60717a);
  font-size: .78rem;
}

.fiscal-devolution-installment {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(10rem, 1fr) auto;
  gap: .65rem;
  align-items: end;
}

.fiscal-devolution-drawer .selection-check.fiscal-devolution-confirm {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  height: auto;
  box-sizing: border-box;
  gap: .65rem;
  margin: 1.25rem 0;
  padding: .8rem;
  border-radius: .75rem;
  background: #fff8e8;
}

.fiscal-devolution-drawer .selection-check.fiscal-devolution-confirm input {
  flex: 0 0 auto;
  margin-top: .1rem;
}

.fiscal-devolution-drawer .selection-check.fiscal-devolution-confirm span {
  min-width: 0;
  font-size: .84rem;
  line-height: 1.35;
}

.fiscal-devolution-live-summary {
  display: block;
  min-height: 1.25rem;
  margin-top: .45rem;
  color: var(--text-muted, #60717a);
  font-size: .78rem;
}

.fiscal-devolution-live-summary.is-invalid {
  color: var(--danger, #b42318);
}

@media (max-width: 720px) {
  .fiscal-devolution-link-card {
    grid-template-columns: auto minmax(0, 1fr);
    margin-left: 0;
  }

  .fiscal-devolution-link-card .status-pill,
  .fiscal-devolution-link-card .btn-secondary-app {
    grid-column: 2;
    justify-self: start;
  }

  .fiscal-devolution-summary,
  .fiscal-devolution-title-item,
  .fiscal-devolution-installment {
    grid-template-columns: 1fr;
  }
}

/* Conferencia de NF-e de entrada: a escolha explicita separa consulta/download do ato fiscal 210210. */
.nfe-entry-mode-fieldset {
  min-width: 0;
  margin: 18px 0 0;
  padding: 0;
  border: 0;
}

.nfe-entry-mode-fieldset > legend {
  margin-bottom: 8px;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 850;
}

.nfe-entry-mode-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.nfe-entry-mode-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--text);
  background: #fff;
  cursor: pointer;
}

.nfe-entry-mode-option:has(input:checked) {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 2px rgba(28, 34, 38, 0.08);
}

.nfe-entry-mode-option:focus-within {
  outline: 3px solid rgba(28, 34, 38, 0.14);
  outline-offset: 1px;
}

.nfe-entry-mode-option input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: var(--accent);
}

.nfe-entry-mode-option span,
.nfe-entry-mode-option strong,
.nfe-entry-mode-option small {
  display: block;
  min-width: 0;
}

.nfe-entry-mode-option strong {
  font-size: 0.86rem;
}

.nfe-entry-mode-option small,
.nfe-entry-mode-fieldset > small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.45;
}

.nfe-entry-mode-option.is-disabled {
  opacity: 0.58;
  cursor: not-allowed;
}

@media (max-width: 720px) {
  .nfe-entry-mode-options {
    grid-template-columns: minmax(0, 1fr);
  }
}

.context-link.disabled,
.context-link.disabled:hover {
  border-color: transparent;
  color: var(--sidebar-disabled);
  background: transparent;
  box-shadow: none;
  cursor: not-allowed;
}

.context-link.disabled svg {
  color: currentColor;
}

.context-link svg {
  justify-self: center;
  width: 18px;
  height: 18px;
  color: var(--accent-strong);
}

.context-link span {
  overflow: hidden;
  min-width: 0;
  line-height: 1.15;
  overflow-wrap: break-word;
  text-overflow: clip;
  white-space: normal;
}

.context-link-2line span {
  white-space: normal;
  text-overflow: clip;
  line-height: 1.08;
}

.context-link-success svg {
  color: var(--success);
}

.context-link-warn svg {
  color: var(--amber);
}

.desktop-app-header {
  position: sticky;
  top: 0;
  z-index: 120;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: var(--desktop-header-height);
  padding: 10px 24px;
  border-bottom: 1px solid rgba(216, 222, 230, 0.92);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.07);
  backdrop-filter: blur(16px);
}

.desktop-brand {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  color: var(--text);
  text-decoration: none;
}

.desktop-brand img {
  display: block;
  height: 26px;
  width: auto;
}

/* Editor rapido de classificacao financeira (Receber/Pagar). */
.quick-category-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  min-height: 30px;
  padding: 4px 7px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #123849;
  background: transparent;
  font: inherit;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.quick-category-trigger span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.quick-category-trigger svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  color: #147b82;
  opacity: 0.78;
}

.quick-category-trigger:hover,
.quick-category-trigger:focus-visible,
.quick-category-trigger[aria-expanded="true"] {
  border-color: rgba(20, 123, 130, 0.28);
  color: #075f65;
  background: #eaf8f8;
  box-shadow: 0 0 0 3px rgba(20, 123, 130, 0.08);
  outline: none;
}

.quick-category-trigger.is-saved {
  border-color: rgba(5, 150, 105, 0.3);
  background: #eafaf3;
}

.quick-category-editor {
  position: fixed;
  inset: 0;
  z-index: 1250;
  pointer-events: none;
}

.quick-category-backdrop {
  display: none;
}

.quick-category-panel {
  position: fixed;
  left: var(--quick-category-left, 16px);
  top: var(--quick-category-top, 16px);
  display: flex;
  width: min(420px, calc(100vw - 24px));
  max-height: min(650px, calc(100vh - 24px));
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #cfdde1;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 39, 50, 0.2), 0 8px 20px rgba(15, 39, 50, 0.1);
  pointer-events: auto;
  transform-origin: top left;
  animation: quick-category-enter 150ms ease-out;
}

@keyframes quick-category-enter {
  from {
    opacity: 0;
    transform: translateY(-4px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.quick-category-header {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 10px;
  padding: 14px 15px;
  border-bottom: 1px solid #e5edef;
  background: linear-gradient(135deg, #f5fbfb, #fff);
}

.quick-category-header-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  color: #08737a;
  background: #dff4f3;
}

.quick-category-header-icon svg {
  width: 19px;
  height: 19px;
}

.quick-category-header small {
  display: block;
  margin-bottom: 1px;
  color: #60767e;
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.quick-category-header h3 {
  margin: 0;
  color: #162d36;
  font-size: 1rem;
}

.quick-category-close {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 1px solid #dbe5e8;
  border-radius: 9px;
  color: #536a73;
  background: #fff;
  cursor: pointer;
}

.quick-category-close:hover,
.quick-category-close:focus-visible {
  border-color: #9fc6c9;
  color: #08737a;
  background: #f0f9f8;
  outline: none;
}

.quick-category-close svg {
  width: 17px;
  height: 17px;
}

.quick-category-body {
  min-height: 0;
  padding: 14px 15px 12px;
  overflow-y: auto;
}

.quick-category-current {
  display: grid;
  gap: 2px;
  margin-bottom: 12px;
  padding: 9px 11px;
  border: 1px solid #e1eaec;
  border-radius: 10px;
  background: #f8fafb;
}

.quick-category-current span,
.quick-category-search > span:first-child {
  color: #60767e;
  font-size: 0.72rem;
  font-weight: 800;
}

.quick-category-current strong {
  color: #183640;
  font-size: 0.86rem;
}

.quick-category-search {
  display: grid;
  gap: 5px;
}

.quick-category-search-control {
  position: relative;
  display: block;
}

.quick-category-search-control svg {
  position: absolute;
  left: 11px;
  top: 50%;
  width: 17px;
  height: 17px;
  color: #71868d;
  transform: translateY(-50%);
  pointer-events: none;
}

.quick-category-search-control input {
  width: 100%;
  min-height: 40px;
  padding: 8px 11px 8px 36px;
  border: 1px solid #cbdadd;
  border-radius: 10px;
  color: #172f38;
  background: #fff;
}

.quick-category-search-control input:focus {
  border-color: #17858b;
  box-shadow: 0 0 0 3px rgba(23, 133, 139, 0.12);
  outline: none;
}

.quick-category-options {
  display: grid;
  gap: 5px;
  max-height: 252px;
  margin-top: 8px;
  padding-right: 3px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.quick-category-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 20px;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 46px;
  padding: 8px 9px;
  border: 1px solid #e1e9eb;
  border-radius: 10px;
  color: #1b333c;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.quick-category-option:hover,
.quick-category-option:focus-visible {
  border-color: #9dc9cc;
  background: #f2fbfa;
  outline: none;
}

.quick-category-option[aria-selected="true"] {
  border-color: #248d92;
  background: #e8f7f6;
  box-shadow: inset 3px 0 #168087;
}

.quick-category-option-code {
  padding: 3px 6px;
  border-radius: 7px;
  color: #087078;
  background: #def4f3;
  font-size: 0.7rem;
  font-weight: 900;
  white-space: nowrap;
}

.quick-category-option-copy {
  display: grid;
  min-width: 0;
  gap: 1px;
}

.quick-category-option-copy strong {
  overflow: hidden;
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-category-option-copy small {
  color: #647a82;
  font-size: 0.7rem;
}

.quick-category-option > svg {
  width: 17px;
  height: 17px;
  color: #08787f;
  opacity: 0;
}

.quick-category-option[aria-selected="true"] > svg {
  opacity: 1;
}

.quick-category-empty {
  margin: 8px 0 0;
  padding: 14px;
  border: 1px dashed #c9d7da;
  border-radius: 10px;
  color: #637980;
  font-size: 0.8rem;
  text-align: center;
}

.quick-category-scope {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  margin-top: 12px;
  padding: 9px 10px;
  border: 1px solid #dbe6e8;
  border-radius: 10px;
  color: #4f656d;
  background: #f7fafb;
  font-size: 0.73rem;
  line-height: 1.4;
}

.quick-category-scope.is-fiscal {
  border-color: #c4e2df;
  color: #315e60;
  background: #eef9f7;
}

.quick-category-scope > svg {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  color: #178087;
}

.quick-category-scope span,
.quick-category-scope strong {
  display: block;
}

.quick-category-scope strong {
  margin-bottom: 1px;
  color: #193d45;
}

.quick-category-learning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(15, 118, 110, 0.22);
  border-radius: 10px;
  color: var(--text);
  background: rgba(240, 253, 250, 0.78);
  cursor: pointer;
}

.quick-category-learning[hidden] {
  display: none;
}

.quick-category-learning input {
  flex: none;
  width: 17px;
  height: 17px;
  margin-top: 2px;
  accent-color: var(--success-strong);
}

.quick-category-learning span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.quick-category-learning strong {
  font-size: 0.78rem;
}

.quick-category-learning small {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.35;
}

.quick-category-error {
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px solid #fecaca;
  border-radius: 9px;
  color: #991b1b;
  background: #fff1f2;
  font-size: 0.78rem;
  font-weight: 750;
}

.quick-category-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 11px 15px;
  border-top: 1px solid #e4ecee;
  background: #fbfcfc;
}

.quick-category-actions button {
  min-height: 36px;
}

.quick-category-editor.is-saving .quick-category-panel {
  cursor: wait;
}

.quick-category-editor.is-saving .quick-category-actions button {
  pointer-events: none;
  opacity: 0.7;
}

@media (max-width: 720px) {
  body.quick-category-sheet-open {
    overflow: hidden;
  }

  .quick-category-editor {
    pointer-events: auto;
  }

  .quick-category-backdrop {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(15, 31, 39, 0.46);
    backdrop-filter: blur(1.5px);
    pointer-events: auto;
  }

  .quick-category-panel {
    inset: auto 0 0 !important;
    width: 100%;
    max-height: min(82vh, 680px);
    border-width: 1px 0 0;
    border-radius: 18px 18px 0 0;
    padding-bottom: env(safe-area-inset-bottom);
    transform-origin: bottom center;
    animation-name: quick-category-sheet-enter;
  }

  @keyframes quick-category-sheet-enter {
    from {
      opacity: 0;
      transform: translateY(16px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .quick-category-options {
    max-height: 30vh;
  }

  .quick-category-actions .btn-secondary-app,
  .quick-category-actions .btn-primary-app {
    flex: 1 1 0;
    justify-content: center;
  }
}

/* Descritor: o nome PRAXXO nao diz o que o sistema faz, entao a assinatura
   carrega a linha. Fica so no primeiro nivel de navegacao. */
.desktop-brand-descritor {
  display: block;
  margin-top: 5px;
  padding-top: 4px;
  border-top: 1px solid color-mix(in srgb, var(--brand-orange) 34%, transparent);
  color: var(--brand-orange);
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .desktop-brand-descritor {
    display: none;
  }
}

.desktop-main-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}

.desktop-main-nav::-webkit-scrollbar {
  display: none;
}

.desktop-nav-group {
  flex: 0 0 auto;
}

.desktop-nav-link,
.desktop-nav-button,
.desktop-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #334155;
  background: transparent;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 850;
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.desktop-nav-link,
.desktop-nav-button {
  padding: 0 12px;
}

.desktop-icon-button {
  width: 42px;
  padding: 0;
}

.desktop-nav-link svg,
.desktop-nav-button svg,
.desktop-icon-button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.desktop-nav-button svg:last-child {
  width: 15px;
  height: 15px;
  color: var(--muted);
  transition: transform 160ms ease;
}

.desktop-nav-link:hover,
.desktop-nav-button:hover,
.desktop-icon-button:hover,
.desktop-nav-link:focus-visible,
.desktop-nav-button:focus-visible,
.desktop-icon-button:focus-visible,
.desktop-nav-link.active,
.desktop-nav-group.active > .desktop-nav-button,
.desktop-nav-group.active > .desktop-icon-button,
.desktop-nav-button[aria-expanded="true"],
.desktop-icon-button[aria-expanded="true"] {
  border-color: rgba(28, 34, 38, 0.12);
  color: var(--accent-strong);
  background: var(--accent-soft);
  outline: none;
}

.desktop-nav-button[aria-expanded="true"] svg:last-child {
  transform: rotate(180deg);
}

.desktop-nav-link.active,
.desktop-nav-group.active > .desktop-nav-button,
.desktop-nav-group.active > .desktop-icon-button {
  box-shadow: inset 0 -2px 0 var(--accent-warm);
}

.desktop-nav-split {
  display: inline-flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
}

.desktop-nav-split-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 6px 0 12px;
  border: 0;
  border-radius: 8px 0 0 8px;
  color: #334155;
  background: transparent;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 850;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}

.desktop-nav-split-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  min-height: 32px;
  margin-right: 4px;
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  color: #334155;
  background: #ffffff;
  font: inherit;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

.desktop-nav-split-label svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.desktop-nav-split-toggle svg {
  width: 15px;
  height: 15px;
  color: var(--muted);
  transition: transform 160ms ease;
}

.desktop-nav-split-toggle:hover,
.desktop-nav-split-toggle:focus-visible,
.desktop-nav-group.active .desktop-nav-split-toggle {
  border-color: rgba(28, 34, 38, 0.34);
  background: #f8faff;
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
  color: var(--accent-strong);
}

.desktop-nav-split:hover,
.desktop-nav-split:focus-within,
.desktop-nav-group.active .desktop-nav-split {
  border-color: rgba(28, 34, 38, 0.12);
  background: var(--accent-soft);
}

.desktop-nav-split:hover .desktop-nav-split-label,
.desktop-nav-split:hover .desktop-nav-split-toggle,
.desktop-nav-split:focus-within .desktop-nav-split-label,
.desktop-nav-split:focus-within .desktop-nav-split-toggle,
.desktop-nav-group.active .desktop-nav-split-label,
.desktop-nav-group.active .desktop-nav-split-toggle {
  color: var(--accent-strong);
}

.desktop-nav-group.active .desktop-nav-split {
  box-shadow: inset 0 -2px 0 var(--accent-warm);
}

.desktop-nav-split-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.desktop-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}

.bpo-external-company-switcher {
  position: relative;
  width: clamp(240px, 23vw, 360px);
  min-width: 0;
}

.bpo-company-trigger {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 6px 11px;
  border: 1px solid rgba(28, 34, 38, 0.14);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.bpo-company-trigger:hover {
  border-color: rgba(14, 124, 123, 0.35);
  background: #fbfefe;
}

.bpo-company-trigger:focus-visible {
  border-color: var(--accent-strong);
  outline: 3px solid rgba(14, 124, 123, 0.16);
  outline-offset: 1px;
}

.bpo-company-trigger > svg {
  width: 17px;
  height: 17px;
  pointer-events: none;
}

.bpo-company-trigger > svg:last-child {
  width: 14px;
  height: 14px;
  color: var(--muted);
  transition: transform 160ms ease;
}

.bpo-external-company-switcher[data-open="true"] .bpo-company-trigger > svg:last-child,
.mobile-bpo-company-switcher[data-open="true"] .bpo-company-trigger > svg:last-child {
  transform: rotate(180deg);
}

.bpo-company-current,
.bpo-company-option > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.bpo-company-current strong,
.bpo-company-current small,
.bpo-company-option strong,
.bpo-company-option small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bpo-company-current strong,
.bpo-company-option strong {
  color: var(--text);
  font-size: 0.84rem;
  font-weight: 900;
  line-height: 1.15;
}

.bpo-company-current small,
.bpo-company-option small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 750;
  line-height: 1.15;
}

.bpo-company-popover {
  position: absolute;
  z-index: 170;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: max(100%, 360px);
  max-width: min(430px, calc(100vw - 48px));
  max-height: min(360px, calc(100vh - var(--desktop-header-height) - 32px));
  padding: 6px;
  overflow-y: auto;
  border: 1px solid rgba(28, 34, 38, 0.14);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.18);
}

.bpo-company-popover[hidden] {
  display: none;
}

.bpo-company-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.bpo-company-option:hover,
.bpo-company-option:focus-visible {
  background: rgba(14, 124, 123, 0.08);
  outline: none;
}

.bpo-company-option[aria-selected="true"] {
  background: rgba(14, 124, 123, 0.12);
}

.bpo-company-option > svg {
  width: 16px;
  height: 16px;
  color: var(--accent-strong);
  opacity: 0;
}

.bpo-company-option[aria-selected="true"] > svg {
  opacity: 1;
}

.mobile-bpo-company-switcher {
  display: none;
}

@media (min-width: 981px) and (max-width: 1240px) {
  .bpo-external-company-switcher {
    width: clamp(210px, 20vw, 260px);
  }

  .desktop-main-nav .desktop-nav-link {
    padding-inline: 9px;
  }
}

.desktop-header-actions .account-actions {
  flex-wrap: nowrap;
  min-width: 0;
}

.desktop-header-actions .tenant-switch {
  display: none;
}

.desktop-header-actions .account-link {
  display: none;
}

.desktop-mega {
  position: fixed;
  top: calc(var(--desktop-header-height) - 1px);
  left: var(--top-menu-left, 24px);
  z-index: 130;
  width: var(--top-menu-width, min(460px, calc(100vw - 48px)));
  max-width: calc(100vw - 48px);
  padding: 14px;
  border: 1px solid rgba(28, 34, 38, 0.13);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.16);
  backdrop-filter: blur(16px);
}

.desktop-mega[hidden] {
  display: none;
}

.desktop-mega-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  max-height: min(68vh, 640px);
  overflow: auto;
}

.desktop-mega-wide .desktop-mega-inner {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.desktop-mega-compact {
  width: var(--top-menu-width, min(420px, calc(100vw - 48px)));
}

.desktop-mega-compact .desktop-mega-inner {
  grid-template-columns: 1fr;
}

.desktop-mega-column {
  display: grid;
  align-content: start;
  gap: 6px;
  min-width: 0;
}

.desktop-mega-column > strong {
  display: block;
  padding: 0 8px 6px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.account-settings-menu {
  gap: 8px;
}

.account-settings-summary {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  margin: 0 0 4px;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--accent-strong), transparent 82%);
  border-radius: 8px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-soft), #fff 42%), #fff);
}

.account-settings-summary-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  color: #fff;
  background: var(--text);
}

.account-settings-summary-icon svg {
  width: 20px;
  height: 20px;
}

.account-settings-summary-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.account-settings-summary-copy > * {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-settings-summary-copy > small:first-child {
  color: var(--accent-strong);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.account-settings-summary-copy > strong {
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 900;
}

.account-settings-summary-copy > span {
  margin-top: 3px;
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 800;
}

.account-settings-summary-copy > small:last-child {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 750;
}

.account-settings-build {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 5px;
  padding-top: 8px;
  border-top: 1px solid color-mix(in srgb, var(--border), transparent 35%);
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
}

.account-settings-build code {
  padding: 2px 6px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent-soft), #fff 46%);
  color: var(--accent-strong);
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 0.66rem;
  font-weight: 900;
}

.desktop-mega-link {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--text);
  text-decoration: none;
}

.desktop-mega-link:hover,
.desktop-mega-link:focus-visible,
.desktop-mega-link.active {
  border-color: rgba(28, 34, 38, 0.12);
  background: #f7f9ff;
  outline: none;
}

.desktop-mega-link.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.desktop-mega-link.disabled,
.desktop-mega-link.disabled:hover {
  border-color: transparent;
  color: var(--sidebar-disabled);
  background: transparent;
  box-shadow: none;
  cursor: not-allowed;
}

.desktop-mega-link.disabled svg,
.desktop-mega-link.disabled small {
  color: currentColor;
}

.desktop-mega-link svg {
  width: 19px;
  height: 19px;
  color: var(--accent-strong);
}

.desktop-mega-link > i,
.desktop-mega-link > svg {
  justify-self: center;
}

.desktop-mega-link span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.desktop-mega-link strong,
.desktop-mega-link small {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.desktop-mega-link strong {
  font-size: 0.9rem;
  font-weight: 900;
}

.desktop-mega-link small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.desktop-mega-link-success svg {
  color: var(--success);
}

.desktop-mega-link-warn svg {
  color: var(--amber);
}

.sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.brand {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  gap: 0;
  min-height: 48px;
  min-width: 0;
  color: var(--sidebar-text);
  text-decoration: none;
}

.brand-copy {
  min-width: 0;
}

.brand-lockup {
  display: block;
  width: min(184px, 100%);
  max-width: 184px;
  height: auto;
}

.brand-icon {
  display: none;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.brand strong,
.brand small {
  display: block;
  line-height: 1.1;
}

.brand small {
  margin-top: 4px;
  color: var(--sidebar-muted);
}

.app-page-loading {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(241, 244, 244, 0.78);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.app-page-loading[hidden] {
  display: none;
}

body.app-page-loading-active {
  cursor: progress;
}

.app-page-loading-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: min(430px, calc(100vw - 32px));
  padding: 20px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18);
}

/* Marca animada do carregamento: os tres tracos do simbolo PRAXXO.
   Substitui a grade modular 3x3 herdada do FinanceiroPro. */
.px-mark {
  display: block;
  width: 54px;
  height: 54px;
}

.px-mark path {
  fill: none;
  stroke-width: 14;
  stroke-linecap: butt;
}

.px-mark .px-seg-a,
.px-mark .px-seg-b {
  stroke: var(--brand-blue-strong);
}

.px-mark .px-cross {
  stroke: var(--brand-orange);
}

/* Giro: o par inteiro gira meia-volta, com aceleracao e parada secas. */
@keyframes px-spin {
  0% { transform: rotate(0deg); }
  55%, 100% { transform: rotate(180deg); }
}

.px-mark--giro .px-rig {
  transform-origin: 50px 50px;
  animation: px-spin 1.9s cubic-bezier(0.6, 0, 0.25, 1) infinite;
}

@media (prefers-reduced-motion: reduce) {
  .px-mark .px-rig {
    animation: none;
  }
}

.app-page-loading-copy {
  display: grid;
  min-width: 0;
  gap: 4px;
  text-align: left;
}

.app-page-loading-copy strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 1.06rem;
  font-weight: 900;
  line-height: 1.18;
}

.app-page-loading-copy span {
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.35;
}

.app-loading-progress {
  grid-column: 1 / -1;
  overflow: hidden;
  height: 4px;
  border-radius: 4px;
  background: rgba(28, 34, 38, 0.09);
}

.app-loading-progress span {
  display: block;
  width: 46%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-orange));
  animation: app-loading-progress 1.18s ease-in-out infinite;
}

@media (max-width: 520px) {
  .app-page-loading {
    padding: 16px;
  }

  .app-page-loading-panel {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 14px;
    width: min(320px, calc(100vw - 32px));
    padding: 18px;
    text-align: center;
  }

  }

@media print {
  .app-page-loading {
    display: none !important;
  }
}

.sidebar-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(216, 222, 230, 0.18);
  border-radius: 8px;
  color: var(--sidebar-link);
  background: var(--sidebar-strong);
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}

.sidebar-toggle svg {
  width: 18px;
  height: 18px;
  stroke-width: 2.1;
}

.sidebar-toggle:hover {
  color: var(--accent);
  background: var(--sidebar-soft);
  border-color: rgba(28, 34, 38, 0.22);
}

.side-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nav-label {
  margin: 20px 12px 8px;
  color: var(--sidebar-muted);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.nav-label-highlight {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 22px 0 4px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  color: var(--accent);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  background: linear-gradient(135deg, rgba(28, 34, 38, 0.08), rgba(255, 93, 0, 0.08));
}

.nav-label-highlight::before {
  content: "";
  width: 6px;
  height: 18px;
  flex: 0 0 6px;
  border-radius: 999px;
  background: var(--accent-warm);
}

.side-link {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 0 12px;
  border-radius: 8px;
  color: var(--sidebar-link);
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease;
}

.side-link svg {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  stroke-width: 2;
}

.side-link span {
  min-width: 0;
}

.side-link:hover,
.side-link.active {
  color: var(--sidebar-text);
  background: var(--sidebar-soft);
}

.side-link.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.side-link.disabled {
  color: var(--sidebar-disabled);
  cursor: not-allowed;
}

.side-group-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: center;
  gap: 4px;
  border-radius: 8px;
  transition: background 160ms ease, box-shadow 160ms ease;
}

.side-group-row:hover,
.side-group-row.active {
  background: var(--sidebar-soft);
}

.side-group-row.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.side-group-link,
.side-group-row .side-link:hover {
  background: transparent;
  box-shadow: none;
}

.side-group-link {
  min-width: 0;
  padding-right: 6px;
}

.side-group-toggle {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--sidebar-muted);
  background: transparent;
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.side-group-toggle svg {
  width: 16px;
  height: 16px;
  stroke-width: 2.4;
  transition: transform 160ms ease;
}

.side-group-toggle:hover,
.side-group-toggle:focus-visible {
  color: var(--sidebar-text);
  background: rgba(28, 34, 38, 0.08);
}

.side-group-toggle:focus-visible {
  outline: 2px solid rgba(28, 34, 38, 0.18);
  outline-offset: 2px;
}

.side-group-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.side-subnav {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: -2px 0 8px 39px;
  padding-left: 13px;
  border-left: 0;
}

.side-subnav[hidden] {
  display: none;
}

.side-sub-link {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 34px;
  min-width: 0;
  padding: 0 10px;
  border-radius: 7px;
  color: var(--sidebar-muted);
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease;
}

.side-sub-link svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  stroke-width: 2;
}

.side-sub-link span {
  min-width: 0;
}

.side-sub-divider {
  height: 1px;
  margin: 2px 10px 2px 0;
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.16), rgba(28, 34, 38, 0.03));
  border-radius: 999px;
}

.side-nav-divider {
  height: 1px;
  margin: 8px 10px 10px;
  background: linear-gradient(90deg, rgba(255, 93, 0, 0.56), rgba(28, 34, 38, 0.2), rgba(28, 34, 38, 0.03));
  border-radius: 999px;
}

.side-sub-link:hover,
.side-sub-link.active {
  color: var(--sidebar-text);
  background: rgba(28, 34, 38, 0.06);
}

.side-sub-link.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.side-sub-link.side-sub-link-finance {
  --finance-link-accent: var(--accent-warm);
  --finance-link-soft: rgba(255, 93, 0, 0.1);
  --finance-link-strong: #7c2d12;
  color: #465875;
}

.side-sub-link.side-sub-link-finance svg {
  color: var(--finance-link-accent);
}

.side-sub-link.side-sub-link-finance::after {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  margin-left: auto;
  border-radius: 999px;
  background: var(--finance-link-accent);
  box-shadow: 0 0 0 3px var(--finance-link-soft);
  opacity: 0.72;
}

.side-sub-link.side-sub-link-finance:hover,
.side-sub-link.side-sub-link-finance.active {
  color: var(--finance-link-strong);
  background: var(--finance-link-soft);
}

.side-sub-link.side-sub-link-finance.active {
  box-shadow: inset 3px 0 0 var(--finance-link-accent);
}

.side-sub-link.side-sub-link-finance.active::after,
.side-sub-link.side-sub-link-finance:hover::after {
  opacity: 1;
}

.side-sub-link.side-sub-link-finance-receber {
  --finance-link-accent: #1f8f5f;
  --finance-link-soft: rgba(31, 143, 95, 0.11);
  --finance-link-strong: #145c3e;
}

.side-sub-link.side-sub-link-finance-pagar {
  --finance-link-accent: #b45309;
  --finance-link-soft: rgba(180, 83, 9, 0.11);
  --finance-link-strong: #7c3a04;
}

.side-sub-group {
  display: grid;
  gap: 3px;
}

.side-sub-parent-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: 3px;
  border-radius: 7px;
}

.side-sub-parent {
  font-weight: 800;
}

.side-sub-toggle {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--sidebar-muted);
  background: transparent;
  transition: background 160ms ease, color 160ms ease;
}

.side-sub-toggle svg {
  width: 15px;
  height: 15px;
  stroke-width: 2.4;
  transition: transform 160ms ease;
}

.side-sub-toggle:hover,
.side-sub-toggle:focus-visible {
  color: var(--sidebar-text);
  background: rgba(28, 34, 38, 0.08);
}

.side-sub-toggle:focus-visible {
  outline: 2px solid rgba(28, 34, 38, 0.18);
  outline-offset: 2px;
}

.side-sub-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.side-sub-childnav {
  display: grid;
  gap: 2px;
  margin-left: 25px;
  padding-left: 10px;
  border-left: 1px solid rgba(28, 34, 38, 0.1);
}

.side-sub-childnav[hidden] {
  display: none;
}

.side-sub-child-link {
  display: flex;
  align-items: center;
  min-height: 28px;
  min-width: 0;
  padding: 0 9px;
  border-radius: 7px;
  color: var(--sidebar-muted);
  font-size: 0.77rem;
  font-weight: 760;
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease;
}

.side-sub-child-link:hover,
.side-sub-child-link.active {
  color: var(--sidebar-text);
  background: rgba(28, 34, 38, 0.055);
}

.side-sub-child-link.active {
  box-shadow: inset 2px 0 0 var(--accent-warm);
}

.side-sub-child-link svg {
  width: 14px;
  height: 14px;
  margin-right: 6px;
}

.desktop-mega-link.desktop-mega-child {
  margin-left: 1.4rem;
  padding-block: 0.45rem;
}

.app-main {
  min-width: 0;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 86px;
  padding: 18px 32px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
}

.eyebrow {
  margin: 0 0 3px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.breadcrumb-nav {
  margin-bottom: 5px;
  color: var(--breadcrumb-current);
  font-family: var(--font-heading);
  font-size: 0.76rem;
  font-weight: 700;
}

.breadcrumb-nav ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb-nav li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.breadcrumb-nav li + li::before {
  content: "/";
  color: var(--breadcrumb-separator);
}

.topbar .breadcrumb-nav a {
  color: var(--breadcrumb-link);
  text-decoration: none;
}

.topbar .breadcrumb-nav a:hover {
  color: var(--breadcrumb-link-hover);
  text-decoration: underline;
}

.breadcrumb-nav span {
  color: var(--breadcrumb-current);
}

.topbar h1 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.55rem;
  font-weight: 750;
}

.topbar-owner-filter {
  display: flex;
  align-items: center;
  margin: 0;
}

.topbar-owner-filter .field {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 220px;
  max-width: 340px;
}

.topbar-owner-filter .field > span {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.topbar-owner-filter select {
  width: 100%;
  min-height: 40px;
  padding: 0 34px 0 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background-color: #fff;
  color: var(--text);
  font: inherit;
  font-size: 0.92rem;
  cursor: pointer;
}

/* Fallback do seletor de empresa no corpo: exibido so quando a .topbar (que hospeda o TitleActions)
   e ocultada no mobile (<=980px). No desktop fica oculto para nao duplicar o seletor do cabecalho. */
.owner-filter-mobile {
  display: none;
}

@media (max-width: 980px) {
  .owner-filter-mobile {
    display: block;
    margin: 0 0 16px;
  }

  .owner-filter-mobile .field {
    max-width: 420px;
  }
}

/* Conferencia da importacao do plano de contas (diff antes de gravar). */
.conf-panel {
  margin-top: 18px;
  border: 1px solid var(--line);
}

.conf-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 14px;
}

.conf-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--text);
}

.conf-chip.novas {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.conf-chip.alteradas {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.conf-chip.removidas {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.conf-chip.iguais {
  color: var(--muted);
}

.conf-bucket {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 6px 12px;
  margin-bottom: 12px;
  background: #fff;
}

.conf-bucket > summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 4px;
  font-weight: 700;
  list-style: none;
}

.conf-bucket > summary::-webkit-details-marker {
  display: none;
}

.conf-bucket-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.conf-count {
  display: inline-flex;
  min-width: 24px;
  justify-content: center;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--line);
  color: var(--text);
  font-size: 0.8rem;
}

.conf-flag {
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 700;
}

.conf-flag.danger {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

.conf-flag.warning {
  background: #fffbeb;
  color: #92400e;
  border: 1px solid #fde68a;
}

.conf-de-para {
  white-space: nowrap;
}

.conf-de-para s {
  color: var(--muted);
}

.conf-de-para.danger strong {
  color: #991b1b;
}

.conf-mais,
.conf-iguais {
  margin: 8px 4px 4px;
  font-size: 0.85rem;
}

.conf-actions {
  margin-top: 16px;
  gap: 10px;
  align-items: center;
}

.conf-actions form {
  margin: 0;
}

.content {
  width: min(1320px, 100%);
  padding: 28px 32px 48px;
}

/* Opt-in por tela (ViewData["ContentClass"] = "content-full"): ocupa toda a
   coluna do layout, sem o teto de 1720px do .content-wide. */
.content.content-full {
  width: 100%;
}

.account-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}

.account-actions form {
  margin: 0;
}

.account-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: 360px;
  min-width: 0;
  color: var(--text);
  text-decoration: none;
}

.account-identity {
  display: grid;
  gap: 2px;
  min-width: 0;
  line-height: 1.05;
}

.account-name,
.account-company,
.account-license {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-name {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 760;
}

.account-company {
  color: var(--text);
  font-size: 0.76rem;
  font-weight: 760;
}

.account-license {
  color: color-mix(in srgb, var(--muted), var(--text) 8%);
  font-size: 0.72rem;
  font-weight: 720;
}

.tenant-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 330px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: var(--surface-muted);
  font-size: 0.84rem;
  font-weight: 800;
}

.tenant-pill span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tenant-pill svg,
.tenant-switch svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.avatar {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  font-size: 0.9rem;
  font-weight: 800;
}

.btn-primary-app,
.btn-secondary-app {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.btn-primary-app {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 10px 20px rgba(28, 34, 38, 0.14);
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.btn-primary-app:hover {
  color: #fff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
  box-shadow: 0 12px 24px rgba(28, 34, 38, 0.18);
}

.btn-secondary-app {
  color: var(--accent);
  background: var(--surface);
  border-color: rgba(28, 34, 38, 0.18);
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.btn-secondary-app:hover {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.32);
}

.btn-primary-app:focus-visible,
.btn-secondary-app:focus-visible {
  outline: 3px solid var(--brand-blue-ring);
  outline-offset: 2px;
}

.btn-primary-app:active {
  transform: translateY(1px);
  box-shadow: 0 6px 14px rgba(28, 34, 38, 0.14);
}

.btn-primary-app:disabled,
.btn-secondary-app:disabled {
  color: var(--muted);
  background: var(--surface-muted);
  border-color: var(--line);
  cursor: not-allowed;
  box-shadow: none;
  opacity: 1;
}

.btn-primary-app.is-loading,
.btn-primary-app.is-loading:disabled {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
  cursor: progress;
}

.btn-secondary-app.is-loading,
.btn-secondary-app.is-loading:disabled {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.3);
  cursor: progress;
  opacity: 1;
}

.btn-primary-app.is-loading svg,
.btn-secondary-app.is-loading svg {
  animation: bank-processing-spin 1.1s linear infinite;
}

.btn-secondary-app.disabled {
  color: var(--muted);
  background: var(--surface-muted);
  cursor: not-allowed;
  opacity: 0.74;
}

.hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  gap: 22px;
  align-items: stretch;
}

.panel,
.metric-card,
.module-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.panel {
  padding: 26px;
}

/* Regua fina para separar blocos dentro do mesmo .panel (ex.: importacao x consulta). */
.panel-section-divider {
  height: 1px;
  margin-top: 22px;
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.22), rgba(148, 163, 184, 0.16));
}

.panel h2,
.module-card h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 760;
}

.panel p {
  margin: 12px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.actions-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.dashboard-overview {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 12px 24px;
  padding: 18px 0 4px;
}

.mobile-dashboard-quick,
.mobile-dashboard-feed {
  display: none;
}

.dashboard-overview h2 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
}

.dashboard-overview p:last-child {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.5;
}

.dashboard-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  flex: 0 0 auto;
}

.dashboard-metric-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-kpi strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-kpi small {
  min-height: 34px;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 16px;
  margin-top: 22px;
}

.dashboard-panel {
  min-width: 0;
}

.dashboard-panel-wide,
.dashboard-panel-full {
  min-width: 0;
}

.dashboard-panel-full {
  grid-column: 1 / -1;
}

.dashboard-bars {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.dashboard-bar-row {
  display: grid;
  grid-template-columns: minmax(80px, 0.75fr) minmax(110px, auto);
  gap: 8px 12px;
  align-items: center;
}

.dashboard-bar-row strong,
.dashboard-bar-row small {
  display: block;
}

.dashboard-bar-row strong {
  font-size: 0.9rem;
}

.dashboard-bar-row small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.dashboard-bar-row > span {
  justify-self: end;
  font-weight: 850;
}

.dashboard-bar-track {
  grid-column: 1 / -1;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--surface-muted);
}

.dashboard-bar-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--success);
}

.dashboard-bars-danger .dashboard-bar-track span {
  background: var(--brand-orange);
}

.dashboard-balance {
  font-weight: 900;
}

.dashboard-balance.positive {
  color: var(--success-strong);
}

.dashboard-balance.negative {
  color: var(--danger);
}

.section-header > .actions-row {
  align-items: center;
  margin-top: 0;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

.finance-summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.metric-grid-fluid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.fiscal-metric-grid {
  margin-top: 4px;
}

.automation-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}

.metric-card {
  padding: 18px;
}

.metric-link-card {
  display: block;
  color: var(--text);
  text-decoration: none;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.metric-link-card:hover,
.metric-link-card:focus-visible {
  color: var(--text);
  border-color: color-mix(in srgb, var(--accent), var(--line) 35%);
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12);
  transform: translateY(-1px);
}

.metric-link-card:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent), transparent 72%);
  outline-offset: 3px;
}

.table-panel[id] {
  scroll-margin-top: 18px;
}

.collapsible-entry[id] {
  scroll-margin-top: 18px;
}

.finance-sections {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 22px;
}

.finance-sections > .table-panel {
  margin-top: 0;
}

.service-mode-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.service-mode-link {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 68px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.service-mode-link svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: var(--accent-strong);
}

.service-mode-link span {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.service-mode-link strong {
  overflow: hidden;
  font-size: 0.92rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.service-mode-link small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.service-mode-link:hover,
.service-mode-link.active {
  border-color: rgba(28, 34, 38, 0.34);
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
  transform: translateY(-1px);
}

.service-mode-link.active {
  background: var(--accent-soft);
  box-shadow: inset 3px 0 0 var(--accent-warm), 0 14px 30px rgba(15, 23, 42, 0.08);
}

.service-page-panel {
  padding: 22px 26px;
}

.service-page-panel-filters-only {
  padding-top: 18px;
  padding-bottom: 18px;
}

.service-page-panel .section-header {
  align-items: center;
}

.service-page-panel .section-header .actions-row {
  margin-top: 0;
}

.service-page-filter {
  grid-template-columns: minmax(420px, 1fr) minmax(260px, 320px) auto;
  margin-top: 16px;
}

.service-page-panel-filters-only .service-page-filter {
  margin-top: 0;
}

.service-page-filter .span-2 {
  grid-column: auto;
}

.service-page-filter .form-actions {
  justify-content: flex-start;
}

.filter-bar.control-delivery-filter {
  grid-template-columns: 190px minmax(280px, 1fr) minmax(260px, 1fr) 190px;
  grid-template-areas:
    "month clients obligation category"
    "periodicity search search actions";
  column-gap: 16px;
  row-gap: 14px;
  margin-top: 0;
}

.control-delivery-header-actions {
  justify-content: flex-end;
  margin-bottom: 12px;
}

.control-delivery-filter > .field {
  min-width: 0;
}

.control-delivery-filter-month .month-year-control,
.control-delivery-filter-month input[data-month-year] {
  min-width: 0;
  width: 100%;
}

.control-delivery-filter-month .month-year-control[data-month-year-open="true"] {
  z-index: 20;
}

.control-delivery-filter-month .month-year-popover {
  z-index: 20;
  top: calc(100% + 6px);
  right: auto;
  left: 0;
  width: min(272px, calc(100vw - 32px));
  padding: 10px;
}

.control-delivery-filter-month .month-year-head {
  grid-template-columns: 30px minmax(0, 1fr) 30px;
  gap: 6px;
  min-height: 34px;
  padding: 2px;
}

.control-delivery-filter-month .month-year-nav {
  width: 28px;
  height: 28px;
}

.control-delivery-filter-month .month-year-grid {
  gap: 6px;
  margin-top: 8px;
}

.control-delivery-filter-month .month-year-option {
  min-height: 34px;
  padding: 0 6px;
  font-size: 0.82rem;
}

.control-delivery-filter-month .month-year-footer {
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
}

.control-delivery-filter-month .month-year-link {
  min-height: 28px;
  padding: 0 8px;
  font-size: 0.74rem;
}

.control-delivery-filter-month {
  grid-area: month;
}

.control-delivery-filter-clients {
  grid-area: clients;
}

.control-delivery-filter-clients .client-picker-trigger {
  min-height: 44px;
  height: 44px;
  padding: 9px 11px;
  font-size: 0.9rem;
  font-weight: 400;
}

.control-delivery-filter-clients .client-picker-trigger span[data-client-filter-summary] {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.control-delivery-filter-clients .client-picker-panel {
  right: auto;
  width: min(460px, calc(100vw - 48px));
}

.control-delivery-filter-clients .client-picker-options {
  max-height: 340px;
}

.control-delivery-filter-clients .client-picker-all input[type="checkbox"],
.control-delivery-filter-clients .client-picker-option input[type="checkbox"] {
  width: auto;
  min-height: 0;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.control-delivery-filter-clients .client-picker-option input[type="checkbox"] {
  margin-top: 2px;
}

.control-delivery-filter-clients .client-picker-option {
  align-items: start;
}

.control-delivery-filter-obligation {
  grid-area: obligation;
}

.control-delivery-filter-category {
  grid-area: category;
}

.control-delivery-filter-periodicity {
  grid-area: periodicity;
}

.control-delivery-filter-search {
  grid-area: search;
}

.control-delivery-filter .form-actions {
  grid-area: actions;
}

@media (max-width: 1180px) {
  .filter-bar.control-delivery-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "month clients"
      "obligation category"
      "periodicity search"
      "actions actions";
  }
}

@media (max-width: 680px) {
  .filter-bar.control-delivery-filter {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "month"
      "clients"
      "obligation"
      "category"
      "periodicity"
      "search"
      "actions";
  }
}

.control-delivery-summary {
  margin-top: 14px;
}

.delivery-drop-form {
  margin-top: 16px;
}

.delivery-drop-hint {
  position: sticky;
  top: 12px;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-radius: 8px;
  background: color-mix(in srgb, var(--surface), var(--accent-soft) 38%);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
  cursor: copy;
}

.delivery-drop-form .delivery-drop-hint {
  margin-top: 0;
}

.delivery-drop-message {
  margin-top: 10px;
}

.delivery-drop-hint > input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 1px;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.delivery-drop-copy {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.delivery-drop-copy > span:last-child {
  min-width: 0;
}

.delivery-drop-copy strong,
.delivery-drop-copy small {
  display: block;
}

.delivery-drop-copy strong {
  color: var(--text);
  font-weight: 850;
}

.delivery-drop-copy small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.delivery-drop-status {
  max-width: min(680px, 100%);
}

.delivery-drop-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border: 1px dashed rgba(28, 34, 38, 0.38);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
}

.delivery-drop-icon svg {
  width: 20px;
  height: 20px;
}

.delivery-drop-hint.is-drag-over {
  border-color: var(--accent-strong);
  background: var(--accent-soft);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08), 0 12px 28px rgba(15, 23, 42, 0.08);
}

.delivery-drop-hint.is-drop-error {
  border-color: rgba(190, 18, 60, 0.38);
  background: #fff1f2;
}

.delivery-drop-hint.is-uploading {
  border-color: rgba(28, 34, 38, 0.42);
  background: #eef2ff;
  cursor: progress;
}

.delivery-drop-hint.is-uploading .delivery-drop-icon::after {
  content: "";
  position: absolute;
  inset: 6px;
  border: 2px solid rgba(28, 34, 38, 0.12);
  border-top-color: var(--accent-strong);
  border-radius: 999px;
  animation: delivery-spin 850ms linear infinite;
}

.delivery-upload-results {
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.delivery-upload-results > strong {
  display: block;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 850;
}

.delivery-upload-result-list {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.delivery-upload-result {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: flex-start;
  padding: 9px 10px;
  border-radius: 8px;
  background: var(--surface-muted);
}

.delivery-upload-result.success {
  color: #065f46;
  background: #ecfdf5;
}

.delivery-upload-result.duplicate {
  color: #075985;
  background: #eff6ff;
}

.delivery-upload-result.warning {
  color: #92400e;
  background: #fffbeb;
}

.delivery-upload-result.review {
  color: #155e75;
  background: #ecfeff;
  border-color: #a5f3fc;
}

.delivery-upload-result.processing {
  color: #374151;
  background: #f8fafc;
}

.delivery-upload-result > svg {
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

.delivery-upload-result.processing > svg {
  animation: delivery-spin 850ms linear infinite;
}

.delivery-upload-result-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.delivery-upload-result-copy strong,
.delivery-upload-result-copy small {
  display: block;
}

.delivery-upload-result-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: inherit;
  font-weight: 850;
}

.delivery-upload-result-copy small {
  color: inherit;
  font-size: 0.82rem;
  font-weight: 700;
}

.delivery-upload-detected {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 4px 0 0;
  padding: 0;
  color: inherit;
}

.delivery-upload-detected div {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  min-width: min(220px, 100%);
}

.delivery-upload-detected dt,
.delivery-upload-detected dd {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
}

.delivery-upload-detected dt {
  color: color-mix(in srgb, currentColor, #fff 18%);
  font-weight: 850;
}

.delivery-upload-detected dd {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 700;
}

.delivery-upload-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 8px;
  margin: 8px 0 0;
  padding: 0;
}

.delivery-upload-summary-grid > div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, #fff 78%, transparent);
}

.delivery-upload-summary-grid dt,
.delivery-upload-summary-grid dd {
  margin: 0;
}

.delivery-upload-summary-grid dt {
  color: color-mix(in srgb, currentColor, #fff 20%);
  font-size: 0.7rem;
  font-weight: 850;
  line-height: 1.3;
}

.delivery-upload-summary-grid dd {
  display: grid;
  gap: 2px;
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.delivery-upload-summary-grid dd strong,
.delivery-upload-summary-grid dd small,
.delivery-upload-control-explanation strong,
.delivery-upload-control-explanation small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.delivery-upload-summary-grid dd strong {
  color: inherit;
  font-size: 0.84rem;
  line-height: 1.35;
}

.delivery-upload-summary-grid dd small {
  font-size: 0.74rem;
  font-weight: 700;
}

.delivery-upload-summary-grid > .delivery-upload-competence {
  border-color: color-mix(in srgb, currentColor 38%, transparent);
  background: color-mix(in srgb, #fff 92%, currentColor 8%);
}

.delivery-upload-summary-grid > .delivery-upload-competence dd strong {
  font-size: 0.98rem;
}

.delivery-upload-control-explanation {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 7px;
  padding: 9px 10px;
  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, #fff 86%, transparent);
}

.delivery-upload-control-explanation > svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin-top: 1px;
}

.delivery-upload-control-explanation > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.delivery-upload-control-explanation strong {
  font-size: 0.8rem;
  line-height: 1.35;
}

.delivery-upload-control-explanation small {
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.4;
}

.delivery-upload-technical {
  width: fit-content;
  max-width: 100%;
  margin-top: 4px;
}

.delivery-upload-technical summary {
  width: fit-content;
  color: color-mix(in srgb, currentColor, #000 8%);
  font-size: 0.76rem;
  font-weight: 800;
  cursor: pointer;
}

.delivery-upload-technical[open] {
  width: 100%;
}

.delivery-upload-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 4px;
}

.delivery-upload-actions .delivery-upload-confirm {
  margin-top: 0;
}

.delivery-upload-result-copy a,
.control-attachment-link,
.control-attachment-count {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  max-width: 100%;
  color: var(--accent-strong);
  font-size: 0.82rem;
  font-weight: 800;
  text-decoration: none;
}

.delivery-upload-result-copy a:hover,
.control-attachment-link:hover,
.control-attachment-count:hover {
  text-decoration: underline;
}

.delivery-upload-confirm {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  margin-top: 5px;
  padding: 7px 10px;
  border: 1px solid #0f766e;
  border-radius: 8px;
  color: #fff;
  background: #0f766e;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-align: left;
  white-space: normal;
  cursor: pointer;
}

.delivery-upload-confirm:hover {
  background: #115e59;
}

.delivery-upload-confirm:disabled {
  opacity: 0.65;
  cursor: wait;
}

.delivery-upload-confirm svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}

.delivery-upload-result-copy a svg,
.control-attachment-link svg,
.control-attachment-count svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.control-attachment-list {
  display: grid;
  gap: 4px;
  min-width: 160px;
  max-width: 230px;
}

.control-attachment-list > strong {
  color: var(--text);
  font-weight: 850;
}

.control-attachment-count {
  color: var(--text);
  font-weight: 850;
}

.control-attachment-link span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes delivery-spin {
  to {
    transform: rotate(360deg);
  }
}

.delivery-inline-details {
  display: grid;
  justify-items: end;
}

.delivery-inline-details > summary {
  list-style: none;
}

.delivery-inline-details > summary::-webkit-details-marker {
  display: none;
}

.delivery-inline-details[open] > summary {
  border-color: rgba(28, 34, 38, 0.38);
  background: var(--accent-soft);
}

.delivery-inline-details > summary.is-drag-over {
  border-color: var(--accent-strong);
  background: var(--accent-soft);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.delivery-inline-form {
  width: min(440px, calc(100vw - 64px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12);
  white-space: normal;
}

.actions-cell .delivery-inline-form {
  display: grid;
  align-items: stretch;
  gap: 10px;
  margin-top: 8px;
}

.delivery-inline-form .drop-upload-target {
  min-width: 0;
}

.delivery-form-row[hidden] {
  display: none;
}

.control-delivery-table .delivery-form-row td {
  padding: 0 10px 16px;
  background: #f8fafc;
}

.delivery-row-form {
  display: grid;
  grid-template-columns: minmax(230px, 1.1fr) minmax(160px, 0.8fr) minmax(220px, 1fr);
  gap: 12px;
  align-items: end;
  width: 100%;
  max-width: none;
  box-shadow: none;
}

.delivery-row-form .delivery-row-drop {
  min-height: 122px;
}

.delivery-row-form .delivery-row-notes {
  grid-column: span 2;
}

.delivery-row-form .delivery-checkbox {
  grid-column: 1 / 3;
  align-self: center;
  margin: 0;
}

.delivery-row-form .btn-primary-app {
  justify-self: end;
  min-width: 150px;
}

.delivery-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 8px 0 12px;
  color: var(--text);
  font-weight: 600;
  line-height: 1.35;
}

.delivery-checkbox input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 2px;
}

@media (max-width: 980px) {
  .delivery-row-form {
    grid-template-columns: 1fr;
  }

  .delivery-row-form .delivery-row-notes,
  .delivery-row-form .delivery-checkbox {
    grid-column: auto;
  }

  .delivery-row-form .btn-primary-app {
    justify-self: stretch;
  }
}

.icon-action.disabled {
  color: var(--muted);
  background: var(--surface-muted);
  cursor: not-allowed;
  pointer-events: none;
}

.control-delivery-tabs {
  gap: 0;
  margin-top: 16px;
}

.control-delivery-tab-list {
  position: static;
  top: auto;
  z-index: auto;
  background: transparent;
  box-shadow: none;
}

.control-delivery-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.control-delivery-tab:hover {
  color: var(--text);
  background: var(--surface-muted);
}

.control-delivery-tab.active {
  color: var(--accent-strong);
  background: #fff;
  border-color: var(--line);
}

.control-delivery-tab strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.78rem;
  font-weight: 900;
}

.control-delivery-result-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 800;
}

.control-delivery-result-bar strong {
  color: var(--text);
  font-weight: 900;
}

.control-delivery-result-bar small {
  color: var(--accent-strong);
  font-weight: 900;
}

.mini-table.control-delivery-table {
  min-width: 100%;
  table-layout: fixed;
}

.control-delivery-table .control-col-obligation { width: 11%; }
.control-delivery-table .control-col-competence { width: 7%; }
.control-delivery-table .control-col-client { width: 14%; }
.control-delivery-table .control-col-document { width: 10.5%; }
.control-delivery-table .control-col-regime { width: 7.5%; }
.control-delivery-table .control-col-responsible { width: 18%; }
.control-delivery-table .control-col-due-date { width: 8%; }
.control-delivery-table .control-col-status { width: 8.5%; }
.control-delivery-table .control-col-proof { width: 8.5%; }
.control-delivery-table .control-col-actions { width: 6.5%; }

.mini-table.control-delivery-table th,
.mini-table.control-delivery-table td {
  padding-right: 7px;
  padding-left: 7px;
  overflow-wrap: anywhere;
}

.mini-table.control-delivery-table th {
  font-size: 0.68rem;
  line-height: 1.2;
}

.mini-table.control-delivery-table td {
  font-size: 0.8rem;
  line-height: 1.35;
}

.control-delivery-table .task-responsibility-list,
.control-delivery-table .control-attachment-list {
  min-width: 0;
}

.control-delivery-table .actions-cell {
  width: auto;
  white-space: normal;
}

.control-delivery-table .actions-group {
  gap: 4px;
}

.control-delivery-table .actions-group .icon-action {
  width: 1.8rem;
  height: 1.8rem;
}

@media (max-width: 1279px) {
  .mini-table.control-delivery-table {
    min-width: 64rem;
  }
}

.finance-section-bank {
  order: 1;
}

.finance-section-integrations {
  order: 2;
}

.finance-section-financial {
  order: 3;
}

.finance-section-categories {
  order: 4;
}

.finance-section-cost-centers {
  order: 5;
}

.finance-section-allocation-rules {
  order: 6;
}

form.allocation-rule-form {
  align-items: start;
}

.allocation-items {
  display: grid;
  gap: 10px;
}

.allocation-items-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.allocation-items-heading > div {
  display: grid;
  gap: 5px;
}

.allocation-items-heading strong {
  font-size: 0.88rem;
  font-weight: 800;
}

.allocation-items-heading span {
  display: block;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 650;
}

.allocation-items-list {
  display: grid;
  gap: 12px;
}

.allocation-item-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(130px, 180px) minmax(260px, 1fr);
  gap: 12px;
  align-items: start;
}

.allocation-observation-cell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  min-width: 0;
}

.allocation-row-actions {
  display: flex;
  gap: 8px;
  align-items: flex-end;
  justify-content: flex-end;
  min-height: 66px;
}

.allocation-add-action {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.28);
  background: var(--accent-soft);
}

.allocation-add-action:hover {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

.allocation-breakdown {
  display: grid;
  gap: 4px;
}

.allocation-breakdown span {
  display: block;
  color: var(--muted);
}

.allocation-breakdown strong {
  margin-right: 8px;
  color: var(--text);
}

.metric-card span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 700;
}

.metric-card strong {
  display: block;
  margin-top: 8px;
  font-size: 1.55rem;
  line-height: 1.2;
}

.metric-card small {
  display: block;
  margin-top: 6px;
  color: var(--accent);
  font-weight: 700;
}

.receivable-summary-strip {
  position: fixed;
  bottom: 18px;
  /* Alinha ao grid interno: 32px do content + 26px do panel + 1px da borda. */
  left: calc(var(--context-sidebar-width) + 59px);
  z-index: 96;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: min(1602px, calc(100% - var(--context-sidebar-width) - 118px));
  min-height: 52px;
  padding: 4px 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 16px 42px rgba(15, 23, 42, 0.14);
  backdrop-filter: blur(14px);
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.receivable-summary-strip[hidden] {
  display: none;
}

.receivable-summary-strip.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.receivable-summary-strip-item {
  display: grid;
  align-content: center;
  min-width: 0;
  padding: 0 12px;
  border-right: 1px solid rgba(216, 222, 230, 0.82);
}

.receivable-summary-strip-item:last-child {
  border-right: 0;
}

.receivable-summary-strip-item span {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1.1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.receivable-summary-strip-item strong {
  overflow: hidden;
  margin-top: 1px;
  color: var(--text);
  font-size: 0.94rem;
  font-weight: 900;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receivable-summary-strip-item small {
  overflow: hidden;
  margin-top: 1px;
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.sidebar-collapsed .receivable-summary-strip {
  left: calc(var(--context-sidebar-collapsed-width) + 59px);
  width: min(1602px, calc(100% - var(--context-sidebar-collapsed-width) - 118px));
}

body.has-receivable-summary-strip .content {
  padding-bottom: 100px;
}

/* Dashboard BPO (/Bpo/Index) — graficos SVG renderizados no servidor. O app nao tem lib de grafico:
   a geometria sai do PageModel e o viewBox cuida da responsividade, sem JS.
   Series: azul = entra (vendas), laranja = sai (compras, a pagar) — mesma convencao das
   .dashboard-bars/.dashboard-bars-danger do dashboard principal. Os dois tons foram validados como
   par categorico (banda de luminosidade, croma, separacao CVD e contraste sobre o branco); o azul da
   marca puro (--brand-blue) e escuro demais para preencher area, por isso o passo mais claro aqui. */
.bpo-chart-svg {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 10px;
  overflow: visible;
}

.bpo-chart-grid {
  stroke: var(--line);
  stroke-width: 1;
}

.bpo-chart-baseline {
  stroke: var(--muted);
  stroke-width: 1;
}

.bpo-chart-axis {
  fill: var(--muted);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
}

.bpo-chart-bar {
  pointer-events: none;
}

.bpo-chart-bar-vendas {
  fill: var(--chart-vendas);
}

.bpo-chart-bar-compras,
.bpo-chart-bar-pagar {
  fill: var(--chart-compras);
}

/* Area de hover do grupo inteiro: alvo maior que a barra, para o tooltip nativo (<title>) pegar
   tambem nos dias sem valor. */
.bpo-chart-hit {
  fill: transparent;
}

.bpo-chart-group:hover .bpo-chart-hit {
  fill: var(--sidebar-soft);
}

.bpo-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 14px;
}

.bpo-chart-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.bpo-chart-swatch {
  width: 11px;
  height: 11px;
  border-radius: 3px;
}

.bpo-chart-swatch-vendas {
  background: var(--chart-vendas);
}

.bpo-chart-swatch-compras {
  background: var(--chart-compras);
}

.bpo-chart-table {
  margin-top: 16px;
}

.bpo-due-list {
  display: grid;
  gap: 2px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.bpo-due-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}

.bpo-due-item:last-child {
  border-bottom: 0;
}

.bpo-due-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.bpo-due-main strong {
  overflow: hidden;
  font-size: 0.88rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bpo-due-main small,
.bpo-due-side small {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
}

.bpo-due-side {
  display: grid;
  gap: 2px;
  justify-items: end;
  text-align: right;
  white-space: nowrap;
}

.bpo-due-value {
  font-size: 0.9rem;
  font-weight: 850;
}

.bpo-due-soon {
  color: var(--accent-warm);
}

.module-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 22px;
}

.module-card {
  padding: 20px;
}

.module-link-card {
  display: grid;
  gap: 10px;
  color: var(--text);
  text-decoration: none;
}

.module-link-card svg {
  width: 22px;
  height: 22px;
  color: var(--accent);
}

.module-link-card:hover {
  color: var(--text);
  border-color: rgba(28, 34, 38, 0.42);
  transform: translateY(-1px);
}

.module-card p {
  margin: 10px 0 0;
  color: var(--muted);
}

.inventory-filter-bar {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-areas:
    "client client client client client client origin origin origin status status status"
    "search search search search search search search actions actions actions actions actions";
}

.inventory-client-filter {
  grid-area: client;
}

.inventory-origin-filter {
  grid-area: origin;
}

.inventory-status-filter {
  grid-area: status;
}

.inventory-search-filter {
  grid-area: search;
}

.inventory-filter-actions {
  grid-area: actions;
  align-self: end;
  justify-content: flex-end;
}

.inventory-new-product-button {
  margin-left: auto;
}

.inventory-list-panel,
.inventory-form-panel {
  min-width: 0;
}

.inventory-form-panel {
  scroll-margin-top: 24px;
}

.inventory-product-form {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.inventory-product-form .form-actions {
  grid-column: 1 / -1;
  justify-content: flex-start;
}

.inventory-table {
  min-width: 1120px;
}

.inventory-table td {
  vertical-align: top;
}

.inventory-table td:nth-child(5) small {
  max-width: 210px;
  overflow-wrap: anywhere;
}

.inventory-table .status-pill {
  margin-top: 8px;
}

.inventory-actions-cell {
  white-space: nowrap;
}

.inventory-action-group {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  min-width: 118px;
}

.inventory-action-group form {
  display: flex;
}

.inventory-action-group form .inventory-action {
  flex: 1 1 auto;
}

.inventory-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #ffffff;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.inventory-action svg {
  width: 15px;
  height: 15px;
}

.inventory-action:hover,
.inventory-action:focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
  color: var(--accent-strong);
}

.inventory-action.danger {
  color: #991b1b;
  border-color: #fecaca;
}

.inventory-action.danger:hover,
.inventory-action.danger:focus-visible {
  border-color: #f4a3a3;
  background: #fee2e2;
  color: #7f1616;
}

.inventory-action:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/*
  Drawer lateral padrao do app (abre da direita para a esquerda).
  `.app-drawer` e o nome canonico; `.inventory-drawer` e o alias historico mantido
  para as telas que ja usavam o componente. Contrato de estado: `aria-hidden` no
  container + `body.inventory-drawer-open`. Controlador em wwwroot/js/app-drawer.js.
  Documentacao: docs/padrao-ui-drawer.md
*/
:is(.inventory-drawer, .app-drawer) {
  position: fixed;
  inset: 0;
  z-index: 1100;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0s linear 540ms;
}

:is(.inventory-drawer, .app-drawer)[aria-hidden="false"] {
  pointer-events: auto;
  visibility: visible;
  transition-delay: 0s;
}

:is(.inventory-drawer-backdrop, .app-drawer-backdrop) {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  background: rgba(15, 23, 42, 0.28);
  opacity: 0;
  transition: opacity 460ms ease;
  cursor: pointer;
}

:is(.inventory-drawer, .app-drawer)[aria-hidden="false"] :is(.inventory-drawer-backdrop, .app-drawer-backdrop) {
  opacity: 1;
}

:is(.inventory-drawer-panel, .app-drawer-panel) {
  --drawer-width: 820px;
  position: absolute;
  top: 14px;
  right: 14px;
  bottom: 14px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(var(--drawer-width), calc(100vw - 28px));
  overflow: hidden;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-left: 4px solid var(--accent);
  border-radius: 8px 0 0 8px;
  background: #ffffff;
  box-shadow: -24px 0 60px rgba(15, 23, 42, 0.2);
  transform: translateX(calc(100% + 40px));
  transition: transform 540ms cubic-bezier(0.19, 1, 0.22, 1), box-shadow 540ms ease;
}

/*
  Aberto precisa ser `none`, e nao translateX(0): qualquer transform ativo torna o
  painel o containing block dos descendentes position:fixed, e menus/popovers fixos
  do conteudo passam a ser posicionados a partir do canto do drawer (fora da tela).
  A transicao interpola normalmente entre um transform e `none`.
*/
:is(.inventory-drawer, .app-drawer)[aria-hidden="false"] :is(.inventory-drawer-panel, .app-drawer-panel) {
  transform: none;
}

/*
  Larguras nomeadas: use no lugar de style inline. Definem apenas a variavel, para nao
  competir em especificidade com a regra de tela cheia no mobile.
*/
.app-drawer-panel.is-wide {
  --drawer-width: 1020px;
}

.app-drawer-panel.is-narrow {
  --drawer-width: 560px;
}

@media (prefers-reduced-motion: reduce) {
  :is(.inventory-drawer, .app-drawer) {
    transition: none;
  }

  :is(.inventory-drawer-panel, .app-drawer-panel),
  :is(.inventory-drawer-backdrop, .app-drawer-backdrop) {
    transition: none;
  }
}

:is(.inventory-drawer-chrome, .app-drawer-chrome) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
  min-height: 62px;
  padding: 12px 14px 12px 18px;
  border-bottom: 1px solid rgba(28, 34, 38, 0.13);
  background: #fbfdff;
}

:is(.inventory-drawer-title, .app-drawer-title) {
  display: grid;
  gap: 2px;
  min-width: 0;
}

:is(.inventory-drawer-title, .app-drawer-title) span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

:is(.inventory-drawer-title, .app-drawer-title) strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 1rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

:is(.inventory-drawer-close, .app-drawer-close) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #ffffff;
  cursor: pointer;
  text-decoration: none;
}

:is(.inventory-drawer-close, .app-drawer-close):hover,
:is(.inventory-drawer-close, .app-drawer-close):focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
}

:is(.inventory-drawer-close, .app-drawer-close) svg {
  width: 18px;
  height: 18px;
}

:is(.inventory-drawer-body, .app-drawer-body) {
  min-height: 0;
  overflow-y: auto;
  padding: 18px;
  background: #ffffff;
}

/* Rodape fixo do drawer: as acoes nao rolam junto com o formulario. */
.app-drawer-panel:has(.app-drawer-footer) {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.app-drawer-footer {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-top: 1px solid rgba(28, 34, 38, 0.13);
  background: #fbfdff;
}

.inventory-drawer .inventory-product-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.inventory-drawer-open {
  overflow: hidden;
}

.inventory-drawer[data-inventory-mode="view"] [data-inventory-submit] {
  display: none;
}

.inventory-drawer[data-inventory-mode="view"] .inventory-product-form .field,
.inventory-drawer[data-inventory-mode="view"] .inventory-product-form .switch-field {
  pointer-events: none;
}

.inventory-drawer[data-inventory-mode="view"] .inventory-product-form .field input,
.inventory-drawer[data-inventory-mode="view"] .inventory-product-form .field select,
.inventory-drawer[data-inventory-mode="view"] .inventory-product-form .field textarea {
  background: var(--surface-muted);
  color: var(--text);
  cursor: default;
}

.inventory-drawer-extras {
  display: grid;
  gap: 18px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed var(--line);
}

.inventory-extras-block {
  display: grid;
  gap: 10px;
}

.inventory-extras-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 850;
}

.inventory-extras-title svg {
  width: 16px;
  height: 16px;
  color: var(--accent-strong);
}

.checklist-action-row td {
  background: #fffdf8;
}

.checklist-inline-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  margin-left: 12px;
  padding: 6px 10px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  background: #ffffff;
  color: var(--accent-strong);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 850;
  cursor: pointer;
}

.checklist-inline-action:hover,
.checklist-inline-action:focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.checklist-inline-action svg {
  width: 16px;
  height: 16px;
}

.checklist-drawer-panel {
  display: grid;
  gap: 14px;
}

.drawer-helper-text {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.checklist-municipio-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.municipio-current {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdff;
}

.municipio-current span,
.municipio-current small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.municipio-current strong {
  color: var(--text);
}

.municipio-results {
  display: grid;
  gap: 8px;
  max-height: 280px;
  overflow: auto;
}

.municipio-result-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}

.municipio-result-option:hover,
.municipio-result-option:focus-visible,
.municipio-result-option.active {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.municipio-result-option strong,
.municipio-result-option small {
  min-width: 0;
}

.municipio-result-option small {
  color: var(--muted);
  font-weight: 800;
}

.checklist-recheck-form {
  margin-top: -4px;
}

.inventory-origem-empty {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
}

.inventory-origem-empty svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  color: var(--muted);
}

.inventory-origem-empty strong {
  display: block;
  font-size: 0.86rem;
}

.inventory-origem-empty small {
  color: var(--muted);
  font-size: 0.78rem;
}

.inventory-origem-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  background: #fbfdff;
}

.inventory-origem-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.inventory-origem-num {
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--text);
}

.inventory-origem-date {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.inventory-origem-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px 16px;
}

.inventory-origem-grid > div {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.inventory-origem-grid span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.inventory-origem-grid strong {
  font-size: 0.85rem;
  overflow-wrap: anywhere;
}

.inventory-origem-grid small {
  color: var(--muted);
  font-size: 0.76rem;
}

.inventory-origem-chave {
  display: grid;
  gap: 2px;
}

.inventory-origem-chave span {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.inventory-origem-chave code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.78rem;
  color: var(--text);
  overflow-wrap: anywhere;
}

.inventory-historico-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.inventory-historico-item {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.inventory-historico-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.inventory-historico-date {
  font-weight: 850;
  font-size: 0.84rem;
  color: var(--text);
}

.inventory-historico-figures {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-left: auto;
}

.inventory-historico-qty {
  font-weight: 850;
  font-size: 0.9rem;
  color: var(--text);
}

.inventory-historico-saldo {
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}

.inventory-saldo-negativo {
  color: var(--danger);
}

.filter-bar.nfe-emitente-bar {
  align-items: end;
  justify-content: start;
  gap: 14px;
}

@media (min-width: 981px) {
  .filter-bar.nfe-emitente-bar {
    grid-template-columns: minmax(420px, 1fr) auto;
  }
}

.nfe-emitente-field {
  min-width: 0;
}

.nfe-emitente-cert {
  margin-left: 6px;
  color: var(--accent-strong);
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
}

/* Resumo do emitente escolhido no topo (a selecao vive no seletor topbar do BPO). */
.nfe-emitente-resumo {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 0;
}

.nfe-emitente-resumo > strong {
  font-size: 1.02rem;
}

.nfe-emitente-resumo .nfe-emitente-cert {
  margin-left: 0;
}

.nfe-combo {
  position: relative;
}

.nfe-combo [data-combo-input] {
  height: 44px;
}

.nfe-combo.has-clear [data-combo-input] {
  padding-right: 42px;
}

.nfe-combo-clear {
  position: absolute;
  top: 50%;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.96);
  cursor: pointer;
  transform: translateY(-50%);
}

.nfe-combo-clear[hidden] {
  display: none;
}

.nfe-combo-clear:hover,
.nfe-combo-clear:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.35);
  background: var(--accent-soft);
}

.nfe-combo-clear svg {
  width: 15px;
  height: 15px;
}

.nfe-combo-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nfe-combo-row .nfe-combo {
  flex: 1;
  min-width: 0;
}

.nfe-combo-row .inventory-action {
  height: 44px;
  flex: none;
}

.nfe-consulta-status {
  display: block;
  margin-top: 4px;
  color: var(--accent-strong);
  font-weight: 700;
}

.nfe-combo-lista {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 60;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid rgba(28, 34, 38, 0.24);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16);
}

.nfe-combo-item {
  padding: 9px 12px;
  font-size: 0.84rem;
  cursor: pointer;
}

.nfe-combo-item:hover {
  background: var(--accent-soft);
}

.nfe-combo-adicionar {
  padding: 10px 12px;
  border-top: 1px solid var(--line);
  color: var(--accent-strong);
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
}

.nfe-combo-adicionar:hover {
  background: var(--accent-soft);
}

/* Combo da natureza da operacao: itens ricos (CFOP + titulo + descricao oficial + chips) */
[data-combo-natureza] .nfe-combo-lista {
  max-height: 420px;
}

[data-combo-natureza] .nfe-combo-item {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

[data-combo-natureza] .nfe-combo-item:last-child {
  border-bottom: 0;
}

.nfe-combo-grupo {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 7px 12px 5px;
  background: #f3f5fb;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nfe-nat-topo {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  min-width: 0;
}

.nfe-nat-cfop {
  flex: none;
  padding: 2px 8px;
  border-radius: 6px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-weight: 800;
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
}

.nfe-nat-nome {
  flex: 1;
  min-width: 0;
  font-weight: 700;
}

.nfe-nat-cst {
  flex: none;
  max-width: 100%;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  background: #ffffff;
  color: var(--accent-strong);
  font-size: 0.7rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nfe-nat-sub {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.nfe-nat-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 5px;
}

.nfe-nat-tag {
  padding: 1px 8px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #f6f7fb;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 700;
}

/* Regua fiscal do item: BC/aliquota/valor de ICMS e IPI com edicao rapida das aliquotas */
.nfe-item-tributos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px 20px;
  margin-top: 10px;
  padding: 8px 12px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fafbfe;
}

.nfe-trib-campo {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
}

.nfe-trib-campo > span {
  color: var(--muted);
  font-weight: 700;
  white-space: nowrap;
}

.nfe-trib-campo > strong {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.nfe-trib-campo input {
  width: 92px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid #c7cede;
  border-radius: 6px;
  font: inherit;
  font-size: 0.8rem;
  text-align: right;
}

.nfe-trib-campo input:disabled {
  background: #eef0f5;
  border-color: #dde1ea;
  color: #9aa3b5;
  cursor: not-allowed;
}

/* IPI destacado com CFOP fora da regra: campo em alerta ate o usuario zerar ou revisar o CFOP */
.nfe-trib-campo input.nfe-trib-alerta {
  border-color: #d97706;
  background: #fff7ed;
}

.nfe-emitente-ambiente-box {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-self: end;
  min-height: 44px;
  padding: 6px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.nfe-emitente-ambiente-box strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}

.nfe-emitente-ambiente-box strong svg {
  width: 14px;
  height: 14px;
}

.nfe-emitente-ambiente-box.is-homologacao strong {
  color: #9a4f00;
}

.nfe-emitente-ambiente-box.is-producao strong {
  color: var(--danger);
}

.nfe-emitente-ambiente-box .nfe-ambiente-config-link {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--accent-strong);
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  white-space: nowrap;
  cursor: pointer;
}

.nfe-emitente-ambiente-box .nfe-ambiente-config-link:hover,
.nfe-emitente-ambiente-box .nfe-ambiente-config-link:focus-visible {
  color: var(--accent);
}

.nfe-proximo-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 16px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 12px;
  background: rgba(28, 34, 38, 0.03);
}

.nfe-proximo-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nfe-proximo-info > span {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.nfe-proximo-info strong {
  font-size: 1.35rem;
  line-height: 1.1;
  color: var(--accent-strong);
}

.nfe-proximo-info small {
  font-size: 0.74rem;
  color: var(--muted);
  white-space: nowrap;
}

.nfe-proximo-editor {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 14px;
  padding: 14px 16px;
  border: 1px dashed rgba(28, 34, 38, 0.35);
  border-radius: 12px;
  background: rgba(28, 34, 38, 0.02);
}

.nfe-proximo-editor .field {
  flex: 0 1 340px;
  min-width: 220px;
}

.nfe-itens-titulo {
  margin-bottom: 10px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.nfe-divisor {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 2px 0 12px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.nfe-divisor::before,
.nfe-divisor::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}

.nfe-section-divider {
  margin: 22px 0 14px;
}

.nfe-section-divider:first-child {
  margin-top: 4px;
}

.nfe-section-divider span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}

.nfe-section-divider::before,
.nfe-section-divider::after {
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.08), rgba(28, 34, 38, 0.26), rgba(28, 34, 38, 0.08));
}

.nfe-credito-field {
  max-width: 320px;
}

.nfe-credito-preview {
  max-width: 980px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: rgba(28, 34, 38, 0.035);
}

.nfe-credito-preview span {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.nfe-credito-preview p {
  margin: 6px 0 0;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 750;
  line-height: 1.45;
}

.nfe-credito-preview[hidden] {
  display: none;
}

.nfe-fatura-panel {
  display: grid;
  gap: 12px;
}

.nfe-fatura-toolbar {
  display: grid;
  grid-template-columns: minmax(118px, 0.7fr) minmax(150px, 0.9fr) minmax(170px, 1fr) 86px minmax(150px, 1fr) 96px minmax(108px, 0.68fr) auto 44px;
  gap: 10px;
  align-items: end;
}

.nfe-fatura-toolbar.is-avista {
  grid-template-columns: minmax(130px, 0.8fr) minmax(170px, 1fr) 96px minmax(210px, 1.25fr) 110px auto;
}

.nfe-fatura-toolbar .field {
  min-width: 0;
}

.nfe-fatura-prazo-field {
  position: relative;
}

.nfe-fatura-toolbar .btn-secondary-app,
.nfe-fatura-toolbar .inventory-action {
  min-height: 44px;
}

.nfe-fatura-toolbar select:disabled,
.nfe-fatura-toolbar input:disabled {
  background: #f2f4fb;
  color: var(--muted);
}

.nfe-fatura-util-field {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
}

.nfe-fatura-util-field input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent-strong);
}

.nfe-fatura-util-field:has(input:checked) {
  border-color: rgba(28, 34, 38, 0.28);
  background: var(--accent-soft);
  color: var(--accent-strong);
}

.nfe-fatura-util-field[hidden] {
  display: none;
}

.nfe-fatura-util-field:has(input:disabled) {
  color: var(--muted);
  background: #f2f4fb;
  cursor: not-allowed;
}

.nfe-prazo-popover {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 90;
  display: grid;
  gap: 10px;
  width: min(360px, calc(100vw - 32px));
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
}

.nfe-prazo-popover[hidden] {
  display: none;
}

.nfe-prazo-popover::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 28px;
  width: 12px;
  height: 12px;
  border-top: 1px solid rgba(28, 34, 38, 0.18);
  border-left: 1px solid rgba(28, 34, 38, 0.18);
  background: #ffffff;
  transform: rotate(45deg);
}

.nfe-prazo-popover-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.nfe-prazo-popover-head strong {
  display: block;
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 900;
}

.nfe-prazo-popover-head span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.3;
}

.nfe-prazo-popover-head .inventory-action {
  justify-content: center;
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
}

.nfe-prazo-input-field {
  gap: 5px;
}

.nfe-prazo-input-field input {
  height: 44px;
  font-weight: 800;
}

.nfe-prazo-sugestoes {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.nfe-prazo-sugestoes button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 999px;
  background: var(--surface);
  color: var(--accent-strong);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 850;
  cursor: pointer;
}

.nfe-prazo-sugestoes button:hover,
.nfe-prazo-sugestoes button:focus-visible {
  border-color: rgba(28, 34, 38, 0.28);
  background: var(--accent-soft);
  outline: none;
}

.nfe-prazo-feedback {
  padding: 8px 10px;
  border: 1px solid rgba(185, 28, 28, 0.18);
  border-radius: 8px;
  color: #991b1b;
  background: #fff1f2;
  font-size: 0.76rem;
  font-weight: 800;
}

.nfe-prazo-feedback[hidden] {
  display: none;
}

.nfe-prazo-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.nfe-prazo-actions .btn-primary-app,
.nfe-prazo-actions .btn-secondary-app {
  min-height: 38px;
  padding-inline: 12px;
  font-size: 0.82rem;
}

.nfe-fatura-lista {
  display: grid;
  gap: 8px;
}

.nfe-fatura-lista[hidden] {
  display: none;
}

.nfe-fatura-linha {
  display: grid;
  grid-template-columns: 74px minmax(120px, 1fr) minmax(140px, 1fr) minmax(130px, 1fr) 44px;
  gap: 10px;
  align-items: end;
  padding: 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: rgba(28, 34, 38, 0.02);
}

.nfe-fatura-ordem {
  align-self: center;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nfe-fatura-linha .inventory-action {
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
}

.nfe-fatura-resumo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: var(--surface);
}

.nfe-fatura-resumo[hidden] {
  display: none;
}

.nfe-fatura-resumo strong {
  color: var(--accent-strong);
}

.nfe-fatura-resumo span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 750;
  text-align: right;
}

.nfe-fatura-resumo.is-ok span {
  color: #047857;
}

.nfe-fatura-resumo.is-warning span {
  color: #b45309;
}

.nfe-transporte-panel {
  display: grid;
  gap: 12px;
}

.nfe-transporte-toolbar {
  display: grid;
  grid-template-columns: minmax(170px, 0.9fr) minmax(220px, 1.2fr) auto minmax(220px, 1fr);
  gap: 10px;
  align-items: end;
}

.nfe-transporte-toolbar .field {
  min-width: 0;
}

.nfe-transporte-toolbar .btn-secondary-app {
  min-height: 44px;
}

.nfe-transporte-hint {
  align-self: center;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.35;
}

.nfe-transportador-dados,
.nfe-transporte-veiculo,
.nfe-volume-dados {
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: rgba(28, 34, 38, 0.02);
}

.nfe-transportador-dados[hidden],
.nfe-transporte-veiculo[hidden] {
  display: none;
}

.nfe-transporte-subtitle {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.nfe-transporte-subtitle strong {
  color: var(--text);
  font-size: 0.84rem;
  font-weight: 850;
}

.nfe-transporte-subtitle span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-align: right;
}

.nfe-transporte-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.3fr) minmax(150px, 0.8fr) minmax(150px, 0.8fr) 86px minmax(180px, 1fr);
  gap: 10px;
}

.nfe-transporte-nome-field,
.nfe-transporte-endereco-field {
  grid-column: span 2;
}

.nfe-transporte-veiculo-grid {
  display: grid;
  grid-template-columns: minmax(130px, 0.7fr) 100px minmax(150px, 0.8fr);
  gap: 10px;
}

.nfe-volume-grid {
  display: grid;
  grid-template-columns: 110px minmax(140px, 0.8fr) minmax(140px, 0.8fr) minmax(140px, 0.8fr) minmax(180px, 1fr) minmax(140px, 0.8fr);
  gap: 10px;
}

.nfe-transporte-panel input:disabled,
.nfe-transporte-panel select:disabled {
  background: #f2f4fb;
  color: var(--muted);
}

.nfe-post-submit-actions {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.nfe-post-submit-actions[hidden] {
  display: none;
}

.nfe-post-submit-actions .notice {
  margin: 0;
}

.nfe-post-submit-grid,
.nfe-post-email-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
}

.nfe-post-email-form .field {
  flex: 1 1 320px;
  min-width: 240px;
}

.nfe-post-email-form .btn-secondary-app {
  min-height: 44px;
}

.nfe-itens {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.nfe-item-card {
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-radius: 12px;
  padding: 14px 16px 16px;
  background: rgba(28, 34, 38, 0.02);
}

.nfe-item-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.nfe-item-num {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.nfe-item-grid {
  display: grid;
  grid-template-columns: minmax(260px, 2.4fr) minmax(110px, 0.9fr) 90px minmax(110px, 0.8fr) minmax(150px, 1fr) minmax(130px, 1fr);
  gap: 14px;
  align-items: start;
}

.nfe-item-grid .field {
  min-width: 0;
  align-content: start;
}

.nfe-item-grid .field input {
  height: 44px;
}

.nfe-item-grid input[readonly] {
  background: rgba(15, 23, 42, 0.05);
  color: var(--muted);
  pointer-events: none;
}

.nfe-item-saldo {
  display: block;
  margin-top: 4px;
  color: var(--accent-strong);
  font-weight: 700;
}

.nfe-item-fiscal {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  margin-top: 4px;
}

.nfe-item-fiscal .nfe-item-ncm {
  color: var(--muted);
  font-weight: 700;
}

.nfe-item-fiscal .nfe-item-ncm:empty,
.nfe-item-fiscal .nfe-item-saldo:empty {
  display: none;
}

.nfe-item-fiscal .nfe-item-saldo {
  display: inline;
  margin-top: 0;
}

.nfe-item-acoes {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.nfe-item-imp-resumo {
  color: var(--muted);
  font-size: 0.74rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 760px;
}

.nfe-item-acoes .inventory-action.is-custom {
  border-color: var(--accent-strong);
  color: var(--accent-strong);
  background: rgba(28, 34, 38, 0.06);
}

.nfe-imp-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  border-bottom: 2px solid rgba(28, 34, 38, 0.12);
  margin-bottom: 16px;
}

.nfe-imp-tab {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 10px 14px;
  font: inherit;
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.nfe-imp-tab:hover,
.nfe-imp-tab:focus-visible {
  color: var(--accent-strong);
}

.nfe-imp-tab.is-active {
  color: var(--accent-strong);
  border-bottom-color: var(--accent-strong);
}

.nfe-imp-painel[hidden] {
  display: none;
}

.nfe-imp-calc {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--accent-strong);
  font-size: 1rem;
}

@media (max-width: 720px) {
  .nfe-item-imp-resumo {
    display: none;
  }
}

.nfe-item-total {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid rgba(28, 34, 38, 0.24);
  border-radius: 8px;
  background: var(--accent-soft);
  font-size: 1.02rem;
  color: var(--accent-strong);
  white-space: nowrap;
}

.nfe-total-nota {
  font-size: 0.98rem;
  color: var(--text);
}

.nfe-total-nota strong {
  font-size: 1.08rem;
  color: var(--accent-strong);
}

.nfe-datas-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.nfe-datas-grid .field {
  min-width: 0;
  align-content: start;
}

.nfe-datas-grid .field input {
  height: 44px;
}

.nfe-datas-grid .field > span:first-child {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nfe-info-dica {
  display: inline-flex;
  align-items: center;
  vertical-align: text-bottom;
  margin-left: 4px;
  color: var(--muted);
  cursor: help;
}

.nfe-info-dica svg {
  width: 14px;
  height: 14px;
}

@media (max-width: 900px) {
  .nfe-datas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1420px) {
  .nfe-item-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .nfe-item-grid .nfe-col-produto {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .nfe-item-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nfe-item-grid .nfe-col-total {
    grid-column: 1 / -1;
  }
}

.inventory-historico-qty small {
  margin-left: 6px;
  color: var(--muted);
  font-weight: 700;
  font-size: 0.78rem;
}

.inventory-historico-nf {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.inventory-historico-nf svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  color: var(--accent-strong);
}

.inventory-historico-chave {
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.72rem;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.inventory-historico-obs {
  color: var(--muted);
  font-size: 0.78rem;
}

.inventory-historico-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

@media (max-width: 640px) {
  :is(.inventory-drawer-panel, .app-drawer-panel) {
    top: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    border-radius: 0;
  }

  .app-drawer-footer {
    flex-wrap: wrap;
  }

  .inventory-drawer .inventory-product-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 920px) {
  .inventory-filter-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "client client"
      "origin status"
      "search search"
      "actions actions";
  }

  .inventory-filter-actions {
    justify-content: flex-start;
  }

  .inventory-product-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .inventory-filter-bar,
  .inventory-product-form {
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }

  .inventory-client-filter,
  .inventory-origin-filter,
  .inventory-status-filter,
  .inventory-search-filter,
  .inventory-filter-actions {
    grid-area: auto;
    grid-column: 1 / -1;
  }

  .inventory-product-form .span-2,
  .inventory-filter-actions {
    grid-column: 1 / -1;
  }

  .inventory-filter-actions .btn-primary-app,
  .inventory-filter-actions .btn-secondary-app,
  .inventory-product-form .btn-primary-app,
  .inventory-product-form .btn-secondary-app {
    width: 100%;
  }

  .inventory-new-product-button {
    margin-left: 0;
  }
}

.status-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.status-item {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}

.status-item:last-child {
  border-bottom: 0;
}

.badge-app {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.badge-app.warn {
  color: #8a4b0f;
  background: #faecd8;
}

.btn-primary-app,
.btn-secondary-app {
  gap: 8px;
}

.btn-primary-app svg,
.btn-secondary-app svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
}

.section-header,
.table-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.section-header h2,
.table-heading h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 760;
}

.section-header p,
.table-heading span {
  margin: 8px 0 0;
  color: var(--muted);
}

.receivable-card-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: flex-start;
}

.receivable-card-divider {
  display: block;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.2), rgba(28, 34, 38, 0.1), rgba(203, 213, 225, 0.34));
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
}

.receivable-card-actions {
  justify-content: flex-end;
  margin-top: 0;
}

.receivable-owner-title-filter {
  width: min(340px, 100%);
  gap: 6px;
  margin: 0;
}

.receivable-owner-title-filter > span:first-child {
  color: var(--muted);
  font-size: 0.72rem;
  white-space: nowrap;
}

.receivable-owner-title-filter select {
  min-height: 38px;
  padding: 8px 10px;
  color: var(--muted);
  font-size: 0.88rem;
}

.notice {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 8px;
  font-weight: 700;
}

.notice.success {
  color: var(--success-strong);
  background: var(--success-soft);
}

.notice.warning {
  color: #7e4a0f;
  background: #faecd8;
  border: 1px solid #edcf9f;
}

.notice strong,
.notice span {
  display: block;
}

.notice span {
  margin-top: 4px;
  font-weight: 600;
}

/* Dentro do corpo do aviso o <strong> destaca um trecho da frase (ex.: o nome da empresa), entao
   precisa fluir no texto; so o <strong> filho direto do .notice e o titulo em bloco. */
.notice span strong {
  display: inline;
}

.notice code,
.empty-state code {
  display: inline-block;
  margin-top: 8px;
  padding: 4px 7px;
  border: 1px solid rgba(126, 74, 15, 0.18);
  border-radius: 6px;
  color: #653909;
  background: rgba(255, 255, 255, 0.65);
  font-size: 0.84rem;
  font-weight: 800;
}

.filter-bar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 0.35fr) minmax(150px, 0.25fr) auto;
  gap: 12px;
  align-items: end;
  margin-top: 22px;
}

/* Barra de pesquisa do plano de contas: so busca/grupo/acoes. Sem a coluna `auto` dedicada as acoes
   os botoes herdam a 3a coluna estreita da .filter-bar e o Limpar quebra para baixo do Pesquisar. */
.plano-contas-filter-bar {
  grid-template-columns: minmax(260px, 1fr) minmax(220px, 0.45fr) auto;
}

/* Empresa saiu daqui para o seletor unico do cabecalho (.topbar-owner-filter). */
.accounting-export-filter-bar {
  grid-template-columns:
    minmax(250px, 1fr)
    minmax(230px, 0.9fr)
    minmax(220px, 0.85fr)
    minmax(190px, 0.7fr)
    auto;
  /* A dica da conta tem linha propria: dentro da coluna, com align-items: end,
     ela empurrava rotulo/select para cima e desalinhava a barra. */
  grid-template-areas:
    "period movement account system actions"
    ".      .        hint    .      .";
  gap: 14px 12px;
}

.accounting-export-range-field {
  grid-area: period;
}

.accounting-export-mode-field {
  grid-area: movement;
}

.accounting-export-account-field {
  grid-area: account;
}

.accounting-export-account-hint {
  grid-area: hint;
  max-width: 290px;
  margin-top: -8px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.25;
}

.accounting-export-system-field {
  grid-area: system;
}

.accounting-export-filter-bar .filter-actions {
  grid-area: actions;
}

.accounting-export-filter-bar .date-range-trigger {
  height: 44px;
  min-height: 44px;
}

.accounting-export-filter-bar .filter-actions .btn-primary-app,
.accounting-export-filter-bar .filter-actions .btn-secondary-app {
  min-height: 44px;
}

@media (max-width: 1500px) and (min-width: 981px) {
  .accounting-export-filter-bar {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
      "period period period period movement movement movement movement account account account account"
      ". . . . . . . . hint hint hint hint"
      "system system system system actions actions actions actions actions actions actions actions";
  }
}

.accounting-export-result-divider {
  position: relative;
  height: 1px;
  margin: 26px 0 22px;
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.34), rgba(148, 163, 184, 0.18), rgba(148, 163, 184, 0.08));
}

.accounting-export-result-divider::before {
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  width: 96px;
  height: 4px;
  border-radius: 999px;
  background: var(--accent);
}

/* Configuracao das contas contabeis padrao (fallback de contraparte) da exportacao. */
.accounting-default-accounts {
  margin: 14px 0 6px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

.accounting-default-accounts > summary {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 16px;
  border-radius: 12px;
  cursor: pointer;
  list-style: none;
}

.accounting-default-accounts[open] > summary {
  border-bottom: 1px solid var(--line);
  border-radius: 12px 12px 0 0;
  background: rgba(241, 245, 249, 0.68);
}

.accounting-default-accounts > summary strong {
  color: var(--text);
  font-size: 0.92rem;
}

.accounting-default-accounts > summary span {
  color: var(--muted);
  font-size: 0.8rem;
}

.accounting-default-accounts > .notice {
  margin: 14px 16px;
}

.accounting-default-accounts-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 14px;
  align-items: end;
  padding: 14px 16px;
}

.accounting-default-accounts-form .search-combobox {
  width: 100%;
}

.accounting-default-fallback-notice ul,
.accounting-regularize-panel ul,
.accounting-pendencias ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

/* Pendencias com acao de correcao: o nome do cadastro vira link clicavel. */
.accounting-pendencias a {
  color: var(--accent-strong);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Drawer de correcao de pendencia (Exportacao contabil): corrige categoria ou
   contraparte sem sair da tela; ao salvar a previa e recalculada via PRG. */
.accounting-fix-form {
  display: grid;
  gap: 16px;
  align-content: start;
}

.accounting-fix-context {
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-muted);
  font-size: 0.85rem;
  color: var(--muted);
}

.accounting-fix-context strong {
  color: var(--text);
}

.accounting-fix-full-link {
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
}

.accounting-fix-full-link a {
  color: var(--accent-strong);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.accounting-fix-hint {
  flex: 1;
  min-width: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.3;
}

.accounting-fix-actions {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
}

@media (max-width: 980px) {
  .accounting-default-accounts-form {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }
}

.category-filter-bar {
  grid-template-columns: minmax(260px, 1fr) minmax(150px, 190px) minmax(170px, 220px) auto;
  margin: 20px 0 16px;
}

.receivable-filter-bar {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-areas:
    "client client client client client period period period status status service service"
    "account account bank bank tipo tipo search search search search actions actions";
  align-items: end;
  gap: 12px;
}

.receivable-filter-bar .field {
  gap: 6px;
}

.receivable-filter-bar .field > span:first-child {
  font-size: 0.78rem;
  white-space: nowrap;
}

.receivable-filter-bar input,
.receivable-filter-bar select {
  min-height: 38px;
  padding: 8px 10px;
  font-size: 0.9rem;
}

.receivable-filter-bar .client-picker-trigger,
.receivable-filter-bar .receivable-period-trigger,
.receivable-filter-bar .receivable-status-filter select,
.receivable-filter-bar .receivable-service-filter select {
  height: 44px;
  min-height: 44px;
  padding: 8px 10px;
  font-size: 0.9rem;
}

.receivable-filter-bar .client-picker-trigger span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receivable-filter-bar .form-actions {
  align-self: end;
}

.receivable-filter-bar .receivable-client-filter {
  grid-area: client;
}

.receivable-filter-bar .receivable-period-smart-field {
  grid-area: period;
}

.receivable-filter-bar .receivable-bank-status-filter {
  grid-area: bank;
}

.receivable-filter-bar .receivable-charge-type-filter {
  grid-area: tipo;
}

.receivable-charge-type-filter .client-picker-panel {
  right: auto;
  min-width: 250px;
}

.receivable-filter-bar .receivable-account-filter {
  grid-area: account;
}

.receivable-filter-bar .receivable-status-filter {
  grid-area: status;
}

.receivable-filter-bar .receivable-service-filter {
  grid-area: service;
}

.receivable-filter-bar .receivable-search-filter {
  grid-area: search;
}

.receivable-filter-bar .receivable-filter-actions {
  grid-area: actions;
  display: flex;
  align-items: end;
  flex-direction: row;
  justify-content: flex-start;
  gap: 8px;
  min-width: 0;
}

.receivable-filter-actions .btn-primary-app,
.receivable-filter-actions .btn-secondary-app {
  flex: 1 1 0;
  width: auto;
  min-height: 38px;
  min-width: 0;
  padding: 8px 10px;
  white-space: nowrap;
}

.report-receivable-panel {
  padding-top: 22px;
}

.report-receivable-owner-header {
  margin-bottom: 14px;
}

.report-receivable-owner-header .receivable-card-divider {
  margin-top: 2px;
}

.receivable-filter-bar.report-receivable-filter-bar {
  grid-template-areas:
    "client client client client client period period period status status actions actions"
    "search search search search search search search search search search actions actions";
}

.receivable-filter-bar.report-receivable-filter-bar .receivable-search-filter {
  grid-area: search;
}

.receivable-filter-bar.report-receivable-filter-bar .receivable-filter-actions {
  align-self: stretch;
}

.receivable-report-table {
  min-width: 1080px;
}

.receivable-report-table tfoot td {
  border-top: 2px solid var(--line);
  background: #f8fafc;
  color: var(--text);
  font-weight: 900;
}

.receivable-report-table-total-row td:first-child {
  color: var(--muted);
  font-size: 0.76rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.receivable-report-payments-row td {
  padding-top: 0;
  border-top: 0;
}

.receivable-report-payments {
  margin: 0;
  padding: 0 0 2px 14px;
  list-style: none;
  display: grid;
  gap: 1px;
}

.receivable-report-payments li {
  font-size: 0.72rem;
  color: var(--muted);
}

.receivable-report-total-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.receivable-report-total-strip article {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}

.receivable-report-total-strip span,
.receivable-report-total-strip strong,
.receivable-report-total-strip small {
  display: block;
}

.receivable-report-total-strip span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.receivable-report-total-strip strong {
  margin-top: 6px;
  color: var(--text);
  font-size: 1rem;
  font-weight: 950;
}

.receivable-report-total-strip small {
  margin-top: 4px;
  color: var(--accent-strong);
  font-weight: 850;
}

.receivable-report-total-strip .is-total {
  border-color: color-mix(in srgb, var(--accent), var(--line) 55%);
  background: color-mix(in srgb, var(--accent-soft), #ffffff 48%);
}

@media (max-width: 1160px) {
  .receivable-filter-bar {
    grid-template-areas:
      "client client client client client period period period period status service service"
      "account account bank bank tipo tipo search search search search actions actions";
  }

  .receivable-filter-bar.report-receivable-filter-bar {
    grid-template-areas:
      "client client client client client period period period period status status status"
      "search search search search search search search search search actions actions actions";
  }
}

@media (max-width: 720px) {
  .receivable-card-actions {
    justify-content: stretch;
  }

  .receivable-card-actions .btn-secondary-app {
    flex: 1 1 0;
    justify-content: center;
    min-width: 0;
  }

  .receivable-filter-bar {
    grid-template-columns: 1fr;
    grid-template-areas:
      "client"
      "period"
      "status"
      "service"
      "account"
      "bank"
      "tipo"
      "search"
      "actions";
  }

  .receivable-filter-bar.report-receivable-filter-bar {
    grid-template-columns: 1fr;
    grid-template-areas:
      "client"
      "period"
      "status"
      "search"
      "actions";
  }

  .receivable-filter-actions {
    width: 100%;
  }

  .receivable-filter-actions {
    align-items: stretch;
  }

  .receivable-filter-actions .btn-primary-app,
  .receivable-filter-actions .btn-secondary-app {
    flex: 1 1 0;
    min-width: 0;
  }
}

.receivable-period-control {
  position: relative;
  display: block;
  min-width: 0;
  z-index: 8;
}

.receivable-period-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 40px;
  min-height: 40px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.receivable-period-trigger svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  color: var(--accent);
  stroke-width: 2.3;
}

.receivable-period-trigger:hover,
.receivable-period-trigger:focus-visible,
.receivable-period-trigger[aria-expanded="true"] {
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.09);
  outline: none;
}

.receivable-period-trigger-copy {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  gap: 0;
  white-space: nowrap;
}

.receivable-period-trigger-copy strong,
.receivable-period-trigger-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receivable-period-trigger-copy strong {
  font-size: 0.94rem;
  font-weight: 860;
  flex: 0 1 auto;
}

.receivable-period-trigger-copy small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 780;
  flex: 0 1 auto;
}

.receivable-period-trigger-copy small:not(:empty)::before {
  content: "·";
  margin: 0 6px;
  color: rgba(100, 116, 139, 0.76);
}

.receivable-period-trigger-copy small:empty {
  display: none;
}

.receivable-period-popover {
  position: absolute;
  z-index: 130;
  top: calc(100% + 10px);
  left: 0;
  width: min(660px, calc(100vw - 42px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 22px 56px rgba(31, 41, 51, 0.18);
}

.receivable-period-popover[hidden],
.receivable-period-editor[hidden],
.receivable-period-static[hidden] {
  display: none;
}

.receivable-period-popover::before {
  position: absolute;
  top: -7px;
  left: 34px;
  width: 12px;
  height: 12px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--surface);
  content: "";
  transform: rotate(45deg);
}

.receivable-period-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.receivable-period-option {
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 820;
  text-align: center;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.receivable-period-option:hover,
.receivable-period-option:focus-visible,
.receivable-period-option.active {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.34);
  background: var(--accent-soft);
  outline: none;
}

.receivable-period-option.active {
  box-shadow: inset 0 0 0 1px rgba(28, 34, 38, 0.15);
}

.receivable-period-editor {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.receivable-period-editor label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.receivable-period-editor input {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.receivable-period-editor input:focus {
  border-color: var(--accent);
  outline: 3px solid rgba(28, 34, 38, 0.14);
}

.receivable-period-static {
  display: grid;
  gap: 4px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #f8fafc;
}

.receivable-period-static strong {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 880;
}

.receivable-period-static span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 760;
}

.receivable-period-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.payable-filter-bar {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  margin-top: 0;
}

.payable-filter-bar .field {
  gap: 6px;
}

.payable-filter-bar .field > span:first-child {
  font-size: 0.78rem;
  white-space: nowrap;
}

.payable-filter-bar input,
.payable-filter-bar select {
  min-height: 38px;
  padding: 8px 10px;
  font-size: 0.9rem;
}

.payable-owner-filter,
.payable-filter-separator {
  grid-column: 1 / -1;
}

.payable-owner-filter {
  max-width: min(720px, 100%);
}

.payable-filter-separator {
  height: 1px;
  margin: 2px 0 2px;
  background: linear-gradient(90deg, var(--accent-warm) 0 34px, rgba(28, 34, 38, 0.16) 34px 100%);
}

.payable-supplier-filter {
  grid-column: span 5;
}

.payable-period-smart-field {
  grid-column: span 3;
}

.payable-status-filter,
.payable-cost-filter,
.payable-account-filter {
  grid-column: span 3;
}

.payable-category-filter,
.payable-search-filter {
  grid-column: span 5;
}

.payable-title-filter {
  grid-column: span 2;
}

.payable-filter-actions {
  grid-column: 1 / -1;
  align-self: end;
}

.bank-reconciliation-upload {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.bank-reconciliation-main-controls {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(260px, 0.9fr) minmax(360px, 1.35fr);
  gap: 12px;
  align-items: end;
}

.bank-reconciliation-period-field {
  min-width: 0;
}

.bank-period-selector {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  gap: 8px;
  align-items: stretch;
  min-width: 0;
}

.bank-period-arrow,
.bank-period-current {
  min-height: 56px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  text-decoration: none;
}

.bank-period-arrow {
  display: inline-grid;
  place-items: center;
}

.bank-period-arrow:hover,
.bank-period-arrow:focus-visible {
  color: #fff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.bank-period-arrow.disabled {
  pointer-events: none;
  color: #94a3b8;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.bank-period-arrow svg {
  width: 18px;
  height: 18px;
}

.bank-period-menu {
  position: relative;
  min-width: 0;
}

.bank-period-current {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  cursor: pointer;
  list-style: none;
}

.bank-period-current::-webkit-details-marker {
  display: none;
}

.bank-period-current.disabled {
  cursor: default;
  color: #64748b;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.bank-period-current-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.bank-period-current-copy strong,
.bank-period-current-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bank-period-current-copy strong {
  color: var(--text);
  font-size: 0.98rem;
  font-weight: 850;
}

.bank-period-current-copy small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.bank-period-position {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: rgba(28, 34, 38, 0.06);
  font-size: 0.72rem;
  font-weight: 850;
  white-space: nowrap;
}

.bank-period-current > svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--muted);
}

.bank-period-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 40;
  width: min(520px, calc(100vw - 48px));
  max-height: 360px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18);
}

.bank-period-popover-title,
.bank-period-empty {
  display: block;
  padding: 8px 10px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.bank-period-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  border-radius: 7px;
  color: var(--text);
  text-decoration: none;
}

.bank-period-option:hover,
.bank-period-option:focus-visible,
.bank-period-option.active {
  color: var(--accent-strong);
  background: rgba(28, 34, 38, 0.08);
}

.bank-period-option span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.bank-period-option strong,
.bank-period-option small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bank-period-option strong {
  font-size: 0.9rem;
  font-weight: 850;
}

.bank-period-option small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.bank-period-option svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.bank-reconciliation-import-card {
  display: grid;
  grid-template-columns: minmax(190px, 0.55fr) minmax(320px, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #f8fafc;
}

.bank-reconciliation-import-card.is-locked {
  border-style: dashed;
  border-color: rgba(100, 116, 139, 0.35);
  background: #f1f5f9;
}

.bank-reconciliation-import-card.is-locked .bank-reconciliation-import-copy strong {
  color: #475569;
}

.bank-reconciliation-import-locked {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 10px 12px;
  border: 1px dashed rgba(100, 116, 139, 0.4);
  border-radius: 8px;
  color: #64748b;
  background: #f8fafc;
}

.bank-reconciliation-import-locked .drop-upload-icon {
  color: #64748b;
  box-shadow: inset 0 0 0 1px rgba(100, 116, 139, 0.25);
}

.bank-reconciliation-import-locked .drop-upload-copy strong {
  color: #475569;
}

.bank-reconciliation-import-locked .drop-upload-copy small {
  color: #64748b;
  white-space: normal;
}

.bank-reconciliation-section-divider {
  height: 1px;
  background: linear-gradient(90deg, rgba(28, 34, 38, 0.22), rgba(148, 163, 184, 0.16));
}

.bank-reconciliation-period-filter {
  display: grid;
  grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.4fr);
  gap: 14px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fff;
}

.bank-reconciliation-period-smart-field {
  display: grid;
  gap: 6px;
  min-width: 0;
  align-self: stretch;
}

.bank-reconciliation-period-smart-field > span:first-child {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.bank-reconciliation-period-filter .receivable-period-control {
  z-index: 12;
}

.bank-reconciliation-period-filter .receivable-period-trigger {
  height: 44px;
  min-height: 44px;
}

.bank-reconciliation-period-filter .receivable-period-popover {
  width: min(660px, calc(100vw - 42px));
}

.bank-reconciliation-period-filter-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
  align-self: center;
}

.bank-reconciliation-period-filter-copy strong {
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 850;
}

.bank-reconciliation-period-filter-copy span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.35;
}

.bank-reconciliation-period-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.bank-reconciliation-period-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 6px 14px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 999px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.82rem;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.bank-reconciliation-period-chip:hover,
.bank-reconciliation-period-chip:focus-visible {
  border-color: var(--accent-strong);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.1);
  outline: none;
}

.bank-reconciliation-period-chip.active {
  color: #fff;
  border-color: var(--accent-strong);
  background: var(--accent-strong);
}

.bank-reconciliation-period-custom {
  display: inline-flex;
  align-items: end;
  gap: 8px;
  justify-self: end;
  white-space: nowrap;
}

.bank-reconciliation-period-custom label {
  display: grid;
  gap: 3px;
}

.bank-reconciliation-period-custom label span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.bank-reconciliation-period-custom input[type="date"] {
  min-height: 38px;
  padding: 6px 10px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;
}

.bank-reconciliation-period-custom .btn-secondary-app {
  min-height: 38px;
}

.bank-reconciliation-current-filter {
  display: block;
  margin-top: 2px;
  color: var(--accent-strong);
  font-size: 0.78rem;
  font-weight: 850;
}

.bank-reconciliation-import-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.bank-reconciliation-import-copy strong {
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 850;
}

.bank-reconciliation-import-copy span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.bank-reconciliation-upload .btn-primary-app:disabled {
  cursor: not-allowed;
  color: #64748b;
  background: #e2e8f0;
  border-color: #cbd5e1;
  box-shadow: none;
  opacity: 0.82;
}

.bank-reconciliation-file {
  min-height: 64px;
}

.bank-reconciliation-file .drop-upload-copy small {
  white-space: normal;
}

.reconciliation-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 22px;
}

.reconciliation-period-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.reconciliation-period-header small {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: rgba(28, 34, 38, 0.06);
  font-size: 0.72rem;
  font-weight: 850;
  white-space: nowrap;
}

.reconciliation-period-range {
  display: grid;
  grid-template-columns: 42px max-content;
  column-gap: 8px;
  row-gap: 5px;
  align-items: baseline;
  margin-top: 10px;
}

.reconciliation-period-range span {
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 850;
}

.reconciliation-period-range strong {
  margin-top: 0;
  font-size: 1.42rem;
  line-height: 1.16;
}

.reconciliation-period-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}

.reconciliation-period-button {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  text-decoration: none;
}

.reconciliation-period-button:hover,
.reconciliation-period-button:focus-visible {
  color: #fff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.reconciliation-period-button.disabled {
  color: #94a3b8;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.reconciliation-period-button svg {
  width: 18px;
  height: 18px;
}

.reconciliation-period-current {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: var(--surface-muted);
  font-size: 0.86rem;
  font-weight: 850;
}

.reconciliation-metric-credit strong,
.reconciliation-metric-credit small {
  color: var(--accent);
}

.reconciliation-metric-debit strong,
.reconciliation-metric-debit small {
  color: #b91c1c;
}

.reconciliation-summary-pending-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  color: var(--accent-strong);
  text-decoration: none;
  border-radius: 6px;
  transition: color 0.16s ease, gap 0.16s ease;
}

.reconciliation-summary-pending-link small {
  margin-top: 0;
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(28, 34, 38, 0.32);
  text-underline-offset: 2px;
}

.reconciliation-summary-pending-link svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

.reconciliation-summary-pending-link:hover,
.reconciliation-summary-pending-link:focus-visible {
  color: var(--accent-strong);
  gap: 9px;
  outline: none;
}

.reconciliation-summary-pending-link:hover small,
.reconciliation-summary-pending-link:focus-visible small {
  text-decoration-color: currentColor;
}

.reconciliation-summary-pending-link:focus-visible {
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.16);
}

.bank-reconciliation-status-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
}

.bank-reconciliation-status-filter-label {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.bank-reconciliation-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 5px 12px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 999px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.82rem;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.bank-reconciliation-status-chip:hover,
.bank-reconciliation-status-chip:focus-visible {
  border-color: var(--accent-strong);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.1);
  outline: none;
}

.bank-reconciliation-status-chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(28, 34, 38, 0.08);
  color: inherit;
  font-size: 0.74rem;
  font-weight: 850;
}

.bank-reconciliation-status-chip.active {
  color: #fff;
  border-color: var(--accent-strong);
  background: var(--accent-strong);
}

.bank-reconciliation-status-chip.active .bank-reconciliation-status-chip-count {
  background: rgba(255, 255, 255, 0.22);
}

.bank-reconciliation-status-chip.is-pending.active {
  border-color: #b45309;
  background: #b45309;
}

.bank-reconciliation-status-chip.is-reconciled.active {
  border-color: #15803d;
  background: #15803d;
}

.bank-reconciliation-form {
  margin-top: 18px;
}

.bank-reconciliation-table-heading {
  align-items: center;
}

.bank-reconciliation-heading-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.bank-reconciliation-search {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(140px, 180px) auto auto;
  gap: 10px;
  align-items: end;
  margin: 14px 0 16px;
  padding: 12px;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 8px;
  background: #f8fafc;
}

.bank-reconciliation-search .field {
  min-width: 0;
}

.bank-reconciliation-search .btn-primary-app,
.bank-reconciliation-search .btn-secondary-app {
  min-height: 42px;
  white-space: nowrap;
}

.bank-reconciliation-search-text input,
.bank-reconciliation-search-value input {
  width: 100%;
}

.reconciliation-account-strip {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(280px, 0.8fr);
  gap: 16px;
  align-items: end;
  margin-bottom: 18px;
  padding: 14px;
  border: 2px solid rgba(28, 34, 38, 0.14);
  border-radius: 8px;
  background: #f8fafc;
}

.reconciliation-account-strip.needs-attention {
  border-color: rgba(180, 83, 9, 0.28);
  background: #fffbeb;
}

.reconciliation-account-strip.is-locked {
  border-color: rgba(4, 120, 87, 0.24);
  background: #f0fdf4;
}

.reconciliation-account-strip-linked strong {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #065f46;
}

.reconciliation-account-strip-linked strong svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
}

.reconciliation-account-strip > div {
  display: grid;
  gap: 5px;
}

.reconciliation-account-strip span,
.reconciliation-account-strip small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.reconciliation-account-strip strong {
  color: var(--text);
  font-size: 0.98rem;
}

.reconciliation-pagination-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 800;
}

.reconciliation-pagination-toolbar-info {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  min-width: 0;
}

.reconciliation-pagination-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}

.reconciliation-pagination-toolbar-actions .reconciliation-pagination-bar {
  margin: 0;
}

.reconciliation-pagination-bar {
  margin: 0;
}

.reconciliation-page-size {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.pagination-size {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.pagination-link,
.pagination-size-option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  text-decoration: none;
}

.pagination-link:hover,
.pagination-size-option:hover,
.pagination-size-option.active {
  color: #fff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.pagination-link.disabled {
  pointer-events: none;
  color: #94a3b8;
  background: #f8fafc;
  border-color: #e2e8f0;
}

.reconciliation-list {
  display: grid;
  gap: 12px;
}

.reconciliation-pagination-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.reconciliation-pagination-bottom-bar {
  margin: 0;
}

.reconciliation-row {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(280px, 1fr) minmax(360px, 1.05fr);
  gap: 14px;
  padding: 14px;
  border: 2px solid var(--line);
  border-left-width: 7px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
}

.reconciliation-row.is-credit {
  border-left-color: #047857;
}

.reconciliation-row.is-credit.is-even {
  background: #fff;
}

.reconciliation-row.is-credit.is-odd {
  background: #fff;
}

.reconciliation-row.is-debit {
  border-left-color: #b91c1c;
}

.reconciliation-row.is-debit.is-even {
  background: #fff;
}

.reconciliation-row.is-debit.is-odd {
  background: #fff;
}

.reconciliation-row.is-reconciliation-success {
  box-shadow: 0 0 0 2px rgba(4, 120, 87, 0.16), 0 12px 28px rgba(15, 23, 42, 0.05);
}

.reconciliation-row.is-reconciliation-error {
  box-shadow: 0 0 0 2px rgba(185, 28, 28, 0.16), 0 12px 28px rgba(15, 23, 42, 0.05);
}

.reconciliation-row.is-collapsed {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 0;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
}

.reconciliation-row.is-collapsed > .reconciliation-bank-entry,
.reconciliation-row.is-collapsed > .reconciliation-match-entry,
.reconciliation-row.is-collapsed > .reconciliation-assignment-entry,
.reconciliation-row.is-collapsed > .reconciliation-suggestions-panel,
.reconciliation-row.is-collapsed > .reconciliation-multi-drawer {
  display: none;
}

.reconciliation-status-band {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: -14px -14px 0;
  padding: 10px 14px;
  border-bottom: 1px solid transparent;
  border-radius: 2px 6px 0 0;
}

.reconciliation-row.is-collapsed .reconciliation-status-band {
  min-height: 54px;
  margin: 0;
  border-bottom: 0;
  border-radius: 0 6px 6px 0;
}

.reconciliation-status-band.is-reconciled {
  color: #065f46;
  background: #ecfdf5;
  border-bottom-color: #a7f3d0;
}

.reconciliation-status-band.is-pending {
  color: #92400e;
  background: #fffbeb;
  border-bottom-color: #fde68a;
}

.reconciliation-status-band-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.reconciliation-status-band-label strong {
  font-size: 0.92rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}

.reconciliation-status-band-icon {
  display: inline-grid;
  place-items: center;
}

.reconciliation-status-band-icon svg {
  width: 18px;
  height: 18px;
  stroke-width: 2.4;
}

.reconciliation-status-band-meta {
  flex: 1;
  min-width: 0;
  color: inherit;
  font-size: 0.8rem;
  font-weight: 820;
  opacity: 0.85;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reconciliation-status-band .reconciliation-value {
  flex: 0 0 auto;
}

.reconciliation-undo-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(185, 28, 28, 0.24);
  border-radius: 7px;
  color: #991b1b;
  background: rgba(255, 255, 255, 0.82);
  font-size: 0.76rem;
  font-weight: 850;
  cursor: pointer;
}

.reconciliation-undo-button:hover,
.reconciliation-undo-button:focus-visible {
  border-color: #b91c1c;
  color: #fff;
  background: #b91c1c;
  outline: none;
}

.reconciliation-undo-button[hidden] {
  display: none !important;
}

.reconciliation-undo-button svg {
  width: 15px;
  height: 15px;
}

.reconciliation-row-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(6, 95, 70, 0.22);
  border-radius: 7px;
  color: #065f46;
  background: rgba(255, 255, 255, 0.8);
  font-size: 0.76rem;
  font-weight: 850;
  cursor: pointer;
}

.reconciliation-row-toggle:hover,
.reconciliation-row-toggle:focus-visible {
  color: #fff;
  background: #047857;
  border-color: #047857;
  outline: none;
}

.reconciliation-row-toggle[hidden] {
  display: none;
}

.reconciliation-row-toggle svg {
  width: 15px;
  height: 15px;
}

.reconciliation-bank-entry,
.reconciliation-match-entry,
.reconciliation-assignment-entry {
  display: grid;
  align-content: start;
  gap: 10px;
  min-width: 0;
}

.reconciliation-assignment-entry {
  grid-column: 3;
  grid-row: 2 / span 2;
}

.reconciliation-suggestions-panel {
  grid-column: 1 / 3;
  display: grid;
  gap: 10px;
  padding-top: 14px;
  border-top: 2px solid rgba(100, 116, 139, 0.28);
  min-width: 0;
}

.reconciliation-suggestions-panel .reconciliation-score {
  justify-self: start;
}

.reconciliation-suggestions-panel .compact-empty-state {
  margin: 0;
}

.reconciliation-value {
  font-size: 1.08rem;
  font-weight: 850;
  white-space: nowrap;
}

.reconciliation-value.credit {
  color: var(--success-strong);
}

.reconciliation-value.debit {
  color: #9b1c1c;
}

.reconciliation-bank-entry > strong {
  color: var(--text);
  font-size: 0.98rem;
  line-height: 1.35;
}

.reconciliation-bank-entry > small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.reconciliation-suggestion {
  display: inline-flex;
  align-items: flex-start;
  gap: 7px;
  padding: 9px 10px;
  border-radius: 8px;
  color: #23505b;
  background: #e3eef3;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.35;
}

.reconciliation-suggestion svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.reconciliation-candidates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  align-items: start;
}

.reconciliation-candidate {
  display: grid;
  gap: 7px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #f8fafc;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: default;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.reconciliation-candidate:hover,
.reconciliation-candidate:focus-within {
  border-color: rgba(28, 34, 38, 0.32);
  background: #fff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
  outline: none;
}

.reconciliation-candidate.selected {
  border-color: rgba(28, 34, 38, 0.5);
  background: #fff;
  box-shadow: 0 0 0 2px rgba(28, 34, 38, 0.08);
}

.reconciliation-candidate-choice {
  display: grid;
  gap: 7px;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.reconciliation-candidate-choice:focus-visible {
  outline: 2px solid rgba(13, 110, 116, 0.55);
  outline-offset: 4px;
  border-radius: 5px;
}

.reconciliation-candidate-eyebrow {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.reconciliation-candidate-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.reconciliation-candidate-heading strong {
  color: var(--text);
  font-size: 0.84rem;
}

.reconciliation-probability {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 850;
  white-space: nowrap;
}

.reconciliation-probability.high {
  color: #065f46;
  background: #d1fae5;
}

.reconciliation-probability.medium {
  color: #075985;
  background: #e0f2fe;
}

.reconciliation-probability.low {
  color: #6b4e16;
  background: #fef3c7;
}

.reconciliation-candidate-person {
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 800;
}

.reconciliation-candidate-description,
.reconciliation-candidate-meta {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.3;
}

/* Componentes da baixa confirmada: compactos para caber no card de sugestao. */
.reconciliation-candidate-composition {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 6px;
  width: 100%;
  margin-top: 1px;
  padding-top: 6px;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
  font-variant-numeric: tabular-nums;
}

.reconciliation-candidate-composition > span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px;
  min-width: 0;
  padding: 3px 4px;
  border-radius: 5px;
}

.reconciliation-candidate-composition small {
  min-width: 0;
  color: var(--muted);
  font-size: 0.61rem;
  font-weight: 820;
  line-height: 1.1;
}

.reconciliation-candidate-composition strong {
  flex: 0 0 auto;
  color: var(--text);
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
}

.reconciliation-candidate-composition .is-total {
  background: color-mix(in srgb, var(--primary), transparent 89%);
}

.reconciliation-candidate-composition .is-total small,
.reconciliation-candidate-composition .is-total strong {
  color: var(--primary-strong, var(--primary));
}

.reconciliation-candidate-account {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  padding: 6px 8px;
  border-radius: 8px;
  color: #0f3d4a;
  background: #e0f2fe;
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.25;
}

.reconciliation-candidate-account.empty {
  color: #6b4e16;
  background: #fef3c7;
}

.reconciliation-candidate-account svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.reconciliation-candidate-category-shell {
  position: relative;
  display: grid;
  justify-items: start;
  min-width: 0;
}

.reconciliation-candidate-account-editable {
  border: 0;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: box-shadow 0.16s ease, transform 0.16s ease, background-color 0.16s ease;
}

.reconciliation-candidate-account-editable:hover,
.reconciliation-candidate-account-editable:focus-visible {
  box-shadow: 0 0 0 2px rgba(13, 110, 116, 0.28);
  transform: translateY(-1px);
  outline: none;
}

.reconciliation-candidate-account-edit-icon {
  margin-left: 2px;
  opacity: 0.7;
}

.reconciliation-candidate-category-editor {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  width: 100%;
  max-width: 460px;
  min-width: 0;
}

.reconciliation-candidate-category-editor[hidden] {
  display: none;
}

.reconciliation-candidate-category-combobox {
  flex: 1 1 auto;
  min-width: 0;
}

.reconciliation-candidate-category-combobox .combobox-popup {
  z-index: 35;
  width: min(520px, calc(100vw - 72px));
}

.reconciliation-candidate-category-close {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
}

.reconciliation-multi-control {
  display: grid;
  gap: 7px;
  align-items: start;
}

.reconciliation-multi-open {
  width: fit-content;
  min-height: 36px;
  padding: 0 12px;
  font-size: 0.78rem;
}

.reconciliation-multi-control [data-reconciliation-multi-summary] {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 820;
}

.reconciliation-selected-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.reconciliation-selected-pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  max-width: 100%;
  padding: 4px 8px;
  border-radius: 999px;
  color: #064e3b;
  background: #d1fae5;
  font-size: 0.7rem;
  font-weight: 850;
}

[data-reconciliation-selected-links] {
  display: none;
}

body.reconciliation-multi-drawer-open {
  overflow: hidden;
}

.reconciliation-multi-drawer {
  position: fixed;
  inset: 0;
  z-index: 1180;
  display: block;
}

.reconciliation-multi-drawer[aria-hidden="true"] {
  display: none;
}

.reconciliation-multi-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(15, 23, 42, 0.34);
}

.reconciliation-multi-panel {
  position: absolute;
  top: 14px;
  right: 14px;
  bottom: 14px;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
  width: min(720px, calc(100vw - 28px));
  overflow: hidden;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-left: 4px solid var(--accent);
  border-radius: 8px 0 0 8px;
  background: #fff;
  box-shadow: -24px 0 60px rgba(15, 23, 42, 0.22);
}

.reconciliation-multi-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
  border-bottom: 1px solid var(--line);
}

.reconciliation-multi-header div {
  display: grid;
  gap: 3px;
}

.reconciliation-multi-header span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.reconciliation-multi-header strong {
  color: var(--text);
  font-size: 1rem;
  font-weight: 900;
}

.reconciliation-multi-bank {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: #f8fafc;
}

.reconciliation-multi-bank span,
.reconciliation-multi-bank em {
  color: var(--muted);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 850;
}

.reconciliation-multi-bank strong {
  color: var(--text);
  font-size: 0.9rem;
  line-height: 1.35;
}

.reconciliation-multi-bank em {
  color: var(--success-strong);
}

.reconciliation-multi-filters {
  position: relative;
  z-index: 3;
  display: grid;
  gap: 10px;
  padding: 14px 16px 0;
}

.reconciliation-multi-search {
  padding: 0;
}

.reconciliation-multi-company-filter .client-picker-trigger {
  min-height: 44px;
  padding: 9px 11px;
  font-size: 0.86rem;
  font-weight: 760;
}

.reconciliation-multi-company-filter .client-picker-trigger span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reconciliation-multi-company-filter .client-picker-panel {
  z-index: 60;
  min-width: min(520px, calc(100vw - 68px));
}

.reconciliation-multi-company-filter .client-picker-options {
  max-height: min(300px, 38vh);
}

.reconciliation-multi-company-filter .client-picker-all input[type="checkbox"],
.reconciliation-multi-company-filter .client-picker-option input[type="checkbox"] {
  width: auto;
  min-height: 0;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.reconciliation-multi-company-filter .client-picker-option input[type="checkbox"] {
  margin-top: 2px;
}

.reconciliation-multi-company-filter .client-picker-option {
  align-items: start;
}

.reconciliation-multi-company-filter .client-picker-option strong {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  line-height: 1.25;
}

.reconciliation-multi-list-shell {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: 0;
}

.reconciliation-multi-list {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 0;
  padding: 14px 16px;
  overflow-y: auto;
}

.reconciliation-multi-results {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 42px;
  padding: 6px 16px 10px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  background: #fff;
  font-size: 0.74rem;
  font-weight: 820;
}

.reconciliation-multi-results .btn-secondary-app {
  min-height: 32px;
  padding: 6px 10px;
  font-size: 0.72rem;
}

.reconciliation-multi-option {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.reconciliation-multi-option:hover,
.reconciliation-multi-option:focus-visible {
  border-color: rgba(28, 34, 38, 0.34);
  background: #f8fafc;
  outline: none;
}

.reconciliation-multi-option.selected {
  border-color: rgba(4, 120, 87, 0.42);
  background: #ecfdf5;
}

.reconciliation-multi-check {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  color: var(--accent-strong);
  background: #fff;
}

.reconciliation-multi-option.selected .reconciliation-multi-check {
  color: #fff;
  background: #047857;
  border-color: #047857;
}

.reconciliation-multi-check svg {
  width: 15px;
  height: 15px;
}

.reconciliation-multi-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.reconciliation-multi-copy strong {
  color: var(--text);
  font-size: 0.84rem;
  font-weight: 900;
}

.reconciliation-multi-copy small,
.reconciliation-multi-copy em {
  color: var(--muted);
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 760;
  line-height: 1.25;
}

.reconciliation-multi-amount {
  color: var(--text);
  font-size: 0.84rem;
  font-weight: 900;
  white-space: nowrap;
}

.reconciliation-multi-title-card {
  display: block;
  padding: 0;
  cursor: default;
}

.reconciliation-multi-option-select {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 8px;
  color: inherit;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.reconciliation-multi-option-select:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(13, 110, 116, 0.34);
  outline: none;
}

.reconciliation-multi-category-shell {
  position: relative;
  display: grid;
  min-width: 0;
  padding: 0 10px 10px 54px;
}

.reconciliation-multi-category-button {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  justify-self: start;
  max-width: 100%;
  min-height: 28px;
  padding: 4px 8px;
  overflow: hidden;
  border: 0;
  border-radius: 7px;
  color: #075985;
  background: #e0f2fe;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 820;
  text-align: left;
  cursor: pointer;
  transition: box-shadow 0.16s ease, transform 0.16s ease, background-color 0.16s ease;
}

.reconciliation-multi-category-button.empty {
  color: #6b4e16;
  background: #fef3c7;
}

.reconciliation-multi-category-button:hover,
.reconciliation-multi-category-button:focus-visible {
  box-shadow: 0 0 0 2px rgba(13, 110, 116, 0.28);
  transform: translateY(-1px);
  outline: none;
}

.reconciliation-multi-category-button span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reconciliation-multi-category-button svg {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
}

.reconciliation-multi-category-button svg:last-child {
  opacity: 0.72;
}

.reconciliation-multi-category-editor {
  position: relative;
  display: flex;
  gap: 6px;
  align-items: flex-start;
  width: 100%;
  max-width: 540px;
  min-width: 0;
}

.reconciliation-multi-category-editor[hidden] {
  display: none;
}

.reconciliation-multi-category-combobox {
  flex: 1 1 auto;
  min-width: 0;
}

.reconciliation-multi-category-combobox .combobox-popup {
  z-index: 45;
  width: 100%;
  max-width: 100%;
}

.reconciliation-multi-category-close {
  flex: 0 0 auto;
  width: 38px;
  min-width: 38px;
  height: 38px;
}

.reconciliation-multi-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  background: #fff;
}

.reconciliation-multi-totals {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 850;
}

.reconciliation-multi-totals span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 26px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f1f5f9;
}

.reconciliation-multi-totals span.is-balanced {
  color: #065f46;
  background: #d1fae5;
}

.reconciliation-multi-totals span.is-missing,
.reconciliation-multi-totals span.is-excess {
  color: #92400e;
  background: #fef3c7;
}

.reconciliation-assignment-card {
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid #d8e0ec;
  border-radius: 8px;
  background: #fff;
}

.reconciliation-assignment-hint {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 760;
  line-height: 1.3;
}

.reconciliation-mode-toggle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.reconciliation-mode-option {
  position: relative;
  min-width: 0;
  cursor: pointer;
}

.reconciliation-mode-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.reconciliation-mode-option span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  min-height: 38px;
  padding: 8px 9px;
  border: 1px solid #d6deea;
  border-radius: 8px;
  color: var(--muted);
  background: #f8fafc;
  font-size: 0.76rem;
  font-weight: 850;
  text-align: center;
}

.reconciliation-mode-option svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
}

.reconciliation-mode-option input:checked + span {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.32);
  box-shadow: 0 0 0 2px rgba(28, 34, 38, 0.06);
}

.reconciliation-assignment-panel {
  display: grid;
  gap: 10px;
}

.reconciliation-assignment-panel[hidden] {
  display: none;
}

.reconciliation-description-field input {
  width: 100%;
  min-height: 54px;
  font-size: 0.98rem;
}

.reconciliation-category-field {
  position: relative;
}

.reconciliation-category-combobox input {
  padding-right: 38px;
}

.reconciliation-person-combobox .combobox-popup {
  left: auto;
  right: 0;
  width: min(520px, calc(100vw - 48px));
  min-width: min(420px, calc(100vw - 48px));
  max-width: calc(100vw - 48px);
  box-sizing: border-box;
}

.reconciliation-person-combobox .combobox-options {
  max-height: min(280px, 42vh);
  overflow-y: auto;
}

.reconciliation-person-combobox .combobox-option.reconciliation-person-option {
  grid-template-columns: minmax(0, 1fr);
  gap: 3px;
  min-height: 50px;
}

.reconciliation-person-option strong {
  color: var(--text);
  font-size: 0.82rem;
  white-space: normal;
}

.reconciliation-person-option span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 780;
  white-space: normal;
}

.reconciliation-category-combobox .combobox-popup {
  left: auto;
  right: 0;
  width: min(620px, calc(100vw - 48px));
  min-width: min(620px, calc(100vw - 48px));
  max-width: calc(100vw - 48px);
  box-sizing: border-box;
}

.reconciliation-category-combobox.reconciliation-multi-category-combobox input {
  width: 100%;
  min-width: 0;
}

.reconciliation-category-combobox.reconciliation-multi-category-combobox .combobox-popup {
  position: fixed;
  z-index: 1210;
  inset: auto;
  min-width: 0;
  max-width: none;
}

.reconciliation-category-combobox .combobox-options {
  max-height: min(390px, 48vh);
  overflow-y: scroll;
  padding-right: 10px;
  scrollbar-color: #64748b #eef2f7;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
}

.reconciliation-category-combobox .combobox-options::-webkit-scrollbar {
  width: 12px;
}

.reconciliation-category-combobox .combobox-options::-webkit-scrollbar-track {
  border-radius: 999px;
  background: #eef2f7;
}

.reconciliation-category-combobox .combobox-options::-webkit-scrollbar-thumb {
  border: 3px solid #eef2f7;
  border-radius: 999px;
  background: #64748b;
}

.reconciliation-category-combobox .combobox-options::-webkit-scrollbar-thumb:hover {
  background: #475569;
}

.reconciliation-category-combobox .combobox-option.reconciliation-category-option {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  align-items: start;
  min-height: 58px;
  padding: 9px 11px;
  border-left: 4px solid transparent;
}

.reconciliation-category-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.reconciliation-category-main strong {
  color: var(--text);
  font-size: 0.84rem;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.reconciliation-category-code {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 7px;
  border-radius: 6px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.76rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.reconciliation-category-option.is-revenue {
  border-left-color: #047857;
}

.reconciliation-category-option.is-expense {
  border-left-color: #b91c1c;
}

.reconciliation-category-option.is-revenue .reconciliation-category-code,
.reconciliation-category-option.is-revenue .reconciliation-category-main small {
  color: #065f46;
  background: #d1fae5;
}

.reconciliation-category-option.is-expense .reconciliation-category-code,
.reconciliation-category-option.is-expense .reconciliation-category-main small {
  color: #991b1b;
  background: #fee2e2;
}

.reconciliation-category-create-option {
  border-top: 1px solid var(--line);
  background: #f8fafc;
}

.reconciliation-category-create-option .reconciliation-category-code {
  justify-content: center;
  min-width: 28px;
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.reconciliation-category-create-option .reconciliation-category-code i {
  width: 15px;
  height: 15px;
  stroke-width: 2.4;
}

.reconciliation-category-path {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 780;
  line-height: 1.32;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.reconciliation-category-main small {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  color: #0f3d4a;
  background: #e0f2fe;
  font-size: 0.68rem;
  font-weight: 850;
}

.reconciliation-check-toggle {
  position: relative;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 44px;
  padding: 8px 10px;
  border: 2px solid rgba(100, 116, 139, 0.22);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  user-select: none;
}

.reconciliation-check-toggle:hover,
.reconciliation-check-toggle:focus-within {
  border-color: rgba(28, 34, 38, 0.32);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.reconciliation-check-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.reconciliation-switch-track {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 48px;
  height: 28px;
  padding: 3px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #e2e8f0;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
  transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.reconciliation-switch-thumb {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: transparent;
  background: #fff;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
  transform: translateX(0);
  transition: transform 0.18s ease, color 0.16s ease;
}

.reconciliation-switch-thumb svg {
  width: 13px;
  height: 13px;
  stroke-width: 3;
}

.reconciliation-check-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.reconciliation-check-copy strong {
  color: var(--text);
  font-size: 0.82rem;
}

.reconciliation-check-copy small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 760;
  line-height: 1.25;
}

.reconciliation-toggle-text.is-on {
  display: none;
}

.reconciliation-check-toggle input[type="checkbox"]:checked ~ .reconciliation-switch-track {
  border-color: #047857;
  background: #047857;
  box-shadow: inset 0 1px 2px rgba(6, 95, 70, 0.2);
}

.reconciliation-check-toggle input[type="checkbox"]:checked ~ .reconciliation-switch-track .reconciliation-switch-thumb {
  color: #047857;
  transform: translateX(20px);
}

.reconciliation-check-toggle input[type="checkbox"]:checked ~ .reconciliation-check-copy .is-on {
  display: inline;
}

.reconciliation-check-toggle input[type="checkbox"]:checked ~ .reconciliation-check-copy .is-off {
  display: none;
}

.reconciliation-score {
  display: inline-flex;
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.76rem;
  font-weight: 850;
}

.reconciliation-line-action {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fff;
}

.reconciliation-line-submit {
  width: 100%;
  min-height: 44px;
  justify-content: center;
}

.reconciliation-line-submit.is-update {
  color: var(--accent-strong);
  background: #fff;
  border: 1px solid rgba(28, 34, 38, 0.24);
  box-shadow: none;
  min-height: 38px;
  font-size: 0.82rem;
}

.reconciliation-line-submit.is-update:hover,
.reconciliation-line-submit.is-update:focus-visible {
  color: #fff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.reconciliation-line-action small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 780;
  line-height: 1.25;
  text-align: center;
}

@media (max-width: 1100px) {
  .bank-reconciliation-main-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bank-reconciliation-period-field {
    grid-column: 1 / -1;
  }

  .bank-reconciliation-import-card {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-period-filter {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-period-custom {
    justify-self: start;
  }

  .reconciliation-account-strip {
    grid-template-columns: 1fr;
  }

  .reconciliation-pagination-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .reconciliation-pagination-toolbar-info {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .reconciliation-pagination-toolbar-actions,
  .pagination-size {
    justify-content: flex-start;
    justify-items: start;
  }

  .reconciliation-pagination-footer {
    justify-content: flex-start;
  }

  .reconciliation-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .reconciliation-suggestions-panel {
    grid-column: 1 / -1;
  }

  .reconciliation-assignment-entry {
    grid-column: 1 / -1;
    grid-row: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-score {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .bank-reconciliation-main-controls,
  .bank-reconciliation-import-card,
  .bank-reconciliation-period-filter,
  .bank-reconciliation-search,
  .reconciliation-row,
  .reconciliation-assignment-entry {
    grid-template-columns: 1fr;
  }

  .bank-period-selector {
    grid-template-columns: 40px minmax(0, 1fr) 40px;
  }

  .bank-period-popover {
    left: 0;
    right: auto;
    width: 100%;
    max-width: 100%;
  }

  .reconciliation-category-combobox .combobox-popup {
    left: 0;
    right: auto;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  .reconciliation-person-combobox .combobox-popup {
    left: 0;
    right: auto;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  .reconciliation-candidates {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-upload .form-actions,
  .bank-reconciliation-upload .btn-primary-app,
  .bank-reconciliation-search .btn-primary-app,
  .bank-reconciliation-search .btn-secondary-app,
  .bank-reconciliation-period-custom .btn-secondary-app,
  .reconciliation-line-submit {
    width: 100%;
  }

  .bank-reconciliation-period-custom {
    align-items: stretch;
    flex-direction: column;
    display: flex;
    width: 100%;
    white-space: normal;
  }

  .reconciliation-status-band {
    flex-wrap: wrap;
    gap: 6px 14px;
  }
}

.contract-owner-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: flex-start;
  margin-top: 18px;
}

.contract-owner-title-filter {
  width: min(340px, 100%);
}

.contract-filter-bar {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
}

.contract-filter-bar .field {
  gap: 6px;
}

.contract-filter-bar .field > span:first-child {
  font-size: 0.78rem;
  white-space: nowrap;
}

.contract-filter-bar input,
.contract-filter-bar select {
  min-height: 38px;
  padding: 8px 10px;
  font-size: 0.9rem;
}

.contract-filter-bar .client-picker-trigger {
  height: 44px;
  min-height: 44px;
  padding: 8px 10px;
  font-size: 0.9rem;
}

.contract-filter-bar .client-picker-trigger span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-filter-bar .contract-client-filter {
  grid-column: span 5;
}

.contract-filter-bar .contract-bank-field {
  grid-column: span 3;
}

.contract-filter-bar .contract-account-field {
  grid-column: span 4;
}

.contract-filter-bar .contract-search-field {
  grid-column: span 9;
}

.contract-filter-bar .form-actions {
  grid-column: span 3;
  align-self: end;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.fiscal-filter-bar {
  grid-template-columns: repeat(16, minmax(0, 1fr));
  margin-bottom: 2px;
}

.table-panel.fiscal-filter-panel {
  margin-top: 0;
  padding-block: 18px;
}

.fiscal-filter-panel .fiscal-filter-bar {
  margin-top: 0;
}

.fiscal-filter-bar .fiscal-company-field {
  grid-column: span 6;
}

.fiscal-filter-bar .fiscal-range-field {
  grid-column: span 5;
}

.fiscal-filter-bar .fiscal-direction-field {
  grid-column: span 3;
}

.fiscal-filter-bar .fiscal-status-field,
.fiscal-filter-bar .fiscal-uf-field,
.fiscal-filter-bar .fiscal-cfop-field,
.fiscal-filter-bar .fiscal-value-field {
  grid-column: span 2;
}

.fiscal-filter-bar .fiscal-document-filter {
  grid-column: span 5;
}

.fiscal-filter-bar .form-actions {
  align-self: end;
  grid-column: span 3;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.fiscal-cfop-picker {
  position: relative;
  min-width: 0;
}

.fiscal-cfop-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  width: 100%;
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.fiscal-cfop-trigger:disabled {
  color: var(--muted);
  background: #f7f9fc;
  cursor: not-allowed;
  opacity: 0.72;
}

.fiscal-cfop-trigger span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-cfop-trigger svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  color: var(--accent-strong);
  stroke-width: 2.3;
}

.fiscal-cfop-trigger:hover:not(:disabled),
.fiscal-cfop-trigger:focus-visible,
.fiscal-cfop-trigger[aria-expanded="true"] {
  border-color: rgba(28, 34, 38, 0.42);
  box-shadow: 0 0 0 4px rgba(28, 34, 38, 0.08);
  outline: none;
}

.fiscal-cfop-panel {
  position: absolute;
  z-index: 45;
  top: calc(100% + 7px);
  left: 0;
  display: grid;
  gap: 8px;
  width: min(300px, calc(100vw - 24px));
  max-height: 330px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 22px 56px rgba(31, 41, 51, 0.18);
}

.fiscal-cfop-panel[hidden] {
  display: none;
}

.fiscal-cfop-search {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  min-height: 36px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}

.fiscal-cfop-search svg {
  width: 15px;
  height: 15px;
  color: var(--muted);
}

.fiscal-cfop-search input {
  min-height: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.9rem;
  font-weight: 750;
  outline: none;
}

.fiscal-cfop-options {
  display: grid;
  gap: 3px;
  max-height: 210px;
  overflow-y: auto;
  padding-right: 2px;
}

.fiscal-cfop-option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 34px;
  margin: 0;
  padding: 6px 7px;
  border-radius: 7px;
  color: var(--text);
  font-size: 0.88rem;
  font-weight: 850;
  cursor: pointer;
}

.fiscal-cfop-option:hover,
.fiscal-cfop-option:focus-within {
  background: var(--accent-soft);
}

.fiscal-cfop-option input {
  width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  accent-color: var(--accent);
}

.fiscal-cfop-option span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-cfop-option small {
  min-width: 28px;
  padding: 2px 6px;
  border-radius: 999px;
  color: var(--muted);
  background: #eef3f8;
  font-size: 0.72rem;
  font-weight: 900;
  text-align: center;
}

.fiscal-cfop-all {
  border-bottom: 1px solid rgba(203, 213, 225, 0.72);
  border-radius: 7px 7px 0 0;
}

.fiscal-cfop-empty {
  padding: 8px 6px;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 750;
  text-align: center;
}

.fiscal-company-picker .combobox-options {
  max-height: 344px;
  padding: 7px;
}

.fiscal-company-picker .combobox-popup {
  right: auto;
  width: min(620px, calc(100vw - 32px));
  min-width: 100%;
}

.fiscal-company-picker .fiscal-company-option.option-name-first {
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  min-height: 50px;
  padding: 9px 10px;
}

.fiscal-company-picker .fiscal-company-option input[type="checkbox"] {
  width: 17px;
  height: 17px;
  min-height: 17px;
  margin: 0;
  margin-top: 3px;
  padding-right: 0;
  accent-color: var(--accent);
}

.fiscal-company-picker .fiscal-company-option-body {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.fiscal-company-picker .fiscal-company-option-body strong {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 0.91rem;
  font-weight: 850;
  line-height: 1.18;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-company-picker .fiscal-company-option-body span {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1.12;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-company-picker .fiscal-company-option:hover .fiscal-company-option-body strong,
.fiscal-company-picker .fiscal-company-option.active .fiscal-company-option-body strong {
  color: var(--accent-strong);
}

.fiscal-company-all {
  border-bottom: 1px solid rgba(203, 213, 225, 0.72);
  border-radius: 7px 7px 0 0;
}

.fiscal-documents-header {
  align-items: center;
  flex-wrap: wrap;
}

.fiscal-documents-heading {
  flex: 1 1 280px;
  min-width: 0;
}

.fiscal-documents-header-actions {
  flex: 1 1 620px;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

.fiscal-xml-quick-import {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  flex: 1 1 470px;
  align-items: center;
  gap: 9px;
  min-width: 0;
  max-width: 610px;
}

.fiscal-xml-quick-dropzone {
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
  min-height: 58px;
  padding: 7px 10px;
}

.fiscal-xml-quick-dropzone .drop-upload-icon {
  width: 32px;
  height: 32px;
}

.fiscal-xml-quick-dropzone .drop-upload-copy {
  min-width: 0;
}

.fiscal-xml-quick-dropzone .drop-upload-copy strong,
.fiscal-xml-quick-dropzone .drop-upload-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-xml-quick-dropzone .drop-upload-copy strong {
  font-size: 0.82rem;
}

.fiscal-xml-quick-dropzone .drop-upload-copy small {
  font-size: 0.7rem;
}

.fiscal-xml-import-results {
  margin: 12px 0;
}

.fiscal-xml-import-results ul {
  display: grid;
  gap: 5px;
  margin: 8px 0 0;
  padding-left: 20px;
}

.fiscal-xml-import-results li {
  overflow-wrap: anywhere;
}

.fiscal-xml-company-hint {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.35;
}

.fiscal-xml-company-hint svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

@media (max-width: 1180px) {
  .fiscal-documents-header {
    align-items: stretch;
  }

  .fiscal-documents-header-actions {
    flex-basis: 100%;
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .fiscal-documents-header-actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  .fiscal-xml-quick-import {
    grid-template-columns: 1fr;
    flex-basis: auto;
    width: 100%;
    max-width: none;
  }

  .fiscal-xml-quick-import .btn-primary-app,
  .fiscal-documents-header-actions > .btn-secondary-app {
    justify-content: center;
    width: 100%;
  }

  .fiscal-xml-quick-dropzone .drop-upload-copy strong,
  .fiscal-xml-quick-dropzone .drop-upload-copy small {
    white-space: normal;
  }
}

.sefaz-conference-form {
  display: grid;
  gap: 18px;
}

.sefaz-conference-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.86fr) minmax(0, 1.4fr);
  gap: 16px;
}

.sefaz-paste-area {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.sefaz-conference-form .field small {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.35;
}

.sefaz-consult-company-field {
  align-self: stretch;
}

.sefaz-consult-company-field select {
  min-height: 58px;
}

.sefaz-csv-field {
  align-self: stretch;
}

.sefaz-csv-dropzone {
  min-width: 0;
  min-height: 96px;
}

.sefaz-csv-dropzone .drop-upload-copy strong,
.sefaz-csv-dropzone .drop-upload-copy small {
  white-space: normal;
}

.sefaz-paste-area {
  grid-template-columns: minmax(0, 2fr) minmax(260px, 0.8fr);
  align-items: stretch;
}

.sefaz-key-workspace {
  min-width: 0;
}

.sefaz-paste-area textarea,
.sefaz-copy-box {
  width: 100%;
  min-height: 168px;
  resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 0.88rem;
  line-height: 1.5;
}

.sefaz-key-summary {
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
}

.sefaz-key-summary[hidden] {
  display: none;
}

.sefaz-key-summary-head {
  display: flex;
  gap: 8px 12px;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
}

.sefaz-key-summary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.sefaz-key-summary-head strong,
.sefaz-key-summary-head small {
  display: block;
  min-width: 0;
  line-height: 1.25;
}

.sefaz-key-summary-head strong {
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 850;
  white-space: nowrap;
}

.sefaz-key-summary-head small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 760;
  text-align: right;
}

.sefaz-floating-trigger {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  cursor: pointer;
}

.sefaz-floating-trigger:hover,
.sefaz-floating-trigger:focus-visible {
  border-color: rgba(28, 34, 38, 0.44);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.sefaz-floating-trigger:disabled {
  color: var(--muted);
  background: var(--surface-muted);
  border-color: var(--line);
  cursor: not-allowed;
  box-shadow: none;
  opacity: 0.78;
}

.sefaz-floating-trigger:disabled:hover {
  border-color: var(--line);
  box-shadow: none;
}

.sefaz-floating-trigger svg {
  width: 16px;
  height: 16px;
  stroke-width: 2.4;
}

.sefaz-key-preview {
  display: grid;
  gap: 6px;
  min-height: 168px;
  max-height: 360px;
  overflow: auto;
  padding-right: 2px;
}

.sefaz-key-preview-row {
  display: grid;
  grid-template-columns: 32px minmax(280px, 1.5fr) minmax(170px, 0.72fr) minmax(88px, 0.36fr);
  gap: 8px;
  align-items: center;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid rgba(148, 163, 184, 0.34);
  border-radius: 7px;
  background: #fff;
}

.sefaz-key-preview-order {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  color: #334155;
  background: #e2e8f0;
  font-size: 0.7rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.sefaz-key-preview-row code {
  min-width: 0;
  overflow: hidden;
  color: #0f172a;
  font-size: 0.75rem;
  font-weight: 780;
  letter-spacing: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sefaz-key-preview-group {
  white-space: nowrap;
}

.sefaz-key-cnpj-digit {
  color: #92400e;
  background: #fef3c7;
  box-shadow: 0 0 0 1px rgba(217, 119, 6, 0.12);
}

.sefaz-key-preview-company {
  min-width: 0;
  overflow: hidden;
  color: #075985;
  font-size: 0.72rem;
  font-weight: 820;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sefaz-key-preview-company.is-unknown {
  color: #b91c1c;
}

.sefaz-key-preview-company.is-deferred {
  color: #0369a1;
}

.sefaz-key-preview-source {
  min-width: 0;
  overflow: hidden;
  color: #475569;
  font-size: 0.7rem;
  font-weight: 780;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sefaz-key-preview-extra {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 780;
  line-height: 1.35;
}

.sefaz-key-empty {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 7px;
  min-height: 150px;
  padding: 18px;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
}

.sefaz-key-empty svg {
  width: 28px;
  height: 28px;
  color: #64748b;
  stroke-width: 1.9;
}

.sefaz-key-empty strong,
.sefaz-key-empty span {
  display: block;
  line-height: 1.28;
}

.sefaz-key-empty strong {
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 850;
}

.sefaz-key-empty span {
  max-width: 320px;
  font-size: 0.74rem;
  font-weight: 760;
}

.sefaz-floating-panel {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 80;
  display: grid;
  gap: 12px;
  width: min(560px, calc(100vw - 32px));
  padding: 14px;
  border: 1px solid rgba(148, 163, 184, 0.42);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24);
}

.sefaz-floating-panel[hidden] {
  display: none;
}

.sefaz-floating-panel-head {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
}

.sefaz-floating-panel-head strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sefaz-floating-panel .field {
  margin: 0;
}

.sefaz-floating-panel textarea {
  min-height: 260px;
  max-height: min(52vh, 460px);
}

.sefaz-floating-panel-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.sefaz-floating-panel-actions .btn-primary-app,
.sefaz-floating-panel-actions .btn-secondary-app {
  min-height: 38px;
}

.sefaz-side-controls {
  display: grid;
  gap: 14px;
  align-content: start;
}

.sefaz-side-controls .btn-primary-app {
  justify-content: center;
  min-height: 44px;
}

.sefaz-submit-hint {
  margin-top: -6px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 760;
  line-height: 1.35;
}

.sefaz-check {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-height: 72px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  cursor: pointer;
}

.sefaz-check input {
  width: 17px;
  height: 17px;
  min-height: 17px;
  margin: 2px 0 0;
  accent-color: var(--accent);
}

.sefaz-check span,
.sefaz-check strong,
.sefaz-check small {
  display: block;
  min-width: 0;
}

.sefaz-check strong {
  color: var(--text);
  font-size: 0.91rem;
  font-weight: 850;
}

.sefaz-check small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.35;
}

.sefaz-copy-box {
  min-height: 124px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #f8fafc;
}

.sefaz-result-table td > span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 760;
}

.sefaz-key {
  display: inline-block;
  max-width: 340px;
  overflow: hidden;
  color: var(--accent-strong);
  font-size: 0.78rem;
  font-weight: 800;
  text-overflow: ellipsis;
  vertical-align: middle;
  white-space: nowrap;
}

.badge-app.is-success {
  color: #0f6a3d;
  background: #e1f5ea;
}

.badge-app.is-info {
  color: #075985;
  background: #e0f2fe;
}

.badge-app.is-warning {
  color: #8a4b0f;
  background: #faecd8;
}

.badge-app.is-neutral {
  color: #475569;
  background: #edf2f7;
}

.badge-app.is-error {
  color: #991b1b;
  background: #fee2e2;
}

.icms-rule-form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}

.icms-incidence-form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.icms-aliquota-form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  margin: 8px 0 18px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}

.icms-inline-form-heading {
  display: grid;
  gap: 3px;
  margin: 14px 0 0;
  padding: 0 2px;
}

.icms-inline-form-heading strong,
.icms-inline-form-heading span {
  display: block;
}

.icms-inline-form-heading strong {
  color: #172033;
  font-size: 0.96rem;
}

.icms-inline-form-heading span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 760;
}

.icms-rule-form .field {
  grid-column: span 2;
}

.icms-incidence-form .field {
  grid-column: span 2;
}

.icms-aliquota-form .field {
  grid-column: span 2;
}

.icms-rule-form .icms-rule-description,
.icms-rule-form .icms-rule-source {
  grid-column: span 4;
}

.icms-rule-form .icms-cest-suggestion {
  display: grid;
  grid-column: span 8;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
}

.icms-cest-suggestion strong {
  color: #1e3a8a;
  font-size: 0.82rem;
}

.icms-cest-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
}

.icms-cest-option {
  display: grid;
  gap: 3px;
  min-height: 76px;
  padding: 9px 10px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  color: #172033;
  background: #ffffff;
  text-align: left;
  cursor: pointer;
}

.icms-cest-option:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.icms-cest-option span,
.icms-cest-option small {
  overflow: hidden;
  text-overflow: ellipsis;
}

.icms-cest-option span {
  font-size: 0.78rem;
  font-weight: 850;
  white-space: nowrap;
}

.icms-cest-option small {
  display: -webkit-box;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.icms-cest-option .icms-cest-code {
  color: var(--accent-strong);
  font-size: 0.86rem;
}

.icms-aliquota-form .icms-aliquota-source {
  grid-column: span 4;
}

.icms-aliquota-form .icms-aliquota-ncms,
.icms-aliquota-form .icms-aliquota-notes {
  grid-column: span 6;
}

.icms-incidence-form .icms-incidence-source,
.icms-incidence-form .icms-incidence-notes {
  grid-column: span 3;
}

.icms-rule-form .icms-rule-notes {
  grid-column: span 8;
}

.icms-rule-form .form-actions {
  grid-column: span 4;
  align-self: end;
  justify-content: flex-start;
}

.icms-incidence-form .form-actions {
  grid-column: span 2;
  align-self: end;
  justify-content: flex-start;
}

.icms-aliquota-form .form-actions {
  grid-column: span 12;
  justify-content: flex-start;
}

.icms-section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.icms-ncm-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.icms-ncm-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.74rem;
  font-weight: 850;
}

.table-action-cell {
  text-align: right;
  white-space: nowrap;
}

.table-action-row {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.mini-table .compact-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  min-width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #ffffff;
  cursor: pointer;
}

.mini-table .compact-action:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.mini-table .compact-action.danger {
  color: #991b1b;
  border-color: #fecaca;
}

.mini-table .compact-action.danger:hover {
  background: #fee2e2;
}

.mini-table .compact-action:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.compact-button {
  min-height: 34px;
  padding: 0 10px;
  font-size: 0.8rem;
}

.inline-edit-row > td {
  background: #f8fafc;
}

.icms-linked-ncm-form {
  display: grid;
  grid-template-columns: minmax(240px, 0.7fr) minmax(320px, 1fr) auto;
  gap: 12px;
  align-items: end;
}

.icms-linked-ncm-form strong,
.icms-linked-ncm-form span {
  display: block;
}

.icms-linked-ncm-form span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
}

.icms-linked-ncm-form textarea {
  min-height: 94px;
}

.icms-check {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  grid-column: span 2;
  gap: 9px;
  align-items: start;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
  cursor: pointer;
}

.icms-check input {
  width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 2px 0 0;
  accent-color: var(--accent);
}

.icms-check strong,
.icms-check small {
  display: block;
}

.icms-check strong {
  font-size: 0.86rem;
  font-weight: 850;
}

.icms-check small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 760;
  line-height: 1.25;
}

.icms-rule-search {
  display: flex;
  gap: 10px;
  align-items: end;
  min-width: min(100%, 440px);
}

.icms-rule-search input {
  min-width: 0;
}

.icms-items-table td > span,
.mini-table tr.is-muted td > span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 760;
}

.mini-table tr.is-muted {
  opacity: 0.62;
}

.icms-document-list {
  display: grid;
  gap: 12px;
}

.icms-document-details {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.icms-document-details summary {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
}

.icms-document-details summary::-webkit-details-marker {
  display: none;
}

.icms-document-details summary span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.icms-document-details summary strong {
  color: var(--text);
  font-weight: 900;
}

.icms-document-details summary small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  overflow-wrap: anywhere;
}

.icms-document-details[open] summary {
  border-bottom: 1px solid var(--line);
  background: #f8fafc;
}

.icms-purpose-form {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 34px;
  gap: 7px;
  align-items: center;
  min-width: 230px;
}

.icms-purpose-form select {
  min-height: 36px;
  padding: 6px 8px;
  font-size: 0.82rem;
}

.date-range-control {
  position: relative;
  display: block;
  min-width: 0;
  z-index: 5;
}

.date-range-trigger {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  height: 40px;
  min-height: 40px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.date-range-trigger svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  color: var(--accent);
  stroke-width: 2.3;
}

.date-range-trigger span {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.date-range-trigger:hover,
.date-range-trigger:focus-visible,
.date-range-trigger[aria-expanded="true"] {
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.09);
  outline: none;
}

.date-range-popover {
  position: absolute;
  z-index: 130;
  top: calc(100% + 10px);
  left: 0;
  right: auto;
  width: min(660px, calc(100vw - 42px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 22px 56px rgba(31, 41, 51, 0.18);
}

.date-range-popover[hidden] {
  display: none;
}

.date-range-popover.is-above {
  top: auto;
  bottom: calc(100% + 10px);
}

.date-range-popover::before {
  position: absolute;
  top: -7px;
  left: 34px;
  width: 12px;
  height: 12px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: var(--surface);
  content: "";
  transform: rotate(45deg);
}

.date-range-popover.is-above::before {
  top: auto;
  bottom: -7px;
  border-top: 0;
  border-left: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.date-range-body {
  display: grid;
  gap: 12px;
}

.date-range-main {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.date-range-inputs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.date-range-inputs label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.date-range-inputs input {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.date-range-inputs input:focus {
  border-color: var(--accent);
  outline: 3px solid rgba(28, 34, 38, 0.14);
}

.date-range-calendars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.date-range-month {
  min-width: 0;
}

.date-range-month-head {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.date-range-month-title {
  color: var(--text);
  font-family: var(--font-heading);
  font-size: 0.94rem;
  font-weight: 900;
  text-align: center;
}

.date-range-nav,
.date-range-day,
.date-range-preset,
.date-range-action {
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.date-range-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  color: var(--muted);
}

.date-range-nav svg {
  width: 16px;
  height: 16px;
}

.date-range-nav:hover,
.date-range-nav:focus-visible,
.date-range-action:hover,
.date-range-action:focus-visible {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.2);
  outline: none;
}

.date-range-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}

.date-range-weekday {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

.date-range-day {
  min-height: 34px;
  padding: 0;
  border-color: var(--line);
  background: #fff;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}

.date-range-day:hover,
.date-range-day:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(223, 241, 236, 0.58);
  outline: none;
}

.date-range-day.is-muted {
  color: #9aa6b2;
  background: #f8fafc;
}

.date-range-day.is-today {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.3);
  background: rgba(223, 241, 236, 0.64);
}

.date-range-day.is-in-range {
  color: var(--accent-strong);
  border-color: rgba(18, 132, 83, 0.18);
  background: rgba(196, 246, 216, 0.62);
}

.date-range-day.is-selected {
  color: #fff;
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 8px 18px rgba(28, 34, 38, 0.24);
}

.date-range-presets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-content: start;
  gap: 8px;
}

.date-range-preset {
  min-height: 38px;
  padding: 8px 10px;
  border-color: rgba(28, 34, 38, 0.14);
  color: var(--text);
  background: #fff;
  font-size: 0.82rem;
  font-weight: 820;
  text-align: center;
}

.date-range-preset:hover,
.date-range-preset:focus-visible,
.date-range-preset.is-active {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.34);
  outline: none;
}

.date-range-preset.is-active {
  box-shadow: inset 0 0 0 1px rgba(28, 34, 38, 0.15);
}

.date-range-month-list {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.date-range-month-list[hidden] {
  display: none;
}

.date-range-month-option {
  min-height: 30px;
  padding: 0 7px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 800;
  cursor: pointer;
}

.date-range-month-option:hover,
.date-range-month-option:focus-visible,
.date-range-month-option.is-active {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.3);
  background: var(--surface-muted);
  outline: none;
}

.date-range-month-option.is-active {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.34);
  background: var(--accent-soft);
}

.date-range-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.date-range-action {
  min-height: 36px;
  padding: 0 14px;
  font-size: 0.82rem;
}

.date-range-action.primary {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

.date-range-action.primary:hover,
.date-range-action.primary:focus-visible {
  color: #fff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.date-range-control[data-date-range-layout="calendar"][data-date-range-open="true"] {
  z-index: 160;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-popover-calendar {
  position: fixed;
  z-index: 180;
  top: auto;
  right: auto;
  bottom: auto;
  width: min(860px, calc(100vw - 24px));
  max-height: calc(100vh - 96px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 12px;
  border-radius: 10px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-popover-calendar::before {
  display: none;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-body {
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-main {
  gap: 10px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-presets {
  position: relative;
  grid-template-columns: 1fr;
  gap: 6px;
  padding-right: 10px;
  border-right: 1px solid var(--line);
}

.date-range-control[data-date-range-layout="calendar"] .date-range-preset {
  min-height: 32px;
  padding: 5px 8px;
  font-size: 0.75rem;
  line-height: 1.14;
  text-align: left;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-calendars {
  gap: 12px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-month + .date-range-month {
  padding-left: 12px;
  border-left: 1px solid var(--line);
}

.date-range-control[data-date-range-layout="calendar"] .date-range-month-head {
  margin-bottom: 6px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-month-title {
  min-height: 22px;
  white-space: nowrap;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-grid {
  gap: 4px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-week-row {
  display: contents;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-day {
  min-height: 31px;
  font-size: 0.78rem;
}

.date-range-guidance {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid rgba(64, 116, 230, 0.24);
  border-radius: 7px;
  color: #2458b8;
  background: rgba(235, 242, 255, 0.82);
  font-size: 0.76rem;
  font-weight: 800;
}

.date-range-guidance.is-complete {
  border-color: rgba(18, 132, 83, 0.2);
  color: var(--accent-strong);
  background: rgba(223, 241, 236, 0.72);
}

.date-range-guidance svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.date-range-input-control {
  position: relative;
  display: block;
}

.date-range-input-control input {
  padding-right: 36px;
}

.date-range-input-control svg {
  position: absolute;
  top: 50%;
  right: 11px;
  width: 16px;
  height: 16px;
  color: var(--muted);
  pointer-events: none;
  transform: translateY(-50%);
}

.date-range-control[data-date-range-layout="calendar"] .date-range-month-list {
  position: absolute;
  z-index: 6;
  top: 0;
  left: calc(100% + 12px);
  width: 286px;
  max-height: 310px;
  overflow-y: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(31, 41, 51, 0.18);
}

.date-range-control[data-date-range-layout="calendar"] .date-range-footer {
  margin-top: 0;
  padding-top: 10px;
}

.date-range-control[data-date-range-layout="calendar"] .date-range-action.primary:disabled {
  color: #9aa4ae;
  border-color: #d8dde2;
  background: #eef1f3;
  box-shadow: none;
  cursor: not-allowed;
}

@media (max-width: 720px) {
  .date-range-control[data-date-range-layout="calendar"] .date-range-popover-calendar {
    width: calc(100vw - 24px);
    padding: 10px;
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-body {
    grid-template-columns: 1fr;
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-presets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-right: 0;
    padding-bottom: 10px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-preset {
    text-align: center;
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-month[data-date-range-month="1"] {
    display: none;
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-calendars,
  .date-range-control[data-date-range-layout="calendar"] .date-range-inputs {
    grid-template-columns: 1fr;
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-month + .date-range-month {
    padding-left: 0;
    border-left: 0;
  }

  .date-range-control[data-date-range-layout="calendar"] .date-range-month-list {
    top: calc(100% + 6px);
    left: 0;
    width: 100%;
  }
}

.receivable-client-filter > span:first-child {
  color: var(--muted);
  font-size: 0.78rem;
}

.client-picker {
  position: relative;
  min-width: 0;
}

.client-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.client-picker-trigger svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  color: var(--muted);
}

.client-picker-trigger:focus-visible {
  border-color: var(--accent);
  outline: 3px solid rgba(28, 34, 38, 0.14);
}

.client-picker-panel {
  position: absolute;
  z-index: 45;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: grid;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(31, 41, 51, 0.16);
}

.client-picker-panel[hidden] {
  display: none;
}

.client-picker-search {
  gap: 5px;
}

.client-picker-search input {
  min-height: 38px;
}

.client-picker-all,
.client-picker-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 40px;
  border-radius: 8px;
  cursor: pointer;
}

.client-picker-all {
  padding: 8px 10px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.84rem;
  font-weight: 800;
}

.client-picker-options {
  display: grid;
  gap: 4px;
  max-height: 270px;
  overflow-y: auto;
  padding-right: 2px;
}

.client-picker-option {
  padding: 9px 10px;
}

.client-picker-option:hover,
.client-picker-option:focus-within {
  background: var(--surface-muted);
}

.client-picker-option[hidden] {
  display: none;
}

.client-picker-empty {
  margin: 0;
  padding: 10px;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 700;
}

.client-picker-all input,
.client-picker-option input {
  accent-color: var(--accent);
}

.client-picker-option span,
.client-picker-option strong,
.client-picker-option small {
  min-width: 0;
}

.client-picker-option strong,
.client-picker-option small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.client-picker-option strong {
  color: var(--text);
  font-size: 0.9rem;
}

.client-picker-option small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.filter-actions,
.form-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.field > span:first-child,
.field-label,
.form-section-title span,
.switch-field {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
}

.field select {
  height: 44px;
}

.field textarea {
  resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--accent);
  outline: 3px solid rgba(28, 34, 38, 0.14);
}

.month-year-control {
  position: relative;
  display: block;
  min-width: 0;
  z-index: 1;
}

.field .month-year-control input[data-month-year] {
  padding-right: 46px;
  font-variant-numeric: tabular-nums;
}

.month-year-trigger {
  position: absolute;
  right: 6px;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease;
  transform: translateY(-50%);
}

.month-year-trigger svg {
  width: 17px;
  height: 17px;
  stroke-width: 2.2;
}

.month-year-trigger:hover,
.month-year-trigger:focus-visible {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.2);
}

.month-year-trigger:focus-visible {
  outline: 3px solid rgba(28, 34, 38, 0.14);
  outline-offset: 2px;
}

.month-year-popover {
  position: absolute;
  z-index: 90;
  top: calc(100% + 8px);
  right: 0;
  width: min(292px, calc(100vw - 44px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 18px 42px rgba(31, 41, 51, 0.16);
}

.month-year-popover[hidden] {
  display: none;
}

.month-year-popover.is-above {
  top: auto;
  bottom: calc(100% + 8px);
}

.month-year-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  gap: 8px;
  align-items: center;
  min-height: 38px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
}

.month-year-title {
  color: var(--text);
  font-family: var(--font-heading);
  font-size: 0.98rem;
  font-weight: 800;
  text-align: center;
  line-height: 1;
}

.month-year-nav,
.month-year-option,
.month-year-link {
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.month-year-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  color: var(--muted);
}

.month-year-nav svg {
  width: 17px;
  height: 17px;
  stroke-width: 2.2;
}

.month-year-nav:hover,
.month-year-nav:focus-visible,
.month-year-link:hover,
.month-year-link:focus-visible {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.2);
}

.month-year-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.month-year-option {
  min-height: 38px;
  padding: 0 8px;
  border-color: var(--line);
  background: #fff;
  font-size: 0.86rem;
}

.month-year-option:hover,
.month-year-option:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(223, 241, 236, 0.58);
}

.month-year-option.is-current {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.24);
  background: rgba(223, 241, 236, 0.64);
}

.month-year-option.is-selected {
  color: #fff;
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 8px 18px rgba(28, 34, 38, 0.24);
}

.month-year-footer {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.month-year-link {
  min-height: 32px;
  padding: 0 10px;
  color: var(--muted);
  font-size: 0.78rem;
}

.month-year-link.primary {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.18);
}

.field.is-disabled > span:first-child {
  color: var(--sidebar-disabled);
}

.field.is-disabled input,
.field.is-disabled select,
.field.is-disabled textarea {
  color: var(--sidebar-disabled);
  background: var(--surface-muted);
  cursor: not-allowed;
}

.field.is-disabled .month-year-trigger {
  color: var(--sidebar-disabled);
  background: transparent;
  cursor: not-allowed;
}

.field.is-disabled .month-year-popover {
  display: none;
}

.date-picker-control {
  position: relative;
  display: block;
  min-width: 0;
  z-index: 2;
}

.field .date-picker-control input[data-date-picker-display] {
  padding-right: 46px;
  font-variant-numeric: tabular-nums;
}

.date-picker-trigger {
  position: absolute;
  right: 6px;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease;
  transform: translateY(-50%);
}

.date-picker-trigger svg {
  width: 17px;
  height: 17px;
  stroke-width: 2.2;
}

.date-picker-trigger:hover,
.date-picker-trigger:focus-visible {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.2);
}

.date-picker-trigger:focus-visible {
  outline: 3px solid rgba(28, 34, 38, 0.14);
  outline-offset: 2px;
}

.date-picker-trigger:disabled,
.date-picker-nav:disabled,
.date-picker-day:disabled,
.date-picker-link:disabled {
  cursor: not-allowed;
  opacity: 0.46;
}

.date-picker-trigger:disabled:hover,
.date-picker-nav:disabled:hover,
.date-picker-link:disabled:hover {
  color: var(--muted);
  border-color: transparent;
  background: transparent;
}

.date-picker-popover {
  position: absolute;
  z-index: 100;
  top: calc(100% + 8px);
  right: 0;
  width: min(316px, calc(100vw - 44px));
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 18px 42px rgba(31, 41, 51, 0.16);
}

.date-picker-popover[hidden] {
  display: none;
}

.date-picker-popover.is-above {
  top: auto;
  bottom: calc(100% + 8px);
}

.date-picker-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  gap: 8px;
  align-items: center;
  min-height: 38px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
}

.date-picker-title {
  color: var(--text);
  font-family: var(--font-heading);
  font-size: 0.98rem;
  font-weight: 800;
  text-align: center;
  line-height: 1;
}

.date-picker-nav,
.date-picker-day,
.date-picker-link {
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.date-picker-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  color: var(--muted);
}

.date-picker-nav svg {
  width: 17px;
  height: 17px;
  stroke-width: 2.2;
}

.date-picker-nav:hover,
.date-picker-nav:focus-visible,
.date-picker-link:hover,
.date-picker-link:focus-visible {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.2);
}

.date-picker-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  margin-top: 12px;
}

.date-picker-weekday {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

.date-picker-day {
  min-height: 34px;
  padding: 0;
  border-color: var(--line);
  background: #fff;
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}

.date-picker-day:hover,
.date-picker-day:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(223, 241, 236, 0.58);
}

.date-picker-day.is-muted {
  color: #9aa6b2;
  background: #f8fafc;
}

.date-picker-day:disabled,
.date-picker-day:disabled:hover {
  color: #9aa6b2;
  border-color: var(--line);
  background: #f8fafc;
  box-shadow: none;
}

.date-picker-day.is-today {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.3);
  background: rgba(223, 241, 236, 0.64);
}

.date-picker-day.is-selected {
  color: #fff;
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 8px 18px rgba(28, 34, 38, 0.24);
}

.date-picker-footer {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.date-picker-link {
  min-height: 32px;
  padding: 0 10px;
  color: var(--muted);
  font-size: 0.78rem;
}

.date-picker-link.primary {
  color: var(--accent-strong);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.18);
}

.date-picker-link.primary:disabled,
.date-picker-link.primary:disabled:hover {
  color: var(--muted);
  border-color: var(--line);
  background: var(--surface-muted);
}

.field.is-disabled .date-picker-trigger {
  color: var(--sidebar-disabled);
  background: transparent;
  cursor: not-allowed;
}

.field.is-disabled .date-picker-popover {
  display: none;
}

.field input[data-currency="brl"] {
  font-variant-numeric: tabular-nums;
}

.email-suggestion-box {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  width: 100%;
  margin-top: 6px;
}

.email-suggestion-box[hidden] {
  display: none;
}

.email-suggestion-option {
  min-height: 30px;
  max-width: 100%;
  padding: 5px 9px;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 7px;
  color: var(--accent-strong);
  background: rgba(223, 244, 240, 0.72);
  font-size: 0.82rem;
  font-weight: 800;
  text-align: left;
  overflow-wrap: anywhere;
  cursor: pointer;
}

.email-suggestion-option:hover,
.email-suggestion-option:focus-visible {
  border-color: rgba(28, 34, 38, 0.42);
  background: rgba(223, 244, 240, 0.96);
  outline: none;
}

.municipio-suggestion-box {
  display: grid;
  gap: 6px;
  width: 100%;
  margin-top: 6px;
  max-height: 240px;
  overflow: auto;
}

.municipio-suggestion-box[hidden] {
  display: none;
}

.municipio-suggestion-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 7px;
  background: #ffffff;
  color: var(--text);
  font-size: 0.85rem;
  text-align: left;
  cursor: pointer;
}

.municipio-suggestion-option:hover,
.municipio-suggestion-option:focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
  outline: none;
}

.municipio-suggestion-option strong,
.municipio-suggestion-option small {
  min-width: 0;
}

.municipio-suggestion-option small {
  color: var(--muted);
  font-weight: 800;
}

.search-combobox {
  position: relative;
  min-width: 0;
}

.search-combobox input {
  padding-right: 38px;
}

.search-combobox:has(.combobox-clear) input {
  padding-right: 70px;
}

.search-combobox::after {
  content: "";
  position: absolute;
  top: 16px;
  right: 14px;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  pointer-events: none;
  transform: rotate(45deg);
}

.combobox-clear {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 32px;
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  transform: translateY(-50%);
}

.combobox-clear:hover,
.combobox-clear:focus-visible {
  color: var(--text);
  background: #eef2ff;
  outline: none;
}

.combobox-clear[hidden] {
  display: none;
}

.combobox-clear svg {
  width: 15px;
  height: 15px;
  stroke-width: 2.4;
}

.combobox-popup {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  display: grid;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(31, 41, 51, 0.16);
}

.search-combobox:not([data-open="true"]) .combobox-popup {
  display: none;
}

.combobox-options {
  display: grid;
  max-height: 282px;
  overflow-y: auto;
  padding: 6px;
}

.combobox-option {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 38px;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.combobox-option.option-name-first {
  grid-template-columns: minmax(0, 1fr) auto;
}

.combobox-option.option-with-origin {
  grid-template-columns: minmax(0, 1fr) minmax(76px, auto);
}

.combobox-option:hover,
.combobox-option.active {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.combobox-option strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.combobox-option span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.combobox-option-meta {
  display: grid;
  justify-items: end;
  gap: 2px;
  min-width: 76px;
}

.combobox-option-meta small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.combobox-option-meta span {
  font-size: 0.74rem;
  line-height: 1.05;
}

.combobox-create-option {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin: 3px 6px 6px;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px dashed rgba(28, 34, 38, 0.38);
  border-radius: 7px;
  color: var(--accent-strong);
  background: #f6fbf9;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.combobox-create-option[hidden] {
  display: none;
}

.combobox-create-option:hover,
.combobox-create-option:focus-visible {
  border-color: rgba(28, 34, 38, 0.62);
  background: var(--accent-soft);
  outline: none;
}

.combobox-create-option svg {
  width: 18px;
  height: 18px;
}

.combobox-create-option strong,
.combobox-create-option small {
  display: block;
  min-width: 0;
}

.combobox-create-option small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.combobox-create-panel {
  display: grid;
  gap: 8px;
  margin: 3px 6px 6px;
  padding-top: 8px;
  border-top: 1px solid rgba(28, 34, 38, 0.12);
}

.combobox-create-panel[hidden] {
  display: none;
}

.combobox-create-panel .combobox-create-option {
  margin: 0;
}

.combobox-create-parent {
  display: grid;
  gap: 5px;
}

.combobox-create-parent > span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.combobox-create-parent select {
  width: 100%;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 700;
}

.combobox-empty {
  padding: 10px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.combobox-add-bank {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-top: 1px solid var(--line);
  background: #f8fafc;
}

.combobox-add-bank-title {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.combobox-add-bank-grid {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 10px;
}

.combobox-add-bank .field {
  gap: 5px;
}

.combobox-add-bank .field > span:first-child {
  font-size: 0.76rem;
}

.combobox-add-bank input {
  min-height: 36px;
  padding: 7px 9px;
}

.combobox-add-bank-button {
  justify-content: center;
  width: 100%;
  min-height: 38px;
}

.lookup-status {
  min-height: 18px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.lookup-status:empty {
  min-height: 0;
}

.lookup-status[data-state="loading"] {
  color: var(--blue);
}

.lookup-status[data-state="success"] {
  color: var(--accent-strong);
}

.lookup-status[data-state="error"] {
  color: var(--danger);
}

.field-validation-error,
.validation-summary-errors {
  color: var(--danger);
  font-size: 0.82rem;
  font-weight: 700;
}

.validation-summary {
  margin-bottom: 16px;
}

.validation-summary ul {
  margin: 0;
  padding-left: 18px;
}

.auth-body {
  min-height: 100vh;
  background:
    linear-gradient(135deg, rgba(28, 34, 38, 0.08), rgba(14, 124, 123, 0.08)),
    var(--bg);
}

.auth-shell {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 28px;
}

.auth-panel {
  display: grid;
  gap: 26px;
  width: min(440px, 100%);
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

/* .auth-brand e item de um GRID (.auth-panel). Itens de grid tem o display
   blockificado — `inline-flex` vira `flex` — e esticam na coluna, entao a regua
   do descritor sairia bem mais larga que o logotipo. Quem encolhe no eixo
   horizontal de um grid e `justify-self` (nao `align-self`, que e o vertical). */
.auth-brand {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  justify-self: start;
  /* mesma largura do lockup: assim a regua do descritor acompanha o logotipo.
     `fit-content` aqui nao serve — com min-width:100% no filho vira referencia
     circular e o navegador resolve pelo max-content do texto. */
  width: min(238px, 100%);
}

.auth-lockup {
  display: block;
  width: min(238px, 100%);
  max-width: 100%;
  height: auto;
}

/* Mesma assinatura do header do sistema: lockup + descritor sob uma regua.
   Aqui o lockup e maior, entao o descritor acompanha a escala.
   Seletor com .auth-brand na frente porque `.auth-brand span` (abaixo)
   tem especificidade maior e sobrescreveria cor e tamanho. */
.auth-brand .auth-descritor {
  display: block;
  margin-top: 9px;
  padding-top: 7px;
  border-top: 1px solid color-mix(in srgb, var(--brand-orange) 34%, transparent);
  color: var(--brand-orange);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.17em;
  line-height: 1.35;
  text-transform: uppercase;
}

.auth-brand strong,
.auth-brand span {
  display: block;
}

.auth-brand strong {
  font-size: 1.05rem;
  font-weight: 850;
}

.auth-brand span {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 750;
}

.auth-heading {
  display: grid;
  gap: 8px;
}

.auth-heading h1 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 850;
}

.auth-heading span {
  color: var(--muted);
  line-height: 1.45;
}

.auth-form {
  display: grid;
  gap: 16px;
}

.auth-company-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(28, 34, 38, 0.055), rgba(28, 34, 38, 0.015));
}

.auth-company-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  color: #fff;
  background: var(--accent-strong);
}

.auth-company-icon svg {
  width: 20px;
  height: 20px;
}

.auth-company-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.auth-company-copy small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-company-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.auth-company-copy strong {
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 0.94rem;
  font-weight: 900;
  line-height: 1.18;
}

.auth-company-copy span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.auth-company-card > a {
  color: var(--accent-strong);
  font-size: 0.8rem;
  font-weight: 850;
  text-decoration: none;
}

.auth-company-card > a:hover,
.auth-company-card > a:focus-visible {
  text-decoration: underline;
}

.auth-check {
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: rgba(28, 34, 38, 0.025);
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 780;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.auth-check:hover {
  border-color: rgba(28, 34, 38, 0.28);
  background: rgba(28, 34, 38, 0.045);
  color: var(--text);
}

.auth-check:has(input:checked) {
  border-color: rgba(28, 34, 38, 0.3);
  background: rgba(28, 34, 38, 0.065);
  color: var(--text);
}

.auth-check input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.auth-check-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1.5px solid rgba(71, 85, 105, 0.5);
  border-radius: 6px;
  color: #fff;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.auth-check-control svg {
  width: 14px;
  height: 14px;
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 140ms ease, transform 140ms ease;
}

.auth-check input:checked + .auth-check-control {
  border-color: var(--accent-strong);
  background: var(--accent-strong);
  box-shadow: 0 3px 10px rgba(28, 34, 38, 0.22);
}

.auth-check input:checked + .auth-check-control svg {
  opacity: 1;
  transform: scale(1);
}

.auth-check input:focus-visible + .auth-check-control {
  outline: 3px solid rgba(28, 34, 38, 0.18);
  outline-offset: 2px;
}

.auth-forgot-link,
.auth-links a {
  color: var(--accent-strong);
  font-size: 0.88rem;
  font-weight: 850;
  text-decoration: none;
}

.auth-forgot-link:hover,
.auth-forgot-link:focus-visible,
.auth-links a:hover,
.auth-links a:focus-visible {
  text-decoration: underline;
}

.auth-forgot-link {
  justify-self: center;
  margin-top: -2px;
  text-align: center;
}

.auth-links {
  display: flex;
  justify-content: center;
}

.auth-submit {
  width: 100%;
  min-height: 44px;
}

@keyframes auth-password-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(5px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(3px); }
}

.auth-password-field.is-invalid .password-control {
  animation: auth-password-shake 380ms ease-in-out;
}

.auth-password-field.is-invalid .password-control input {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px rgba(180, 67, 67, 0.1);
}

@media (prefers-reduced-motion: reduce) {
  .auth-password-field.is-invalid .password-control {
    animation: none;
  }
}

@media (max-width: 520px) {
  .auth-shell {
    align-items: start;
    padding: 16px;
  }

  .auth-panel {
    gap: 22px;
    margin-top: 16px;
    padding: 22px 18px;
  }

  .auth-company-card {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 12px;
  }

  .auth-company-icon {
    width: 38px;
    height: 38px;
  }
}

.password-control {
  position: relative;
  display: block;
}

.field .password-control input {
  width: 100%;
  padding-right: 44px;
}

.password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}

.password-toggle:hover,
.password-toggle:focus-visible {
  color: var(--text);
  background: #edf4f3;
  outline: none;
}

.password-toggle svg {
  width: 18px;
  height: 18px;
}

.field-validation,
.field-validation-error {
  min-height: 18px;
}

.field input.is-invalid {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px rgba(180, 67, 67, 0.1);
}

.tenant-selector {
  display: grid;
  gap: 22px;
}

.tenant-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

.tenant-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.tenant-card strong,
.tenant-card span,
.tenant-card small {
  display: block;
}

.tenant-card strong {
  overflow-wrap: anywhere;
  font-size: 1rem;
  font-weight: 850;
}

.tenant-card span {
  margin-top: 5px;
  color: var(--muted);
  font-weight: 750;
}

.tenant-card small {
  margin-top: 8px;
  color: var(--accent-strong);
  font-weight: 850;
}

.tenant-card form {
  margin: 0;
  flex: 0 0 auto;
}

.entity-form {
  display: grid;
  gap: 26px;
  margin-top: 18px;
}

.section-header.entity-edit-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  column-gap: 20px;
  row-gap: 12px;
}

.entity-edit-header-copy {
  min-width: 0;
}

.entity-edit-header-actions {
  align-items: center;
  align-self: start;
  flex-wrap: nowrap;
  gap: 8px;
  min-width: max-content;
}

.entity-edit-header-actions > * {
  flex: 0 0 auto;
}

.entity-form.entity-edit-form {
  margin-top: 12px;
}

.entity-edit-form > .validation-summary.validation-summary-valid,
.entity-edit-form > .validation-summary:empty {
  display: none;
}

@media (min-width: 981px) and (max-width: 1100px) {
  .section-header.entity-edit-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .entity-edit-header-actions {
    justify-self: end;
  }
}

@media (max-width: 980px) {
  .section-header.entity-edit-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .entity-edit-header-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
    width: 100%;
  }

  .entity-edit-header-actions > * {
    justify-content: center;
    width: 100%;
  }

  .entity-edit-header-actions > .entity-edit-document-save {
    grid-column: 1 / -1;
  }
}

@media (max-width: 360px) {
  .entity-edit-header-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

.entity-tabs {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.tab-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.tab-list {
  position: sticky;
  top: 0;
  z-index: 25;
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-top: 8px;
  padding-bottom: 2px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  box-shadow: 0 10px 24px rgba(31, 41, 51, 0.06);
}

.tab-list label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  color: var(--muted);
  cursor: pointer;
  font-size: 0.86rem;
  font-weight: 800;
  white-space: nowrap;
}

.tab-list label:hover {
  color: var(--text);
  background: var(--surface-muted);
}

#entity-tab-dados:focus-visible ~ .tab-list label[for="entity-tab-dados"],
#entity-tab-filiais:focus-visible ~ .tab-list label[for="entity-tab-filiais"],
#entity-tab-socios:focus-visible ~ .tab-list label[for="entity-tab-socios"],
#entity-tab-cnaes:focus-visible ~ .tab-list label[for="entity-tab-cnaes"],
#entity-tab-documentos:focus-visible ~ .tab-list label[for="entity-tab-documentos"],
#entity-tab-contatos:focus-visible ~ .tab-list label[for="entity-tab-contatos"],
#entity-tab-certificado:focus-visible ~ .tab-list label[for="entity-tab-certificado"],
#entity-tab-fiscal:focus-visible ~ .tab-list label[for="entity-tab-fiscal"],
#entity-tab-integracoes:focus-visible ~ .tab-list label[for="entity-tab-integracoes"] {
  outline: 3px solid color-mix(in srgb, var(--accent) 35%, transparent);
  outline-offset: 2px;
}

.tab-panels {
  min-width: 0;
}

fieldset.tab-panels.entity-form-readonly-panels {
  min-width: 0;
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.entity-form-readonly-panels[disabled] {
  opacity: 1;
}

.entity-form-readonly-panels[disabled] :is(input, select, textarea):disabled {
  color: var(--text);
  background: var(--surface-muted);
  cursor: default;
  opacity: 1;
  -webkit-text-fill-color: var(--text);
}

.entity-form-readonly-panels[disabled] :is(input[type="checkbox"], input[type="radio"]):disabled {
  accent-color: var(--accent);
  opacity: 1;
}

.entity-view-form > .validation-summary,
.entity-view-form > .validation-summary:empty {
  display: none;
}

.entity-view-summary-grid {
  margin-top: 28px;
}

.tab-panel {
  display: none;
  gap: 22px;
}

#entity-tab-dados:checked ~ .tab-list label[for="entity-tab-dados"],
#entity-tab-filiais:checked ~ .tab-list label[for="entity-tab-filiais"],
#entity-tab-socios:checked ~ .tab-list label[for="entity-tab-socios"],
#entity-tab-cnaes:checked ~ .tab-list label[for="entity-tab-cnaes"],
#entity-tab-documentos:checked ~ .tab-list label[for="entity-tab-documentos"],
#entity-tab-contatos:checked ~ .tab-list label[for="entity-tab-contatos"],
#entity-tab-certificado:checked ~ .tab-list label[for="entity-tab-certificado"],
#entity-tab-fiscal:checked ~ .tab-list label[for="entity-tab-fiscal"],
#entity-tab-integracoes:checked ~ .tab-list label[for="entity-tab-integracoes"] {
  color: var(--accent-strong);
  background: #fff;
  border-color: var(--line);
}

#entity-tab-dados:checked ~ .tab-panels .panel-dados,
#entity-tab-filiais:checked ~ .tab-panels .panel-filiais,
#entity-tab-socios:checked ~ .tab-panels .panel-socios,
#entity-tab-cnaes:checked ~ .tab-panels .panel-cnaes,
#entity-tab-documentos:checked ~ .tab-panels .panel-documentos,
#entity-tab-contatos:checked ~ .tab-panels .panel-contatos,
#entity-tab-certificado:checked ~ .tab-panels .panel-certificado,
#entity-tab-fiscal:checked ~ .tab-panels .panel-fiscal,
#entity-tab-integracoes:checked ~ .tab-panels .panel-integracoes {
  display: grid;
}

.panel-cnaes,
.panel-integracoes,
.entity-agent-integration {
  min-width: 0;
}

.entity-cnae-section {
  gap: 20px;
}

.entity-cnae-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, 0.8fr);
  gap: 16px;
  align-items: stretch;
}

.entity-cnae-primary-card,
.entity-cnae-metadata {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-muted);
}

.entity-cnae-primary-card {
  display: grid;
  gap: 9px;
  padding: 18px;
}

.entity-cnae-card-label {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.entity-cnae-card-heading {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.entity-cnae-card-heading > strong,
.entity-cnae-primary-card > strong {
  color: var(--text);
  font-size: 1.08rem;
}

.entity-cnae-primary-card p,
.entity-cnae-subsection-heading p {
  margin: 0;
  color: var(--muted);
}

.entity-cnae-metadata {
  display: grid;
  padding: 8px 16px;
}

.entity-cnae-metadata > div {
  display: grid;
  gap: 3px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.entity-cnae-metadata > div:last-child {
  border-bottom: 0;
}

.entity-cnae-metadata dt {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.entity-cnae-metadata dd {
  margin: 0;
  color: var(--text);
  font-weight: 700;
}

.entity-cnae-subsection-heading {
  display: flex;
  gap: 16px;
  align-items: end;
  justify-content: space-between;
  margin-top: 4px;
}

.entity-cnae-subsection-heading h4 {
  margin: 0 0 3px;
  color: var(--text);
}

.entity-cnae-subsection-heading > span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
}

.entity-cnae-history-heading {
  margin-top: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.entity-cnae-table th:first-child,
.entity-cnae-table td:first-child {
  width: 130px;
  white-space: nowrap;
}

.entity-cnae-table th:nth-child(3),
.entity-cnae-table td:nth-child(3) {
  width: 210px;
}

.entity-cnae-table th:last-child,
.entity-cnae-table td:last-child {
  width: 160px;
  white-space: nowrap;
}

.entity-cnae-history-table th:nth-child(1),
.entity-cnae-history-table td:nth-child(1) {
  width: 200px;
}

.entity-cnae-history-table th:nth-child(2),
.entity-cnae-history-table td:nth-child(2) {
  width: 180px;
}

.entity-cnae-history-table th:nth-child(3),
.entity-cnae-history-table td:nth-child(3) {
  width: 165px;
  white-space: nowrap;
}

.entity-cnae-history-action {
  display: grid;
  gap: 3px;
}

.entity-cnae-history-action small {
  color: var(--muted);
}

.entity-cnae-history-changes {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
}

.entity-cnae-history-changes li span {
  color: var(--muted);
}

.entity-cnae-history-empty {
  margin: 0;
}

.entity-cnae-history-limit {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

@media (max-width: 760px) {
  .entity-cnae-overview {
    grid-template-columns: minmax(0, 1fr);
  }

  .entity-cnae-subsection-heading {
    align-items: start;
    flex-direction: column;
    gap: 6px;
  }
}

/* NF-e Entrada/Saida: impostos destacados, CFOP e credito do Simples Nacional unificados. */
.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes) {
  min-width: 1160px;
  font-size: 0.68rem;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes).is-awaiting-download {
  min-width: 1180px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] > thead > tr > th {
  text-align: center;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes) > thead > tr > th {
  padding-inline: 7px;
  font-size: 0.68rem;
  white-space: nowrap;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes) > tbody > tr > td {
  padding-inline: 7px;
  font-size: 0.76rem;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes) > thead > tr > th.fiscal-nfe-tax-column,
.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes) > tbody > tr > td.fiscal-nfe-tax-column {
  padding-inline: 4px;
  font-size: 0.68rem;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-party-column {
  width: 200px;
  max-width: 200px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-document-column {
  width: 112px;
}

.fiscal-table-scroll.hide-nfe-taxes .fiscal-nfe-documents-table[data-fiscal-bulk-table].is-awaiting-download .fiscal-document-column {
  width: 130px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-date-column {
  width: 80px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-value-column {
  width: 92px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-classification-column {
  width: 132px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .actions-cell {
  width: 104px;
  padding-inline: 4px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-nfe-tax-column {
  width: 58px;
  padding-inline: 4px;
  color: #344054;
  background: #fbfcfd;
  font-size: 0.68rem;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .tax-icms-column {
  width: 104px;
  color: #17664f;
  background: #f2faf7;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .tax-iva-column {
  color: #245f94;
  background: #f2f7fd;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .tax-ibs-cbs-column {
  width: 86px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .tax-pis-cofins-column {
  width: 86px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .tax-ipi-column {
  width: 56px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .tax-ipi-column > span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table] .fiscal-cfop-column {
  width: 64px;
}

.fiscal-cfop-column {
  text-align: center;
}

.fiscal-cfop-value {
  display: inline-flex;
  max-width: 100%;
  align-items: baseline;
  justify-content: center;
  gap: 3px;
  color: #344054;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.fiscal-cfop-value > strong {
  overflow: hidden;
  text-overflow: ellipsis;
}

.fiscal-cfop-value > small,
.fiscal-cfop-value.is-empty {
  color: var(--muted);
  font-size: 0.62rem;
}

.fiscal-nfe-documents-table .fiscal-cfop-value > small {
  display: inline;
  margin-top: 0;
}

.fiscal-tax-pair {
  display: grid;
  gap: 3px;
  width: 100%;
  min-width: 0;
}

.fiscal-tax-pair-entry {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 2px 4px;
  min-width: 0;
}

.fiscal-tax-pair-entry > small {
  color: var(--muted);
  font-size: 0.54rem;
  font-weight: 850;
  line-height: 1;
}

.fiscal-tax-pair-entry > strong {
  min-width: 0;
  color: inherit;
  font-size: 0.64rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  text-align: right;
  white-space: nowrap;
}

.fiscal-table-scroll.hide-nfe-taxes .fiscal-nfe-documents-table[data-fiscal-bulk-table] {
  min-width: 900px;
}

.fiscal-table-scroll.hide-nfe-taxes [data-tax-group="nfe-impostos"] {
  display: none;
}

.fiscal-icms-cell {
  display: grid;
  justify-items: end;
  gap: 4px;
  width: 100%;
  min-width: 0;
}

.fiscal-icms-entry {
  display: grid;
  justify-items: end;
  gap: 1px;
  width: 100%;
  min-width: 0;
}

.fiscal-icms-entry + .fiscal-icms-entry {
  padding-top: 4px;
  border-top: 1px solid rgba(45, 104, 82, 0.16);
}

.fiscal-icms-entry.is-st {
  color: #1d6072;
}

.fiscal-icms-entry.is-simples {
  padding: 4px 5px;
  border-radius: 7px;
  color: #6b450f;
  background: #fff8e9;
}

.fiscal-icms-entry > strong {
  color: inherit;
  font-size: 0.7rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.fiscal-icms-entry > small {
  color: currentColor;
  font-size: 0.62rem;
  font-weight: 750;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: right;
}

.fiscal-icms-kind {
  font-size: 0.54rem;
  font-weight: 950;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.fiscal-icms-sn {
  margin-right: 2px;
  color: #8a5500;
  font-weight: 950;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.fiscal-credit-empty {
  color: var(--muted);
}

.fiscal-credit-action,
.fiscal-credit-source {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 23px;
  max-width: 100%;
  padding: 3px 7px;
  border: 1px solid #d8c7a6;
  border-radius: 999px;
  color: #72501d;
  background: #fff7e8;
  font-size: 0.62rem;
  font-weight: 860;
  line-height: 1.05;
  text-align: center;
  text-decoration: none;
  white-space: normal;
}

.fiscal-credit-action:hover,
.fiscal-credit-action:focus-visible {
  border-color: #b98a40;
  background: #ffefcf;
  outline: none;
  box-shadow: 0 0 0 3px rgba(185, 138, 64, 0.14);
}

.fiscal-credit-action.is-confirmed,
.fiscal-credit-source.is-confirmed,
.fiscal-credit-source.is-xml {
  border-color: #abd9c9;
  color: #0d6b58;
  background: #edf9f5;
}

.fiscal-credit-action.is-conflict,
.fiscal-credit-source.is-conflict {
  border-color: #efaca4;
  color: #9b2c20;
  background: #fff1ef;
}

.fiscal-credit-document-card {
  display: grid;
  gap: 3px;
  margin-bottom: 16px;
  padding: 14px;
  border: 1px solid #d7e0ea;
  border-radius: 10px;
  background: #f7fafc;
}

.fiscal-credit-document-card > span,
.fiscal-credit-evidence > span {
  color: #627084;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.fiscal-credit-document-card > strong {
  color: #172033;
  font-size: 1rem;
}

.fiscal-credit-document-card > small {
  color: #526173;
  overflow-wrap: anywhere;
}

.fiscal-credit-source-notice[hidden],
.fiscal-credit-evidence[hidden] {
  display: none !important;
}

.fiscal-credit-evidence {
  display: grid;
  gap: 6px;
  margin: 14px 0 18px;
  padding: 13px 14px;
  border-left: 4px solid #d49b43;
  border-radius: 0 9px 9px 0;
  color: #4f3a19;
  background: #fff9ec;
}

.fiscal-credit-evidence p {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.fiscal-credit-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr);
  gap: 12px;
}

.fiscal-credit-percent-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: stretch;
}

.fiscal-credit-percent-input input {
  border-radius: 8px 0 0 8px;
}

.fiscal-credit-percent-input > span {
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-left: 0;
  border-radius: 0 8px 8px 0;
  color: #526173;
  background: #f7fafc;
  font-weight: 850;
}

.fiscal-credit-confirmation {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin-top: 14px;
  padding: 13px;
  border: 1px solid #cbd9e5;
  border-radius: 9px;
  color: #344054;
  background: #f7fafc;
  font-size: 0.78rem;
  line-height: 1.42;
}

.fiscal-credit-confirmation input {
  width: 17px;
  height: 17px;
  margin-top: 1px;
}

.fiscal-credit-footer-hint {
  color: #627084;
  font-size: 0.72rem;
  line-height: 1.35;
}

@media (max-width: 640px) {
  .fiscal-credit-fields {
    grid-template-columns: 1fr;
  }
}

.entity-agent-integration {
  display: grid;
  gap: 18px;
}

.entity-agent-hero,
.entity-agent-code-card,
.entity-agent-table-section {
  gap: 18px;
}

.entity-agent-heading,
.entity-agent-code-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.entity-agent-heading h3,
.entity-agent-code-heading h3 {
  margin: 0 0 4px;
}

.entity-agent-heading p:last-child,
.entity-agent-code-heading p:last-child {
  margin: 0;
  color: var(--muted);
}

.entity-agent-company {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid #cfe8e7;
  border-radius: 14px;
  background: linear-gradient(135deg, #f4fbfb 0%, #f8fafc 100%);
}

.entity-agent-company-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  color: #087f7b;
  background: #dff5f2;
}

.entity-agent-company-icon svg {
  width: 22px;
  height: 22px;
}

.entity-agent-company > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.entity-agent-company small,
.entity-agent-company span {
  color: var(--muted);
}

.entity-agent-company strong {
  overflow-wrap: anywhere;
}

.entity-agent-scope-note {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 310px;
  font-size: .78rem;
}

.entity-agent-scope-note svg {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  color: #118c72;
}

.entity-agent-code-card {
  border-color: #a9ddd7;
  background: linear-gradient(135deg, #eefaf8 0%, #fff 72%);
}

.entity-agent-code-card.is-expired {
  border-color: var(--line);
  background: #f8fafc;
}

.entity-agent-code-copy-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 12px;
}

.entity-agent-code-copy-row code {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 10px 18px;
  overflow-wrap: anywhere;
  border: 1px solid #164e63;
  border-radius: 12px;
  color: #ecfeff;
  background: #082f49;
  font-family: "Cascadia Mono", "Consolas", monospace;
  font-size: clamp(1.1rem, 2.4vw, 1.65rem);
  font-weight: 700;
  letter-spacing: .11em;
  text-align: center;
}

.entity-agent-code-card.is-expired .entity-agent-code-copy-row code {
  border-color: #64748b;
  background: #475569;
}

.entity-agent-code-details {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  color: var(--muted);
  font-size: .82rem;
}

.entity-agent-code-details span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.entity-agent-code-details svg {
  width: 17px;
  height: 17px;
}

.entity-agent-code-help {
  margin: 0;
  padding: 11px 13px;
  border-left: 3px solid #f0ad30;
  border-radius: 0 10px 10px 0;
  color: #79530c;
  background: #fffaf0;
  font-size: .84rem;
}

.entity-agent-copy-feedback {
  min-height: 1.2em;
  margin: -8px 0 0;
  color: #087f5b;
  font-size: .8rem;
  font-weight: 700;
}

.entity-agent-copy-feedback.is-error {
  color: #b42318;
}

.entity-agent-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.entity-agent-metrics .metric-card {
  min-width: 0;
}

.entity-agent-metrics .metric-card strong {
  overflow-wrap: anywhere;
}

.entity-agent-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 190px;
  padding: 26px;
  color: var(--muted);
  text-align: center;
}

.entity-agent-empty-state.compact {
  min-height: 120px;
}

.entity-agent-empty-state svg {
  width: 36px;
  height: 36px;
  color: #0d9488;
}

.entity-agent-empty-state strong {
  color: var(--ink);
}

.entity-agent-devices-table td:first-child strong,
.entity-agent-devices-table td:first-child small,
.entity-agent-devices-table td:nth-child(4) small {
  display: block;
}

.entity-agent-devices-table td:first-child small,
.entity-agent-devices-table td:nth-child(4) small {
  margin-top: 3px;
  color: var(--muted);
}

.entity-agent-devices-table th:last-child,
.entity-agent-devices-table td:last-child {
  text-align: right;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .entity-agent-company {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .entity-agent-scope-note {
    grid-column: 1 / -1;
    max-width: none;
  }

  .entity-agent-metrics {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .entity-agent-heading,
  .entity-agent-code-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .entity-agent-heading .btn-primary-app,
  .entity-agent-code-copy-row .btn-primary-app {
    justify-content: center;
    width: 100%;
  }

  .entity-agent-code-copy-row {
    grid-template-columns: 1fr;
  }

  .entity-agent-code-copy-row code {
    letter-spacing: .06em;
  }
}

.entity-family-section {
  gap: 20px;
}

.entity-family-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.entity-family-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.entity-family-summary span {
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--text-muted);
  background: var(--surface-muted);
  font-size: 0.84rem;
}

.entity-family-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 14px;
}

.entity-family-card {
  display: grid;
  gap: 11px;
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}

.entity-family-card.current {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 14%, transparent);
}

.entity-family-card.inactive {
  background: var(--surface-muted);
}

.entity-family-card-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
}

.entity-family-cnpj {
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.entity-family-card-details {
  display: grid;
  gap: 8px;
  margin: 0;
}

.entity-family-card-details div {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.entity-family-card-details dt,
.entity-family-card-details dd {
  margin: 0;
  font-size: 0.84rem;
}

.entity-family-card-details dt {
  color: var(--text-muted);
}

.entity-family-card-details dd {
  text-align: right;
  font-weight: 700;
}

.entity-family-open {
  justify-self: start;
}

.entity-family-footnote {
  margin: 0;
}

@media (max-width: 720px) {
  .entity-family-heading {
    display: grid;
  }

  .entity-family-grid {
    grid-template-columns: 1fr;
  }
}

.form-section {
  display: grid;
  gap: 16px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.form-section:first-child {
  padding-top: 0;
  border-top: 0;
}

.form-section-title h3 {
  margin: 0 0 5px;
  font-size: 1.02rem;
  font-weight: 760;
}

.contact-edit-toolbar,
.regime-edit-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-radius: 8px;
  color: var(--accent-strong);
  background: rgba(223, 244, 240, 0.62);
  font-size: 0.86rem;
  font-weight: 800;
}

.contact-edit-toolbar[hidden],
.regime-edit-toolbar[hidden] {
  display: none;
}

.contact-edit-toolbar .compact-action,
.regime-edit-toolbar .compact-action {
  min-height: 30px;
  padding: 0 10px;
  font-size: 0.82rem;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.user-create-form {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  margin-top: 22px;
}

.admin-access-switch {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  min-height: 76px;
  padding: 13px 14px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--text);
  cursor: pointer;
}

.admin-access-switch.is-locked {
  color: var(--muted);
  background: #f3f6f8;
  cursor: not-allowed;
}

.admin-access-switch input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: 0 0 auto;
  accent-color: var(--accent);
}

.admin-access-switch.is-locked input {
  cursor: not-allowed;
}

.admin-access-switch span,
.admin-access-switch strong,
.admin-access-switch small {
  display: block;
  min-width: 0;
}

.admin-access-switch strong {
  font-size: 0.92rem;
  font-weight: 850;
}

.admin-access-switch small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 720;
  line-height: 1.35;
}

.permission-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.permission-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  min-height: 96px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.permission-option:hover,
.permission-option:focus-within {
  border-color: rgba(28, 34, 38, 0.34);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.permission-option input {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  flex: 0 0 auto;
  accent-color: var(--accent);
}

.permission-option span,
.permission-option strong,
.permission-option small {
  display: block;
  min-width: 0;
}

.permission-option strong {
  font-size: 0.88rem;
  font-weight: 850;
}

.permission-option small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 720;
  line-height: 1.35;
}

.permission-group {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafc;
}

.permission-group:has(input:checked) {
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(223, 244, 240, 0.46);
}

.permission-group > .permission-group-option {
  min-height: auto;
  padding: 2px 2px 9px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.permission-group > .permission-group-option:hover,
.permission-group > .permission-group-option:focus-within {
  border-color: var(--line);
  box-shadow: none;
}

.permission-suboptions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding-left: 26px;
}

.permission-suboption {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  cursor: pointer;
}

.permission-suboption:hover,
.permission-suboption:focus-within {
  border-color: rgba(28, 34, 38, 0.34);
}

.permission-suboption input {
  width: 15px;
  height: 15px;
  margin-top: 2px;
  flex: 0 0 auto;
  accent-color: var(--accent);
}

.permission-suboption span,
.permission-suboption strong,
.permission-suboption small {
  display: block;
  min-width: 0;
}

.permission-suboption strong {
  font-size: 0.78rem;
  font-weight: 850;
}

.permission-suboption small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.3;
}

.permission-option:has(input:checked),
.permission-chip:has(input:checked) {
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(223, 244, 240, 0.46);
}

.user-access-cards {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 18px;
}

.user-access-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.user-access-card:hover {
  border-color: rgba(28, 34, 38, 0.2);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.07);
}

.user-access-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.user-access-identity strong {
  display: block;
  font-size: 0.98rem;
  font-weight: 850;
  color: var(--text);
}

.user-access-identity small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.user-access-card-badges {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.tag.tag-self {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.user-access-card-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
}

.meta-block {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.meta-label {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.meta-block strong {
  font-size: 0.86rem;
  font-weight: 850;
  color: var(--text);
}

.meta-block span {
  font-size: 0.85rem;
  font-weight: 750;
  color: var(--text);
}

.meta-block small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.user-basic-edit {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.user-basic-edit > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  color: var(--accent-strong);
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.user-basic-edit > summary::-webkit-details-marker {
  display: none;
}

.user-basic-edit > summary:hover {
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: 10px;
}

.user-basic-edit[open] > summary:hover {
  border-radius: 10px 10px 0 0;
}

.user-basic-edit > summary i,
.user-basic-edit > summary svg {
  width: 16px;
  height: 16px;
}

.user-basic-edit[open] {
  border-color: rgba(28, 34, 38, 0.24);
}

.user-basic-edit[open] > summary {
  border-bottom: 1px solid var(--line);
}

.user-basic-edit-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
}

.user-basic-edit-hint {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.4;
}

.user-basic-edit-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
}

.user-access-card-editor {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.user-access-editor {
  display: grid;
  grid-template-columns: minmax(150px, 190px) minmax(0, 1fr) auto;
  gap: 14px 16px;
  align-items: stretch;
  min-width: 620px;
  margin: 0;
}

.compact-access-switch {
  min-height: 48px;
  padding: 9px 10px;
  gap: 9px;
}

.compact-access-switch strong {
  font-size: 0.82rem;
}

.compact-access-switch small {
  font-size: 0.72rem;
}

.permission-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-content: flex-start;
  min-width: 0;
}

.permission-chip {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-height: 32px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.permission-chip:hover,
.permission-chip:focus-within {
  border-color: rgba(28, 34, 38, 0.34);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.permission-chip input {
  width: 14px;
  height: 14px;
  accent-color: var(--accent);
}

.permission-chip-group {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.permission-group-chip {
  width: 100%;
}

.permission-subchip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding-left: 8px;
}

.permission-subchip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 4px 7px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 750;
  cursor: pointer;
}

.permission-subchip:hover,
.permission-subchip:focus-within {
  border-color: rgba(28, 34, 38, 0.34);
  color: var(--text);
}

.permission-subchip input {
  width: 13px;
  height: 13px;
  accent-color: var(--accent);
}

.access-matrix {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.055);
}

.access-matrix-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  background: linear-gradient(120deg, #f8fafc 0%, #f4f7ff 100%);
}

.access-matrix-heading,
.access-matrix-heading strong,
.access-matrix-heading small {
  display: block;
  min-width: 0;
}

.access-matrix-heading strong {
  margin-top: 2px;
  color: var(--text);
  font-size: 0.94rem;
  font-weight: 880;
}

.access-matrix-heading small {
  margin-top: 4px;
  max-width: 620px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 680;
  line-height: 1.4;
}

.access-matrix-eyebrow {
  color: var(--accent-strong);
  font-size: 0.67rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.access-matrix-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex: 0 0 auto;
}

.access-selection-count {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(28, 34, 38, 0.13);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--accent-strong);
  font-size: 0.72rem;
  font-weight: 850;
  white-space: nowrap;
}

.access-tool-button {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 7px;
  background: #fff;
  color: var(--accent-strong);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 850;
  cursor: pointer;
}

.access-tool-button:hover:not(:disabled),
.access-tool-button:focus-visible:not(:disabled) {
  border-color: rgba(28, 34, 38, 0.4);
  background: rgba(223, 244, 240, 0.45);
}

.access-tool-button.subtle {
  color: var(--muted);
}

.access-tool-button:disabled {
  opacity: 0.48;
  cursor: not-allowed;
}

.access-module-list {
  border-top: 1px solid var(--line);
}

.access-module-row {
  position: relative;
  background: #fff;
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.access-module-row + .access-module-row {
  border-top: 1px solid var(--line);
}

.access-module-row.is-active {
  background: linear-gradient(90deg, rgba(223, 244, 240, 0.52), #fff 42%);
  box-shadow: inset 3px 0 0 var(--accent);
}

.access-module-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 8px 12px 8px 16px;
}

.access-module-row > .access-module-selector {
  min-height: 64px;
  padding: 8px 16px;
}

.access-module-selector {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  margin: 0;
  color: var(--text);
  cursor: pointer;
}

.access-module-selector > input,
.access-route-option > input {
  flex: 0 0 auto;
  accent-color: var(--accent);
}

.access-module-selector > input {
  width: 17px;
  height: 17px;
}

.access-module-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 10px;
  background: #f1f5f9;
  color: #475569;
  transition: color 0.16s ease, background 0.16s ease;
}

.access-module-icon svg {
  width: 17px;
  height: 17px;
}

.access-module-row.is-active .access-module-icon {
  background: rgba(223, 244, 240, 0.92);
  color: var(--accent-strong);
}

.access-module-copy,
.access-module-copy strong,
.access-module-copy small {
  display: block;
  min-width: 0;
}

.access-module-copy strong {
  font-size: 0.86rem;
  font-weight: 880;
}

.access-module-copy small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 680;
  line-height: 1.35;
}

.access-module-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 820;
  white-space: nowrap;
}

.access-module-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: #64748b;
  cursor: pointer;
}

.access-module-expand:hover,
.access-module-expand:focus-visible {
  border-color: rgba(28, 34, 38, 0.3);
  color: var(--accent-strong);
}

.access-module-expand svg {
  width: 16px;
  height: 16px;
  transition: transform 0.18s ease;
}

.access-module-row.is-expanded .access-module-expand svg {
  transform: rotate(180deg);
}

.access-route-panel {
  padding: 0 16px 13px 61px;
}

.access-route-panel[hidden] {
  display: none;
}

.access-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.access-route-entry {
  min-width: 0;
  padding: 10px 12px 10px 2px;
}

.access-route-entry:nth-child(odd) {
  padding-right: 18px;
}

.access-route-entry:nth-child(even) {
  padding-left: 18px;
  border-left: 1px solid rgba(15, 23, 42, 0.08);
}

.access-route-entry:nth-child(n + 3) {
  border-top: 1px solid rgba(15, 23, 42, 0.065);
}

.access-route-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  margin: 0;
  color: var(--text);
  cursor: pointer;
}

.access-route-option > input {
  width: 15px;
  height: 15px;
  margin-top: 2px;
}

.access-route-option span,
.access-route-option strong,
.access-route-option small {
  display: block;
  min-width: 0;
}

.access-route-option strong {
  font-size: 0.77rem;
  font-weight: 840;
}

.access-route-option small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 660;
  line-height: 1.35;
}

.access-route-option:has(input:checked) strong {
  color: var(--accent-strong);
}

.access-action-list {
  margin: 9px 0 1px 23px;
}

.access-action-option {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 9px 10px;
  border: 1px solid rgba(180, 115, 16, 0.22);
  border-left: 3px solid #c78316;
  border-radius: 9px;
  background: #fffaf0;
  color: var(--text);
  cursor: pointer;
}

.access-action-option > input {
  width: 15px;
  height: 15px;
  margin-top: 2px;
  accent-color: #a8670d;
}

.access-action-option > span,
.access-action-option strong,
.access-action-option small {
  display: block;
  min-width: 0;
}

.access-action-icon {
  color: #a8670d;
}

.access-action-icon svg {
  width: 15px;
  height: 15px;
}

.access-action-option strong {
  color: #704509;
  font-size: 0.75rem;
  font-weight: 870;
}

.access-action-option small {
  margin-top: 2px;
  color: #765b35;
  font-size: 0.66rem;
  font-weight: 660;
  line-height: 1.35;
}

.access-action-option.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.access-action-option:has(input:checked) {
  border-color: rgba(168, 103, 13, 0.45);
  background: #fff4d9;
}

.access-matrix.is-disabled {
  background: #f8fafc;
}

.access-matrix.is-disabled .access-module-list {
  opacity: 0.62;
}

.access-matrix-validation {
  display: block;
  padding: 0 18px 12px;
}

.access-matrix-compact {
  grid-column: 1 / -1;
  border-radius: 12px;
  box-shadow: none;
}

.access-matrix-compact .access-matrix-toolbar {
  padding: 13px 15px;
}

.access-matrix-compact .access-module-header,
.access-matrix-compact .access-module-row > .access-module-selector {
  min-height: 58px;
}

.user-access-editor > .access-carteira,
.user-access-editor > .access-editor-actions {
  grid-column: 1 / -1;
}

.access-editor-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: flex-start;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}

.access-editor-actions .icon-action {
  flex: 0 0 auto;
}

.access-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 800;
  min-height: 34px;
  margin-bottom: 0;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.access-editor-actions .access-toggle {
  flex: 0 0 auto;
}

.access-toggle:has(input:checked) {
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(223, 244, 240, 0.5);
  color: var(--accent-strong);
}

.access-toggle.is-locked {
  color: var(--muted);
  background: #f3f6f8;
  cursor: not-allowed;
}

.access-toggle input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
}

.muted-text {
  color: var(--muted);
  font-weight: 800;
}

.automation-form {
  align-items: end;
  margin-top: 22px;
  margin-bottom: 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.payable-entry-form {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
}

.payable-editor-content {
  display: contents;
}

.payable-drawer-body {
  container: payable-editor / inline-size;
}

.payable-drawer .payable-entry-form {
  min-width: 0;
  margin: 0;
  padding: 0;
  border-bottom: 0;
}

.payable-drawer .payable-entry-form > .span-4 {
  grid-column: 1 / -1;
}

.payable-drawer .payable-payment-footer {
  grid-template-columns: minmax(0, 1fr);
}

.payable-drawer-footer-copy {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 720;
  line-height: 1.3;
}

.payable-drawer-footer-copy svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--accent-strong);
}

.payable-drawer-footer-actions {
  flex: 0 0 auto;
  flex-wrap: wrap;
  margin: 0;
}

.payable-drawer-footer-actions .btn-secondary-app,
.payable-drawer-footer-actions .btn-primary-app {
  min-height: 36px;
  height: 36px;
  padding: 0 12px;
  border-radius: 7px;
  font-size: 0.82rem;
}

@container payable-editor (max-width: 780px) {
  .payable-entry-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .payable-entry-form > .span-2,
  .payable-entry-form > .span-4 {
    grid-column: 1 / -1;
  }
}

@container payable-editor (max-width: 520px) {
  .payable-entry-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .payable-entry-form > .span-2,
  .payable-entry-form > .span-4 {
    grid-column: 1;
  }
}

.form-section-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 22px;
  margin: 2px 0 -2px;
  color: var(--accent-strong);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.form-section-divider::before,
.form-section-divider::after {
  content: "";
  height: 1px;
  min-width: 0;
  background: rgba(28, 34, 38, 0.18);
}

.form-section-divider::before {
  flex: 0 0 34px;
  background: var(--accent-warm);
}

.form-section-divider::after {
  flex: 1 1 auto;
}

.payable-payment-divider {
  margin-top: 4px;
}

.payable-payment-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  min-width: 0;
  padding: 0 10px 10px;
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-radius: 8px;
  background: #fff;
}

.payable-payment-box > * {
  min-width: 0;
}

.payable-payment-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.payable-payment-box .payable-payment-divider {
  flex: 1 1 auto;
  min-width: 120px;
  margin-top: 0;
}

.payable-current-payment-status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  padding: 3px 4px 3px 8px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 999px;
  color: var(--muted);
  background: #f8fafc;
  font-size: 0.72rem;
  font-weight: 750;
}

.payable-current-payment-status .status-pill {
  min-width: 54px;
  min-height: 22px;
  padding-inline: 8px;
  font-size: 0.7rem;
}

.payable-observations-field {
  display: grid;
  gap: 4px;
}

.payable-launch-actions {
  align-self: end;
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}

.payable-entry-save-button {
  min-width: 180px;
}

.payable-payment-row {
  display: grid;
  grid-template-columns:
    minmax(152px, 0.9fr)
    minmax(140px, 0.82fr)
    minmax(190px, 1.35fr)
    repeat(3, minmax(96px, 0.68fr));
  gap: 8px;
  align-items: start;
}

.payable-payment-totals {
  display: grid;
  grid-template-columns: repeat(3, minmax(112px, 140px));
  justify-content: end;
  gap: 8px;
  min-width: 0;
}

.payable-payment-row .field,
.payable-payment-row .toggle-field,
.payable-payment-totals .field {
  min-width: 0;
}

.payable-payment-box .field {
  gap: 4px;
}

.payable-payment-box .field > span:first-child {
  font-size: 0.74rem;
  line-height: 1.15;
  white-space: nowrap;
}

.payable-payment-box .field input:not([type="checkbox"]),
.payable-payment-box .field select {
  height: 34px;
  min-height: 34px;
  padding: 5px 8px;
  border-radius: 6px;
  font-size: 0.84rem;
  line-height: 1.2;
}

.payable-status-field {
  min-width: 0;
}

.toggle-field.payable-paid-toggle {
  min-height: 34px;
  height: 34px;
  padding: 0 8px;
  gap: 7px;
  border-radius: 6px;
  color: #b91c1c;
  border-color: rgba(220, 38, 38, 0.28);
  background: #fff7f7;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.payable-paid-toggle input[type="checkbox"] {
  width: 1px;
  height: 1px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.payable-paid-toggle.is-paid,
.payable-paid-toggle:has(input:checked) {
  color: #047857;
  border-color: rgba(4, 120, 87, 0.34);
  background: #ecfdf5;
  box-shadow: inset 0 0 0 1px rgba(4, 120, 87, 0.08);
}

.payable-paid-toggle .toggle-track {
  flex-basis: 34px;
  width: 34px;
  height: 20px;
  background: #fecaca;
}

.payable-paid-toggle.is-paid .toggle-track,
.payable-paid-toggle.toggle-field input:checked + .toggle-track {
  background: #10b981;
}

.payable-paid-toggle .toggle-track::after {
  width: 14px;
  height: 14px;
}

.payable-paid-toggle.toggle-field input:checked + .toggle-track::after {
  transform: translateX(14px);
}

.payable-paid-toggle .toggle-copy strong {
  font-size: 0.78rem;
  color: currentColor;
  white-space: nowrap;
}

.payable-paid-on {
  display: none;
}

.payable-paid-toggle.is-paid .payable-paid-on,
.payable-paid-toggle input:checked ~ .toggle-copy .payable-paid-on {
  display: inline;
}

.payable-paid-toggle.is-paid .payable-paid-off,
.payable-paid-toggle input:checked ~ .toggle-copy .payable-paid-off {
  display: none;
}

.payable-total-field input[readonly] {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.28);
  background: #f8fbff;
  font-variant-numeric: tabular-nums;
  font-weight: 900;
  text-align: right;
}

.payable-payment-history {
  display: grid;
  gap: 0;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 7px;
  background: #f8fafc;
}

.payable-payment-history-title {
  padding-bottom: 5px;
  color: var(--accent-strong);
  font-size: 0.76rem;
  font-weight: 850;
}

.payable-payment-history-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 6px 0;
  border-top: 1px solid rgba(28, 34, 38, 0.09);
}

.payable-payment-history-copy {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.payable-payment-history-copy > strong {
  color: var(--text);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.payable-payment-history-copy > small {
  min-width: 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 650;
  overflow-wrap: anywhere;
}

.payable-payment-history-note {
  padding: 4px 7px;
  border-radius: 999px;
  color: #28506f;
  background: #e5f0f8;
  font-size: 0.68rem;
  font-weight: 750;
  white-space: nowrap;
}

.payable-payment-history-action.btn-secondary-app {
  min-height: 30px;
  height: 30px;
  padding: 0 9px;
  border-radius: 6px;
  font-size: 0.74rem;
}

.payable-payment-history-action svg {
  width: 14px;
  height: 14px;
}

.payable-payment-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  min-width: 0;
}

.payable-observations-field textarea {
  min-height: 56px;
  padding: 7px 9px;
  border-radius: 6px;
  font-size: 0.82rem;
  line-height: 1.3;
}

.payable-payment-row .field.has-payment-error input,
.payable-payment-row .field.has-payment-error select {
  border-color: rgba(220, 38, 38, 0.52);
  background: #fff7f7;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.08);
}

@keyframes payable-shake {
  0%,
  100% {
    transform: translateX(0);
  }

  20%,
  60% {
    transform: translateX(-6px);
  }

  40%,
  80% {
    transform: translateX(6px);
  }
}

.payable-shake {
  display: inline-block;
  animation: payable-shake 420ms ease;
}

.payable-final-actions {
  justify-content: flex-end;
  margin: 0;
}

.payable-final-actions .btn-primary-app {
  min-width: 168px;
  min-height: 36px;
  height: 36px;
  padding: 0 12px;
  border-radius: 7px;
  font-size: 0.82rem;
}

.payable-final-actions .btn-primary-app.payable-save-payment {
  background: #047857;
  border-color: #047857;
  box-shadow: 0 10px 20px rgba(4, 120, 87, 0.14);
}

.payable-final-actions .btn-primary-app.payable-save-payment:hover {
  background: #065f46;
  border-color: #065f46;
  box-shadow: 0 12px 24px rgba(4, 120, 87, 0.18);
}

.payable-final-actions .btn-primary-app.payable-save-removal,
.payable-final-actions .btn-primary-app.payable-save-removal:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  box-shadow: 0 10px 20px rgba(185, 28, 28, 0.14);
}

.payable-entry-save-button.payable-save-saved,
.payable-entry-save-button.payable-save-saved:hover,
.payable-final-actions .btn-primary-app.payable-save-saved,
.payable-final-actions .btn-primary-app.payable-save-saved:hover {
  background: #047857;
  border-color: #047857;
  box-shadow: 0 10px 20px rgba(4, 120, 87, 0.14);
}

.payable-final-actions .btn-primary-app.payable-save-guarded,
.payable-final-actions .btn-primary-app.payable-save-guarded:hover {
  background: #94a3b8;
  border-color: #94a3b8;
  box-shadow: none;
  cursor: not-allowed;
}

@media (max-width: 1180px) {
  .payable-payment-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1040px) {
  .payable-payment-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .payable-payment-row {
    grid-template-columns: 1fr;
  }

  .payable-payment-heading {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 6px;
  }

  .payable-payment-heading .payable-payment-divider {
    flex-basis: 100%;
  }

  .payable-payment-totals {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: stretch;
  }

  .payable-payment-history-item,
  .payable-payment-footer {
    grid-template-columns: 1fr;
  }

  .payable-payment-history-action,
  .payable-payment-history-note {
    justify-self: start;
  }

  .payable-payment-box .field input:not([type="checkbox"]),
  .payable-payment-box .field select,
  .toggle-field.payable-paid-toggle {
    height: 42px;
    min-height: 42px;
  }

  .payable-launch-actions,
  .payable-entry-save-button,
  .payable-final-actions,
  .payable-final-actions .btn-primary-app {
    width: 100%;
  }

  .payable-drawer-footer {
    align-items: stretch;
  }

  .payable-drawer-footer-copy {
    width: 100%;
  }

  .payable-drawer-footer-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .payable-drawer-footer-actions > .btn-secondary-app,
  .payable-drawer-footer-actions > .btn-primary-app {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .payable-payment-totals,
  .payable-payment-history-copy {
    grid-template-columns: 1fr;
  }

  .payable-payment-history-copy {
    gap: 2px;
  }
}

.collapsible-entry {
  margin: 16px 0 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.collapsible-entry[open] {
  border-color: rgba(28, 34, 38, 0.36);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.collapsible-entry-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}

.collapsible-entry-summary::-webkit-details-marker {
  display: none;
}

.collapsible-entry-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--accent-strong);
  background: var(--surface-muted);
  transition: transform 0.16s ease, background 0.16s ease;
}

.collapsible-entry-icon svg {
  width: 17px;
  height: 17px;
}

.collapsible-entry[open] .collapsible-entry-icon {
  transform: rotate(90deg);
  background: var(--accent-soft);
}

.collapsible-entry-copy {
  display: grid;
  flex: 1 1 auto;
  min-width: 0;
  gap: 2px;
}

.collapsible-entry-copy strong {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 800;
}

.collapsible-entry-copy small {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.35;
}

.collapsible-entry-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.finance-new-button {
  cursor: pointer;
  font-family: inherit;
}

.obligation-entry-trigger {
  width: 100%;
  color: inherit;
  text-align: left;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.obligation-entry-trigger:hover,
.obligation-entry-trigger:focus-visible {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.inventory-drawer .obligation-drawer-form {
  align-items: start;
  margin: 0;
  padding: 0;
  border: 0;
}

.finance-edit-drawer:not(.finance-drawer-mounted) {
  display: none;
}

.collapsible-entry-body {
  padding: 16px;
  border-top: 1px solid var(--line);
}

.collapsible-entry:not([open]) .collapsible-entry-body {
  display: none;
}

.collapsible-entry-body .automation-form {
  align-items: start;
  margin: 0;
  padding: 0;
  border-bottom: 0;
}

body.finance-edit-drawer-open {
  overflow: hidden;
}

.finance-edit-drawer.finance-drawer-mounted {
  position: fixed;
  inset: 0;
  z-index: 1100;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  pointer-events: auto;
}

.finance-edit-drawer.finance-drawer-mounted::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.28);
  opacity: 0;
  transition: opacity 460ms ease;
}

.finance-edit-drawer.finance-drawer-active::before {
  opacity: 1;
}

.finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-summary,
.finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-body {
  position: absolute;
  right: 14px;
  z-index: 1;
  width: min(820px, calc(100vw - 28px));
  background: #fff;
  transform: translateX(calc(100% + 40px));
  transition: transform 540ms cubic-bezier(0.19, 1, 0.22, 1), box-shadow 540ms ease;
}

.finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-summary {
  top: 14px;
  min-height: 62px;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-bottom: 0;
  border-left: 4px solid var(--accent);
  border-radius: 8px 0 0 0;
  cursor: default;
}

.finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-body {
  top: 76px;
  bottom: 14px;
  overflow-y: auto;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-top: 1px solid rgba(28, 34, 38, 0.13);
  border-left: 4px solid var(--accent);
  border-radius: 0 0 0 8px;
  box-shadow: -24px 0 60px rgba(15, 23, 42, 0.2);
}

.finance-edit-drawer.finance-drawer-active > .collapsible-entry-summary,
.finance-edit-drawer.finance-drawer-active > .collapsible-entry-body {
  transform: translateX(0);
}

.finance-edit-drawer.finance-drawer-mounted .collapsible-entry-icon {
  transform: none;
}

.finance-edit-drawer-status {
  grid-column: 1 / -1;
  margin: 0;
}

@media (max-width: 700px) {
  .reconciliation-multi-panel {
    top: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    border-radius: 0;
  }

  .reconciliation-multi-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .reconciliation-multi-footer .btn-primary-app {
    width: 100%;
  }

  .reconciliation-multi-option {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .reconciliation-multi-title-card {
    display: block;
  }

  .reconciliation-multi-option-select {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .reconciliation-multi-category-shell {
    padding: 0 8px 9px;
  }

  .reconciliation-multi-category-button {
    width: 100%;
    justify-self: stretch;
  }

  .reconciliation-multi-category-editor {
    max-width: 100%;
  }

  .reconciliation-multi-amount {
    grid-column: 2;
  }

  .finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-summary,
  .finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-body {
    right: 0;
    width: 100vw;
  }

  .finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-summary {
    top: 0;
    border-radius: 0;
  }

  .finance-edit-drawer.finance-drawer-mounted > .collapsible-entry-body {
    top: 62px;
    bottom: 0;
    border-radius: 0;
  }
}

.choice-list {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.choice-option {
  align-items: center;
  color: #26334f;
  display: flex;
  font-size: 0.92rem;
  font-weight: 650;
  gap: 0.5rem;
}

.choice-option input[type="checkbox"] {
  height: 1rem;
  width: 1rem;
}

.inline-details summary {
  color: var(--accent);
  cursor: pointer;
  font-weight: 750;
}

.inline-upload-form {
  display: grid;
  gap: 0.65rem;
  margin-top: 0.75rem;
  min-width: 220px;
}

.inline-upload-form .btn-primary-app {
  justify-content: center;
}

.drop-upload-target {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 240px;
  min-height: 72px;
  padding: 10px 12px;
  border: 1px dashed rgba(28, 34, 38, 0.34);
  border-radius: 8px;
  color: var(--text);
  background: #f8fafc;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.drop-upload-target input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 1px;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.drop-upload-target:hover,
.drop-upload-target:focus-within,
.drop-upload-target.is-drag-over {
  border-color: var(--accent-strong);
  background: var(--accent-soft);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.drop-upload-target.is-drop-error,
.delivery-inline-details > summary.is-drop-error {
  border-color: rgba(190, 18, 60, 0.45);
  background: #fff1f2;
}

.drop-upload-target.is-drop-error .drop-upload-copy small {
  color: #be123c;
}

.drop-upload-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(28, 34, 38, 0.12);
}

.drop-upload-icon svg {
  width: 20px;
  height: 20px;
}

.drop-upload-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.drop-upload-copy strong,
.drop-upload-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.drop-upload-copy strong {
  font-size: 0.86rem;
  font-weight: 850;
}

.drop-upload-copy small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
}

.table-link {
  color: var(--accent);
  display: block;
  font-weight: 700;
  text-decoration: none;
}

.table-link:hover {
  text-decoration: underline;
}

.contract-form {
  align-items: start;
}

.contract-signed-panel {
  gap: 12px;
}

.contract-signed-current {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.contract-signed-current > div {
  min-width: 0;
}

.contract-signed-current strong,
.contract-signed-current small {
  display: block;
}

.contract-signed-current strong {
  margin-top: 6px;
  overflow-wrap: anywhere;
}

.contract-signed-current small {
  margin-top: 3px;
  color: var(--muted);
}

.contract-signed-current .switch-field {
  flex: 0 0 auto;
}

.contract-signed-upload {
  max-width: 520px;
}

.bank-account-form {
  align-items: start;
}

.bank-account-form .switch-field {
  align-self: end;
  min-height: 40px;
  margin-bottom: 2px;
}

.bank-account-form .form-actions {
  align-self: start;
}

.integration-form {
  align-items: start;
}

.channel-config-form {
  align-items: start;
}

.channel-config-form .switch-field {
  align-self: end;
  min-height: 40px;
  margin-bottom: 2px;
}

/* Variavel, e nao width: declarar width aqui venceria a regra de tela cheia no mobile. */
.email-config-drawer-panel {
  --drawer-width: 860px;
}

.email-config-drawer .email-config-form {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.email-config-drawer .email-config-form .span-3 {
  grid-column: 1 / -1;
}

.email-config-drawer .email-config-form .email-config-half {
  grid-column: span 2;
}

.email-config-drawer .email-config-form .email-config-compact input,
.email-config-drawer .email-config-form .email-config-compact select {
  min-height: 42px;
  padding-inline: 12px;
}

.email-config-drawer .email-config-form .email-config-switch-compact {
  align-self: end;
  min-height: 42px;
  margin-bottom: 0;
}

.email-direct-connection {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fbfdff;
}

.email-direct-connection-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--accent-strong);
}

.email-direct-connection-title svg {
  width: 17px;
  height: 17px;
}

.email-direct-connection-title strong {
  font-size: 0.84rem;
  font-weight: 900;
}

.email-direct-connection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.email-template-count-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--accent-strong);
  background: transparent;
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.email-template-count-link:hover,
.email-template-count-link:focus-visible {
  border-color: rgba(28, 34, 38, 0.18);
  background: var(--accent-soft);
  outline: none;
}

.email-template-count-link svg {
  width: 16px;
  height: 16px;
}

.email-template-drawer-panel {
  --drawer-width: 560px;
}

.email-template-drawer-summary {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fbfdff;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.email-template-drawer-summary strong {
  color: var(--text);
  font-size: 0.98rem;
  font-weight: 900;
}

.email-template-drawer-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.email-template-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.email-template-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.email-template-card-head strong {
  color: var(--accent-strong);
  font-size: 0.86rem;
  font-weight: 900;
}

.email-template-version {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.72rem;
  font-weight: 900;
}

.email-template-card p {
  margin: 0;
  color: var(--text);
  font-weight: 850;
  line-height: 1.35;
}

.email-template-card small,
.email-template-card span.email-template-body-preview {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.45;
}

.email-template-drawer-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  margin-top: 16px;
  padding: 22px 16px;
  border: 1px dashed rgba(28, 34, 38, 0.2);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
}

.email-template-drawer-empty[hidden] {
  display: none;
}

.email-template-drawer-empty svg {
  width: 26px;
  height: 26px;
  color: var(--accent-strong);
}

.email-template-drawer-empty strong {
  color: var(--text);
}

.email-config-feedback {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 10px 12px;
  border: 1px solid var(--success-line);
  border-radius: 8px;
  color: var(--success-strong);
  background: var(--success-soft);
  font-size: 0.84rem;
  font-weight: 800;
}

.email-config-feedback[hidden] {
  display: none;
}

.email-config-feedback.is-error {
  border-color: #efb2aa;
  color: var(--danger);
  background: #fff1ee;
}

.email-config-feedback svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

@media (max-width: 640px) {
  .email-config-drawer .email-config-form {
    grid-template-columns: 1fr;
  }

  .email-config-drawer .email-config-form .email-config-half {
    grid-column: 1 / -1;
  }

  .email-direct-connection-grid {
    grid-template-columns: 1fr;
  }
}

.integration-profile-note {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  background: var(--surface-muted);
}

.integration-profile-note strong {
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 800;
}

.integration-profile-note span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.35;
}

.integration-fieldset {
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.integration-fieldset[hidden] {
  display: none;
}

.integration-fieldset legend {
  float: none;
  width: auto;
  margin: 0 0 12px;
  padding: 0;
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 850;
}

.integration-field-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.integration-field-grid .field {
  align-content: start;
}

.integration-field-grid .field > input,
.integration-field-grid .field > select,
.integration-field-grid .field > textarea {
  align-self: start;
}

.integration-row {
  scroll-margin-top: 92px;
}

.integration-form input[readonly] {
  color: var(--text);
  background: var(--surface-muted);
  cursor: default;
}

.webhook-activation-field {
  gap: 6px;
}

.webhook-activation-field .switch-field {
  min-height: 42px;
  margin: 0;
}

.integration-webhook-cell {
  min-width: 290px;
}

.webhook-state {
  display: grid;
  justify-items: start;
  gap: 3px;
  margin-top: 8px;
}

.mini-table td .webhook-state .status-pill {
  display: inline-flex;
  margin: 0 0 2px;
}

.mini-table td .webhook-external-id {
  max-width: 100%;
  overflow-wrap: anywhere;
  color: var(--text);
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 0.74rem;
}

.webhook-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.mini-table td .webhook-actions form {
  display: inline-flex;
}

.webhook-actions .compact-button {
  min-height: 32px;
  padding: 0 9px;
  font-size: 0.72rem;
}

.webhook-actions .compact-button svg {
  width: 14px;
  height: 14px;
  flex-basis: 14px;
}

.identity-fields {
  display: grid;
  gap: 18px;
}

.identity-primary-row {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 12px;
}

.tipo-pessoa-field {
  flex: 0 0 260px;
  width: 260px;
}

.cnpj-lookup-field {
  flex: 0 0 24ch;
  width: 24ch;
}

.cnpj-lookup-field input {
  font-variant-numeric: tabular-nums;
}

.data-abertura-field {
  flex: 0 0 18ch;
  width: 18ch;
}

.data-baixa-field {
  flex: 0 0 18ch;
  width: 18ch;
}

.entity-active-toggle {
  flex: 1 1 230px;
  max-width: 280px;
}

.entity-baixa-review {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid color-mix(in srgb, #b7791f 38%, var(--line));
  border-radius: 12px;
  background: color-mix(in srgb, #b7791f 7%, var(--surface));
}

.entity-baixa-review[hidden] {
  display: none;
}

.entity-baixa-auto-review {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, #b7791f 45%, var(--line));
  border-radius: 10px;
  background: color-mix(in srgb, #f6c453 16%, var(--surface));
}

.entity-baixa-auto-review > svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: var(--warning-strong, #8a5a00);
}

.entity-baixa-auto-review > div,
.entity-baixa-review-confirm > span {
  display: grid;
  gap: 3px;
}

.entity-baixa-auto-review span,
.entity-baixa-review-confirm small {
  color: var(--muted);
  line-height: 1.45;
}

.entity-baixa-review-confirm {
  min-height: 66px;
  align-items: flex-start;
  border-color: color-mix(in srgb, #b7791f 45%, var(--line));
  background: var(--surface);
}

.entity-baixa-review-heading {
  display: flex;
  align-items: flex-start;
  gap: 11px;
}

.entity-baixa-review-heading > svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin-top: 1px;
  color: var(--warning-strong, #8a5a00);
}

.entity-baixa-review-heading > div,
.entity-baixa-action > span,
.entity-baixa-confirm > span {
  display: grid;
  gap: 3px;
}

.entity-baixa-review-heading span,
.entity-baixa-action small,
.entity-baixa-confirm small,
.entity-baixa-review > small {
  color: var(--muted);
  line-height: 1.45;
}

.entity-baixa-impact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.entity-baixa-impact-grid > span {
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.84rem;
}

.entity-baixa-impact-grid strong {
  color: var(--text);
}

.entity-baixa-impact-grid .entity-baixa-preserved {
  grid-column: 1 / -1;
  color: var(--accent-strong);
}

.entity-baixa-loading {
  font-weight: 750;
}

.entity-baixa-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.entity-baixa-actions > span:first-child,
.entity-baixa-confirm,
.entity-baixa-actions > .field-validation-error {
  grid-column: 1 / -1;
}

.entity-baixa-actions > span:first-child {
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.entity-baixa-action,
.entity-baixa-confirm {
  min-height: 66px;
  padding-block: 10px;
  align-items: flex-start;
}

.entity-baixa-confirm {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  background: color-mix(in srgb, var(--accent) 6%, var(--surface));
}

@media (max-width: 760px) {
  .entity-baixa-impact-grid,
  .entity-baixa-actions {
    grid-template-columns: 1fr;
  }

  .entity-baixa-impact-grid .entity-baixa-preserved,
  .entity-baixa-actions > span:first-child,
  .entity-baixa-confirm,
  .entity-baixa-actions > .field-validation-error {
    grid-column: auto;
  }
}

.cpf-field {
  max-width: 24ch;
}

.socios-entry-grid {
  align-items: end;
}

.socios-entry-identity-grid {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(180px, 1.2fr) minmax(145px, 0.9fr) minmax(160px, 1fr) minmax(165px, 1.1fr);
  gap: 14px;
  min-width: 0;
}

@media (max-width: 1100px) {
  .socios-entry-identity-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .socios-entry-identity-grid {
    grid-template-columns: 1fr;
  }
}

.socios-editor {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.socios-entry-feedback {
  display: grid;
  gap: 4px;
  min-height: 20px;
  margin-top: 8px;
}

.socios-entry-feedback > * {
  margin: 0;
}

.socios-entry-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}

.socios-entry-actions > [hidden] {
  display: none !important;
}

.socios-add-button {
  min-width: 154px;
  color: #ffffff;
  background: var(--accent);
  border-color: var(--accent);
}

.socios-add-button:hover {
  color: #ffffff;
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.align-end {
  align-self: end;
  margin-bottom: 10px;
}

.entity-constitution-notice {
  display: flex;
  align-items: center;
  gap: 12px;
}

.entity-constitution-notice [data-constitution-open] {
  flex: 0 0 auto;
  margin-left: auto;
}

.entity-constitution-drawer .app-drawer-panel {
  width: min(440px, 100vw);
}

.entity-constitution-drawer form,
.entity-constitution-summary,
.entity-constitution-actions {
  display: grid;
  gap: 14px;
}

.entity-constitution-intro {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.entity-constitution-lookup {
  position: relative;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--muted);
  background: var(--surface-muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.entity-constitution-lookup.is-loading {
  padding-left: 38px;
  color: var(--accent-strong);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
  background: color-mix(in srgb, var(--accent) 7%, var(--surface));
}

.entity-constitution-lookup.is-loading::before {
  position: absolute;
  top: 50%;
  left: 14px;
  width: 13px;
  height: 13px;
  margin-top: -8px;
  content: "";
  border: 2px solid color-mix(in srgb, var(--accent) 25%, transparent);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: entity-constitution-spin 0.75s linear infinite;
}

.entity-constitution-lookup.is-success {
  color: #166534;
  border-color: #bbf7d0;
  background: #ecfdf3;
}

.entity-constitution-lookup.is-warning {
  color: #8a4b0f;
  border-color: #f6d39a;
  background: #fff7e6;
}

@keyframes entity-constitution-spin {
  to { transform: rotate(360deg); }
}

.entity-constitution-check-note {
  margin: 0;
}

.entity-constitution-summary {
  margin: 0;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-muted);
}

.entity-constitution-summary > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.entity-constitution-summary dt {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 750;
}

.entity-constitution-summary dd {
  margin: 0;
  text-align: right;
  font-size: 0.82rem;
  font-weight: 850;
}

.entity-constitution-actions {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  width: 100%;
}

.entity-constitution-actions .btn-secondary-app,
.entity-constitution-actions .btn-primary-app {
  width: 100%;
}

.span-2 {
  grid-column: span 2;
}

.span-3 {
  grid-column: span 3;
}

.span-4 {
  grid-column: span 4;
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.check-card {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font-weight: 700;
}

.check-card input,
.switch-field input {
  accent-color: var(--accent);
}

.contact-sector-card input[type="checkbox"] {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  padding: 0;
  border-radius: 3px;
}

.file-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.file-field {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.file-field > span:first-child {
  color: var(--text);
  font-weight: 760;
}

.file-field input[type="file"] {
  width: 100%;
  min-height: 40px;
  padding: 8px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
  color: var(--muted);
  font: inherit;
}

.certificate-upload-grid {
  grid-template-columns: minmax(250px, 360px) minmax(420px, 1fr);
  align-items: start;
  max-width: 940px;
}

.certificate-file-field {
  padding: 12px;
}

.certificate-password-action {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  align-items: start;
  gap: 10px;
  min-width: 0;
}

.certificate-password-field {
  min-width: 0;
}

.certificate-password-field input {
  min-height: 40px;
}

.certificate-save-button {
  min-height: 40px;
  margin-top: 25px;
  padding-inline: 14px;
  white-space: nowrap;
}

.certificate-save-button svg {
  width: 16px;
  height: 16px;
}

.certificate-save-hint {
  display: flex;
  align-items: center;
  gap: 7px;
  max-width: 940px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.certificate-save-hint svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
}

.certificate-save-feedback {
  max-width: 940px;
  margin: 0 0 14px;
}

@media (max-width: 980px) {
  .certificate-upload-grid {
    grid-template-columns: 1fr;
    max-width: 680px;
  }
}

@media (max-width: 560px) {
  .certificate-password-action {
    grid-template-columns: 1fr;
  }

  .certificate-save-button {
    width: 100%;
    margin-top: 0;
  }
}

.compact-file-picker {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 38px;
  padding: 6px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
  cursor: pointer;
}

.compact-file-picker:focus-within {
  border-color: rgba(28, 34, 38, 0.45);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.1);
}

.compact-file-picker input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 1px;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.compact-file-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(28, 34, 38, 0.24);
  border-radius: 7px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.82rem;
  font-weight: 850;
  white-space: nowrap;
}

.compact-file-button svg {
  width: 15px;
  height: 15px;
}

.compact-file-name {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.file-field small {
  color: var(--muted);
  font-weight: 700;
}

.documents-upload-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.entity-registered-documents-table {
  min-width: 780px;
  table-layout: fixed;
}

.entity-registered-documents-table .entity-document-col-description { width: 22%; }
.entity-registered-documents-table .entity-document-col-file { width: 23%; }
.entity-registered-documents-table .entity-document-col-type { width: 17%; }
.entity-registered-documents-table .entity-document-col-date { width: 15%; }
.entity-registered-documents-table .entity-document-col-actions { width: 23%; }

.entity-registered-documents-table th,
.entity-registered-documents-table td {
  overflow-wrap: anywhere;
}

.entity-registered-documents-table .entity-document-actions-heading,
.entity-registered-documents-table .entity-document-actions-cell {
  text-align: right;
}

.entity-document-name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.entity-document-inline-editor {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.entity-document-inline-editor[hidden] {
  display: none;
}

.entity-document-inline-editor input,
.entity-document-inline-editor select {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  height: 36px;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 0.8rem;
}

.entity-document-inline-editor > span {
  color: #b42318;
  font-size: 0.7rem;
  font-weight: 720;
}

.entity-document-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  min-width: 0;
}

.entity-document-row-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.entity-document-row-action:hover,
.entity-document-row-action:focus-visible {
  outline: 0;
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.entity-document-row-action svg {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
}

.entity-document-row-action.danger {
  border-color: #fecaca;
  color: #b42318;
}

.entity-document-row-action.danger:hover,
.entity-document-row-action.danger:focus-visible {
  border-color: #fca5a5;
  background: #fff1f0;
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.09);
}

.entity-document-row-action:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.entity-document-row-action.is-loading,
.entity-document-row-action.is-loading:disabled {
  border-color: #fca5a5;
  color: #b42318;
  background: #fff1f0;
  opacity: 1;
  cursor: progress;
}

.entity-document-row-action.is-loading svg {
  animation: bank-processing-spin 1.1s linear infinite;
}

.entity-registered-documents-table tr.is-editing > td {
  background: #f8fafc;
}

.entity-document-management-status {
  display: block;
  min-height: 1.15em;
  margin-top: 6px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.entity-document-management-status[data-status-tone="success"] {
  color: #067647;
}

.entity-document-management-status[data-status-tone="warning"] {
  color: #b54708;
}

.entity-document-management-status[data-status-tone="error"] {
  color: #b42318;
}

.entity-document-uploader {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.entity-document-dropzone.drop-upload-target {
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 16px;
  min-width: 0;
  min-height: 142px;
  padding: 22px 24px;
  border-width: 1.5px;
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(242, 247, 248, 0.96)),
    var(--surface-muted);
}

.entity-document-dropzone.drop-upload-target:hover,
.entity-document-dropzone.drop-upload-target:focus-within,
.entity-document-dropzone.drop-upload-target.is-drag-over {
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08), 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.entity-document-dropzone-icon.drop-upload-icon {
  width: 52px;
  height: 52px;
  border-radius: 13px;
  background: var(--accent-soft);
}

.entity-document-dropzone-icon.drop-upload-icon svg {
  width: 25px;
  height: 25px;
}

.entity-document-dropzone-copy {
  gap: 5px;
}

.entity-document-dropzone-copy.drop-upload-copy strong {
  font-size: 1rem;
  font-weight: 900;
  white-space: normal;
}

.entity-document-dropzone-copy.drop-upload-copy small {
  font-size: 0.82rem;
  white-space: normal;
}

.entity-document-select-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.79rem;
  font-weight: 850;
  white-space: nowrap;
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.05);
}

.entity-document-select-action svg {
  width: 16px;
  height: 16px;
}

.entity-document-upload-feedback {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 18px;
  color: var(--muted);
}

.entity-document-upload-feedback small {
  font-size: 0.75rem;
  font-weight: 720;
}

.entity-document-upload-feedback [data-entity-document-status] {
  color: var(--accent-strong);
  text-align: right;
}

.entity-document-dropzone.is-drop-error + .entity-document-upload-feedback [data-entity-document-status] {
  color: #be123c;
}

.entity-document-validation {
  display: block;
}

.entity-document-queue {
  display: grid;
  gap: 10px;
  min-width: 0;
  margin-top: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
}

.entity-document-queue[hidden] {
  display: none;
}

.entity-document-queue-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.entity-document-queue-header > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.entity-document-queue-header strong {
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 900;
}

.entity-document-queue-header small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 720;
}

.entity-document-clear.btn-secondary-app {
  min-height: 34px;
  height: 34px;
  padding: 0 10px;
  font-size: 0.76rem;
  white-space: nowrap;
}

.entity-document-clear svg {
  width: 15px;
  height: 15px;
}

.entity-document-list {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.entity-document-item {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.75fr) minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(28, 34, 38, 0.13);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 23, 42, 0.035);
}

.entity-document-file {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 42px;
}

.entity-document-file-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 9px;
  color: #b42318;
  background: #fff1f0;
}

.entity-document-file-icon svg {
  width: 18px;
  height: 18px;
}

.entity-document-file-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.entity-document-file-copy strong {
  overflow: hidden;
  color: var(--text);
  font-size: 0.8rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.entity-document-file-copy small {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
}

.entity-document-item .field {
  gap: 5px;
  min-width: 0;
}

.entity-document-item .field > span:first-child {
  font-size: 0.7rem;
  font-weight: 800;
}

.entity-document-item .field > span:first-child small {
  color: var(--muted);
  font-size: inherit;
  font-weight: 680;
}

.entity-document-item select,
.entity-document-item input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  height: 38px;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 0.78rem;
}

.entity-document-remove {
  display: inline-grid;
  place-items: center;
  width: 38px;
  min-width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(190, 18, 60, 0.18);
  border-radius: 8px;
  color: #be123c;
  background: #fff;
  cursor: pointer;
}

.entity-document-remove:hover,
.entity-document-remove:focus-visible {
  outline: 0;
  border-color: rgba(190, 18, 60, 0.42);
  background: #fff1f2;
  box-shadow: 0 0 0 3px rgba(190, 18, 60, 0.1);
}

.entity-document-remove svg {
  width: 17px;
  height: 17px;
}

@media (max-width: 920px) {
  .entity-document-item {
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  }

  .entity-document-file {
    grid-column: 1 / -1;
  }
}

@media (max-width: 820px) {
  .mini-table.entity-registered-documents-table {
    min-width: 0;
    border-spacing: 0;
  }

  .entity-registered-documents-table colgroup,
  .entity-registered-documents-table thead {
    display: none;
  }

  .entity-registered-documents-table tbody {
    display: grid;
    gap: 12px;
  }

  .entity-registered-documents-table tr {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
  }

  .entity-registered-documents-table td {
    display: grid;
    grid-template-columns: minmax(90px, 0.4fr) minmax(0, 1fr);
    gap: 10px;
    padding: 0;
    border: 0;
  }

  .entity-registered-documents-table td::before {
    content: attr(data-label);
    grid-column: 1;
    grid-row: 1;
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .entity-registered-documents-table td > * {
    grid-column: 2;
  }

  .entity-registered-documents-table .entity-document-actions-cell {
    display: block;
    padding-top: 3px;
  }

  .entity-registered-documents-table .entity-document-actions-cell::before {
    display: none;
  }

  .entity-document-row-actions,
  .entity-document-row-action {
    width: 100%;
  }
}

@media (max-width: 680px) {
  .entity-document-dropzone.drop-upload-target {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 12px;
    min-height: 0;
    padding: 18px;
  }

  .entity-document-dropzone-icon.drop-upload-icon {
    width: 46px;
    height: 46px;
  }

  .entity-document-select-action {
    grid-column: 1 / -1;
    width: 100%;
  }

  .entity-document-upload-feedback,
  .entity-document-queue-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .entity-document-upload-feedback [data-entity-document-status] {
    text-align: left;
  }

  .entity-document-clear.btn-secondary-app {
    width: 100%;
  }

  .entity-document-item {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .entity-document-file {
    grid-column: 1;
  }

  .entity-document-type-field,
  .entity-document-description-field {
    grid-column: 1 / -1;
  }

  .entity-document-remove {
    grid-column: 2;
    grid-row: 1;
  }
}

.secret-status,
.field small {
  color: var(--accent-strong);
  font-size: 0.8rem;
  font-weight: 800;
}

.mini-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

.mini-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
}

.fiscal-rate-history {
  margin-top: 2px;
}

.fiscal-rate-history .mini-table {
  min-width: 560px;
}

.mini-table th,
.mini-table td {
  padding: 11px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.mini-table th {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.mini-table td {
  font-size: 0.92rem;
}

.mini-table td strong,
.mini-table td small {
  display: block;
}

.mini-table td small {
  margin-top: 3px;
  color: var(--muted);
}

.receive-table .posting-id-header,
.receive-table .posting-id-cell {
  width: 86px;
  min-width: 86px;
  text-align: center;
}

.posting-id-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 22px;
  padding: 0 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: var(--surface-muted);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}

.receive-table.zebra-table tbody tr.is-selected .posting-id-pill {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.22);
  background: #fff;
}

.fiscal-documents-table {
  min-width: 960px;
}

.certificate-table {
  min-width: 760px;
}

.certificate-row td:first-child {
  box-shadow: inset 4px 0 0 transparent;
}

.certificate-row-valid td {
  background: #fbfffc;
}

.certificate-row-valid td:first-child {
  box-shadow: inset 4px 0 0 #128453;
}

.certificate-row-expired td {
  background: #fffafa;
}

.certificate-row-expired td:first-child {
  box-shadow: inset 4px 0 0 #c0372b;
}

.certificate-expiration-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 106px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.certificate-expiration-pill.valid {
  border-color: #a8d9bd;
  color: #0d6b42;
  background: #eaf8f0;
}

.certificate-expiration-pill.expired {
  border-color: #f1b5af;
  color: #a62318;
  background: #fff0ef;
}

.certificate-expiration-pill.unknown {
  color: var(--muted);
  background: var(--surface-muted);
}

.mini-table td form {
  margin: 0;
}

.category-posting-row td {
  background: #f6fbf9;
}

.category-posting-row td:first-child {
  box-shadow: inset 4px 0 0 var(--accent);
}

.category-grade-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--muted);
  background: var(--surface-muted);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1;
}

.category-grade-pill.posting {
  color: var(--accent-strong);
  border: 1px solid rgba(28, 34, 38, 0.22);
  background: var(--accent-soft);
}

.mini-table td .category-grade-note {
  margin-top: 5px;
  color: var(--accent-strong);
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
}

/* 6 colunas com spans explicitos: cada campo tem lugar definido e o formulario
   cabe tanto na pagina cheia quanto no painel de edicao (~820px). */
.category-financial-form {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  column-gap: 12px;
  row-gap: 14px;
  align-items: start;
}

.category-financial-form .category-code-field {
  grid-column: span 2;
}

.category-financial-form .category-name-field {
  grid-column: span 3;
}

.category-financial-form .category-grade-field {
  grid-column: span 1;
}

.category-financial-form .category-parent-field,
.category-financial-form .category-dre-field {
  grid-column: span 3;
}

.category-financial-form > .span-4 {
  grid-column: 1 / -1;
}

.category-financial-form .field {
  gap: 5px;
}

.category-financial-form .field > span:first-child {
  font-size: 0.78rem;
}

.category-financial-form .field input,
.category-financial-form .field select {
  min-height: 38px;
  padding: 8px 10px;
}

.category-financial-form .category-grade-field input {
  font-variant-numeric: tabular-nums;
}

.category-financial-form .form-actions {
  grid-column: 1 / -1;
}

.category-accounting-field {
  grid-column: 1 / -1;
  align-self: start;
  position: relative;
}

.accounting-account-combobox .combobox-popup {
  left: 0;
  right: auto;
  width: min(780px, 100%);
  min-width: min(560px, 100%);
  max-width: calc(100vw - 48px);
  box-sizing: border-box;
}

.accounting-account-combobox .combobox-options {
  max-height: min(380px, 48vh);
  overflow-y: auto;
}

.accounting-account-combobox .combobox-option.accounting-account-option {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  align-items: start;
  min-height: 58px;
  padding: 9px 11px;
  border-left: 4px solid transparent;
}

.accounting-account-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.accounting-account-main strong {
  color: var(--text);
  font-size: 0.84rem;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.accounting-account-code {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 7px;
  border-radius: 6px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.76rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.accounting-account-main small,
.accounting-root-pill {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  color: #0f3d4a;
  background: #e0f2fe;
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}

.accounting-account-path {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 780;
  line-height: 1.32;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.accounting-account-hint {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 740;
  line-height: 1.35;
}

.category-accounting-grid-detail {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

/* O seletor com .accounting-account-combobox e necessario para vencer o
   border-left do shorthand em .accounting-account-combobox .combobox-option
   (senao a tarja de natureza fica transparente). */
.accounting-account-option.is-asset,
.accounting-account-combobox .accounting-account-option.is-asset,
.accounting-root-pill.is-asset {
  border-left-color: #2563eb;
}

.accounting-account-option.is-liability,
.accounting-account-combobox .accounting-account-option.is-liability,
.accounting-root-pill.is-liability {
  border-left-color: #a16207;
}

.accounting-account-option.is-revenue,
.accounting-account-combobox .accounting-account-option.is-revenue,
.accounting-root-pill.is-revenue {
  border-left-color: #047857;
}

.accounting-account-option.is-expense,
.accounting-account-combobox .accounting-account-option.is-expense,
.accounting-root-pill.is-expense {
  border-left-color: #b91c1c;
}

.accounting-account-option.is-asset .accounting-account-code,
.accounting-account-option.is-asset .accounting-account-main small,
.accounting-root-pill.is-asset {
  color: #1d4ed8;
  background: #dbeafe;
}

.accounting-account-option.is-liability .accounting-account-code,
.accounting-account-option.is-liability .accounting-account-main small,
.accounting-root-pill.is-liability {
  color: #854d0e;
  background: #fef3c7;
}

.accounting-account-option.is-revenue .accounting-account-code,
.accounting-account-option.is-revenue .accounting-account-main small,
.accounting-root-pill.is-revenue {
  color: #065f46;
  background: #d1fae5;
}

.accounting-account-option.is-expense .accounting-account-code,
.accounting-account-option.is-expense .accounting-account-main small,
.accounting-root-pill.is-expense {
  color: #991b1b;
  background: #fee2e2;
}

@media (max-width: 980px) {
  /* Seletor composto para vencer o generico .form-grid { 1fr } declarado mais
     adiante no MESMO breakpoint (mesma convencao de .form-grid.contract-panel-form). */
  .form-grid.category-financial-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .category-financial-form .category-code-field,
  .category-financial-form .category-name-field,
  .category-financial-form .category-grade-field,
  .category-financial-form .category-parent-field,
  .category-financial-form .category-dre-field {
    grid-column: auto;
  }

  .category-financial-form .category-accounting-field,
  .category-financial-form .form-actions,
  .category-financial-form > .span-4 {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .form-grid.category-financial-form {
    grid-template-columns: 1fr;
  }

  .accounting-account-main {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .accounting-account-main small {
    grid-column: 2;
  }
}

.compact-mini-table {
  min-width: 520px;
}

.socios-table {
  min-width: 880px;
}

.socios-table-wrap {
  border: 1px solid var(--line);
  border-radius: 10px;
}

.socios-table th,
.socios-table td {
  padding-inline: 9px;
}

.socios-table tbody tr:last-child td {
  border-bottom: 0;
}

.socio-name-cell {
  display: grid;
  min-width: 150px;
}

.socio-name-cell strong {
  overflow-wrap: anywhere;
}

.socio-capital-cell {
  display: grid;
  gap: 2px;
  min-width: 92px;
}

.socio-capital-cell small {
  color: var(--muted);
  font-size: 0.72rem;
  white-space: nowrap;
}

.socio-billing-radio {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 800;
  white-space: nowrap;
}

.socio-status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.2;
  white-space: nowrap;
}

.socio-status.is-saved {
  color: #166534;
  background: #ecfdf3;
  border-color: #bbf7d0;
}

.socio-status.is-pending {
  color: #8a4b0f;
  background: #fff7e6;
  border-color: #f6d39a;
}

.socio-row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.socio-row-action {
  appearance: none;
  padding: 0;
  border: 0;
  color: var(--accent-strong);
  background: transparent;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 800;
  cursor: pointer;
}

.socio-row-action:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.socio-row-action:focus-visible {
  border-radius: 3px;
  outline: 3px solid var(--brand-blue-ring);
  outline-offset: 2px;
}

.socio-row-action.is-danger {
  color: var(--danger);
}

.socio-no-actions {
  color: var(--muted);
}

.socios-save-hint {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

@media (max-width: 760px) {
  .socios-entry-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .socios-entry-actions > :only-child,
  .socios-entry-actions > [hidden] + .socios-add-button {
    grid-column: 1 / -1;
  }

  .socios-entry-actions .btn-secondary-app {
    width: 100%;
    min-width: 0;
  }

  .socios-table-wrap {
    overflow: visible;
    border: 0;
  }

  .socios-table,
  .socios-table tbody,
  .socios-table tr,
  .socios-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .socios-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .socios-table tbody {
    display: grid;
    gap: 10px;
  }

  .socios-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
  }

  .socios-table tbody td {
    display: grid;
    align-content: start;
    gap: 3px;
    padding: 0;
    border: 0;
    overflow-wrap: anywhere;
  }

  .socios-table tbody td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.03em;
    text-transform: uppercase;
  }

  .socios-table tbody td:first-child,
  .socios-table tbody td:last-child {
    grid-column: 1 / -1;
  }

  .socios-table tbody tr[data-socio-empty-row] {
    display: block;
  }

  .socios-table tbody tr[data-socio-empty-row] td::before {
    content: none;
  }

  .socio-row-actions {
    white-space: normal;
  }
}

.empty-table-cell {
  color: var(--muted);
  background: var(--surface-muted);
  font-weight: 700;
}

.pagination-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 14px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 700;
}

.pagination-anchor-target {
  scroll-margin-top: 18px;
}

.pagination-bar-top {
  justify-content: flex-end;
  margin-top: 0;
  margin-bottom: 8px;
}

.control-delivery-tabs + .pagination-bar-top {
  margin-top: 12px;
}

.pagination-bar-actions-only {
  justify-content: flex-end;
}

.pagination-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.pagination-actions strong {
  color: var(--text);
  font-size: 0.88rem;
}

.pagination-current {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 7px;
  color: var(--muted);
  background: rgba(248, 250, 252, 0.82);
  font-size: 0.84rem;
  font-weight: 800;
  white-space: nowrap;
}

.period-grid-layout {
  display: grid;
  grid-template-columns: minmax(360px, 0.9fr) minmax(360px, 1fr);
  gap: 18px;
  align-items: start;
}

.fiscal-period-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fiscal-regime-table .actions-cell {
  width: 1%;
  white-space: nowrap;
}

.inline-grid-panel {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.inline-grid-panel[data-contract-ranges-enabled="false"] {
  background: var(--surface-muted);
}

.inline-grid-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.inline-grid-title {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.inline-grid-header strong {
  font-size: 0.9rem;
}

.inline-grid-header span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.additional-due-input {
  width: 150px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-weight: 700;
}

.additional-due-input:focus {
  border-color: var(--accent);
  outline: 3px solid color-mix(in srgb, var(--accent), transparent 78%);
  outline-offset: 1px;
}

.contract-range-toggle {
  flex: 0 0 auto;
  color: var(--text);
}

.contract-ranges-body {
  display: grid;
  gap: 10px;
}

.contract-ranges-body[hidden] {
  display: none;
}

.contract-range-base-value {
  max-width: 360px;
}

.contract-range-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) 80px;
  gap: 10px;
  align-items: start;
}

.contract-range-rows {
  display: grid;
  gap: 10px;
}

.contract-range-header {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.contract-range-add {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.range-row-actions {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 7px;
  min-height: 66px;
}

.contract-range-remove[hidden] {
  display: none;
}

.contracts-table {
  min-width: 1120px;
}

.contract-change-panel {
  scroll-margin-top: 18px;
}

.contract-change-form {
  align-items: start;
}

.contract-change-wrap {
  border: 1px solid var(--line);
  border-radius: 8px;
}

.contract-change-table {
  min-width: 860px;
}

.contract-change-table th:first-child,
.contract-change-table td:first-child {
  width: 98px;
}

.contract-change-table td:nth-child(3) {
  color: var(--muted);
  font-weight: 800;
  white-space: nowrap;
}

.contract-change-table input:not([type="checkbox"]),
.contract-change-table select {
  width: 100%;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-weight: 800;
}

.change-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  color: var(--text);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.change-check input {
  width: 15px;
  height: 15px;
  accent-color: var(--accent);
}

.contract-change-action {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.contract-change-history {
  margin-top: 12px;
}

.contract-change-history .history-action-cell {
  width: 1%;
  white-space: nowrap;
}

.contract-change-history tr.is-editing {
  background: var(--accent-soft);
}

.contract-change-field-list {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.contract-change-field-list li {
  display: grid;
  gap: 2px;
}

.contract-change-field-list span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
}

.contract-change-field-list strong {
  font-size: 0.82rem;
}

.contract-account-cell {
  max-width: 240px;
}

.empty-grid-row {
  padding: 16px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
  background: var(--surface-muted);
  font-weight: 700;
}

.switch-field {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
}

/* O seletor .field input estica qualquer input descendente (width 100% + 40px de
   altura); o checkbox do switch precisa voltar ao tamanho de controle. */
.switch-field input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  border-radius: 4px;
}

.due-day-field {
  align-self: start;
}

.due-day-options {
  display: flex;
  align-items: center;
  gap: 10px 16px;
  flex-wrap: wrap;
  min-height: 30px;
  margin-top: 0;
}

.compact-switch {
  gap: 7px;
  min-height: 22px;
  white-space: nowrap;
}

.compact-switch input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  padding: 0;
}

.toggle-field {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 48px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.toggle-field input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.toggle-track {
  position: relative;
  flex: 0 0 46px;
  width: 46px;
  height: 26px;
  border-radius: 999px;
  background: #d7dee8;
  transition: background 0.16s ease;
}

.toggle-track::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 6px rgba(17, 24, 39, 0.2);
  transition: transform 0.16s ease;
}

.toggle-field input:checked + .toggle-track {
  background: var(--accent);
}

.toggle-field input:checked + .toggle-track::after {
  transform: translateX(20px);
}

.toggle-field input:focus-visible + .toggle-track {
  outline: 3px solid rgba(28, 34, 38, 0.18);
  outline-offset: 2px;
}

.toggle-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.toggle-copy strong {
  color: var(--text);
  font-size: 0.9rem;
}

.toggle-copy small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.table-panel {
  margin-top: 22px;
}

.responsive-table {
  overflow-x: auto;
  margin-top: 18px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 860px;
}

.data-table th,
.data-table td {
  padding: 14px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.data-table th {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.data-table td strong,
.data-table td span,
.data-table td small {
  display: block;
}

.data-table td small {
  margin-top: 4px;
  color: var(--muted);
}

.entity-certificate-summary {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  column-gap: 7px;
  align-items: center;
  max-width: 340px;
  margin-top: 8px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
}

.entity-certificate-summary svg {
  width: 15px;
  height: 15px;
  color: var(--accent-strong);
}

.data-table td .entity-certificate-summary span,
.data-table td .entity-certificate-summary small {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.data-table td .entity-certificate-summary span {
  color: var(--text);
  font-size: 0.63rem;
  font-weight: 850;
}

.data-table td .entity-certificate-summary small {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.entity-certificate-summary.expired {
  border-color: #f1b5af;
  background: #fff0ef;
}

.entity-certificate-summary.expired svg,
.data-table td .entity-certificate-summary.expired span,
.data-table td .entity-certificate-summary.expired small {
  color: #a62318;
}

/* Lista de Entidades: um e-mail longo (token sem espaco) pina a largura minima
   de Contato e empurra Acoes para fora do wrapper, com a rolagem horizontal
   invisivel no fim da lista — mesmo comportamento em Chrome e Firefox. O small
   quebra em emergencia e Acoes permanece fixa no lado direito. */
.entity-list-table td small {
  overflow-wrap: anywhere;
}

.entity-list-table .actions-cell {
  position: sticky;
  right: 0;
  z-index: 2;
  background: #fff;
}

.entity-list-table th.actions-cell {
  z-index: 3;
}

/* Menu de acoes por linha (mesmo padrao receive-row-actions do Receber/Pagar):
   a celula sticky cria stacking context proprio, entao com o menu aberto ela
   precisa subir acima do header sticky (z-index 3) e das celulas sticky das
   linhas seguintes — mesma regra ja aplicada na .receive-table. */
.entity-list-table .actions-cell:has(.receive-actions.is-open) {
  z-index: 1300;
}

/* Realce da linha dona do menu aberto. Tinta OPACA de proposito: a celula de
   acoes e sticky e o conteudo rola por baixo dela. */
.entity-list-table tbody tr:has(.receive-actions.is-open) > td {
  background: color-mix(in srgb, var(--accent-soft), #fff 55%);
}

.tag-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  padding: 1px 8px 0;
  border-radius: 999px;
  color: #23505b;
  background: #e3eef3;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.data-table td .tag {
  display: inline-flex;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.data-table td .status-pill {
  display: inline-flex;
}

.status-pill.active {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.status-pill.inactive {
  color: #7e4a0f;
  background: #f5e3c4;
}

.status-pill.warning {
  color: #7a4f05;
  background: #fff1c7;
}

.status-pill.pending {
  color: #28506f;
  background: #e5f0f8;
}

.status-pill.provisioned {
  width: 72px;
  min-width: 72px;
  min-height: 42px;
  padding: 0;
  border: 1px solid rgba(170, 75, 20, 0.22);
  border-radius: 8px;
  color: rgba(128, 56, 16, 0.42);
  background: rgba(190, 92, 28, 0.08);
  font-size: 1.48rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: 0;
}

.panel-month-form {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.compact-month-field {
  min-width: 160px;
}

.obligation-panel-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.obligation-panel-summary article {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.obligation-panel-summary span,
.obligation-panel-summary strong {
  display: block;
}

.obligation-panel-summary span {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.obligation-panel-summary strong {
  margin-top: 4px;
  color: var(--text);
  font-size: 1.35rem;
  font-weight: 900;
}

.obligation-calendar-shell {
  margin-top: 14px;
}

.obligation-calendar-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  margin-bottom: 8px;
}

.obligation-calendar-heading strong {
  color: var(--text);
  font-size: 1rem;
  font-weight: 900;
}

.obligation-calendar-weekdays,
.obligation-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.obligation-calendar-weekdays {
  gap: 6px;
  margin-bottom: 6px;
}

.obligation-calendar-weekdays span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-align: center;
  text-transform: uppercase;
}

.obligation-calendar-grid {
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

.obligation-day {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  min-height: 110px;
  padding: 10px;
  border: 0;
  color: var(--text);
  background: #fff;
  font: inherit;
  text-align: left;
}

.obligation-day:not(:disabled) {
  cursor: pointer;
}

.obligation-day:disabled {
  color: #98a2b3;
  background: #f7f9fc;
}

.obligation-day.muted {
  color: #98a2b3;
  background: #f8fafc;
}

.obligation-day.has-items {
  color: var(--text);
  background: #fff;
}

.obligation-day.has-items:hover,
.obligation-day.selected {
  background: var(--accent-soft);
  box-shadow: inset 0 0 0 2px rgba(28, 34, 38, 0.24);
}

.obligation-day.today {
  color: var(--text);
  background: linear-gradient(145deg, #fff 0%, var(--accent-warm-soft) 100%);
  box-shadow:
    inset 0 0 0 3px var(--accent-warm),
    0 0 0 1px rgba(14, 124, 123, 0.12);
}

.obligation-day.today .obligation-day-number {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin: -3px 0 0 -3px;
  border-radius: 999px;
  color: #fff;
  background: var(--accent-warm);
  box-shadow: 0 0 0 4px rgba(14, 124, 123, 0.14);
}

.obligation-day-number {
  font-size: 0.9rem;
  font-weight: 900;
}

.obligation-day-items {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.obligation-day-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 5px;
  min-width: 0;
  min-height: 22px;
  padding: 3px 6px;
  border-left: 3px solid rgba(28, 34, 38, 0.34);
  border-radius: 6px;
  color: var(--accent-strong);
  background: rgba(28, 34, 38, 0.07);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.12;
}

.obligation-day-item > span {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.obligation-day-item strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  color: #fff;
  background: var(--accent-strong);
  font-size: 0.66rem;
  font-weight: 900;
}

.obligation-day-item.pending {
  border-left-color: #2f6fb8;
  color: #28506f;
  background: #e5f0f8;
}

.obligation-day-item.pending strong {
  background: #2f6fb8;
}

.obligation-day-item.done {
  border-left-color: var(--success);
  color: var(--success-strong);
  background: var(--success-soft);
}

.obligation-day-item.done strong {
  background: var(--success);
}

.obligation-day-more {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
}

.obligation-day-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: start;
  min-width: 28px;
  height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: #fff;
  font-size: 0.78rem;
  font-weight: 900;
  box-shadow: inset 0 0 0 1px rgba(28, 34, 38, 0.16);
}

.obligation-day-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}

.obligation-day-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 900;
}

.obligation-day-status.pending {
  color: #28506f;
  background: #e5f0f8;
}

.obligation-day-status.catalog {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.obligation-day-status.done {
  color: var(--success-strong);
  background: var(--success-soft);
}

.obligation-day-panels {
  margin-top: 16px;
}

.obligation-day-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.obligation-day-panel[hidden] {
  display: none;
}

.obligation-day-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
}

.obligation-day-panel-header span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.obligation-day-panel-header strong {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 900;
}

.obligation-status-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.obligation-status-column {
  min-width: 0;
  padding: 14px;
  background: #fff;
}

.obligation-status-column h3 {
  margin: 0 0 10px;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 900;
}

.obligation-status-column p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 750;
}

.obligation-client-item {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 10px 0;
  border-top: 1px solid rgba(216, 222, 230, 0.72);
}

.obligation-client-item:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.obligation-client-item strong,
.obligation-client-item small {
  overflow: hidden;
  text-overflow: ellipsis;
}

.obligation-client-item strong {
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 850;
}

.obligation-client-item small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 750;
}

.status-pill.catalog {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.reports-grid {
  align-items: stretch;
}

/* Somente o relatorio de clientes (content-full): os cards de papel se
   reorganizam pela largura; as demais telas de relatorio mantem as 3 colunas.
   min(360px, 100%) porque esta regra (0,2,0) vence a media query mobile do
   .module-grid — sem o min() o track de 360px transbordaria em <=380px. */
.reports-grid.report-clients-roles {
  grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
}

.reports-grid .module-card {
  display: flex;
  min-height: 0;
  min-width: 0;
  flex-direction: column;
  gap: 10px;
}

.reports-grid .mini-table-wrap {
  width: 100%;
  margin-top: 4px;
}

.report-filter-bar {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
}

.report-filter-bar .form-actions {
  align-self: end;
}

/* Contrato multiselect: alinhar altura/peso da fonte aos selects vizinhos e ampliar o painel */
.report-contract-filter .client-picker-trigger {
  min-height: 44px;
  height: 44px;
  padding: 9px 11px;
  font-size: 0.9rem;
  font-weight: 400;
}

.report-contract-filter .client-picker-trigger span[data-client-filter-summary] {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.report-contract-filter .client-picker-panel {
  right: auto;
  min-width: 380px;
}

.report-contract-filter .client-picker-options {
  max-height: 340px;
}

.report-contract-filter .client-picker-option {
  min-height: 34px;
  padding: 7px 10px;
  align-items: start;
}

/* Impede que a regra global `.field input` estilize os checkboxes como campo de texto
   (min-height:40px/borda/padding), o que desalinhava a caixinha em relacao ao texto */
.report-contract-filter .client-picker-all input[type="checkbox"],
.report-contract-filter .client-picker-option input[type="checkbox"] {
  width: auto;
  min-height: 0;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}

.report-contract-filter .client-picker-option input[type="checkbox"] {
  margin-top: 1px;
}

/* Mostrar o nome completo do contrato: fonte menor e quebra de linha em vez de reticencias */
.report-contract-filter .client-picker-option strong {
  font-size: 0.8rem;
  font-weight: 500;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.3;
}

.report-finance-filter-shell {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(99, 113, 139, 0.2);
}

.report-finance-owner-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
}

.report-finance-owner-field {
  width: min(100%, 440px);
}

.receivable-filter-bar.report-finance-filter-bar {
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  grid-template-areas: none;
  gap: 12px;
  align-items: end;
  margin-top: 14px;
}

.report-finance-filter-bar .report-mode-picker-field,
.report-finance-filter-bar .report-finance-period-field {
  grid-area: auto;
  min-width: 0;
}

.report-finance-filter-bar .report-mode-picker {
  width: 100%;
  min-width: 0;
}

.report-finance-filter-bar .report-mode-picker-trigger {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr) 1.1rem;
  gap: 0.65rem;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.report-finance-filter-bar .report-mode-picker-trigger:hover,
.report-finance-filter-bar .report-mode-picker-trigger:focus-visible,
.report-finance-filter-bar .report-mode-picker-trigger[aria-expanded="true"] {
  border-color: rgba(28, 34, 38, 0.34);
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.09);
  outline: none;
}

.report-finance-filter-bar .report-mode-picker-current-title {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.report-finance-filter-bar .report-mode-picker-trigger,
.report-finance-filter-bar .receivable-period-trigger {
  height: 44px;
  min-height: 44px;
}

.report-finance-filter-actions {
  display: flex;
  align-items: end;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: nowrap;
  min-width: max-content;
}

.report-finance-filter-actions .btn-primary-app,
.report-finance-filter-actions .btn-secondary-app {
  min-height: 44px;
  padding-inline: 18px;
  white-space: nowrap;
}

@media (max-width: 880px) {
  .report-finance-owner-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .receivable-filter-bar.report-finance-filter-bar {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }

  .report-finance-owner-field {
    width: 100%;
  }

  .report-finance-filter-actions {
    width: 100%;
    min-width: 0;
  }

  .report-finance-filter-actions .btn-primary-app,
  .report-finance-filter-actions .btn-secondary-app {
    flex: 1 1 0;
    justify-content: center;
    min-width: 0;
  }
}

.receivable-filter-bar.report-sales-stock-filter-bar {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-areas: none;
  gap: 12px;
  align-items: end;
  margin-top: 14px;
}

.report-sales-stock-filter-bar .field,
.report-sales-stock-filter-bar .form-actions {
  grid-area: auto;
  min-width: 0;
}

.report-sales-stock-filter-bar .report-sales-stock-filter-wide {
  grid-column: span 4;
}

.report-sales-stock-filter-bar .report-sales-stock-filter-medium {
  grid-column: span 3;
}

.report-sales-stock-filter-bar .report-sales-stock-filter-compact {
  grid-column: span 2;
}

.report-sales-stock-filter-bar .report-sales-stock-filter-actions {
  grid-column: span 3;
  display: flex;
  align-items: end;
  gap: 8px;
  min-width: max-content;
}

.report-sales-stock-filter-bar .receivable-period-trigger,
.report-sales-stock-filter-bar .btn-primary-app,
.report-sales-stock-filter-bar .btn-secondary-app {
  min-height: 44px;
}

.report-sales-stock-filter-bar .report-sales-stock-filter-actions .btn-primary-app,
.report-sales-stock-filter-bar .report-sales-stock-filter-actions .btn-secondary-app {
  flex: 1 1 0;
  justify-content: center;
  min-width: 0;
  white-space: nowrap;
}

.report-sales-stock-result {
  min-width: 0;
}

.report-print-stack.report-sales-stock-result {
  grid-template-columns: minmax(0, 1fr);
}

.report-print-stack.report-sales-stock-result > * {
  min-width: 0;
}

.report-sales-stock-table {
  min-width: 860px;
}

.report-sales-stock-table.is-wide {
  min-width: 1080px;
}

.report-sales-stock-table th:not(:first-child),
.report-sales-stock-table td:not(:first-child) {
  white-space: nowrap;
}

.report-sales-stock-table td:first-child strong,
.report-sales-stock-table td:first-child small {
  max-width: 360px;
  overflow-wrap: anywhere;
  white-space: normal;
}

.report-sales-stock-value {
  font-variant-numeric: tabular-nums;
}

.report-sales-stock-value.is-positive {
  color: var(--success-strong);
}

.report-sales-stock-value.is-negative,
.report-sales-stock-row-critical td {
  color: var(--danger);
}

.report-sales-stock-row-critical td {
  background: #fff5f5;
}

.report-sales-stock-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.report-sales-stock-toolbar > div {
  min-width: 0;
}

.report-sales-stock-toolbar h3,
.report-sales-stock-toolbar p {
  margin: 0;
}

.report-sales-stock-toolbar p {
  margin-top: 4px;
  color: var(--muted);
}

.report-sales-stock-kardex-header {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

@media (max-width: 1160px) {
  .report-sales-stock-filter-bar .report-sales-stock-filter-wide {
    grid-column: span 6;
  }

  .report-sales-stock-filter-bar .report-sales-stock-filter-medium,
  .report-sales-stock-filter-bar .report-sales-stock-filter-compact,
  .report-sales-stock-filter-bar .report-sales-stock-filter-actions {
    grid-column: span 3;
  }
}

@media (max-width: 760px) {
  .receivable-filter-bar.report-sales-stock-filter-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .report-sales-stock-filter-bar .report-sales-stock-filter-wide,
  .report-sales-stock-filter-bar .report-sales-stock-filter-medium,
  .report-sales-stock-filter-bar .report-sales-stock-filter-compact,
  .report-sales-stock-filter-bar .report-sales-stock-filter-actions {
    grid-column: 1;
  }

  .report-sales-stock-filter-bar .report-sales-stock-filter-actions {
    width: 100%;
    min-width: 0;
  }

  .report-sales-stock-toolbar {
    display: grid;
  }
}

/* Cobrancas adicionais: cliente cadastrado ou snapshot de pagador avulso. */
.additional-client-mode {
  width: min(440px, 100%);
}

.additional-client-help {
  align-items: center;
  grid-template-columns: auto minmax(0, 1fr);
}

.additional-client-help svg {
  width: 18px;
  height: 18px;
}

.additional-form-section {
  display: grid;
  gap: 3px;
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.additional-form-section strong {
  color: var(--text);
  font-size: 0.9rem;
}

.additional-form-section small,
.additional-charge-drawer-footer .app-drawer-footer-copy {
  color: var(--muted);
  font-size: 0.76rem;
}

.additional-charge-drawer-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.additional-charge-drawer-footer .app-drawer-footer-copy {
  max-width: 360px;
  line-height: 1.35;
}

@media (max-width: 720px) {
  .additional-charge-drawer-footer {
    display: grid;
  }

  .additional-charge-drawer-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .additional-charge-drawer-actions > button {
    width: 100%;
  }
}

.report-selector {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 12px;
  margin-top: 22px;
}

.report-selector-item {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  text-decoration: none;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.report-selector-item:hover,
.report-selector-item:focus-visible {
  color: var(--text);
  border-color: color-mix(in srgb, var(--accent), var(--line) 35%);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.1);
  transform: translateY(-1px);
}

.report-selector-item.is-active {
  border-color: color-mix(in srgb, var(--accent), #ffffff 20%);
  box-shadow: inset 4px 0 0 var(--accent), 0 12px 28px rgba(15, 23, 42, 0.1);
}

.report-selector-item svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  color: var(--accent);
}

.report-selector-item span,
.report-selector-item strong,
.report-selector-item small {
  display: block;
  min-width: 0;
}

.report-selector-item strong {
  font-size: 0.92rem;
  font-weight: 850;
}

.report-selector-item small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.report-selector-state {
  display: inline-flex;
  width: fit-content;
  margin-top: 8px;
  padding: 3px 7px;
  border-radius: 999px;
  color: var(--accent);
  background: color-mix(in srgb, var(--accent), #ffffff 88%);
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 850;
  text-transform: uppercase;
}

.report-selection-empty {
  display: flex;
  align-items: center;
  gap: 16px;
}

.report-selection-empty > svg,
.report-selection-empty > i {
  width: 34px;
  height: 34px;
  color: var(--accent);
  flex: 0 0 auto;
}

.report-module-card {
  overflow: hidden;
}

.report-print-stack {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  min-width: 0;
}

.report-print-stack > * {
  min-width: 0;
}

.report-document-header {
  padding-top: 22px;
  padding-bottom: 22px;
}

.report-document-header h2 {
  margin: 4px 0 6px;
  font-size: 1.35rem;
}

.report-document-header p:last-child {
  margin-bottom: 0;
}

.report-bars {
  display: grid;
  gap: 10px;
}

.report-bar-item {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.report-bar-item span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.report-bar-track {
  height: 17px;
  overflow: hidden;
  border: 1px solid #d8dee6;
  border-radius: 3px;
  background: #edf2f7;
}

.report-bar-fill {
  height: 100%;
  min-width: 0;
}

.report-bar-fill.income {
  background: #2f6fb8;
}

.report-bar-fill.expense {
  background: #cf4d45;
}

.report-bar-fill.warning {
  background: #df8f24;
}

.report-warning-row td {
  color: #a4332d;
  background: #fff0f0;
}

.report-note {
  margin: 0;
}

.report-card-number {
  display: block;
  margin-top: auto;
  color: var(--text);
  font-size: 1.4rem;
}

.report-total-row td {
  background: #f7fafc;
  font-weight: 850;
}

.compact-empty-state {
  padding: 22px 12px;
}

.bulk-hidden-form {
  display: none;
}

.bulk-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 18px 0 12px;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  background: #f6fbf9;
}

.bulk-action-bar.is-submitting {
  border-color: rgba(28, 34, 38, 0.34);
  background: #eef8f5;
}

.bulk-action-bar .actions-row {
  align-items: center;
  justify-content: flex-end;
  margin-top: 0;
}

.bulk-action-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.bulk-action-copy strong {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 850;
}

.bulk-action-copy span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 750;
}

.bulk-delete-submit:not(:disabled) {
  color: var(--danger);
  border-color: rgba(224, 49, 49, 0.3);
}

.bulk-delete-submit:not(:disabled):hover {
  color: #fff;
  background: var(--danger);
  border-color: var(--danger);
}

.bulk-download-submit:not(:disabled) {
  color: #087c5c;
  border-color: rgba(8, 124, 92, 0.3);
  background: #f2fbf7;
}

.bulk-download-submit:not(:disabled):hover {
  color: #fff;
  background: #087c5c;
  border-color: #087c5c;
}

.receivable-bulk-layout {
  display: grid;
  grid-template-columns: minmax(340px, 0.9fr) minmax(540px, 1.35fr);
  align-items: stretch;
  gap: 10px;
  padding: 10px;
  background: #f8fafc;
}

.receivable-bulk-scope {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #d8e0eb;
  border-radius: 8px;
  background: #fff;
}

.receivable-bulk-download-scope {
  border-color: rgba(8, 124, 92, 0.24);
  background: linear-gradient(135deg, #f2fbf7 0%, #f8fcfa 100%);
}

.receivable-bulk-icon {
  display: inline-flex;
  flex: 0 0 38px;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  color: #087c5c;
  border: 1px solid rgba(8, 124, 92, 0.2);
  border-radius: 9px;
  background: #fff;
}

.receivable-bulk-icon svg {
  width: 19px;
  height: 19px;
}

.receivable-bulk-copy {
  display: grid;
  flex: 1 1 auto;
  gap: 2px;
  min-width: 0;
}

.receivable-bulk-copy strong {
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 850;
}

.receivable-bulk-copy > span:last-child {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 650;
  line-height: 1.35;
}

.receivable-bulk-kicker {
  color: #087c5c;
  font-size: 0.69rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.receivable-bulk-page-scope .receivable-bulk-kicker {
  color: var(--primary);
}

.receivable-bulk-download-actions {
  display: grid;
  flex: 0 0 204px;
  gap: 6px;
  width: 204px;
  max-width: 100%;
}

.receivable-bulk-download-scope .bulk-download-submit {
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 36px;
  padding-inline: 10px;
  gap: 6px;
  font-size: 0.82rem;
  white-space: nowrap;
}

.receivable-bulk-download-scope .bulk-download-submit svg {
  width: 15px;
  height: 15px;
  flex-basis: 15px;
}

.receivable-bulk-download-selection-hint {
  display: block;
  color: #8a5a0a;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.35;
}

.receivable-bulk-download-selection-hint[hidden] {
  display: none;
}

.receivable-bulk-page-scope {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  align-items: stretch;
  gap: 10px;
}

.receivable-bulk-page-scope .bulk-action-copy {
  width: 100%;
}

.receivable-bulk-page-tools {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
}

.receivable-bulk-page-tools > button,
.receivable-bulk-select-menu > summary {
  min-height: 40px;
  white-space: nowrap;
}

.receivable-bulk-select-menu {
  position: relative;
  flex: 0 0 auto;
}

.receivable-bulk-select-menu > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.receivable-bulk-select-menu > summary::-webkit-details-marker {
  display: none;
}

.receivable-bulk-menu-chevron {
  width: 15px;
  height: 15px;
  margin-left: 2px;
  transition: transform 0.16s ease;
}

.receivable-bulk-select-menu[open] .receivable-bulk-menu-chevron {
  transform: rotate(180deg);
}

.receivable-bulk-select-menu-panel {
  position: absolute;
  z-index: 35;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  gap: 4px;
  width: min(310px, calc(100vw - 40px));
  padding: 7px;
  border: 1px solid #d7dfeb;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(15, 31, 64, 0.16);
}

.receivable-bulk-select-menu-panel button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 10px;
  color: var(--text);
  border: 0;
  border-radius: 7px;
  background: transparent;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}

.receivable-bulk-select-menu-panel button:hover:not(:disabled) {
  color: var(--primary);
  background: #f0f4ff;
}

.receivable-bulk-select-menu-panel button:disabled {
  color: #9aa6b8;
  cursor: not-allowed;
}

.receivable-bulk-select-menu-panel button span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.receivable-bulk-select-menu-panel button svg {
  width: 16px;
  height: 16px;
}

.receivable-bulk-select-menu-panel button strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 24px;
  padding: 0 6px;
  border-radius: 999px;
  background: #edf1f7;
  font-size: 0.73rem;
}

.receivable-bulk-divider {
  align-self: stretch;
  width: 1px;
  min-height: 26px;
  background: #dbe2ec;
}

.receivable-bulk-clear:disabled {
  display: none;
}

@media (max-width: 1320px) {
  .receivable-bulk-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .receivable-bulk-scope,
  .receivable-bulk-page-scope {
    align-items: stretch;
    flex-direction: column;
  }

  .receivable-bulk-download-scope .bulk-download-submit,
  .receivable-bulk-download-actions,
  .receivable-bulk-page-tools,
  .receivable-bulk-page-tools > button,
  .receivable-bulk-select-menu,
  .receivable-bulk-select-menu > summary {
    width: 100%;
  }

  .receivable-bulk-download-actions {
    flex: 0 0 auto;
  }

  .receivable-bulk-download-scope .bulk-download-submit {
    min-height: 40px;
    font-size: 0.84rem;
  }

  .receivable-bulk-page-tools {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .receivable-bulk-select-menu,
  .receivable-bulk-clear {
    grid-column: 1 / -1;
  }

  .receivable-bulk-select-menu > summary,
  .receivable-bulk-page-tools > button {
    justify-content: center;
  }

  .receivable-bulk-divider {
    display: none;
  }
}

.selection-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin: 0;
  border-radius: 8px;
  cursor: pointer;
}

.selection-check input {
  width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  accent-color: var(--accent);
  cursor: pointer;
}

.selection-check:hover,
.selection-check:focus-within {
  background: var(--accent-soft);
}

.selection-check.disabled {
  cursor: help;
  opacity: 0.42;
}

.selection-check.disabled input {
  cursor: not-allowed;
}

.receive-table {
  min-width: 1180px;
}

.receive-table .receivable-category-header,
.receive-table .receivable-category-cell {
  width: 13%;
  min-width: 0;
  overflow-wrap: anywhere;
}

.receive-table .receivable-charge-type-header,
.receive-table .receivable-charge-type-cell {
  width: 112px;
  min-width: 104px;
}

.receivable-charge-badge {
  display: inline-flex;
  align-items: center;
  margin: 1px 3px 1px 0;
  padding: 2px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f1f5f4;
  color: var(--text);
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1.3;
  white-space: nowrap;
}

.receivable-charge-badge.is-fixo {
  background: #e8eef7;
  border-color: #c9d8ef;
  color: #274b8f;
}

.receivable-charge-badge.is-faturamento {
  background: #f7f0dd;
  border-color: #e6d7b2;
  color: #7c5c14;
}

.receivable-charge-badge.is-pessoas {
  background: #e7f2ec;
  border-color: #c6e2d3;
  color: #1d6b4a;
}

.receivable-charge-badge.is-sem-contrato {
  background: #f2f4f4;
  border-color: #e0e5e4;
  color: var(--muted);
}

.receive-table.receivable-category-table .actions-cell {
  width: 132px;
  min-width: 132px;
  max-width: 132px;
}

/* Receber: hierarquia compacta sem alterar Pagar nem outras mini-tabelas. */
.receive-table.receivable-category-table thead th {
  padding-top: 7px;
  padding-bottom: 7px;
  border-bottom: 2px solid color-mix(in srgb, var(--line), var(--text) 44%);
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.2;
}

.receive-table.receivable-category-table thead .receive-column-filter-trigger {
  min-height: 26px;
  padding: 3px 4px;
  gap: 5px;
}

.receive-table.receivable-category-table tbody tr[data-receivable-row] > td {
  padding-top: 8px;
  padding-bottom: 8px;
}

.receive-table.receivable-category-table tbody tr[data-receivable-row] > td > strong,
.receive-table.receivable-category-table tbody tr[data-receivable-row] > td > .quick-category-trigger {
  font-size: 0.72rem;
  line-height: 1.35;
}

.receive-table.receivable-category-table tbody tr[data-receivable-row] > td > small {
  font-size: 0.68rem;
  line-height: 1.3;
}

.receive-table.receivable-category-table .receivable-origin-document-link {
  display: inline-flex;
  align-items: flex-start;
  gap: 5px;
  max-width: 100%;
  color: inherit;
  text-decoration: none;
}

.receive-table.receivable-category-table .receivable-origin-document-link > strong {
  min-width: 0;
  font-size: 0.72rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.receive-table.receivable-category-table .receivable-origin-document-link > svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  margin-top: 1px;
  color: var(--accent-strong);
}

.receive-table.receivable-category-table .receivable-origin-document-link:hover > strong,
.receive-table.receivable-category-table .receivable-origin-document-link:focus-visible > strong {
  color: var(--accent-strong);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.receive-table.receivable-category-table .receivable-origin-document-link:focus-visible {
  border-radius: 3px;
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.receive-table.receivable-category-table tbody tr[data-receivable-row] > td.receivable-origin-cell > small.receivable-origin-summary {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.56rem;
  font-weight: 700;
  line-height: 1.2;
  overflow-wrap: anywhere;
  white-space: normal;
  font-variant-numeric: tabular-nums;
}

.receive-table.receivable-category-table tbody tr[data-receivable-row] > td.receivable-origin-cell > small.receivable-origin-summary > span {
  display: block;
}

.receive-table.receivable-category-table tbody tr[data-receivable-row] > td > .quick-category-trigger {
  min-height: 26px;
  padding: 3px 5px;
  gap: 5px;
}

.receive-table th {
  position: relative;
}

.receive-table .receive-date-header {
  min-width: 128px;
  width: 128px;
}

.payable-table {
  min-width: 1180px;
}

/* Pagar: mesma densidade tipografica do grid de Receber. */
.receive-table.payable-table thead th {
  padding-top: 7px;
  padding-bottom: 7px;
  border-bottom: 2px solid color-mix(in srgb, var(--line), var(--text) 44%);
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.2;
}

.receive-table.payable-table thead .receive-column-filter-trigger {
  min-height: 26px;
  padding: 3px 4px;
  gap: 5px;
}

.receive-table.payable-table tbody tr[data-column-filter-row] > td {
  padding-top: 8px;
  padding-bottom: 8px;
}

.receive-table.payable-table tbody tr[data-column-filter-row] > td > strong,
.receive-table.payable-table tbody tr[data-column-filter-row] > td > .quick-category-trigger {
  font-size: 0.72rem;
  line-height: 1.35;
}

.receive-table.payable-table tbody tr[data-column-filter-row] > td > small {
  font-size: 0.68rem;
  line-height: 1.3;
}

.payable-table .posting-id-header,
.payable-table .posting-id-cell {
  width: 62px;
  min-width: 62px;
}

.payable-list-header {
  align-items: center;
  flex-wrap: wrap;
}

.payable-list-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
}

.payable-duplicate-toggle,
.payable-new-button {
  min-width: 126px;
  min-height: 36px;
  height: 36px;
  padding: 0 12px;
  font-size: 0.84rem;
  white-space: nowrap;
}

.payable-new-button.is-loading {
  opacity: 0.72;
  pointer-events: none;
}

.payable-duplicate-toggle.is-active {
  border-color: rgba(180, 83, 9, 0.28);
  color: #8a4306;
  background: #fff7ed;
}

.payable-duplicate-note {
  display: inline-flex;
  margin-left: 8px;
  color: #8a4306;
  font-size: 0.78rem;
  font-weight: 850;
}

.payable-table .payable-supplier-header {
  min-width: 160px;
}

.payable-table .payable-document-header {
  min-width: 160px;
}

.payable-table .payable-category-header {
  min-width: 150px;
}

.payable-table .payable-date-header {
  min-width: 128px;
  width: 128px;
}

.payable-table .payable-value-header {
  min-width: 124px;
  width: 124px;
}

.payable-table .payable-status-header {
  min-width: 106px;
}

.payable-table .amount-cell {
  min-width: 124px;
  width: 124px;
  white-space: nowrap;
}

.payable-table .amount-cell strong,
.payable-table .amount-cell small {
  white-space: nowrap;
}

.reconciliation-draft-row-marker {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  padding: 4px 8px;
  border: 1px solid rgba(13, 148, 136, 0.24);
  border-radius: 999px;
  color: #0f766e;
  background: rgba(240, 253, 250, 0.92);
  font-size: 0.69rem;
  font-weight: 850;
  white-space: nowrap;
}

.reconciliation-draft-row-marker.is-warning {
  border-color: rgba(217, 119, 6, 0.32);
  color: #92400e;
  background: #fef3c7;
}

.reconciliation-draft-row-marker[hidden],
.reconciliation-draft-continue[hidden],
.reconciliation-draft-warning[hidden] {
  display: none !important;
}

.reconciliation-draft-row-marker svg {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
}

.reconciliation-draft-continue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex: 0 0 auto;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid rgba(13, 148, 136, 0.3);
  border-radius: 7px;
  color: #0f766e;
  background: rgba(255, 255, 255, 0.86);
  font: inherit;
  font-size: 0.7rem;
  font-weight: 850;
  white-space: nowrap;
  cursor: pointer;
}

.reconciliation-draft-continue:hover,
.reconciliation-draft-continue:focus-visible {
  border-color: #0f766e;
  color: #fff;
  background: #0f766e;
  outline: none;
}

.reconciliation-draft-continue[aria-busy="true"] {
  cursor: wait;
  opacity: 0.72;
}

.reconciliation-draft-continue svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.incremental-load-bar {
  display: grid;
  grid-template-columns: auto minmax(140px, 1fr) auto;
  align-items: center;
  gap: 16px;
  margin-top: 14px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(248, 250, 252, 0.72);
}

.incremental-load-bar-top {
  margin-top: 0;
  margin-bottom: 12px;
}

.incremental-load-summary {
  color: var(--text);
  font-size: 0.88rem;
  font-weight: 800;
  white-space: nowrap;
}

.incremental-load-progress {
  width: 100%;
  height: 7px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(71, 85, 105, 0.15);
}

.incremental-load-progress::-webkit-progress-bar {
  border-radius: 999px;
  background: rgba(71, 85, 105, 0.15);
}

.incremental-load-progress::-webkit-progress-value {
  border-radius: 999px;
  background: var(--accent);
}

.incremental-load-progress::-moz-progress-bar {
  border-radius: 999px;
  background: var(--accent);
}

.incremental-load-actions {
  display: inline-flex;
  justify-content: flex-end;
  min-width: 148px;
}

.incremental-load-button {
  min-width: 142px;
  max-width: 100%;
  justify-content: center;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

.incremental-load-button > i,
.incremental-load-button > svg,
.incremental-load-button > [data-incremental-load-label] {
  position: relative;
  z-index: 1;
}

.incremental-load-button.is-loading i,
.incremental-load-button.is-loading svg {
  animation: bank-processing-spin 0.8s linear infinite;
}

.incremental-load-button-progress {
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  overflow: hidden;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  pointer-events: none;
}

.incremental-load-button-progress > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width 120ms ease-out;
}

.incremental-load-button.is-fetching .incremental-load-button-progress > span {
  width: 38%;
  animation: incremental-load-button-indeterminate 1.05s ease-in-out infinite;
}

.incremental-load-button.is-appending .incremental-load-button-progress > span {
  width: var(--incremental-batch-progress, 0%);
}

@keyframes incremental-load-button-indeterminate {
  0% {
    transform: translateX(-115%);
  }

  55% {
    transform: translateX(95%);
  }

  100% {
    transform: translateX(265%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .incremental-load-button.is-loading i,
  .incremental-load-button.is-loading svg,
  .incremental-load-button.is-fetching .incremental-load-button-progress > span {
    animation: none;
  }

  .incremental-load-button-progress > span {
    transition: none;
  }

  .incremental-load-button.is-fetching .incremental-load-button-progress > span {
    width: 38%;
    transform: none;
  }
}

.incremental-load-complete {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.83rem;
  font-weight: 800;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .incremental-load-bar {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
  }

  .incremental-load-summary,
  .incremental-load-complete {
    white-space: normal;
  }

  .incremental-load-progress {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .incremental-load-actions {
    min-width: 0;
  }

  .incremental-load-button {
    min-width: 128px;
  }
}

/* Receber/Pagar: centraliza somente os conteudos curtos aprovados nas grades.
   Cabecalhos, vencimento do Pagar e demais colunas preservam o alinhamento atual. */
.receive-table.receivable-category-table tbody tr[data-receivable-row] > td.receivable-charge-type-cell,
.receive-table.receivable-category-table tbody tr[data-receivable-row] > td[data-receive-filter-cell="competencia"],
.receive-table.receivable-category-table tbody tr[data-receivable-row] > td[data-receive-filter-cell="vencimento"],
.receive-table.payable-table tbody tr[data-payable-row] > td[data-receive-filter-cell="competencia"] {
  text-align: center;
}

.payable-table .receive-column-filter-trigger span:first-child {
  overflow: visible;
  text-overflow: clip;
}

.receive-column-filter {
  display: inline-flex;
  max-width: 100%;
  min-width: 0;
}

.receive-column-filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  min-height: 30px;
  padding: 4px 6px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-align: left;
  text-transform: inherit;
  cursor: pointer;
}

.receive-column-filter-trigger span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receive-table .receive-date-header .receive-column-filter-trigger span:first-child {
  overflow: visible;
  text-overflow: clip;
}

.receive-filter-empty-row td {
  padding: 22px 16px;
  color: var(--muted);
  font-weight: 800;
  text-align: center;
}

.receive-column-filter-trigger svg {
  width: 14px;
  height: 14px;
  color: var(--muted);
  stroke-width: 2.4;
}

.receive-column-filter-trigger [data-lucide="list-filter"] {
  display: none;
}

.receive-column-filter-trigger:hover,
.receive-column-filter-trigger:focus-visible,
.receive-column-filter-trigger[aria-expanded="true"] {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.18);
  background: var(--accent-soft);
  outline: none;
}

.receive-column-filter-trigger.is-active {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.24);
  background: rgba(223, 241, 236, 0.72);
}

.receive-column-filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  color: #fff;
  background: var(--accent);
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1;
}

.receive-column-filter-count[hidden] {
  display: none;
}

.receive-column-filter-panel {
  position: fixed;
  z-index: 220;
  display: grid;
  gap: 9px;
  width: min(310px, calc(100vw - 24px));
  max-height: min(430px, calc(100vh - 24px));
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 22px 56px rgba(31, 41, 51, 0.18);
  font-size: 0.84rem;
  font-weight: 750;
  text-transform: none;
}

.receive-column-filter-panel[hidden] {
  display: none;
}

.receive-column-filter-search {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  min-height: 36px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-muted);
}

.receive-column-filter-search svg {
  width: 15px;
  height: 15px;
  color: var(--muted);
}

.receive-column-filter-search input {
  width: 100%;
  min-height: 34px;
  padding: 0;
  border: 0;
  color: var(--text);
  background: transparent;
  font: inherit;
  font-weight: 800;
  outline: none;
}

.receive-column-filter-all,
.receive-column-filter-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  min-height: 34px;
  border-radius: 8px;
  cursor: pointer;
}

.receive-column-filter-all {
  padding: 7px 9px;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-weight: 850;
}

.receive-column-filter-options {
  display: grid;
  gap: 3px;
  max-height: 230px;
  overflow-y: auto;
  padding-right: 2px;
}

.receive-column-filter-option {
  padding: 7px 9px;
}

.receive-column-filter-option:hover,
.receive-column-filter-option:focus-within {
  background: var(--surface-muted);
}

.receive-column-filter-option[hidden] {
  display: none;
}

.receive-column-filter-all input,
.receive-column-filter-option input {
  width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  accent-color: var(--accent);
}

.receive-column-filter-option span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receive-column-filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.receive-column-filter-actions button {
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 850;
  cursor: pointer;
}

.receive-column-filter-actions button:hover,
.receive-column-filter-actions button:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.28);
  background: var(--accent-soft);
  outline: none;
}

.receive-filter-empty td {
  padding: 26px 12px;
  color: var(--muted);
  background: #f8fafc;
  text-align: center;
  font-weight: 800;
}

.receive-table.zebra-table tbody tr:nth-child(even) td {
  background: #f8fafc;
}

.receive-table.receivable-category-table.zebra-table tbody tr[data-receivable-row]:not(.is-alt) > td {
  background: #fff;
}

.receive-table.receivable-category-table.zebra-table tbody tr[data-receivable-row].is-alt > td {
  background: #f8fafc;
}

.receive-table.zebra-table tbody tr[data-receivable-row] td {
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-provisioned td,
.receive-table.zebra-table tbody tr[data-receivable-row].is-provisioned:nth-child(even) td {
  background: linear-gradient(90deg, rgba(190, 92, 28, 0.08), rgba(190, 92, 28, 0.035));
  border-bottom-color: var(--line);
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-provisioned td:first-child {
  box-shadow: inset 4px 0 0 rgba(170, 75, 20, 0.45), inset 0 -1px 0 rgba(255, 255, 255, 0.72);
}

.receive-table.zebra-table tbody tr[data-receivable-row]:has(+ tr.receivable-manual-row.is-confirmed) td,
.receive-table.zebra-table tbody tr[data-receivable-row]:has(+ tr.receivable-manual-row.needs-confirmation) td,
.receive-table.zebra-table tbody tr[data-receivable-row]:has(+ tr.receive-payments-row + tr.receivable-manual-row.is-confirmed) td,
.receive-table.zebra-table tbody tr[data-receivable-row]:has(+ tr.receive-payments-row + tr.receivable-manual-row.needs-confirmation) td {
  border-bottom: 0;
  box-shadow: none;
}

.receive-table.zebra-table tbody tr[data-receivable-row]:has(+ tr.receive-payments-row:not([hidden])) > td {
  border-bottom: 0;
  box-shadow: none;
}

.receive-table.zebra-table tbody tr[data-receivable-row][data-receivable-status="RECEBIDO"]:has(+ tr.receive-payments-row:not([hidden])) :is(
  [data-receivable-account],
  [data-receivable-received-amount],
  [data-receivable-situation],
  [data-receivable-origin]
) {
  display: none;
}

.receive-table.zebra-table tbody tr.is-selected td,
.receive-table.zebra-table tbody tr.is-selected:nth-child(even) td {
  background: #edf7f4;
}

.receive-table.zebra-table tbody tr.is-receive-panel-open td,
.receive-table.zebra-table tbody tr.is-receive-panel-open:nth-child(even) td {
  background: #f2faf7;
}

.receive-table.zebra-table tbody tr.is-receive-loading td,
.receive-table.zebra-table tbody tr.is-receive-loading:nth-child(even) td {
  background: #eef8f5;
}

.receive-table.zebra-table tbody tr.is-receive-success td,
.receive-table.zebra-table tbody tr.is-receive-success:nth-child(even) td {
  background: #edf8f1;
}

.fiscal-bulk-action-bar .actions-row {
  flex-wrap: wrap;
}

.fiscal-tax-summary-panel {
  display: grid;
  gap: 18px;
}

.fiscal-tax-summary-header {
  align-items: flex-start;
}

.fiscal-tax-summary-toggle {
  flex: 0 0 auto;
  color: #42526b;
}

.fiscal-tax-summary-toggle:hover {
  color: var(--accent-strong);
  border-color: #c7d5ea;
  background: #f4f8ff;
}

.fiscal-tax-summary-panel.is-collapsed {
  gap: 12px;
}

.fiscal-tax-summary-panel.is-collapsed .fiscal-tax-summary-toggle {
  color: var(--accent-strong);
  border-color: #c7d5ea;
  background: #f4f8ff;
}

.fiscal-tax-summary-body {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.fiscal-tax-summary-body[hidden] {
  display: none !important;
}

.fiscal-tax-summary-compact {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #d5dfec;
  border-radius: 8px;
  background: #f7fafc;
}

.fiscal-tax-summary-panel.is-collapsed .fiscal-tax-summary-compact {
  display: flex;
}

.fiscal-tax-summary-compact[aria-hidden="true"] {
  display: none;
}

.fiscal-tax-summary-compact-label {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.fiscal-tax-summary-compact-label span {
  color: #526173;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.fiscal-tax-summary-compact-label strong {
  color: #172033;
  font-size: 0.9rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.fiscal-tax-compact-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.fiscal-tax-compact-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  min-width: 0;
  padding: 5px 9px;
  border: 1px solid #d5dfec;
  border-radius: 8px;
  color: #42526b;
  background: #fff;
  font-size: 0.78rem;
  font-weight: 820;
  font-variant-numeric: tabular-nums;
}

.fiscal-tax-compact-chip strong {
  color: #172033;
  font-weight: 920;
  text-transform: uppercase;
}

.fiscal-tax-compact-chip span {
  white-space: nowrap;
}

.fiscal-tax-movement-list {
  display: grid;
  gap: 22px;
}

.fiscal-tax-movement-block {
  display: grid;
  gap: 14px;
  min-width: 0;
}

.fiscal-tax-movement-block + .fiscal-tax-movement-block {
  padding-top: 18px;
  border-top: 3px solid color-mix(in srgb, var(--line), var(--accent) 16%);
}

.fiscal-tax-movement-title {
  margin: 0;
  color: #172033;
  font-size: 0.95rem;
  font-weight: 920;
  letter-spacing: 0;
  text-transform: uppercase;
}

.fiscal-tax-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.fiscal-tax-flow-item {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 14px;
  border: 1px solid #cfd9e6;
  border-radius: 8px;
  background: #f7fafc;
}

.fiscal-tax-flow-item span {
  color: #42526b;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.fiscal-tax-flow-item strong {
  color: #172033;
  font-size: 1.55rem;
  font-weight: 920;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.fiscal-tax-flow-item small {
  color: #526173;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
  font-weight: 780;
}

.fiscal-tax-flow-item.is-deduction {
  border-color: #f0b3b3;
  background: #fff3f3;
}

.fiscal-tax-flow-item.is-deduction span,
.fiscal-tax-flow-item.is-deduction strong {
  color: #a32020;
}

.fiscal-tax-flow-item.is-deduction-dark {
  border-color: #df9b8b;
  background: #fff6ef;
}

.fiscal-tax-flow-item.is-deduction-dark span,
.fiscal-tax-flow-item.is-deduction-dark strong {
  color: #8c351f;
}

.fiscal-tax-flow-item.is-result {
  border-color: #a8d3c4;
  background: #effaf6;
}

.fiscal-tax-flow-item.is-result span,
.fiscal-tax-flow-item.is-result strong {
  color: #11634f;
}

.fiscal-tax-values-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.fiscal-tax-values-group {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.fiscal-tax-values-group.is-iva {
  border-color: #b7cbe9;
  background: #f4f8ff;
}

.fiscal-tax-values-group h3 {
  margin: 0 0 10px;
  color: #172033;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0;
}

.fiscal-tax-values-group dl {
  display: grid;
  gap: 7px;
  margin: 0;
}

.fiscal-tax-values-group dl > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  min-height: 24px;
}

.fiscal-tax-values-group dt {
  color: #526173;
  font-size: 0.76rem;
  font-weight: 830;
  white-space: nowrap;
}

.fiscal-tax-values-group dd {
  margin: 0;
  color: #172033;
  font-size: 0.82rem;
  font-weight: 880;
  text-align: right;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.fiscal-tax-footnote {
  margin: 0;
  color: var(--muted);
  font-size: 0.83rem;
  line-height: 1.45;
}

.fiscal-tax-footnote span {
  display: inline;
  margin-left: 8px;
  color: #8c351f;
  font-weight: 820;
}

.fiscal-service-documents-table {
  min-width: 1840px;
}

.fiscal-grid-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0 8px;
}

.fiscal-grid-hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #d5dfec;
  border-radius: 8px;
  color: #41536c;
  background: #f7fafc;
  font-size: 0.78rem;
  font-weight: 820;
  white-space: nowrap;
  transition: opacity 160ms ease, visibility 160ms ease;
}

.fiscal-grid-hint svg {
  width: 16px;
  height: 16px;
}

.fiscal-grid-hint.is-muted {
  visibility: hidden;
  opacity: 0;
}

.fiscal-grid-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.fiscal-tax-toggle {
  gap: 7px;
  min-height: 34px;
  padding: 0 11px;
}

.fiscal-tax-toggle svg {
  width: 16px;
  height: 16px;
}

.fiscal-tax-toggle.is-compact {
  color: #8c351f;
  background: #fff7f6;
  border-color: #efb2aa;
}

.fiscal-table-scroll {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  scrollbar-gutter: stable both-edges;
  transition: box-shadow 160ms ease;
}

.fiscal-table-scroll.can-scroll-left {
  box-shadow: inset 18px 0 18px -20px rgba(15, 23, 42, 0.46);
}

.fiscal-table-scroll.can-scroll-right {
  box-shadow: inset -18px 0 18px -20px rgba(15, 23, 42, 0.46);
}

.fiscal-table-scroll.can-scroll-left.can-scroll-right {
  box-shadow:
    inset 18px 0 18px -20px rgba(15, 23, 42, 0.46),
    inset -18px 0 18px -20px rgba(15, 23, 42, 0.46);
}

.fiscal-table-scroll.hide-retentions .fiscal-service-documents-table {
  min-width: 1380px;
}

.fiscal-table-scroll.hide-retentions [data-tax-group="retencoes"] {
  display: none;
}

@media (max-width: 720px) {
  .fiscal-grid-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .fiscal-tax-summary-compact {
    align-items: stretch;
    flex-direction: column;
  }

  .fiscal-tax-compact-list {
    justify-content: flex-start;
  }

  .fiscal-grid-hint {
    justify-content: center;
    width: 100%;
  }

  .fiscal-grid-actions {
    width: 100%;
    justify-content: space-between;
  }

  .fiscal-tax-toggle {
    flex: 1 1 auto;
  }
}

.mini-table .money-cell {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.tax-service-column {
  background: #f8fbf8;
}

.tax-retained-column {
  background: #fff7f6;
  color: #8f1f1f;
}

.tax-iva-column {
  background: #f2f8ff;
  color: #155f99;
}

.tax-net-column {
  background: #f7f8fb;
  font-weight: 850;
}

.money-cell.is-zero {
  color: var(--muted);
}

.fiscal-documents-table .select-cell {
  width: 44px;
  min-width: 44px;
  padding-right: 6px;
}

.fiscal-nfe-documents-table {
  min-width: 1080px;
  table-layout: fixed;
}

.fiscal-nfe-documents-table .fiscal-party-column {
  width: 31%;
  max-width: 31%;
}

.fiscal-nfe-documents-table .fiscal-document-column {
  width: 142px;
}

.fiscal-nfe-documents-table .fiscal-date-column {
  width: 102px;
  white-space: nowrap;
}

.fiscal-nfe-documents-table .fiscal-value-column {
  width: 116px;
}

.fiscal-nfe-documents-table .fiscal-status-column {
  width: 190px;
}

.fiscal-nfe-documents-table .actions-cell {
  width: 104px;
}

.fiscal-nfe-documents-table .fiscal-party-cell {
  gap: 4px;
}

.fiscal-nfe-documents-table .fiscal-party-cell strong,
.fiscal-nfe-documents-table .fiscal-party-cell small {
  overflow: hidden;
  max-width: 100%;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-nfe-documents-table .fiscal-party-cell strong {
  font-size: 0.84rem;
  line-height: 1.15;
}

.fiscal-nfe-documents-table .fiscal-party-cell small {
  font-size: 0.74rem;
  line-height: 1.15;
}

.fiscal-nfe-documents-table .fiscal-access-key {
  font-size: 0.68rem;
}

.fiscal-party-cell {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.fiscal-party-cell strong {
  line-height: 1.25;
}

.fiscal-party-cell small {
  color: var(--muted);
  line-height: 1.2;
}

.fiscal-access-key {
  font-size: 0.76rem;
  overflow-wrap: anywhere;
}

.fiscal-direction-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 22px;
  padding: 3px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0;
}

.fiscal-direction-badge.is-entry {
  color: #0d6b58;
  background: #e8f6f1;
  border-color: #b7dfd1;
}

.fiscal-direction-badge.is-output {
  color: #8a4b0f;
  background: #fff3dd;
  border-color: #efcf98;
}

.fiscal-direction-badge.is-unknown {
  color: #4b5563;
  background: #eef2f5;
  border-color: #d8dee6;
}

.fiscal-documents-table.zebra-table tbody tr.is-selected td,
.fiscal-documents-table.zebra-table tbody tr.is-selected:nth-child(even) td {
  background: #edf7f4;
}

.fiscal-document-cell {
  display: grid;
  justify-items: start;
  gap: 3px;
  min-width: 0;
}

.fiscal-document-cell > strong,
.fiscal-document-cell > small {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-document-cell > small {
  color: var(--muted);
}

.fiscal-nfe-documents-table.is-awaiting-download .fiscal-document-column {
  width: 150px;
}

.fiscal-nfe-documents-table[data-fiscal-bulk-table]:not(.hide-nfe-taxes).is-awaiting-download .fiscal-document-column {
  width: 130px;
}

.fiscal-document-status {
  width: 100%;
  min-width: 0;
  margin-top: 3px;
  padding-top: 5px;
  border-top: 1px solid #dce5ec;
}

.fiscal-document-status .fiscal-status-badge {
  min-height: 22px;
  padding: 3px 7px;
  font-size: 0.64rem;
}

.fiscal-document-status .fiscal-status-preview {
  display: flex;
}

.fiscal-document-status .fiscal-status-detail-trigger {
  gap: 4px;
  width: auto;
  min-width: 0;
  height: 24px;
  padding: 3px 7px;
  font-size: 0.64rem;
}

.fiscal-document-status .fiscal-status-detail-trigger svg {
  width: 13px;
  height: 13px;
}

.fiscal-status-cell {
  display: grid;
  gap: 4px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  justify-items: start;
}

.fiscal-status-cell > small {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  font-size: 0.68rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.fiscal-status-meta {
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-status-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  align-items: center;
  gap: 4px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.fiscal-status-preview-text {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.3;
  text-overflow: clip;
  white-space: nowrap;
}

.fiscal-status-detail-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-width: 24px;
  height: 20px;
  padding: 0 4px 4px;
  border: 1px solid #c9d8e4;
  border-radius: 7px;
  color: #28506f;
  background: #f3f8fc;
  font-family: inherit;
  font-size: 0.92rem;
  font-weight: 850;
  line-height: 1;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

.fiscal-status-detail-trigger:hover,
.fiscal-status-detail-trigger:focus-visible {
  border-color: #8eb6d6;
  background: #e8f2fb;
  box-shadow: 0 0 0 3px rgba(40, 80, 111, 0.12);
  outline: none;
}

.fiscal-status-next-summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.fiscal-status-detail-popover {
  width: min(380px, calc(100vw - 24px));
  max-width: none;
  max-height: min(520px, calc(100dvh - 24px));
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid #c9d8e4;
  border-radius: 14px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24), 0 8px 24px rgba(40, 80, 111, 0.1);
}

.fiscal-status-detail-popover:popover-open {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  animation: fiscal-status-detail-in 160ms ease-out;
}

.fiscal-status-detail-popover::backdrop {
  background: rgba(15, 23, 42, 0.18);
  backdrop-filter: blur(1px);
}

.fiscal-status-detail-header {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f4f8fb, #fff);
}

.fiscal-status-detail-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  color: #28506f;
  background: #e8f2fb;
}

.fiscal-status-detail-icon svg {
  width: 17px;
  height: 17px;
}

.fiscal-status-detail-header > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.fiscal-status-detail-header small {
  color: var(--muted);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.fiscal-status-detail-header strong {
  overflow: hidden;
  font-size: 0.88rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-status-detail-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--muted);
  background: #fff;
  cursor: pointer;
}

.fiscal-status-detail-close:hover,
.fiscal-status-detail-close:focus-visible {
  color: var(--text);
  border-color: #9eb2c2;
  background: var(--surface-muted);
  outline: none;
}

.fiscal-status-detail-close svg {
  width: 16px;
  height: 16px;
}

.fiscal-status-detail-list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 13px 14px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.fiscal-status-detail-list > div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #e4e9ee;
  border-radius: 9px;
  background: #f9fbfc;
}

.fiscal-status-detail-list > div.is-error {
  border-color: #f1c8c8;
  background: #fff7f7;
}

.fiscal-status-detail-list > div.is-action {
  border-color: #c8e2dc;
  background: #f4faf8;
}

.fiscal-status-detail-list dt {
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 850;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.fiscal-status-detail-list dd {
  margin: 4px 0 0;
  color: var(--text);
  font-size: 0.75rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.fiscal-status-detail-footer {
  display: flex;
  justify-content: flex-end;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
  background: #fbfcfd;
}

.fiscal-status-detail-footer .btn-secondary-app {
  min-height: 34px;
  padding: 7px 13px;
  font-size: 0.74rem;
}

@keyframes fiscal-status-detail-in {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.fiscal-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 25px;
  padding: 4px 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}

.fiscal-status-badge.is-complete {
  color: var(--success-strong);
  background: var(--success-soft);
  border-color: var(--success-line);
}

.fiscal-status-badge.is-waiting {
  color: #28506f;
  background: #e8f2fb;
  border-color: #bdd5eb;
}

.fiscal-status-badge.is-error {
  color: #9b2f2f;
  background: #fce8e8;
  border-color: #f2b8b8;
}

.fiscal-status-badge.is-neutral {
  color: #4b5563;
  background: #eef2f5;
  border-color: #d8dee6;
}

.fiscal-next-attempt {
  color: var(--accent-strong);
  font-weight: 800;
}

.fiscal-progress-dots {
  display: inline-grid;
  grid-auto-flow: column;
  gap: 2px;
  align-items: center;
}

.fiscal-progress-dots span {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--brand-blue);
  animation: fiscal-progress-pulse 1.25s ease-in-out infinite;
}

.fiscal-progress-dots span:nth-child(2) {
  background: var(--brand-orange);
  animation-delay: 0.14s;
}

.fiscal-progress-dots span:nth-child(3) {
  background: var(--brand-blue);
  animation-delay: 0.28s;
}

.fiscal-progress-dots span:nth-child(4) {
  background: var(--brand-orange-muted);
  animation-delay: 0.42s;
}

.fiscal-nfe-documents-table.is-awaiting-download .fiscal-status-badge {
  flex-wrap: wrap;
  max-width: 100%;
  line-height: 1.1;
  white-space: normal;
}

.fiscal-nfe-documents-table.is-awaiting-download .fiscal-progress-dots {
  flex: 0 0 auto;
}

.receive-table.zebra-table tbody tr.is-receive-error td,
.receive-table.zebra-table tbody tr.is-receive-error:nth-child(even) td {
  background: #fff4e8;
}

.receive-table.zebra-table tbody tr.is-selected td:first-child {
  box-shadow: inset 4px 0 0 var(--accent);
}

.receive-table.zebra-table tbody tr:nth-child(even) .icon-action {
  background: #fff;
}

.receive-table .select-cell {
  width: 44px;
  min-width: 44px;
  padding-right: 6px;
  text-align: center;
}

.amount-cell {
  text-align: right;
}

.receive-table .actions-cell {
  position: sticky;
  right: 0;
  z-index: 4;
  width: 142px;
  min-width: 142px;
  max-width: 142px;
  padding-left: 7px;
  padding-right: 7px;
  background: #fff;
  box-shadow: none;
}

/* A sombra externa da coluna sticky e composta de modo diferente por Firefox
   e Chromium. A borda e a sombra sao desenhadas dentro da propria celula para
   manter a mesma profundidade nos dois navegadores, sem participar do
   border-collapse nem alterar a largura da tabela. */
.receive-table .actions-cell::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 14px;
  background: linear-gradient(
    90deg,
    rgba(31, 41, 51, 0.16) 0,
    rgba(31, 41, 51, 0.07) 42%,
    rgba(31, 41, 51, 0) 100%
  );
  box-shadow: inset 1px 0 0 color-mix(in srgb, var(--line), var(--text) 26%);
  pointer-events: none;
  content: "";
}

.receive-table .receive-status-cell {
  width: 106px;
  min-width: 106px;
  max-width: 106px;
  padding-left: 7px;
  padding-right: 7px;
}

.receive-table td.receive-status-cell > small {
  font-size: 0.68rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.receive-table th.actions-cell {
  z-index: 5;
  text-align: center;
}

.receive-table.zebra-table tbody tr:nth-child(even) .actions-cell {
  background: #f8fafc;
}

.receive-table.zebra-table tbody tr.is-selected .actions-cell,
.receive-table.zebra-table tbody tr.is-selected:nth-child(even) .actions-cell {
  background: #edf7f4;
}

.receive-table.zebra-table tbody tr.is-receive-panel-open .actions-cell,
.receive-table.zebra-table tbody tr.is-receive-panel-open:nth-child(even) .actions-cell {
  background: #f2faf7;
}

.receive-table.zebra-table tbody tr.is-receive-loading .actions-cell,
.receive-table.zebra-table tbody tr.is-receive-loading:nth-child(even) .actions-cell {
  background: #eef8f5;
}

.receive-table.zebra-table tbody tr.is-receive-success .actions-cell,
.receive-table.zebra-table tbody tr.is-receive-success:nth-child(even) .actions-cell {
  background: #edf8f1;
}

.receive-table.zebra-table tbody tr.is-receive-error .actions-cell,
.receive-table.zebra-table tbody tr.is-receive-error:nth-child(even) .actions-cell {
  background: #fff1f0;
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-provisioned .actions-cell,
.receive-table.zebra-table tbody tr[data-receivable-row].is-provisioned:nth-child(even) .actions-cell {
  background: linear-gradient(90deg, rgba(190, 92, 28, 0.08), rgba(190, 92, 28, 0.035));
}

.receivable-manual-row td {
  padding: 0 12px 12px;
  border-top: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.receive-table.zebra-table tbody tr.receivable-manual-row:not(.is-alt) > td,
.receive-table.zebra-table tbody tr.receivable-manual-row:not(.is-alt):nth-child(even) > td {
  border-bottom-color: var(--line);
  background: #fff;
}

.receive-table.zebra-table tbody tr.receivable-manual-row.is-alt > td,
.receive-table.zebra-table tbody tr.receivable-manual-row.is-alt:nth-child(even) > td {
  background: #f8fafc;
}

.receivable-manual-form {
  margin: 0;
  padding: 6px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.receivable-manual-row.is-confirmed .receivable-manual-form {
  background: transparent;
}

.receivable-manual-grid {
  display: grid;
  grid-template-columns: repeat(6, max-content);
  column-gap: 6px;
  row-gap: 4px;
  align-items: end;
  justify-content: end;
}

.receivable-manual-field {
  gap: 3px;
  min-width: 0;
}

.receivable-manual-field > span:first-child {
  font-size: 0.64rem;
  line-height: 1.1;
}

.receivable-manual-quantity {
  width: 84px;
}

.receivable-manual-money {
  width: 134px;
}

.manual-input-check {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26px;
  gap: 4px;
  align-items: center;
}

.manual-input-check input[type="number"],
.manual-input-check input[type="text"] {
  width: 100%;
  height: 28px;
  min-height: 28px;
  padding: 3px 6px;
  border-radius: 7px;
  font-size: 0.72rem;
  line-height: 1.1;
  text-align: right;
}

.receivable-manual-quantity input[type="number"] {
  min-width: 0;
  max-width: 54px;
}

.receivable-manual-money input[type="text"] {
  min-width: 0;
  max-width: 104px;
}

.receivable-manual-field.needs-confirmation input[type="number"],
.receivable-manual-field.needs-confirmation input[type="text"],
.receivable-manual-field.is-confirmed input[type="number"],
.receivable-manual-field.is-confirmed input[type="text"] {
  border-color: var(--line);
  background: #fff;
}

.manual-check {
  position: relative;
  display: grid;
  place-items: center;
  width: 26px;
  height: 28px;
  border: 1px solid #d3dbea;
  border-radius: 7px;
  color: #6b778c;
  background: #fff;
}

.manual-check input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  cursor: pointer;
}

.manual-check span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 6px;
}

.manual-check svg {
  width: 13px;
  height: 13px;
}

.manual-check input:checked + span {
  color: #fff;
  background: #64748b;
}

.manual-check input:disabled {
  cursor: not-allowed;
}

.manual-check:has(input:disabled) {
  opacity: 0.72;
  background: var(--surface-muted);
}

.receivable-manual-actions {
  grid-column: 6;
  display: flex;
  align-items: end;
  justify-content: flex-end;
  min-width: 118px;
}

.receivable-manual-submit {
  width: 100%;
  min-height: 28px;
  padding: 0 7px;
  border-radius: 7px;
  gap: 5px;
  font-size: 0.7rem;
  white-space: nowrap;
}

.receivable-manual-submit svg {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
}

.receivable-manual-submit.is-pending {
  color: var(--text);
  border-color: var(--line);
  background: #fff;
}

.receivable-manual-submit.is-pending:hover,
.receivable-manual-submit.is-pending:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.34);
  background: var(--accent-soft);
  outline: 2px solid rgba(28, 34, 38, 0.18);
  outline-offset: 2px;
}

.receivable-manual-submit.is-confirmed,
.receivable-manual-submit.is-confirmed:disabled {
  color: #176b57;
  border-color: #b8dccc;
  background: #edf8f3;
  opacity: 1;
}

.receivable-manual-submit.is-confirmed:not(:disabled):hover,
.receivable-manual-submit.is-confirmed:not(:disabled):focus-visible {
  color: #0f5b49;
  border-color: #83bfa8;
  background: #e2f4eb;
  outline: 2px solid rgba(23, 107, 87, 0.2);
  outline-offset: 2px;
}

.receivable-manual-submit.is-unconfirmed,
.receivable-manual-submit.is-unconfirmed:disabled {
  color: #667085;
  border-color: var(--line);
  background: var(--surface-muted);
  opacity: 1;
}

.receivable-manual-pending-note {
  grid-column: 1 / -1;
  justify-self: end;
  max-width: 100%;
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: right;
  white-space: normal;
  overflow-wrap: anywhere;
}

.actions-group.receive-actions {
  gap: 4px;
  align-items: flex-start;
  flex-wrap: wrap;
  width: 124px;
  max-width: 124px;
}

.receive-action-tooltip {
  display: inline-flex;
}

.receive-action-history {
  color: var(--accent-strong);
}

.actions-cell form[hidden],
.actions-cell .receive-manual-protected[hidden] {
  display: none;
}

.receive-payment-form {
  position: relative;
}

.receive-payment-form.is-open {
  flex: 1 0 100%;
  min-width: 0;
  box-sizing: border-box;
  padding-inline: 12px;
  /* Botao ancorado a direita e painel crescendo para a esquerda,
     para nao ficar escondido alem da borda direita em telas menores. */
  flex-direction: row-reverse;
  justify-content: flex-start;
  align-items: flex-start;
  /* Vai para o fim do grupo: os demais icones de acao permanecem
     juntos na linha de cima em vez de quebrarem para baixo do painel. */
  order: 99;
}

/* Com o painel aberto o gatilho some (o painel tem o proprio X para fechar);
   sem ele nada fica espremido contra a borda direita. */
.receive-payment-form.is-open .receive-payment-trigger {
  display: none;
}

.receive-payment-form.is-open .receive-payment-panel {
  flex: 0 0 auto;
  width: 264px;
  max-width: none;
  /* Margem negativa igual a propria largura: o painel nao soma na largura
     da celula (a tabela nao alarga) e se expande sobre as colunas a esquerda. */
  margin-left: -264px;
}

.receive-payment-trigger[aria-expanded="true"] {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.3);
}

.receive-payment-panel {
  display: grid;
  flex: 0 1 264px;
  gap: 11px;
  width: min(264px, 100%);
  max-width: 100%;
  margin-top: 8px;
  padding: 13px;
  border: 1px solid var(--brand-blue-ring);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 18px 42px rgba(31, 41, 51, 0.16);
}

.receive-payment-panel[hidden] {
  display: none;
}

.receive-payment-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--accent);
}

.receive-payment-title svg {
  width: 16px;
  height: 16px;
}

.receive-payment-breakdown {
  display: grid;
  gap: 3px;
  padding: 10px 11px;
  border-radius: 10px;
  background: var(--surface-muted);
  border: 1px solid var(--line);
}

.receive-payment-breakdown .rp-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.82rem;
  color: var(--text);
}

.receive-payment-breakdown .rp-line > span:first-child {
  color: var(--muted);
}

.receive-payment-breakdown .rp-line > span:last-child {
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

.receive-payment-breakdown .rp-line.is-zero > span {
  color: var(--sidebar-disabled);
}

.receive-payment-breakdown .rp-line.is-hidden {
  display: none;
}

.receive-payment-breakdown .rp-line-subtotal {
  margin-top: 3px;
  padding-top: 6px;
  border-top: 1px dashed var(--line);
}

.receive-payment-breakdown .rp-line-total {
  margin-top: 3px;
  padding-top: 7px;
  border-top: 1px solid var(--line);
  font-size: 0.92rem;
}

.receive-payment-breakdown .rp-line-total > span {
  color: var(--accent) !important;
  font-weight: 700;
}

.receive-payment-field {
  gap: 5px;
}

.receive-payment-field > span:first-child {
  font-size: 0.76rem;
}

.receive-payment-field input,
.receive-payment-field select {
  height: 38px;
  min-height: 38px;
  padding: 7px 9px;
}

.receive-payment-amount input {
  height: 42px;
  min-height: 42px;
  font-size: 1.02rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--success-strong);
  border-color: var(--success-line);
}

.receive-payment-amount input:focus {
  outline: none;
  border-color: var(--success);
  box-shadow: 0 0 0 3px var(--success-soft);
}

.receive-retention-source > summary::-webkit-details-marker {
  display: none;
}

.receive-retention-source-form,
.receive-retention-payment {
  display: grid;
  gap: 9px;
  min-width: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid rgba(14, 116, 144, 0.2);
  border-radius: 10px;
  background: rgba(240, 249, 255, 0.72);
}

.receive-retention-source:not([open]) > .receive-retention-source-form {
  display: none;
}

.receive-retention-source-note,
.receive-retention-source-warning,
.receive-retention-payment > p {
  margin: 0;
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.4;
}

.receive-retention-source-warning {
  padding: 7px 8px;
  color: #9a3412;
  border: 1px solid rgba(234, 88, 12, 0.2);
  border-radius: 8px;
  background: #fff7ed;
}

.receive-retention-source-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
  gap: 7px;
  min-width: 0;
}

.receive-retention-source-grid .receive-payment-field {
  min-width: 0;
}

.receive-retention-source-grid .receive-payment-field > small {
  color: var(--muted);
  font-size: 0.62rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.receive-retention-payment {
  min-inline-size: 0;
}

.receive-retention-payment > legend {
  max-width: 100%;
  padding: 0 4px;
  color: #0c4a6e;
  font-size: 0.74rem;
  font-weight: 800;
}

.receive-retention-payment-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding-top: 7px;
  color: #0c4a6e;
  border-top: 1px dashed rgba(14, 116, 144, 0.24);
  font-size: 0.7rem;
}

.receive-retention-payment-summary strong {
  flex: 0 0 auto;
  color: #0369a1;
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
}

.receive-payment-residual {
  display: grid;
  gap: 8px;
  padding: 10px 11px;
  border-radius: 10px;
  background: var(--accent-warm-soft);
  border: 1px solid rgba(14, 124, 123, 0.28);
}

.receive-payment-residual[hidden] {
  display: none;
}

.receive-payment-residual .rp-residual-note {
  margin: 0;
  font-size: 0.8rem;
  color: var(--text);
}

.receive-payment-residual .rp-residual-note strong {
  color: var(--accent-warm);
  font-variant-numeric: tabular-nums;
}

.rp-segmented {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.rp-segmented-option {
  position: relative;
  display: flex;
}

.rp-segmented-option input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}

.rp-segmented-option span {
  flex: 1;
  padding: 7px 8px;
  text-align: center;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.15;
  color: var(--muted);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.rp-segmented-option input:checked + span {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
}

.rp-segmented-option input:focus-visible + span {
  box-shadow: 0 0 0 3px var(--brand-blue-ring);
}

.rp-abono-fields {
  display: grid;
  gap: 6px;
}

.rp-abono-fields[hidden] {
  display: none;
}

.rp-abono-fields .rp-abono-saldo {
  margin: 0;
}

.rp-abono-note {
  margin: 0;
  font-size: 0.78rem;
  color: var(--text-soft, var(--text));
}

.rp-abono-note strong {
  color: var(--accent-warm);
  font-variant-numeric: tabular-nums;
}

.rp-abono-note [data-receive-abono-open] {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

[data-receivable-received-amount].is-partial {
  color: var(--amber);
  font-weight: 600;
}

.receive-payments-row[hidden] {
  display: none !important;
}

.receive-table.zebra-table tbody tr.receive-payments-row > td,
.receive-table.zebra-table tbody tr.receive-payments-row:nth-child(even) > td {
  padding: 0 10px 7px;
  border: 0;
  background: #fff;
  box-shadow: none;
}

.receive-table.zebra-table tbody tr.receive-payments-row:not([hidden]):not(:has(+ tr.receivable-manual-row)) > td {
  padding-bottom: 10px;
  border-bottom: 0;
  box-shadow: none;
}

.receive-table.zebra-table tbody tr.receive-payments-row:not([hidden]):not(:has(+ tr.receivable-manual-row)) > td,
.receive-table.zebra-table tbody tr.receivable-manual-row.needs-confirmation:not([hidden]) > td,
.receive-table.zebra-table tbody tr.receivable-manual-row.is-confirmed:not([hidden]) > td {
  position: relative;
}

.receive-table.zebra-table tbody tr.receivable-manual-row.needs-confirmation:not([hidden]) > td,
.receive-table.zebra-table tbody tr.receivable-manual-row.is-confirmed:not([hidden]) > td {
  padding-bottom: 12px;
  border-bottom: 0;
}

.receive-table.zebra-table tbody tr.receive-payments-row:not([hidden]):not(:has(+ tr.receivable-manual-row)) > td::after,
.receive-table.zebra-table tbody tr.receivable-manual-row.needs-confirmation:not([hidden]) > td::after,
.receive-table.zebra-table tbody tr.receivable-manual-row.is-confirmed:not([hidden]) > td::after {
  content: "";
  position: absolute;
  z-index: 5;
  inset: auto 0 0;
  height: 1px;
  background: var(--line);
  pointer-events: none;
}

.receive-table.zebra-table tbody tr.receive-payments-row.is-alt > td,
.receive-table.zebra-table tbody tr.receive-payments-row.is-alt:nth-child(even) > td {
  background: #f8fafc;
}

.receive-payments-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, auto) auto;
  align-items: center;
  gap: 12px;
  min-height: 36px;
  padding: 4px 9px;
  border: 0;
  border-radius: 7px;
  background: color-mix(in srgb, var(--accent-soft), #fff 48%);
  box-shadow: none;
}

.receive-payments-summary {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.69rem;
  line-height: 1.2;
  white-space: nowrap;
}

.receive-payments-summary > svg,
.receive-payments-summary > i {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  color: var(--accent-strong);
}

.receive-payments-summary strong {
  color: var(--text);
  font-weight: 850;
}

.receive-payments-separator {
  color: color-mix(in srgb, var(--muted), transparent 28%);
}

.receive-payments-compact-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 13px;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  list-style: none;
  white-space: nowrap;
}

.receive-payments-compact-list > li {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 0.7rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receive-payments-compact-list > li + li::before {
  content: "";
  flex: 0 0 3px;
  width: 3px;
  height: 3px;
  margin-right: 3px;
  border-radius: 50%;
  background: var(--muted);
}

.receive-payments-compact-list strong,
.receive-payments-compact-list time {
  font-variant-numeric: tabular-nums;
}

.receive-payments-more {
  color: var(--muted) !important;
  font-weight: 800;
}

.receive-payments-details {
  min-width: 0;
}

.receive-payments-details > summary {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  min-height: 28px;
  padding: 0 3px;
  color: var(--accent-strong);
  font-size: 0.68rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}

.receive-payments-details > summary::-webkit-details-marker {
  display: none;
}

.receive-payments-details > summary svg,
.receive-payments-details > summary i {
  width: 13px;
  height: 13px;
  transition: transform 0.16s ease;
}

.receive-payments-details[open] {
  display: grid;
  grid-column: 1 / -1;
}

.receive-payments-details[open] > summary {
  justify-self: end;
}

.receive-payments-details[open] > summary svg,
.receive-payments-details[open] > summary i {
  transform: rotate(180deg);
}

.receive-payments-details-panel {
  margin-top: 3px;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: none;
}

.receive-payments-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.receive-payments-list > li {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  color: var(--text);
  font-size: 0.72rem;
  line-height: 1.4;
  white-space: normal;
}

.receive-payments-list > li > span:first-child {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: break-word;
}

.receive-payment-composition-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 7px;
}

.receive-payment-composition-line time {
  font-variant-numeric: tabular-nums;
  font-weight: 750;
}

.receive-payment-component {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 3px 6px;
  border: 1px solid color-mix(in srgb, var(--border), transparent 16%);
  border-radius: 6px;
  background: color-mix(in srgb, var(--surface), var(--bg) 18%);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.receive-payment-component small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.receive-payment-component.is-total {
  border-color: color-mix(in srgb, var(--primary), transparent 52%);
  background: color-mix(in srgb, var(--primary), transparent 91%);
  color: var(--primary-strong, var(--primary));
}

.receive-payment-component.is-abono {
  border-color: color-mix(in srgb, #b7791f, transparent 58%);
  background: #fff8e7;
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-selected + tr.receive-payments-row > td {
  background: #edf7f4;
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-receive-panel-open + tr.receive-payments-row > td {
  background: #f2faf7;
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-receive-loading + tr.receive-payments-row > td {
  background: #eef8f5;
}

.receive-table.zebra-table tbody tr[data-receivable-row].is-receive-success + tr.receive-payments-row > td {
  background: #edf8f1;
}

@media (max-width: 760px) {
  .receive-table.zebra-table tbody tr.receive-payments-row > td,
  .receive-table.zebra-table tbody tr.receive-payments-row:nth-child(even) > td {
    padding-inline: 6px;
  }

  .receive-payments-strip {
    min-height: 40px;
    padding: 4px 7px;
  }

  .receive-payments-details-panel .receive-payment-attachment,
  .receive-payments-details-panel .receive-payment-undo {
    width: 28px;
    height: 28px;
  }
}

.receive-payment-attachment {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  border-radius: 4px;
  color: var(--muted);
  opacity: 0.75;
  transition: color 0.15s ease, background 0.15s ease, opacity 0.15s ease;
}

.receive-payment-attachment:hover,
.receive-payment-attachment:focus-visible {
  opacity: 1;
  color: #1d4ed8;
  background: #e0e9ff;
}

.receive-payment-attachment svg,
.receive-payment-attachment i {
  width: 12px;
  height: 12px;
}

.receive-payment-attachments {
  min-width: 0;
}

.receive-payment-attachments .compact-file-picker {
  min-height: 34px;
  padding: 4px;
}

.receive-payment-attachments .compact-file-button {
  min-height: 26px;
  padding: 0 8px;
  font-size: 0.76rem;
}

.receive-payment-attachments .compact-file-name {
  font-size: 0.74rem;
}

.receive-payment-attachments small.receive-payment-attachments-hint {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--muted);
  white-space: normal;
}

.receive-payment-undo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  opacity: 0.7;
  transition: color 0.15s ease, background 0.15s ease, opacity 0.15s ease;
}

.receive-payment-undo:hover,
.receive-payment-undo:focus-visible {
  opacity: 1;
  color: #b42318;
  background: #fee4e2;
}

.receive-payment-undo svg,
.receive-payment-undo i {
  width: 12px;
  height: 12px;
}

.receive-payment-review {
  position: relative;
}

.receive-payment-review > summary {
  cursor: pointer;
  list-style: none;
}

.receive-payment-review > summary::-webkit-details-marker {
  display: none;
}

.receive-payment-review-action {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
}

.receive-payment-review-action > summary {
  min-height: 30px;
  padding: 0;
  box-sizing: border-box;
  font-size: inherit;
  line-height: normal;
}

.icon-action.action-review:hover,
.receive-payment-review-action[open] > summary {
  color: #8a5a0a;
  background: #fdf1dc;
  border-color: #eccf9a;
}

.receive-payment-review-action > summary svg,
.receive-payment-review-action > summary i {
  width: 15px;
  height: 15px;
}

/* A classe extra no seletor garante especificidade acima da regra generica
   ".actions-cell form" (display: flex), que espremia o popover em linha. */
.receive-payment-review > form.receive-payment-review-panel {
  position: absolute;
  z-index: 40;
  top: calc(100% + 8px);
  right: 0;
  width: min(350px, 86vw);
  margin: 0;
  padding: 12px 14px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.24);
  display: grid;
  gap: 10px;
  align-items: stretch;
  white-space: normal;
  text-align: left;
  cursor: auto;
}

/* O wrapper da tabela (overflow-x: auto) cortaria o painel aberto nas ultimas
   linhas; mesma folga usada pelo menu de linha das NF-e. */
.mini-table-wrap:has(details[data-review-popover][open]) {
  padding-bottom: 440px;
  margin-bottom: -440px;
}

/* As celulas sticky das linhas seguintes (z-index 4, fundo opaco) pintariam por
   cima da faixa direita do painel; eleva so a linha com popover aberto. */
.receive-table tbody tr:has(details[data-review-popover][open]) .actions-cell {
  z-index: 6;
}

/* A regra zebra (tr:nth-child(even) .icon-action { background: #fff }) vence os
   estados ambar por especificidade; reafirma o fundo nas linhas pares. */
.receive-table.zebra-table tbody tr:nth-child(even) .icon-action.action-review:hover,
.receive-table.zebra-table tbody tr:nth-child(even) .receive-payment-review-action[open] > summary {
  background: #fdf1dc;
}

.receive-payment-review-panel [hidden] {
  display: none !important;
}

.receive-payment-review-head {
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--line);
}

.receive-payment-review-head-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  color: #8a5a0a;
  background: #fdf1dc;
}

.receive-payment-review-head-icon svg {
  width: 16px;
  height: 16px;
}

.receive-payment-review-head-text {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 1px;
}

.receive-payment-review-head-text strong {
  color: var(--text);
  font-size: 0.78rem;
}

.receive-payment-review-head-text small {
  color: var(--muted);
  font-size: 0.68rem;
}

.receive-payment-review-close {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}

.receive-payment-review-close:hover,
.receive-payment-review-close:focus-visible {
  color: var(--text);
  background: var(--surface-muted);
}

.receive-payment-review-close svg {
  width: 13px;
  height: 13px;
}

.receive-payment-review label {
  display: grid;
  gap: 4px;
  color: var(--text);
  font-size: 0.72rem;
  font-weight: 700;
}

.receive-payment-review select,
.receive-payment-review input,
.receive-payment-review textarea {
  width: 100%;
  min-height: 34px;
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-weight: 400;
}

.receive-payment-review textarea {
  min-height: 64px;
  resize: vertical;
}

.receive-payment-review-bank {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: -1px 0 0;
  padding: 7px 9px;
  border-radius: 7px;
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-size: 0.69rem;
  line-height: 1.5;
}

.receive-payment-review-bank svg {
  width: 13px;
  height: 13px;
  flex: 0 0 auto;
  margin-top: 2px;
}

/* Duas classes no seletor mantem o aviso inteiro dentro da coluna estreita. */
.receive-table .receive-bank-alert {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 3px;
  width: 100%;
  max-width: 100%;
  margin-top: 3px;
  padding: 5px 6px;
  border: 1px solid #eccf9a;
  border-radius: 8px;
  background: #fdf1dc;
  color: #8a5a0a;
  font-family: inherit;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: left;
  white-space: normal;
  cursor: help;
  appearance: none;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.receive-table .receive-bank-alert:hover,
.receive-table .receive-bank-alert:focus-visible,
.receive-table .receive-bank-alert[aria-expanded="true"] {
  border-color: #d8ad61;
  background: #fff7e8;
  box-shadow: 0 0 0 3px rgba(207, 139, 28, 0.14);
  outline: none;
}

.receive-bank-alert > span {
  min-width: 0;
  overflow-wrap: normal;
}

.receive-bank-alert svg {
  width: 11px;
  height: 11px;
  flex: 0 0 auto;
}

.receive-bank-alert .receive-bank-alert-info {
  width: 10px;
  height: 10px;
  opacity: 0.72;
}

.receive-bank-tooltip {
  position: fixed;
  z-index: 1200;
  width: min(320px, calc(100vw - 24px));
  padding: 0;
  border: 1px solid rgba(138, 90, 10, 0.2);
  border-radius: 12px;
  background: #fffdf9;
  color: var(--text);
  box-shadow: 0 18px 46px rgba(15, 23, 42, 0.2);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px) scale(0.985);
  transform-origin: center;
  transition: opacity 140ms ease, transform 140ms ease;
}

.receive-bank-tooltip[hidden] {
  display: none;
}

.receive-bank-tooltip.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.receive-bank-tooltip.is-pinned {
  pointer-events: auto;
}

.receive-bank-tooltip-content {
  max-height: calc(100dvh - 24px);
  padding: 14px;
  border-radius: inherit;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.receive-bank-tooltip::after {
  position: absolute;
  width: 10px;
  height: 10px;
  border: solid rgba(138, 90, 10, 0.2);
  background: #fffdf9;
  content: "";
  transform: rotate(45deg);
}

.receive-bank-tooltip[data-placement="left"]::after {
  top: calc(var(--receive-bank-tooltip-arrow-y, 50%) - 5px);
  right: -6px;
  border-width: 1px 1px 0 0;
}

.receive-bank-tooltip[data-placement="right"]::after {
  top: calc(var(--receive-bank-tooltip-arrow-y, 50%) - 5px);
  left: -6px;
  border-width: 0 0 1px 1px;
}

.receive-bank-tooltip[data-placement="top"]::after {
  left: calc(var(--receive-bank-tooltip-arrow-x, 80%) - 5px);
  bottom: -6px;
  border-width: 0 1px 1px 0;
}

.receive-bank-tooltip[data-placement="bottom"]::after {
  top: -6px;
  left: calc(var(--receive-bank-tooltip-arrow-x, 80%) - 5px);
  border-width: 1px 0 0 1px;
}

.receive-bank-tooltip-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 9px;
}

.receive-bank-tooltip-icon {
  display: inline-flex;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: #fdf1dc;
  color: #8a5a0a;
  font-size: 0.86rem;
  font-weight: 900;
}

.receive-bank-tooltip-title {
  display: grid;
  gap: 1px;
}

.receive-bank-tooltip-title small {
  color: #9a6814;
  font-size: 0.65rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.receive-bank-tooltip-title strong {
  font-size: 0.86rem;
  line-height: 1.25;
}

.receive-bank-tooltip-summary,
.receive-bank-tooltip-detail,
.receive-bank-tooltip-action {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.45;
}

.receive-bank-tooltip-summary {
  color: var(--text);
  font-weight: 750;
}

.receive-bank-tooltip-detail {
  margin-top: 5px;
  color: var(--muted);
}

.receive-bank-tooltip-action {
  margin-top: 10px;
  padding: 8px 9px;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
}

.receive-payment-review-hint {
  margin: -3px 0 0;
  padding: 7px 9px;
  border-radius: 7px;
  background: var(--surface-muted);
  color: var(--muted);
  font-size: 0.69rem;
  line-height: 1.5;
}

.receive-payment-review-hint.is-danger {
  color: #b42318;
  background: #fee4e2;
}

.receive-payment-review-footer {
  display: grid;
  gap: 8px;
  margin-top: 2px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.receive-payment-review-footer > small {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 0.68rem;
  white-space: normal;
}

.receive-payment-review-footer > small svg {
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
}

.receive-payment-review-footer-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
}

.receive-payment-review-footer-actions .btn-primary-app,
.receive-payment-review-footer-actions .btn-secondary-app {
  min-height: 32px;
  padding: 0 12px;
  font-size: 0.72rem;
}

.receive-payment-review-panel.is-danger .btn-primary-app {
  background: #b42318;
  border-color: #b42318;
  box-shadow: 0 10px 20px rgba(180, 35, 24, 0.16);
}

.receive-payment-review-panel.is-danger .btn-primary-app:hover {
  background: #912018;
  border-color: #912018;
}

.receive-payment-audit {
  position: relative;
}

.receive-payment-audit > summary {
  color: var(--muted);
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 700;
}

.receive-payment-audit > ul {
  position: absolute;
  z-index: 39;
  top: calc(100% + 6px);
  right: 0;
  width: min(330px, 82vw);
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 16px 35px rgba(15, 23, 42, 0.18);
  display: grid;
  gap: 8px;
  list-style: none;
  white-space: normal;
}

.receive-payment-audit > ul li {
  display: grid;
  gap: 2px;
  white-space: normal;
}

.receive-payment-audit span,
.receive-payment-audit small {
  white-space: normal;
}

.receive-payment-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

.receive-payment-actions .btn-primary-app,
.receive-payment-actions .btn-secondary-app {
  min-height: 34px;
  padding: 0 10px;
  font-size: 0.82rem;
}

.receive-payment-cancel {
  width: 34px;
  padding: 0;
}

.receive-payment-submit.is-loading,
.receive-payment-submit.is-loading:disabled {
  color: #fff;
  background: var(--accent);
  border-color: var(--accent);
  cursor: progress;
}

.receive-payment-submit.is-loading svg {
  animation: bank-processing-spin 1.1s linear infinite;
}

.receive-payment-submit.is-success,
.receive-payment-submit.is-success:disabled {
  color: #fff;
  background: var(--success);
  border-color: var(--success);
  opacity: 1;
}

.receive-payment-submit.is-error,
.receive-payment-submit.is-error:disabled {
  color: #fff;
  background: var(--danger);
  border-color: var(--danger);
  opacity: 1;
}

.receive-delete-form {
  position: relative;
}

.receive-delete-form.is-open .icon-action.danger {
  color: var(--danger);
  background: #fff1ee;
  border-color: #efb2aa;
}

.receive-delete-panel {
  position: absolute;
  z-index: 30;
  top: 40px;
  right: 0;
  display: grid;
  gap: 7px;
  width: 228px;
  padding: 10px;
  border: 1px solid #efb2aa;
  border-radius: 8px;
  color: var(--text);
  background: #ffffff;
  box-shadow: 0 16px 36px rgba(31, 41, 51, 0.16);
  white-space: normal;
}

.receive-delete-panel::before {
  position: absolute;
  top: -6px;
  right: 13px;
  width: 10px;
  height: 10px;
  content: "";
  background: #ffffff;
  border-top: 1px solid #efb2aa;
  border-left: 1px solid #efb2aa;
  transform: rotate(45deg);
}

.receive-delete-panel[hidden] {
  display: none;
}

.receive-delete-panel strong {
  font-size: 0.78rem;
  line-height: 1.2;
}

.receive-delete-panel > span {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.25;
}

.receive-delete-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
}

.receive-delete-actions .btn-primary-app,
.receive-delete-actions .btn-secondary-app {
  min-height: 32px;
  padding: 0 10px;
  font-size: 0.78rem;
}

.receive-delete-submit.danger,
.receive-delete-submit.danger:disabled {
  color: #fff;
  background: var(--danger);
  border-color: var(--danger);
}

.receive-delete-submit.is-loading svg {
  animation: bank-processing-spin 1.1s linear infinite;
}

.icon-action.action-bank-cancel {
  color: var(--danger);
}

.icon-action.action-local-delete {
  color: var(--danger);
}

.action-bank-cancel-symbol {
  position: relative;
  display: inline-grid;
  width: 16px;
  height: 16px;
  place-items: center;
}

.action-bank-cancel-symbol svg {
  grid-area: 1 / 1;
  width: 16px;
  height: 16px;
}

.action-bank-cancel-symbol .action-bank-cancel-mark {
  position: absolute;
  top: -5px;
  right: -6px;
  width: 12px;
  height: 12px;
  padding: 1px;
  color: var(--danger);
  background: #ffffff;
  border: 1px solid #efb2aa;
  border-radius: 999px;
  stroke-width: 3;
}

.receive-bank-cancel-panel,
.receive-bank-local-delete-panel {
  width: 262px;
}

.icon-action.action-bank {
  color: var(--accent);
}

.icon-action.action-bank.action-bank-processing {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.3);
  cursor: help;
  opacity: 1;
}

.icon-action.action-bank.action-bank-processing:hover {
  color: var(--accent-strong);
  background: #dfe5ff;
}

.icon-action.action-bank.action-bank-processing svg {
  animation: bank-processing-spin 1.4s linear infinite;
}

.icon-action.action-boleto-pdf {
  color: #8a5a0a;
}

.icon-action.action-review {
  color: #8a5a0a;
}

.icon-action.action-boleto-pdf.action-unavailable {
  color: #94a3b8;
  background: #f8fafc;
  border-color: #d7e0ea;
  cursor: help;
}

.icon-action.action-boleto-pdf.action-unavailable:hover {
  color: #64748b;
  background: #f1f5f9;
}

.icon-action.action-fiscal-xml {
  color: var(--accent);
}

.icon-action.action-fiscal-pdf {
  color: #8a5a0a;
}

.icon-action.action-fiscal-unavailable {
  color: #94a3b8;
  background: #f8fafc;
  border-color: #d7e0ea;
  cursor: help;
}

.icon-action.action-fiscal-unavailable:hover {
  color: #64748b;
  background: #f1f5f9;
}

.icon-action.action-email {
  color: #4b5c7a;
}

.icon-action.action-whatsapp {
  color: #147a53;
}

.icon-action.action-provision {
  color: #8a5a0a;
}

.icon-action.action-provision-return {
  color: var(--accent);
}

.receive-table .actions-cell .icon-action {
  width: 28px;
  height: 28px;
  border-radius: 6px;
}

.receive-table .actions-cell .icon-action svg {
  width: 14px;
  height: 14px;
}

.receive-action-feedback {
  flex: 1 0 100%;
  min-width: 180px;
  color: var(--accent-strong);
  font-size: 0.75rem;
  font-weight: 800;
  white-space: normal;
}

.receive-action-feedback[data-feedback-kind="error"] {
  color: var(--danger);
}

.actions-cell {
  width: 130px;
  white-space: nowrap;
}

.actions-group,
.actions-cell form {
  display: flex;
  align-items: center;
  gap: 7px;
}

.actions-group {
  justify-content: flex-start;
}

.actions-cell form {
  margin: 0;
}

.icon-action {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  text-decoration: none;
}

.icon-action svg {
  width: 17px;
  height: 17px;
}

.icon-action:hover {
  color: var(--accent-strong);
  background: var(--surface-muted);
}

.icon-action.is-loading,
.icon-action.is-loading:disabled {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: rgba(28, 34, 38, 0.3);
  cursor: progress;
  opacity: 1;
}

.icon-action.is-loading svg {
  animation: bank-processing-spin 1.1s linear infinite;
}

.icon-action.is-success,
.icon-action.is-success:disabled {
  color: var(--success-strong);
  background: var(--success-soft);
  border-color: var(--success-line);
  opacity: 1;
}

.icon-action.is-error,
.icon-action.is-error:disabled {
  color: var(--danger);
  background: #fff1ee;
  border-color: #efb2aa;
  opacity: 1;
}

.icon-action:disabled {
  cursor: not-allowed;
  opacity: 0.42;
  background: var(--surface-muted);
}

.icon-action:disabled:hover {
  color: inherit;
}

.icon-action.danger {
  color: var(--danger);
}

body.contract-panel-open {
  overflow: hidden;
}

.action-contract-drawer {
  color: var(--accent-strong);
}

.action-contract-drawer:hover,
.action-contract-drawer:focus-visible {
  color: var(--accent);
  border-color: rgba(28, 34, 38, 0.34);
  background: var(--accent-soft);
}

.contract-side-drawer {
  position: fixed;
  inset: 0;
  z-index: 1100;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0s linear 520ms;
}

.contract-side-drawer[aria-hidden="false"] {
  pointer-events: auto;
  visibility: visible;
  transition-delay: 0s;
}

.contract-side-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.26);
  opacity: 0;
  transition: opacity 460ms ease;
}

.contract-side-drawer[aria-hidden="false"] .contract-side-backdrop {
  opacity: 1;
}

.contract-side-panel {
  position: absolute;
  top: 14px;
  right: 14px;
  bottom: 14px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(920px, calc(100vw - 28px));
  overflow: hidden;
  border: 1px solid rgba(28, 34, 38, 0.2);
  border-left: 4px solid var(--accent);
  border-radius: 8px 0 0 8px;
  background: #ffffff;
  box-shadow: -24px 0 60px rgba(15, 23, 42, 0.2);
  opacity: 0.96;
  transform: translateX(calc(100% + 40px));
  transition: transform 520ms cubic-bezier(0.19, 1, 0.22, 1), opacity 380ms ease, box-shadow 520ms ease;
}

.contract-side-drawer[aria-hidden="false"] .contract-side-panel {
  opacity: 1;
  transform: translateX(0);
}

.contract-side-chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
  min-height: 62px;
  padding: 12px 14px 12px 16px;
  border-bottom: 1px solid rgba(28, 34, 38, 0.13);
  background: #fbfdff;
}

.contract-side-title {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.contract-side-title span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.contract-side-title strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 1rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-side-frame-shell {
  position: relative;
  min-width: 0;
  min-height: 0;
  background: #f7f9fc;
}

.contract-side-frame-shell iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #f7f9fc;
  opacity: 0;
  transition: opacity 180ms ease;
}

.contract-side-frame-shell iframe.is-loaded {
  opacity: 1;
}

.contract-side-loading {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  color: var(--accent-strong);
  background: #f7f9fc;
  font-weight: 850;
}

.contract-side-loading[hidden] {
  display: none;
}

.contract-side-loading svg {
  width: 24px;
  height: 24px;
  animation: bank-processing-spin 1.1s linear infinite;
}

.embedded-content {
  min-height: 100vh;
}

.contract-panel-body {
  overflow-x: hidden;
  padding-bottom: 0;
  background: #f7f9fc;
  font-size: 14px;
}

.contract-panel-page {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 100vh;
  padding: 14px;
}

.contract-panel-page .panel {
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  box-shadow: none;
}

.contract-panel-header-card {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
}

.contract-panel-header-card .section-header {
  flex-direction: row;
  align-items: center;
  margin-bottom: 0;
}

.contract-panel-header-card.panel {
  padding: 10px 12px;
}

.contract-panel-header-card h2 {
  margin: 0 0 2px;
  font-size: 1rem;
}

.contract-panel-header-card p {
  overflow: hidden;
  margin-bottom: 0;
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contract-panel-editor {
  border-left: 4px solid var(--accent) !important;
}

.contract-panel-collapsible {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.contract-panel-collapsible > .collapsible-entry-summary {
  display: none;
}

.contract-panel-collapsible > .collapsible-entry-body {
  padding: 0;
  border-top: 0;
}

.form-grid.contract-panel-form {
  grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 10px;
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
  font-size: 0.92rem;
}

.contract-panel-form > .span-3,
.contract-panel-form > .inline-grid-panel {
  grid-column: 1 / -1;
}

.contract-panel-form .contract-field-client {
  grid-column: span 2;
}

.contract-period-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  align-items: start;
  gap: 10px;
}

.contract-panel-form .field {
  gap: 5px;
}

.contract-panel-form .field > span:first-child,
.contract-panel-form .field-label {
  font-size: 0.74rem;
}

.contract-panel-form input,
.contract-panel-form select,
.contract-panel-form textarea {
  min-height: 36px;
  padding: 7px 9px;
  font-size: 0.88rem;
}

.contract-panel-form select {
  height: 36px;
}

.contract-panel-form textarea {
  min-height: 68px;
}

.contract-panel-form .inline-grid-panel {
  padding: 10px;
}

.contract-panel-form .contract-ranges-body {
  grid-template-columns: minmax(0, 620px);
  align-items: start;
  justify-content: start;
}

.contract-panel-form .contract-range-base-value {
  max-width: none;
  width: min(100%, 220px);
}

.contract-panel-form .contract-range-rows {
  width: 100%;
  max-width: 620px;
}

.contract-panel-form .contract-range-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) 80px;
}

.contract-panel-form .contract-ranges-body > [data-valmsg-for="ContratoInput.Faixas"] {
  grid-column: 1 / -1;
}

.contract-panel-form .inline-grid-header {
  align-items: flex-start;
}

.contract-panel-form .inline-grid-header strong {
  font-size: 0.84rem;
}

.contract-panel-form .inline-grid-header span {
  font-size: 0.74rem;
}

.contract-panel-form .due-day-options {
  gap: 6px;
}

.contract-panel-form .switch-field {
  min-height: 32px;
  font-size: 0.84rem;
}

.contract-panel-form .range-row-actions {
  min-height: 58px;
}

.contract-panel-form .form-actions {
  margin-top: 4px;
}

@media (max-width: 980px) {
  .contract-side-panel {
    top: 8px;
    right: 8px;
    bottom: 8px;
    width: calc(100vw - 16px);
    border-radius: 8px;
  }

  .contract-panel-form .span-3,
  .contract-panel-form .inline-grid-panel {
    grid-column: 1 / -1;
  }
}

@media (max-width: 800px) {
  .form-grid.contract-panel-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contract-panel-form .contract-ranges-body {
    grid-template-columns: 1fr;
  }

  .contract-panel-form .contract-range-base-value {
    width: min(100%, 220px);
  }
}

@media (max-width: 640px) {
  .date-range-popover {
    width: min(420px, calc(100vw - 36px));
    padding: 10px;
  }

  .date-range-body,
  .date-range-inputs {
    grid-template-columns: 1fr;
  }

  .date-range-presets {
    grid-template-columns: 1fr;
  }

  .date-range-month-list {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
  }

  .date-range-footer {
    justify-content: stretch;
  }

  .receivable-period-popover {
    width: min(420px, calc(100vw - 36px));
    padding: 10px;
  }

  .receivable-period-options,
  .receivable-period-editor {
    grid-template-columns: 1fr;
  }

  .receivable-period-actions {
    justify-content: stretch;
  }

  .date-range-action {
    flex: 1 1 0;
  }

  .contract-side-panel {
    top: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    border-width: 0 0 0 4px;
    border-radius: 0;
  }

  .contract-side-chrome {
    min-height: 58px;
    padding: 10px 12px;
  }

  .contract-panel-page {
    padding: 10px;
  }

  .form-grid.contract-panel-form {
    grid-template-columns: 1fr;
  }

  .contract-panel-form .contract-field-client {
    grid-column: 1 / -1;
  }

  .contract-panel-form .span-2,
  .contract-panel-form .span-3,
  .contract-panel-form .span-4,
  .contract-panel-form .inline-grid-panel {
    grid-column: 1 / -1;
  }

  .contract-panel-form .contract-range-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contract-panel-form .range-row-actions {
    justify-content: flex-end;
    min-height: 36px;
  }
}

@keyframes bank-processing-spin {
  to {
    transform: rotate(360deg);
  }
}



@keyframes app-loading-progress {
  0% {
    transform: translateX(-110%);
  }

  50% {
    transform: translateX(58%);
  }

  100% {
    transform: translateX(220%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .app-loading-progress span {
    width: 100%;
  }
}

@keyframes fiscal-progress-pulse {
  0%,
  80%,
  100% {
    opacity: 0.35;
    transform: scale(0.72);
  }

  40% {
    opacity: 1;
    transform: scale(1);
  }
}

.empty-state {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 44px 18px;
  color: var(--muted);
  text-align: center;
}

.empty-state svg {
  width: 36px;
  height: 36px;
  color: var(--accent);
}

.empty-state strong {
  color: var(--text);
  font-size: 1.05rem;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 34px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.detail-block h3 {
  margin: 0 0 12px;
  font-size: 1rem;
  font-weight: 760;
}

.detail-block dl {
  display: grid;
  grid-template-columns: minmax(130px, 0.4fr) minmax(0, 1fr);
  gap: 9px 16px;
  margin: 0;
}

.detail-block dt {
  color: var(--muted);
  font-weight: 800;
}

.detail-block dd {
  margin: 0;
}

.detail-block p {
  margin: 0;
  color: var(--text);
  line-height: 1.55;
}

.document-list {
  display: grid;
  gap: 10px;
}

.document-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.document-item strong,
.document-item small {
  display: block;
}

.document-item strong {
  margin-top: 7px;
  overflow-wrap: anywhere;
}

.document-item small {
  margin-top: 4px;
  color: var(--muted);
}

.document-actions {
  display: flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
}

.document-actions form {
  margin: 0;
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
  text-align: start;
}

@media (min-width: 981px) {
  html.sidebar-collapsed .app-shell {
    grid-template-columns: var(--sidebar-collapsed-width) minmax(0, 1fr);
  }

  html.sidebar-collapsed .app-sidebar {
    gap: 22px;
    padding: 20px 12px;
  }

  html.sidebar-collapsed .sidebar-head {
    flex-direction: column;
    justify-content: flex-start;
  }

  html.sidebar-collapsed .brand {
    justify-content: center;
    width: 100%;
  }

  html.sidebar-collapsed .brand-lockup {
    display: none;
  }

  html.sidebar-collapsed .brand-icon {
    display: block;
  }

  html.sidebar-collapsed .brand-copy,
  html.sidebar-collapsed .nav-label,
  html.sidebar-collapsed .side-link span,
  html.sidebar-collapsed .side-sub-link span {
    display: none;
  }

  html.sidebar-collapsed .side-nav {
    align-items: center;
    gap: 8px;
  }

  html.sidebar-collapsed .side-group-row {
    display: block;
    width: 44px;
  }

  html.sidebar-collapsed .side-group-row.active {
    box-shadow: inset 3px 0 0 var(--accent-warm);
  }

  html.sidebar-collapsed .side-group-toggle {
    display: none;
  }

  html.sidebar-collapsed .side-sub-toggle {
    display: none;
  }

  html.sidebar-collapsed .side-sub-parent-row {
    display: block;
  }

  html.sidebar-collapsed .side-link,
  html.sidebar-collapsed .side-sub-link {
    justify-content: center;
    width: 44px;
    min-height: 44px;
    padding: 0;
  }

  html.sidebar-collapsed .side-subnav {
    align-items: center;
    align-self: center;
    width: 56px;
    margin: -2px 0 10px;
    padding: 2px 0 6px;
    border-left: 0;
  }

  html.sidebar-collapsed .side-sub-link {
    position: relative;
    align-self: flex-end;
    width: 42px;
    min-height: 42px;
    background: rgba(28, 34, 38, 0.055);
  }

  html.sidebar-collapsed .side-sub-link.side-sub-link-finance::after {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 5px;
    height: 5px;
    flex-basis: auto;
    margin-left: 0;
    box-shadow: none;
  }

  html.sidebar-collapsed .side-sub-link::before {
    content: none;
  }

  html.sidebar-collapsed .side-sub-divider {
    width: 28px;
    margin: 2px 0 2px auto;
  }

  html.sidebar-collapsed .side-nav-divider {
    width: 30px;
    margin: 4px auto;
  }

  html.sidebar-collapsed .side-sub-childnav {
    display: none;
  }

  html.sidebar-collapsed .side-link.active,
  html.sidebar-collapsed .side-sub-link.active {
    box-shadow: inset 3px 0 0 var(--accent-warm);
  }
}

@media (min-width: 981px) {
  html.sidebar-collapsed .app-shell {
    grid-template-columns: var(--context-sidebar-collapsed-width) minmax(0, 1fr);
  }

  html.sidebar-collapsed .app-sidebar {
    display: none;
  }

  html.sidebar-collapsed .context-sidebar {
    padding: 14px 8px;
  }

  html.sidebar-collapsed .context-sidebar-head {
    justify-content: center;
    padding-bottom: 8px;
  }

  html.sidebar-collapsed .context-sidebar-title,
  html.sidebar-collapsed .context-section-label,
  html.sidebar-collapsed .context-group-title,
  html.sidebar-collapsed .context-link span {
    display: none;
  }

  html.sidebar-collapsed .context-nav {
    justify-items: center;
    gap: 7px;
  }

  html.sidebar-collapsed .context-link {
    grid-template-columns: 1fr;
    justify-items: center;
    width: 44px;
    min-height: 44px;
    padding: 0;
  }

  html.sidebar-collapsed .context-group-title-row {
    justify-content: center;
    margin: 0 0 4px;
  }

  html.sidebar-collapsed .context-group-title-link {
    width: 44px;
    min-height: 44px;
    padding: 0;
  }

  html.sidebar-collapsed .context-group-toggle {
    width: 44px;
    height: 32px;
  }

  html.sidebar-collapsed .context-nav-divider {
    width: 30px;
    margin: 4px auto;
  }

  html.sidebar-collapsed .context-link.active {
    box-shadow: inset 3px 0 0 var(--accent-warm);
  }
}

@media (max-width: 980px) {
  body {
    padding-bottom: calc(80px + env(safe-area-inset-bottom));
  }

  body.mobile-more-open {
    overflow: hidden;
  }

  .app-shell {
    grid-template-columns: 1fr;
  }

  .app-sidebar {
    display: none;
  }

  .context-sidebar {
    display: none;
  }

  .desktop-app-header {
    display: none;
  }

  .mobile-app-header {
    position: sticky;
    top: 0;
    z-index: 90;
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr) 42px;
    align-items: center;
    gap: 10px;
    min-height: 62px;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(216, 222, 230, 0.86);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(14px);
  }

  .mobile-brand-mini {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: var(--text);
    font-weight: 900;
    text-decoration: none;
  }

  .mobile-brand-mini img {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
  }

  .mobile-brand-mini span {
    overflow: hidden;
    max-width: 128px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-page-heading {
    min-width: 0;
    text-align: right;
  }

  .mobile-page-heading span,
  .mobile-page-heading strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-page-heading span {
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .mobile-page-heading strong {
    margin-top: 1px;
    color: var(--text);
    font-size: 0.92rem;
    font-weight: 900;
  }

  .mobile-header-button,
  .mobile-more-close {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid rgba(28, 34, 38, 0.12);
    border-radius: 8px;
    color: var(--accent-strong);
    background: var(--surface);
  }

  .mobile-header-button svg,
  .mobile-more-close svg {
    width: 20px;
    height: 20px;
    stroke-width: 2.2;
  }

  .mobile-bottom-nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 110;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(216, 222, 230, 0.92);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 -14px 34px rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(18px);
  }

  .receivable-summary-strip {
    right: 12px;
    bottom: calc(86px + env(safe-area-inset-bottom));
    left: 12px;
    width: auto;
    grid-template-columns: repeat(4, minmax(116px, 1fr));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }

  html.sidebar-collapsed .receivable-summary-strip {
    left: 12px;
    width: auto;
  }

  .receivable-summary-strip-item {
    padding-inline: 10px;
  }

  body.has-receivable-summary-strip .content {
    padding-bottom: 158px;
  }

  .mobile-nav-item {
    display: grid;
    grid-template-rows: 22px auto;
    place-items: center;
    gap: 2px;
    min-width: 0;
    min-height: 54px;
    padding: 6px 4px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--muted);
    background: transparent;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 850;
    text-align: center;
    text-decoration: none;
  }

  .mobile-nav-item svg {
    width: 21px;
    height: 21px;
    stroke-width: 2.2;
  }

  .mobile-nav-item span {
    overflow: hidden;
    max-width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-nav-item.active {
    color: var(--accent-strong);
    border-color: rgba(28, 34, 38, 0.14);
    background: var(--accent-soft);
  }

  .mobile-nav-button[aria-expanded="true"] {
    color: #fff;
    border-color: var(--accent);
    background: var(--accent);
  }

  .mobile-nav-backdrop {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: block;
    background: rgba(15, 23, 42, 0.42);
  }

  .mobile-more-panel {
    position: fixed;
    right: 10px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 130;
    display: flex;
    flex-direction: column;
    max-height: min(74vh, 620px);
    overflow: hidden;
    border: 1px solid rgba(216, 222, 230, 0.92);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 26px 70px rgba(15, 23, 42, 0.28);
  }

  .mobile-nav-backdrop[hidden],
  .mobile-more-panel[hidden] {
    display: none;
  }

  .mobile-more-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border-bottom: 1px solid var(--line);
  }

  .mobile-more-head span,
  .mobile-more-head strong {
    display: block;
  }

  .mobile-more-head span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .mobile-more-head strong {
    margin-top: 2px;
    font-size: 1rem;
    font-weight: 900;
  }

  .mobile-more-links {
    display: grid;
    gap: 8px;
    padding: 12px;
    overflow-y: auto;
  }

  .mobile-bpo-company-switcher {
    display: block;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-muted);
  }

  .mobile-bpo-company-label {
    display: block;
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .mobile-bpo-company-switcher {
    position: relative;
  }

  .mobile-bpo-company-switcher .bpo-company-trigger {
    width: 100%;
    min-height: 56px;
  }

  .mobile-bpo-company-switcher .bpo-company-popover {
    position: static;
    width: 100%;
    max-width: none;
    max-height: 250px;
    margin-top: 8px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.14);
  }

  .mobile-more-link {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 9px 10px;
    border: 1px solid rgba(216, 222, 230, 0.92);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    text-decoration: none;
  }

  .mobile-more-link svg {
    width: 21px;
    height: 21px;
    justify-self: center;
    color: var(--accent-strong);
    stroke-width: 2.1;
  }

  .mobile-more-link span,
  .mobile-more-link strong,
  .mobile-more-link small {
    display: block;
    min-width: 0;
  }

  .mobile-more-link strong,
  .mobile-more-link small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-more-link strong {
    font-size: 0.92rem;
    font-weight: 900;
  }

  .mobile-more-link small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 750;
  }

  .mobile-more-link.active {
    border-color: rgba(28, 34, 38, 0.22);
    background: var(--accent-soft);
    box-shadow: inset 3px 0 0 var(--accent-warm);
  }

  .mobile-more-account {
    padding: 12px;
    border-top: 1px solid var(--line);
    background: var(--surface-muted);
  }

  .mobile-more-account .account-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
  }

  .mobile-more-account .tenant-pill,
  .mobile-more-account .account-link,
  .mobile-more-account .btn-secondary-app,
  .mobile-more-account .btn-primary-app {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
  }

  .sidebar-toggle {
    display: none;
  }

  .side-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .nav-label {
    display: none;
  }

  .side-link {
    min-height: 42px;
  }

  .side-group-row {
    grid-template-columns: minmax(0, 1fr) 36px;
  }

  .side-group-toggle {
    width: 32px;
    height: 32px;
  }

  .side-subnav {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    margin: -2px 0 4px;
    padding-left: 0;
    border-left: 0;
  }

  .side-sub-link {
    flex: 1 1 170px;
    min-height: 38px;
    background: rgba(28, 34, 38, 0.055);
  }

  .side-sub-divider {
    flex: 1 0 100%;
    margin: 0;
  }

  .side-nav-divider {
    grid-column: 1 / -1;
    margin: 4px 0;
  }

  .topbar {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
  }

  .account-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .content {
    width: 100%;
    padding: 18px 14px 18px;
  }

  .dashboard-overview {
    align-items: flex-start;
    flex-direction: column;
  }

  .dashboard-actions {
    justify-content: flex-start;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-panel,
  .module-grid,
  .detail-grid {
    grid-template-columns: 1fr;
  }

  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fiscal-tax-flow,
  .fiscal-tax-values-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .automation-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .filter-bar,
  .form-grid,
  .user-create-form,
  .integration-field-grid {
    grid-template-columns: 1fr;
  }

  .accounting-export-filter-bar {
    grid-template-columns: 1fr;
    grid-template-areas:
      "period"
      "movement"
      "account"
      "hint"
      "system"
      "actions";
  }

  .receivable-filter-bar {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
      "client client client client client period period period period status service service"
      "account account account bank bank bank search search search search actions actions";
  }

  .fiscal-filter-bar .fiscal-company-field,
  .fiscal-filter-bar .fiscal-document-filter,
  .fiscal-filter-bar .fiscal-range-field,
  .fiscal-filter-bar .fiscal-direction-field,
  .fiscal-filter-bar .fiscal-status-field,
  .fiscal-filter-bar .fiscal-uf-field,
  .fiscal-filter-bar .fiscal-cfop-field,
  .fiscal-filter-bar .fiscal-value-field,
  .fiscal-filter-bar .form-actions,
  .receivable-period-smart-field,
  .payable-filter-bar .payable-period-smart-field,
  .payable-filter-bar .payable-owner-filter,
  .payable-filter-bar .payable-supplier-filter,
  .payable-filter-bar .payable-status-filter,
  .payable-filter-bar .payable-category-filter,
  .payable-filter-bar .payable-cost-filter,
  .payable-filter-bar .payable-account-filter,
  .payable-filter-bar .payable-search-filter,
  .payable-filter-bar .payable-title-filter,
  .payable-filter-bar .payable-filter-actions,
  .contract-filter-bar .contract-client-filter,
  .contract-filter-bar .contract-bank-field,
  .contract-filter-bar .contract-account-field,
  .contract-filter-bar .contract-search-field,
  .contract-filter-bar .form-actions {
    grid-column: auto;
  }

  .contract-filter-bar .form-actions {
    flex-wrap: wrap;
  }

  .sefaz-conference-grid,
  .sefaz-paste-area {
    grid-template-columns: 1fr;
  }

  .sefaz-side-controls .btn-primary-app {
    width: 100%;
  }

  .sefaz-key-summary-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .sefaz-key-summary-head small {
    text-align: left;
  }

  .sefaz-key-preview-row {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .sefaz-key-preview-company,
  .sefaz-key-preview-source {
    grid-column: 2;
  }

  .sefaz-floating-panel {
    right: 12px;
    bottom: 12px;
    width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    overflow: auto;
  }

  .sefaz-floating-panel textarea {
    min-height: 220px;
    max-height: 46vh;
  }

  .sefaz-floating-panel-actions {
    flex-wrap: wrap;
  }

  .sefaz-key {
    max-width: min(330px, 72vw);
  }

  .icms-rule-form {
    grid-template-columns: 1fr;
  }

  .icms-incidence-form {
    grid-template-columns: 1fr;
  }

  .icms-aliquota-form {
    grid-template-columns: 1fr;
  }

  .icms-rule-form .field,
  .icms-rule-form .icms-cest-suggestion,
  .icms-rule-form .icms-rule-description,
  .icms-rule-form .icms-rule-source,
  .icms-rule-form .icms-rule-notes,
  .icms-rule-form .form-actions,
  .icms-incidence-form .field,
  .icms-incidence-form .icms-incidence-source,
  .icms-incidence-form .icms-incidence-notes,
  .icms-incidence-form .form-actions,
  .icms-aliquota-form .field,
  .icms-aliquota-form .icms-aliquota-source,
  .icms-aliquota-form .icms-aliquota-ncms,
  .icms-aliquota-form .icms-aliquota-notes,
  .icms-aliquota-form .form-actions,
  .icms-check {
    grid-column: auto;
  }

  .icms-linked-ncm-form {
    grid-template-columns: 1fr;
  }

  .icms-rule-search {
    width: 100%;
    flex-wrap: wrap;
  }

  .icms-document-details summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .icms-purpose-form {
    min-width: 220px;
  }

  .date-range-popover {
    left: 0;
    right: auto;
    width: min(660px, calc(100vw - 36px));
  }

  .date-range-popover::before {
    left: 32px;
    right: auto;
  }

  .receivable-period-popover {
    left: 0;
    right: auto;
    width: min(640px, calc(100vw - 36px));
  }

  .receivable-period-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .permission-grid {
    grid-template-columns: 1fr;
  }

  .permission-suboptions {
    grid-template-columns: 1fr;
  }

  .access-matrix-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .access-matrix-tools {
    justify-content: flex-start;
    flex-wrap: wrap;
    width: 100%;
  }

  .access-route-list {
    grid-template-columns: 1fr;
  }

  .access-route-entry:nth-child(odd),
  .access-route-entry:nth-child(even) {
    padding-right: 2px;
    padding-left: 2px;
    border-left: 0;
  }

  .access-route-entry:nth-child(n + 2) {
    border-top: 1px solid rgba(15, 23, 42, 0.065);
  }

  .access-route-panel {
    padding: 0 14px 12px 58px;
  }

  .user-access-editor {
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .user-access-card-meta {
    grid-template-columns: 1fr;
  }

  .user-basic-edit-form {
    grid-template-columns: 1fr;
  }

  .access-editor-actions {
    justify-content: flex-start;
  }

  .access-editor-actions .access-toggle {
    justify-content: flex-start;
  }

  .collapsible-entry-summary {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .collapsible-entry-action {
    margin-left: 44px;
  }

  .allocation-item-row {
    grid-template-columns: 1fr;
  }

  .allocation-row-actions {
    justify-content: flex-end;
    min-height: auto;
  }

  .allocation-items-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .period-grid-layout {
    grid-template-columns: 1fr;
  }

  .inline-grid-header {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .contract-range-base-value {
    max-width: none;
  }

  .contract-range-grid {
    grid-template-columns: 1fr;
  }

  .contract-range-header {
    display: none;
  }

  .range-row-actions {
    justify-content: flex-end;
    min-height: auto;
  }

  .tipo-pessoa-field,
  .cnpj-lookup-field,
  .data-abertura-field,
  .data-baixa-field,
  .entity-active-toggle {
    flex-basis: auto;
    max-width: none;
    width: 100%;
  }

  .cpf-field {
    max-width: none;
  }

  .check-grid,
  .file-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .span-2,
  .span-3,
  .span-4 {
    grid-column: auto;
  }

  .section-header,
  .table-heading {
    flex-direction: column;
  }

  .bulk-action-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .bulk-action-bar .actions-row {
    justify-content: flex-start;
  }

  .service-mode-nav,
  .obligation-status-columns {
    grid-template-columns: 1fr;
  }

  .panel-month-form {
    justify-content: flex-start;
  }

  .obligation-panel-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .obligation-day {
    min-height: 98px;
    padding: 8px;
  }
}

@media (max-width: 720px) {
  .receivable-filter-bar {
    grid-template-columns: 1fr;
    grid-template-areas:
      "client"
      "period"
      "status"
      "service"
      "account"
      "bank"
      "tipo"
      "search"
      "actions";
  }

  .mobile-brand-mini span {
    display: none;
  }

  .mobile-app-header {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
  }

  .mobile-page-heading {
    text-align: center;
  }

  .dashboard-overview,
  .dashboard-grid {
    display: none;
  }

  .mobile-dashboard-quick {
    display: grid;
    gap: 12px;
  }

  .mobile-dashboard-hero {
    display: grid;
    gap: 4px;
    padding: 16px;
    border: 1px solid rgba(28, 34, 38, 0.16);
    border-radius: 8px;
    color: #fff;
    background: var(--accent);
    box-shadow: 0 18px 38px rgba(28, 34, 38, 0.18);
  }

  .mobile-dashboard-hero span {
    font-size: 0.78rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .mobile-dashboard-hero strong {
    overflow-wrap: anywhere;
    font-size: 1.82rem;
    font-weight: 900;
    line-height: 1.08;
  }

  .mobile-dashboard-hero small {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.86rem;
    font-weight: 800;
  }

  .mobile-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
  }

  .mobile-quick-actions a {
    display: grid;
    place-items: center;
    gap: 6px;
    min-width: 0;
    min-height: 72px;
    padding: 9px 6px;
    border: 1px solid rgba(28, 34, 38, 0.12);
    border-radius: 8px;
    color: var(--accent-strong);
    background: #fff;
    font-size: 0.78rem;
    font-weight: 850;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.07);
  }

  .mobile-quick-actions svg {
    width: 23px;
    height: 23px;
    stroke-width: 2.2;
  }

  .mobile-quick-actions span {
    overflow: hidden;
    max-width: 100%;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .dashboard-metric-grid {
    margin-top: 14px;
  }

  .dashboard-metric-grid .dashboard-kpi:nth-child(n+5) {
    display: none;
  }

  .mobile-dashboard-feed {
    display: grid;
    gap: 12px;
    margin-top: 14px;
  }

  .mobile-task-section {
    display: grid;
    gap: 8px;
  }

  .mobile-task-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
  }

  .mobile-task-heading > div {
    display: grid;
    gap: 2px;
    min-width: 0;
  }

  .mobile-task-heading strong {
    display: block;
    font-size: 0.96rem;
    font-weight: 900;
  }

  .mobile-task-heading span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 760;
    line-height: 1.2;
  }

  .mobile-task-heading a {
    flex: 0 0 auto;
    color: var(--accent-strong);
    font-size: 0.8rem;
    font-weight: 850;
    text-decoration: none;
  }

  .mobile-task-list {
    display: grid;
    gap: 8px;
  }

  .mobile-task-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 4px 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    background: #fff;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.07);
  }

  .mobile-task-card strong,
  .mobile-task-card small {
    overflow-wrap: anywhere;
  }

  .mobile-task-card strong {
    grid-column: 1 / -1;
    grid-row: 2 / 3;
    font-size: 0.94rem;
    font-weight: 900;
    line-height: 1.2;
  }

  .mobile-task-card small {
    grid-column: 1 / -1;
    grid-row: 3 / 4;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.25;
  }

  .mobile-task-type {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    color: var(--accent-strong);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
  }

  .mobile-task-type.danger {
    color: var(--brand-orange);
  }

  .mobile-task-value {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
    justify-self: end;
    color: var(--text);
    font-weight: 900;
    white-space: nowrap;
  }

  .mobile-task-card .status-pill {
    grid-column: 1 / -1;
    grid-row: 4 / 5;
    justify-self: end;
  }

  .mobile-task-empty {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 56px;
    padding: 12px;
    border: 1px dashed var(--line);
    border-radius: 8px;
    color: var(--muted);
    background: #fff;
    font-weight: 800;
  }

  .mobile-task-empty svg {
    width: 19px;
    height: 19px;
    color: var(--success-strong);
  }
}

@media (max-width: 560px) {
  .brand-lockup {
    width: min(176px, 100%);
  }

  .metric-grid {
    grid-template-columns: 1fr;
  }

  .fiscal-tax-flow,
  .fiscal-tax-values-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-metric-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-kpi small {
    min-height: 0;
  }

  .automation-summary {
    grid-template-columns: 1fr;
  }

  .obligation-panel-summary {
    grid-template-columns: 1fr;
  }

  .obligation-calendar-weekdays span {
    font-size: 0.66rem;
  }

  .obligation-day {
    min-height: 78px;
    padding: 6px;
  }

  .obligation-day-items {
    gap: 3px;
  }

  .obligation-day-item {
    min-height: 20px;
    padding: 2px 5px;
    font-size: 0.66rem;
  }

  .obligation-day-item:nth-child(n+2) {
    display: none;
  }

  .obligation-day-more {
    font-size: 0.66rem;
  }

  .obligation-day-statuses {
    display: none;
  }

  .obligation-day-count {
    min-width: 22px;
    height: 20px;
    padding: 0 6px;
    font-size: 0.7rem;
  }

  .drop-upload-target {
    min-width: 0;
  }

  .check-grid,
  .file-grid {
    grid-template-columns: 1fr;
  }

  .collapsible-entry-summary {
    gap: 10px;
  }

  .collapsible-entry-action {
    width: calc(100% - 42px);
    margin-left: 42px;
  }

  .collapsible-entry-body {
    padding: 14px;
  }

  .document-item {
    align-items: flex-start;
    flex-direction: column;
  }
}

.print-feedback {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 120;
  max-width: min(420px, calc(100vw - 32px));
  margin-top: 0;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
}

.print-preview-lock {
  overflow: hidden;
}

.print-preview-overlay {
  position: fixed;
  inset: 0;
  z-index: 160;
  display: grid;
  padding: 22px;
  background: rgba(15, 23, 42, 0.58);
}

.print-preview-dialog {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(1180px, 100%);
  max-height: calc(100vh - 44px);
  margin: auto;
  overflow: hidden;
  border: 1px solid rgba(216, 222, 230, 0.65);
  border-radius: 10px;
  background: var(--bg);
  box-shadow: 0 28px 70px rgba(15, 23, 42, 0.34);
}

.print-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.print-preview-toolbar-title {
  min-width: 0;
}

.print-preview-toolbar-title strong,
.print-preview-toolbar-title span {
  display: block;
}

.print-preview-toolbar-title strong {
  font-size: 1rem;
}

.print-preview-toolbar-title span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.print-preview-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.print-preview-shell {
  min-height: 0;
  overflow: auto;
  padding: 22px;
}

.print-preview-paper {
  width: min(980px, 100%);
  min-height: 70vh;
  margin: 0 auto;
  padding: 32px;
  border: 1px solid #d1d9e3;
  border-radius: 8px;
  color: #111827;
  background: #ffffff;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.14);
}

.print-preview-report-header {
  display: grid;
  grid-template-columns: minmax(220px, auto) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  padding-bottom: 20px;
  border-bottom: 2px solid #111827;
}

.print-preview-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.print-preview-logo {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 10px;
  object-fit: contain;
}

.print-preview-logo-fallback {
  display: grid;
  place-items: center;
  color: #ffffff;
  background: var(--accent);
  font-size: 1rem;
  font-weight: 900;
}

.print-preview-brand-copy {
  min-width: 0;
}

.print-preview-brand-copy strong,
.print-preview-brand-copy span {
  display: block;
}

.print-preview-brand-copy strong {
  font-size: 1rem;
  font-weight: 850;
}

.print-preview-brand-copy span {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}

.print-preview-title-block {
  min-width: 0;
  text-align: right;
}

.print-preview-title-block .eyebrow {
  margin: 0 0 6px;
}

.print-preview-title-block h2 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 850;
}

.print-preview-title-block span {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  font-weight: 750;
}

.print-preview-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
  gap: 10px;
  margin: 18px 0 22px;
  padding: 12px;
  border: 1px solid #d8dee6;
  border-radius: 8px;
  background: #f8fafc;
}

.print-preview-meta-item {
  min-width: 0;
}

.print-preview-meta-item span,
.print-preview-meta-item strong {
  display: block;
}

.print-preview-meta-item span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.print-preview-meta-item strong {
  margin-top: 3px;
  overflow-wrap: anywhere;
  font-size: 0.88rem;
}

.print-preview-report-body {
  display: block;
  margin: 0;
  padding: 0;
  background: #ffffff;
}

.print-preview-report-body .panel,
.print-preview-report-body .module-card,
.print-preview-report-body .table-panel {
  break-inside: avoid;
  box-shadow: none;
  border: 1px solid #d8dee6;
  background: #ffffff;
}

.print-preview-report-body .panel:first-child {
  margin-top: 0;
}

.print-preview-report-body .actions-cell,
.print-preview-report-body .status-pill + small {
  break-inside: avoid;
}

.print-preview-report-body .responsive-table,
.print-preview-report-body .mini-table-wrap {
  overflow: visible;
}

.print-preview-report-body .data-table,
.print-preview-report-body .mini-table {
  min-width: 0;
  font-size: 0.76rem;
}

.print-preview-report-body .data-table th,
.print-preview-report-body .data-table td,
.print-preview-report-body .mini-table th,
.print-preview-report-body .mini-table td {
  padding: 8px;
}

.print-preview-report-body .receivable-report-table {
  font-size: 0.68rem;
}

.print-preview-report-body .receivable-report-table th,
.print-preview-report-body .receivable-report-table td {
  padding: 6px;
}

.print-preview-report-body .receivable-report-total-strip {
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
}

.print-preview-report-body .receivable-report-total-strip article {
  padding: 8px 10px;
}

.print-preview-report-body .receivable-report-total-strip span {
  font-size: 0.58rem;
}

.print-preview-report-body .receivable-report-total-strip strong {
  margin-top: 4px;
  font-size: 0.82rem;
}

.print-preview-report-body .receivable-report-total-strip small {
  margin-top: 2px;
  font-size: 0.62rem;
}

@media (max-width: 760px) {
  .receivable-report-total-strip {
    grid-template-columns: 1fr;
  }

  .print-preview-overlay {
    padding: 10px;
  }

  .print-preview-dialog {
    max-height: calc(100vh - 20px);
  }

  .print-preview-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .print-preview-actions {
    justify-content: flex-start;
  }

  .print-preview-shell {
    padding: 12px;
  }

  .print-preview-paper {
    padding: 18px;
  }

  .print-preview-report-header {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .print-preview-title-block {
    text-align: left;
  }
}

@media print {
  @page {
    margin: 12mm;
  }

  html,
  body {
    background: #ffffff !important;
  }

  body {
    color: #111827 !important;
  }

  .app-shell {
    display: block !important;
  }

  .app-sidebar,
  .topbar,
  .actions-row,
  .filter-bar,
  .report-selector,
  .print-feedback,
  .icon-action,
  .btn-primary-app,
  .btn-secondary-app {
    display: none !important;
  }

  .app-main,
  .content {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
  }

  .panel,
  .module-card,
  .table-panel {
    break-inside: avoid;
    box-shadow: none !important;
    border: 1px solid #d1d5db !important;
    background: #ffffff !important;
  }

  .table-panel,
  .module-grid {
    margin-top: 12px !important;
  }

  .metric-grid,
  .module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .receivable-summary-strip {
    display: none !important;
  }

  .responsive-table,
  .mini-table-wrap {
    overflow: visible !important;
  }

  .data-table,
  .mini-table {
    min-width: 0 !important;
    font-size: 10px !important;
  }

  .report-sales-stock-table {
    width: 100% !important;
    min-width: 0 !important;
  }

  .report-sales-stock-toolbar {
    display: block !important;
  }

  .report-sales-stock-result .metric-card,
  .report-sales-stock-result .report-sales-stock-toolbar {
    break-inside: avoid;
  }

  .data-table th,
  .data-table td,
  .mini-table th,
  .mini-table td {
    padding: 6px !important;
  }

  a {
    color: inherit !important;
    text-decoration: none !important;
  }
}

@media print {
  html.is-print-preview-open body {
    background: #ffffff !important;
  }

  html.is-print-preview-open .desktop-app-header,
  html.is-print-preview-open .context-sidebar,
  html.is-print-preview-open .app-shell,
  html.is-print-preview-open .print-preview-toolbar,
  html.is-print-preview-open .print-preview-feedback {
    display: none !important;
  }

  html.is-print-preview-open .print-preview-overlay {
    position: static !important;
    display: block !important;
    padding: 0 !important;
    background: #ffffff !important;
  }

  html.is-print-preview-open .print-preview-dialog {
    display: block !important;
    width: auto !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
  }

  html.is-print-preview-open .print-preview-shell {
    overflow: visible !important;
    padding: 0 !important;
  }

  html.is-print-preview-open .print-preview-paper {
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  html.is-print-preview-open .print-preview-report-header {
    break-inside: avoid;
  }
}

.data-table tr.row-attention td {
  background: #fff7ed;
}

.data-table tr.row-complete td {
  background: #f0fdf4;
}

.icon-action.copied,
.btn-secondary-app.copied {
  border-color: #16a34a;
  color: #166534;
  background: #dcfce7;
}

.download-site-workbench {
  display: grid;
  grid-template-columns: minmax(330px, 420px) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.download-site-queue-panel,
.download-site-main {
  min-width: 0;
}

.download-site-queue-panel {
  position: sticky;
  top: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: calc(100vh - 118px);
  padding: 18px;
}

.download-site-queue-head,
.download-site-browser-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.download-site-queue-head h2,
.download-site-browser-bar h2,
.download-site-import-panel h2 {
  margin: 0;
}

.download-site-active-key {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-radius: 8px;
  background: #f8fafc;
}

.download-site-active-key span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 850;
  text-transform: uppercase;
}

.download-site-active-key code {
  overflow-wrap: anywhere;
  color: var(--accent-strong);
  font-size: 0.92rem;
  font-weight: 850;
}

.download-site-active-key small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.download-site-company-panel {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid rgba(28, 34, 38, 0.16);
  border-radius: 8px;
  background: #f8fafc;
}

.download-site-company-panel label,
.download-site-certificate span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 850;
  text-transform: uppercase;
}

.download-site-company-panel select {
  width: 100%;
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font-weight: 780;
}

.download-site-company-panel select:focus {
  border-color: rgba(28, 34, 38, 0.42);
  outline: 3px solid rgba(28, 34, 38, 0.1);
}

.download-site-certificate {
  display: grid;
  gap: 2px;
  padding-top: 2px;
}

.download-site-certificate strong {
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 850;
}

.download-site-certificate small {
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 760;
}

.download-site-certificate.is-valid strong {
  color: #166534;
}

.download-site-certificate.is-warning strong {
  color: #9a3412;
}

.download-site-queue-actions,
.download-site-queue-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.download-site-queue-actions .btn-primary-app,
.download-site-queue-actions .btn-secondary-app {
  flex: 1 1 150px;
}

.download-site-queue-actions--single .btn-primary-app,
.download-site-queue-actions--single .btn-secondary-app {
  flex: 0 1 190px;
  margin-left: auto;
}

.download-site-key-box,
.download-site-paste-box {
  width: 100%;
  min-height: 210px;
  max-height: 32vh;
  resize: vertical;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: #102033;
  background: #ffffff;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: 0.78rem;
  line-height: 1.48;
  white-space: pre;
}

.download-site-paste-box {
  min-height: 185px;
  color: var(--text);
  background: #ffffff;
  white-space: pre-wrap;
}

.download-site-paste-box:focus {
  border-color: rgba(28, 34, 38, 0.42);
  outline: 3px solid rgba(28, 34, 38, 0.1);
}

.download-site-queue-list {
  display: grid;
  gap: 6px;
  min-height: 0;
  overflow: auto;
  padding-right: 2px;
}

.download-site-queue-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 3px 8px;
  width: 100%;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.download-site-queue-row:hover,
.download-site-queue-row.active {
  border-color: rgba(28, 34, 38, 0.34);
  background: var(--accent-soft);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.07);
}

.download-site-queue-row.ready:not(.active) {
  background: #fff7ed;
}

.download-site-queue-row.downloaded {
  border-color: rgba(22, 163, 74, 0.28);
  background: #f0fdf4;
}

.download-site-queue-row.downloaded:hover,
.download-site-queue-row.downloaded.active {
  border-color: rgba(22, 163, 74, 0.42);
  background: #dcfce7;
}

.download-site-queue-row[data-category="aguardando-worker"] {
  border-color: rgba(180, 83, 9, 0.36);
  background: #fffbeb;
}

.download-site-queue-row[data-category="limite-sefaz"],
.download-site-queue-row[data-category="aguardando-prazo"] {
  border-color: rgba(37, 99, 235, 0.26);
  background: #eff6ff;
}

.download-site-queue-row[data-category="somente-resumo"],
.download-site-queue-row[data-category="sem-documento"],
.download-site-queue-row[data-category="rejeicao-sefaz"] {
  border-color: rgba(234, 88, 12, 0.28);
  background: #fff7ed;
}

.download-site-queue-row[data-category="erro-tecnico"],
.download-site-queue-row[data-category="certificado"],
.download-site-queue-row[data-category="falhou"] {
  border-color: rgba(185, 28, 28, 0.3);
  background: #fef2f2;
}

.download-site-queue-row.not-actionable:not(.downloaded) {
  border-color: rgba(148, 163, 184, 0.34);
  background: #f8fafc;
}

.download-site-queue-row > span {
  grid-row: 1 / span 2;
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 900;
}

.download-site-queue-row code {
  overflow-wrap: anywhere;
  color: var(--accent-strong);
  font-size: 0.78rem;
  font-weight: 850;
}

.download-site-queue-row small {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  min-width: 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 760;
}

.download-site-queue-row small strong {
  color: var(--text);
}

.download-site-queue-row.downloaded small strong {
  color: #166534;
}

.download-site-queue-row small b {
  color: var(--muted);
  font-weight: 850;
}

.download-site-queue-row small em {
  min-width: 0;
  overflow: hidden;
  font-style: normal;
  text-overflow: ellipsis;
}

.download-site-queue-foot {
  padding-top: 8px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
}

.download-site-queue-foot strong {
  color: var(--text);
}

.download-site-main {
  display: grid;
  gap: 14px;
}

.download-site-browser-panel,
.download-site-import-panel {
  padding: 18px;
}

.download-site-browser-panel {
  display: grid;
  gap: 12px;
}

.download-site-browser-bar .actions-row {
  margin-top: 0;
}

.download-site-portal-launch {
  display: grid;
  place-items: center;
  gap: 14px;
  min-height: 420px;
  padding: 36px;
  border: 1px dashed rgba(28, 34, 38, 0.28);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #f8fafc;
  text-align: center;
}

.download-site-portal-launch > svg {
  width: 42px;
  height: 42px;
  stroke-width: 1.8;
}

.download-site-portal-launch strong {
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 850;
}

.download-site-portal-launch code {
  max-width: min(560px, 100%);
  white-space: normal;
  overflow-wrap: anywhere;
  color: var(--accent-strong);
  font-size: 0.88rem;
  font-weight: 850;
}

.download-site-assisted-browser {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  background: #f8fafc;
}

.download-site-assisted-frame {
  display: block;
  width: 100%;
  height: 620px;
  min-height: 520px;
  border: 0;
  background: #e5e7eb;
}

.download-site-assisted-placeholder {
  display: grid;
  place-items: center;
  gap: 14px;
  min-height: 520px;
  padding: 36px;
  color: var(--accent-strong);
  text-align: center;
}

.download-site-assisted-placeholder > svg {
  width: 48px;
  height: 48px;
  stroke-width: 1.8;
}

.download-site-assisted-placeholder strong {
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 850;
}

.download-site-assisted-placeholder code {
  max-width: min(620px, 100%);
  white-space: normal;
  overflow-wrap: anywhere;
  color: var(--accent-strong);
  font-size: 0.88rem;
  font-weight: 850;
}

.download-site-assisted-placeholder small {
  max-width: 640px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 760;
}

.download-site-assisted-placeholder small.is-error {
  color: #991b1b;
}

.download-site-assisted-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.download-site-import-panel {
  display: grid;
  gap: 12px;
}

.download-site-import-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.download-site-xml-dropzone {
  min-height: 76px;
}

.download-site-xml-dropzone .drop-upload-copy strong,
.download-site-xml-dropzone .drop-upload-copy small {
  white-space: normal;
}

.download-site-detail-panel {
  margin-top: 14px;
}

@media (max-width: 1180px) {
  .download-site-workbench {
    grid-template-columns: 1fr;
  }

  .download-site-queue-panel {
    position: static;
    max-height: none;
  }

  .download-site-queue-list {
    max-height: 320px;
  }
}

@media (max-width: 720px) {
  .download-site-queue-head,
  .download-site-browser-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .download-site-browser-bar .actions-row,
  .download-site-queue-actions {
    flex-direction: column;
  }

  .download-site-import-form {
    grid-template-columns: 1fr;
  }

  .download-site-browser-bar .actions-row > *,
  .download-site-import-form .btn-primary-app,
  .download-site-queue-actions > * {
    width: 100%;
  }

  .download-site-assisted-actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

.download-site-assisted-actions > * {
    width: 100%;
  }

}

.download-site-extension-panel {
  display: grid;
  place-items: center;
  gap: 14px;
  min-height: 520px;
  padding: 36px;
  overflow: hidden;
  border: 1px solid rgba(28, 34, 38, 0.22);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.96)),
    repeating-linear-gradient(135deg, rgba(28, 34, 38, 0.05) 0, rgba(28, 34, 38, 0.05) 1px, transparent 1px, transparent 12px);
  color: var(--accent-strong);
  text-align: center;
}

.download-site-extension-panel > svg {
  width: 52px;
  height: 52px;
  stroke-width: 1.7;
}

.download-site-extension-panel strong {
  color: var(--text);
  font-size: 1.25rem;
  font-weight: 850;
}

.download-site-extension-panel p {
  max-width: 680px;
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 650;
  line-height: 1.55;
}

.download-site-extension-panel code {
  max-width: min(620px, 100%);
  white-space: normal;
  overflow-wrap: anywhere;
  color: var(--accent-strong);
  font-size: 0.9rem;
  font-weight: 850;
}

.download-site-extension-panel small {
  max-width: 640px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 760;
}

.download-site-extension-panel small.is-error {
  color: #991b1b;
}

.download-site-extension-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

/* Filtros da listagem do emissor de NF-e: 5 controles (pesquisa, emitente, de, ate, botao) */
.filter-bar.nfe-lista-filter-bar {
  grid-template-columns: minmax(220px, 1.6fr) minmax(200px, 1.2fr) 150px 150px auto;
}

.filter-bar.nfe-lista-filter-bar .field {
  min-width: 0;
}

.filter-bar.nfe-diagnostico-bar {
  grid-template-columns: minmax(260px, 1fr) auto;
}

@media (max-width: 1420px) {
  .filter-bar.nfe-lista-filter-bar {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.1fr) minmax(110px, 0.7fr) minmax(110px, 0.7fr) auto;
  }
}

@media (max-width: 1100px) {
  .filter-bar.nfe-lista-filter-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .filter-bar.nfe-lista-filter-bar,
  .filter-bar.nfe-diagnostico-bar {
    grid-template-columns: 1fr;
  }
}

.nfe-mobile-flow,
.nfe-mobile-submit-bar {
  display: none;
}

#nfe-dados-fiscais,
#nfe-itens-nota,
#nfe-emissao-final {
  scroll-margin-top: 96px;
}

@media (max-width: 760px) {
  .nfe-emissao-mobile-scope {
    padding-bottom: 104px;
  }

  .nfe-emissao-mobile-scope .panel,
  .nfe-emissao-mobile-scope .table-panel {
    border-radius: 8px;
  }

  .nfe-emissao-mobile-scope .section-header {
    gap: 12px;
  }

  .nfe-emissao-mobile-scope .section-header .actions-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
  }

  .nfe-emissao-mobile-scope .section-header .actions-row .btn-secondary-app {
    justify-content: center;
    min-height: 42px;
    width: 100%;
    padding-inline: 10px;
  }

  .filter-bar.nfe-emitente-bar {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .nfe-emitente-cert {
    display: block;
    margin-left: 0;
    white-space: normal;
  }

  .nfe-emitente-ambiente-box {
    width: 100%;
    padding: 10px 12px;
  }

  .nfe-emitente-ambiente-box strong,
  .nfe-emitente-ambiente-box .nfe-ambiente-config-link {
    white-space: normal;
    text-align: left;
  }

  .nfe-proximo-card {
    justify-content: space-between;
    width: 100%;
    padding: 10px 12px;
    gap: 10px;
    border-radius: 8px;
  }

  .nfe-proximo-card .inventory-action {
    min-height: 40px;
  }

  .nfe-mobile-flow {
    position: sticky;
    top: 66px;
    z-index: 55;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin: 10px 0 14px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(12px);
  }

  .nfe-mobile-flow a {
    display: grid;
    grid-template-rows: 20px auto;
    place-items: center;
    gap: 3px;
    min-height: 50px;
    border: 1px solid rgba(28, 34, 38, 0.12);
    border-radius: 8px;
    background: var(--surface);
    color: var(--accent-strong);
    text-decoration: none;
    font-size: 0.74rem;
    font-weight: 850;
  }

  .nfe-mobile-flow svg {
    width: 19px;
    height: 19px;
  }

  .nfe-emissao-form {
    margin-top: 10px;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
  }

  .nfe-emissao-form .field > span:first-child,
  .nfe-emissao-form .field-label {
    font-size: 0.78rem;
  }

  .nfe-datas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .nfe-combo-row {
    align-items: stretch;
  }

  .nfe-combo-row .inventory-action {
    justify-content: center;
    width: 44px;
    padding-inline: 0;
    font-size: 0;
  }

  .nfe-combo-row .inventory-action svg {
    margin: 0;
  }

  .nfe-combo-lista {
    position: fixed;
    right: 12px;
    bottom: calc(94px + env(safe-area-inset-bottom));
    left: 12px;
    top: auto;
    max-height: min(52vh, 390px);
    z-index: 1500;
  }

  .nfe-item-card {
    padding: 12px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
  }

  .nfe-item-topo {
    align-items: flex-start;
  }

  .nfe-item-acoes {
    display: grid;
    grid-template-columns: 42px 42px;
    justify-content: end;
    gap: 7px;
  }

  .nfe-item-acoes .nfe-item-imp-resumo {
    grid-column: 1 / -1;
    justify-self: end;
    max-width: 100%;
    text-align: right;
  }

  .nfe-item-acoes .inventory-action {
    justify-content: center;
    width: 42px;
    min-width: 42px;
    height: 42px;
    padding: 0;
  }

  .nfe-item-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .nfe-item-grid .nfe-col-produto,
  .nfe-item-grid .nfe-col-total {
    grid-column: 1 / -1;
  }

  .nfe-item-grid .nfe-col-codigo,
  .nfe-item-grid .nfe-col-unidade {
    display: none;
  }

  .nfe-item-total {
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid rgba(28, 34, 38, 0.12);
    border-radius: 8px;
    background: var(--accent-soft);
  }

  .nfe-total-nota {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-left: 0 !important;
    padding: 10px 12px;
    gap: 10px;
    border: 1px solid rgba(28, 34, 38, 0.12);
    border-radius: 8px;
    background: var(--surface);
  }

  .nfe-fatura-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .nfe-fatura-tipo-field,
  .nfe-fatura-numero-field,
  .nfe-fatura-venc-field,
  .nfe-fatura-prazo-field,
  .nfe-fatura-util-field,
  .nfe-fatura-toolbar .btn-secondary-app {
    grid-column: 1 / -1;
  }

  .nfe-fatura-util-field {
    justify-content: flex-start;
  }

  .nfe-prazo-popover {
    position: fixed;
    top: auto;
    right: 12px;
    bottom: calc(94px + env(safe-area-inset-bottom));
    left: 12px;
    width: auto;
    max-height: min(70vh, 430px);
    overflow-y: auto;
  }

  .nfe-prazo-popover::before {
    display: none;
  }

  .nfe-prazo-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .nfe-prazo-actions .btn-primary-app,
  .nfe-prazo-actions .btn-secondary-app {
    justify-content: center;
    width: 100%;
  }

  .nfe-fatura-toolbar .inventory-action {
    justify-self: stretch;
    width: 100%;
  }

  .nfe-fatura-linha {
    grid-template-columns: 1fr 44px;
    gap: 10px;
  }

  .nfe-fatura-linha .field,
  .nfe-fatura-ordem {
    grid-column: 1 / -1;
  }

  .nfe-fatura-linha .inventory-action {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }

  .nfe-fatura-resumo {
    align-items: flex-start;
    flex-direction: column;
  }

  .nfe-fatura-resumo span {
    text-align: left;
  }

  .nfe-transporte-toolbar,
  .nfe-transporte-grid,
  .nfe-transporte-veiculo-grid,
  .nfe-volume-grid {
    grid-template-columns: 1fr;
  }

  .nfe-transporte-toolbar .btn-secondary-app {
    width: 100%;
  }

  .nfe-transporte-hint {
    font-size: 0.78rem;
  }

  .nfe-transporte-subtitle {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .nfe-transporte-subtitle span {
    text-align: left;
  }

  .nfe-transporte-nome-field,
  .nfe-transporte-endereco-field {
    grid-column: auto;
  }

  .nfe-credito-field {
    max-width: none;
  }

  .nfe-credito-preview {
    padding: 10px 12px;
  }

  .nfe-credito-preview p {
    font-size: 0.84rem;
    line-height: 1.5;
  }

  .nfe-post-submit-actions {
    margin-bottom: calc(108px + env(safe-area-inset-bottom));
  }

  .nfe-post-submit-grid,
  .nfe-post-email-form {
    display: grid;
    grid-template-columns: 1fr;
  }

  .nfe-post-submit-grid .btn-primary-app,
  .nfe-post-submit-grid .btn-secondary-app,
  .nfe-post-email-form .btn-secondary-app {
    justify-content: center;
    width: 100%;
  }

  .nfe-post-email-form .field {
    min-width: 0;
  }

  .nfe-emissao-form > #nfe-emissao-final {
    display: block;
    height: 1px;
    min-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }

  .nfe-emissao-form > #nfe-emissao-final .btn-primary-app {
    display: none;
  }

  .nfe-mobile-submit-bar {
    position: fixed;
    right: 10px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 108;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(28, 34, 38, 0.18);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 -12px 34px rgba(15, 23, 42, 0.16);
  }

  body.inventory-drawer-open .nfe-mobile-submit-bar {
    display: none;
  }

  .nfe-mobile-submit-bar span,
  .nfe-mobile-submit-bar strong {
    display: block;
    min-width: 0;
  }

  .nfe-mobile-submit-bar span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .nfe-mobile-submit-bar strong {
    overflow: hidden;
    color: var(--accent-strong);
    font-size: 1.02rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .nfe-mobile-submit-bar .btn-primary-app {
    min-height: 48px;
    padding-inline: 16px;
  }

  .nfe-emissao-mobile-scope .inventory-drawer-panel {
    top: auto !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    max-height: calc(100dvh - 70px);
    border: 0;
    border-top: 4px solid var(--accent);
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -24px 60px rgba(15, 23, 42, 0.25);
    transform: translateY(calc(100% + 36px));
  }

  .nfe-emissao-mobile-scope .inventory-drawer[aria-hidden="false"] .inventory-drawer-panel {
    transform: translateY(0);
  }

  .nfe-emissao-mobile-scope .inventory-drawer-chrome {
    min-height: 58px;
    padding: 12px 14px;
  }

  .nfe-emissao-mobile-scope .inventory-drawer-body {
    padding: 14px;
  }

  .nfe-emissao-mobile-scope .inventory-drawer .inventory-product-form,
  .nfe-emissao-mobile-scope .inventory-drawer .form-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .nfe-emissao-mobile-scope .inventory-drawer .span-2,
  .nfe-emissao-mobile-scope .inventory-drawer .span-3 {
    grid-column: 1 / -1;
  }

  .nfe-emissao-mobile-scope .inventory-drawer .form-actions {
    position: sticky;
    bottom: -14px;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin: 12px -14px -14px;
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
    background: #fff;
  }

  .nfe-emissao-mobile-scope .inventory-drawer .form-actions .btn-primary-app,
  .nfe-emissao-mobile-scope .inventory-drawer .form-actions .btn-secondary-app {
    justify-content: center;
    width: 100%;
    min-height: 44px;
  }

  .nfe-imp-tabs {
    flex-wrap: nowrap;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 6px;
    margin-bottom: 12px;
    scrollbar-width: thin;
  }

  .nfe-imp-tab {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: var(--surface);
  }

  .nfe-imp-tab.is-active {
    border-color: rgba(28, 34, 38, 0.24);
    background: var(--accent-soft);
  }

  .nfe-imp-contexto {
    margin-bottom: 12px;
  }

  .nfe-history-panel .mini-table-wrap {
    overflow: visible;
  }

  .nfe-history-panel .mini-table {
    min-width: 0;
    border-spacing: 0;
  }

  .nfe-history-panel .mini-table thead {
    display: none;
  }

  .nfe-history-panel .mini-table tbody {
    display: grid;
    gap: 10px;
  }

  .nfe-history-panel .mini-table tr {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
  }

  .nfe-history-panel .mini-table td {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px;
    padding: 0 !important;
    border: 0 !important;
  }

  .nfe-history-panel .mini-table td::before {
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 850;
    text-transform: uppercase;
  }

  .nfe-history-panel .mini-table td:nth-child(1)::before {
    content: "Numero";
  }

  .nfe-history-panel .mini-table td:nth-child(2)::before {
    content: "Status";
  }

  .nfe-history-panel .mini-table td:nth-child(3)::before {
    content: "Valor";
  }

  .nfe-history-panel .mini-table td:nth-child(4)::before {
    content: "Chave";
  }

  .nfe-history-panel .mini-table td:nth-child(5)::before {
    content: "Quando";
  }

  .nfe-history-panel .mini-table td:nth-child(6)::before {
    content: "Acoes";
  }

  .nfe-history-panel .inventory-actions-cell .nfe-row-menu {
    width: 100%;
  }

  .nfe-history-panel .inventory-actions-cell .nfe-row-menu-trigger {
    justify-content: center;
    width: 100%;
    min-height: 42px;
  }
}

@media (max-width: 420px) {
  .nfe-datas-grid {
    grid-template-columns: 1fr;
  }

  .nfe-mobile-submit-bar {
    grid-template-columns: 1fr;
  }

  .nfe-mobile-submit-bar .btn-primary-app {
    justify-content: center;
    width: 100%;
  }
}

/* Recolher/expandir o formulario "Nova NF-e" apos a emissao */
.nfe-header-acoes {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-end;
  gap: 10px;
  margin-left: auto;
}

.nfe-main-panel > .section-header > div:first-child {
  min-width: 0;
}

.nfe-form-toggle {
  flex: 0 0 auto;
  align-self: stretch;
  justify-content: center;
  min-width: 190px;
  min-height: 100%;
  padding-inline: 16px;
}

.nfe-form-toggle svg {
  transition: transform 0.15s ease;
}

.nfe-main-panel.is-recolhido .nfe-form-toggle svg {
  transform: rotate(180deg);
}

.nfe-main-panel.is-recolhido .nfe-mobile-flow,
.nfe-main-panel.is-recolhido #nfe-emissao-form,
.nfe-main-panel.is-recolhido .nfe-mobile-submit-bar {
  display: none;
}

@media (max-width: 760px) {
  .nfe-header-acoes {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    margin-left: 0;
  }

  .nfe-header-acoes .nfe-form-toggle {
    order: 2;
    width: 100%;
    min-width: 0;
    min-height: 42px;
  }

  .nfe-header-acoes .nfe-proximo-card {
    order: 1;
  }
}

/* Justificativas prontas nas gavetas de cancelar/inutilizar NF-e */
.nfe-justificativas-prontas {
  display: grid;
  gap: 8px;
  margin-top: -4px;
}

.nfe-justificativas-prontas > span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.nfe-justificativa-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.nfe-justificativa-chip {
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface);
  color: var(--accent-strong);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}

.nfe-justificativa-chip:hover,
.nfe-justificativa-chip:focus-visible {
  border-color: rgba(28, 34, 38, 0.24);
  background: var(--accent-soft);
  outline: none;
}

.nfe-cancel-window {
  display: inline-flex !important;
  align-items: flex-start;
  gap: 5px;
  width: fit-content;
  max-width: min(320px, 100%);
  margin-top: 5px;
  padding: 5px 7px;
  border: 1px solid transparent;
  border-radius: 7px;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.25;
  white-space: normal !important;
}

.nfe-cancel-window svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 1px;
}

.nfe-cancel-window.is-ok {
  border-color: rgba(34, 197, 94, 0.28);
  color: #166534;
  background: #ecfdf3;
}

.nfe-cancel-window.is-warning {
  border-color: rgba(245, 158, 11, 0.34);
  color: #854d0e;
  background: #fffbeb;
}

.nfe-cancel-window.is-critical,
.nfe-cancel-window.is-expired {
  border-color: rgba(220, 38, 38, 0.26);
  color: #991b1b;
  background: #fff1f2;
}

/* Menu de acoes por linha das tabelas de NF-e (listagem e emissoes recentes) */
.nfe-row-menu {
  position: relative;
  display: inline-block;
}

.nfe-row-menu > summary {
  list-style: none;
}

.nfe-row-menu > summary::-webkit-details-marker {
  display: none;
}

.nfe-row-menu-trigger {
  min-width: 0;
  width: 44px;
  padding: 0;
  justify-content: center;
}

.nfe-row-menu-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 30;
  display: grid;
  gap: 4px;
  width: 184px;
  padding: 6px;
  border: 1px solid rgba(203, 213, 225, 0.95);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(31, 41, 51, 0.16);
}

.nfe-row-menu:not([open]) .nfe-row-menu-panel {
  display: none;
}

.nfe-row-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--accent-strong);
  font: inherit;
  font-weight: 850;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.nfe-row-menu-item:hover,
.nfe-row-menu-item:focus-visible {
  background: var(--accent-soft);
  outline: none;
}

.nfe-row-menu-item.danger {
  color: #a62318;
}

.nfe-row-menu-item.danger:hover,
.nfe-row-menu-item.danger:focus-visible {
  background: #fff0ef;
}

.nfe-row-menu-item svg {
  width: 16px;
  height: 16px;
}

.nfe-row-menu-panel form {
  margin: 0;
}

.nfe-row-menu-panel form .nfe-row-menu-item {
  width: 100%;
}

.nfe-row-menu-divider {
  height: 1px;
  margin: 4px 2px;
  background: rgba(203, 213, 225, 0.9);
}

/* o wrap das emissoes recentes rola no eixo X e cortaria o menu aberto nas
   ultimas linhas; a folga de padding (compensada pela margem) abre espaco */
.nfe-history-panel .mini-table-wrap:has(.nfe-row-menu[open]) {
  padding-bottom: 330px;
  margin-bottom: -330px;
}

@media (max-width: 760px) {
  /* com as barras fixas do rodape (envio + navegacao), o menu aberto na
     ultima linha precisa de altura real extra para rolar para cima delas */
  .nfe-history-panel .mini-table-wrap:has(.nfe-row-menu[open]) {
    margin-bottom: -210px;
  }
}

.nfe-actionable-notice {
  display: grid;
  gap: 4px;
  align-items: start;
}

.notice-action-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: fit-content;
  min-height: 34px;
  margin-top: 8px;
  padding: 0 12px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-radius: 8px;
  background: #ffffff;
  color: var(--accent-strong);
  font-size: 0.84rem;
  font-weight: 850;
  text-decoration: none;
}

.notice-action-link:hover,
.notice-action-link:focus-visible {
  border-color: rgba(28, 34, 38, 0.36);
  background: var(--accent-soft);
  outline: none;
}

.notice-action-link svg {
  width: 16px;
  height: 16px;
}

.entity-side-drawer-panel {
  width: min(940px, calc(100vw - 28px));
}

.entity-side-drawer-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.entity-side-drawer-body {
  display: grid;
  min-height: 0;
  background: #ffffff;
}

.entity-side-drawer-body iframe {
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
  background: #ffffff;
}

.entity-side-drawer-loading {
  display: grid;
  place-items: center;
  min-height: 280px;
  padding: 24px;
  color: var(--muted);
  font-weight: 850;
}

.entity-side-drawer-loading[hidden] {
  display: none;
}

body.app-compact-frame {
  min-height: 100vh;
  padding-bottom: 0;
  background: #ffffff;
}

body.app-compact-frame .mobile-app-header,
body.app-compact-frame .desktop-app-header,
body.app-compact-frame .context-sidebar,
body.app-compact-frame .app-sidebar,
body.app-compact-frame .topbar,
body.app-compact-frame .mobile-more-panel,
body.app-compact-frame .mobile-nav-backdrop,
body.app-compact-frame .mobile-bottom-nav,
body.app-compact-frame [data-page-loading-overlay] {
  display: none !important;
}

body.app-compact-frame .app-shell {
  display: block;
  min-height: 100vh;
}

body.app-compact-frame .content {
  width: 100%;
  padding: 16px;
}

body.app-compact-frame .panel {
  border: 0;
  box-shadow: none;
}

body.app-compact-frame .content > .panel:first-child {
  margin-top: 0;
}

body.app-compact-frame .section-header {
  gap: 10px;
  margin-bottom: 14px;
}

body.app-compact-frame .section-header h2 {
  font-size: 1.1rem;
}

[data-entity-focus-block].entity-focus-highlight {
  border-color: rgba(28, 34, 38, 0.28);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

[data-entity-focus-field="municipio"] {
  scroll-margin-top: 96px;
}

[data-entity-focus-field="municipio"]:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.12);
  outline: none;
}

@media (max-width: 980px) {
  .nfe-emissao-mobile-scope .entity-side-drawer .entity-side-drawer-panel {
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    width: min(94vw, 680px) !important;
    max-height: none;
    border: 1px solid rgba(28, 34, 38, 0.2);
    border-left: 4px solid var(--accent);
    border-radius: 8px 0 0 8px;
    box-shadow: -24px 0 60px rgba(15, 23, 42, 0.2);
    transform: translateX(calc(100% + 40px));
  }

  .nfe-emissao-mobile-scope .entity-side-drawer[aria-hidden="false"] .entity-side-drawer-panel {
    transform: translateX(0);
  }
}

@media (max-width: 640px) {
  .nfe-emissao-mobile-scope .entity-side-drawer .entity-side-drawer-panel {
    width: calc(100vw - 12px) !important;
  }

  body.app-compact-frame .content {
    padding: 12px;
  }
}

/* Secao adiada (carregamento em fragmento) e skeleton de lista */
[data-deferred-section][aria-busy="true"] {
  min-height: 220px;
}

.deferred-skeleton {
  display: grid;
  gap: 14px;
  padding: 4px 0 12px;
}

.deferred-skeleton-row {
  border: 1px solid var(--border, #e2e6ee);
  border-radius: 14px;
  padding: 16px 18px;
  display: grid;
  gap: 12px;
  background: var(--surface, #fff);
}

.deferred-skeleton-line {
  position: relative;
  overflow: hidden;
  height: 14px;
  border-radius: 7px;
  background: color-mix(in srgb, var(--border, #dfe4ec) 65%, transparent);
}

.deferred-skeleton-line.is-title {
  height: 18px;
  width: 42%;
}

.deferred-skeleton-line.is-wide {
  width: 88%;
}

.deferred-skeleton-line.is-half {
  width: 55%;
}

.deferred-skeleton-line.is-short {
  width: 28%;
}

.deferred-skeleton-line::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    transparent,
    color-mix(in srgb, #ffffff 65%, transparent),
    transparent
  );
  animation: deferred-skeleton-shimmer 1.4s ease-in-out infinite;
}

@keyframes deferred-skeleton-shimmer {
  100% {
    transform: translateX(100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .deferred-skeleton-line::after {
    animation: none;
  }
}

.deferred-skeleton-caption {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted, #64748b);
  font-size: 0.85rem;
}

.deferred-skeleton-caption::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--muted, #64748b) 45%, transparent);
  border-top-color: var(--muted, #64748b);
  animation: deferred-skeleton-spin 0.9s linear infinite;
}

@keyframes deferred-skeleton-spin {
  100% {
    transform: rotate(360deg);
  }
}

.deferred-section-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 28px 16px;
  border: 1px dashed var(--border, #dfe4ec);
  border-radius: 14px;
  color: var(--muted, #64748b);
  text-align: center;
}

/* Modal de confirmacao (substitui o window.confirm nativo) */
.app-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 3200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.44);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  animation: app-modal-fade 140ms ease;
}

.app-modal-backdrop[hidden] {
  display: none;
}

body.app-modal-lock {
  overflow: hidden;
}

.app-modal {
  width: min(460px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  padding: 24px;
  overflow-y: auto;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28);
  animation: app-modal-pop 180ms cubic-bezier(0.2, 0.8, 0.3, 1);
}

.app-modal-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
  border-radius: 14px;
  color: var(--accent);
  background: var(--accent-soft);
}

.app-modal-icon svg {
  width: 26px;
  height: 26px;
}

.app-modal--danger .app-modal-icon {
  color: var(--danger);
  background: color-mix(in srgb, var(--danger) 14%, var(--surface));
}

.app-modal-title {
  margin: 0 0 8px;
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text);
}

.app-modal-message {
  margin: 0;
  font-size: 0.96rem;
  line-height: 1.5;
  color: var(--muted);
}

.app-modal-reason {
  display: grid;
  gap: 7px;
  margin-top: 18px;
}

.app-modal-reason[hidden] {
  display: none;
}

.app-modal-reason label {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text);
}

.app-modal-reason textarea {
  width: 100%;
  min-height: 88px;
  padding: 10px 12px;
  resize: vertical;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
}

.app-modal-reason textarea:focus-visible {
  border-color: var(--accent);
  outline: 3px solid color-mix(in srgb, var(--accent) 22%, transparent);
  outline-offset: 1px;
}

.app-modal-reason textarea[aria-invalid="true"] {
  border-color: var(--danger);
}

.app-modal-reason-error {
  min-height: 1.2em;
  color: var(--danger);
  font-size: 0.8rem;
}

.app-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}

.payable-balance-payment-modal {
  width: min(500px, calc(100vw - 32px));
}

.payable-balance-payment-eyebrow {
  display: block;
  margin: -6px 0 4px;
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.payable-balance-payment-modal .app-modal-message strong {
  color: var(--text);
  white-space: nowrap;
}

.payable-balance-payment-fields {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr);
  gap: 12px;
  margin-top: 20px;
}

.payable-balance-payment-fields .field {
  min-width: 0;
}

.payable-balance-payment-fields .field > span:first-child {
  font-size: 0.76rem;
  font-weight: 700;
}

.payable-balance-payment-fields select,
.payable-balance-payment-fields input {
  width: 100%;
  height: 42px;
  min-height: 42px;
  font-size: 0.88rem;
}

.payable-balance-payment-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 14px 0 0;
  padding: 10px 11px;
  border-radius: 10px;
  color: var(--muted);
  background: var(--surface-muted);
  font-size: 0.78rem;
  line-height: 1.4;
}

.payable-balance-payment-note svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 1px;
  color: var(--accent);
}

.payable-balance-payment-actions {
  margin-top: 18px;
}

@media (max-width: 540px) {
  .payable-balance-payment-backdrop {
    align-items: end;
    padding: 10px;
  }

  .payable-balance-payment-modal {
    width: 100%;
    padding: 20px;
    border-radius: 16px;
  }

  .payable-balance-payment-fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .payable-balance-payment-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .payable-balance-payment-actions > button {
    width: 100%;
  }
}

.app-modal--danger .app-modal-accept {
  background: var(--danger);
  border-color: var(--danger);
  box-shadow: 0 10px 20px rgba(180, 67, 67, 0.22);
}

.app-modal--danger .app-modal-accept:hover {
  background: color-mix(in srgb, var(--danger) 82%, #000000);
  border-color: color-mix(in srgb, var(--danger) 82%, #000000);
}

.app-modal--danger .app-modal-accept:focus-visible {
  outline: 3px solid rgba(180, 67, 67, 0.34);
  outline-offset: 2px;
}

@keyframes app-modal-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes app-modal-pop {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .app-modal-backdrop,
  .app-modal {
    animation: none;
  }
}

/* Razao unificado da conciliacao bancaria */
.reconciliation-ledger-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.reconciliation-ledger-metrics .metric-card {
  min-height: 132px;
}

.reconciliation-ledger-metrics .metric-card > strong.credit,
.account-ledger-value.credit {
  color: #087f5b;
}

.reconciliation-ledger-metrics .metric-card > strong.debit,
.account-ledger-value.debit {
  color: #c2413a;
}

.reconciliation-metric-system {
  border-top: 3px solid #3348a5;
}

.reconciliation-metric-statement {
  border-top: 3px solid #20856f;
}

.reconciliation-metric-difference.is-warning {
  border-color: #e5a332;
  background: linear-gradient(145deg, #fffdf7, #fff8e8);
}

.reconciliation-metric-difference.is-ok {
  border-color: #28a878;
  background: linear-gradient(145deg, #fbfffd, #eefbf6);
}

.reconciliation-metric-difference.is-neutral {
  border-color: #a8b1c7;
}

.reconciliation-balance-alert {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin: 14px 0 18px;
  padding: 15px 17px;
  border: 1px solid;
  border-radius: 14px;
}

.reconciliation-balance-alert > svg {
  flex: 0 0 21px;
  width: 21px;
  height: 21px;
  margin-top: 1px;
}

.reconciliation-balance-alert > div {
  display: grid;
  gap: 3px;
}

.reconciliation-balance-alert strong,
.reconciliation-balance-alert span,
.reconciliation-balance-alert small {
  display: block;
}

.reconciliation-balance-alert span {
  color: var(--text);
}

.reconciliation-balance-alert small {
  color: var(--muted);
}

.reconciliation-balance-alert.is-warning {
  color: #8a5707;
  background: #fff8e8;
  border-color: #edcf8a;
}

.reconciliation-balance-alert.is-ok {
  color: #087f5b;
  background: #eefbf6;
  border-color: #a8dfcb;
}

.reconciliation-balance-alert.is-info {
  color: #24438f;
  background: #f1f5ff;
  border-color: #bdcaf0;
}

.reconciliation-balance-alert a {
  color: inherit;
  font-weight: 750;
  text-underline-offset: 2px;
}

.reconciliation-draft-warning {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 8px 0 12px;
  padding: 9px 11px;
  border: 1px solid #edcf8a;
  border-radius: 9px;
  color: #8a5707;
  background: #fff8e8;
  font-size: 0.76rem;
}

.reconciliation-draft-warning > svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  margin-top: 1px;
}

.reconciliation-draft-warning > div {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 7px;
  min-width: 0;
}

.reconciliation-draft-warning strong {
  font-weight: 850;
}

.reconciliation-draft-warning span {
  color: var(--text);
}

.account-ledger-panel {
  margin-top: 18px;
}

.account-ledger-heading {
  align-items: flex-start;
}

.account-ledger-heading small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
}

.account-ledger-legend,
.account-ledger-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.account-ledger-source,
.account-ledger-state {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  padding: 4px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.account-ledger-source svg,
.account-ledger-state svg {
  width: 13px;
  height: 13px;
}

.account-ledger-source.is-system {
  color: #293f98;
  background: #edf1ff;
  border-color: #c8d2ff;
}

.account-ledger-source.is-statement {
  color: #0d725f;
  background: #eaf9f4;
  border-color: #b9e3d6;
}

.account-ledger-state.is-matched {
  color: #087f5b;
  background: #effbf7;
  border-color: #b8e5d4;
}

.account-ledger-state.is-possible,
.account-ledger-state.is-warning {
  color: #8a5707;
  background: #fff8e8;
  border-color: #edd394;
}

.account-ledger-state.is-system-only,
.account-ledger-state.is-statement-only {
  color: #59647a;
  background: #f3f5f9;
  border-color: #d9deea;
}

.account-ledger-state.is-ignored {
  color: #795548;
  background: #f8f1ed;
  border-color: #dfc9bc;
}

.account-ledger-list {
  display: grid;
  gap: 10px;
  padding: 4px 0;
}

.account-ledger-row {
  overflow: hidden;
  border: 1px solid #dce2ed;
  border-left: 4px solid #98a5bb;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(29, 43, 77, 0.055);
}

.account-ledger-row.is-credit {
  border-left-color: #2aa87a;
}

.account-ledger-row.is-debit {
  border-left-color: #df6a61;
}

.account-ledger-row.is-ignored {
  opacity: 0.82;
  border-left-color: #a89b93;
}

.account-ledger-row-main {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  padding: 14px 16px;
}

.account-ledger-origin-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  color: #40539f;
  background: #eff2fb;
  border-radius: 11px;
}

.account-ledger-origin-icon svg {
  width: 19px;
  height: 19px;
}

.account-ledger-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.account-ledger-copy > strong {
  overflow: hidden;
  color: var(--text);
  font-size: 0.94rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-ledger-copy > span,
.account-ledger-copy > small {
  color: var(--muted);
  font-size: 0.76rem;
}

.account-ledger-value {
  font-size: 0.96rem;
  white-space: nowrap;
}

.account-ledger-evidence {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 16px 12px 71px;
  border-top: 1px solid #e6eaf2;
}

.account-ledger-evidence > div,
.account-ledger-evidence:not(:has(> div)) {
  min-width: 0;
}

.account-ledger-evidence span,
.account-ledger-evidence strong,
.account-ledger-evidence small {
  display: block;
}

.account-ledger-evidence span {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.account-ledger-evidence span svg {
  width: 14px;
  height: 14px;
}

.account-ledger-evidence strong {
  overflow: hidden;
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-ledger-evidence small {
  color: var(--muted);
  font-size: 0.72rem;
}

.account-ledger-evidence.is-matched {
  color: #087f5b;
  background: #f3fcf8;
}

.account-ledger-evidence.is-possible {
  color: #7b510d;
  background: #fffbf1;
}

.account-ledger-evidence.is-statement-only {
  background: #f8f9fc;
}

.account-ledger-evidence.is-ignored {
  background: #f8f3f0;
}

.account-ledger-inline-form {
  flex: 0 0 auto;
  margin: 0;
}

.account-ledger-inline-form .btn-primary-app,
.account-ledger-inline-form .btn-secondary-app {
  min-height: 34px;
  padding: 7px 10px;
  font-size: 0.75rem;
  white-space: nowrap;
}

.btn-secondary-app.danger-soft {
  color: #a63f3a;
  background: #fff5f4;
  border-color: #efc3c0;
}

.btn-secondary-app.danger-soft:hover {
  background: #ffebe9;
  border-color: #df928d;
}

@media (max-width: 1100px) {
  .reconciliation-ledger-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .reconciliation-ledger-metrics {
    grid-template-columns: 1fr;
  }

  .reconciliation-ledger-metrics .metric-card {
    min-height: 0;
  }

  .account-ledger-heading,
  .account-ledger-evidence {
    align-items: stretch;
    flex-direction: column;
  }

  .account-ledger-legend {
    margin-top: 8px;
  }

  .account-ledger-row-main {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    padding: 13px 12px;
  }

  .account-ledger-origin-icon {
    width: 32px;
    height: 32px;
  }

  .account-ledger-value {
    grid-column: 2;
    justify-self: start;
    margin-top: 3px;
  }

  .account-ledger-copy > strong {
    white-space: normal;
  }

  .account-ledger-evidence {
    padding: 11px 12px 12px 56px;
  }

  .account-ledger-inline-form,
  .account-ledger-inline-form .btn-primary-app,
  .account-ledger-inline-form .btn-secondary-app {
    width: 100%;
  }
}

/* ============================================================
   Conciliacao lado a lado - razao pareado (Sistema x Extrato)
   ============================================================ */

.ledger-pairs-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.ledger-sum-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 3px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.ledger-sum-chip svg {
  width: 13px;
  height: 13px;
  flex: none;
}

.ledger-sum-chip.is-matched {
  border-color: var(--success-line);
  background: var(--success-soft);
  color: var(--success-strong);
}

.ledger-sum-chip.is-suggested {
  border-color: #edcf9f;
  background: #fff6e6;
  color: #8a4b0f;
}

.ledger-sum-chip.is-system-only {
  border-color: rgba(28, 34, 38, 0.18);
  background: var(--brand-blue-soft);
  color: var(--accent-strong);
}

.ledger-sum-chip.is-statement-only {
  border-color: #cfd9e4;
  background: #eef4f9;
  color: #28506f;
}

.ledger-sum-chip.is-muted {
  border-color: var(--line);
  background: var(--surface-muted);
  color: var(--muted);
}

.ledger-pairs {
  display: grid;
  gap: 12px;
}

.ledger-pairs-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px minmax(0, 1fr);
  align-items: end;
  margin-bottom: 2px;
}

.ledger-pairs-head-col {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 4px;
  min-width: 0;
}

.ledger-pairs-head-col svg {
  width: 17px;
  height: 17px;
  color: var(--accent);
  flex: none;
}

.ledger-pairs-head-col.is-statement svg {
  color: #28506f;
}

.ledger-pairs-head-col strong {
  display: block;
  font-size: 0.9rem;
  color: var(--text);
}

.ledger-pairs-head-col small {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 600;
}

.ledger-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px minmax(0, 1fr);
  align-items: stretch;
}

.ledger-pair.is-ignored {
  opacity: 0.66;
}

.ledger-pair-stack {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.ledger-card {
  min-width: 0;
  display: grid;
  gap: 5px;
  align-content: start;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 8px 22px rgba(31, 41, 51, 0.05);
}

.ledger-pair.is-matched .ledger-card {
  border-color: var(--success-line);
  background: linear-gradient(0deg, rgba(230, 244, 238, 0.32), rgba(230, 244, 238, 0.32)), var(--surface);
}

.ledger-pair.is-suggested .ledger-card {
  border-color: #edcf9f;
}

.ledger-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.ledger-card-chips {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.ledger-card-value {
  font-size: 0.98rem;
  white-space: nowrap;
}

.ledger-card-value.credit {
  color: #087f5b;
}

.ledger-card-value.debit {
  color: #c2413a;
}

.ledger-card-title {
  font-size: 0.92rem;
  color: var(--text);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.ledger-card-meta {
  color: var(--muted);
  font-size: 0.8rem;
  overflow-wrap: anywhere;
}

.ledger-card-detail {
  color: var(--muted);
  font-size: 0.76rem;
  overflow-wrap: anywhere;
}

.ledger-card-note {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--success-strong);
  font-size: 0.76rem;
  font-weight: 700;
}

.ledger-card-note svg {
  width: 13px;
  height: 13px;
  flex: none;
}

.ledger-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 3px;
}

.ledger-card-actions .account-ledger-inline-form {
  width: auto;
}

.ledger-card-actions .btn-secondary-app {
  min-height: 31px;
  padding: 3px 12px;
  font-size: 0.78rem;
}

.ledger-link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 70px;
}

.ledger-link-count {
  position: relative;
  z-index: 1;
  padding: 1px 8px;
  border-radius: 999px;
  border: 1px solid var(--success-line);
  background: var(--surface);
  color: var(--success-strong);
  font-size: 0.66rem;
  font-weight: 800;
  white-space: nowrap;
}

.ledger-link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -1px;
  right: -1px;
  height: 2px;
  transform: translateY(-50%);
}

.ledger-pair.is-matched .ledger-link::before {
  background: var(--success);
}

.ledger-pair.is-suggested .ledger-link::before {
  background: repeating-linear-gradient(90deg, #d99b26 0 7px, transparent 7px 13px);
}

.ledger-pair.is-system-only .ledger-link::before {
  right: 46%;
  background: linear-gradient(90deg, var(--line), rgba(216, 222, 230, 0));
}

.ledger-pair.is-statement-only .ledger-link::before {
  left: 46%;
  background: linear-gradient(270deg, var(--line), rgba(216, 222, 230, 0));
}

.ledger-link-badge {
  position: relative;
  z-index: 1;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface);
  border: 2px solid var(--success);
  color: var(--success-strong);
  box-shadow: 0 6px 16px rgba(19, 121, 91, 0.22);
}

.ledger-link-badge svg {
  width: 16px;
  height: 16px;
}

.ledger-link-form {
  position: relative;
  z-index: 1;
}

.ledger-link-confirm {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 8px 10px;
  min-width: 74px;
  border-radius: 12px;
  border: 1px solid rgba(28, 34, 38, 0.28);
  background: var(--surface);
  color: var(--accent);
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(28, 34, 38, 0.14);
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.ledger-link-confirm:hover {
  background: var(--accent);
  color: #fff;
  transform: translateY(-1px);
}

.ledger-link-confirm svg {
  width: 15px;
  height: 15px;
}

.ledger-link-dot {
  position: relative;
  z-index: 1;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #cbd4de;
}

.ledger-ghost {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 14px;
  text-align: center;
  border: 1.5px dashed #ccd5df;
  border-radius: 10px;
  background: rgba(238, 242, 245, 0.45);
  color: var(--muted);
}

.ledger-ghost svg {
  width: 17px;
  height: 17px;
  opacity: 0.65;
}

.ledger-ghost span {
  font-size: 0.82rem;
  font-weight: 700;
}

.ledger-ghost small {
  font-size: 0.74rem;
  max-width: 340px;
}

.ledger-ghost.is-warning {
  border-color: #edcf9f;
  background: #fff9ef;
  color: #8a4b0f;
}

@media (max-width: 860px) {
  .ledger-pairs-head {
    display: none;
  }

  .ledger-pair {
    grid-template-columns: minmax(0, 1fr);
  }

  .ledger-link {
    min-height: 38px;
  }

  .ledger-link::before {
    top: -1px;
    bottom: -1px;
    left: 50%;
    right: auto;
    width: 2px;
    height: auto;
    transform: translateX(-50%);
  }

  .ledger-pair.is-suggested .ledger-link::before {
    background: repeating-linear-gradient(180deg, #d99b26 0 7px, transparent 7px 13px);
  }

  .ledger-pair.is-system-only .ledger-link,
  .ledger-pair.is-statement-only .ledger-link,
  .ledger-pair.is-system-only .ledger-ghost,
  .ledger-pair.is-statement-only .ledger-ghost {
    display: none;
  }

  .ledger-link-confirm {
    flex-direction: row;
    padding: 7px 14px;
  }
}

/* ============================================================
   Conciliacao bancaria - painel unico (pareamento + editor)
   ============================================================ */

.content.content-wide {
  width: min(1720px, 100%);
}

.reconciliation-row.ledger-work-row {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.reconciliation-status-band.is-ignored {
  color: #57606a;
  background: var(--surface-muted);
  border-bottom-color: var(--line);
}

.ledger-work-row .reconciliation-status-band {
  margin: -14px -14px 14px;
}

.ledger-work-row.is-collapsed .reconciliation-status-band {
  margin: 0;
}

.ledger-work-row.is-collapsed > .ledger-work-grid,
.ledger-work-row.is-collapsed > .reconciliation-multi-drawer {
  display: none;
}

.ledger-work-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 176px minmax(0, 1fr);
  align-items: stretch;
}

.ledger-work-cell {
  min-width: 0;
  display: grid;
  gap: 10px;
  align-content: start;
}

.ledger-work-system .reconciliation-match-entry,
.ledger-work-system .reconciliation-assignment-entry,
.ledger-work-system .reconciliation-suggestions-panel {
  min-width: 0;
}

/* Bloquinho do editor: digitacao em cima, Buscar titulos no meio, sugestoes embaixo */
.ledger-editor-block {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 8px 22px rgba(31, 41, 51, 0.05);
}

.ledger-editor-block .reconciliation-assignment-entry {
  order: 1;
}

.ledger-editor-block .ledger-match-toolbar {
  order: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.ledger-editor-block .reconciliation-suggestions-panel {
  order: 3;
}

.ledger-editor-block .ledger-financial-select-hidden {
  display: none;
}

.ledger-editor-block .reconciliation-assignment-card {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}

.ledger-editor-block .reconciliation-multi-control {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.ledger-editor-block .reconciliation-candidates {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.ledger-titles-panel {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.ledger-editor-block .reconciliation-mode-toggle {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ledger-editor-block .reconciliation-mode-option span {
  min-height: 34px;
  padding: 6px;
  font-size: 0.72rem;
  white-space: nowrap;
}

.reconciliation-classificacao-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
}

.reconciliation-classificacao-row .reconciliation-category-field {
  flex: 1.6 1 220px;
  min-width: 0;
}

.reconciliation-classificacao-row .reconciliation-centro-field {
  flex: 1 1 150px;
  min-width: 0;
}

.ledger-action-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
  width: 100%;
}

.ledger-action-buttons .btn-primary-app,
.ledger-action-buttons .btn-secondary-app {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
}

/* Selos de status nos grids financeiros: quebram em duas linhas em vez de cortar. */
.receive-table .status-pill {
  white-space: normal;
  line-height: 1.15;
  font-size: 0.66rem;
  padding: 3px 7px;
  max-width: 100%;
  text-align: center;
  overflow-wrap: anywhere;
}

/* Coluna discreta com o numero interno do titulo (conferencia com a Conciliacao). */
.receive-table .receive-id-cell {
  width: 1%;
  white-space: nowrap;
  text-align: left;
}

.receive-table td.receive-id-cell span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.receive-table th.receive-id-cell {
  color: var(--muted);
  font-size: 0.72rem;
}

/* Ordem da conciliacao: extrato a esquerda, vinculo ao centro e sistema a direita. */
.ledger-work-grid .ledger-work-statement {
  order: 1;
}

.ledger-work-grid .ledger-work-link {
  order: 2;
}

.ledger-work-grid .ledger-work-system {
  order: 3;
}

.ledger-work-head .ledger-pairs-head-col.is-statement {
  order: 1;
}

.ledger-work-head .ledger-pairs-head-spacer {
  order: 2;
}

.ledger-work-head .ledger-pairs-head-col.is-system {
  order: 3;
}

.ledger-system-only-group .ledger-pair .ledger-ghost {
  order: 1;
}

.ledger-system-only-group .ledger-pair .ledger-link {
  order: 2;
}

.ledger-system-only-group .ledger-pair .ledger-pair-stack {
  order: 3;
}

.ledger-system-only-group .ledger-pair.is-system-only .ledger-link::before {
  left: 46%;
  right: -1px;
  background: linear-gradient(270deg, var(--line), rgba(216, 222, 230, 0));
}

/* Selo do extrato segue o sentido: vermelho saindo, verde entrando. */
.account-ledger-source.is-statement.is-out {
  color: #a83a32;
  background: #fdefed;
  border-color: #f0c6c0;
}

/* Faixa de conciliado segue o sentido: verde claro entrando, vermelho bem claro saindo. */
.ledger-work-row.is-debit .reconciliation-status-band.is-reconciled {
  color: #8c3a33;
  background: #fdf3f1;
  border-bottom-color: #f4d5d0;
}

.ledger-titles-panel .reconciliation-suggestions-panel {
  border-top: 0;
  padding-top: 0;
}

/* Revisao flutuante da diferenca entre o extrato e um unico titulo selecionado. */
.reconciliation-difference-panel {
  position: fixed;
  inset: auto;
  z-index: 1200;
  width: min(640px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 1px solid rgba(217, 119, 6, 0.3);
  border-radius: 16px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.24), 0 8px 24px rgba(120, 53, 15, 0.12);
}

.reconciliation-difference-panel:not([open]) {
  display: none;
}

.reconciliation-difference-panel[open] {
  display: block;
  animation: reconciliation-difference-in 0.18s ease-out;
}

.reconciliation-difference-panel::backdrop {
  background: rgba(15, 23, 42, 0.2);
  backdrop-filter: blur(1.5px);
}

.reconciliation-difference-panel[data-reconciliation-difference-side="left"]::after,
.reconciliation-difference-panel[data-reconciliation-difference-side="right"]::after {
  content: "";
  position: absolute;
  top: calc(var(--reconciliation-difference-anchor-y, 50%) - 10px);
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  filter: drop-shadow(0 2px 2px rgba(15, 23, 42, 0.1));
}

.reconciliation-difference-panel[data-reconciliation-difference-side="left"]::after {
  right: -11px;
  border-left: 11px solid #fff;
}

.reconciliation-difference-panel[data-reconciliation-difference-side="right"]::after {
  left: -11px;
  border-right: 11px solid #fff;
}

.reconciliation-difference-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: calc(100dvh - 32px);
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(145deg, #fffbeb 0%, #fff 32%);
}

.reconciliation-difference-body {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 14px 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

body.reconciliation-difference-dialog-open {
  overflow: hidden;
}

@keyframes reconciliation-difference-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.reconciliation-difference-panel.is-invalid {
  border-color: rgba(190, 24, 93, 0.48);
  border-left-color: #be185d;
  box-shadow: 0 0 0 3px rgba(190, 24, 93, 0.08), 0 10px 24px rgba(120, 53, 15, 0.08);
}

.reconciliation-difference-panel.is-blocked {
  border-color: rgba(190, 24, 93, 0.38);
  border-left-color: #be185d;
  background: linear-gradient(135deg, #fff1f2 0%, #fff 72%);
}

.reconciliation-difference-panel [aria-invalid="true"] {
  border-color: #be185d;
  box-shadow: 0 0 0 2px rgba(190, 24, 93, 0.1);
}

.reconciliation-difference-panel[hidden],
.reconciliation-difference-loading[hidden],
.reconciliation-difference-message[hidden],
.reconciliation-difference-additions[hidden],
.reconciliation-existing-composition[hidden],
.reconciliation-difference-shortage[hidden],
.reconciliation-difference-treatment-options[hidden],
.reconciliation-difference-distribution[hidden] {
  display: none;
}

.download-site-import-form.is-disabled {
  opacity: 0.66;
}

.download-site-import-form.is-disabled .download-site-xml-dropzone {
  cursor: not-allowed;
}

.reconciliation-difference-header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 16px 18px 13px;
  border-bottom: 1px solid rgba(217, 119, 6, 0.14);
  background: rgba(255, 251, 235, 0.72);
}

.reconciliation-difference-header > div,
.reconciliation-difference-section-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.reconciliation-difference-header strong,
.reconciliation-difference-section-copy strong {
  color: #7c2d12;
  font-size: 0.84rem;
  font-weight: 900;
  line-height: 1.3;
}

.reconciliation-difference-eyebrow {
  color: #b45309;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.055em;
  line-height: 1.2;
  text-transform: uppercase;
}

.reconciliation-difference-header small,
.reconciliation-difference-section-copy small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 720;
  line-height: 1.4;
}

.reconciliation-difference-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 9px;
  color: #92400e;
  background: #fef3c7;
}

.reconciliation-difference-icon svg,
.reconciliation-difference-loading svg {
  width: 17px;
  height: 17px;
}

.reconciliation-difference-close {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  margin: 0 0 0 auto;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 10px;
  color: #475569;
  background: rgba(255, 255, 255, 0.86);
  cursor: pointer;
}

.reconciliation-difference-close:hover,
.reconciliation-difference-close:focus-visible {
  border-color: rgba(28, 34, 38, 0.32);
  color: var(--accent-strong);
  background: #fff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(28, 34, 38, 0.08);
}

.reconciliation-difference-close svg {
  width: 17px;
  height: 17px;
}

.reconciliation-difference-loading,
.reconciliation-difference-message,
.reconciliation-difference-status {
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 9px 10px;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 780;
  line-height: 1.35;
}

.reconciliation-difference-loading {
  display: flex;
  color: #075985;
  background: #e0f2fe;
}

.reconciliation-difference-message {
  display: block;
  color: #9f1239;
  background: #fff1f2;
  border: 1px solid #fecdd3;
}

.reconciliation-difference-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.reconciliation-difference-summary-item {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
}

.reconciliation-difference-summary-item span {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 820;
}

.reconciliation-difference-summary-item strong {
  color: var(--text);
  font-size: 0.88rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

.reconciliation-difference-summary-item.is-difference {
  border-color: rgba(217, 119, 6, 0.32);
  background: #fef3c7;
}

.reconciliation-difference-summary-item.is-difference strong {
  color: #92400e;
}

.reconciliation-existing-composition {
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid color-mix(in srgb, var(--primary), transparent 62%);
  border-radius: 9px;
  background: color-mix(in srgb, var(--primary), transparent 94%);
}

.reconciliation-existing-composition .reconciliation-difference-section-copy strong {
  color: var(--primary-strong, var(--primary));
}

.reconciliation-existing-composition-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.reconciliation-existing-composition-grid > div {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--border), transparent 10%);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.9);
}

.reconciliation-existing-composition-grid span {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 820;
}

.reconciliation-existing-composition-grid strong {
  font-size: 0.86rem;
  font-variant-numeric: tabular-nums;
}

.reconciliation-existing-composition-grid .is-total {
  border-color: color-mix(in srgb, var(--primary), transparent 52%);
  background: color-mix(in srgb, var(--primary), transparent 90%);
}

.reconciliation-existing-composition-grid .is-total strong {
  color: var(--primary-strong, var(--primary));
}

.reconciliation-difference-retentions {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(14, 116, 144, 0.2);
  border-radius: 9px;
  background: rgba(240, 249, 255, 0.72);
}

.reconciliation-difference-retentions .reconciliation-difference-section-copy strong {
  color: #0c4a6e;
}

.reconciliation-difference-retentions-total {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 10px;
  align-items: center;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid rgba(14, 116, 144, 0.2);
  border-radius: 8px;
  color: #0c4a6e;
  background: #fff;
}

.reconciliation-difference-retentions-total > span,
.reconciliation-difference-retentions-total > small {
  font-size: 0.66rem;
  font-weight: 760;
  line-height: 1.3;
}

.reconciliation-difference-retentions-total > small {
  grid-column: 1 / -1;
  color: var(--muted);
}

.reconciliation-difference-retentions-total > strong {
  color: #075985;
  font-size: 0.76rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.reconciliation-difference-retentions-list {
  display: grid;
  gap: 8px;
}

.reconciliation-difference-retention-title {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(14, 116, 144, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
}

.reconciliation-difference-retention-title-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.reconciliation-difference-retention-title-heading strong {
  min-width: 0;
  color: var(--text);
  font-size: 0.73rem;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.reconciliation-difference-retention-title-heading small {
  flex: 0 0 auto;
  color: #0369a1;
  font-size: 0.65rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.reconciliation-difference-retention-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  min-width: 0;
}

.reconciliation-difference-retention-field {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.reconciliation-difference-retention-field > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  color: #334155;
  font-size: 0.62rem;
  font-weight: 850;
}

.reconciliation-difference-retention-field > span > em {
  color: #0369a1;
  font-size: 0.56rem;
  font-style: normal;
  font-weight: 850;
}

.reconciliation-difference-retention-field input {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  padding: 7px 8px;
  color: var(--text);
  background: #fff;
  font-size: 0.76rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.reconciliation-difference-retention-source {
  color: var(--muted);
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.reconciliation-difference-additions,
.reconciliation-difference-shortage {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(217, 119, 6, 0.2);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.76);
}

.reconciliation-difference-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.reconciliation-difference-quick-button {
  min-height: 32px;
  padding: 0 10px;
  font-size: 0.72rem;
}

.reconciliation-difference-quick-button svg {
  width: 14px;
  height: 14px;
}

.reconciliation-difference-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  min-width: 0;
}

.reconciliation-difference-field {
  min-width: 0;
}

.reconciliation-difference-field input {
  min-height: 40px;
  color: var(--text);
  background: #fff;
  font-size: 0.9rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.reconciliation-difference-distribution {
  display: grid;
  gap: 10px;
  padding-top: 2px;
}

.reconciliation-difference-distribution-heading {
  display: grid;
  gap: 8px;
}

.reconciliation-difference-distribution-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.reconciliation-difference-distribution-action {
  min-height: 34px;
  padding: 0 10px;
  font-size: 0.7rem;
}

.reconciliation-difference-distribution-action svg {
  width: 14px;
  height: 14px;
}

.reconciliation-difference-distribution-action[data-reconciliation-difference-pendency-all] {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 6px 8px;
  gap: 5px;
  line-height: 1.2;
  text-align: center;
  text-wrap: balance;
  white-space: normal;
}

.reconciliation-difference-distribution-mode-note {
  margin: 0;
  padding: 7px 9px;
  border-left: 3px solid #0f766e;
  border-radius: 0 7px 7px 0;
  color: #115e59;
  background: #f0fdfa;
  font-size: 0.68rem;
  font-weight: 760;
  line-height: 1.35;
}

.reconciliation-difference-assignment-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.reconciliation-difference-assignment-summary.is-pendency {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reconciliation-difference-assignment-summary > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 7px;
  background: #fff;
}

.reconciliation-difference-assignment-summary span {
  color: var(--muted);
  font-size: 0.61rem;
  font-weight: 800;
}

.reconciliation-difference-assignment-summary strong {
  color: var(--text);
  font-size: 0.75rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-remaining-card] {
  border-color: rgba(217, 119, 6, 0.32);
  background: #fffbeb;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-remaining-card] strong {
  color: #92400e;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-remaining-card].is-balanced {
  border-color: rgba(4, 120, 87, 0.3);
  background: #ecfdf5;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-remaining-card].is-balanced strong {
  color: #047857;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-remaining-card].is-excess {
  border-color: #fecdd3;
  background: #fff1f2;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-remaining-card].is-excess strong {
  color: #9f1239;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-pendency-remaining-card] {
  border-color: rgba(217, 119, 6, 0.32);
  background: #fffbeb;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-pendency-remaining-card] strong {
  color: #92400e;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-pendency-remaining-card].is-balanced {
  border-color: rgba(4, 120, 87, 0.3);
  background: #ecfdf5;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-pendency-remaining-card].is-balanced strong {
  color: #047857;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-pendency-remaining-card].is-excess {
  border-color: #fecdd3;
  background: #fff1f2;
}

.reconciliation-difference-assignment-summary [data-reconciliation-difference-pendency-remaining-card].is-excess strong {
  color: #9f1239;
}

.reconciliation-difference-distribution-list {
  display: grid;
  gap: 8px;
}

.reconciliation-difference-distribution-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.8fr);
  gap: 12px;
  align-items: end;
  padding: 10px;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 8px;
  background: #f8fafc;
}

.reconciliation-difference-distribution-identity {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.reconciliation-difference-distribution-identity strong {
  color: var(--text);
  font-size: 0.75rem;
  font-weight: 850;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.reconciliation-difference-distribution-item small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 720;
  line-height: 1.3;
}

.reconciliation-difference-distribution-document {
  color: #475569 !important;
}

.reconciliation-difference-distribution-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 8px;
  min-width: 0;
}

.reconciliation-difference-distribution-field {
  min-width: 0;
}

.reconciliation-difference-distribution-field > span {
  font-size: 0.63rem;
}

.reconciliation-difference-distribution-field input {
  width: 100%;
  min-height: 36px;
  padding: 7px 8px;
  color: var(--text);
  background: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.reconciliation-difference-distribution-item-total {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  color: #7c2d12;
  font-size: 0.72rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.reconciliation-difference-distribution-item-total::before {
  content: "Total atribuido:";
  color: var(--muted);
  font-weight: 760;
}

.reconciliation-difference-distribution-item-total.is-pendency::before {
  content: "Recebido neste titulo:";
}

.reconciliation-difference-treatment-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.reconciliation-difference-treatment-button {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  min-width: 0;
  padding: 10px;
  border: 1px solid #d7dee8;
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.reconciliation-difference-treatment-button:hover,
.reconciliation-difference-treatment-button:focus-visible {
  border-color: rgba(28, 34, 38, 0.34);
  box-shadow: 0 0 0 2px rgba(28, 34, 38, 0.06);
  outline: none;
}

.reconciliation-difference-treatment-button[aria-pressed="true"] {
  border-color: rgba(4, 120, 87, 0.42);
  background: #ecfdf5;
  box-shadow: 0 0 0 2px rgba(4, 120, 87, 0.08);
}

.reconciliation-difference-treatment-button > svg {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  color: var(--accent-strong);
}

.reconciliation-difference-treatment-button > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.reconciliation-difference-treatment-button strong {
  font-size: 0.76rem;
  font-weight: 880;
}

.reconciliation-difference-treatment-button small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
}

.reconciliation-difference-observation-field {
  min-width: 0;
}

.reconciliation-difference-observation-field textarea {
  width: 100%;
  min-height: 66px;
  resize: vertical;
  background: #fff;
}

.reconciliation-difference-observation-field > small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 680;
  line-height: 1.3;
}

.reconciliation-difference-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 9px 10px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  color: var(--text);
  background: rgba(248, 250, 252, 0.88);
  font-size: 0.74rem;
  font-weight: 780;
  line-height: 1.35;
  cursor: pointer;
}

.reconciliation-difference-confirmation input {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin: 1px 0 0;
  accent-color: var(--accent);
}

.reconciliation-difference-status {
  display: flex;
  color: #92400e;
  background: #fef3c7;
  border: 1px solid rgba(217, 119, 6, 0.24);
}

.reconciliation-difference-status:empty {
  display: none;
}

.reconciliation-difference-status.is-balanced,
.reconciliation-difference-status.is-valid {
  color: #065f46;
  background: #d1fae5;
  border-color: rgba(4, 120, 87, 0.24);
}

.reconciliation-difference-status.is-error,
.reconciliation-difference-status.is-excess {
  color: #9f1239;
  background: #fff1f2;
  border-color: #fecdd3;
}

.reconciliation-difference-footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding: 12px 18px 14px;
  border-top: 1px solid rgba(148, 163, 184, 0.18);
  background: rgba(248, 250, 252, 0.94);
}

.reconciliation-difference-footer .btn-primary-app,
.reconciliation-difference-footer .btn-secondary-app {
  min-height: 38px;
}

.reconciliation-difference-footer .btn-primary-app:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.reconciliation-candidate.has-difference {
  border-color: rgba(217, 119, 6, 0.52);
  background: linear-gradient(145deg, #fff 0%, #fffbeb 100%);
  box-shadow: 0 0 0 2px rgba(217, 119, 6, 0.09);
}

.reconciliation-candidate.has-difference[aria-expanded="true"] {
  border-color: rgba(180, 83, 9, 0.72);
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.14), 0 14px 30px rgba(120, 53, 15, 0.12);
}

.reconciliation-candidate.is-difference-reviewed {
  border-color: rgba(4, 120, 87, 0.42);
  background: linear-gradient(145deg, #fff 0%, #ecfdf5 100%);
  box-shadow: 0 0 0 2px rgba(4, 120, 87, 0.08);
}

.reconciliation-candidate-difference {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  padding: 6px 9px;
  border-radius: 999px;
  color: #92400e;
  background: #fef3c7;
  font-size: 0.71rem;
  font-weight: 900;
  line-height: 1.2;
}

.reconciliation-candidate-difference.is-reviewed {
  color: #065f46;
  background: #d1fae5;
}

.reconciliation-candidate-difference svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.reconciliation-difference-reopen {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: fit-content;
  min-height: 34px;
  padding: 0 11px;
  border-color: rgba(217, 119, 6, 0.38);
  color: #92400e;
  background: #fffbeb;
  font-size: 0.72rem;
  font-weight: 900;
}

.reconciliation-difference-reopen:hover,
.reconciliation-difference-reopen:focus-visible,
.reconciliation-difference-reopen[aria-expanded="true"] {
  border-color: rgba(180, 83, 9, 0.62);
  color: #7c2d12;
  background: #fef3c7;
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.1);
}

.reconciliation-difference-reopen.is-difference-reviewed {
  border-color: rgba(4, 120, 87, 0.32);
  color: #065f46;
  background: #ecfdf5;
}

.reconciliation-difference-reopen.is-difference-reviewed:hover,
.reconciliation-difference-reopen.is-difference-reviewed:focus-visible {
  border-color: rgba(4, 120, 87, 0.52);
  background: #d1fae5;
  box-shadow: 0 0 0 3px rgba(4, 120, 87, 0.1);
}

.reconciliation-difference-reopen svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

[data-reconciliation-financial-select].has-difference {
  border-color: rgba(217, 119, 6, 0.58);
  box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.1);
}

@media (max-width: 720px) {
  .reconciliation-difference-panel {
    inset: auto 8px 8px 8px;
    width: auto;
    max-height: min(88dvh, 720px);
    border-radius: 18px 18px 12px 12px;
  }

  .reconciliation-difference-panel[open] {
    animation: reconciliation-difference-sheet-in 0.2s ease-out;
  }

  .reconciliation-difference-panel::after {
    display: none;
  }

  .reconciliation-difference-shell {
    max-height: min(88dvh, 720px);
  }

  .reconciliation-difference-header {
    padding: 14px 14px 11px;
  }

  .reconciliation-difference-body {
    gap: 10px;
    padding: 12px 14px;
    scrollbar-gutter: auto;
  }

  .reconciliation-difference-footer {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    padding: 10px 14px max(12px, env(safe-area-inset-bottom));
  }

  .reconciliation-difference-summary,
  .reconciliation-difference-fields,
  .reconciliation-existing-composition-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-difference-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
  }

  .reconciliation-difference-retention-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-difference-retentions-total {
    grid-template-columns: minmax(0, 1fr);
  }

  .reconciliation-difference-retentions-total > strong {
    white-space: normal;
  }

  .reconciliation-difference-summary-item {
    padding: 8px 7px;
  }

  .reconciliation-difference-summary-item span {
    font-size: 0.62rem;
  }

  .reconciliation-difference-summary-item strong {
    font-size: 0.78rem;
  }

  .reconciliation-difference-treatment-options {
    grid-template-columns: minmax(0, 1fr);
  }

  .reconciliation-difference-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-difference-quick-button {
    width: 100%;
    justify-content: center;
  }

  .reconciliation-difference-distribution-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .reconciliation-difference-distribution-action {
    width: 100%;
    justify-content: center;
  }

  .reconciliation-difference-assignment-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-difference-distribution-item {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  @keyframes reconciliation-difference-sheet-in {
    from {
      opacity: 0;
      transform: translateY(24px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* Modo "Buscar titulos": descricao e dica de novo lancamento nao se aplicam ao vinculo */
.reconciliation-assignment-card:has(.reconciliation-mode-toggle input[value="LANCAMENTO_FINANCEIRO"]:checked) > .reconciliation-description-field,
.reconciliation-assignment-card:has(.reconciliation-mode-toggle input[value="LANCAMENTO_FINANCEIRO"]:checked) > .reconciliation-assignment-hint {
  display: none;
}

.ledger-work-statement {
  align-content: center;
}

.ledger-work-link {
  min-height: 96px;
  padding: 0 14px;
}

.ledger-work-link .reconciliation-line-action {
  max-width: 100%;
}

.ledger-work-link .reconciliation-line-action small {
  max-width: 136px;
}

.ledger-work-link::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -1px;
  right: -1px;
  height: 2px;
  transform: translateY(-50%);
  background: repeating-linear-gradient(90deg, #aebccb 0 8px, transparent 8px 14px);
}

.ledger-work-row.is-reconciled-row .ledger-work-link::before {
  background: var(--success);
}

.ledger-work-row.has-existing-match .ledger-work-link::before {
  background: repeating-linear-gradient(90deg, #d99b26 0 7px, transparent 7px 13px);
}

.ledger-work-row.is-ignored-row .ledger-work-link::before {
  left: -1px;
  right: 46%;
  background: linear-gradient(90deg, var(--line), rgba(216, 222, 230, 0));
}

.ledger-work-link .reconciliation-line-action {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  text-align: center;
}

.ledger-work-link .reconciliation-line-action small {
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.25;
  background: var(--surface);
  border-radius: 6px;
  padding: 1px 4px;
}

.ledger-work-link .reconciliation-line-submit {
  position: relative;
  z-index: 1;
}

.ledger-work-link .ledger-link-note {
  position: relative;
  z-index: 1;
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.25;
  text-align: center;
  background: var(--surface);
  border-radius: 6px;
  padding: 1px 4px;
}

.ledger-match-reason {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #8a4b0f;
  font-weight: 700;
}

.ledger-match-reason svg {
  width: 13px;
  height: 13px;
  flex: none;
}

.ledger-editor-details {
  margin-top: 2px;
}

.ledger-editor-details .collapsible-entry-body {
  display: grid;
  gap: 10px;
}

.ledger-system-only-group {
  margin-top: 14px;
}

.ledger-system-only-group .collapsible-entry-body .ledger-pairs {
  margin-top: 6px;
}

.ledger-work-head {
  grid-template-columns: minmax(0, 1fr) 176px minmax(0, 1fr);
  margin-bottom: 10px;
  padding: 0 16px 0 21px;
}

@media (max-width: 1420px) {
  .ledger-work-grid,
  .ledger-work-head {
    grid-template-columns: minmax(0, 1fr) 148px minmax(0, 1fr);
  }
}

@media (max-width: 1100px) {
  .ledger-work-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .ledger-work-head {
    display: none;
  }

  .ledger-work-link {
    min-height: 52px;
  }

  .ledger-work-link::before {
    top: -1px;
    bottom: -1px;
    left: 50%;
    right: auto;
    width: 2px;
    height: auto;
    transform: translateX(-50%);
    background: repeating-linear-gradient(180deg, #cbd4de 0 7px, transparent 7px 13px);
  }

  .ledger-work-row.has-existing-match .ledger-work-link::before {
    background: repeating-linear-gradient(180deg, #d99b26 0 7px, transparent 7px 13px);
  }

  .ledger-work-row.is-reconciled-row .ledger-work-link::before {
    background: var(--success);
  }

  .ledger-work-row.is-ignored-row .ledger-work-link::before {
    left: 50%;
    top: -1px;
    bottom: 50%;
    background: linear-gradient(180deg, var(--line), rgba(216, 222, 230, 0));
  }

  .ledger-work-link .reconciliation-line-action {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
}

/* Overrides for the compact reconciliation toolbar (kept last for responsive precedence). */
.bank-reconciliation-main-controls {
  grid-template-columns: minmax(240px, 0.82fr) minmax(340px, 1.48fr) auto;
  gap: 14px;
  align-items: end;
}

.bank-reconciliation-account-context,
.bank-reconciliation-period-filter-inline {
  min-width: 0;
}

.bank-reconciliation-account-control {
  display: block;
  min-width: 0;
  position: relative;
}

.bank-reconciliation-account-control.is-enhanced select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  cursor: pointer;
  font-size: 0.8125rem;
}

.bank-reconciliation-account-caption:not([hidden]) {
  display: grid;
  gap: 3px;
  min-height: 44px;
  padding: 10px 36px 10px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: var(--text);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
}

.bank-reconciliation-account-caption::after {
  content: "";
  position: absolute;
  right: 15px;
  top: calc(50% - 4px);
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}

.bank-reconciliation-account-control:focus-within .bank-reconciliation-account-caption {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.bank-reconciliation-period-filter-inline {
  grid-template-columns: minmax(145px, 0.62fr) minmax(0, 1.38fr);
  gap: 10px;
  padding: 0;
  border: 0;
  background: transparent;
}

.bank-reconciliation-period-filter-inline .bank-reconciliation-period-filter-copy,
.bank-reconciliation-period-filter-inline .bank-reconciliation-period-smart-field {
  align-self: end;
}

.bank-reconciliation-period-smart-field[data-reconciliation-confirm="true"] .receivable-period-control {
  display: flex;
  align-items: stretch;
  gap: 8px;
}

.bank-reconciliation-period-smart-field[data-reconciliation-confirm="true"] .receivable-period-trigger {
  flex: 1 1 0;
  min-width: 0;
}

.bank-reconciliation-period-search {
  flex: 0 0 44px;
  width: 44px;
  min-height: 44px;
  padding: 10px;
  justify-content: center;
}

.bank-reconciliation-period-search:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.bank-reconciliation-availability {
  padding: 10px 12px;
  border: 1px solid #abd8cc;
  border-radius: 8px;
  background: #e8f5ef;
  color: #195c50;
  font-size: .85rem;
  overflow-wrap: anywhere;
}

.bank-reconciliation-availability[data-state="unavailable"],
.bank-reconciliation-availability[data-state="partial"] {
  border-color: #e4ca98;
  background: #fff6e5;
  color: #73511b;
}

.bank-reconciliation-period-filter-inline .bank-reconciliation-period-filter-copy {
  min-width: 0;
  overflow-wrap: anywhere;
}

.bank-reconciliation-period-smart-field[data-receivable-period-open="true"] .receivable-period-control {
  z-index: 160;
}

.bank-reconciliation-period-filter .bank-reconciliation-period-popover {
  position: fixed;
  z-index: 170;
  top: auto;
  right: auto;
  bottom: auto;
  width: min(840px, calc(100vw - 24px));
  max-height: calc(100vh - var(--desktop-header-height) - 24px);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 12px;
  overscroll-behavior: contain;
}

.bank-reconciliation-period-filter .bank-reconciliation-period-popover::before {
  display: none;
}

.bank-reconciliation-period-layout {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.bank-reconciliation-period-options {
  grid-template-columns: 1fr;
  align-content: start;
  gap: 7px;
}

.bank-reconciliation-period-options .receivable-period-option {
  min-height: 36px;
  padding: 7px 9px;
  text-align: left;
}

.bank-reconciliation-period-content {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.bank-reconciliation-competence-editor {
  margin-top: 0;
}

.bank-reconciliation-range {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.bank-reconciliation-range[hidden] {
  display: none;
}

.bank-reconciliation-range-calendars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}

.bank-reconciliation-range-month {
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #fff;
}

.bank-reconciliation-range-month-head {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 32px;
  gap: 6px;
  align-items: center;
  min-height: 36px;
  margin-bottom: 7px;
  padding: 2px;
  border-radius: 7px;
  background: var(--surface-muted);
}

.bank-reconciliation-range-month-head strong {
  overflow: hidden;
  color: var(--text);
  font-family: var(--font-heading);
  font-size: 0.88rem;
  font-weight: 850;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bank-reconciliation-range-nav,
.bank-reconciliation-range-nav-spacer {
  width: 30px;
  height: 30px;
}

.bank-reconciliation-range-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}

.bank-reconciliation-range-nav svg {
  width: 16px;
  height: 16px;
}

.bank-reconciliation-range-nav:hover,
.bank-reconciliation-range-nav:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(28, 34, 38, 0.2);
  background: var(--accent-soft);
  outline: none;
}

.bank-reconciliation-range-nav:disabled {
  cursor: not-allowed;
  opacity: 0.38;
}

.bank-reconciliation-range-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}

.bank-reconciliation-range-weekday {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  color: var(--muted);
  font-size: 0.65rem;
  font-weight: 900;
}

.bank-reconciliation-range-day {
  min-width: 0;
  min-height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-size: 0.74rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  cursor: pointer;
}

.bank-reconciliation-range-day:hover,
.bank-reconciliation-range-day:focus-visible {
  color: var(--accent-strong);
  border-color: rgba(14, 124, 123, 0.55);
  background: var(--accent-warm-soft);
  outline: 2px solid rgba(14, 124, 123, 0.2);
  outline-offset: 1px;
}

.bank-reconciliation-range-day.is-muted {
  color: #93a1a6;
  background: #f8fafc;
}

.bank-reconciliation-range-day.is-today {
  color: var(--accent-warm);
  border-color: rgba(14, 124, 123, 0.48);
}

.bank-reconciliation-range-day.is-in-range {
  color: var(--accent-strong);
  border-color: rgba(14, 124, 123, 0.18);
  background: var(--accent-warm-soft);
}

.bank-reconciliation-range-day.is-selected,
.bank-reconciliation-range-day.is-selected:hover,
.bank-reconciliation-range-day.is-selected:focus-visible {
  color: #fff;
  border-color: var(--accent-warm);
  background: var(--accent-warm);
  box-shadow: 0 6px 14px rgba(14, 124, 123, 0.22);
}

.bank-reconciliation-range-day:disabled,
.bank-reconciliation-range-day:disabled:hover {
  color: #a9b3b7;
  border-color: rgba(211, 219, 220, 0.7);
  background: #f4f7f7;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 0.58;
  outline: none;
}

.bank-reconciliation-range-guidance {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 9px;
  border: 1px solid rgba(56, 115, 170, 0.22);
  border-radius: 7px;
  color: #24527a;
  background: #f1f7ff;
  font-size: 0.72rem;
  font-weight: 780;
}

.bank-reconciliation-range-guidance[hidden] {
  display: none;
}

.bank-reconciliation-range-guidance[data-state="complete"] {
  color: var(--success-strong);
  border-color: var(--success-line);
  background: var(--success-soft);
}

.bank-reconciliation-range-guidance svg {
  width: 16px;
  height: 16px;
}

.bank-reconciliation-range-inputs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.bank-reconciliation-range-inputs label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 820;
}

.bank-reconciliation-range-input-control {
  position: relative;
  display: block;
}

.bank-reconciliation-range-input-control input {
  width: 100%;
  min-height: 38px;
  padding: 8px 38px 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font: inherit;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.bank-reconciliation-range-input-control input:focus {
  border-color: var(--accent-warm);
  outline: 3px solid rgba(14, 124, 123, 0.14);
}

.bank-reconciliation-range-input-control input:invalid {
  border-color: var(--danger);
}

.bank-reconciliation-range-input-control svg {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 16px;
  height: 16px;
  color: var(--muted);
  pointer-events: none;
  transform: translateY(-50%);
}

.bank-reconciliation-period-actions {
  margin-top: 0;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.bank-reconciliation-period-actions .date-range-action.primary:disabled {
  color: #8b969a;
  border-color: var(--line);
  background: var(--surface-muted);
  box-shadow: none;
  cursor: not-allowed;
}

.bank-reconciliation-files-trigger {
  align-self: end;
  justify-self: end;
  min-height: 44px;
  white-space: nowrap;
}

.bank-reconciliation-files-drawer .inventory-drawer-panel {
  width: min(760px, calc(100vw - 28px));
}

.bank-reconciliation-files-body {
  display: grid;
  gap: 18px;
}

.bank-reconciliation-files-intro {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 8px;
  background: #f8fafc;
}

.bank-reconciliation-files-intro span,
.bank-reconciliation-files-intro small,
.bank-reconciliation-files-eyebrow {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
}

.bank-reconciliation-files-intro strong {
  color: var(--text);
  font-size: 0.96rem;
  font-weight: 850;
}

.bank-reconciliation-file-metadata {
  display: grid;
  gap: 2px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(28, 34, 38, 0.16);
  transition: background-color 0.2s ease, padding 0.2s ease;
}

.bank-reconciliation-file-metadata.is-highlighted {
  padding: 8px;
  border-radius: 7px;
  background: rgba(28, 34, 38, 0.07);
}

.bank-reconciliation-file-metadata span,
.bank-reconciliation-file-metadata small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 780;
}

.bank-reconciliation-file-metadata > strong {
  overflow: hidden;
  color: var(--accent-strong);
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bank-reconciliation-file-metadata small span {
  color: var(--text);
  font-weight: 850;
}

.bank-reconciliation-files-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.bank-reconciliation-files-section-heading > div {
  display: grid;
  gap: 2px;
}

.bank-reconciliation-files-section-heading strong {
  color: var(--text);
  font-size: 0.94rem;
  font-weight: 850;
}

.bank-reconciliation-files-count {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  color: var(--accent-strong);
  background: rgba(28, 34, 38, 0.07);
  font-size: 0.72rem;
  font-weight: 850;
  white-space: nowrap;
}

.bank-reconciliation-files-drawer .bank-period-popover {
  position: static;
  width: auto;
  max-height: 360px;
  margin-top: 8px;
  box-shadow: none;
}

.bank-reconciliation-files-drawer .bank-period-selector {
  display: block;
}

.bank-reconciliation-files-help {
  display: block;
  margin: 3px 0 8px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 760;
}

.bank-reconciliation-files-drawer .bank-period-arrow {
  display: none;
}

.bank-reconciliation-files-drawer .bank-period-menu {
  display: block;
}

.bank-reconciliation-files-drawer .bank-period-current {
  cursor: default;
  pointer-events: none;
}

.bank-reconciliation-files-drawer .bank-period-current > svg {
  display: none;
}

.bank-reconciliation-files-drawer .bank-period-option {
  cursor: context-menu;
}

.bank-reconciliation-files-drawer .bank-reconciliation-import-card {
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 0;
  padding: 14px;
}

.bank-reconciliation-files-drawer .bank-reconciliation-import-card .form-actions {
  justify-content: flex-end;
}

@media (max-width: 1100px) {
  .bank-reconciliation-main-controls {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .bank-reconciliation-period-filter-inline {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .bank-reconciliation-files-trigger {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (max-width: 720px) {
  .bank-reconciliation-main-controls {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-period-filter-inline {
    grid-column: auto;
    grid-row: auto;
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-files-trigger {
    grid-column: auto;
    grid-row: auto;
    justify-self: stretch;
  }

  .bank-reconciliation-period-layout {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-period-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bank-reconciliation-period-options .receivable-period-option {
    text-align: center;
  }

  .bank-reconciliation-range-calendars {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-range-month[data-reconciliation-range-month="1"] {
    display: none;
  }

  .bank-reconciliation-range-inputs,
  .bank-reconciliation-competence-editor {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-files-drawer .inventory-drawer-panel {
    top: 8px;
    right: 8px;
    bottom: 8px;
    width: calc(100vw - 16px);
  }

  .bank-reconciliation-files-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .access-matrix-toolbar {
    padding: 14px;
  }

  .access-selection-count {
    order: -1;
  }

  .access-module-header {
    gap: 7px;
    padding-right: 8px;
    padding-left: 11px;
  }

  .access-module-selector {
    gap: 8px;
  }

  .access-module-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
  }

  .access-module-copy small {
    display: none;
  }

  .access-module-meta {
    gap: 5px;
    font-size: 0.65rem;
  }

  .access-route-panel {
    padding-left: 45px;
  }
}

/* Selecao em lote de entradas/recebimentos e saidas/pagamentos */
.reconciliation-batch-command {
  position: relative;
  display: inline-flex;
}

.reconciliation-batch-start {
  min-height: 36px;
  white-space: nowrap;
}

.reconciliation-batch-start > svg:last-child {
  width: 15px;
  height: 15px;
}

.reconciliation-batch-mode-menu {
  position: absolute;
  z-index: 1150;
  top: calc(100% + 7px);
  right: 0;
  display: grid;
  gap: 4px;
  width: min(370px, calc(100vw - 32px));
  padding: 6px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.2);
}

.reconciliation-batch-mode-menu > button {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 7px;
  color: var(--text);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.reconciliation-batch-mode-menu > button:hover,
.reconciliation-batch-mode-menu > button:focus-visible,
.reconciliation-batch-mode-menu > button[aria-current="true"] {
  outline: 0;
  background: #f1f5f9;
}

.reconciliation-batch-mode-menu > button:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(28, 34, 38, 0.28);
}

.reconciliation-batch-mode-menu > button > span:last-child {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.reconciliation-batch-mode-menu strong {
  font-size: 0.8rem;
  font-weight: 900;
}

.reconciliation-batch-mode-menu small {
  color: var(--muted);
  font-size: 0.69rem;
  font-weight: 700;
  line-height: 1.35;
}

.reconciliation-batch-mode-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
}

.reconciliation-batch-mode-icon svg {
  width: 17px;
  height: 17px;
}

.reconciliation-batch-mode-icon.is-receipt {
  color: #047857;
  background: #d1fae5;
}

.reconciliation-batch-mode-icon.is-payment {
  color: #b45309;
  background: #fef3c7;
}

.reconciliation-batch-checkbox {
  display: inline-grid;
  flex: 0 0 auto;
  cursor: pointer;
}

.reconciliation-batch-checkbox[hidden],
.reconciliation-batch-bar[hidden],
.reconciliation-batch-selection[hidden],
.reconciliation-batch-composition[hidden],
.reconciliation-batch-mode-menu[hidden],
.reconciliation-batch-payment-shortage[hidden],
.reconciliation-batch-payment-excess[hidden],
.reconciliation-batch-received-toggle[hidden] {
  display: none !important;
}

.reconciliation-batch-checkbox input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.reconciliation-batch-checkbox > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 2px solid rgba(146, 64, 14, 0.38);
  border-radius: 7px;
  color: transparent;
  background: rgba(255, 255, 255, 0.9);
  transition: 140ms ease;
}

.reconciliation-batch-checkbox input:focus-visible + span {
  outline: 3px solid rgba(28, 34, 38, 0.18);
  outline-offset: 2px;
}

.reconciliation-batch-checkbox input:checked + span {
  border-color: #047857;
  color: #fff;
  background: #047857;
}

.reconciliation-batch-checkbox svg {
  width: 17px;
  height: 17px;
  stroke-width: 3;
}

.bank-reconciliation-form.is-batch-selecting .reconciliation-row[data-reconciliation-row] {
  transition: border-color 140ms ease, box-shadow 140ms ease, opacity 140ms ease;
}

.bank-reconciliation-form.is-batch-selecting .reconciliation-row.is-batch-ineligible {
  opacity: 0.58;
}

.bank-reconciliation-form.is-batch-selecting .reconciliation-row.is-batch-selected {
  border-color: #047857;
  box-shadow: 0 0 0 3px rgba(4, 120, 87, 0.14), 0 16px 34px rgba(15, 23, 42, 0.08);
}

.bank-reconciliation-form.is-batch-mode-payments .reconciliation-batch-checkbox input:checked + span {
  border-color: #b45309;
  background: #b45309;
}

.bank-reconciliation-form.is-batch-mode-payments .reconciliation-row.is-batch-selected {
  border-color: #b45309;
  box-shadow: 0 0 0 3px rgba(180, 83, 9, 0.14), 0 16px 34px rgba(15, 23, 42, 0.08);
}

.reconciliation-batch-bar {
  position: sticky;
  z-index: 1120;
  bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 14px 10px 0;
  padding: 12px 14px;
  border: 1px solid rgba(28, 34, 38, 0.18);
  border-left: 4px solid #047857;
  border-radius: 10px;
  color: #0f172a;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.18);
  backdrop-filter: blur(12px);
}

.bank-reconciliation-form.is-batch-mode-payments .reconciliation-batch-bar {
  border-left-color: #b45309;
}

.reconciliation-batch-bar-copy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
}

.reconciliation-batch-bar-copy strong {
  font-size: 0.9rem;
  font-weight: 900;
}

.reconciliation-batch-bar-copy > span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 820;
}

.reconciliation-batch-bar-actions {
  display: flex;
  gap: 8px;
}

body.reconciliation-batch-drawer-open {
  overflow: hidden;
}

.reconciliation-batch-drawer {
  position: fixed;
  inset: 0;
  z-index: 1210;
  display: block;
}

.reconciliation-batch-drawer[aria-hidden="true"] {
  display: none;
}

.reconciliation-batch-panel {
  display: flex;
  flex-direction: column;
  width: min(780px, calc(100vw - 28px));
}

.reconciliation-batch-intro {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  background: #f8fafc;
}

.reconciliation-batch-intro > span {
  display: inline-flex;
  gap: 4px;
  padding: 5px 8px;
  border-radius: 999px;
  color: #065f46;
  background: #d1fae5;
  font-size: 0.76rem;
  font-weight: 850;
}

.reconciliation-batch-intro small {
  flex: 1 0 100%;
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 720;
}

.bank-reconciliation-form.is-batch-mode-payments .reconciliation-batch-intro > span {
  color: #92400e;
  background: #fef3c7;
}

.reconciliation-batch-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, 0.68fr);
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}

.reconciliation-batch-received-toggle,
.reconciliation-batch-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 9px 10px;
  border: 1px solid #d8e0ec;
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  cursor: pointer;
}

.reconciliation-batch-received-toggle input,
.reconciliation-batch-confirmation input {
  width: 17px;
  min-height: 17px;
  height: 17px;
  margin: 2px 0 0;
  padding: 0;
}

.reconciliation-batch-received-toggle > span {
  display: grid;
  gap: 2px;
}

.reconciliation-batch-received-toggle strong,
.reconciliation-batch-confirmation span {
  font-size: 0.78rem;
  font-weight: 850;
}

.reconciliation-batch-received-toggle small {
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.3;
}

.reconciliation-batch-list-shell {
  flex: 1 1 260px;
  min-height: 160px;
}

.reconciliation-batch-title-option .reconciliation-multi-amount {
  display: grid;
  justify-items: end;
  gap: 2px;
}

.reconciliation-batch-title-option .reconciliation-multi-amount small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 760;
}

.reconciliation-batch-selection {
  display: grid;
  gap: 3px;
  padding: 11px 16px;
  border-top: 1px solid rgba(4, 120, 87, 0.2);
  border-bottom: 1px solid rgba(4, 120, 87, 0.2);
  color: #065f46;
  background: #ecfdf5;
}

.reconciliation-batch-selection > span {
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.reconciliation-batch-selection > strong {
  font-size: 0.84rem;
  font-weight: 900;
}

.reconciliation-batch-selection > small {
  font-size: 0.73rem;
  font-weight: 740;
}

.bank-reconciliation-form.is-batch-mode-payments .reconciliation-batch-selection {
  border-color: rgba(180, 83, 9, 0.22);
  color: #92400e;
  background: #fffbeb;
}

.reconciliation-batch-composition {
  display: grid;
  gap: 10px;
  max-height: 42vh;
  padding: 12px 16px;
  overflow-y: auto;
  border-bottom: 1px solid var(--line);
  background: #fffbeb;
}

.reconciliation-batch-composition .reconciliation-balance-alert {
  margin: 0;
}

.reconciliation-batch-composition-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

[data-reconciliation-batch-composition-status],
[data-reconciliation-batch-payment-shortage-status],
[data-reconciliation-batch-payment-excess-status] {
  min-height: 18px;
  color: #b45309;
  font-size: 0.75rem;
  font-weight: 820;
}

[data-reconciliation-batch-composition-status].is-valid,
[data-reconciliation-batch-payment-shortage-status].is-valid,
[data-reconciliation-batch-payment-excess-status].is-valid {
  color: #047857;
}

.reconciliation-batch-payment-shortage {
  display: grid;
  gap: 11px;
  max-height: 52vh;
  padding: 12px 16px;
  overflow-y: auto;
  border-bottom: 1px solid rgba(180, 83, 9, 0.24);
  background: #fffbeb;
}

.reconciliation-batch-payment-shortage .reconciliation-balance-alert {
  margin: 0;
}

.reconciliation-batch-payment-shortage-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.reconciliation-batch-payment-shortage-summary > div {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(180, 83, 9, 0.2);
  border-radius: 8px;
  background: #fff;
}

.reconciliation-batch-payment-shortage-summary dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 790;
}

.reconciliation-batch-payment-shortage-summary dd {
  margin: 0;
  color: #78350f;
  font-size: 0.84rem;
  font-weight: 900;
}

.reconciliation-batch-payment-shortage-badge {
  display: inline-flex;
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  color: #92400e;
  background: #fef3c7;
  font-size: 0.68rem;
  letter-spacing: 0.035em;
}

.reconciliation-batch-payment-shortage-actions {
  display: flex;
  justify-content: flex-start;
}

.reconciliation-batch-payment-excess {
  display: grid;
  gap: 11px;
  max-height: 52vh;
  padding: 12px 16px;
  overflow-y: auto;
  border-bottom: 1px solid var(--line);
  background: #fffbeb;
}

.reconciliation-batch-payment-excess .reconciliation-balance-alert {
  margin: 0;
}

.reconciliation-batch-excess-destinations {
  display: grid;
  gap: 7px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.reconciliation-batch-excess-destinations legend {
  margin-bottom: 6px;
  font-size: 0.75rem;
  font-weight: 850;
}

.reconciliation-batch-excess-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.reconciliation-batch-excess-options > label {
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #d8e0ec;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.reconciliation-batch-excess-options > label:focus-within {
  border-color: rgba(180, 83, 9, 0.65);
  box-shadow: 0 0 0 3px rgba(180, 83, 9, 0.12);
}

.reconciliation-batch-excess-options input {
  width: 17px;
  min-height: 17px;
  height: 17px;
  margin: 2px 0 0;
  padding: 0;
  accent-color: #b45309;
}

.reconciliation-batch-excess-options span {
  display: grid;
  gap: 2px;
}

.reconciliation-batch-excess-options strong {
  font-size: 0.76rem;
  font-weight: 880;
}

.reconciliation-batch-excess-options small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 690;
  line-height: 1.3;
}

.reconciliation-batch-excess-options input:checked + span strong {
  color: #92400e;
}

.reconciliation-batch-excess-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(145px, 0.48fr);
  gap: 10px;
}

.reconciliation-batch-footer {
  flex: 0 0 auto;
}

@media (max-width: 760px) {
  .reconciliation-pagination-toolbar-actions {
    flex-wrap: wrap;
  }

  .reconciliation-batch-command,
  .reconciliation-batch-start {
    width: 100%;
  }

  .reconciliation-batch-command {
    flex-direction: column;
  }

  .reconciliation-batch-mode-menu {
    position: static;
    width: 100%;
    margin-top: 6px;
  }

  .reconciliation-batch-bar {
    align-items: stretch;
    flex-direction: column;
    margin-right: 0;
    margin-left: 0;
  }

  .reconciliation-batch-bar-actions,
  .reconciliation-batch-bar-actions .btn-primary-app,
  .reconciliation-batch-bar-actions .btn-secondary-app {
    flex: 1;
  }

  .reconciliation-batch-panel {
    top: 8px;
    right: 8px;
    bottom: 8px;
    width: calc(100vw - 16px);
    border-radius: 10px 0 0 10px;
  }

  .reconciliation-batch-filters,
  .reconciliation-batch-composition-grid,
  .reconciliation-batch-excess-options,
  .reconciliation-batch-excess-grid {
    grid-template-columns: 1fr;
  }

  .reconciliation-batch-payment-shortage-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-batch-payment-shortage-actions,
  .reconciliation-batch-payment-shortage-actions .btn-secondary-app {
    width: 100%;
  }

  .reconciliation-batch-title-option {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .reconciliation-batch-title-option .reconciliation-multi-amount {
    grid-column: 2;
    justify-items: start;
  }

  .reconciliation-batch-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .reconciliation-batch-footer .btn-primary-app {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .reconciliation-batch-payment-shortage-summary {
    grid-template-columns: 1fr;
  }
}

/* Painel de Notas Fiscais (/NotasFiscais) — visão analítica, sem cards de atalhos. */
.fiscal-dashboard-intro {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 138px;
  margin-top: 22px;
  padding: 26px 30px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--brand-blue) 18%, var(--line));
  border-radius: 14px;
  background:
    radial-gradient(circle at 88% 14%, rgba(14, 124, 123, 0.12), transparent 28%),
    linear-gradient(118deg, #f8faff 0%, #eef2ff 58%, #fff8f4 100%);
}

.fiscal-dashboard-intro::after {
  position: absolute;
  top: -74px;
  right: 9%;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(28, 34, 38, 0.08);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.fiscal-dashboard-intro > div {
  position: relative;
  z-index: 1;
  max-width: 760px;
}

.fiscal-dashboard-eyebrow,
.fiscal-dashboard-period,
.fiscal-panel-kicker {
  color: var(--accent-strong);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.fiscal-dashboard-eyebrow,
.fiscal-dashboard-period {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.fiscal-dashboard-eyebrow svg,
.fiscal-dashboard-period svg {
  width: 16px;
  height: 16px;
}

.fiscal-dashboard-intro h2 {
  margin: 8px 0 0;
  color: #172033;
  font-size: clamp(1.32rem, 2vw, 1.72rem);
  line-height: 1.18;
}

.fiscal-dashboard-intro p {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.5;
}

.fiscal-dashboard-period {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  padding: 10px 13px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 22px rgba(28, 34, 38, 0.06);
  text-transform: none;
}

.fiscal-dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.fiscal-kpi-card {
  position: relative;
  display: grid;
  align-content: start;
  min-width: 0;
  min-height: 148px;
  padding: 17px 18px 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 12px 30px rgba(31, 41, 51, 0.055);
}

.fiscal-kpi-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: transparent;
  content: "";
}

.fiscal-kpi-card.is-attention::before {
  background: var(--brand-orange);
}

.fiscal-kpi-card.is-healthy::before {
  background: var(--success);
}

.fiscal-kpi-topline {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.fiscal-kpi-icon {
  display: inline-grid;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
}

.fiscal-kpi-icon svg {
  width: 17px;
  height: 17px;
  stroke-width: 2.2;
}

.fiscal-kpi-icon.is-blue {
  color: #1e40af;
  background: #e9efff;
}

.fiscal-kpi-icon.is-indigo {
  color: #5b3bb8;
  background: #f0ebff;
}

.fiscal-kpi-icon.is-green {
  color: var(--success-strong);
  background: var(--success-soft);
}

.fiscal-kpi-icon.is-orange {
  color: #b54b20;
  background: var(--brand-orange-soft);
}

.fiscal-kpi-label {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.79rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-kpi-card > strong {
  margin-top: 13px;
  color: #111827;
  font-size: clamp(1.55rem, 2vw, 2rem);
  font-weight: 880;
  letter-spacing: -0.035em;
  line-height: 1;
}

.fiscal-kpi-card > small {
  margin-top: 9px;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 680;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-kpi-progress {
  height: 4px;
  margin-top: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8edf2;
}

.fiscal-kpi-progress > span {
  display: block;
  max-width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #168063, #32a883);
}

.fiscal-dashboard-charts {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 0.92fr);
  gap: 16px;
  margin-top: 16px;
}

.fiscal-dashboard-panel {
  margin-top: 0;
  border-radius: 12px;
  box-shadow: 0 14px 36px rgba(31, 41, 51, 0.06);
}

.fiscal-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.fiscal-panel-heading h2 {
  margin: 4px 0 0;
  color: #172033;
  font-size: 1.18rem;
}

.fiscal-panel-heading p {
  margin: 6px 0 0;
  font-size: 0.83rem;
  line-height: 1.45;
}

.fiscal-panel-heading .btn-secondary-app {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 8px 11px;
  font-size: 0.78rem;
}

.fiscal-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 16px;
}

.fiscal-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.77rem;
  font-weight: 780;
}

.fiscal-chart-legend i,
.fiscal-quality-list i {
  display: inline-block;
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

.fiscal-chart-legend i.is-nfe,
.fiscal-chart-segment.is-nfe {
  fill: #2846bd;
  background: #2846bd;
}

.fiscal-chart-legend i.is-nfse,
.fiscal-chart-segment.is-nfse {
  fill: #159477;
  background: #159477;
}

.fiscal-chart-legend i.is-cte,
.fiscal-chart-segment.is-cte {
  fill: #f06a2b;
  background: #f06a2b;
}

.fiscal-volume-chart {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 8px;
  overflow: visible;
}

.fiscal-chart-gridline {
  stroke: #e5e9ef;
  stroke-width: 1;
  stroke-dasharray: 3 4;
}

.fiscal-chart-axis {
  fill: #5f6b7b;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 720;
}

.fiscal-chart-segment {
  pointer-events: none;
}

.fiscal-chart-hit {
  fill: transparent;
}

.fiscal-chart-group:hover .fiscal-chart-hit {
  fill: rgba(28, 34, 38, 0.045);
}

.fiscal-chart-empty {
  min-height: 282px;
}

.fiscal-quality-panel {
  display: flex;
  flex-direction: column;
}

.fiscal-quality-visual {
  display: grid;
  margin-top: 20px;
  place-items: center;
}

.fiscal-quality-chart {
  position: relative;
  display: grid;
  width: min(188px, 62%);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(
    #159477 0 var(--fiscal-q-completo),
    #4965d1 var(--fiscal-q-completo) var(--fiscal-q-aguardando),
    #aab2bf var(--fiscal-q-aguardando) var(--fiscal-q-sem-efeito),
    #d25151 var(--fiscal-q-sem-efeito) 360deg);
  box-shadow: 0 12px 28px rgba(23, 32, 51, 0.09);
}

.fiscal-quality-chart.is-empty {
  background: #e5e9ef;
}

.fiscal-quality-chart::before {
  position: absolute;
  inset: 18%;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: inset 0 0 0 1px rgba(216, 222, 230, 0.65);
  content: "";
}

.fiscal-quality-chart > div {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
}

.fiscal-quality-chart strong {
  color: #172033;
  font-size: 1.5rem;
  font-weight: 880;
  letter-spacing: -0.035em;
}

.fiscal-quality-chart span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 760;
}

.fiscal-quality-list {
  display: grid;
  gap: 9px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.fiscal-quality-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  padding-bottom: 8px;
  border-bottom: 1px solid #edf0f4;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 720;
}

.fiscal-quality-list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.fiscal-quality-list strong {
  color: var(--text);
  font-size: 0.8rem;
}

.fiscal-quality-list i.is-complete {
  background: #159477;
}

.fiscal-quality-list i.is-waiting {
  background: #4965d1;
}

.fiscal-quality-list i.is-neutral {
  background: #aab2bf;
}

.fiscal-quality-list i.is-error {
  background: #d25151;
}

.fiscal-operations-panel {
  margin-top: 16px;
}

.fiscal-operations-grid {
  display: grid;
  grid-template-columns: minmax(270px, 0.72fr) minmax(0, 1.7fr);
  gap: 26px;
  margin-top: 22px;
}

.fiscal-queue-overview {
  min-width: 0;
  padding-right: 26px;
  border-right: 1px solid var(--line);
}

.fiscal-queue-callout {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
}

.fiscal-queue-callout.is-warning {
  border-color: #f0c5ae;
  background: #fff8f4;
}

.fiscal-queue-callout.is-ok {
  border-color: var(--success-line);
  background: var(--success-soft);
}

.fiscal-queue-callout > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.fiscal-queue-callout strong {
  color: var(--text);
  font-size: 0.84rem;
}

.fiscal-queue-callout span:last-child {
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 650;
  line-height: 1.4;
}

.fiscal-queue-bars {
  display: grid;
  gap: 13px;
  margin-top: 18px;
}

.fiscal-queue-row {
  display: grid;
  gap: 6px;
}

.fiscal-queue-row > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 720;
}

.fiscal-queue-row strong {
  color: var(--text);
  font-size: 0.76rem;
}

.fiscal-queue-track {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf0f4;
}

.fiscal-queue-fill {
  display: block;
  min-width: 0;
  height: 100%;
  border-radius: inherit;
  background: #4965d1;
}

.fiscal-queue-fill.is-reagendado {
  background: #d88932;
}

.fiscal-queue-fill.is-processando {
  background: #7b61c9;
}

.fiscal-queue-fill.is-falhou {
  background: #d25151;
}

.fiscal-activity-block {
  min-width: 0;
}

.fiscal-activity-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.fiscal-activity-heading strong {
  color: var(--text);
  font-size: 0.88rem;
}

.fiscal-activity-heading span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.fiscal-activity-table {
  min-width: 720px;
}

.fiscal-activity-table td,
.fiscal-activity-table th {
  padding-top: 9px;
  padding-bottom: 9px;
  font-size: 0.76rem;
}

@media (max-width: 1180px) {
  .fiscal-dashboard-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fiscal-dashboard-charts {
    grid-template-columns: 1fr;
  }

  .fiscal-quality-panel {
    display: grid;
    grid-template-columns: minmax(220px, 0.8fr) minmax(180px, 0.55fr) minmax(240px, 0.75fr);
    gap: 20px;
    align-items: center;
  }

  .fiscal-quality-visual,
  .fiscal-quality-list {
    margin-top: 0;
  }

  .fiscal-quality-chart {
    width: min(164px, 80%);
  }
}

@media (max-width: 860px) {
  .fiscal-dashboard-intro {
    align-items: flex-start;
    flex-direction: column;
    padding: 22px;
  }

  .fiscal-quality-panel {
    display: flex;
  }

  .fiscal-quality-visual {
    margin-top: 20px;
  }

  .fiscal-quality-list {
    width: 100%;
    margin-top: 20px;
  }

  .fiscal-operations-grid {
    grid-template-columns: 1fr;
  }

  .fiscal-queue-overview {
    padding-right: 0;
    padding-bottom: 22px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
}

@media (max-width: 620px) {
  .fiscal-dashboard-intro {
    min-height: auto;
    margin-top: 14px;
    padding: 18px;
    border-radius: 11px;
  }

  .fiscal-dashboard-intro h2 {
    font-size: 1.28rem;
  }

  .fiscal-dashboard-period {
    padding: 8px 10px;
    font-size: 0.7rem;
  }

  .fiscal-dashboard-kpis {
    gap: 10px;
    margin-top: 10px;
  }

  .fiscal-kpi-card {
    min-height: 135px;
    padding: 14px;
  }

  .fiscal-kpi-label {
    white-space: normal;
  }

  .fiscal-kpi-card > strong {
    font-size: 1.55rem;
  }

  .fiscal-kpi-card > small {
    white-space: normal;
  }

  .fiscal-dashboard-charts,
  .fiscal-operations-panel {
    margin-top: 10px;
  }

  .fiscal-dashboard-panel {
    padding: 18px;
    border-radius: 11px;
  }

  .fiscal-panel-heading {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }

  .fiscal-panel-heading .btn-secondary-app {
    width: 100%;
    justify-content: center;
  }

  .fiscal-volume-chart {
    margin-top: 5px;
  }

  .fiscal-chart-legend {
    gap: 10px;
  }

  .fiscal-quality-chart {
    width: 156px;
  }

  .fiscal-operations-grid {
    gap: 20px;
    margin-top: 18px;
  }
}

@media (max-width: 420px) {
  .fiscal-dashboard-kpis {
    grid-template-columns: 1fr;
  }

  .fiscal-kpi-card {
    min-height: 126px;
  }
}

/* Painel gerencial fiscal: faturamento, saude e concentracao por empresa. */
.fiscal-business-intro {
  min-height: 126px;
  background:
    radial-gradient(circle at 89% 18%, rgba(14, 124, 123, 0.11), transparent 27%),
    radial-gradient(circle at 67% 105%, rgba(21, 148, 119, 0.08), transparent 24%),
    linear-gradient(118deg, #f9fbff 0%, #eef2ff 58%, #fff8f4 100%);
}

.fiscal-business-filter-panel {
  position: relative;
  z-index: 8;
  margin-top: 14px;
  padding: 15px 17px;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(31, 41, 51, 0.045);
}

.fiscal-business-filter-bar {
  display: grid;
  grid-template-columns: minmax(300px, 1.3fr) minmax(250px, 0.9fr) auto;
  gap: 13px;
  align-items: end;
  margin: 0;
}

.fiscal-business-filter-bar .field {
  min-width: 0;
}

.fiscal-business-filter-bar .fiscal-company-picker,
.fiscal-business-filter-bar .date-range-control,
.fiscal-business-filter-bar .date-range-trigger {
  width: 100%;
}

.fiscal-business-filter-bar .search-combobox > input,
.fiscal-business-filter-bar .date-range-trigger {
  min-height: 42px;
}

.fiscal-business-filter-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
  padding-bottom: 1px;
}

.fiscal-business-filter-actions .btn-primary-app,
.fiscal-business-filter-actions .btn-secondary-app {
  min-height: 42px;
  white-space: nowrap;
}

.fiscal-business-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  margin-top: 14px;
}

.fiscal-business-kpi {
  min-height: 142px;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.fiscal-business-kpi:hover {
  border-color: color-mix(in srgb, var(--brand-blue) 20%, var(--line));
  box-shadow: 0 16px 34px rgba(31, 41, 51, 0.075);
  transform: translateY(-1px);
}

.fiscal-business-kpi::before {
  background: #2846bd;
}

.fiscal-business-kpi.is-commerce::before {
  background: #6550c5;
}

.fiscal-business-kpi.is-return::before,
.fiscal-business-kpi.is-confidence-warning::before {
  background: #ed6b2d;
}

.fiscal-business-kpi.is-net::before,
.fiscal-business-kpi.is-confidence-ok::before {
  background: #159477;
}

.fiscal-business-kpi.is-service::before {
  background: #8b5bd3;
}

.fiscal-kpi-icon.is-purple {
  color: #7042b5;
  background: #f2ebff;
}

.fiscal-business-kpi > small {
  line-height: 1.4;
  white-space: normal;
}

.fiscal-business-data-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 12px;
  padding: 11px 14px;
  border: 1px solid #f0c8b4;
  border-radius: 10px;
  color: #70402d;
  background: #fff9f5;
}

.fiscal-business-data-note > svg {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin-top: 1px;
  color: #c75425;
}

.fiscal-business-data-note > div {
  display: grid;
  gap: 2px;
}

.fiscal-business-data-note strong {
  font-size: 0.79rem;
}

.fiscal-business-data-note span {
  color: #806151;
  font-size: 0.73rem;
  font-weight: 620;
  line-height: 1.4;
}

.fiscal-business-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(310px, 0.78fr);
  gap: 14px;
  margin-top: 14px;
}

.fiscal-business-chart-panel,
.fiscal-business-concentration-panel,
.fiscal-business-health-panel,
.fiscal-business-operational-panel {
  min-width: 0;
}

.fiscal-business-chart-legend i.is-commerce,
.fiscal-business-bar.is-commerce {
  fill: #2846bd;
  background: #2846bd;
}

.fiscal-business-chart-legend i.is-services,
.fiscal-business-bar.is-services {
  fill: #159477;
  background: #159477;
}

.fiscal-business-chart-legend i.is-returns {
  background: #ed6b2d;
}

.fiscal-business-chart {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.fiscal-business-chart-scroll {
  max-width: 100%;
  margin-top: 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.fiscal-business-chart-scroll:focus-visible {
  border-radius: 8px;
  outline: 2px solid color-mix(in srgb, var(--brand-blue) 55%, transparent);
  outline-offset: 3px;
}

.fiscal-business-chart-scroll-hint {
  display: none;
}

.fiscal-business-bar {
  pointer-events: none;
}

.fiscal-business-return-line {
  fill: none;
  stroke: #ed6b2d;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.3;
  pointer-events: none;
}

.fiscal-business-return-dot {
  fill: #fff;
  stroke: #ed6b2d;
  stroke-width: 2.2;
}

.fiscal-business-chart-empty {
  min-height: 286px;
}

.fiscal-business-compact-empty {
  min-height: 250px;
}

.fiscal-business-concentration-callout {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 18px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
}

.fiscal-business-concentration-callout.is-healthy {
  border-color: #adddce;
  background: #f1fbf7;
}

.fiscal-business-concentration-callout.is-attention {
  border-color: #efd3a7;
  background: #fffaf0;
}

.fiscal-business-concentration-callout.is-critical {
  border-color: #efb9b6;
  background: #fff6f5;
}

.fiscal-business-concentration-icon {
  display: grid;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 9px;
  color: #2846bd;
  background: #e9efff;
}

.fiscal-business-concentration-icon svg {
  width: 16px;
  height: 16px;
}

.fiscal-business-concentration-callout > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.fiscal-business-concentration-callout strong {
  color: var(--text);
  font-size: 0.78rem;
  line-height: 1.35;
}

.fiscal-business-concentration-callout span:last-child {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 640;
  line-height: 1.4;
}

.fiscal-business-concentration-list,
.fiscal-business-ranking-list,
.fiscal-business-operational-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.fiscal-business-concentration-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.fiscal-business-concentration-list li {
  display: grid;
  gap: 6px;
}

.fiscal-business-concentration-list li > div {
  display: flex;
  gap: 10px;
  align-items: baseline;
  justify-content: space-between;
  min-width: 0;
}

.fiscal-business-concentration-list strong {
  overflow: hidden;
  color: var(--text);
  font-size: 0.76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-business-concentration-list li > div span {
  flex: 0 0 auto;
  color: var(--text);
  font-size: 0.72rem;
  font-weight: 780;
}

.fiscal-business-share-track,
.fiscal-business-score-track {
  display: block;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf0f4;
}

.fiscal-business-share-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2846bd, #6379d7);
}

.fiscal-business-concentration-list small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 650;
}

.fiscal-business-health-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(360px, 0.82fr);
  gap: 14px;
  margin-top: 14px;
}

.fiscal-business-count-badge {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid rgba(28, 34, 38, 0.12);
  border-radius: 999px;
  color: var(--accent-strong);
  background: #f3f6ff;
  font-size: 0.68rem;
  font-weight: 820;
}

.fiscal-business-ranking-list {
  margin-top: 18px;
}

.fiscal-business-ranking-list > li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid #edf0f4;
}

.fiscal-business-ranking-list > li:first-child {
  padding-top: 0;
}

.fiscal-business-ranking-list > li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.fiscal-business-rank-position {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 8px;
  color: #44516a;
  background: #f1f4f8;
  font-size: 0.72rem;
  font-weight: 850;
}

.fiscal-business-ranking-list > li:first-child .fiscal-business-rank-position {
  color: #876118;
  background: #fff3cc;
}

.fiscal-business-rank-body {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.fiscal-business-rank-heading {
  display: flex;
  gap: 12px;
  align-items: baseline;
  justify-content: space-between;
  min-width: 0;
}

.fiscal-business-rank-heading strong {
  overflow: hidden;
  color: var(--text);
  font-size: 0.79rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-business-rank-heading span {
  flex: 0 0 auto;
  color: #30394b;
  font-size: 0.72rem;
  font-weight: 790;
}

.fiscal-business-score-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #9aa4b2;
}

.fiscal-business-score-track > span.is-excellent {
  background: linear-gradient(90deg, #0f8b69, #28b28b);
}

.fiscal-business-score-track > span.is-healthy {
  background: linear-gradient(90deg, #3c8d64, #63b180);
}

.fiscal-business-score-track > span.is-attention {
  background: linear-gradient(90deg, #d38a25, #eba944);
}

.fiscal-business-score-track > span.is-critical {
  background: linear-gradient(90deg, #c74c4c, #df6a63);
}

.fiscal-business-rank-body small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.67rem;
  font-weight: 630;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-business-score-badge {
  display: grid;
  min-width: 88px;
  padding: 6px 8px;
  border: 1px solid #dfe4eb;
  border-radius: 9px;
  justify-items: center;
  color: #5f6b7b;
  background: #f8fafc;
}

.fiscal-business-score-badge.is-excellent,
.fiscal-business-score-badge.is-healthy {
  border-color: #b9dfd1;
  color: #11694f;
  background: #f1faf7;
}

.fiscal-business-score-badge.is-attention {
  border-color: #eed3a6;
  color: #946019;
  background: #fff9ee;
}

.fiscal-business-score-badge.is-critical {
  border-color: #edbfbb;
  color: #a33d39;
  background: #fff5f4;
}

.fiscal-business-score-badge > strong {
  font-size: 0.82rem;
  line-height: 1;
}

.fiscal-business-score-badge > small {
  margin-top: 3px;
  font-size: 0.65rem;
  font-weight: 760;
  white-space: nowrap;
}

.fiscal-business-ranking-note {
  display: flex;
  gap: 7px;
  align-items: flex-start;
  margin: 15px 0 0;
  padding-top: 12px;
  border-top: 1px solid #edf0f4;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 640;
  line-height: 1.4;
}

.fiscal-business-ranking-note svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 1px;
}

.fiscal-business-health-empty {
  min-height: 250px;
}

.fiscal-business-operational-empty {
  display: grid;
  min-height: 260px;
  padding: 28px 18px 14px;
  align-content: center;
  justify-items: center;
  text-align: center;
}

.fiscal-business-operational-empty > span {
  display: grid;
  width: 50px;
  height: 50px;
  margin-bottom: 13px;
  place-items: center;
  border-radius: 15px;
  color: #59667a;
  background: #eef2f6;
}

.fiscal-business-operational-empty svg {
  width: 23px;
  height: 23px;
}

.fiscal-business-operational-empty strong {
  color: var(--text);
  font-size: 0.9rem;
}

.fiscal-business-operational-empty p {
  max-width: 440px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 630;
  line-height: 1.5;
}

.fiscal-business-operational-empty small {
  margin-top: 11px;
  color: #667085;
  font-size: 0.7rem;
  font-weight: 650;
}

.fiscal-business-operational-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.fiscal-business-operational-list > li {
  padding: 11px;
  border: 1px solid #e5e9ef;
  border-radius: 10px;
  background: #fbfcfe;
}

.fiscal-business-operational-row-heading {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
}

.fiscal-business-operational-row-heading > strong {
  overflow: hidden;
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-business-operational-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.fiscal-business-operational-metrics > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.fiscal-business-operational-metrics small {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.65rem;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-business-operational-metrics strong {
  overflow: hidden;
  color: #30394b;
  font-size: 0.68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-business-method-note {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 620;
  text-align: center;
}

.fiscal-business-operational-components {
  display: block;
  margin-top: 9px;
  color: #667085;
  font-size: 0.68rem;
  font-weight: 650;
}

@media (max-width: 1220px) {
  .fiscal-business-filter-bar {
    grid-template-columns: minmax(280px, 1fr) minmax(240px, 0.8fr);
  }

  .fiscal-business-filter-actions {
    grid-column: 1 / -1;
  }

  .fiscal-business-main-grid,
  .fiscal-business-health-grid {
    grid-template-columns: 1fr;
  }

  .fiscal-business-concentration-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .fiscal-business-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .fiscal-business-concentration-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .fiscal-business-filter-panel {
    margin-top: 10px;
    padding: 13px;
  }

  .fiscal-business-filter-bar {
    grid-template-columns: 1fr;
  }

  .fiscal-business-filter-actions {
    grid-column: auto;
    align-items: stretch;
    flex-direction: column;
  }

  .fiscal-business-filter-actions .btn-primary-app,
  .fiscal-business-filter-actions .btn-secondary-app {
    width: 100%;
    justify-content: center;
  }

  .fiscal-business-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
  }

  .fiscal-business-kpi {
    min-height: 118px;
  }

  .fiscal-business-kpi.is-total,
  .fiscal-business-kpi.is-confidence-warning,
  .fiscal-business-kpi.is-confidence-ok {
    grid-column: 1 / -1;
  }

  .fiscal-business-main-grid,
  .fiscal-business-health-grid {
    gap: 10px;
    margin-top: 10px;
  }

  .fiscal-business-chart-panel,
  .fiscal-business-concentration-panel,
  .fiscal-business-health-panel,
  .fiscal-business-operational-panel {
    padding: 17px;
  }

  .fiscal-business-chart {
    width: 760px;
    max-width: none;
  }

  .fiscal-business-chart-scroll {
    margin-inline: -4px;
    padding: 0 4px 7px;
  }

  .fiscal-business-chart-scroll-hint {
    display: flex;
    gap: 5px;
    align-items: center;
    margin: 10px 0 0;
    color: #667085;
    font-size: 0.68rem;
    font-weight: 680;
  }

  .fiscal-business-chart-scroll-hint svg {
    width: 14px;
    height: 14px;
  }

  .fiscal-business-ranking-list > li {
    grid-template-columns: 26px minmax(0, 1fr);
  }

  .fiscal-business-ranking-list .fiscal-business-score-badge {
    grid-column: 2;
    width: max-content;
    min-width: 82px;
    justify-self: start;
  }

  .fiscal-business-rank-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .fiscal-business-rank-body small {
    white-space: normal;
  }

  .fiscal-business-operational-metrics {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Minha conta / ASP.NET Identity
   Integra as telas de perfil ao design PRAXXO.
   ============================================================ */

.content.account-content-area {
  padding: 28px;
}

.account-layout {
  display: grid;
  grid-template-columns: 292px minmax(0, 1fr);
  gap: 22px;
  width: min(100%, 1400px);
  margin: 0 auto;
  align-items: start;
}

.account-sidebar {
  position: sticky;
  top: calc(var(--desktop-header-height) + 18px);
  display: grid;
  gap: 14px;
}

.account-owner-card {
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 13px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid rgba(53, 194, 190, 0.24);
  border-radius: 14px;
  color: #fff;
  background:
    radial-gradient(circle at 100% 0, rgba(53, 194, 190, 0.3), transparent 44%),
    linear-gradient(145deg, #172025, #253237);
  box-shadow: 0 18px 40px rgba(18, 23, 26, 0.18);
}

.account-owner-card::after {
  position: absolute;
  right: -42px;
  bottom: -52px;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  content: "";
}

.account-owner-brand {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.account-owner-brand img {
  width: 29px;
  height: 29px;
  padding: 5px;
  border-radius: 8px;
  background: #fff;
}

.account-owner-avatar {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 14px;
  color: #fff;
  background: rgba(53, 194, 190, 0.24);
  font-family: var(--font-heading);
  font-size: 1.12rem;
  font-weight: 850;
}

.account-owner-copy {
  min-width: 0;
  align-self: center;
}

.account-owner-copy strong,
.account-owner-copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-owner-copy strong {
  font-size: 0.94rem;
  font-weight: 820;
}

.account-owner-copy small {
  margin-top: 3px;
  color: rgba(255, 255, 255, 0.64);
  font-size: 0.72rem;
}

.account-security-badge {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: max-content;
  padding: 6px 9px;
  border: 1px solid rgba(53, 194, 190, 0.24);
  border-radius: 999px;
  color: #bde9e6;
  background: rgba(14, 124, 123, 0.15);
  font-size: 0.68rem;
  font-weight: 760;
}

.account-security-badge svg {
  width: 14px;
  height: 14px;
}

.account-nav {
  display: grid;
  gap: 5px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 12px 30px rgba(31, 41, 51, 0.06);
}

.account-nav-link {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 15px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--text);
  text-decoration: none;
  transition: color 150ms ease, background 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.account-nav-link:hover {
  color: var(--text);
  border-color: rgba(28, 34, 38, 0.08);
  background: #f1f5f5;
  transform: translateX(2px);
}

.account-nav-link.active {
  color: var(--brand-blue-strong);
  border-color: rgba(14, 124, 123, 0.18);
  background: linear-gradient(90deg, rgba(212, 237, 236, 0.88), rgba(255, 255, 255, 0.95));
  box-shadow: inset 3px 0 0 var(--brand-orange);
}

.account-nav-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  color: var(--muted);
  background: #edf1f1;
}

.account-nav-link.active .account-nav-icon {
  color: var(--brand-orange);
  background: #fff;
  box-shadow: 0 5px 14px rgba(14, 124, 123, 0.12);
}

.account-nav-icon svg {
  width: 17px;
  height: 17px;
}

.account-nav-link strong,
.account-nav-link small {
  display: block;
  min-width: 0;
}

.account-nav-link strong {
  font-size: 0.8rem;
  font-weight: 790;
  line-height: 1.25;
}

.account-nav-link small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 620;
}

.account-nav-arrow {
  width: 14px;
  height: 14px;
  color: #98a5a8;
}

.account-nav-link.active .account-nav-arrow {
  color: var(--brand-orange);
}

.account-back-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  border-radius: 9px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
  text-decoration: none;
}

.account-back-link:hover {
  color: var(--text);
  background: rgba(255, 255, 255, 0.7);
}

.account-back-link svg {
  width: 15px;
  height: 15px;
}

.account-workspace {
  min-width: 0;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 50px rgba(31, 41, 51, 0.08);
}

.account-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.account-page-heading {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}

.account-page-icon,
.account-section-icon,
.account-current-email-icon,
.account-recovery-icon,
.account-data-action-icon,
.account-security-card-icon,
.account-action-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--brand-orange);
  background: var(--brand-orange-soft);
}

.account-page-icon {
  width: 44px;
  height: 44px;
  border: 1px solid rgba(14, 124, 123, 0.14);
  border-radius: 12px;
}

.account-page-icon.is-danger,
.account-section-icon.is-danger {
  color: var(--danger);
  background: #fbeceb;
}

.account-page-icon svg {
  width: 21px;
  height: 21px;
}

.account-eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--brand-orange);
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.account-page-heading h2 {
  margin: 0;
  color: var(--text);
  font-family: var(--font-heading);
  font-size: clamp(1.32rem, 2vw, 1.72rem);
  font-weight: 760;
  letter-spacing: -0.02em;
}

.account-page-heading p {
  max-width: 670px;
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.55;
}

.account-page-tag,
.account-field-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: #f7f9f9;
  font-size: 0.69rem;
  font-weight: 760;
  white-space: nowrap;
}

.account-page-tag {
  min-height: 32px;
  padding: 0 10px;
}

.account-page-tag svg,
.account-field-status svg {
  width: 14px;
  height: 14px;
}

.account-page-tag.is-success,
.account-field-status.is-confirmed {
  color: var(--success-strong);
  border-color: var(--success-line);
  background: var(--success-soft);
}

.account-page-tag.is-warning,
.account-field-status.is-pending {
  color: #8a5a08;
  border-color: #e5c98d;
  background: #fff8e8;
}

.account-alert {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid var(--success-line);
  border-radius: 10px;
  color: var(--success-strong);
  background: var(--success-soft);
}

.account-alert.is-error {
  color: #8f342c;
  border-color: #e8b6b1;
  background: #fff0ee;
}

.account-alert-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.72);
}

.account-alert-icon svg {
  width: 18px;
  height: 18px;
}

.account-alert strong,
.account-alert span {
  display: block;
}

.account-alert strong {
  font-size: 0.78rem;
  font-weight: 820;
}

.account-alert div > span {
  margin-top: 2px;
  font-size: 0.75rem;
  line-height: 1.45;
}

.account-info-strip,
.account-privacy-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(14, 124, 123, 0.15);
  border-radius: 10px;
  color: #38575a;
  background: #f0f8f7;
  font-size: 0.76rem;
  line-height: 1.5;
}

.account-info-strip svg,
.account-privacy-note > svg {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin-top: 1px;
  color: var(--brand-orange);
}

.account-form,
.account-two-factor-setup,
.account-security-actions,
.account-data-overview,
.account-delete-warning {
  margin-top: 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.account-form-section {
  padding: 21px;
}

.account-form-section + .account-form-section {
  border-top: 1px solid var(--line);
}

.account-section-title {
  display: flex;
  align-items: flex-start;
  gap: 11px;
}

.account-section-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
}

.account-section-icon svg {
  width: 17px;
  height: 17px;
}

.account-section-title h3 {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 820;
}

.account-section-title p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.45;
}

.account-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
  margin-top: 18px;
}

.account-form-grid .span-2 {
  grid-column: 1 / -1;
}

.account-form-grid-single {
  grid-template-columns: minmax(260px, 560px);
}

.account-password-grid {
  max-width: 760px;
}

.account-field > span:first-child {
  color: var(--text);
  font-size: 0.76rem;
  font-weight: 760;
}

.account-field input {
  min-height: 44px;
  background: #fbfcfc;
}

.account-field input:disabled {
  color: #536266;
  background: #f1f4f4;
  opacity: 1;
}

.account-field-help {
  color: var(--muted);
  font-size: 0.68rem;
}

.account-field-help a {
  color: var(--brand-orange);
  font-weight: 760;
}

.account-input-with-status {
  position: relative;
  display: block;
}

.account-input-with-status input {
  padding-right: 118px;
}

.account-field-status {
  position: absolute;
  top: 50%;
  right: 8px;
  padding: 5px 8px;
  transform: translateY(-50%);
}

.account-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 21px;
  border-top: 1px solid var(--line);
  border-radius: 0 0 12px 12px;
  background: #f7f9f9;
}

.account-form-actions .btn-primary-app,
.account-form-actions .btn-secondary-app,
.account-form-actions .account-danger-button {
  gap: 8px;
}

.account-form-actions svg,
.account-current-email .btn-secondary-app svg,
.account-danger-button svg {
  width: 16px;
  height: 16px;
}

.account-save-note {
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 520px;
  color: var(--muted);
  font-size: 0.69rem;
  line-height: 1.4;
}

.account-save-note svg {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  color: var(--success);
}

.account-validation-summary {
  margin: 18px 21px 0;
  padding: 0;
  color: var(--danger);
  font-size: 0.75rem;
  font-weight: 680;
}

.account-validation-summary:empty,
.account-validation-summary.validation-summary-valid {
  display: none;
}

.account-validation-summary ul {
  margin: 0;
  padding: 11px 14px 11px 31px;
  border: 1px solid #e8b6b1;
  border-radius: 9px;
  background: #fff0ee;
}

.account-current-email {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafa;
}

.account-current-email-icon {
  width: 42px;
  height: 42px;
  border-radius: 11px;
}

.account-current-email-icon svg {
  width: 19px;
  height: 19px;
}

.account-current-email small,
.account-current-email strong {
  display: block;
}

.account-current-email small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 720;
}

.account-current-email strong {
  overflow: hidden;
  margin-top: 2px;
  font-size: 0.86rem;
  text-overflow: ellipsis;
}

.account-password-guidance {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  margin-top: 20px;
  padding: 15px;
  border: 1px solid rgba(14, 124, 123, 0.18);
  border-radius: 12px;
  background: linear-gradient(110deg, #eef8f7, #fbfdfd);
}

.account-password-guidance-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 11px;
  color: var(--brand-orange);
  background: #fff;
  box-shadow: 0 7px 18px rgba(14, 124, 123, 0.1);
}

.account-password-guidance-icon svg {
  width: 19px;
  height: 19px;
}

.account-password-guidance strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 810;
}

.account-password-guidance p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 0.71rem;
}

.account-password-rules {
  display: grid;
  gap: 4px;
  color: #3b625c;
  font-size: 0.66rem;
  font-weight: 690;
}

.account-password-rules span {
  display: flex;
  align-items: center;
  gap: 5px;
}

.account-password-rules svg {
  width: 13px;
  height: 13px;
  color: var(--success);
}

.account-recovery-panel {
  margin-top: 20px;
  padding: 20px;
  border: 1px solid #e2c16f;
  border-radius: 12px;
  background: #fff9ea;
}

.account-recovery-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.account-recovery-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  color: #9a6509;
  background: #ffedbd;
}

.account-recovery-heading h3 {
  margin: 0;
  font-size: 1rem;
}

.account-recovery-heading p {
  margin: 4px 0 0;
  color: #735f32;
  font-size: 0.74rem;
}

.account-recovery-codes {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 17px;
}

.account-recovery-codes code {
  padding: 9px;
  border: 1px dashed #d6b25d;
  border-radius: 8px;
  color: #493a1c;
  background: rgba(255, 255, 255, 0.8);
  font-size: 0.75rem;
  text-align: center;
}

.account-warning-note {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  color: #73530e;
  font-size: 0.69rem;
  font-weight: 690;
}

.account-warning-note svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
}

.account-two-factor-setup {
  padding: 21px;
}

.account-setup-intro {
  display: flex;
  align-items: flex-start;
  gap: 11px;
}

.account-setup-number {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  color: #fff;
  background: var(--brand-blue);
  font-size: 0.76rem;
  font-weight: 850;
}

.account-setup-intro h3 {
  margin: 1px 0 0;
  font-size: 0.95rem;
  font-weight: 820;
}

.account-setup-intro p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.74rem;
}

.account-setup-grid {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 18px;
  margin-top: 18px;
}

.account-qr-card,
.account-manual-key {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafa;
}

.account-qr-card {
  text-align: center;
}

.account-qr-card > span,
.account-manual-key > span {
  display: block;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 760;
}

.account-qr-card img {
  display: block;
  width: min(100%, 220px);
  height: auto;
  margin: 12px auto 0;
  padding: 8px;
  border: 1px solid #dfe6e6;
  border-radius: 10px;
  background: #fff;
  image-rendering: crisp-edges;
}

.account-manual-key code {
  display: block;
  overflow-wrap: anywhere;
  margin-top: 12px;
  padding: 11px;
  border: 1px dashed #aab8ba;
  border-radius: 8px;
  color: var(--text);
  background: #fff;
  font-size: 0.88rem;
  font-weight: 760;
  letter-spacing: 0.05em;
}

.account-manual-key > p {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.45;
}

.account-setup-steps {
  display: grid;
  gap: 7px;
  margin-top: 15px;
}

.account-setup-steps span {
  display: flex;
  gap: 7px;
  color: #435155;
  font-size: 0.72rem;
}

.account-setup-steps strong {
  color: var(--brand-orange);
}

.account-two-factor-confirm {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px auto;
  align-items: end;
  gap: 15px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.account-two-factor-confirm .account-validation-summary {
  grid-column: 1 / -1;
  margin: 0;
}

.account-code-field input,
.auth-code-field input {
  font-family: var(--font-heading);
  font-size: 1.06rem;
  font-weight: 760;
  letter-spacing: 0.16em;
  text-align: center;
}

.account-security-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.account-security-card {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 11px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f9fbfb;
}

.account-security-card.is-protected {
  border-color: var(--success-line);
  background: var(--success-soft);
}

.account-security-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
}

.account-security-card small,
.account-security-card strong {
  display: block;
}

.account-security-card small {
  color: var(--muted);
  font-size: 0.64rem;
  font-weight: 710;
}

.account-security-card strong {
  margin-top: 2px;
  font-size: 0.8rem;
}

.account-security-card p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.67rem;
  line-height: 1.4;
}

.account-security-actions,
.account-data-overview {
  padding: 21px;
}

.account-action-list {
  display: grid;
  gap: 8px;
  margin-top: 17px;
}

.account-action-item {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fafbfb;
}

.account-action-item.is-danger {
  border-color: #edcbc7;
  background: #fff7f6;
}

.account-action-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
}

.account-action-item.is-danger .account-action-icon {
  color: var(--danger);
  background: #fbe6e4;
}

.account-action-item strong {
  display: block;
  font-size: 0.78rem;
}

.account-action-item p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 0.67rem;
}

.account-danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid #d9918a;
  border-radius: 8px;
  color: #9f392f;
  background: #fff;
  font-size: 0.76rem;
  font-weight: 760;
  text-decoration: none;
  white-space: nowrap;
}

.account-danger-button:hover {
  color: #fff;
  border-color: var(--danger);
  background: var(--danger);
}

.account-data-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 17px;
}

.account-data-grid article {
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #f8fafa;
}

.account-data-grid span,
.account-data-grid strong {
  display: block;
}

.account-data-grid span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 710;
}

.account-data-grid span svg {
  width: 14px;
  height: 14px;
  color: var(--brand-orange);
}

.account-data-grid strong {
  overflow: hidden;
  margin-top: 5px;
  font-size: 0.78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-data-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.account-data-action-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 13px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

.account-data-action-card.is-danger {
  border-color: #edcbc7;
  background: linear-gradient(135deg, #fff, #fff7f6);
}

.account-data-action-icon {
  width: 44px;
  height: 44px;
  border-radius: 11px;
}

.account-data-action-card.is-danger .account-data-action-icon {
  color: var(--danger);
  background: #fbe8e6;
}

.account-data-action-card h3 {
  margin: 0;
  font-size: 0.94rem;
}

.account-data-action-card p {
  min-height: 42px;
  margin: 5px 0 13px;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.45;
}

.account-data-action-card .btn-primary-app,
.account-data-action-card .account-danger-button {
  gap: 7px;
}

.account-privacy-note strong,
.account-privacy-note span {
  display: block;
}

.account-privacy-note strong {
  color: #29474a;
  font-size: 0.73rem;
}

.account-privacy-note span {
  margin-top: 2px;
}

.account-delete-warning {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  padding: 20px;
  border-color: #e6aaa4;
  background: linear-gradient(135deg, #fff3f1, #fffafa);
}

.account-delete-warning-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  color: var(--danger);
  background: #fff;
  box-shadow: 0 7px 18px rgba(180, 69, 58, 0.1);
}

.account-delete-warning-icon svg {
  width: 22px;
  height: 22px;
}

.account-delete-warning h3 {
  margin: 0;
  color: #772f29;
  font-size: 1.02rem;
}

.account-delete-warning p {
  margin: 6px 0 0;
  color: #694b48;
  font-size: 0.75rem;
}

.account-delete-warning ul {
  display: grid;
  gap: 5px;
  margin: 12px 0 0;
  padding-left: 18px;
  color: #694b48;
  font-size: 0.71rem;
}

.auth-notice {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  margin-top: 18px;
  padding: 11px 12px;
  border: 1px solid var(--success-line);
  border-radius: 9px;
  color: var(--success-strong);
  background: var(--success-soft);
}

.auth-notice.is-warning {
  color: #79550f;
  border-color: #e4c77d;
  background: #fff8e8;
}

.auth-notice > svg {
  width: 18px;
  height: 18px;
}

.auth-notice strong,
.auth-notice span {
  display: block;
}

.auth-notice strong {
  font-size: 0.72rem;
}

.auth-notice span {
  margin-top: 2px;
  font-size: 0.68rem;
}

.auth-security-panel {
  width: min(100%, 470px);
}

.auth-security-heading {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  margin-top: 22px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--line);
}

.auth-security-heading > span {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 11px;
  color: var(--brand-orange);
  background: var(--brand-orange-soft);
}

.auth-security-heading > span svg {
  width: 21px;
  height: 21px;
}

.auth-security-heading small {
  color: var(--brand-orange);
  font-size: 0.65rem;
  font-weight: 840;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.auth-security-heading h1 {
  margin: 1px 0 0;
  font-size: 1.3rem;
}

.auth-security-heading p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.45;
}

@media (max-width: 1120px) {
  .account-layout {
    grid-template-columns: 252px minmax(0, 1fr);
  }

  .account-form-grid,
  .account-data-grid,
  .account-data-actions,
  .account-setup-grid {
    grid-template-columns: 1fr;
  }

  .account-form-grid .span-2 {
    grid-column: auto;
  }

  .account-password-rules {
    display: none;
  }

  .account-recovery-codes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .content.account-content-area {
    padding: 18px;
  }

  .account-layout {
    grid-template-columns: 1fr;
  }

  .account-sidebar {
    position: static;
  }

  .account-owner-card {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    padding: 14px;
  }

  .account-owner-brand {
    display: none;
  }

  .account-owner-avatar {
    width: 40px;
    height: 40px;
    border-radius: 11px;
  }

  .account-security-badge {
    grid-column: auto;
  }

  .account-nav {
    grid-auto-columns: minmax(205px, 1fr);
    grid-auto-flow: column;
    overflow-x: auto;
    padding: 7px;
    scroll-snap-type: x proximity;
  }

  .account-nav-link {
    scroll-snap-align: start;
  }

  .account-back-link {
    display: none;
  }

  .account-security-overview {
    grid-template-columns: 1fr;
  }

  .account-two-factor-confirm {
    grid-template-columns: 1fr 180px;
  }

  .account-two-factor-confirm .account-setup-intro {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .content.account-content-area {
    padding: 10px;
  }

  .account-layout {
    gap: 10px;
  }

  .account-owner-card {
    border-radius: 11px;
  }

  .account-security-badge {
    display: none;
  }

  .account-nav {
    margin-inline: -2px;
    border-radius: 11px;
  }

  .account-nav-link {
    grid-template-columns: 32px minmax(0, 1fr);
    min-width: 200px;
    padding: 8px;
  }

  .account-nav-arrow,
  .account-nav-link small {
    display: none;
  }

  .account-workspace {
    padding: 16px;
    border-radius: 11px;
  }

  .account-page-header {
    align-items: flex-start;
    gap: 12px;
    padding-bottom: 16px;
  }

  .account-page-heading {
    gap: 10px;
  }

  .account-page-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
  }

  .account-page-heading p {
    font-size: 0.74rem;
  }

  .account-page-tag {
    display: none;
  }

  .account-info-strip {
    margin-top: 14px;
  }

  .account-form,
  .account-two-factor-setup,
  .account-security-actions,
  .account-data-overview,
  .account-delete-warning {
    margin-top: 14px;
  }

  .account-form-section,
  .account-two-factor-setup,
  .account-security-actions,
  .account-data-overview {
    padding: 16px;
  }

  .account-form-grid,
  .account-data-grid,
  .account-data-actions,
  .account-setup-grid {
    grid-template-columns: 1fr;
  }

  .account-form-grid .span-2 {
    grid-column: auto;
  }

  .account-form-actions {
    align-items: stretch;
    flex-direction: column;
    padding: 14px 16px;
  }

  .account-save-note {
    align-items: flex-start;
  }

  .account-form-actions .btn-primary-app,
  .account-form-actions .btn-secondary-app,
  .account-form-actions .account-danger-button {
    width: 100%;
  }

  .account-current-email {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .account-current-email > .account-field-status,
  .account-current-email > form {
    grid-column: 1 / -1;
  }

  .account-current-email > form .btn-secondary-app {
    width: 100%;
  }

  .account-password-guidance {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .account-password-guidance-icon {
    width: 38px;
    height: 38px;
  }

  .account-recovery-codes {
    grid-template-columns: 1fr;
  }

  .account-two-factor-confirm {
    grid-template-columns: 1fr;
  }

  .account-two-factor-confirm .account-setup-intro {
    grid-column: auto;
  }

  .account-action-item {
    grid-template-columns: 36px minmax(0, 1fr);
  }

  .account-action-item form {
    grid-column: 1 / -1;
  }

  .account-action-item form button {
    width: 100%;
  }

  .account-data-action-card {
    grid-template-columns: 40px minmax(0, 1fr);
    padding: 15px;
  }

  .account-data-action-card p {
    min-height: 0;
  }

  .account-delete-warning {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .auth-security-panel {
    width: 100%;
  }
}
/* Sinais vitais do caixa -------------------------------------------------- */
.signals-report-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.signals-context-grid,
.signals-vitals-grid {
  display: grid;
  gap: 1rem;
}

.signals-context-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.signals-context-card {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 8px 26px rgba(22, 33, 31, 0.045);
}

.signals-context-card > span,
.signals-context-card small {
  color: var(--muted);
}

.signals-context-card > span {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.signals-context-card strong {
  overflow-wrap: anywhere;
  font-family: var(--font-heading);
  font-size: clamp(1rem, 1.5vw, 1.35rem);
}

.signals-quality-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
}

.signals-quality-notice > svg {
  flex: 0 0 auto;
  margin-top: 0.15rem;
}

.signals-quality-notice ul {
  display: grid;
  gap: 0.25rem;
  margin: 0.45rem 0 0;
  padding-left: 1.1rem;
}

.signals-vitals-grid {
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
}

.signal-vital-card {
  --signal-tone: var(--muted);
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 310px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: 4px solid var(--signal-tone);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: 0 12px 32px rgba(22, 33, 31, 0.055);
}

.signal-vital-card.is-trusted {
  --signal-tone: var(--success);
}

.signal-vital-card.is-estimated {
  --signal-tone: var(--amber);
}

.signal-vital-card.is-insufficient {
  --signal-tone: var(--danger);
}

.signal-vital-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1rem 0;
}

.signal-vital-icon {
  display: inline-grid;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  border-radius: 10px;
  color: var(--signal-tone);
  background: color-mix(in srgb, var(--signal-tone) 12%, white);
}

.signal-vital-icon svg {
  width: 1.2rem;
  height: 1.2rem;
}

.signal-vital-status {
  display: inline-flex;
  width: max-content;
  align-items: center;
  padding: 0.28rem 0.55rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.signal-vital-status.is-trusted {
  color: var(--success-strong);
  background: var(--success-soft);
}

.signal-vital-status.is-estimated {
  color: #855608;
  background: #fff5d8;
}

.signal-vital-status.is-insufficient {
  color: #91372f;
  background: #fcecea;
}

.signal-vital-copy {
  display: grid;
  gap: 0.55rem;
  padding: 0.9rem 1rem 1rem;
}

.signal-vital-copy h3,
.signal-vital-copy p {
  margin: 0;
}

.signal-vital-copy h3 {
  font-size: 1rem;
}

.signal-vital-copy > strong {
  color: var(--text);
  font-family: var(--font-heading);
  font-size: clamp(1.45rem, 2.3vw, 2rem);
  line-height: 1.05;
}

.signal-vital-copy p {
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.5;
}

.signal-vital-details {
  margin-top: auto;
  border-top: 1px solid var(--line);
}

.signal-vital-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.7rem;
  padding: 0.8rem 1rem;
  cursor: pointer;
  color: var(--text);
  font-size: 0.8rem;
  font-weight: 750;
  list-style: none;
}

.signal-vital-details summary::-webkit-details-marker {
  display: none;
}

.signal-vital-details[open] summary svg {
  transform: rotate(180deg);
}

.signal-vital-details dl {
  display: grid;
  margin: 0;
  border-top: 1px solid var(--line);
}

.signal-vital-details dl > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: start;
  padding: 0.75rem 1rem;
}

.signal-vital-details dl > div + div {
  border-top: 1px dashed var(--line);
}

.signal-vital-details dt,
.signal-vital-details dd {
  margin: 0;
}

.signal-vital-details dt {
  font-size: 0.8rem;
  font-weight: 750;
}

.signal-vital-details dt small {
  display: block;
  margin-top: 0.2rem;
  color: var(--muted);
  font-weight: 450;
  line-height: 1.35;
}

.signal-vital-details dd {
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
}

.signal-vital-empty-detail {
  margin: 0;
  padding: 0 1rem 1rem;
  color: var(--muted);
  font-size: 0.82rem;
}

.signals-methodology-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.signals-methodology-grid > div {
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-muted);
}

.signals-methodology-grid p {
  margin: 0.65rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.signals-financing-list {
  display: grid;
  gap: 0.65rem;
}

.signals-financing-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(145px, auto) auto;
  gap: 1rem;
  align-items: center;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

.signals-financing-row.is-inactive {
  opacity: 0.7;
}

.signals-financing-row > div:first-child,
.signals-financing-values {
  display: grid;
  min-width: 0;
  gap: 0.2rem;
}

.signals-financing-row span,
.signals-financing-row small {
  color: var(--muted);
}

.signals-financing-actions {
  display: flex;
  gap: 0.45rem;
}

.signals-financing-actions form {
  margin: 0;
}

.signals-financing-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.signals-financing-form-grid .span-2 {
  grid-column: 1 / -1;
}

@media (max-width: 1100px) {
  .signals-context-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .signals-report-header,
  .signals-financing-row {
    align-items: stretch;
  }

  .signals-report-header {
    flex-direction: column;
  }

  .signals-context-grid,
  .signals-methodology-grid,
  .signals-financing-form-grid {
    grid-template-columns: 1fr;
  }

  .signals-financing-form-grid .span-2 {
    grid-column: auto;
  }

  .signals-financing-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .signals-financing-row > div:first-child {
    grid-column: 1 / -1;
  }

  .signals-financing-actions {
    justify-content: flex-end;
  }
}

@media print {
  .signals-report-header .btn-secondary-app,
  .signals-financing-panel,
  .app-drawer {
    display: none !important;
  }

  .signal-vital-card {
    break-inside: avoid;
    box-shadow: none;
  }
}

/* Receber: menu contextual unico por titulo. Mantem os mesmos forms/handlers,
   mas tira as acoes secundarias da grade de icones da coluna sticky. */
.receive-table.receivable-category-table .actions-cell {
  width: 104px;
  min-width: 104px;
  max-width: 104px;
}

.receive-table.payable-table .actions-cell {
  width: 104px;
  min-width: 104px;
  max-width: 104px;
}

.actions-group.receive-actions {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
}

/* A celula sticky cria um stacking context proprio. Enquanto o menu estiver
   aberto, ela precisa ficar acima dos headers sticky e das demais linhas para
   que o menu desktop e o sheet mobile nao sejam recortados/sobrepostos. */
.receive-table .actions-cell:has(.receive-actions.is-open) {
  z-index: 1300;
}

/* Mantem visualmente acesa a cobranca dona do menu. O contorno acompanha o
   estado existente do menu e e interno para nao alterar as medidas da grade. */
.receive-table.zebra-table tbody tr[data-receivable-row]:has(.receive-actions.is-open) > td {
  box-shadow:
    inset 0 2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%),
    inset 0 -2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%);
}

.receive-table.zebra-table tbody tr[data-receivable-row]:has(.receive-actions.is-open) > td:first-child {
  box-shadow:
    inset 4px 0 0 var(--accent-warm),
    inset 0 2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%),
    inset 0 -2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%);
}

.receive-table.zebra-table tbody tr[data-receivable-row]:has(.receive-actions.is-open) > td:last-child {
  box-shadow:
    inset -4px 0 0 var(--accent-warm),
    inset 0 2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%),
    inset 0 -2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%);
}

.receive-table.zebra-table tbody tr[data-payable-row]:has(.receive-actions.is-open) > td {
  box-shadow:
    inset 0 2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%),
    inset 0 -2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%);
}

.receive-table.zebra-table tbody tr[data-payable-row]:has(.receive-actions.is-open) > td:first-child {
  box-shadow:
    inset 4px 0 0 var(--accent-warm),
    inset 0 2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%),
    inset 0 -2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%);
}

.receive-table.zebra-table tbody tr[data-payable-row]:has(.receive-actions.is-open) > td:last-child {
  box-shadow:
    inset -4px 0 0 var(--accent-warm),
    inset 0 2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%),
    inset 0 -2px 0 color-mix(in srgb, var(--accent-warm), transparent 32%);
}

.receive-row-actions-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-height: 36px;
  padding: 0 9px;
  border: 1px solid color-mix(in srgb, var(--line), var(--accent) 16%);
  border-radius: 9px;
  color: var(--accent-strong);
  background: #fff;
  font: inherit;
  font-size: 0.76rem;
  font-weight: 850;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

.receive-table .actions-cell > .actions-group.receive-actions {
  text-align: center;
}

.receive-table .receive-row-actions-trigger {
  gap: 0;
  width: 38px;
  min-width: 38px;
  padding-inline: 0;
}

.receive-table .receive-row-actions-ellipsis {
  position: relative;
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 4px;
  font-size: 0;
  line-height: 0;
}

.receive-table .receive-row-actions-ellipsis::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: -6px 0 0 currentColor, 6px 0 0 currentColor;
  transform: translate(-50%, -50%);
  content: "";
}

@media screen and (min-width: 1180px) {
  .receive-table .receive-row-actions-trigger {
    min-height: 32px;
  }
}

.receive-row-actions-trigger:hover,
.receive-row-actions-trigger:focus-visible,
.receive-row-actions-trigger[aria-expanded="true"] {
  border-color: color-mix(in srgb, var(--accent), transparent 55%);
  background: var(--accent-soft);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-soft), transparent 20%);
}

.receive-row-actions-trigger > svg {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
}

.receive-row-actions-trigger .receive-row-actions-trigger-chevron {
  width: 13px;
  height: 13px;
  transition: transform 150ms ease;
}

.receive-row-actions-trigger[aria-expanded="true"] .receive-row-actions-trigger-chevron {
  transform: rotate(180deg);
}

.receive-row-actions-menu {
  position: fixed;
  z-index: 1250;
  display: block;
  width: min(348px, calc(100vw - 28px));
  max-height: min(720px, calc(100dvh - 24px));
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(203, 213, 225, 0.96);
  border-radius: 14px;
  color: var(--text);
  background: #fff;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.22), 0 4px 14px rgba(15, 23, 42, 0.08);
  white-space: normal;
  text-align: left;
}

.receive-row-actions-menu[hidden] {
  display: none;
}

.receive-row-actions-menu-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 10px 12px 9px 14px;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface), #fff 72%);
}

.receive-row-actions-menu-header > span {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.receive-row-actions-menu-header small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.receive-row-actions-menu-header strong {
  color: var(--text);
  font-size: 0.86rem;
  line-height: 1.25;
}

.receive-row-actions-menu-header > button,
.receive-reissue-head > button {
  display: inline-grid;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}

.receive-row-actions-menu-header > button:hover,
.receive-row-actions-menu-header > button:focus-visible,
.receive-reissue-head > button:hover,
.receive-reissue-head > button:focus-visible {
  color: var(--text);
  background: var(--surface-muted);
  outline: none;
}

.receive-row-actions-menu-header > button svg,
.receive-reissue-head > button svg {
  width: 15px;
  height: 15px;
}

.receive-row-actions-section {
  display: grid;
  gap: 2px;
  padding: 8px;
  border-bottom: 1px solid color-mix(in srgb, var(--line), transparent 18%);
}

.receive-row-actions-section:last-child {
  border-bottom: 0;
}

.receive-row-actions-section:not(:has(> form:not([hidden]), > a, > button:not([hidden]), > details)) {
  display: none;
}

.receive-row-actions-section-title {
  display: block;
  padding: 3px 8px 4px;
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  line-height: 1.2;
  text-transform: uppercase;
}

.receive-row-actions-menu .receive-row-actions-section > form,
.receive-row-actions-menu .receive-row-actions-section > details,
.receive-row-actions-menu .receive-row-actions-section > a,
.receive-row-actions-menu .receive-action-tooltip {
  width: 100%;
  margin: 0;
}

.receive-row-actions-menu .receive-row-actions-section > form,
.receive-row-actions-menu .receive-action-tooltip {
  display: block;
}

.receive-row-actions-menu .receive-row-actions-section > form[hidden],
.receive-row-actions-menu .receive-row-actions-section > button[hidden] {
  display: none;
}

.receive-table .actions-cell .receive-row-actions-menu .receive-row-action-item,
.receive-row-actions-menu .receive-row-action-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 43px;
  padding: 7px 9px;
  border: 0;
  border-radius: 9px;
  color: var(--text);
  background: transparent;
  font: inherit;
  text-align: left;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
}

.receive-table.zebra-table tbody tr:nth-child(even) .receive-row-actions-menu .receive-row-action-item {
  background: transparent;
}

.receive-row-actions-menu .receive-row-action-item:hover,
.receive-row-actions-menu .receive-row-action-item:focus-visible,
.receive-row-actions-menu .receive-payment-review-action[open] > summary {
  color: var(--accent-strong);
  background: var(--accent-soft);
  outline: none;
}

.receive-row-actions-menu .receive-row-action-item > svg,
.receive-row-actions-menu .receive-row-action-item > i,
.receive-row-actions-menu .receive-row-action-item > .action-bank-cancel-symbol {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
}

.receive-row-actions-menu .receive-row-action-item > svg,
.receive-row-actions-menu .receive-row-action-item > i {
  padding: 0;
}

.receive-row-action-copy {
  display: grid;
  flex: 1 1 auto;
  gap: 1px;
  min-width: 0;
}

.receive-row-action-label {
  color: inherit;
  font-size: 0.78rem;
  font-weight: 820;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.receive-row-action-copy small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
  white-space: normal;
}

.receive-row-actions-menu .receive-row-action-next {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  margin-left: auto;
  color: var(--muted);
}

.receive-row-actions-menu .receive-row-action-item:disabled,
.receive-row-actions-menu .receive-row-action-item[aria-disabled="true"] {
  color: #94a3b8;
  background: #f8fafc;
  cursor: not-allowed;
  opacity: 0.62;
}

.receive-row-actions-menu .receive-row-action-item:disabled:hover,
.receive-row-actions-menu .receive-row-action-item[aria-disabled="true"]:hover {
  color: #94a3b8;
  background: #f8fafc;
}

.receive-row-actions-menu .receive-row-action-item:disabled .receive-row-action-next,
.receive-row-actions-menu .receive-row-action-item[aria-disabled="true"] .receive-row-action-next {
  display: none;
}

.receive-row-actions-menu .receive-row-action-item.action-bank-processing {
  color: var(--accent-strong);
  background: var(--accent-soft);
  cursor: progress;
  opacity: 1;
}

.receive-row-actions-menu .receive-row-actions-danger .receive-row-action-item {
  color: var(--danger);
}

.receive-row-actions-menu .receive-row-actions-danger .receive-row-action-item:hover,
.receive-row-actions-menu .receive-row-actions-danger .receive-row-action-item:focus-visible {
  background: #fff1ee;
}

.receive-payment-review-action {
  width: auto;
  height: auto;
}

.receive-row-actions-menu .receive-payment-review-action > summary {
  min-height: 43px;
  padding: 7px 9px;
}

.receive-row-actions-menu .receive-action-tooltip {
  display: block;
}

.receive-row-actions-menu:has(.receive-payment-form.is-open,
    .receive-delete-form.is-open,
    .receive-reissue-form.is-open,
    details[data-review-popover][open]) {
  min-height: min(640px, calc(100dvh - 24px));
  overflow: hidden;
}

.receive-row-actions-menu:has(.receive-payment-form.is-open,
    .receive-delete-form.is-open,
    .receive-reissue-form.is-open,
    details[data-review-popover][open]) > .receive-row-actions-menu-header,
.receive-row-actions-menu:has(.receive-payment-form.is-open,
    .receive-delete-form.is-open,
    .receive-reissue-form.is-open,
    details[data-review-popover][open]) > .receive-row-actions-section {
  visibility: hidden;
  pointer-events: none;
}

.receive-row-actions-menu .receive-payment-form.is-open,
.receive-row-actions-menu .receive-delete-form.is-open,
.receive-row-actions-menu .receive-reissue-form.is-open,
.receive-row-actions-menu details[data-review-popover][open] {
  position: static;
}

.receive-row-actions-menu .receive-payment-form.is-open .receive-payment-panel,
.receive-row-actions-menu .receive-delete-form.is-open .receive-delete-panel,
.receive-row-actions-menu .receive-reissue-form.is-open .receive-reissue-panel,
.receive-row-actions-menu details[data-review-popover][open] > form.receive-payment-review-panel {
  position: absolute;
  z-index: 5;
  inset: 0;
  display: grid;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  min-height: 100%;
  max-height: 100%;
  margin: 0;
  padding: 14px;
  overflow-x: hidden;
  overflow-y: auto;
  border: 0;
  border-radius: inherit;
  color: var(--text);
  background: #fff;
  box-shadow: none;
  visibility: visible;
  pointer-events: auto;
  white-space: normal;
}

.receive-row-actions-menu .receive-payment-form.is-open {
  padding: 0;
  flex: none;
  order: initial;
}

.receive-row-actions-menu .receive-payment-form.is-open .receive-payment-panel {
  flex: none;
}

.receive-row-actions-menu .receive-delete-panel::before {
  display: none;
}

.receive-row-actions-menu .receive-delete-panel {
  align-content: start;
  gap: 11px;
}

.receive-row-actions-menu .receive-delete-panel strong {
  font-size: 0.9rem;
}

.receive-row-actions-menu .receive-delete-panel > span {
  font-size: 0.76rem;
  line-height: 1.45;
}

.receive-row-actions-backdrop {
  display: none;
}

.receive-actions > .receive-action-feedback {
  display: block;
  width: 100%;
  min-width: 0;
  margin-top: 5px;
  font-size: 0.68rem;
  line-height: 1.35;
  white-space: normal;
}

.receive-actions > .receive-action-feedback[hidden] {
  display: none;
}

.receive-reissue-form.is-open .receive-row-action-item {
  background: var(--accent-soft);
}

.receive-reissue-panel[hidden] {
  display: none;
}

.receive-reissue-panel {
  align-content: start;
  gap: 12px;
}

.receive-reissue-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 11px;
  border-bottom: 1px solid var(--line);
}

.receive-reissue-head > span:nth-child(2) {
  display: grid;
  flex: 1 1 auto;
  gap: 2px;
  min-width: 0;
}

.receive-reissue-head > span:nth-child(2) small {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 750;
}

.receive-reissue-head > span:nth-child(2) strong {
  color: var(--text);
  font-size: 0.9rem;
}

.receive-reissue-head-icon {
  display: inline-grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.receive-reissue-head-icon svg {
  width: 17px;
  height: 17px;
}

.receive-reissue-breakdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.receive-reissue-breakdown > span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 9px 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface-muted);
}

.receive-reissue-breakdown small {
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 750;
}

.receive-reissue-breakdown strong {
  color: var(--text);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.receive-reissue-guidance {
  margin: 0;
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.45;
}

.receive-reissue-options {
  display: grid;
  gap: 8px;
}

.receive-reissue-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 62px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  color: var(--text);
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

.receive-reissue-option:hover,
.receive-reissue-option:focus-visible {
  border-color: color-mix(in srgb, var(--accent), transparent 54%);
  background: var(--accent-soft);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-soft), transparent 16%);
}

.receive-reissue-option.is-updated {
  border-color: color-mix(in srgb, var(--success), transparent 58%);
  background: color-mix(in srgb, var(--success-soft), #fff 48%);
}

.receive-reissue-option.is-updated:hover,
.receive-reissue-option.is-updated:focus-visible {
  border-color: var(--success-line);
  background: var(--success-soft);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--success-soft), transparent 10%);
}

.receive-reissue-option:disabled {
  cursor: not-allowed;
  opacity: 0.48;
  filter: grayscale(0.25);
}

.receive-reissue-option:disabled:hover {
  border-color: var(--border);
  background: var(--surface);
  box-shadow: none;
}

.receive-reissue-option-icon {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  color: var(--accent-strong);
  background: var(--accent-soft);
}

.receive-reissue-option.is-updated .receive-reissue-option-icon {
  color: var(--success-strong);
  background: var(--success-soft);
}

.receive-reissue-option-icon svg {
  width: 15px;
  height: 15px;
}

.receive-reissue-option > span:nth-child(2) {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.receive-reissue-option > span:nth-child(2) strong {
  font-size: 0.77rem;
}

.receive-reissue-option > span:nth-child(2) small {
  color: var(--muted);
  font-size: 0.65rem;
  line-height: 1.3;
}

.receive-reissue-option > b {
  color: var(--accent-strong);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.receive-reissue-option.is-updated > b {
  color: var(--success-strong);
}

.receive-reissue-warning {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  padding: 9px 10px;
  border-radius: 9px;
  color: #854d0e;
  background: #fffbeb;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.4;
}

.receive-reissue-warning svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-top: 1px;
}

@media (max-width: 760px) {
  .receive-table.receivable-category-table .actions-cell,
  .receive-table.payable-table .actions-cell {
    width: 94px;
    min-width: 94px;
    max-width: 94px;
  }

  .receive-row-actions-trigger {
    min-height: 38px;
    padding-inline: 7px;
  }

  .receive-table .receive-row-actions-trigger {
    padding-inline: 0;
  }

  .receive-row-actions-backdrop:not([hidden]) {
    position: fixed;
    z-index: 1240;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.34);
    backdrop-filter: blur(1px);
  }

  .receive-row-actions-menu {
    top: auto !important;
    right: 10px;
    bottom: 10px;
    left: 10px !important;
    width: auto;
    max-height: calc(100dvh - 20px);
    border-radius: 18px;
    box-shadow: 0 28px 72px rgba(15, 23, 42, 0.32);
  }

  .receive-row-actions-menu-header {
    min-height: 62px;
    padding: 12px 14px;
  }

  .receive-row-actions-section {
    padding: 9px;
  }

  .receive-table .actions-cell .receive-row-actions-menu .receive-row-action-item,
  .receive-row-actions-menu .receive-row-action-item {
    min-height: 48px;
    padding: 9px 10px;
  }

  .receive-row-action-label {
    font-size: 0.82rem;
  }

  .receive-row-actions-menu:has(.receive-payment-form.is-open,
      .receive-delete-form.is-open,
      .receive-reissue-form.is-open,
      details[data-review-popover][open]) {
    min-height: calc(100dvh - 20px);
  }

  .receive-row-actions-menu .receive-payment-form.is-open .receive-payment-panel,
  .receive-row-actions-menu .receive-delete-form.is-open .receive-delete-panel,
  .receive-row-actions-menu .receive-reissue-form.is-open .receive-reissue-panel,
  .receive-row-actions-menu details[data-review-popover][open] > form.receive-payment-review-panel {
    padding: 16px;
  }
}
