﻿:root {
  --font-ui: Bahnschrift, "Aptos", "Segoe UI Variable Text", "Segoe UI", Arial, sans-serif;
  --font-heading: Bahnschrift, "Aptos Display", "Segoe UI Variable Display", "Segoe UI", Arial, sans-serif;
  --bg: #f2f4f8;
  --surface: #ffffff;
  --surface-muted: #eef2f5;
  --brand-blue: #01118b;
  --brand-blue-strong: #000b66;
  --brand-blue-soft: #e9edff;
  --brand-blue-ring: rgba(1, 17, 139, 0.16);
  --brand-orange: #fe4f18;
  --brand-orange-muted: #ff8a5c;
  --brand-orange-soft: #fff0ea;
  --sidebar: rgba(248, 251, 255, 0.88);
  --sidebar-strong: rgba(255, 255, 255, 0.96);
  --sidebar-soft: rgba(1, 17, 139, 0.075);
  --sidebar-text: #17233b;
  --sidebar-muted: #64748b;
  --sidebar-link: #26354f;
  --sidebar-disabled: #98a2b3;
  --text: #1f2933;
  --muted: #667085;
  --line: #d8dee6;
  --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: #13795b;
  --success-strong: #0f5f49;
  --success-soft: #e6f4ee;
  --success-line: #94d3b7;
  --blue: var(--brand-blue);
  --amber: #b76d1f;
  --danger: #b44343;
  --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). Azul = entra, laranja = sai. Ver .bpo-chart-* adiante. */
  --chart-vendas: #2a3fc4;
  --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, #102a9b, #01118b);
  box-shadow: 0 10px 24px rgba(1, 17, 139, 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(1, 17, 139, 0.2);
  border-radius: 18px;
  background:
    radial-gradient(circle at 85% 10%, rgba(255, 91, 48, 0.12), transparent 30%),
    radial-gradient(circle at 6% 110%, rgba(42, 77, 210, 0.11), transparent 35%),
    linear-gradient(115deg, #f5f7ff 0%, #fbfcff 55%, #fff6f2 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(1, 17, 139, 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: #071d82;
  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(1, 17, 139, 0.14);
  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: #01118b;
  background: rgba(1, 17, 139, 0.06);
  outline: none;
}

.executive-dashboard-periods a.is-active {
  color: #fff;
  background: #01118b;
  box-shadow: 0 6px 14px rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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: #01118b;
  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(1, 17, 139, 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(5.5rem, auto) minmax(8rem, 1fr) auto;
    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(--amber) 45%, var(--line));
    background: #fffaf0;
}

.task-responsibility-item form {
    display: inline-flex;
}

.task-responsibility-item select {
    min-width: 11rem;
    max-width: 16rem;
}

.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(254, 79, 24, 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: #01118b; }
.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 auto;
    }

    .task-responsibility-item > strong,
    .task-responsibility-item > select {
        grid-column: 1 / -1;
    }
}

* {
  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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.14);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #ffffff;
  cursor: pointer;
}

.context-sidebar-toggle:hover,
.context-sidebar-toggle:focus-visible {
  border-color: rgba(1, 17, 139, 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;
}

.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(1, 17, 139, 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(1, 17, 139, 0.18), rgba(1, 17, 139, 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(1, 17, 139, 0.12);
  color: var(--accent-strong);
  background: var(--accent-soft);
  outline: none;
}

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

.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;
  align-items: center;
  min-width: 0;
  color: var(--text);
  text-decoration: none;
}

.desktop-brand img {
  display: block;
  width: min(184px, 20vw);
  min-width: 136px;
  height: auto;
}

.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(1, 17, 139, 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(1, 17, 139, 0.34);
  background: #f8faff;
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 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;
}

.desktop-header-actions .account-actions {
  flex-wrap: nowrap;
  min-width: 0;
}

.desktop-header-actions .account-link {
  max-width: 260px;
}

.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(1, 17, 139, 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;
}

.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(1, 17, 139, 0.12);
  background: #f7f9ff;
  outline: none;
}

.desktop-mega-link.active {
  box-shadow: inset 3px 0 0 var(--accent-warm);
}

.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(242, 244, 248, 0.76);
  -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: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  width: min(430px, calc(100vw - 32px));
  padding: 20px;
  border: 1px solid rgba(1, 17, 139, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.18);
}

.app-loading-mark {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  width: 66px;
  height: 66px;
  position: relative;
  transform-origin: center;
  --tile-step: 24px;
}

.app-loading-mark span {
  display: block;
  min-width: 0;
  min-height: 0;
  border-radius: 5px;
  background: var(--brand-blue);
  animation: app-loading-tile 2.25s cubic-bezier(0.45, 0, 0.2, 1) infinite;
  transform-origin: center;
  will-change: opacity, transform, box-shadow, filter;
  --p1-x: 0;
  --p1-y: 0;
  --p2-x: 0;
  --p2-y: 0;
  --p3-x: 0;
  --p3-y: 0;
  --p4-x: 0;
  --p4-y: 0;
  --p5-x: 0;
  --p5-y: 0;
  --p6-x: 0;
  --p6-y: 0;
  --p7-x: 0;
  --p7-y: 0;
}

.app-loading-mark span:nth-child(1) {
  --p1-x: var(--tile-step);
  --p2-x: calc(var(--tile-step) * 2);
  --p3-x: calc(var(--tile-step) * 2);
  --p3-y: var(--tile-step);
  --p4-x: calc(var(--tile-step) * 2);
  --p4-y: calc(var(--tile-step) * 2);
  --p5-x: var(--tile-step);
  --p5-y: calc(var(--tile-step) * 2);
  --p6-y: calc(var(--tile-step) * 2);
  --p7-y: var(--tile-step);
}

.app-loading-mark span:nth-child(2) {
  --p1-x: var(--tile-step);
  --p2-x: var(--tile-step);
  --p2-y: var(--tile-step);
  --p3-x: var(--tile-step);
  --p3-y: calc(var(--tile-step) * 2);
  --p4-y: calc(var(--tile-step) * 2);
  --p5-x: calc(var(--tile-step) * -1);
  --p5-y: calc(var(--tile-step) * 2);
  --p6-x: calc(var(--tile-step) * -1);
  --p6-y: var(--tile-step);
  --p7-x: calc(var(--tile-step) * -1);
}

.app-loading-mark span:nth-child(3) {
  --p1-y: var(--tile-step);
  --p2-y: calc(var(--tile-step) * 2);
  --p3-x: calc(var(--tile-step) * -1);
  --p3-y: calc(var(--tile-step) * 2);
  --p4-x: calc(var(--tile-step) * -2);
  --p4-y: calc(var(--tile-step) * 2);
  --p5-x: calc(var(--tile-step) * -2);
  --p5-y: var(--tile-step);
  --p6-x: calc(var(--tile-step) * -2);
  --p7-x: calc(var(--tile-step) * -1);
  background: var(--brand-orange);
}

.app-loading-mark span:nth-child(4) {
  --p1-y: calc(var(--tile-step) * -1);
  --p2-x: var(--tile-step);
  --p2-y: calc(var(--tile-step) * -1);
  --p3-x: calc(var(--tile-step) * 2);
  --p3-y: calc(var(--tile-step) * -1);
  --p4-x: calc(var(--tile-step) * 2);
  --p5-x: calc(var(--tile-step) * 2);
  --p5-y: var(--tile-step);
  --p6-x: var(--tile-step);
  --p6-y: var(--tile-step);
  --p7-y: var(--tile-step);
}

.app-loading-mark span:nth-child(5) {
  animation-name: app-loading-center-tile;
  background: var(--brand-orange);
}

.app-loading-mark span:nth-child(6) {
  --p1-y: var(--tile-step);
  --p2-x: calc(var(--tile-step) * -1);
  --p2-y: var(--tile-step);
  --p3-x: calc(var(--tile-step) * -2);
  --p3-y: var(--tile-step);
  --p4-x: calc(var(--tile-step) * -2);
  --p5-x: calc(var(--tile-step) * -2);
  --p5-y: calc(var(--tile-step) * -1);
  --p6-x: calc(var(--tile-step) * -1);
  --p6-y: calc(var(--tile-step) * -1);
  --p7-y: calc(var(--tile-step) * -1);
}

.app-loading-mark span:nth-child(7) {
  --p1-y: calc(var(--tile-step) * -1);
  --p2-y: calc(var(--tile-step) * -2);
  --p3-x: var(--tile-step);
  --p3-y: calc(var(--tile-step) * -2);
  --p4-x: calc(var(--tile-step) * 2);
  --p4-y: calc(var(--tile-step) * -2);
  --p5-x: calc(var(--tile-step) * 2);
  --p5-y: calc(var(--tile-step) * -1);
  --p6-x: calc(var(--tile-step) * 2);
  --p7-x: var(--tile-step);
  background: var(--brand-orange-muted);
}

.app-loading-mark span:nth-child(8) {
  --p1-x: calc(var(--tile-step) * -1);
  --p2-x: calc(var(--tile-step) * -1);
  --p2-y: calc(var(--tile-step) * -1);
  --p3-x: calc(var(--tile-step) * -1);
  --p3-y: calc(var(--tile-step) * -2);
  --p4-y: calc(var(--tile-step) * -2);
  --p5-x: var(--tile-step);
  --p5-y: calc(var(--tile-step) * -2);
  --p6-x: var(--tile-step);
  --p6-y: calc(var(--tile-step) * -1);
  --p7-x: var(--tile-step);
}

.app-loading-mark span:nth-child(9) {
  --p1-x: calc(var(--tile-step) * -1);
  --p2-x: calc(var(--tile-step) * -2);
  --p3-x: calc(var(--tile-step) * -2);
  --p3-y: calc(var(--tile-step) * -1);
  --p4-x: calc(var(--tile-step) * -2);
  --p4-y: calc(var(--tile-step) * -2);
  --p5-x: calc(var(--tile-step) * -1);
  --p5-y: calc(var(--tile-step) * -2);
  --p6-y: calc(var(--tile-step) * -2);
  --p7-y: calc(var(--tile-step) * -1);
}

.app-page-loading-copy {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.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(1, 17, 139, 0.1);
}

.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;
  }

  .app-loading-mark {
    width: 58px;
    height: 58px;
    gap: 5px;
    --tile-step: 21px;
  }
}

@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: #01118b;
  background: var(--sidebar-soft);
  border-color: rgba(1, 17, 139, 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(1, 17, 139, 0.12);
  border-radius: 8px;
  color: #01118b;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  background: linear-gradient(135deg, rgba(1, 17, 139, 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(1, 17, 139, 0.08);
}

.side-group-toggle:focus-visible {
  outline: 2px solid rgba(1, 17, 139, 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(1, 17, 139, 0.16), rgba(1, 17, 139, 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(1, 17, 139, 0.2), rgba(1, 17, 139, 0.03));
  border-radius: 999px;
}

.side-sub-link:hover,
.side-sub-link.active {
  color: var(--sidebar-text);
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.08);
}

.side-sub-toggle:focus-visible {
  outline: 2px solid rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.055);
}

.side-sub-child-link.active {
  box-shadow: inset 2px 0 0 var(--accent-warm);
}

.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;
}

.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-license {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-name {
  color: var(--text);
  font-size: 0.95rem;
  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(1, 17, 139, 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(1, 17, 139, 0.18);
}

.btn-secondary-app {
  color: var(--accent);
  background: var(--surface);
  border-color: rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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));
}

.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(1, 17, 139, 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;
}

.control-delivery-filter {
  margin-top: 14px;
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.42);
  background: #eef2ff;
  cursor: progress;
}

.delivery-drop-hint.is-uploading .delivery-drop-icon::after {
  content: "";
  position: absolute;
  inset: 6px;
  border: 2px solid rgba(1, 17, 139, 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.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-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-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(1, 17, 139, 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(1, 17, 139, 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;
}

.control-delivery-table {
  min-width: 1120px;
}

.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(1, 17, 139, 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;
  left: calc(var(--context-sidebar-width) + 32px);
  z-index: 96;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: min(1256px, calc(100vw - var(--context-sidebar-width) - 64px));
  min-height: 58px;
  padding: 8px 10px;
  border: 1px solid rgba(1, 17, 139, 0.14);
  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: 2px 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: 3px;
  color: var(--text);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.receivable-summary-strip-item small {
  overflow: hidden;
  margin-top: 2px;
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.sidebar-collapsed .receivable-summary-strip {
  left: calc(var(--context-sidebar-collapsed-width) + 32px);
  width: min(1256px, calc(100vw - var(--context-sidebar-collapsed-width) - 64px));
}

body.has-receivable-summary-strip .content {
  padding-bottom: 118px;
}

/* 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(1, 17, 139, 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(1, 17, 139, 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;
}

.inventory-drawer {
  position: fixed;
  inset: 0;
  z-index: 1100;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0s linear 540ms;
}

.inventory-drawer[aria-hidden="false"] {
  pointer-events: auto;
  visibility: visible;
  transition-delay: 0s;
}

.inventory-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.28);
  opacity: 0;
  transition: opacity 460ms ease;
  cursor: pointer;
}

.inventory-drawer[aria-hidden="false"] .inventory-drawer-backdrop {
  opacity: 1;
}

.inventory-drawer-panel {
  position: absolute;
  top: 14px;
  right: 14px;
  bottom: 14px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(820px, calc(100vw - 28px));
  overflow: hidden;
  border: 1px solid rgba(1, 17, 139, 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;
}

.inventory-drawer[aria-hidden="false"] .inventory-drawer-panel {
  transform: translateX(0);
}

.inventory-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(1, 17, 139, 0.13);
  background: #fbfdff;
}

.inventory-drawer-title {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.inventory-drawer-title span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.inventory-drawer-title strong {
  min-width: 0;
  overflow: hidden;
  color: var(--text);
  font-size: 1rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inventory-drawer-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(1, 17, 139, 0.2);
  border-radius: 8px;
  color: var(--accent-strong);
  background: #ffffff;
  cursor: pointer;
  text-decoration: none;
}

.inventory-drawer-close:hover,
.inventory-drawer-close:focus-visible {
  border-color: var(--accent);
  background: var(--accent-soft);
}

.inventory-drawer-close svg {
  width: 18px;
  height: 18px;
}

.inventory-drawer-body {
  min-height: 0;
  overflow-y: auto;
  padding: 18px;
  background: #ffffff;
}

.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(1, 17, 139, 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(1, 17, 139, 0.14);
  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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.18);
  border-radius: 12px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.35);
  border-radius: 12px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.08), rgba(1, 17, 139, 0.26), rgba(1, 17, 139, 0.08));
}

.nfe-credito-field {
  max-width: 320px;
}

.nfe-credito-preview {
  max-width: 980px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(1, 17, 139, 0.14);
  border-radius: 8px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.18);
  border-left: 1px solid rgba(1, 17, 139, 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(1, 17, 139, 0.14);
  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(1, 17, 139, 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(1, 17, 139, 0.12);
  border-radius: 8px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.14);
  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(1, 17, 139, 0.12);
  border-radius: 8px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.14);
  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(1, 17, 139, 0.16);
  border-radius: 12px;
  padding: 14px 16px 16px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.06);
}

.nfe-imp-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  border-bottom: 2px solid rgba(1, 17, 139, 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(1, 17, 139, 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) {
  .inventory-drawer-panel {
    top: 0;
    right: 0;
    bottom: 0;
    border-radius: 0;
  }

  .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(1, 17, 139, 0.2), rgba(1, 17, 139, 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), entao a barra
   ficou so com periodo/movimento/sistema/acoes em uma linha. */
.accounting-export-filter-bar {
  grid-template-columns:
    minmax(280px, 1fr)
    minmax(260px, 0.9fr)
    minmax(220px, 0.75fr)
    auto;
  grid-template-areas: "period movement system actions";
  gap: 14px 12px;
}

.accounting-export-range-field {
  grid-area: period;
}

.accounting-export-mode-field {
  grid-area: movement;
}

.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;
}

.accounting-export-result-divider {
  position: relative;
  height: 1px;
  margin: 26px 0 22px;
  background: linear-gradient(90deg, rgba(1, 17, 139, 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);
}

.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 search search 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-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 account bank bank bank 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"
      "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(1, 17, 139, 0.34);
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 0.14);
  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(1, 17, 139, 0.34);
  background: var(--accent-soft);
  outline: none;
}

.receivable-period-option.active {
  box-shadow: inset 0 0 0 1px rgba(1, 17, 139, 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(1, 17, 139, 0.14);
}

.receivable-period-static {
  display: grid;
  gap: 4px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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: #01118b;
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.12);
  border-radius: 8px;
  background: #f8fafc;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.reconciliation-candidate:hover,
.reconciliation-candidate:focus-visible {
  border-color: rgba(1, 17, 139, 0.32);
  background: #fff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
  outline: none;
}

.reconciliation-candidate.selected {
  border-color: rgba(1, 17, 139, 0.5);
  background: #fff;
  box-shadow: 0 0 0 2px rgba(1, 17, 139, 0.08);
}

.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;
}

.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-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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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-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(1, 17, 139, 0.32);
  box-shadow: 0 0 0 2px rgba(1, 17, 139, 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 .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(1, 17, 139, 0.32);
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.42);
  box-shadow: 0 0 0 4px rgba(1, 17, 139, 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;
}

.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(1, 17, 139, 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(1, 17, 139, 0.44);
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.34);
  background: rgba(248, 250, 252, 0.92);
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.34);
  outline: none;
}

.date-range-preset.is-active {
  box-shadow: inset 0 0 0 1px rgba(1, 17, 139, 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(1, 17, 139, 0.3);
  background: var(--surface-muted);
  outline: none;
}

.date-range-month-option.is-active {
  color: var(--accent-strong);
  border-color: rgba(1, 17, 139, 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);
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.2);
}

.month-year-trigger:focus-visible {
  outline: 3px solid rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.34);
  background: rgba(223, 241, 236, 0.58);
}

.month-year-option.is-current {
  color: var(--accent-strong);
  border-color: rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.2);
}

.date-picker-trigger:focus-visible {
  outline: 3px solid rgba(1, 17, 139, 0.14);
  outline-offset: 2px;
}

.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(1, 17, 139, 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(1, 17, 139, 0.34);
  background: rgba(223, 241, 236, 0.58);
}

.date-picker-day.is-muted {
  color: #9aa6b2;
  background: #f8fafc;
}

.date-picker-day.is-today {
  color: var(--accent-strong);
  border-color: rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.18);
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.14);
  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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.08), rgba(254, 79, 24, 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 {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.auth-lockup {
  display: block;
  width: min(238px, 100%);
  max-width: 100%;
  height: auto;
}

.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(1, 17, 139, 0.16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(1, 17, 139, 0.055), rgba(1, 17, 139, 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;
  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 strong,
.auth-company-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.auth-company-copy strong {
  color: var(--text);
  font-size: 0.94rem;
  font-weight: 900;
}

.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(1, 17, 139, 0.12);
  border-radius: 8px;
  background: rgba(1, 17, 139, 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(1, 17, 139, 0.28);
  background: rgba(1, 17, 139, 0.045);
  color: var(--text);
}

.auth-check:has(input:checked) {
  border-color: rgba(1, 17, 139, 0.3);
  background: rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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;
}

.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);
}

.tab-panels {
  min-width: 0;
}

.tab-panel {
  display: none;
  gap: 22px;
}

#entity-tab-dados:checked ~ .tab-list label[for="entity-tab-dados"],
#entity-tab-socios:checked ~ .tab-list label[for="entity-tab-socios"],
#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"] {
  color: var(--accent-strong);
  background: #fff;
  border-color: var(--line);
}

#entity-tab-dados:checked ~ .tab-panels .panel-dados,
#entity-tab-socios:checked ~ .tab-panels .panel-socios,
#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 {
  display: grid;
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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;
}

.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(1, 17, 139, 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;
  gap: 12px;
  padding: 0 12px 14px;
  border: 1px solid rgba(1, 17, 139, 0.16);
  border-radius: 8px;
  background: #fff;
}

.payable-payment-box .payable-payment-divider {
  margin-top: 0;
}

.payable-observations-field {
  display: grid;
  gap: 6px;
}

.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(156px, 1.05fr)
    minmax(148px, 0.95fr)
    minmax(190px, 1.18fr)
    repeat(3, minmax(112px, 0.7fr))
    minmax(132px, 0.82fr);
  gap: 12px;
  align-items: start;
}

.payable-payment-row .field,
.payable-payment-row .toggle-field {
  min-width: 0;
}

.payable-payment-row .field > span:first-child {
  white-space: nowrap;
}

.payable-payment-row .field input,
.payable-payment-row .field select {
  min-height: 38px;
  padding: 8px 10px;
}

.payable-status-field {
  min-width: 0;
}

.toggle-field.payable-paid-toggle {
  min-height: 38px;
  height: 38px;
  padding: 0 10px;
  gap: 8px;
  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.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: 40px;
  width: 40px;
  height: 24px;
  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: 18px;
  height: 18px;
}

.payable-paid-toggle.toggle-field input:checked + .toggle-track::after {
  transform: translateX(16px);
}

.payable-paid-toggle .toggle-copy strong {
  font-size: 0.84rem;
  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(1, 17, 139, 0.28);
  background: #f8fbff;
  font-weight: 900;
}

.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-top: -2px;
}

.payable-final-actions .btn-primary-app {
  min-width: 180px;
}

.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(4, 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-launch-actions,
  .payable-entry-save-button,
  .payable-final-actions,
  .payable-final-actions .btn-primary-app {
    width: 100%;
  }
}

.collapsible-entry {
  margin: 16px 0 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.collapsible-entry[open] {
  border-color: rgba(1, 17, 139, 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(1, 17, 139, 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;
}

.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(1, 17, 139, 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(1, 17, 139, 0.2);
  border-top: 1px solid rgba(1, 17, 139, 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-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: #01118b;
  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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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: #01118b;
  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;
}

.email-config-drawer-panel {
  width: min(860px, calc(100vw - 28px));
}

.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(1, 17, 139, 0.14);
  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(1, 17, 139, 0.18);
  background: var(--accent-soft);
  outline: none;
}

.email-template-count-link svg {
  width: 16px;
  height: 16px;
}

.email-template-drawer-panel {
  width: min(560px, calc(100vw - 28px));
}

.email-template-drawer-summary {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid rgba(1, 17, 139, 0.14);
  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(1, 17, 139, 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(1, 17, 139, 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;
}

.cpf-field {
  max-width: 24ch;
}

.socios-entry-grid {
  align-items: end;
}

.align-end {
  align-self: end;
  margin-bottom: 10px;
}

.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(1, 17, 139, 0.45);
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 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));
}

.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(1, 17, 139, 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(1, 17, 139, 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;
}

.category-financial-form {
  grid-template-columns: minmax(132px, 0.82fr) minmax(260px, 1.35fr) minmax(82px, 0.42fr) minmax(260px, 1.35fr);
  column-gap: 12px;
  row-gap: 12px;
  align-items: end;
}

.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;
}

.accounting-account-option.is-asset,
.accounting-root-pill.is-asset {
  border-left-color: #2563eb;
}

.accounting-account-option.is-liability,
.accounting-root-pill.is-liability {
  border-left-color: #a16207;
}

.accounting-account-option.is-revenue,
.accounting-root-pill.is-revenue {
  border-left-color: #047857;
}

.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: 1180px) {
  .category-financial-form {
    grid-template-columns: minmax(120px, 0.8fr) minmax(220px, 1.2fr) minmax(80px, 0.45fr) minmax(220px, 1.2fr);
  }
}

@media (max-width: 980px) {
  .category-financial-form {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .category-financial-form .category-accounting-field,
  .category-financial-form .form-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .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: 760px;
}

.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(1, 17, 139, 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;
}

.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(1, 17, 139, 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.78rem;
  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;
}

.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(1, 17, 139, 0.24);
}

.obligation-day.today .obligation-day-number {
  color: var(--accent-warm);
}

.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(1, 17, 139, 0.34);
  border-radius: 6px;
  color: var(--accent-strong);
  background: rgba(1, 17, 139, 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(1, 17, 139, 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;
}

.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: minmax(360px, 1fr) auto;
  grid-template-areas: none;
  gap: 12px;
  align-items: end;
  margin-top: 14px;
}

.report-finance-filter-bar .report-finance-period-field {
  grid-area: auto;
}

.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;
  }
}

.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;
  gap: 16px;
}

.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(1, 17, 139, 0.18);
  border-radius: 8px;
  background: #f6fbf9;
}

.bulk-action-bar.is-submitting {
  border-color: rgba(1, 17, 139, 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 222px;
  gap: 8px;
  width: 222px;
  max-width: 100%;
}

.receivable-bulk-download-scope .bulk-download-submit {
  justify-content: center;
  width: 100%;
  min-height: 40px;
  white-space: nowrap;
}

.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-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 th {
  position: relative;
}

.receive-table .receive-date-header {
  min-width: 128px;
  width: 128px;
}

.payable-table {
  min-width: 1410px;
}

.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 {
  min-height: 36px;
  padding: 0 12px;
  font-size: 0.84rem;
  white-space: nowrap;
}

.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: 180px;
}

.payable-table .payable-document-header {
  min-width: 188px;
}

.payable-table .payable-category-header {
  min-width: 170px;
}

.payable-table .payable-date-header {
  min-width: 136px;
  width: 136px;
}

.payable-table .payable-value-header {
  min-width: 132px;
  width: 132px;
}

.payable-table .payable-status-header {
  min-width: 124px;
}

.payable-table .amount-cell {
  min-width: 132px;
  width: 132px;
  white-space: nowrap;
}

.payable-table .amount-cell strong,
.payable-table .amount-cell small {
  white-space: nowrap;
}

.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-grid;
  grid-template-columns: minmax(0, auto) 16px auto;
  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:hover,
.receive-column-filter-trigger:focus-visible,
.receive-column-filter-trigger[aria-expanded="true"] {
  color: var(--accent-strong);
  border-color: rgba(1, 17, 139, 0.18);
  background: var(--accent-soft);
  outline: none;
}

.receive-column-filter-trigger.is-active {
  color: var(--accent-strong);
  border-color: rgba(1, 17, 139, 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(1, 17, 139, 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.zebra-table tbody tr[data-receivable-row] td {
  border-bottom: 3px solid color-mix(in srgb, var(--line), var(--accent) 32%);
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.72);
}

.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: rgba(170, 75, 20, 0.36);
}

.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 {
  border-bottom: 0;
  box-shadow: 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: 92px;
}

.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-status-cell {
  display: grid;
  gap: 4px;
  justify-items: start;
}

.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;
}

.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: -12px 0 18px -18px rgba(31, 41, 51, 0.52);
}

.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));
}

.receive-conference-status {
  font-weight: 850;
}

.receive-conference-status.is-pending {
  color: #8a5a0a;
}

.receive-conference-status.is-ok {
  color: var(--success-strong);
}

.receivable-manual-row td {
  padding: 0 12px 14px;
  border-top: 0;
  border-bottom: 3px solid color-mix(in srgb, #ead08a, var(--accent) 20%);
  background: #fffaf0;
}

.receive-table.zebra-table tbody tr.receivable-manual-row.is-confirmed td,
.receive-table.zebra-table tbody tr.receivable-manual-row.is-confirmed:nth-child(even) td {
  border-bottom-color: color-mix(in srgb, var(--success-line), var(--accent) 18%);
  background: #f3fbf6;
}

.receivable-manual-form {
  margin: 0;
  padding: 10px 40px 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);
  gap: 8px;
  align-items: end;
  justify-content: start;
}

.receivable-manual-field {
  gap: 5px;
  min-width: 0;
}

.receivable-manual-field > span:first-child {
  font-size: 0.74rem;
}

.receivable-manual-quantity {
  width: 118px;
}

.receivable-manual-money {
  width: 190px;
}

.manual-input-check {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px;
  gap: 5px;
  align-items: center;
}

.manual-input-check input[type="number"],
.manual-input-check input[type="text"] {
  width: 100%;
  height: 34px;
  min-height: 34px;
  padding: 6px 8px;
  text-align: right;
}

.receivable-manual-quantity input[type="number"] {
  min-width: 0;
  max-width: 82px;
}

.receivable-manual-money input[type="text"] {
  min-width: 0;
  max-width: 150px;
}

.receivable-manual-field.needs-confirmation input[type="number"],
.receivable-manual-field.needs-confirmation input[type="text"] {
  border-color: #ead08a;
  background: #fff8db;
}

.receivable-manual-field.is-confirmed input[type="number"],
.receivable-manual-field.is-confirmed input[type="text"] {
  border-color: var(--success-line);
  background: #f0fbf5;
}

.manual-check {
  position: relative;
  display: grid;
  place-items: center;
  width: 30px;
  height: 34px;
  border: 1px solid #d3dbea;
  border-radius: 8px;
  color: #6b778c;
  background: #fff;
}

.manual-check input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.manual-check span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 7px;
}

.manual-check svg {
  width: 15px;
  height: 15px;
}

.manual-check input:checked + span {
  color: #fff;
  background: var(--success);
}

.manual-check input:disabled {
  cursor: not-allowed;
}

.manual-check:has(input:disabled) {
  opacity: 0.52;
  background: var(--surface-muted);
}

.receivable-manual-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  min-width: 118px;
}

.receivable-manual-submit {
  width: 100%;
  min-height: 34px;
  padding: 0 10px;
  font-size: 0.8rem;
  white-space: nowrap;
}

.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(1, 17, 139, 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-payment-residual {
  display: grid;
  gap: 8px;
  padding: 10px 11px;
  border-radius: 10px;
  background: var(--accent-warm-soft);
  border: 1px solid rgba(254, 79, 24, 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-block {
  margin-top: 7px;
  padding-top: 6px;
  border-top: 1px solid var(--line);
}

.receive-payments-block[hidden] {
  display: none;
}

.receive-payments-title {
  display: block;
  margin-bottom: 2px;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--muted);
}

.receive-payments-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 2px;
}

.receive-payments-list[hidden] {
  display: none;
}

.receive-payments-list li {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  font-size: 0.76rem;
  line-height: 1.4;
  color: var(--text);
  white-space: normal;
}

.receive-payments-list li > span:first-child {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: break-word;
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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;
  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(1, 17, 139, 0.14);
  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 {
  margin-bottom: 0;
}

.contract-panel-header-card h2 {
  margin: 2px 0 4px;
  font-size: 1.12rem;
}

.contract-panel-header-card p {
  margin-bottom: 0;
}

.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;
}

.contract-panel-form {
  grid-template-columns: repeat(3, minmax(145px, 1fr));
  gap: 10px;
  font-size: 0.92rem;
}

.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 textarea {
  min-height: 68px;
}

.contract-panel-form .inline-grid-panel {
  padding: 10px;
}

.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 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contract-panel-form .span-3,
  .contract-panel-form .inline-grid-panel {
    grid-column: 1 / -1;
  }
}

@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;
  }

  .contract-panel-form {
    grid-template-columns: 1fr;
  }

  .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: 1fr;
  }

  .contract-panel-form .range-row-actions {
    justify-content: flex-start;
    min-height: 36px;
  }
}

@keyframes bank-processing-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes app-loading-tile {
  0%,
  100% {
    opacity: 0.88;
    filter: saturate(0.96);
    transform: translate3d(0, 0, 0) scale(0.94) rotate(0deg);
    box-shadow: none;
  }

  12.5% {
    opacity: 1;
    filter: saturate(1);
    transform: translate3d(var(--p1-x), var(--p1-y), 0) scale(1) rotate(45deg);
    box-shadow: 0 6px 16px rgba(1, 17, 139, 0.16);
  }

  25% {
    opacity: 1;
    filter: saturate(1.08);
    transform: translate3d(var(--p2-x), var(--p2-y), 0) scale(1.03) rotate(90deg);
    box-shadow: 0 8px 18px rgba(255, 72, 26, 0.14);
  }

  37.5% {
    opacity: 1;
    filter: saturate(1.04);
    transform: translate3d(var(--p3-x), var(--p3-y), 0) scale(1) rotate(135deg);
    box-shadow: 0 6px 16px rgba(1, 17, 139, 0.15);
  }

  50% {
    opacity: 0.94;
    filter: saturate(1);
    transform: translate3d(var(--p4-x), var(--p4-y), 0) scale(0.96) rotate(180deg);
    box-shadow: none;
  }

  62.5% {
    opacity: 1;
    filter: saturate(1.08);
    transform: translate3d(var(--p5-x), var(--p5-y), 0) scale(1.03) rotate(225deg);
    box-shadow: 0 8px 18px rgba(255, 72, 26, 0.14);
  }

  75% {
    opacity: 1;
    filter: saturate(1.04);
    transform: translate3d(var(--p6-x), var(--p6-y), 0) scale(1) rotate(270deg);
    box-shadow: 0 6px 16px rgba(1, 17, 139, 0.15);
  }

  87.5% {
    opacity: 0.98;
    filter: saturate(1);
    transform: translate3d(var(--p7-x), var(--p7-y), 0) scale(0.98) rotate(315deg);
    box-shadow: 0 5px 14px rgba(1, 17, 139, 0.12);
  }
}

@keyframes app-loading-center-tile {
  0%,
  100% {
    opacity: 0.9;
    filter: saturate(0.96);
    transform: scale(0.92) rotate(0deg);
    box-shadow: none;
  }

  50% {
    opacity: 1;
    filter: saturate(1.12);
    transform: scale(1.08) rotate(90deg);
    box-shadow: 0 8px 18px rgba(255, 72, 26, 0.18);
  }
}

@keyframes app-loading-progress {
  0% {
    transform: translateX(-110%);
  }

  50% {
    transform: translateX(58%);
  }

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

@media (prefers-reduced-motion: reduce) {
  .app-loading-mark span,
  .app-loading-progress span {
    animation: none;
  }

  .app-loading-mark span {
    opacity: 1;
    transform: none;
    filter: none;
    box-shadow: none;
  }

  .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(1, 17, 139, 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-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(1, 17, 139, 0.14);
    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(1, 17, 139, 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-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(1, 17, 139, 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(1, 17, 139, 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"
      "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 {
    flex-basis: auto;
    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"
      "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(1, 17, 139, 0.16);
    border-radius: 8px;
    color: #fff;
    background: var(--accent);
    box-shadow: 0 18px 38px rgba(1, 17, 139, 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(1, 17, 139, 0.14);
    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: #01118b;
  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;
  }

  .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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.42);
  outline: 3px solid rgba(1, 17, 139, 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(1, 17, 139, 0.42);
  outline: 3px solid rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.05) 0, rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.14);
    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(1, 17, 139, 0.14);
    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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 0.28);
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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));
  padding: 24px;
  border: 1px solid rgba(1, 17, 139, 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-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}

.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;
}

.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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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;
}

/* Colunas invertidas: EXTRATO a esquerda, sistema (editor) 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-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-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(470px, 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-difference-shortage[hidden],
.reconciliation-difference-distribution[hidden] {
  display: none;
}

.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(1, 17, 139, 0.32);
  color: var(--accent-strong);
  background: #fff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(1, 17, 139, 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(3, 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-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: 8px;
  padding-top: 2px;
}

.reconciliation-difference-distribution-list {
  display: grid;
  gap: 6px;
  max-height: 176px;
  overflow-y: auto;
}

.reconciliation-difference-distribution-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 8px 9px;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 8px;
  background: #f8fafc;
}

.reconciliation-difference-distribution-item > div:first-child {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.reconciliation-difference-distribution-item > div:first-child strong {
  overflow: hidden;
  color: var(--text);
  font-size: 0.72rem;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reconciliation-difference-distribution-item small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 720;
}

.reconciliation-difference-distribution-values {
  display: grid;
  grid-template-columns: auto auto;
  gap: 2px 8px;
  color: var(--muted);
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.reconciliation-difference-distribution-values strong {
  grid-column: 1 / -1;
  color: #92400e;
  font-size: 0.76rem;
  font-weight: 900;
}

.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(1, 17, 139, 0.34);
  box-shadow: 0 0 0 2px rgba(1, 17, 139, 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(1, 17, 139, 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 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reconciliation-difference-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .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;
  }

  @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 {
  background: linear-gradient(270deg, var(--line), rgba(216, 222, 230, 0));
  left: 46%;
}

.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: 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-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-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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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(1, 17, 139, 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-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;
  }
}

/* Varios pagamentos do extrato para um unico titulo */
.reconciliation-batch-start {
  min-height: 36px;
  white-space: nowrap;
}

.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] {
  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(1, 17, 139, 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-debit,
.bank-reconciliation-form.is-batch-selecting .reconciliation-row.is-collapsed {
  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);
}

.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(1, 17, 139, 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);
}

.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;
}

.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;
}

.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;
}

.reconciliation-batch-composition-status {
  min-height: 18px;
  color: #b45309;
  font-size: 0.75rem;
  font-weight: 820;
}

.reconciliation-batch-composition-status.is-valid {
  color: #047857;
}

.reconciliation-batch-footer {
  flex: 0 0 auto;
}

@media (max-width: 760px) {
  .reconciliation-pagination-toolbar-actions {
    flex-wrap: wrap;
  }

  .reconciliation-batch-start {
    width: 100%;
  }

  .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 {
    grid-template-columns: 1fr;
  }

  .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%;
  }
}

/* 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(254, 79, 24, 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(1, 17, 139, 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(1, 17, 139, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 22px rgba(1, 17, 139, 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(1, 17, 139, 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(254, 79, 24, 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(1, 17, 139, 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;
  }
}
