:root {
  --bg: #090b12;
  --panel: #111522;
  --panel-2: #151a2b;
  --text: #eef1ff;
  --muted: #9aa3bd;
  --line: #252b3f;
  --purple: #7c3aed;
  --purple-2: #a855f7;
  --danger: #fb7185;
  --ok: #2dd4bf;
  --radius: 14px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 20% 0%, rgba(124, 58, 237, .18), transparent 30rem),
    radial-gradient(circle at 80% 0%, rgba(59, 130, 246, .12), transparent 32rem),
    #070914;
  color: var(--text);
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 16px;
}

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 300px;
  padding: 24px 18px 18px;
  background: linear-gradient(180deg, rgba(9, 10, 22, .98), rgba(6, 8, 17, .98));
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
}

.brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 26px;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
  font-size: 24px;
  font-weight: 800;
  box-shadow: 0 0 28px rgba(124, 58, 237, .45);
}

.brand small, .topbar p, .muted { color: var(--muted); }
.brand strong { display: block; font-size: 19px; line-height: 1.15; }
.brand small { display: block; max-width: 170px; margin-top: 3px; line-height: 1.35; }

.brand-logo-wrap {
  display: block;
  padding: 2px 0 12px;
}

.brand-logo-img {
  max-width: 202px;
  width: 100%;
  height: auto;
  display: block;
}

.mobile-brand-link {
  display: block;
}

.mobile-brand-logo {
  max-width: 190px;
  height: auto;
  display: block;
}

.dashboard-mobile-logo {
  display: block;
  margin-bottom: 6px;
}

.dashboard-mobile-logo-img {
  max-width: 190px;
  width: 100%;
  height: auto;
  display: block;
}
nav { display: grid; gap: 10px; }

.sidebar nav {
  flex: 1 1 auto;
  min-height: 0;
  align-content: start;
  gap: 7px;
  padding-right: 5px;
}

nav a {
  color: var(--muted);
  text-decoration: none;
  padding: 15px 16px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 16px;
  font-weight: 600;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
nav {
  overflow-y: auto;
  padding-right: 2px;
}

.sidebar nav a {
  padding: 12px 14px;
  border-radius: 10px;
  gap: 11px;
  font-size: 15px;
}

.nav-section-title {
  display: block;
  margin: 16px 10px 4px;
  color: #717b99;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.sidebar .nav-section-title {
  margin: 11px 8px 2px;
}

nav a.active, nav a:hover {
  color: var(--text);
  background: linear-gradient(135deg, rgba(124, 58, 237, .72), rgba(91, 33, 182, .72));
  box-shadow: inset 0 0 0 1px rgba(216, 180, 254, .16), 0 12px 30px rgba(124, 58, 237, .2);
}

nav a:hover { transform: translateX(2px); }

.nav-group {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 4px;
  border: 1px solid transparent;
  border-radius: 12px;
  transition: border-color .18s ease, background .18s ease;
}

.sidebar .nav-group {
  gap: 4px;
  padding: 3px;
  border-radius: 11px;
}

.nav-group[open] {
  border-color: rgba(148, 163, 184, .16);
  background: rgba(15, 23, 42, .42);
}

.nav-group > summary {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 12px;
  align-items: center;
  gap: 13px;
  min-height: 48px;
  padding: 12px;
  border-radius: 10px;
  color: var(--muted);
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  list-style: none;
  outline: none;
  transition: background .18s ease, color .18s ease;
}

.sidebar .nav-group > summary {
  min-height: 42px;
  padding: 10px 11px;
  gap: 11px;
  font-size: 15px;
}

.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::marker { content: ""; }

.nav-group > summary::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  opacity: .74;
  transform: rotate(-45deg);
  transition: transform .18s ease, opacity .18s ease;
}

.nav-group[open] > summary::after { transform: rotate(45deg); }

.nav-group > summary:hover,
.nav-group > summary.active {
  color: var(--text);
  background: rgba(124, 58, 237, .2);
}

.nav-sub {
  display: grid;
  gap: 5px;
  padding: 0 6px 7px 37px;
}

.sidebar .nav-sub {
  gap: 4px;
  padding: 0 5px 6px 35px;
}

.nav-sub a {
  min-height: 38px;
  padding: 9px 11px;
  border-radius: 9px;
  font-size: 14px;
  line-height: 1.2;
}

.sidebar .nav-sub a {
  min-height: 34px;
  padding: 8px 10px;
  font-size: 13px;
}

.nav-icon, .btn-icon, .mini-icon, .metric-icon {
  display: inline-block;
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.icon-home { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 3 3 10.5V21h6v-6h6v6h6V10.5L12 3Zm0 2.6 7 5.8V19h-2v-6H7v6H5v-7.6l7-5.8Z'/%3E%3C/svg%3E"); }
.icon-card { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 5h18v14H3V5Zm2 2v2h14V7H5Zm0 5v5h14v-5H5Zm2 2h5v2H7v-2Z'/%3E%3C/svg%3E"); }
.icon-flow { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M7 4a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm10 10a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM7 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2Zm10 10a1 1 0 1 1 0 2 1 1 0 0 1 0-2ZM5 14h4v2H5v3H3v-8h2v3Zm14-9h2v8h-2v-3h-4V8h4V5ZM9.7 9.3l4.9 4.9-1.4 1.4-4.9-4.9 1.4-1.4Z'/%3E%3C/svg%3E"); }
.icon-box { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='m12 2 9 4.5v11L12 22l-9-4.5v-11L12 2Zm0 2.2L6.2 7 12 9.8 17.8 7 12 4.2ZM5 8.6v7.7l6 3v-7.7l-6-3Zm8 10.7 6-3V8.6l-6 3v7.7Z'/%3E%3C/svg%3E"); }
.icon-doc { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M6 2h9l5 5v15H6V2Zm8 2H8v16h10V8h-4V4Zm1 1.4V6h1.6L15 4.4ZM10 11h6v2h-6v-2Zm0 4h6v2h-6v-2Z'/%3E%3C/svg%3E"); }
.icon-gear { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M19.4 13.5c.1-.5.1-1 .1-1.5s0-1-.1-1.5l2-1.5-2-3.5-2.4 1a8 8 0 0 0-2.6-1.5L14 2h-4l-.4 2.5A8 8 0 0 0 7 6L4.6 5 2.6 8.5l2 1.5c-.1.5-.1 1-.1 1.5s0 1 .1 1.5l-2 1.5 2 3.5 2.4-1a8 8 0 0 0 2.6 1.5L10 22h4l.4-2.5A8 8 0 0 0 17 18l2.4 1 2-3.5-2-1.5ZM12 8a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z'/%3E%3C/svg%3E"); }
.icon-refresh { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M17.7 6.3A8 8 0 0 0 4 12H2a10 10 0 0 1 17.1-7.1L21 3v6h-6l2.7-2.7ZM6.3 17.7A8 8 0 0 0 20 12h2A10 10 0 0 1 4.9 19.1L3 21v-6h6l-2.7 2.7Z'/%3E%3C/svg%3E"); }
.icon-upload { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z'/%3E%3C/svg%3E"); }
.icon-plus { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M11 4h2v7h7v2h-7v7h-2v-7H4v-2h7V4Z'/%3E%3C/svg%3E"); }
.icon-calendar { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M7 2h2v3h6V2h2v3h4v17H3V5h4V2Zm12 8H5v10h14V10ZM5 7v1h14V7H5Zm2 5h3v3H7v-3Zm5 0h3v3h-3v-3Z'/%3E%3C/svg%3E"); }
.icon-cart { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M7 18a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4ZM4.2 4H2V2h3.8l1.1 4H22l-2.2 8H8.5l.5 2h11v2H7.4L4.2 4Zm3.3 4 1.1 4h9.7l1.1-4H7.5Z'/%3E%3C/svg%3E"); }
.icon-file { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M6 2h9l5 5v15H6V2Zm8 2H8v16h10V8h-4V4Zm-4 8h6v2h-6v-2Zm0 4h6v2h-6v-2Z'/%3E%3C/svg%3E"); }
.icon-folder { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 5h7l2 2h9v12H3V5Zm2 2v10h14V9h-7.8l-2-2H5Z'/%3E%3C/svg%3E"); }
.icon-warning { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2 1 21h22L12 2Zm0 4 7.5 13h-15L12 6Zm-1 4h2v5h-2v-5Zm0 6h2v2h-2v-2Z'/%3E%3C/svg%3E"); }
.icon-copy { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M8 2h11v14h-3v6H5V8h3V2Zm2 6h6v6h1V4h-7v4Zm-3 2v10h7V10H7Z'/%3E%3C/svg%3E"); }
.icon-pulse { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M13 3 8.8 14H3v-2h4.4L12 0l4.2 12H21v2h-6.2L13 3Zm-2 15h2v2h-2v-2Z'/%3E%3C/svg%3E"); }
.icon-clock { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm1 4h-2v5l4 3 1.2-1.6-3.2-2.4V8Z'/%3E%3C/svg%3E"); }
.icon-search { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M10 3a7 7 0 0 1 5.3 11.6l4 4-1.4 1.4-4-4A7 7 0 1 1 10 3Zm0 2a5 5 0 1 0 0 10 5 5 0 0 0 0-10Z'/%3E%3C/svg%3E"); }
.icon-edit { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 17.3V21h3.7L18.8 9.9l-3.7-3.7L4 17.3ZM17 4.3l2.7 2.7 1.2-1.2a1 1 0 0 0 0-1.4l-1.3-1.3a1 1 0 0 0-1.4 0L17 4.3Z'/%3E%3C/svg%3E"); }
.icon-trash { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M9 3h6l1 2h5v2H3V5h5l1-2Zm-3 6h12l-1 12H7L6 9Zm3 2 .5 8h2L11 11H9Zm4 0-.5 8h2l.5-8h-2Z'/%3E%3C/svg%3E"); }
.icon-close { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='m6.4 5 5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6L6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5Z'/%3E%3C/svg%3E"); }
.icon-filter { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 5h18v2H3V5Zm4 6h10v2H7v-2Zm3 6h4v2h-4v-2Z'/%3E%3C/svg%3E"); }

.main {
  margin-left: 300px;
  padding: 34px 42px;
}

.shell {
  width: 100%;
  max-width: 1780px;
  margin: 0 auto;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}

.app-topbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(360px, 560px) minmax(220px, 1fr);
  grid-template-areas: "main actions user";
  align-items: flex-start;
  gap: 18px 24px;
  position: relative;
}

.topbar-main {
  grid-area: main;
  min-width: 0;
}

.app-breadcrumbs {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  min-height: 20px;
  margin-bottom: 10px;
  color: #7f8da8;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
}

.app-breadcrumbs a {
  color: #9aa8c2;
  text-decoration: none;
  transition: color .15s ease;
}

.app-breadcrumbs a:hover,
.app-breadcrumbs a:focus {
  color: #eef3ff;
}

.app-breadcrumbs span {
  color: #4b5870;
}

.app-breadcrumbs strong {
  color: #f6f7fb;
  font-weight: 900;
}

h1, h2, p { margin: 0; }
h1 { font-size: 36px; letter-spacing: 0; }
h2 { font-size: 21px; letter-spacing: 0; }
.topbar p { font-size: 16px; margin-top: 6px; }

.top-actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  min-width: 0;
  width: 100%;
  justify-self: center;
  align-self: start;
}

.top-period-control {
  display: flex;
  position: relative;
  align-items: center;
  gap: 10px;
  width: min(100%, 560px);
  max-width: 100%;
  flex: 0 1 560px;
  min-height: 50px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid rgba(148, 163, 184, .24);
  border-radius: 0;
  color: #e5edf8;
  background: transparent;
  box-shadow: none;
}

body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-top-period,
body.app-shell[data-active="/financeiro/conciliacao"] .conciliacao-top-period,
body.app-shell[data-active="/financeiro/pre-fechamento"] .pre-fechamento-top-period,
body.app-shell[data-active="/financeiro/contas-a-pagar"] .contas-pagar-top-period,
body.app-shell[data-active="/financeiro/recebimentos/plataformas/ifood"] .ifood-top-period,
body.app-shell[data-active="/financeiro/relatorios/makro"] .makro-top-period,
body.app-shell[data-active="/xml-compras"] .xml-compras-top-period,
body.app-shell[data-active="/xml-vendas"] .xml-vendas-top-period,
body.app-shell[data-active="/xml-servicos"] .xml-servicos-top-period {
  flex: 0 1 560px;
  z-index: 30;
}

body.app-shell[data-active="/xml-servicos"] .folder-bar-info span {
  display: none;
}

.top-period-icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  color: #38bdf8;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.top-period-body {
  display: grid;
  gap: 4px;
  min-width: 0;
  flex: 1;
}

.top-period-label {
  color: #a7b2c3;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
}

.top-period-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.top-period-arrow {
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 6px;
  color: #aeb8c7;
  background: transparent;
  font-family: inherit;
  font-size: 0;
  line-height: 0;
  text-decoration: none;
  cursor: pointer;
}

.top-period-arrow::before {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(135deg);
}

.top-period-arrow[data-top-period-shift="1"]::before,
.top-period-arrow[aria-label="Proximo mes"]::before {
  transform: rotate(-45deg);
}

.top-period-arrow:hover,
.top-period-arrow:focus {
  color: #fff;
  background: rgba(148, 163, 184, .12);
}

.top-period-control input,
.top-period-control select {
  display: block;
  height: 24px;
  min-height: 24px;
  border: 0;
  border-radius: 0;
  padding: 0;
  color: #f8fafc;
  background: transparent;
  box-shadow: none;
  font-weight: 800;
}

.top-period-control input[type="date"] {
  width: 124px;
  color-scheme: dark;
}

.top-period-control input[type="date"]::-webkit-calendar-picker-indicator {
  width: 17px;
  height: 17px;
  margin-left: 4px;
  cursor: pointer;
  opacity: 1;
  filter: invert(71%) sepia(85%) saturate(2121%) hue-rotate(164deg) brightness(101%) contrast(97%);
}

.top-period-control select {
  width: 86px;
  font-weight: 800;
}

.top-period-control input:focus,
.top-period-control select:focus {
  outline: 2px solid rgba(139, 92, 246, .45);
  outline-offset: 2px;
}

.top-period-separator {
  color: #9aa8c2;
  font-size: 14px;
}

.user-profile-menu {
  grid-area: user;
  justify-self: end;
  position: relative;
  z-index: 80;
  padding-left: 14px;
  border-left: 1px solid rgba(148, 163, 184, .16);
}

.active-company-context {
  display: grid;
  gap: 2px;
  margin: 0 0 8px 2px;
  color: #f4f0ff;
  text-decoration: none;
}

.active-company-context small {
  color: #8f9bb0;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.active-company-context strong {
  max-width: 230px;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-profile-trigger {
  display: inline-grid;
  grid-template-columns: 36px minmax(116px, auto) 14px;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  max-width: 260px;
  padding: 0 2px;
  border: 0;
  border-radius: 0;
  color: #eef3ff;
  text-decoration: none;
  background: transparent;
  box-shadow: none;
  transition: opacity .15s ease;
}

.user-profile-trigger:hover,
.user-profile-trigger:focus {
  opacity: .9;
  background: transparent;
  box-shadow: none;
}

.user-avatar {
  position: relative;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  overflow: hidden;
  border: 1px solid rgba(226, 232, 240, .22);
  border-radius: 999px;
  color: #dfe8ff;
  font-size: 12px;
  font-weight: 900;
  background:
    radial-gradient(circle at 35% 25%, rgba(255, 255, 255, .28), transparent 26%),
    linear-gradient(135deg, rgba(87, 99, 125, .78), rgba(30, 41, 59, .92));
}

.user-avatar-initials {
  position: relative;
  z-index: 1;
}

.user-avatar img {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.user-profile-text {
  display: grid;
  gap: 2px;
  min-width: 0;
  line-height: 1.1;
}

.user-profile-text strong,
.user-profile-text small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-profile-text strong {
  color: #f8fafc;
  font-size: 14px;
  font-weight: 900;
}

.user-profile-text small {
  color: #9eabc4;
  font-size: 12px;
  font-weight: 700;
}

.user-chevron {
  color: #b9c4da;
  font-size: 13px;
  font-weight: 900;
}

.user-profile-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  display: none;
  width: 218px;
  padding: 8px;
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 8px;
  background: rgba(12, 18, 34, .98);
  box-shadow: 0 22px 50px rgba(0, 0, 0, .38);
}

body.app-shell[data-active^="/fiscal"] .app-topbar {
  grid-template-columns: minmax(260px, 1fr) minmax(0, 1fr);
  grid-template-areas: "main actions";
}
.company-session-switcher { margin: 0 0 8px 2px; }
.company-session-switcher label { display: grid; gap: 3px; }
.company-session-switcher label > span { color: #8f9bb0; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.company-session-switcher select { width: 230px; min-height: 32px; padding: 5px 28px 5px 8px; border-radius: 7px; font-size: 11px; }
.mobile-company-switcher { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(139, 92, 246, .28); border-radius: 10px; background: rgba(139, 92, 246, .08); }
.mobile-company-switcher label { color: #aeb8cc; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.mobile-company-switcher select { width: 100%; min-height: 42px; }

.user-profile-dropdown::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: 12px;
}

.user-profile-menu:hover .user-profile-dropdown,
.user-profile-menu:focus-within .user-profile-dropdown {
  display: grid;
  gap: 4px;
}

.user-profile-dropdown a,
.user-profile-dropdown button {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 38px;
  padding: 9px 10px;
  border: 0;
  border-radius: 6px;
  color: #dce6fa;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  text-align: left;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
}

.user-profile-section-label {
  padding: 5px 10px 3px;
  color: #77839d;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.user-profile-dropdown .user-context-action {
  gap: 9px;
  margin: 3px 0;
  border-top: 1px solid rgba(148, 163, 184, .14);
  border-bottom: 1px solid rgba(148, 163, 184, .14);
  border-radius: 0;
  color: #d8ccff;
}

.user-profile-dropdown .user-context-action .nav-icon {
  width: 17px;
  height: 17px;
}

.user-profile-dropdown a:hover,
.user-profile-dropdown a:focus,
.user-profile-dropdown button:hover,
.user-profile-dropdown button:focus {
  color: #fff;
  background: rgba(124, 58, 237, .22);
}

.user-profile-dropdown form {
  margin: 0;
}

.sidebar nav [hidden],
.user-profile-dropdown [hidden] {
  display: none !important;
}

.admin-billing-page { display: grid; gap: 16px; }
.admin-billing-notice { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid rgba(245, 158, 11, .3); border-radius: 12px; color: #f8d48a; background: rgba(120, 53, 15, .12); }
.admin-billing-notice .nav-icon { width: 20px; height: 20px; }
.admin-billing-notice div { display: grid; gap: 3px; }
.admin-billing-notice small { color: #b9a98d; }
.admin-billing-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.admin-billing-metrics article { display: grid; min-height: 104px; padding: 15px; border: 1px solid #273047; border-radius: 12px; background: linear-gradient(145deg, #121827, #0d1321); }
.admin-billing-metrics small { color: #94a3b8; font-size: 11px; font-weight: 700; }
.admin-billing-metrics strong { margin: 5px 0 2px; font-size: 28px; line-height: 1; }
.admin-billing-metrics span { color: #7f8ba3; font-size: 11px; }
.admin-billing-metrics .is-success { border-color: rgba(34, 197, 94, .36); }
.admin-billing-metrics .is-success strong { color: #4ade80; }
.admin-billing-metrics .is-pending { border-color: rgba(245, 158, 11, .36); }
.admin-billing-metrics .is-pending strong { color: #fbbf24; }
.admin-billing-metrics .is-danger { border-color: rgba(244, 63, 94, .42); }
.admin-billing-metrics .is-danger strong { color: #fb7185; }
.admin-billing-header { align-items: end; gap: 20px; }
.admin-billing-filters { display: grid; grid-template-columns: minmax(220px, 1fr) 160px auto; align-items: end; gap: 9px; width: min(640px, 100%); }
.admin-billing-filters label { display: grid; gap: 5px; }
.admin-billing-filters label > span { color: #8f9bb0; font-size: 11px; font-weight: 700; }
.admin-billing-filters input,.admin-billing-filters select { min-height: 40px; }
.admin-billing-filters button { min-height: 40px; gap: 7px; }
.admin-billing-filters button .nav-icon { width: 16px; height: 16px; }
.admin-billing-table table { min-width: 1180px; }
.admin-billing-table td { vertical-align: middle; }
.admin-billing-table td strong,.admin-billing-table td small { display: block; }
.admin-billing-table td small { max-width: 230px; margin-top: 4px; overflow: hidden; color: #8390a9; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admin-billing-table code { display: block; max-width: 145px; overflow: hidden; color: #c4b5fd; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.admin-billing-table tr.has-alert { background: rgba(127, 29, 29, .12); }
.billing-status { display: inline-flex; padding: 5px 8px; border: 1px solid #35405a; border-radius: 999px; color: #cbd5e1; background: #172033; font-size: 10px; font-weight: 800; }
.billing-status.is-pago { border-color: rgba(34, 197, 94, .35); color: #86efac; background: rgba(22, 101, 52, .22); }
.billing-status.is-aguardando { border-color: rgba(245, 158, 11, .35); color: #fde68a; background: rgba(120, 53, 15, .22); }
.billing-status.is-vencido,.billing-status.is-inconsistente { border-color: rgba(244, 63, 94, .4); color: #fda4af; background: rgba(127, 29, 29, .24); }
.billing-critical { color: #fb7185 !important; font-weight: 800; }
.admin-billing-empty { display: grid; justify-items: center; gap: 5px; padding: 28px; color: #94a3b8; }
.admin-billing-empty strong { color: #e2e8f0; }

@media (max-width: 1100px) {
  .admin-billing-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-billing-header { align-items: stretch; flex-direction: column; }
  .admin-billing-filters { width: 100%; }
}

@media (max-width: 640px) {
  .admin-billing-metrics { grid-template-columns: 1fr 1fr; }
  .admin-billing-metrics article:first-child { grid-column: 1 / -1; }
  .admin-billing-filters { grid-template-columns: 1fr; }
  body.app-shell[data-active^="/administracao/"] .main { padding: 18px 12px 92px; }
  body.app-shell[data-active^="/administracao/"] .shell { width: 100%; min-width: 0; }
  body.app-shell[data-active^="/administracao/"] .topbar { margin-bottom: 14px; }
  body.app-shell[data-active^="/administracao/"] .topbar-main h1 { font-size: 25px; }
  body.app-shell[data-active^="/administracao/"] .top-actions { width: 100%; }
  body.app-shell[data-active^="/administracao/"] .top-actions a { justify-content: center; width: 100%; }
  .admin-clients-panel,.admin-billing-list { padding: 14px; border-radius: 14px; }
  .admin-clients-panel .panel-header h2,.admin-billing-header h2 { font-size: 18px; }
  .admin-clients-table,.admin-billing-table { overflow: visible; border: 0; }
  .admin-clients-table table,.admin-billing-table table { display: block; min-width: 0; width: 100%; }
  .admin-clients-table thead,.admin-billing-table thead { display: none; }
  .admin-clients-table tbody,.admin-billing-table tbody { display: grid; gap: 12px; width: 100%; }
  .admin-clients-table tr,.admin-billing-table tr { display: grid; width: 100%; overflow: hidden; border: 1px solid #2a344b; border-radius: 13px; background: #101727; box-shadow: inset 3px 0 0 rgba(124, 58, 237, .75); }
  .admin-clients-table td,.admin-billing-table td { display: grid; grid-template-columns: minmax(108px, 36%) minmax(0, 1fr); align-items: center; gap: 10px; min-height: 45px; padding: 10px 12px; border: 0; border-bottom: 1px solid #252e43; overflow-wrap: anywhere; }
  .admin-clients-table td:last-child,.admin-billing-table td:last-child { border-bottom: 0; }
  .admin-clients-table td::before,.admin-billing-table td::before { content: attr(data-label); color: #8996b0; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
  .admin-clients-table td:first-child,.admin-billing-table td:first-child { grid-template-columns: 1fr; gap: 3px; min-height: 62px; padding-left: 14px; }
  .admin-clients-table td:first-child::before,.admin-billing-table td:first-child::before { color: #67e8f9; }
  .admin-clients-table td strong,.admin-billing-table td strong { min-width: 0; }
  .admin-clients-table td small,.admin-billing-table td small { max-width: 100%; white-space: normal; }
  .admin-billing-table code { max-width: 100%; }
  .admin-billing-table .ghost { justify-content: center; width: 100%; }
  .admin-billing-notice { align-items: flex-start; }
  .admin-billing-notice small { line-height: 1.4; }
  body.app-shell[data-active^="/administracao/"] .mobile-bottom-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; padding-inline: 4px; }
  body.app-shell[data-active^="/administracao/"] .mobile-bottom-nav a { min-width: 0; padding-inline: 2px; }
  body.app-shell[data-active^="/administracao/"] .mobile-bottom-nav strong { font-size: 9px; }
  body.app-shell[data-active^="/administracao/"] .mobile-context-form { display: contents; }
  body.app-shell[data-active^="/administracao/"] .mobile-context-form button { min-width: 0; padding-inline: 2px; }
}

.status-pill {
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(17, 21, 34, .76);
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 15px;
}

.base-folder-bar {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 24px;
  padding: 24px;
  border: 1px solid rgba(124, 58, 237, .28);
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(124, 58, 237, .16), transparent 36%),
    linear-gradient(180deg, rgba(21, 26, 43, .96), rgba(12, 16, 28, .96));
  box-shadow: 0 18px 46px rgba(0, 0, 0, .22);
}

.base-folder-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.folder-bar-info {
  flex: 1 1 300px;
}

.folder-bar-actions {
  display: flex;
  justify-content: flex-end;
  flex: 0 0 auto;
}

.base-folder-process {
  min-height: 48px;
  padding: 0 18px;
  white-space: nowrap;
}

.base-folder-process .btn-icon {
  display: inline-block;
}

.base-folder-bar strong {
  display: block;
  font-size: 18px;
  color: #ffffff;
  margin-bottom: 6px;
  font-weight: 700;
}

.base-folder-bar span {
  display: block;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.4;
}

.folder-bar-local {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}

.local-path-wrapper {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.local-path-label {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.base-folder-bar input#base-pasta-global {
  width: 340px;
  padding: 11px 14px;
  background: #0d111d;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--text);
  font-size: 14px;
}

.local-buttons {
  display: flex;
  gap: 10px;
}

.folder-bar-uploaders {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
}

.upload-inline-form {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
}

.base-folder-bar .file-picker {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(13, 17, 29, .72);
  color: var(--text);
  cursor: pointer;
  position: relative;
  flex: 1;
  min-height: 60px;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.base-folder-bar .file-picker:hover {
  border-color: rgba(168, 85, 247, .55);
  background: rgba(124, 58, 237, 0.05);
}

.base-folder-bar .file-picker-icon {
  display: inline-block;
  width: 28px;
  height: 28px;
  color: var(--purple-2);
  flex-shrink: 0;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.base-folder-bar .folder-picker .file-picker-icon {
  color: var(--ok);
}

.base-folder-bar .file-picker-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.base-folder-bar .file-picker-text strong {
  font-size: 14px;
  color: var(--text);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.base-folder-bar .file-picker-selected-label {
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.base-folder-bar .file-picker input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0 !important;
  cursor: pointer;
}

.dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 16px rgba(34, 197, 94, .6);
}

.sidebar-bottom {
  flex: 0 0 auto;
  margin-top: 12px;
  display: grid;
  gap: 14px;
}

.system-card {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(21, 26, 43, .95), rgba(13, 17, 29, .95));
}

.system-card strong { display: block; font-size: 13px; }
.system-card small { color: #4ade80; margin-top: 5px; display: block; }

.fiscal-sidebar-context {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #2b3449;
  border-radius: 13px;
  background: linear-gradient(180deg, rgba(18, 24, 40, .98), rgba(10, 14, 26, .98));
}

.fiscal-sidebar-company {
  position: relative;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 2px 3px 9px;
  border-bottom: 1px solid rgba(148, 163, 184, .16);
}

.fiscal-sidebar-company-logo {
  position: absolute;
  top: 1px;
  right: 2px;
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  overflow: hidden;
  border: 1px solid #6d28d9;
  border-radius: 10px;
  background: #0b1120;
  color: #c4b5fd;
  font-size: 11px;
  font-weight: 850;
  text-decoration: none;
}

.fiscal-sidebar-company-logo img { position: absolute; width: 100%; height: 100%; object-fit: contain; background: #fff; }
.fiscal-sidebar-company > strong { padding-right: 50px; }

.fiscal-sidebar-company > span {
  color: #929db3;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fiscal-sidebar-company > strong {
  overflow: hidden;
  color: #f7f3ff;
  font-size: 13px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fiscal-sidebar-company form { margin: 0; padding-right: 50px; }
.fiscal-sidebar-company select {
  width: 100%;
  min-height: 38px;
  padding: 7px 30px 7px 9px;
  border: 1px solid #37445f;
  border-radius: 8px;
  color: #f8fafc;
  background: #0b1120;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
}

.fiscal-sidebar-account { position: relative; }
.fiscal-sidebar-account > summary {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 9px;
  min-height: 48px;
  padding: 3px;
  border-radius: 9px;
  cursor: pointer;
  list-style: none;
}

.fiscal-sidebar-account > summary::-webkit-details-marker { display: none; }
.fiscal-sidebar-account > summary:hover,
.fiscal-sidebar-account > summary:focus { background: rgba(124, 58, 237, .13); }
.fiscal-sidebar-account[open] .user-chevron { transform: rotate(180deg); }

.fiscal-hide-homologation .fiscal-environment-switch { display: none !important; }

.fiscal-team-person { display: flex; align-items: center; gap: 12px; }
.fiscal-team-person h3 { display: grid; gap: 3px; margin: 0; }
.fiscal-team-avatar { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; overflow: hidden; border: 1px solid #46536c; border-radius: 50%; background: linear-gradient(145deg,#27344b,#111827); color: #e9ddff; font-size: 12px; font-weight: 850; }
.fiscal-team-avatar img { width: 100%; height: 100%; object-fit: cover; }
.fiscal-team-photo-form { grid-template-columns: minmax(260px,1fr) auto; align-items: end; }
.fiscal-team-photo-form label { margin: 0; }
@media (max-width: 700px) { .fiscal-team-photo-form { grid-template-columns: 1fr; } }

.fiscal-sidebar-account-menu {
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  left: 0;
  z-index: 100;
  display: grid;
  gap: 3px;
  padding: 7px;
  border: 1px solid #3a4660;
  border-radius: 10px;
  background: #0c1222;
  box-shadow: 0 18px 44px rgba(0, 0, 0, .42);
}

.fiscal-sidebar-account-menu a,
.fiscal-sidebar-account-menu button {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 38px;
  padding: 9px 10px;
  border: 0;
  border-radius: 7px;
  color: #dce6fa;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.fiscal-sidebar-account-menu a:hover,
.fiscal-sidebar-account-menu a:focus,
.fiscal-sidebar-account-menu button:hover,
.fiscal-sidebar-account-menu button:focus { color: #fff; background: rgba(124, 58, 237, .22); transform: none; }
.fiscal-sidebar-account-menu form { margin: 0; }

.mobile-app-home,
.mobile-product-search,
.mobile-app-header,
.mobile-bottom-nav,
.mobile-menu-backdrop,
.mobile-menu-sheet,
.mobile-filter-trigger,
.mobile-filter-close {
  display: none;
}

.actions, .panel-head, .command-row, .filters {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.actions { margin-bottom: 16px; }
.actions.inline { margin: 0; }
.panel-head { justify-content: space-between; margin-bottom: 18px; }

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 22px;
}

.cards.compact {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.cards.compact .card {
  min-width: 0;
  padding: 18px 20px;
}

.cards.compact .card span {
  font-size: 13px;
}

.cards.compact .card strong {
  font-size: 22px;
}
.dashboard-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.card, .panel {
  background: linear-gradient(180deg, rgba(21, 26, 43, .98), rgba(15, 18, 30, .98));
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 20px 55px rgba(0, 0, 0, .28);
}

.card { padding: 24px; }
.card span { display: block; color: var(--muted); font-size: 15px; margin-bottom: 9px; }
.card strong { font-size: 28px; }
.panel { padding: 22px; margin-bottom: 20px; }

.metric-link {
  color: var(--text);
  text-decoration: none !important;
  display: block;
  cursor: pointer;
}

.metric-link:visited,
.metric-link:hover,
.metric-link:focus,
.metric-link span,
.metric-link strong {
  color: inherit;
  text-decoration: none !important;
}

.metric-link.active,
.metric-link:hover {
  border-color: rgba(168, 85, 247, .55);
  box-shadow: 0 0 0 1px rgba(168, 85, 247, .22), 0 20px 55px rgba(0, 0, 0, .28);
}

.metric {
  min-height: 150px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  overflow: hidden;
  gap: 18px;
}

.metric::after {
  content: "";
  position: absolute;
  inset: auto -20px -48px auto;
  width: 145px;
  height: 145px;
  border-radius: 50%;
  background: currentColor;
  opacity: .07;
  pointer-events: none;
  z-index: 0;
}

.metric-content {
  position: relative;
  z-index: 2;
  min-width: 0;
  flex: 1;
  color: #f8f9ff;
}

.metric .metric-label {
  display: block;
  color: currentColor;
  opacity: .88;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
}

.metric .metric-value {
  display: block;
  color: #ffffff;
  font-size: 32px;
  line-height: 1.12;
  margin: 0 0 9px;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .35);
  overflow-wrap: anywhere;
}

.metric .metric-hint {
  display: block;
  color: #d5daec;
  font-size: 15px;
}

.metric.purple { color: #c084fc; background: linear-gradient(135deg, rgba(35, 20, 59, .98), rgba(17, 21, 34, .98)); }
.metric.green { color: #4ade80; background: linear-gradient(135deg, rgba(17, 34, 30, .98), rgba(17, 21, 34, .98)); }
.metric.blue { color: #60a5fa; background: linear-gradient(135deg, rgba(17, 27, 46, .98), rgba(17, 21, 34, .98)); }
.metric.orange { color: #f59e0b; background: linear-gradient(135deg, rgba(45, 31, 17, .98), rgba(17, 21, 34, .98)); }

.metric-icon {
  position: relative;
  z-index: 1;
  width: 70px;
  height: 70px;
  border-radius: 22px;
  color: currentColor;
  background: currentColor;
  box-shadow: 0 0 35px color-mix(in srgb, currentColor 35%, transparent);
  opacity: .95;
}

.mini-metric strong { font-size: 26px; }
.dashboard-mid { align-items: stretch; }

.xml-vendas-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}

.xml-vendas-section-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label value"
    "hint value";
  align-items: center;
  gap: 3px 14px;
  padding: 16px 18px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
  background: linear-gradient(180deg, rgba(18, 24, 40, .9), rgba(12, 17, 30, .88));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.xml-vendas-section-card:hover,
.xml-vendas-section-card:focus-visible {
  border-color: rgba(168, 85, 247, .62);
  background: linear-gradient(180deg, rgba(34, 27, 62, .92), rgba(15, 21, 36, .9));
  transform: translateY(-1px);
  outline: none;
}

.xml-vendas-section-card span {
  grid-area: label;
  color: #eef2ff;
  font-size: 15px;
  font-weight: 900;
}

.xml-vendas-section-card strong {
  grid-area: value;
  min-width: 48px;
  color: #f8fafc;
  font-size: 24px;
  text-align: right;
}

.xml-vendas-section-card small {
  grid-area: hint;
  color: var(--muted);
  font-size: 12px;
}

.xml-vendas-lista {
  scroll-margin-top: 18px;
}

.xml-vendas-lista .panel-head {
  align-items: flex-start;
  gap: 16px;
}

.xml-vendas-lista .panel-head h2 {
  margin-bottom: 4px;
}

.xml-vendas-lista .panel-head .ghost.small {
  margin-left: auto;
  white-space: nowrap;
}

.col-pagamento strong {
  display: block;
  color: #f7f3ff;
  margin-bottom: 5px;
}

.col-pagamento .tag {
  display: inline-flex;
}

.title-icon {
  display: flex;
  align-items: center;
  gap: 12px;
}

.mini-icon {
  width: 38px;
  height: 38px;
  padding: 10px;
  border-radius: 14px;
  color: #c084fc;
  background: #2b1b52;
}

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

button, .ghost, .primary {
  border: 0;
  border-radius: 11px;
  padding: 13px 19px;
  font: inherit;
  font-size: 16px;
  cursor: pointer;
  text-decoration: none;
}

.primary {
  color: white;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
  display: inline-flex;
  align-items: center;
  gap: 9px;
  box-shadow: 0 12px 30px rgba(124, 58, 237, .24);
}

.ghost {
  color: var(--text);
  background: #1b2135;
  border: 1px solid var(--line);
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

button:hover, .ghost:hover, .primary:hover { filter: brightness(1.08); transform: translateY(-1px); }

.small { padding: 9px 13px; font-size: 14px; }

input, select {
  width: 100%;
  min-width: 180px;
  padding: 13px 14px;
  color: var(--text);
  background: #0d111d;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: 15px;
}

.premium-filters, .section-toolbar { margin-bottom: 16px; }

label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 13px;
}

label.check {
  display: flex;
  align-items: center;
  color: var(--text);
}

label.check input { width: auto; min-width: auto; }

.settings-form { display: grid; gap: 14px; }

.table-wrap {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.table-card .table-wrap {
  overflow-x: hidden;
}

table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
  font-size: 15px;
}

.table-card table {
  min-width: 0;
}

th, td {
  padding: 14px 15px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

th {
  position: sticky;
  top: 0;
  background: #171c2e;
  color: #cdd3ea;
  font-size: 14px;
  font-weight: 700;
}

td { color: #e7eafd; }
tr:hover td { background: rgba(124, 58, 237, .06); }
.num { text-align: right; }
.access-key {
  max-width: 260px;
  font-family: "Consolas", "Courier New", monospace;
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  color: var(--muted);
}
.empty { color: var(--muted); text-align: center; }
.empty.soft { text-align: left; padding: 18px; }

.empty-state {
  display: grid;
  place-items: center;
  min-height: 76px;
  padding: 18px;
  color: #b9c1d8;
  text-align: center;
  border: 1px dashed rgba(148, 163, 184, .25);
  border-radius: 12px;
  background: rgba(13, 17, 29, .58);
}

.status-box {
  display: grid;
  gap: 0;
  padding: 0;
  min-height: 196px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #0d111d;
  overflow: hidden;
}

.status-box div {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  min-height: 42px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(37, 43, 63, .75);
}

.status-box div:last-child { border-bottom: 0; }

.status-box span { color: var(--muted); }
.status-box strong {
  min-width: 0;
  font-weight: 700;
  color: #f5f7ff;
  overflow-wrap: anywhere;
}

.activity-list { display: grid; gap: 14px; }
.activity-item {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 11px 0;
}

.activity-item strong { display: block; }
.activity-item span, .activity-item small { color: var(--muted); }

.activity-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: #21364a;
  position: relative;
}

.activity-icon::after {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 50%;
  background: currentColor;
}

.activity-icon.green { color: #4ade80; background: rgba(34, 197, 94, .18); }
.activity-icon.blue { color: #60a5fa; background: rgba(59, 130, 246, .18); }
.activity-icon.purple { color: #c084fc; background: rgba(124, 58, 237, .2); }
.activity-icon.orange { color: #f59e0b; background: rgba(245, 158, 11, .2); }

.badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
}

.badge.ok, .badge.barato { color: #86efac; background: rgba(22, 163, 74, .24); }
.badge.muted { color: #cbd5e1; background: rgba(71, 85, 105, .32); }
.badge.normal { color: #93c5fd; background: rgba(59, 130, 246, .22); }
.badge.info { color: #93c5fd; background: rgba(59, 130, 246, .18); }
.badge.warn, .badge.caro { color: #fcd34d; background: rgba(245, 158, 11, .22); }
.badge.danger, .badge.muito-caro { color: #fda4af; background: rgba(244, 63, 94, .22); }

.col-financeiro,
.col-baixa {
  min-width: 190px;
  width: 200px;
}

.col-cnpj {
  max-width: 148px;
}

.col-modelo {
  max-width: 82px;
}

.financeiro-cell,
.baixa-resumo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-width: 180px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}

.financeiro-badge,
.baixa-resumo .badge {
  justify-self: start;
  align-self: flex-start;
  margin-bottom: 1px;
  padding: 5px 9px;
  font-size: 12px;
  line-height: 1.1;
}

.financeiro-valores {
  display: grid;
  gap: 3px;
  width: 100%;
}

.financeiro-linha {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  color: #cbd5e1;
  white-space: nowrap;
}

.financeiro-linha strong,
.baixa-resumo strong {
  color: #f8fafc;
  font-weight: 800;
}

.financeiro-ultima {
  justify-content: flex-start;
  color: #94a3b8;
  white-space: normal;
}

.financeiro-btn {
  margin-top: 4px;
  min-height: 34px;
  padding: 7px 12px;
  border-color: rgba(45, 212, 191, .32);
  background: rgba(45, 212, 191, .08);
  color: #b6fff3;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.financeiro-btn:hover {
  background: rgba(45, 212, 191, .16);
  border-color: rgba(45, 212, 191, .48);
}

.financeiro-btn.secondary {
  border-color: rgba(148, 163, 184, .26);
  background: rgba(148, 163, 184, .08);
  color: #dbeafe;
}

.baixa-form-alert {
  padding: 10px 12px;
  border: 1px solid rgba(245, 158, 11, .28);
  border-radius: 10px;
  background: rgba(245, 158, 11, .1);
  color: #fcd34d;
  font-size: 13px;
  line-height: 1.4;
}

.baixa-form-alert a {
  color: #fde68a;
  font-weight: 800;
}

.baixa-classificacao-head {
  display: grid;
  gap: 3px;
  margin-top: 2px;
  padding-top: 12px;
  border-top: 1px solid rgba(148, 163, 184, .16);
}

.baixa-classificacao-head strong {
  color: #f8fafc;
  font-size: 14px;
}

.baixa-classificacao-head small,
.baixa-classificacao-status {
  color: #94a3b8;
  font-size: 12px;
  line-height: 1.4;
}

.baixa-classificacao-status {
  min-height: 34px;
  padding: 8px 10px;
  border: 1px solid rgba(96, 165, 250, .2);
  border-radius: 8px;
  background: rgba(30, 64, 175, .08);
}

.baixa-classificacao-status[data-estado="sugestao"] {
  border-color: rgba(168, 85, 247, .28);
  color: #d8b4fe;
}

.baixa-classificacao-status[data-estado="existente"] {
  border-color: rgba(34, 197, 94, .25);
  color: #86efac;
}

.baixa-modal[hidden] {
  display: none;
}

.baixa-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 20px;
}

.baixa-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, .76);
  backdrop-filter: blur(8px);
}

.baixa-modal-dialog {
  position: relative;
  width: min(640px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  padding: 18px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(18, 25, 48, .98), rgba(8, 13, 28, .98));
  box-shadow: 0 24px 70px rgba(0, 0, 0, .4);
}

.baixa-modal-dialog > .panel-head {
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
}

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

.baixa-form label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: #cbd5e1;
  font-size: 13px;
  font-weight: 800;
}

.baixa-form-full,
.baixa-form-actions {
  grid-column: 1 / -1;
}

.baixa-form textarea {
  resize: vertical;
}

.baixa-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

.baixa-historico-dialog {
  width: min(860px, 100%);
}

.baixas-historico-lista {
  display: grid;
  gap: 10px;
}

.baixa-historico-item {
  display: grid;
  grid-template-columns: 1.2fr .8fr 1fr 1.1fr auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 10px;
  background: rgba(15, 23, 42, .62);
}

.baixa-historico-item span,
.baixa-historico-item small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.baixa-historico-item strong {
  color: #f8fafc;
}

.baixa-historico-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

body.modal-open {
  overflow: hidden;
}

.financeiro-contas-page,
.financeiro-recebimentos-page {
  display: grid;
  gap: 14px;
}

.recebimentos-command-center {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.recebimentos-command-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 104px;
  padding: 16px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 10px;
  color: #e5e7eb;
  text-decoration: none;
  background: rgba(15, 23, 42, .72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
}

.recebimentos-command-card:hover {
  border-color: rgba(124, 58, 237, .55);
  background: rgba(20, 29, 48, .86);
}

.recebimentos-command-card.primary-flow {
  border-color: rgba(139, 92, 246, .6);
  background: linear-gradient(135deg, rgba(88, 28, 135, .34), rgba(15, 23, 42, .82));
}

.recebimentos-command-card .command-icon {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 8px;
  color: #c4b5fd;
  background-color: rgba(124, 58, 237, .16);
}

.recebimentos-command-card strong,
.recebimentos-command-card small {
  display: block;
}

.recebimentos-command-card strong {
  margin-bottom: 4px;
  color: #f8fafc;
  font-size: 14px;
}

.recebimentos-command-card small {
  color: #9ca3af;
  font-size: 12px;
  line-height: 1.35;
}

.recebimentos-command-card b {
  align-self: end;
  padding: 6px 8px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 7px;
  color: #dbeafe;
  background: rgba(15, 23, 42, .62);
  font-size: 11px;
}

.recebimento-form-mode {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}

.recebimento-form-mode span {
  display: block;
  padding: 10px 11px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(15, 23, 42, .52);
}

.recebimento-form-mode strong,
.recebimento-form-mode small {
  display: block;
}

.recebimento-form-mode strong {
  margin-bottom: 3px;
  color: #f8fafc;
  font-size: 12px;
}

.recebimento-form-mode small {
  color: #9aa6bd;
  font-size: 11px;
  line-height: 1.35;
}

.recebiveis-import-page {
  display: grid;
  gap: 10px;
}

.recebiveis-import-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 12px 18px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(37, 99, 235, .12), rgba(126, 34, 206, .12)), var(--panel);
}

.recebiveis-import-hero h2 {
  margin: 4px 0 6px;
  font-size: 23px;
}

.recebiveis-import-hero p {
  max-width: 860px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.recebiveis-import-flow {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 8px;
  align-items: center;
}

.recebiveis-import-flow span {
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: #dbeafe;
  background: rgba(15, 23, 42, .72);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.recebiveis-import-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .8fr);
  gap: 14px;
  align-items: start;
}

.recebiveis-import-workspace {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(430px, 1.05fr);
  gap: 12px;
  align-items: start;
}

.recebiveis-import-stack {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.recebiveis-import-grid.history {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.recebiveis-import-form,
.recebiveis-import-guidance,
.recebiveis-preview-panel {
  border-radius: 12px;
}

.recebiveis-import-card {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
}

.recebiveis-import-card .table-wrap {
  max-width: 100%;
  min-width: 0;
  min-height: 0;
}

.recebiveis-import-card .recebiveis-history-table {
  min-width: 860px;
}

.recebiveis-history-scroll {
  max-height: 252px;
  overflow: auto;
}

.recebiveis-repasses-scroll {
  overflow-x: auto !important;
}

.recebiveis-guidance-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.recebiveis-guidance-list div {
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(15, 23, 42, .54);
}

.recebiveis-guidance-list strong,
.recebiveis-guidance-list span {
  display: block;
}

.recebiveis-guidance-list strong {
  color: #f8fafc;
  margin-bottom: 4px;
  font-size: 13px;
}

.recebiveis-guidance-list span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.recebiveis-preview-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.recebiveis-preview-kpis .mini-metric {
  padding: 12px;
  min-height: 78px;
}

.recebiveis-preview-kpis span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.recebiveis-preview-kpis strong {
  display: block;
  margin-top: 6px;
  color: #f8fafc;
  font-size: 18px;
}

.recebiveis-preview-table,
.recebiveis-history-table {
  min-width: 920px;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.recebiveis-preview-table th,
.recebiveis-preview-table td,
.recebiveis-history-table th,
.recebiveis-history-table td {
  padding: 8px 10px;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
  vertical-align: top;
}

.recebiveis-preview-table th,
.recebiveis-history-table th {
  background: rgba(17, 24, 39, .88);
  color: #dbeafe;
  font-size: 12px;
  text-transform: uppercase;
}

.recebiveis-preview-table td strong,
.recebiveis-history-table td strong {
  display: block;
  color: #f8fafc;
}

.recebiveis-preview-table .num,
.recebiveis-history-table .num {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.recebiveis-import-pagination {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 10px;
  align-items: center;
  padding-top: 12px;
  color: #9fb0c5;
  font-size: 12px;
}

.recebiveis-import-pagination > span {
  grid-column: 1 / -1;
}

.recebiveis-import-page-size {
  margin: 0;
}

.recebiveis-import-page-size label {
  display: flex;
  gap: 8px;
  align-items: center;
  color: #9fb0c5;
  font-size: 12px;
  font-weight: 700;
}

.recebiveis-import-page-size select {
  min-height: 32px;
  padding: 5px 28px 5px 10px;
  border-radius: 6px;
  font-size: 12px;
}

.recebiveis-import-page-nav {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.recebiveis-import-page-nav .table-btn {
  min-height: 32px;
  padding: 6px 9px;
}

.recebiveis-import-page-nav .table-btn:disabled {
  cursor: not-allowed;
  opacity: .45;
}

.platform-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: 10px;
}

.platform-entry-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  color: inherit;
  text-decoration: none;
}

.platform-entry-card.ifood {
  grid-template-columns: minmax(92px, auto) minmax(0, 1fr) auto;
  gap: 18px;
  min-height: 78px;
  padding: 18px 22px;
  border-color: rgba(255, 255, 255, .16);
  background: #ea1d2c;
  box-shadow: 0 18px 42px rgba(234, 29, 44, .18);
}

.platform-entry-card.ifood:hover,
.platform-entry-card.ifood:focus-visible {
  border-color: rgba(255, 255, 255, .34);
  background: #f0192d;
}

.platform-entry-card.ifood strong,
.platform-entry-card.ifood small,
.platform-entry-card.ifood > b {
  color: #fff;
}

.platform-entry-card.ifood small {
  color: rgba(255, 255, 255, .82);
}

.platform-entry-card.ifood > b {
  justify-self: end;
  border: 1px solid rgba(255, 255, 255, .36);
  border-radius: 999px;
  padding: 7px 12px;
  background: rgba(255, 255, 255, .12);
}

.platform-entry-card.muted {
  opacity: .78;
}

.platform-entry-card strong,
.platform-entry-card small {
  display: block;
}

.platform-entry-card strong {
  color: #f8fafc;
  font-size: 15px;
}

.platform-entry-card small {
  color: var(--muted);
  font-size: 12px;
}

.platform-entry-card > b {
  color: #bbf7d0;
  font-size: 12px;
  text-transform: uppercase;
}

.ifood-finance-page {
  display: grid;
  gap: 12px;
}

.ifood-finance-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
}

.ifood-finance-header h2 {
  margin: 4px 0 6px;
  font-size: 24px;
}

.ifood-finance-header p {
  max-width: 900px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.ifood-finance-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.ifood-summary-strip {
  grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.ifood-finance-grid {
  display: grid;
  grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr);
  gap: 12px;
  align-items: stretch;
}

.ifood-accounting-list {
  display: grid;
  gap: 8px;
}

.ifood-accounting-list div {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(15, 23, 42, .54);
}

.ifood-accounting-list span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.ifood-accounting-list strong {
  color: #f8fafc;
  font-variant-numeric: tabular-nums;
}

.ifood-accounting-list .negative strong {
  color: #fecaca;
}

.ifood-accounting-list .positive strong {
  color: #bbf7d0;
}

.ifood-accounting-list .total {
  border-color: rgba(34, 197, 94, .34);
  background: rgba(22, 101, 52, .18);
}

.ifood-deductions-breakdown {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(148, 163, 184, .14);
}

.ifood-deductions-breakdown > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  color: var(--muted);
}

.ifood-deductions-breakdown strong {
  color: #e2e8f0;
  font-variant-numeric: tabular-nums;
}

.ifood-payment-method-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.ifood-payment-method-card {
  width: 100%;
  padding: 10px;
  color: inherit;
  font: inherit;
  text-align: left;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(15, 23, 42, .62);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.ifood-payment-method-card:hover,
.ifood-payment-method-card:focus-visible {
  border-color: rgba(168, 85, 247, .58);
  background: rgba(30, 41, 59, .78);
  transform: translateY(-1px);
  outline: none;
}

.ifood-payment-method-card span,
.ifood-payment-method-card small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.ifood-payment-method-card strong {
  display: block;
  margin: 6px 0 3px;
  color: #f8fafc;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.ifood-payment-method-card em {
  display: inline-flex;
  margin-top: 8px;
  color: #c4b5fd;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.ifood-direct-table,
.ifood-periods-table,
.ifood-conciliation-table {
  min-width: 880px;
}

.ifood-vinculos-panel {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, .16);
}

.ifood-vinculos-panel h3 {
  margin: 0 0 3px;
  color: #f8fafc;
  font-size: 16px;
}

.ifood-vinculos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 8px;
}

.ifood-vinculos-grid article {
  min-height: 78px;
  padding: 10px 12px;
  border: 1px solid rgba(34, 197, 94, .24);
  border-radius: 8px;
  background: rgba(22, 101, 52, .14);
}

.ifood-vinculos-grid article.pending {
  border-color: rgba(245, 158, 11, .28);
  background: rgba(120, 53, 15, .16);
}

.ifood-vinculos-grid span,
.ifood-vinculos-grid strong,
.ifood-vinculos-grid small {
  display: block;
}

.ifood-vinculos-grid span {
  color: #cbd5e1;
  font-size: 12px;
  font-weight: 800;
}

.ifood-vinculos-grid strong {
  margin-top: 6px;
  color: #f8fafc;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.ifood-vinculos-grid small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.ifood-vinculo-makro-hint {
  display: inline-flex;
  width: fit-content;
  margin-top: 8px;
  padding: 3px 7px;
  border: 1px solid rgba(34, 197, 94, .28);
  border-radius: 999px;
  color: #bbf7d0;
  background: rgba(22, 101, 52, .22);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.ifood-vinculo-makro-hint.pending {
  border-color: rgba(245, 158, 11, .34);
  color: #fde68a;
  background: rgba(120, 53, 15, .24);
}

.ifood-vinculo-corte {
  margin-top: 8px !important;
  padding-top: 8px;
  border-top: 1px solid rgba(125, 211, 252, .18);
  color: #bae6fd !important;
  font-size: 10px !important;
  line-height: 1.35;
}

dialog.modal.ifood-diretos-modal {
  width: min(1240px, calc(100vw - 40px));
  max-height: min(88vh, 900px);
  border-radius: 12px;
  border-color: rgba(148, 163, 184, .26);
  background: linear-gradient(145deg, rgba(11, 18, 32, .99), rgba(8, 13, 25, .99));
}

.modal-content.ifood-diretos-dialog {
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: min(88vh, 900px);
}

.ifood-diretos-modal .modal-header {
  align-items: flex-start;
  padding: 18px 22px;
  background: rgba(15, 23, 42, .62);
}

.ifood-diretos-modal .modal-header h3 {
  font-size: 22px;
}

.ifood-diretos-modal .close-modal {
  border-radius: 10px;
  background: rgba(148, 163, 184, .12);
}

.ifood-diretos-modal .modal-footer {
  padding: 14px 18px;
}

.ifood-diretos-body {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  gap: 10px;
  min-height: 0;
  padding: 14px 18px 16px;
  overflow: hidden;
}

.ifood-diretos-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.ifood-diretos-summary article {
  min-height: 62px;
  padding: 11px 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  background: rgba(15, 23, 42, .72);
}

.ifood-diretos-summary span,
.ifood-diretos-summary strong {
  display: block;
}

.ifood-diretos-summary span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.ifood-diretos-summary strong {
  margin-top: 5px;
  color: #f8fafc;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.ifood-link-destinos {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ifood-method-missing-note {
  grid-column: 1 / -1;
  padding: 9px 11px;
  border: 1px solid rgba(245, 158, 11, .28);
  border-radius: 8px;
  color: #fde68a;
  background: rgba(120, 53, 15, .16);
  font-size: 12px;
  font-weight: 800;
}

.ifood-link-destinos span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 7px 9px;
  color: #cbd5e1;
  font-size: 12px;
  font-weight: 800;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(2, 6, 23, .26);
}

.ifood-link-destinos b {
  color: #f8fafc;
}

.ifood-link-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1.2fr) minmax(220px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid rgba(168, 85, 247, .22);
  border-radius: 8px;
  background: rgba(30, 27, 75, .22);
}

.ifood-link-toolbar label {
  margin: 0;
}

.ifood-link-toolbar select,
.ifood-link-toolbar input {
  min-height: 38px;
}

.ifood-diretos-body .table-wrap {
  min-height: 0;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(2, 6, 23, .22);
  overflow: auto;
}

.ifood-diretos-table {
  min-width: 1120px;
  border-collapse: separate;
  border-spacing: 0;
}

.ifood-diretos-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #111827;
}

.ifood-diretos-table td {
  vertical-align: top;
}

.ifood-diretos-table tbody tr:hover td {
  background: rgba(59, 130, 246, .06);
}

.ifood-diretos-table td strong,
.ifood-diretos-table td small {
  display: block;
}

.ifood-diretos-table td:first-child,
.ifood-diretos-table th:first-child {
  width: 42px;
  text-align: center;
}

.ifood-diretos-table td:nth-child(2) {
  min-width: 120px;
}

.ifood-diretos-table td:nth-child(5) {
  min-width: 230px;
}

.ifood-diretos-table td:nth-child(8) {
  min-width: 150px;
}

.ifood-original-line {
  margin-top: 6px;
}

.ifood-original-line summary {
  width: fit-content;
  color: #a78bfa;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.ifood-original-line code {
  display: block;
  max-width: 520px;
  margin-top: 6px;
  padding: 8px;
  color: #dbeafe;
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(2, 6, 23, .42);
}

@media (max-width: 900px) {
  dialog.modal.ifood-diretos-modal {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
  }

  .modal-content.ifood-diretos-dialog {
    max-height: calc(100vh - 16px);
  }

  .ifood-diretos-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ifood-link-toolbar {
    grid-template-columns: 1fr;
  }
}

.ifood-candidate-list {
  display: grid;
  gap: 6px;
  min-width: 250px;
}

.ifood-candidate-list .table-btn {
  justify-content: flex-start;
  text-align: left;
  white-space: normal;
}

.ifood-preview-financeiro {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, .18);
}

.baixa-form [hidden] {
  display: none !important;
}

#baixa-pagador-wrap {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: end;
}

#baixa-pagador-wrap > span {
  grid-column: 1 / -1;
}

#baixa-caminho-ajuda {
  border-color: rgba(56, 189, 248, .28);
  background: rgba(14, 165, 233, .08);
  color: #bae6fd;
}

.financeiro-contas-layout,
.financeiro-recebimentos-layout {
  align-items: start;
}

.financeiro-recebimentos-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .95fr);
  gap: 14px;
}

.recebimentos-side-stack {
  display: grid;
  gap: 14px;
}

.financeiro-recebimentos-page .panel {
  border-radius: 12px;
}

.financeiro-recebimentos-page .panel-head {
  margin-bottom: 14px;
}

.financeiro-recebimentos-page .panel-head h2 {
  margin: 0;
}

.settings-edit-full {
  grid-column: 1 / -1;
}

.financeiro-conta-form textarea,
.financeiro-recebimento-form textarea {
  resize: vertical;
}

.financeiro-conta-actions,
.financeiro-recebimento-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.financeiro-recebimento-actions {
  justify-content: flex-end;
}

.financeiro-contas-table td strong,
.financeiro-recebimentos-table td strong {
  display: block;
  margin-bottom: 4px;
}

.financeiro-contas-table .path-muted,
.financeiro-recebimentos-table .path-muted {
  display: block;
}

.financeiro-recebimentos-resumo {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px;
  margin-bottom: 4px;
}

.financeiro-recebimentos-resumo .card {
  padding: 14px;
}

.recebimento-kpi {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 76px;
}

.recebimento-kpi-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 10px;
  color: #c4b5fd;
  background: rgba(168, 85, 247, .14);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
}

.recebimento-kpi-icon.green {
  color: #86efac;
  background: rgba(34, 197, 94, .14);
}

.recebimento-kpi-icon.blue {
  color: #93c5fd;
  background: rgba(59, 130, 246, .14);
}

.recebimento-kpi-icon.amber {
  color: #fcd34d;
  background: rgba(245, 158, 11, .15);
}

.recebimento-kpi .metric-data {
  min-width: 0;
}

.recebimento-kpi .metric-data span {
  margin: 0 0 4px;
  color: #9aa6bd;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.recebimento-kpi .metric-data strong {
  color: #f8fafc;
  font-size: 20px;
  line-height: 1.15;
}

.financeiro-recebimento-form {
  margin-bottom: 0;
}

.financeiro-recebimento-form .settings-edit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
}

.financeiro-recebimento-form input,
.financeiro-recebimento-form select,
.financeiro-recebimento-form textarea,
.recebimentos-filtros input,
.recebimentos-filtros select {
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 9px;
}

.field-help {
  display: block;
  margin-top: 6px;
  color: #8ea0bb;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}

.financeiro-recebimento-form textarea {
  min-height: 74px;
}

.financeiro-recebimento-form .settings-edit-actions {
  justify-content: flex-end;
  margin-top: 14px;
}

.financeiro-recebimento-modal {
  width: min(820px, calc(100vw - 32px));
}

.financeiro-recebimento-modal .modal-content {
  max-height: calc(100vh - 40px);
}

.financeiro-recebimento-modal .modal-header {
  align-items: flex-start;
}

.financeiro-recebimento-modal .modal-body {
  padding: 16px 18px;
}

.financeiro-recebimento-modal .financeiro-recebimento-form {
  margin: 0;
}

.financeiro-recebimento-modal .settings-edit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
}

.recebimentos-filtros-panel {
  margin-bottom: 0;
}

.recebimentos-filtros {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  align-items: end;
  margin: 0;
}

.recebimentos-filtros label:nth-child(3),
.recebimentos-periodo-label,
.recebimentos-periodo-fields,
.recebimentos-filtros-actions {
  grid-column: 1 / -1;
}

.recebimentos-periodo-label {
  display: block;
  margin-bottom: -6px;
}

.recebimentos-periodo-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.recebimentos-periodo-fields span {
  color: #94a3b8;
}

.recebimentos-filtros-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-start;
}

.recebimentos-table-head {
  align-items: flex-start;
}

.recebimentos-periodo-panel {
  margin-bottom: 0;
}

.recebimentos-periodo-resumo {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.recebimentos-periodo-resumo span {
  display: grid;
  gap: 6px;
  min-height: 88px;
  padding: 14px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 10px;
  background: rgba(15, 23, 42, .46);
}

.recebimentos-periodo-resumo small {
  color: #94a3b8;
  font-size: 12px;
  font-weight: 700;
}

.recebimentos-periodo-resumo b {
  color: #f8fafc;
  font-size: 18px;
  line-height: 1;
}

.recebimentos-periodo-resumo strong {
  color: #e5e7eb;
  font-size: 13px;
}

.recebimentos-periodo-resumo .ok small,
.recebimentos-periodo-resumo .ok b {
  color: #86efac;
}

.recebimentos-periodo-resumo .info small,
.recebimentos-periodo-resumo .info b {
  color: #93c5fd;
}

.recebimentos-periodo-resumo .warn {
  border-color: rgba(245, 158, 11, .35);
}

.recebimentos-periodo-resumo .warn small,
.recebimentos-periodo-resumo .warn b {
  color: #fcd34d;
}

.recebimentos-table-card {
  margin-bottom: 0;
}

.table-card .financeiro-recebimentos-table {
  border-collapse: separate;
  border-spacing: 0;
}

.table-card .financeiro-recebimentos-table th {
  background: #111827;
  color: #dbeafe;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.table-card .financeiro-recebimentos-table td {
  padding-top: 12px;
  padding-bottom: 12px;
}

.financeiro-recebimentos-table tbody tr:hover td {
  background: rgba(59, 130, 246, .06);
}

.financeiro-recebimentos-table .badge {
  border-radius: 999px;
  padding: 5px 9px;
}

.financeiro-recebimentos-table .badge.muted {
  color: #fbbf24;
  background: rgba(245, 158, 11, .16);
}

.financeiro-recebimentos-table td.num {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.table-card .financeiro-recebimentos-table {
  min-width: 980px;
}

.recebimentos-ver-todos {
  display: flex;
  justify-content: center;
  width: fit-content;
  margin: 12px auto 0;
  color: #a78bfa;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.recebimentos-ver-todos:hover {
  color: #c4b5fd;
}

.financeiro-extratos-page {
  display: grid;
  gap: 18px;
}

.financeiro-extratos-layout,
.financeiro-extratos-listas {
  align-items: start;
}

.financeiro-ofx-form input[type="file"] {
  min-height: 44px;
}

.financeiro-extrato-filtros {
  align-items: end;
}

.financeiro-extrato-resumo {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.financeiro-extrato-notas {
  display: grid;
  gap: 10px;
}

.financeiro-extratos-table-wrap,
.financeiro-importacoes-table {
  min-width: 100%;
}

.financeiro-extratos-table {
  min-width: 920px;
}

.financeiro-extratos-table td strong,
.financeiro-importacoes-table td strong {
  display: block;
  margin-bottom: 4px;
}

.extrato-valor,
.extrato-tipo {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  font-weight: 700;
  white-space: nowrap;
}

.extrato-valor.entrada,
.extrato-tipo.entrada {
  color: #86efac;
}

.extrato-valor.saida,
.extrato-tipo.saida {
  color: #fca5a5;
}

.extrato-tipo {
  justify-content: center;
  min-width: 74px;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .58);
  font-size: 12px;
}

.financeiro-conciliacao-page {
  display: grid;
  gap: 18px;
}

.financeiro-hub-page {
  display: grid;
  gap: 18px;
}

.financeiro-hub-cards {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.financeiro-hub-grid,
.financeiro-conciliacao-nav {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.financeiro-conciliacao-nav {
  display: grid;
  gap: 12px;
}

.financeiro-conciliacao-nav .settings-module,
.financeiro-hub-grid .settings-module {
  min-height: 116px;
}

.financeiro-operacao-page {
  display: grid;
  gap: 18px;
}

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

.financeiro-operacao-card {
  display: grid;
  gap: 10px;
  align-content: start;
  min-height: 190px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: inherit;
  text-decoration: none;
}

.financeiro-operacao-card.primary-flow {
  border-color: rgba(99, 102, 241, .45);
  background: linear-gradient(135deg, rgba(99, 102, 241, .18), rgba(15, 23, 42, .92));
}

.financeiro-operacao-card .nav-icon {
  width: 36px;
  height: 36px;
}

.financeiro-operacao-card strong {
  color: var(--text);
  font-size: 20px;
}

.financeiro-operacao-card small {
  color: var(--muted);
  line-height: 1.45;
}

.financeiro-operacao-card b {
  align-self: end;
  color: #c4b5fd;
  font-size: 13px;
}

.financeiro-apoio-row,
.financeiro-context-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.financeiro-apoio-row a,
.financeiro-context-row a,
.financeiro-context-row strong {
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(15, 23, 42, .55);
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.financeiro-context-row strong {
  border-color: rgba(99, 102, 241, .48);
  background: rgba(99, 102, 241, .12);
  color: #ddd6fe;
}

.disabled-card {
  opacity: .78;
}

.financeiro-transferencias-table {
  min-width: 920px;
}

.documentos-pagar-filtros {
  align-items: end;
  margin-bottom: 12px;
}

.documentos-pagar-resumo {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  margin-bottom: 12px;
}

.documentos-pagar-table {
  min-width: 1720px;
}

.documentos-pagar-table td strong {
  display: block;
  margin-bottom: 4px;
}

.documento-identificador {
  display: inline-block;
  max-width: 230px;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
  white-space: nowrap;
}

.documentos-pagar-actions {
  min-width: 260px;
}

.documentos-pagar-detalhes-lista {
  display: grid;
  gap: 10px;
  max-height: 420px;
  overflow: auto;
  padding-right: 4px;
}

.documentos-pagar-detalhes-resumo {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin: 4px 0 18px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--border);
}

.documentos-pagar-detalhes-resumo > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 13px 14px;
  background: var(--panel-2);
}

.documentos-pagar-detalhes-resumo span,
.documentos-pagar-detalhes-head h3 {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.documentos-pagar-detalhes-resumo strong {
  overflow: hidden;
  color: var(--text);
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.documentos-pagar-detalhes-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.documentos-pagar-detalhes-head h3 {
  margin: 0;
  color: var(--text);
  font-size: 14px;
}

@media (max-width: 720px) {
  .documentos-pagar-detalhes-resumo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .documentos-pagar-detalhes-resumo > div:last-child {
    grid-column: 1 / -1;
  }
}

.contas-pagar-page {
  display: grid;
  gap: 16px;
}

.contas-pagar-page.simples {
  gap: 14px;
}

.contas-pagar-periodo {
  display: flex;
  align-items: end;
  gap: 12px;
}

.contas-pagar-periodo label {
  min-width: 300px;
}

.periodo-inline {
  display: grid;
  grid-template-columns: minmax(130px, 1fr) auto minmax(130px, 1fr);
  align-items: center;
  gap: 8px;
}

.contas-pagar-tabs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contas-pagar-resumo {
  grid-template-columns: repeat(5, minmax(150px, 1fr));
}

.contas-pagar-resumo.simples {
  grid-template-columns: repeat(3, minmax(170px, 1fr));
  margin-bottom: 0;
}

.contas-pagar-resumo .mini-metric {
  min-height: 92px;
}

.metric-data small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.contas-pagar-filtros-panel {
  padding: 18px;
}

.contas-pagar-filtros-panel.simples {
  padding: 14px;
}

.contas-pagar-filtros {
  display: grid;
  grid-template-columns: 1fr 1.35fr 1.15fr 1.1fr 1.1fr;
  gap: 14px 16px;
  margin-bottom: 0;
}

.contas-pagar-filtros.simples {
  display: grid;
  grid-template-columns: minmax(260px, 1.6fr) minmax(120px, .7fr) minmax(160px, .9fr) auto;
  gap: 12px;
  align-items: end;
}

.contas-pagar-filtros .checkbox-line {
  align-self: center;
  margin-top: 2px;
}

.contas-pagar-filter-actions {
  grid-column: span 2;
  display: flex;
  justify-content: flex-end;
  align-items: end;
  gap: 10px;
}

.contas-pagar-filter-actions.simples {
  grid-column: auto;
  justify-content: flex-start;
}

.contas-pagar-advanced {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.contas-pagar-advanced summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}

.contas-pagar-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.contas-pagar-table-card {
  padding: 0;
  overflow: hidden;
}

.contas-pagar-table-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}

.contas-pagar-table-toolbar.simples {
  padding: 12px 14px;
}

.table-card .documentos-pagar-table-wrap {
  overflow-x: auto;
}

.contas-pagar-table {
  min-width: 1280px;
}

.contas-pagar-table.simples {
  min-width: 1050px;
}

.contas-pagar-table th,
.contas-pagar-table td {
  padding: 12px 14px;
  vertical-align: middle;
}

.contas-pagar-table td small {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

.contas-pagar-table .documentos-pagar-actions {
  min-width: 360px;
  gap: 6px;
}

.contas-pagar-table.simples .documentos-pagar-actions {
  min-width: 280px;
}

.success-text {
  color: #22c55e !important;
}

@media (max-width: 1100px) {
  .financeiro-operacao-grid,
  .contas-pagar-resumo.simples {
    grid-template-columns: 1fr;
  }

  .contas-pagar-filtros {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contas-pagar-filtros.simples,
  .contas-pagar-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contas-pagar-filter-actions {
    grid-column: 1 / -1;
  }

  .contas-pagar-tabs,
  .contas-pagar-resumo {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .contas-pagar-periodo,
  .contas-pagar-table-toolbar {
    display: grid;
    grid-template-columns: 1fr;
  }

  .contas-pagar-periodo label {
    min-width: 0;
  }

  .periodo-inline {
    grid-template-columns: 1fr;
  }

  .periodo-inline span {
    display: none;
  }

  .contas-pagar-filtros {
    grid-template-columns: 1fr;
  }

  .contas-pagar-filtros.simples,
  .contas-pagar-advanced-grid {
    grid-template-columns: 1fr;
  }
}

.financeiro-conciliacao-filtros {
  align-items: end;
}

.conciliacao-resumo {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.financeiro-conciliacao-table {
  min-width: 1160px;
}

.financeiro-conciliacao-table td strong {
  display: block;
  margin-bottom: 4px;
}

.conciliacao-badge.muted {
  color: #cbd5e1;
  border-color: rgba(148, 163, 184, .25);
  background: rgba(148, 163, 184, .1);
}

.conciliacao-modal-dialog {
  width: min(1040px, 100%);
}

/* Modal individual: caminho principal compacto, opcoes completas sob demanda. */
#modal-conciliacao .conciliacao-modal-dialog {
  display: flex;
  flex-direction: column;
  width: min(780px, calc(100vw - 32px));
  max-height: min(720px, calc(100vh - 32px));
  padding: 18px 20px;
  overflow-y: auto;
}

#modal-conciliacao .panel-head { margin-bottom: 10px; }
#modal-conciliacao .panel-head h2 { margin: 0; font-size: 20px; }
#modal-conciliacao .conciliacao-modal-close { width: 38px; height: 38px; font-size: 24px; }

#modal-conciliacao .conciliacao-extrato-resumo {
  order: 1;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 11px 13px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 7px;
  background: rgba(15, 23, 42, .54);
}

.conciliacao-resumo-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 7px; color: #c4b5fd; background: rgba(124, 58, 237, .18); font-size: 22px; }
.conciliacao-resumo-descricao { display: grid; min-width: 0; gap: 3px; }
.conciliacao-resumo-descricao strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conciliacao-resumo-descricao small,
.conciliacao-resumo-saldo { color: var(--muted); }
.conciliacao-resumo-valor { font-size: 20px; white-space: nowrap; }
.conciliacao-resumo-saldo { display: grid; gap: 2px; font-size: 11px; white-space: nowrap; }
.conciliacao-resumo-saldo strong { color: #e2e8f0; font-size: 13px; }

#modal-conciliacao .conciliacao-sugestoes { order: 2; margin: 0 0 12px; }
#modal-conciliacao .compact-head { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 7px; }
#modal-conciliacao .compact-head p { font-size: 11px; }
#modal-conciliacao .conciliacao-recomendacao-label { display: none; }
#modal-conciliacao .conciliacao-sugestao-item {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 13px 15px;
}
#modal-conciliacao .conciliacao-sugestao-item .sugestao-amount,
#modal-conciliacao .conciliacao-sugestao-item .sugestao-meta { display: none; }
#modal-conciliacao .conciliacao-sugestao-item .primary { min-width: 150px; }
#modal-conciliacao .conciliacao-motivos { margin-top: 7px; }
#modal-conciliacao .conciliacao-motivos span:nth-child(n+4) { display: none; }

#modal-conciliacao .conciliacao-classificacao-unificada { order: 3; margin-bottom: 10px; border-color: rgba(148, 163, 184, .2); background: rgba(15, 23, 42, .45); }
#modal-conciliacao .conciliacao-classificacao-unificada > summary { min-height: 52px; padding: 8px 12px; background: transparent; }
#modal-conciliacao .conciliacao-classificacao-unificada-icon { width: 32px; height: 32px; flex-basis: 32px; }
#modal-conciliacao .conciliacao-classificacao-alterar { pointer-events: none; }

.conciliacao-outras-formas { order: 4; margin-bottom: 10px; border: 1px solid rgba(148, 163, 184, .2); border-radius: 7px; background: rgba(15, 23, 42, .42); }
.conciliacao-outras-formas > summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 0 14px; cursor: pointer; list-style: none; }
.conciliacao-outras-formas > summary::-webkit-details-marker { display: none; }
.conciliacao-outras-formas > summary span { color: #a78bfa; font-size: 12px; }
.conciliacao-outras-formas-conteudo { max-height: 330px; padding: 12px; overflow-y: auto; border-top: 1px solid rgba(148, 163, 184, .16); }

#modal-conciliacao #form-conciliacao { order: 5; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: 10px 14px; padding-top: 10px; border-top: 1px solid rgba(148, 163, 184, .16); }
#modal-conciliacao .conciliacao-selecao-aviso { grid-column: 1 / -1; }
#modal-conciliacao .conciliacao-selecao-detalhes { grid-column: 1 / -1; grid-template-columns: 1fr 1fr 150px; gap: 8px; }
#modal-conciliacao .conciliacao-selecao-detalhes label { font-size: 11px; }
#modal-conciliacao .conciliacao-selecao-detalhes input { min-height: 36px; }
.conciliacao-observacao-compacta { display: grid; grid-column: 1; gap: 5px; color: var(--muted); font-size: 11px; }
.conciliacao-observacao-compacta input { min-height: 38px; }
.conciliacao-confirmacao-resumo { display: flex; grid-column: 1 / 3; grid-row: 3; align-items: center; gap: 22px; }
.conciliacao-confirmacao-resumo div { display: grid; gap: 2px; }
.conciliacao-confirmacao-resumo span { color: var(--muted); font-size: 11px; }
.conciliacao-confirmacao-resumo .ok { color: #4ade80; }
.conciliacao-confirmacao-resumo .warn { color: #fbbf24; }
.conciliacao-footer-actions { grid-column: 3; grid-row: 3; align-self: center; white-space: nowrap; }
#modal-conciliacao #conciliacao-confirmar:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }

@media (max-width: 760px) {
  #modal-conciliacao .conciliacao-modal-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); padding: 14px; }
  #modal-conciliacao .conciliacao-extrato-resumo { grid-template-columns: 38px minmax(0, 1fr) auto; }
  #modal-conciliacao .conciliacao-resumo-valor { grid-column: 2; }
  #modal-conciliacao .conciliacao-resumo-saldo { grid-column: 3; grid-row: 2; }
  #modal-conciliacao .compact-head p { display: none; }
  #modal-conciliacao .conciliacao-sugestao-item { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-sugestao-item .primary { width: 100%; }
  #modal-conciliacao #form-conciliacao { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-selecao-detalhes { grid-template-columns: 1fr; }
  .conciliacao-confirmacao-resumo,
  .conciliacao-footer-actions { grid-column: 1; grid-row: auto; }
  .conciliacao-footer-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

.conciliacao-extrato-resumo {
  display: grid;
  grid-template-columns: minmax(95px, .6fr) minmax(220px, 1.5fr) minmax(140px, .8fr) repeat(4, minmax(110px, .7fr));
  gap: 10px;
  margin-bottom: 14px;
}

.conciliacao-extrato-resumo article {
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 10px;
  background: rgba(15, 23, 42, .52);
}

.conciliacao-extrato-resumo span,
.conciliacao-baixa-item span,
.conciliacao-nota-item span,
.conciliacao-servico-item span,
.conciliacao-recebimento-item span,
.conciliacao-repasse-item span,
.transferencia-candidato-item span,
.conciliacao-vinculo-item span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.conciliacao-modal-filtros {
  align-items: end;
  margin-bottom: 12px;
}

.compact-head {
  margin: 6px 0 10px;
}

.compact-head h3 {
  margin: 0;
  font-size: 15px;
}

.conciliacao-sugestoes {
  margin: 12px 0 14px;
}

.conciliacao-sugestoes-lista {
  display: grid;
  gap: 10px;
}

.conciliacao-recomendacao-principal {
  display: grid;
  gap: 7px;
}

.conciliacao-recomendacao-label {
  width: fit-content;
  padding: 4px 9px;
  border-radius: 999px;
  color: #86efac;
  background: rgba(22, 163, 74, .16);
  font-size: 12px;
  font-weight: 700;
}

.conciliacao-sem-exata {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 9px;
  background: rgba(15, 23, 42, .48);
}

.conciliacao-sem-exata span {
  color: #94a3b8;
  font-size: 12px;
}

.conciliacao-alternativas {
  border-top: 1px solid rgba(148, 163, 184, .14);
  padding-top: 8px;
}

.conciliacao-alternativas > summary {
  width: fit-content;
  color: #c084fc;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.conciliacao-alternativas-lista {
  display: grid;
  gap: 8px;
  margin-top: 9px;
}

.conciliacao-sugestao-item.alternativa {
  padding: 9px 11px;
  opacity: .9;
}

.conciliacao-sugestao-item {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(118px, .55fr)) minmax(130px, .55fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 10px;
  background: rgba(15, 23, 42, .62);
}

.conciliacao-sugestao-item.alta {
  border-color: rgba(34, 197, 94, .42);
  background: rgba(22, 101, 52, .18);
}

.conciliacao-sugestao-item.media {
  border-color: rgba(45, 212, 191, .36);
  background: rgba(20, 184, 166, .12);
}

.conciliacao-sugestao-item.baixa {
  border-color: rgba(245, 158, 11, .32);
  background: rgba(146, 64, 14, .12);
}

.sugestao-main strong {
  display: block;
  margin: 2px 0;
  color: #f8fafc;
}

.sugestao-main small,
.sugestao-meta small {
  color: #94a3b8;
}

.sugestao-amount {
  min-height: 58px;
  padding: 9px 10px;
  border: 1px solid rgba(148, 163, 184, .13);
  border-radius: 9px;
  background: rgba(2, 6, 23, .24);
}

.sugestao-amount span,
.sugestao-meta span {
  display: block;
  color: #94a3b8;
  font-size: 11px;
  line-height: 1.2;
}

.sugestao-amount strong {
  display: block;
  margin-top: 4px;
  color: #e2e8f0;
  font-size: 14px;
}

.sugestao-amount.primary-amount {
  border-color: rgba(139, 92, 246, .45);
  background: rgba(124, 58, 237, .18);
}

.sugestao-amount.primary-amount strong {
  color: #ffffff;
  font-size: 17px;
}

.sugestao-amount.ok strong {
  color: #86efac;
}

.sugestao-amount.warn strong {
  color: #fbbf24;
}

.sugestao-meta {
  display: grid;
  gap: 4px;
}

.conciliacao-motivos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.conciliacao-motivos span {
  padding: 3px 7px;
  border-radius: 999px;
  color: #dbeafe;
  background: rgba(59, 130, 246, .16);
}

.sugestao-badge.alta {
  color: #bbf7d0;
  border-color: rgba(34, 197, 94, .4);
  background: rgba(22, 101, 52, .24);
}

.sugestao-badge.media {
  color: #99f6e4;
  border-color: rgba(45, 212, 191, .38);
  background: rgba(20, 184, 166, .18);
}

.sugestao-badge.baixa {
  color: #fed7aa;
  border-color: rgba(245, 158, 11, .36);
  background: rgba(146, 64, 14, .18);
}

.sugestao-badge.sem_sugestao {
  color: #cbd5e1;
  border-color: rgba(148, 163, 184, .24);
  background: rgba(148, 163, 184, .08);
}

.checkbox-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
}

.checkbox-line input {
  width: auto;
}

.conciliacao-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 12px;
}

.conciliacao-tabs .active {
  color: #e0f2fe;
  border-color: rgba(56, 189, 248, .45);
  background: rgba(14, 165, 233, .16);
}

.conciliacao-tab-panel {
  margin-bottom: 12px;
}

.conciliacao-baixas-lista,
.conciliacao-notas-lista,
.conciliacao-servicos-lista,
.conciliacao-recebimentos-lista,
.conciliacao-repasses-lista,
.transferencia-candidatos-lista,
.conciliacoes-lista {
  display: grid;
  gap: 10px;
  max-height: 340px;
  overflow: auto;
  padding-right: 4px;
}

.conciliacao-baixa-item,
.conciliacao-nota-item,
.conciliacao-servico-item,
.conciliacao-recebimento-item,
.conciliacao-repasse-item,
.transferencia-candidato-item,
.conciliacao-vinculo-item {
  display: grid;
  grid-template-columns: 1.4fr .7fr .7fr 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 10px;
  background: rgba(15, 23, 42, .62);
}

.conciliacao-baixa-item.mesma-conta {
  border-color: rgba(45, 212, 191, .36);
}

.conciliacao-baixa-item.mesmo-valor {
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, .72);
}

.conciliacao-baixa-item.com-diferenca {
  grid-template-columns: 1.35fr .65fr .65fr .9fr .7fr auto;
  border-color: rgba(168, 85, 247, .45);
  box-shadow: inset 3px 0 0 rgba(168, 85, 247, .72);
}

.conciliacao-baixa-diferenca span {
  display: block;
  color: var(--muted);
  font-size: .72rem;
}

.conciliacao-baixa-diferenca strong {
  color: #d8b4fe;
}

.conciliacao-nota-item.mesmo-valor {
  border-color: rgba(34, 197, 94, .42);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, .72);
}

.conciliacao-servico-item.mesmo-valor {
  border-color: rgba(34, 197, 94, .42);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, .72);
}

.conciliacao-recebimento-item.mesma-conta {
  border-color: rgba(45, 212, 191, .36);
}

.conciliacao-recebimento-item.mesmo-valor {
  border-color: rgba(34, 197, 94, .42);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, .72);
}

.conciliacao-repasse-item.mesma-conta {
  border-color: rgba(45, 212, 191, .36);
}

.conciliacao-repasse-item.mesmo-valor,
.conciliacao-sugestao-item.repasse-recebivel {
  border-color: rgba(34, 197, 94, .42);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, .72);
}

.conciliacao-repasse-item.bloqueado {
  border-color: rgba(244, 63, 94, .42);
  box-shadow: inset 3px 0 0 rgba(244, 63, 94, .72);
  opacity: .9;
}

.transferencia-candidato-item.mesmo-valor {
  border-color: rgba(34, 197, 94, .42);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, .72);
}

.transferencia-candidato-item.alta {
  background: rgba(22, 101, 52, .14);
}

.transferencia-candidato-item.media {
  background: rgba(20, 184, 166, .1);
}

.conciliacao-vinculo-item {
  grid-template-columns: 1.8fr .7fr auto;
}

#modal-conciliacoes-lista .conciliacao-modal-dialog {
  position: relative;
  width: min(1180px, calc(100vw - 32px));
  max-height: min(90vh, 920px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

#modal-conciliacoes-lista .conciliacao-modal-dialog > .panel-head {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 4;
  padding: 0;
  border: 0;
}

#modal-conciliacoes-lista .conciliacao-modal-dialog > .panel-head > div {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

#modal-conciliacoes-lista .conciliacoes-lista {
  max-height: none;
  min-height: 0;
  overflow: hidden;
  padding-right: 0;
}

.trace-modal-shell {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0;
  overflow: hidden;
}

.trace-modal-header {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr);
  gap: 18px;
  align-items: start;
  padding: 18px 86px 16px 2px;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
}

.trace-title-block {
  min-width: 0;
}

.trace-title-block h3 {
  margin: 2px 0 8px;
  color: #f8fbff;
  font-size: 1.45rem;
}

.trace-title-block p {
  max-width: 760px;
  margin: 0;
  color: #bac7df;
  line-height: 1.45;
}

.trace-kicker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 4px 8px;
  border: 1px solid rgba(45, 212, 191, .22);
  border-radius: 999px;
  color: #99f6e4;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  background: rgba(20, 184, 166, .08);
}

.trace-header-facts {
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

.trace-fact {
  min-width: 112px;
  display: grid;
  gap: 3px;
  padding: 9px 11px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  background: rgba(15, 23, 42, .58);
}

.trace-fact small {
  color: #9aa8c2;
  font-size: .68rem;
  text-transform: uppercase;
}

.trace-fact strong {
  color: #f8fbff;
  font-size: .9rem;
  white-space: nowrap;
}

.trace-fact.strong strong {
  color: #ffffff;
  font-size: 1.05rem;
}

.trace-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  width: fit-content;
  max-width: 100%;
  padding: 5px 9px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 999px;
  color: #dbeafe;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.2;
  background: rgba(15, 23, 42, .72);
}

.trace-badge.ok {
  color: #bbf7d0;
  border-color: rgba(34, 197, 94, .32);
  background: rgba(22, 101, 52, .18);
}

.trace-badge.warn {
  color: #fde68a;
  border-color: rgba(245, 158, 11, .34);
  background: rgba(146, 64, 14, .18);
}

.trace-badge.danger {
  color: #fecdd3;
  border-color: rgba(244, 63, 94, .36);
  background: rgba(127, 29, 29, .22);
}

.trace-badge.info {
  color: #bfdbfe;
  border-color: rgba(96, 165, 250, .26);
  background: rgba(30, 64, 175, .16);
}

.trace-modal-body {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, .75fr);
  gap: 16px;
  overflow: auto;
  padding: 16px 4px 18px 0;
}

.trace-main-column,
.trace-side-column {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 14px;
}

.trace-panel {
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 10px;
  background: rgba(15, 23, 42, .55);
  box-shadow: 0 18px 35px rgba(0, 0, 0, .14);
}

.trace-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.trace-section-head h4 {
  margin: 0;
  color: #f8fbff;
  font-size: 1rem;
}

.trace-section-head p {
  margin: 3px 0 0;
  color: #9aa8c2;
  font-size: .82rem;
  line-height: 1.35;
}

.trace-timeline {
  position: relative;
  display: grid;
  gap: 10px;
}

.trace-timeline::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 12px;
  bottom: 12px;
  width: 1px;
  background: rgba(148, 163, 184, .2);
}

.trace-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
}

.trace-step {
  z-index: 1;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(45, 212, 191, .34);
  border-radius: 50%;
  color: #ccfbf1;
  font-size: .78rem;
  font-weight: 800;
  background: #101827;
}

.trace-timeline-item > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .12);
  border-radius: 8px;
  background: rgba(2, 6, 23, .26);
}

.trace-item-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.trace-item-head strong {
  min-width: 0;
  color: #f8fbff;
}

.trace-timeline-item p {
  margin: 7px 0 9px;
  color: #bac7df;
  line-height: 1.4;
}

.trace-timeline-item footer {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  color: #9aa8c2;
  font-size: .82rem;
}

.trace-timeline-item footer strong {
  color: #f8fbff;
}

.trace-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.trace-summary-card {
  display: grid;
  gap: 5px;
  min-height: 78px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .12);
  border-radius: 8px;
  background: rgba(2, 6, 23, .28);
}

.trace-summary-card span {
  color: #9aa8c2;
  font-size: .72rem;
  text-transform: uppercase;
}

.trace-summary-card strong {
  color: #f8fbff;
  font-size: 1.05rem;
  line-height: 1.2;
}

.trace-summary-card.ok strong {
  color: #86efac;
}

.trace-summary-card.warn strong {
  color: #fde68a;
}

.trace-summary-card.danger strong {
  color: #fda4af;
}

.trace-definition-list {
  display: grid;
  gap: 10px;
  margin: 0;
}

.trace-definition-list div {
  display: grid;
  gap: 4px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(148, 163, 184, .1);
}

.trace-definition-list div:last-child {
  border-bottom: 0;
}

.trace-definition-list dt {
  color: #9aa8c2;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.trace-definition-list dd {
  margin: 0;
  color: #e2e8f0;
  line-height: 1.4;
}

.trace-documents-list {
  display: grid;
  gap: 10px;
}

.trace-document-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(140px, auto) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .12);
  border-radius: 8px;
  background: rgba(2, 6, 23, .28);
}

.trace-document-item span {
  display: block;
  margin-bottom: 3px;
  color: #9aa8c2;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
}

.trace-document-item strong {
  color: #f8fbff;
}

.trace-document-item p {
  margin: 4px 0 0;
  color: #bac7df;
  line-height: 1.35;
}

.trace-document-meta {
  display: grid;
  justify-items: end;
  gap: 5px;
  text-align: right;
}

.trace-document-meta small {
  color: #9aa8c2;
}

.trace-document-actions {
  display: flex;
  justify-content: flex-end;
}

.trace-alert-list {
  display: grid;
  gap: 8px;
}

.trace-alert {
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  color: #dbeafe;
  background: rgba(30, 64, 175, .12);
}

.trace-alert strong {
  display: block;
  color: #f8fbff;
  margin-bottom: 4px;
}

.trace-alert p {
  margin: 0;
  color: #bac7df;
  line-height: 1.35;
}

.trace-alert.ok {
  color: #bbf7d0;
  border-color: rgba(34, 197, 94, .24);
  background: rgba(22, 101, 52, .14);
}

.trace-alert.warn {
  border-color: rgba(245, 158, 11, .32);
  background: rgba(146, 64, 14, .16);
}

.trace-alert.danger {
  border-color: rgba(244, 63, 94, .34);
  background: rgba(127, 29, 29, .2);
}

.trace-modal-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 14px 2px 2px;
  border-top: 1px solid rgba(148, 163, 184, .14);
  background: rgba(15, 23, 42, .96);
}

.trace-footer-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.trace-danger-action {
  border-color: rgba(244, 63, 94, .32);
}

.trace-empty {
  margin-top: 0;
}

.empty-state.compact {
  padding: 10px;
}

.conciliacao-form {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, .16);
}

.conciliacao-form textarea {
  resize: vertical;
}

.conciliacao-selecao-aviso {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(56, 189, 248, .28);
  border-radius: 10px;
  color: #bae6fd;
  background: rgba(14, 165, 233, .12);
}

@media (max-width: 720px) {
  .baixa-modal {
    align-items: end;
    padding: 12px;
  }

  .baixa-modal-dialog {
    max-height: calc(100vh - 24px);
    padding: 18px;
    border-radius: 14px;
  }

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

  .baixa-form-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .baixa-historico-item {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .baixa-historico-actions {
    justify-content: stretch;
  }

  .baixa-historico-actions button {
    justify-content: center;
  }

  .financeiro-extrato-resumo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #baixa-pagador-wrap {
    grid-template-columns: 1fr;
  }

  .financeiro-recebimentos-resumo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .conciliacao-resumo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .conciliacao-extrato-resumo,
  .conciliacao-baixa-item,
  .conciliacao-nota-item,
  .conciliacao-servico-item,
  .conciliacao-recebimento-item,
  .transferencia-candidato-item,
  .conciliacao-vinculo-item,
  .conciliacao-sugestao-item {
    grid-template-columns: 1fr;
  }

  #modal-conciliacoes-lista .conciliacao-modal-dialog {
    width: calc(100vw - 18px);
    max-height: calc(100dvh - 92px);
    padding: 14px;
    border-radius: 12px;
  }

  #modal-conciliacoes-lista.baixa-modal {
    align-items: center;
    padding-bottom: 74px;
  }

  #modal-conciliacoes-lista .conciliacao-modal-dialog > .panel-head {
    top: 14px;
    right: 14px;
  }

  #modal-conciliacoes-lista .conciliacao-modal-dialog .panel-head {
    gap: 10px;
  }

  .trace-modal-header,
  .trace-modal-body,
  .trace-document-item {
    grid-template-columns: 1fr;
  }

  .trace-modal-header {
    gap: 12px;
    padding: 14px 76px 14px 0;
  }

  .trace-title-block h3 {
    font-size: 1.18rem;
  }

  .trace-title-block p {
    font-size: .86rem;
  }

  .trace-header-facts {
    justify-content: flex-start;
  }

  .trace-fact {
    min-width: min(142px, 100%);
    flex: 1 1 138px;
  }

  .trace-modal-body {
    padding-right: 0;
    gap: 12px;
  }

  .trace-panel {
    padding: 13px;
  }

  .trace-summary-grid {
    grid-template-columns: 1fr;
  }

  .trace-item-head,
  .trace-modal-footer {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .trace-document-meta {
    justify-items: start;
    text-align: left;
  }

  .trace-document-actions,
  .trace-footer-actions {
    justify-content: stretch;
  }

  .trace-document-actions .ghost,
  .trace-footer-actions .ghost,
  .trace-modal-footer > .ghost {
    justify-content: center;
    width: 100%;
  }
}

.actions-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.export-card {
  min-height: 118px;
}

.settings-hub {
  display: grid;
  gap: 14px;
}

.settings-module {
  position: relative;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 18px;
  padding: 20px 22px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(17, 24, 48, .96), rgba(7, 12, 28, .96)),
    radial-gradient(circle at 90% 20%, rgba(45, 212, 191, .08), transparent 18rem);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .18);
}

.settings-module-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(124, 58, 237, .95), rgba(91, 33, 182, .82));
}

.settings-module-icon .nav-icon {
  width: 30px;
  height: 30px;
}

.settings-module-body {
  min-width: 0;
  display: grid;
  gap: 12px;
}

.settings-module h2 {
  color: #f8fbff;
  font-size: 24px;
}

.settings-module-arrow {
  position: absolute;
  top: 18px;
  right: 22px;
  color: #c6d2ee;
  border: 0;
  background: transparent;
  font-size: 34px;
  line-height: 1;
  text-decoration: none;
}

.settings-module-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 34px;
  color: #cbd5e1;
}

.settings-module-grid span,
.settings-last-process {
  line-height: 1.4;
}

.settings-module-grid strong,
.settings-last-process strong {
  color: #f8fbff;
}

.settings-module-action {
  justify-self: end;
  min-width: 280px;
  justify-content: center;
}

.settings-access-row,
.settings-role-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.settings-avatar {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #06111e;
  border: 2px solid rgba(255, 255, 255, .65);
  border-radius: 999px;
  background: #8ee7dc;
  font-weight: 1000;
}

.settings-avatar.muted {
  background: #c4b5fd;
}

.settings-avatar.more {
  color: #dbeafe;
  border-color: rgba(148, 163, 184, .45);
  background: rgba(15, 23, 42, .95);
}

.settings-role-row b {
  padding: 8px 12px;
  color: #dbeafe;
  border-radius: 8px;
  background: rgba(59, 130, 246, .18);
  font-size: 13px;
}

.settings-security-line {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #cbd5e1;
}

.settings-security-line span {
  width: 180px;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(90deg, #34d399 0 68%, rgba(45, 212, 191, .18) 68%);
}

.settings-toggle {
  width: 46px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px;
  border-radius: 999px;
  background: rgba(148, 163, 184, .28);
  vertical-align: middle;
}

.settings-toggle::after {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
}

.settings-toggle.on {
  justify-content: flex-end;
  background: #34d399;
}

.ok-text { color: #34d399 !important; }
.warn-text { color: #fbbf24 !important; }
.danger-text { color: #fb7185 !important; }

.settings-status-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.settings-status-grid span {
  min-height: 78px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 10px;
  background: rgba(4, 10, 24, .48);
}

.settings-status-grid small {
  display: block;
  color: #b8c6e8;
  font-size: 12px;
  line-height: 1.25;
}

.settings-status-grid strong {
  display: block;
  margin-top: 8px;
  color: #8ee7dc;
  font-size: 24px;
}

.settings-status-output {
  max-height: 90px;
  min-height: auto;
  color: #b8c6e8;
  background: rgba(4, 10, 24, .38);
}

.import-history {
  margin-bottom: 16px;
}

.import-summary-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.import-history-table {
  min-width: 1120px;
}

.table-card .import-history-wrap {
  overflow-x: auto;
}

.import-history-table td small.path-muted {
  display: block;
  max-width: 320px;
  margin: 6px 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.import-message {
  min-width: 220px;
  color: #cbd5e1;
  font-size: 13px;
  line-height: 1.4;
}

.users-admin-forms,
.users-admin-lists {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.grid.two.users-admin-lists {
  grid-template-columns: 1fr;
}

.users-admin-table {
  min-width: 760px;
}

.users-link-grid {
  display: grid;
  gap: 10px;
}

.users-link-form {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) minmax(180px, 1fr) minmax(140px, .8fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 10px;
  background: rgba(4, 10, 24, .38);
}

.cnpj-lookup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.cnpj-lookup-row input {
  min-width: 0;
}

.cnpj-lookup-message {
  color: #b8c6e8;
  font-size: 12px;
}

.cnpj-lookup-message[data-status="ok"] {
  color: #34d399;
}

.cnpj-lookup-message[data-status="warn"] {
  color: #fbbf24;
}

.cnpj-lookup-message[data-status="danger"] {
  color: #fb7185;
}

.settings-edit-shell {
  display: grid;
  gap: 14px;
}

.settings-edit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.settings-edit-form {
  margin-bottom: 0;
}

.settings-edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.settings-edit-grid label {
  color: #cbd5e1;
  font-weight: 800;
}

.settings-edit-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

.users-photo-name {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 220px;
}

.users-user-stack {
  display: grid;
  gap: 10px;
  min-width: 260px;
}

.users-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

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

.users-edit-details {
  position: relative;
}

.users-edit-details summary {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  color: #e8eefc;
  font-size: 13px;
  font-weight: 800;
  background: rgba(30, 41, 59, .82);
  cursor: pointer;
  list-style: none;
}

.users-edit-details summary::-webkit-details-marker {
  display: none;
}

.users-edit-details[open] summary {
  border-color: rgba(168, 85, 247, .58);
  background: rgba(88, 28, 135, .28);
}

.users-inline-edit {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  min-width: min(760px, calc(100vw - 80px));
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 10px;
  background: rgba(5, 12, 27, .95);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
}

.users-inline-edit label {
  display: grid;
  gap: 6px;
  color: #cbd5e1;
  font-size: 12px;
  font-weight: 900;
}

.users-inline-edit input {
  min-width: 0;
  min-height: 36px;
  padding: 0 10px;
  color: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 8px;
  background: rgba(4, 10, 24, .72);
}

.users-avatar {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  overflow: hidden;
  flex: 0 0 auto;
  border: 1px solid rgba(226, 232, 240, .22);
  border-radius: 999px;
  color: #e8eefc;
  font-size: 12px;
  font-weight: 900;
  background: linear-gradient(135deg, rgba(124, 58, 237, .74), rgba(15, 23, 42, .92));
}

.users-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.users-photo-form {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
}

.users-photo-form:last-child {
  margin-bottom: 0;
}

.users-photo-form input[type="file"] {
  max-width: 210px;
  min-height: 34px;
  padding: 6px;
  color: #aebbd3;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 6px;
  background: rgba(4, 10, 24, .36);
}

.users-photo-form button {
  white-space: nowrap;
}

dialog.modal {
  width: min(720px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  padding: 0;
  color: #e5e7eb;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(15, 23, 42, .98), rgba(8, 13, 25, .99));
  box-shadow: 0 26px 80px rgba(0, 0, 0, .5);
  overflow: hidden;
}

dialog.modal::backdrop {
  background: rgba(2, 6, 23, .72);
  backdrop-filter: blur(3px);
}

.modal-content {
  display: grid;
  max-height: calc(100vh - 40px);
  overflow: hidden;
}

.modal-header,
.modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
}

.modal-header h3 {
  margin: 0;
  color: #f8fafc;
  font-size: 20px;
}

.modal-header .close-modal {
  width: 42px;
  height: 42px;
  min-width: 42px;
  padding: 0;
  display: inline-grid;
  place-items: center;
}

.modal-body {
  min-width: 0;
  overflow-y: auto;
  padding: 18px;
}

.modal-footer {
  justify-content: flex-end;
  border-top: 1px solid rgba(148, 163, 184, .14);
  border-bottom: 0;
  background: rgba(8, 13, 25, .44);
}

#pre-fechamento-modal {
  width: min(860px, calc(100vw - 32px));
}

#pre-fechamento-modal .modal-content {
  max-height: min(860px, calc(100vh - 40px));
}

#pre-fechamento-modal .modal-body {
  display: grid;
  gap: 14px;
}

.pre-alert-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.pre-alert-summary span {
  min-width: 0;
  min-height: 72px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  color: var(--text-muted);
  background: rgba(15, 23, 42, .5);
  overflow-wrap: anywhere;
}

.pre-alert-summary b {
  display: block;
  margin-top: 4px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.25;
}

.pre-alert-context {
  display: grid;
  gap: 8px;
  color: var(--text-muted);
  line-height: 1.45;
}

.pre-alert-context p {
  margin: 0;
  overflow-wrap: anywhere;
}

.pre-alert-context strong {
  color: var(--text);
}

.pre-alert-evidence-list {
  display: grid;
  gap: 10px;
}

.pre-alert-evidence-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  background: rgba(15, 23, 42, .55);
}

.pre-alert-evidence-main {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.pre-alert-origin {
  width: max-content;
  max-width: 100%;
  padding: 4px 8px;
  border-radius: 999px;
  color: #c4b5fd;
  font-size: 11px;
  font-weight: 700;
  background: rgba(124, 58, 237, .16);
  overflow-wrap: anywhere;
}

.pre-alert-evidence-card strong {
  min-width: 0;
  color: var(--text);
  font-size: 15px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.pre-alert-evidence-card small {
  min-width: 0;
  color: var(--text-muted);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.pre-alert-evidence-action {
  justify-self: end;
  white-space: nowrap;
}

.financeiro-origem-modal,
.financeiro-categoria-modal {
  width: min(760px, calc(100vw - 32px));
}

.financeiro-origem-modal .origem-modal-grid,
.financeiro-categoria-modal .categoria-modal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.financeiro-origem-modal .wide,
.financeiro-categoria-modal .wide {
  grid-column: 1 / -1;
}

.financeiro-origem-modal input,
.financeiro-origem-modal select,
.financeiro-origem-modal textarea,
.financeiro-categoria-modal input,
.financeiro-categoria-modal select,
.financeiro-categoria-modal textarea {
  min-width: 0;
  width: 100%;
  color: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 8px;
  background: rgba(8, 13, 25, .86);
}

.financeiro-origem-modal textarea,
.financeiro-categoria-modal textarea {
  min-height: 96px;
  resize: vertical;
}

.financeiro-origem-modal input::placeholder,
.financeiro-origem-modal textarea::placeholder,
.financeiro-categoria-modal input::placeholder,
.financeiro-categoria-modal textarea::placeholder {
  color: #7b8497;
}

.financeiro-origem-modal label,
.financeiro-categoria-modal label {
  min-width: 0;
  color: #cbd5e1;
  font-weight: 800;
}

.financeiro-origem-modal .checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  background: rgba(15, 23, 42, .58);
}

.financeiro-origem-modal .checkbox-label input {
  width: 16px;
  min-width: 16px;
  height: 16px;
}

.financeiro-categoria-modal .cadastro-novo-grupo-toggle {
  align-self: end;
}
.financeiro-categoria-modal .cadastro-novo-grupo-toggle button {
  min-height: 42px;
  width: 100%;
  justify-content: center;
}
.financeiro-categoria-modal .cadastro-novo-grupo {
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  background: rgba(15, 23, 42, .46);
}

pre {
  white-space: pre-wrap;
  margin: 0;
  color: #dfe4ff;
  background: #0d111d;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  min-height: 180px;
  overflow: auto;
}

.toast {
  position: fixed;
  right: 104px;
  bottom: 24px;
  max-width: 420px;
  padding: 14px 16px;
  border-radius: 12px;
  background: #1b2135;
  border: 1px solid var(--line);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .35);
  z-index: 13000;
}

.ai-assistant {
  position: fixed;
  right: max(24px, env(safe-area-inset-right));
  bottom: max(24px, env(safe-area-inset-bottom));
  z-index: 1200;
  pointer-events: none;
}

.ai-panel {
  width: min(360px, calc(100vw - 48px));
  max-height: min(70vh, 680px);
  margin-bottom: 12px;
  overflow: hidden;
  color: #102f38;
  border: 1px solid #cfe4e8;
  border-radius: 12px;
  background: #fbfeff;
  box-shadow: 0 22px 58px rgba(6, 44, 53, .24);
  pointer-events: auto;
}

.ai-header {
  position: sticky;
  top: 0;
  z-index: 2;
  min-height: 52px;
  padding: 0 16px 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  background: linear-gradient(135deg, #062c35, #0e6672);
}

.ai-header strong {
  font-size: 17px;
}

.ai-window-actions {
  display: flex;
  gap: 8px;
}

.ai-icon-button {
  width: 30px;
  height: 30px;
  padding: 0;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 8px;
  background: rgba(255, 255, 255, .12);
  font-weight: 800;
}

.ai-body {
  max-height: calc(min(70vh, 680px) - 52px);
  overflow: auto;
  padding: 20px 16px 16px;
}

.ai-intro {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
}

.ai-avatar {
  position: relative;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 60%, #f8fbff 0 31%, #d7f7f1 32% 52%, #22c55e 53% 72%, #e7fbf7 73%);
  box-shadow: inset 0 -8px 18px rgba(14, 102, 114, .16), 0 10px 24px rgba(6, 44, 53, .18);
}

.ai-avatar::before {
  content: "";
  width: 34px;
  height: 27px;
  border-radius: 11px;
  background: #062c35;
  box-shadow: inset 0 -8px 16px rgba(0, 0, 0, .3);
}

.ai-avatar::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  left: 22px;
  top: 25px;
  border-radius: 50%;
  color: #19d3e8;
  background: currentColor;
  box-shadow: 12px 0 0 currentColor, 6px 10px 0 -2px currentColor;
}

.ai-avatar span {
  position: absolute;
  inset: 12px auto auto 23px;
  width: 14px;
  height: 5px;
  border-radius: 999px;
  background: #0e6672;
}

.ai-avatar.small {
  width: 42px;
  height: 42px;
}

.ai-avatar.small::before {
  width: 26px;
  height: 21px;
  border-radius: 9px;
}

.ai-avatar.small::after {
  width: 5px;
  height: 5px;
  left: 17px;
  top: 20px;
  box-shadow: 9px 0 0 currentColor, 5px 8px 0 -2px currentColor;
}

.ai-avatar.small span {
  inset: 9px auto auto 18px;
  width: 11px;
  height: 4px;
}

.ai-bubble {
  padding: 14px;
  color: #102f38;
  border: 1px solid #dbe9ed;
  border-radius: 8px;
  background: #f5fafb;
  box-shadow: 0 8px 24px rgba(6, 44, 53, .06);
}

.ai-bubble p {
  margin-bottom: 7px;
}

.ai-bubble strong {
  display: block;
  line-height: 1.45;
}

.ai-section-title {
  display: block;
  margin-bottom: 10px;
  font-size: 14px;
}

.ai-quick-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.ai-quick-actions button {
  min-height: 44px;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #0e6672;
  border: 1px solid #cde3e8;
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
}

.ai-quick-actions .mini-icon {
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 0;
  color: #0e6672;
  background: currentColor;
}

.ai-output {
  min-height: 92px;
  max-height: 180px;
  margin-bottom: 12px;
  color: #102f38;
  border-color: #d7e6eb;
  background: #fff;
  font-size: 13px;
}

.ai-form {
  display: grid;
  grid-template-columns: 1fr 54px;
  gap: 10px;
}

.ai-form input {
  min-width: 0;
  min-height: 52px;
  color: #102f38;
  border-color: #d7e6eb;
  background: #fff;
}

.ai-send {
  width: 54px;
  height: 52px;
  padding: 0;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: linear-gradient(135deg, #0e6672, #22c55e);
}

.ai-send span {
  width: 24px;
  height: 24px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 3v18l18-9L3 3Zm2 3.2 11.5 5.8L5 17.8v-4.3l6-1.5-6-1.5V6.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M3 3v18l18-9L3 3Zm2 3.2 11.5 5.8L5 17.8v-4.3l6-1.5-6-1.5V6.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ai-launcher {
  position: relative;
  width: 58px;
  height: 58px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 14px 32px rgba(6, 44, 53, .24);
  pointer-events: auto;
}

.ai-launcher i {
  position: absolute;
  right: 5px;
  bottom: 7px;
  width: 12px;
  height: 12px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #22c55e;
}

@media (max-width: 820px) {
  .ai-panel {
    width: min(340px, calc(100vw - 32px));
  }
}

@media (max-width: 560px) {
  .ai-assistant {
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    left: max(12px, env(safe-area-inset-left));
  }

  .ai-panel {
    width: 100%;
    max-height: min(70vh, calc(100dvh - 32px));
    margin-bottom: 10px;
    border-radius: 16px 16px 12px 12px;
  }

  .ai-body {
    max-height: calc(min(70vh, 100dvh - 32px) - 52px);
  }

  .ai-intro,
  .ai-quick-actions,
  .ai-form {
    grid-template-columns: 1fr;
  }

  .ai-intro {
    grid-template-columns: 48px 1fr;
  }

  .ai-avatar {
    width: 48px;
    height: 48px;
  }

  .ai-launcher {
    width: 56px;
    height: 56px;
    margin-left: auto;
  }
}

.product-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}

.product-kpi {
  min-height: 132px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(21, 26, 43, .98), rgba(13, 17, 29, .98));
  box-shadow: 0 18px 46px rgba(0, 0, 0, .25);
}

.product-kpi span { display: block; color: #cbd3e9; font-weight: 700; }
.product-kpi strong { display: block; margin: 12px 0 8px; font-size: 26px; color: #fff; overflow-wrap: anywhere; }
.product-kpi small { color: var(--muted); }
.product-kpi.purple strong { color: #c084fc; }
.product-kpi.green strong { color: #4ade80; }
.product-kpi.blue strong { color: #60a5fa; }
.product-kpi.orange strong { color: #fb923c; }

.product-filter-panel {
  padding: 16px;
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(17, 21, 34, .88);
}

.product-filters {
  display: grid;
  grid-template-columns: 1.35fr .7fr .9fr .75fr .75fr .85fr .75fr auto auto;
  gap: 12px;
  align-items: end;
}

.range-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.category-strip {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 14px;
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(17, 21, 34, .72);
}

.category-strip a {
  min-width: 92px;
  padding: 10px 14px;
  color: #dbe2f5;
  text-align: center;
  text-decoration: none;
  border: 1px solid #2b344c;
  border-radius: 8px;
  background: #111827;
}

.category-strip a.active,
.category-strip a:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--purple), var(--purple-2));
}

.product-layout {
  display: grid;
  grid-template-columns: minmax(640px, .95fr) minmax(620px, 1.25fr);
  gap: 16px;
  align-items: start;
}

.product-table-wrap { max-height: 610px; }
.product-table { min-width: 980px; }
.product-table td small { display: block; margin-top: 4px; color: var(--muted); }
.product-row { cursor: pointer; }
.product-row.selected td { background: rgba(124, 58, 237, .18); box-shadow: inset 3px 0 0 #a855f7; }

.product-photo,
.analysis-photo img {
  width: 42px;
  height: 42px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--line);
}

.product-placeholder,
.analysis-photo span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  color: #fff;
  font-weight: 800;
  background: linear-gradient(135deg, #6d28d9, #1d4ed8);
}

.pill {
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  color: #ddd6fe;
  background: rgba(124, 58, 237, .25);
}

.code-chip {
  display: inline-flex;
  max-width: 180px;
  padding: 6px 9px;
  border-radius: 8px;
  color: #bfdbfe;
  background: rgba(59, 130, 246, .16);
  border: 1px solid rgba(96, 165, 250, .22);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.up { color: #fb7185; font-weight: 800; }
.down { color: #4ade80; font-weight: 800; }

.badge.atencao,
.badge.preco-alto { color: #fed7aa; background: rgba(249, 115, 22, .24); }
.badge.critico { color: #fecdd3; background: rgba(225, 29, 72, .28); }
.badge.reposicao-sugerida { color: #bfdbfe; background: rgba(59, 130, 246, .24); }
.badge.sem-historico { color: #d1d5db; background: rgba(107, 114, 128, .28); }

.analysis-head {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 14px;
}

.analysis-head strong { display: block; margin: 4px 0; font-size: 20px; }
.analysis-head small { color: var(--muted); }
.analysis-photo img,
.analysis-photo span { width: 64px; height: 64px; border-radius: 16px; }

.analysis-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

.analysis-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.analysis-grid div,
.note-grid div {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #0d111d;
}

.analysis-grid span,
.note-grid span {
  display: block;
  color: var(--muted);
  margin-bottom: 7px;
}

.analysis-grid strong,
.note-grid strong { color: #fff; overflow-wrap: anywhere; }

.mini-panels {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

.mini-panels > div {
  min-height: 190px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #0d111d;
}

.mini-panels h3 { margin: 0 0 12px; font-size: 16px; }
.mini-panels p { margin: 8px 0; color: #dce2f7; }
.mini-panels small { color: var(--muted); line-height: 1.45; }

.price-bars {
  display: flex;
  align-items: end;
  gap: 8px;
  height: 126px;
  padding: 10px;
  border-radius: 10px;
  background: rgba(7, 10, 20, .75);
}

.price-bars span {
  flex: 1;
  min-height: 8px;
  border-radius: 8px 8px 2px 2px;
  background: linear-gradient(180deg, #a855f7, #6d28d9);
}

.insights { display: grid; gap: 10px; }
.insight {
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: rgba(17, 24, 39, .75);
}
.insight strong { display: block; margin-bottom: 5px; }
.insight span { color: var(--muted); }
.insight.danger { border-color: rgba(244, 63, 94, .45); }
.insight.warn { border-color: rgba(245, 158, 11, .45); }
.insight.ok { border-color: rgba(34, 197, 94, .45); }
.insight.info { border-color: rgba(124, 58, 237, .45); }

.product-bottom {
  display: grid;
  grid-template-columns: .8fr 1.2fr .9fr;
  gap: 16px;
  margin-top: 16px;
}

.note-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.note-grid .wide { grid-column: 1 / -1; }

.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  color: var(--muted);
}

.page-badge {
  display: inline-flex;
  padding: 9px 12px;
  border-radius: 9px;
  color: #fff;
  background: rgba(124, 58, 237, .35);
}

@media (max-width: 980px) {
  .sidebar { position: static; width: auto; }
  .main { margin-left: 0; padding: 18px; }
  .cards, .cards.compact, .dashboard-cards, .grid.two { grid-template-columns: 1fr; }
  .topbar { align-items: flex-start; gap: 12px; flex-direction: column; }
}

@media (max-width: 1680px) {
  .dashboard-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-layout, .product-bottom { grid-template-columns: 1fr; }
}

@media (max-width: 1240px) {
  .dashboard-cards, .grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .main { padding: 28px; }
  .base-folder-bar { grid-template-columns: 1fr; }
  .base-folder-bar input { min-width: 0; }
  .product-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analysis-grid, .mini-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1120px) {
  .app-topbar {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "main user"
      "actions actions";
  }

  .top-actions {
    justify-content: center;
  }

  .top-period-control {
    width: min(100%, 560px);
  }
}

@media (max-width: 980px) {
  .dashboard-cards, .grid.two { grid-template-columns: 1fr; }
  .product-kpis, .product-filters, .analysis-grid, .mini-panels { grid-template-columns: 1fr; }

  .xml-vendas-sections {
    grid-template-columns: 1fr;
  }

  .xml-vendas-lista .panel-head {
    display: grid;
  }

  .xml-vendas-lista .panel-head .ghost.small {
    width: 100%;
    margin-left: 0;
    justify-content: center;
  }
}

@media (max-width: 767px) {
  body {
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
    background:
      radial-gradient(circle at 15% 0%, rgba(14, 102, 114, .22), transparent 22rem),
      #070914;
  }

  .sidebar {
    display: none;
  }

  .mobile-app-header {
    position: sticky;
    top: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 58px;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(148, 163, 184, .18);
    background: rgba(7, 9, 20, .92);
    backdrop-filter: blur(16px);
  }

  .mobile-app-header a {
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    text-decoration: none;
  }

  .mobile-app-header button {
    display: none;
  }

  .main {
    margin-left: 0;
    padding: 14px 12px 22px;
  }

  .shell {
    max-width: none;
  }

  .topbar {
    gap: 10px;
    margin-bottom: 14px;
    padding: 2px 2px 0;
  }

  .app-topbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .topbar h1 {
    font-size: 24px;
  }

  .topbar p {
    font-size: 14px;
  }

  .top-actions {
    width: 100%;
    gap: 8px;
    justify-content: flex-start;
  }

  .top-period-control {
    min-width: 100%;
    width: 100%;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-top-period,
  body.app-shell[data-active="/financeiro/conciliacao"] .conciliacao-top-period,
  body.app-shell[data-active="/financeiro/pre-fechamento"] .pre-fechamento-top-period,
  body.app-shell[data-active="/financeiro/contas-a-pagar"] .contas-pagar-top-period,
  body.app-shell[data-active="/financeiro/recebimentos/plataformas/ifood"] .ifood-top-period,
  body.app-shell[data-active="/financeiro/relatorios/makro"] .makro-top-period,
  body.app-shell[data-active="/xml-compras"] .xml-compras-top-period,
  body.app-shell[data-active="/xml-vendas"] .xml-vendas-top-period,
  body.app-shell[data-active="/xml-servicos"] .xml-servicos-top-period {
    position: static;
    transform: none;
  }

  .top-period-row {
    flex-wrap: wrap;
  }

  .user-profile-menu {
    justify-self: auto;
    margin-left: 0;
    padding-left: 0;
    border-left: 0;
  }

  .status-pill {
    display: none;
  }

  .pre-fechamento-page .status-pill,
  .pre-fechamento-coverage .status-pill {
    display: inline-flex;
  }

  .user-session {
    margin-left: auto;
  }

  .base-folder-bar {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 16px;
    padding: 16px;
    border-color: rgba(34, 197, 94, .38);
    border-radius: 12px;
    background:
      linear-gradient(135deg, rgba(14, 102, 114, .32), rgba(34, 197, 94, .12)),
      rgba(12, 16, 28, .96);
  }

  .base-folder-header {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  .folder-bar-local {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .base-folder-bar input#base-pasta-global {
    width: 100%;
  }

  .local-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .folder-bar-uploaders {
    grid-template-columns: 1fr;
    gap: 16px;
    border-top: 1px solid rgba(148, 163, 184, .15);
    padding-top: 16px;
  }

  .mobile-app-home {
    display: grid;
    gap: 12px;
    margin-bottom: 14px;
  }

  .mobile-hero-card {
    padding: 16px;
    border: 1px solid rgba(34, 197, 94, .26);
    border-radius: 16px;
    background:
      linear-gradient(135deg, rgba(14, 102, 114, .34), rgba(34, 197, 94, .1)),
      rgba(17, 21, 34, .92);
    box-shadow: 0 16px 36px rgba(0, 0, 0, .2);
  }

  .mobile-hero-card span,
  .mobile-metric-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
  }

  .mobile-hero-card strong {
    display: block;
    margin-top: 4px;
    color: #fff;
    font-size: 24px;
  }

  .mobile-hero-card p {
    margin-top: 6px;
    color: #c7d7dd;
    line-height: 1.45;
  }

  .mobile-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .mobile-metric-card {
    min-height: 118px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(17, 21, 34, .94);
  }

  .mobile-metric-card:first-child {
    grid-column: 1 / -1;
  }

  .mobile-metric-card strong {
    display: block;
    margin: 8px 0 4px;
    color: #fff;
    font-size: 28px;
    line-height: 1.05;
  }

  .mobile-metric-card small {
    color: #9aa3bd;
  }

  .mobile-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .mobile-quick-actions a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 12px;
    color: #eafff8;
    border: 1px solid rgba(34, 197, 94, .24);
    border-radius: 14px;
    background: rgba(14, 102, 114, .22);
    font-weight: 900;
    text-decoration: none;
  }

  .mobile-product-search {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid rgba(34, 197, 94, .25);
    border-radius: 14px;
    background: rgba(17, 21, 34, .92);
  }

  .mobile-product-search input {
    min-width: 0;
    min-height: 48px;
    font-size: 16px;
  }

  .mobile-product-search button {
    min-height: 48px;
    padding-inline: 16px;
  }

  .dashboard-cards {
    display: none;
  }

  .base-folder-bar strong {
    font-size: 18px;
  }

  .upload-inline-form {
    display: grid;
    gap: 10px;
    width: 100%;
  }

  .file-picker {
    width: 100%;
    min-height: 56px;
    padding: 14px;
    border: 1px dashed rgba(34, 197, 94, .55);
    border-radius: 12px;
    background: rgba(255, 255, 255, .04);
  }

  .upload-inline-form .primary {
    width: 100%;
    min-height: 54px;
    justify-content: center;
    font-size: 16px;
  }

  .mobile-bottom-nav {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1500;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
    min-height: calc(70px + env(safe-area-inset-bottom));
    padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(148, 163, 184, .22);
    background: rgba(7, 9, 20, .96);
    box-shadow: 0 -18px 42px rgba(0, 0, 0, .32);
    backdrop-filter: blur(16px);
  }

  .mobile-bottom-nav a,
  .mobile-bottom-nav button {
    display: grid;
    place-items: center;
    gap: 4px;
    min-width: 0;
    min-height: 54px;
    padding: 6px 2px;
    color: #9aa3bd;
    border: 0;
    border-radius: 12px;
    background: transparent;
    font-size: 11px;
    font-weight: 900;
    text-decoration: none;
  }

  .mobile-bottom-nav .nav-icon {
    width: 21px;
    height: 21px;
  }

  .mobile-bottom-nav a.active,
  .mobile-bottom-nav button[aria-expanded="true"] {
    color: #d8fff2;
    background: rgba(14, 102, 114, .48);
  }

  .mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1600;
    display: block;
    background: rgba(2, 6, 23, .58);
  }

  .mobile-menu-backdrop[hidden],
  .mobile-menu-sheet[hidden] {
    display: none;
  }

  .mobile-menu-sheet {
    position: fixed;
    right: 10px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 1700;
    display: block;
    max-height: min(72vh, 560px);
    overflow: auto;
    padding: 14px;
    border: 1px solid rgba(207, 228, 232, .28);
    border-radius: 18px;
    color: #eaf6f7;
    background: #0a141d;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
  }

  .mobile-menu-sheet header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
  }

  .mobile-menu-sheet header strong,
  .mobile-menu-sheet header span {
    display: block;
  }

  .mobile-menu-sheet header span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 13px;
  }

  .mobile-menu-sheet nav,
  .mobile-menu-sheet form {
    display: grid;
    gap: 12px;
  }

  .mobile-menu-group {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, .16);
    border-radius: 18px;
    background: rgba(6, 10, 25, .34);
  }

  .mobile-menu-group > strong {
    display: block;
    padding: 0 4px 2px;
    color: #8ee7dc;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .mobile-menu-sheet a,
  .mobile-menu-sheet nav button,
  .mobile-menu-disabled {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 48px;
    padding: 12px;
    color: #d9eef1;
    border: 1px solid rgba(148, 163, 184, .16);
    border-radius: 12px;
    background: rgba(255, 255, 255, .04);
    font-size: 15px;
    font-weight: 800;
    text-align: left;
    text-decoration: none;
  }

  .mobile-menu-disabled {
    cursor: default;
    opacity: .62;
  }

  .mobile-menu-disabled small {
    margin-left: auto;
    color: #8ee7dc;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
  }

  .mobile-menu-open,
  .mobile-filter-open {
    overflow: hidden;
  }

  .mobile-filter-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    margin-bottom: 12px;
  }

  .mobile-filter-close {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    margin-bottom: 10px;
  }

  .mobile-filter-panel {
    position: fixed;
    right: 10px;
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: 10px;
    z-index: 1650;
    display: none !important;
    max-height: min(72vh, 560px);
    overflow: auto;
    padding: 14px;
    border: 1px solid rgba(207, 228, 232, .28);
    border-radius: 18px;
    background: #0a141d;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
  }

  .mobile-filter-panel.open {
    display: grid !important;
    gap: 10px;
  }

  .mobile-filter-actions {
    position: sticky;
    bottom: -14px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 4px -14px -14px;
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(148, 163, 184, .16);
    background: #0a141d;
  }

  .mobile-filter-actions .primary,
  .mobile-filter-actions .ghost {
    min-height: 46px;
    justify-content: center;
    text-align: center;
  }

  .table-wrap {
    overflow: visible;
  }

  .table-wrap table,
  .table-wrap thead,
  .table-wrap tbody,
  .table-wrap tr,
  .table-wrap th,
  .table-wrap td {
    display: block;
    width: 100%;
  }

  .table-wrap tbody tr td:nth-child(2),
  .product-table tbody tr td:nth-child(2) {
    color: #fff;
    font-size: 17px;
    font-weight: 900;
  }

  .product-table tbody tr td:first-child {
    justify-content: flex-start;
  }

  .product-table .product-photo,
  .product-table .product-placeholder {
    width: 48px;
    height: 48px;
  }

  .table-wrap thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .table-wrap tbody {
    display: grid;
    gap: 12px;
  }

  .table-wrap tbody tr {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(17, 21, 34, .92);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
  }

  .table-wrap td {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(148, 163, 184, .14);
    text-align: right;
    overflow-wrap: anywhere;
  }

  .table-wrap td:last-child {
    border-bottom: 0;
  }

  .table-wrap td::before {
    content: attr(data-label);
    max-width: 45%;
    color: var(--muted);
    font-weight: 800;
    text-align: left;
  }

  .table-wrap td[colspan] {
    display: block;
    text-align: left;
  }

  .table-wrap td[colspan]::before {
    display: none;
  }

  .table-wrap td .ghost,
  .table-wrap td .primary {
    width: auto;
    min-height: 36px;
  }

  .cards,
  .cards.compact,
  .dashboard-cards,
  .grid.two,
  .product-kpis,
  .analysis-grid,
  .mini-panels,
  .overview-grid,
  .decision-kpis {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .panel {
    padding: 16px;
    border-radius: 12px;
  }

  .panel-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .ai-assistant {
    display: none;
  }

  .ai-panel {
    width: min(340px, calc(100vw - 24px));
    max-height: min(62vh, calc(100dvh - 116px));
  }

  .ai-body {
    max-height: calc(min(62vh, 100dvh - 116px) - 52px);
  }
}

/* PostgreSQL cutover parity: keep restored legacy screens inside the usable
   viewport beside the fixed sidebar. Wide data tables scroll inside their
   cards instead of forcing the whole application to overflow. */
@media (max-width: 1500px) and (min-width: 768px) {
  .main {
    min-width: 0;
    padding-inline: 24px;
  }

  .shell,
  .shell > *,
  .panel,
  .table-card,
  .settings-layout,
  .settings-edit,
  .settings-edit-full,
  .financeiro-contas-layout,
  .financeiro-recebimentos-page,
  .financeiro-recebimentos-layout,
  .recebimentos-side-stack,
  .ifood-finance-page,
  .makro-page,
  .makro-bottom-grid,
  .makro-bottom-grid > * {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .table-wrap,
  .table-card .table-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-side-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1120px) and (min-width: 768px) {
  .main {
    padding-inline: 18px;
  }

  .settings-layout,
  .makro-bottom-grid,
  .ifood-finance-grid,
  .financeiro-contas-layout,
  .financeiro-recebimentos-layout,
  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-side-stack {
    grid-template-columns: minmax(0, 1fr);
  }

  input,
  select,
  textarea {
    min-width: 0;
    max-width: 100%;
  }
}

@media (max-width: 980px) and (min-width: 768px) {
  .main {
    width: 100vw;
    margin-left: 0;
  }
}

.fiscal-tabs {
  margin-bottom: 16px;
}

.fiscal-panel-hint {
  margin-top: 8px;
}

.fiscal-base-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fiscal-base-card {
  width: 100%;
  min-height: 118px;
  color: var(--text);
  text-align: left;
}

.fiscal-base-card strong {
  display: block;
  font-size: 18px;
  overflow-wrap: anywhere;
}

.fiscal-filter-grid,
.fiscal-form-grid {
  display: grid;
  gap: 12px;
  align-items: end;
  margin-bottom: 16px;
}

.fiscal-filter-grid {
  grid-template-columns: minmax(0, 1fr) 160px;
}

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

.fiscal-form-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.fiscal-editor {
  margin: 16px 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(13, 17, 29, .72);
}

.fiscal-table-wrap {
  max-height: min(52vh, 620px);
  overflow: auto;
}

.fiscal-table-wrap table {
  min-width: 980px;
}

.fiscal-table-wrap thead th {
  z-index: 2;
}

.fiscal-table-wrap td {
  max-width: 260px;
  overflow-wrap: anywhere;
}

@media (max-width: 1680px) {
  .fiscal-base-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .fiscal-filter-grid,
  .fiscal-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .fiscal-filter-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .fiscal-base-cards,
  .fiscal-filter-grid,
  .fiscal-form-grid {
    grid-template-columns: 1fr;
  }
  .fiscal-filter-fields {
    grid-template-columns: 1fr;
  }
  .fiscal-table-wrap {
    max-height: none;
    overflow: visible;
  }
}

.products-top-actions {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  margin: 0;
  flex-wrap: wrap;
}

.decision-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.decision-kpis .product-kpi {
  color: var(--text);
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.decision-kpis .product-kpi::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 26px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: currentColor;
  opacity: .16;
}

.product-kpi.pink strong { color: #f472b6; }
.product-kpi.blue strong { color: #60a5fa; }
.product-kpi small b { font-size: 24px; font-weight: 400; vertical-align: -2px; }

.quick-product-result {
  margin-bottom: 20px;
  padding: 22px;
  border: 1px solid rgba(128, 90, 213, .34);
  border-radius: 18px;
  background:
    linear-gradient(145deg, rgba(18, 25, 48, .96), rgba(9, 14, 30, .94)),
    radial-gradient(circle at 100% 0%, rgba(168, 85, 247, .16), transparent 18rem);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .22);
}

.quick-product-head {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 18px;
  margin-bottom: 18px;
}

.quick-product-head > div:nth-child(2) {
  min-width: 0;
  flex: 1;
}

.quick-product-media {
  position: relative;
  width: 112px;
  height: 112px;
  flex: 0 0 112px;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(124, 58, 237, .28), rgba(20, 184, 166, .12));
  color: inherit;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.quick-product-media:hover,
.quick-product-media:focus-visible {
  border-color: rgba(167, 139, 250, .72);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .18);
  transform: translateY(-1px);
}

.quick-product-media img,
.quick-product-media span {
  width: 100%;
  height: 100%;
}

.quick-product-media img {
  display: block;
  object-fit: cover;
}

.quick-product-media span {
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 42px;
  font-weight: 900;
}

.quick-product-media small {
  position: absolute;
  inset: auto 8px 8px;
  padding: 5px 7px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .82);
  color: #dbeafe;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.product-photo-modal[hidden] {
  display: none;
}

.product-photo-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(2, 6, 23, .72);
  backdrop-filter: blur(8px);
}

.product-photo-dialog {
  width: min(420px, 100%);
  padding: 18px;
  border: 1px solid rgba(148, 163, 184, .26);
  border-radius: 18px;
  background: #101827;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
}

.product-photo-dialog img {
  display: block;
  width: 100%;
  max-height: 360px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
}

.product-photo-dialog h3 {
  margin: 14px 0 12px;
  color: #fff;
  font-size: 18px;
}

.product-photo-dialog .actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.product-photo-dialog .danger {
  color: #fecdd3;
  border-color: rgba(244, 63, 94, .34);
  background: rgba(127, 29, 29, .26);
}

.quick-product-head > div:nth-child(2) > span:first-child,
.quick-price-grid span,
.quick-product-details span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}

.quick-product-head h2 {
  margin: 4px 0 4px;
  color: #fff;
  font-size: 28px;
}

.quick-product-head p {
  color: #c7d7dd;
}

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

.quick-price-grid article,
.quick-product-details > div {
  padding: 15px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 14px;
  background: rgba(255, 255, 255, .04);
}

.quick-price-grid strong {
  display: block;
  margin: 8px 0 4px;
  color: #fff;
  font-size: 24px;
}

.quick-price-grid small,
.quick-product-details small {
  color: #9aa3bd;
}

.quick-product-details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.quick-product-details strong {
  display: block;
  margin: 7px 0 3px;
  color: #fff;
  font-size: 17px;
  overflow-wrap: anywhere;
}

.quick-product-alert {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  padding: 12px;
  border: 1px solid rgba(245, 158, 11, .28);
  border-radius: 14px;
  background: rgba(120, 53, 15, .14);
}

.quick-product-alert p {
  flex: 1;
  margin: 0;
  color: #fed7aa;
}

.quick-product-alert a {
  color: #fff;
  font-weight: 900;
}

.quick-linked-notes {
  display: grid;
  gap: 8px;
  margin-top: 16px;
}

.quick-linked-notes > strong {
  color: #fff;
}

.quick-linked-notes a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  padding: 11px 12px;
  color: #eef4ff;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 12px;
  background: rgba(255, 255, 255, .035);
  text-decoration: none;
}

.quick-linked-notes span {
  font-weight: 900;
}

.quick-linked-notes small {
  color: #9aa3bd;
}

.quick-linked-notes em {
  grid-row: span 2;
  align-self: center;
  color: #86efac;
  font-style: normal;
  font-weight: 900;
}

.quick-product-actions {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}

.empty-result h2 {
  color: #fff;
}

.audit-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.audit-sector-card {
  display: grid;
  gap: 16px;
}

.audit-sector-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.audit-sector-stats div {
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 12px;
  background: rgba(255, 255, 255, .04);
}

.audit-sector-stats span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.audit-sector-stats strong {
  display: block;
  margin-top: 6px;
  color: #fff;
  font-size: 20px;
  overflow-wrap: anywhere;
}

.audit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

@media (max-width: 980px) {
  .audit-hub-grid {
    grid-template-columns: 1fr;
  }
}

.product-filters.compact {
  grid-template-columns: 180px 220px 220px minmax(320px, 1fr) auto;
}

.wide-search input { min-width: 320px; }

.product-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(17, 21, 34, .78);
  overflow-x: auto;
}

.product-tabs a {
  min-height: 56px;
  display: inline-flex;
  align-items: center;
  padding: 0 20px;
  color: #cbd3e9;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.product-tabs a.active {
  color: #d8b4fe;
  border-bottom-color: #a855f7;
  background: linear-gradient(180deg, rgba(124, 58, 237, .18), transparent);
}

.product-subtabs {
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
  overflow-x: auto;
}

.product-subtabs a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  padding: 0 16px;
  color: #cbd3e9;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(17, 21, 34, .78);
  white-space: nowrap;
}

.product-subtabs a.active {
  color: #fff;
  border-color: rgba(168, 85, 247, .62);
  background: linear-gradient(135deg, rgba(124, 58, 237, .68), rgba(20, 184, 166, .22));
}

.product-list-panel {
  padding: 16px;
  border: 1px solid rgba(226, 232, 240, .94);
  border-radius: 16px;
  background: #f8fafc;
  color: #111827;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
}

.product-list-panel .muted {
  color: #4b5563;
  margin: 0 0 14px;
  font-size: 15px;
}

.product-list-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
}

.source-pill,
.order-pill {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 14px;
  border-radius: 8px;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
}

.source-pill {
  justify-self: start;
  color: #166534;
  background: #dcfce7;
}

.source-pill .btn-icon {
  width: 20px;
  height: 20px;
}

.order-pill {
  justify-self: end;
  color: #111827;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .08);
}

.consulta-list-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-bottom: 14px;
}

.consulta-list-search input {
  min-width: 0;
  min-height: 44px;
  color: #111827;
  border: 1px solid #d1d5db;
  background: #fff;
}

.consulta-list-search input::placeholder {
  color: #6b7280;
}

.consulta-list-search button {
  min-height: 44px;
  padding: 0 18px;
  border-radius: 8px;
}

.product-visual-list {
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}

.product-list-item {
  min-height: 76px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) minmax(78px, auto);
  gap: 12px;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid #e5e7eb;
}

.product-list-item:last-child {
  border-bottom: 0;
}

.product-list-item > div:nth-child(2) {
  min-width: 0;
}

.product-list-photo {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}

.product-list-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-list-photo span {
  color: #2563eb;
  font-size: 22px;
  font-weight: 900;
}

.product-list-item strong {
  display: block;
  color: #111827;
  font-size: 17px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.product-list-item small {
  display: block;
  margin-top: 4px;
  color: #4b5563;
  line-height: 1.2;
}

.product-list-item em {
  color: #111827;
  font-style: normal;
  font-size: 18px;
  text-align: right;
  white-space: nowrap;
}

.purchase-builder {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 20px;
  align-items: start;
}

.purchase-product-list {
  border-color: var(--line);
  background: rgba(13, 17, 29, .72);
}

.purchase-list-row {
  grid-template-columns: 28px 58px minmax(0, 1fr) auto 110px;
  border-color: rgba(148, 163, 184, .14);
  background: rgba(255, 255, 255, .98);
}

.purchase-check {
  display: grid;
  place-items: center;
}

.purchase-check input {
  width: 18px;
  height: 18px;
}

.purchase-qty {
  width: 100%;
  min-height: 40px;
  color: #111827;
  border-color: #d1d5db;
  background: #fff;
}

.overview-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 20px;
}

.decision-card {
  min-height: 360px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(21, 26, 43, .96), rgba(13, 17, 29, .96));
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.decision-card.green { border-color: rgba(74, 222, 128, .24); }
.decision-card.pink { border-color: rgba(244, 114, 182, .28); }
.decision-card.orange { border-color: rgba(245, 158, 11, .28); }
.decision-card.blue { border-color: rgba(96, 165, 250, .28); }

.decision-card p {
  color: var(--muted);
  line-height: 1.45;
}

.mini-list {
  display: grid;
  gap: 10px;
  margin-top: auto;
}

.mini-list span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  padding: 11px 10px;
  border: 1px solid rgba(37, 43, 63, .9);
  border-radius: 8px;
  background: rgba(13, 17, 29, .7);
}

.mini-list b,
.mini-list em {
  min-width: 0;
  font-style: normal;
  overflow-wrap: anywhere;
}

.mini-list small {
  color: #c084fc;
  border: 1px solid rgba(192, 132, 252, .3);
  border-radius: 7px;
  padding: 4px 7px;
}

.full {
  width: 100%;
  justify-content: center;
  text-align: center;
}

.month-summary h2 { margin-bottom: 16px; }

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

.summary-grid div,
.quick-actions a {
  min-height: 100px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(13, 17, 29, .72);
}

.summary-grid strong {
  display: block;
  font-size: 28px;
  margin-bottom: 6px;
}

.summary-grid span,
.quick-actions small {
  color: var(--muted);
  line-height: 1.35;
}

.quick-actions a {
  color: var(--text);
  text-decoration: none;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 4px 14px;
  align-items: center;
}

.quick-actions a small { grid-column: 2; }

.product-workspace {
  display: grid;
  gap: 20px;
  align-items: start;
}

.product-workspace.with-side {
  grid-template-columns: minmax(720px, 1fr) 420px;
}

.product-workspace.narrow-side {
  grid-template-columns: minmax(820px, 1fr) 340px;
}

.search-hero {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) 160px;
  gap: 18px;
  margin: 16px 0 14px;
}

.search-hero input {
  min-height: 56px;
  border-color: rgba(168, 85, 247, .65);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .12);
}

.suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.suggestions a,
.cadastro-filters a {
  color: #dbe2f5;
  text-decoration: none;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #111827;
}

.flat-table {
  border-radius: 8px;
  max-height: 620px;
}

.trend {
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 8px;
  background: rgba(34, 197, 94, .14);
}

.trend.up { background: rgba(244, 63, 94, .18); }

.price-side,
.edit-side,
.purchase-side,
.note-detail {
  position: sticky;
  top: 24px;
}

.side-product-head {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
}

.side-product-head img,
.upload-box img {
  width: 70px;
  height: 70px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid var(--line);
}

.side-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.side-metrics div,
.side-stat {
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #0d111d;
}

.side-metrics span,
.side-stat span {
  display: block;
  color: var(--muted);
  margin-bottom: 8px;
}

.side-metrics strong,
.side-stat strong {
  display: block;
  font-size: 19px;
  color: #fff;
  overflow-wrap: anywhere;
}

.side-stat {
  margin: 14px 0;
}

.cadastro-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

.cadastro-filters a.active {
  color: #d8b4fe;
  background: rgba(124, 58, 237, .28);
  border-color: rgba(168, 85, 247, .65);
}

.cadastro-filters b {
  margin-left: 8px;
  color: #c084fc;
}

.upload-box {
  min-height: 118px;
  display: grid;
  place-items: center;
  margin: 16px 0;
  border: 1px dashed rgba(148, 163, 184, .35);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
  background: rgba(13, 17, 29, .72);
}

.upload-inline-form {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.base-folder-bar .upload-result {
  grid-column: 1 / -1;
}

.folder-upload-form .ghost {
  min-height: 40px;
}

.file-picker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(13, 17, 29, .72);
  color: var(--text);
  cursor: pointer;
}

.file-picker span {
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}

.file-picker input {
  max-width: 260px;
  font-size: 13px;
}

.upload-result {
  width: 100%;
  margin: 8px 0 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(13, 17, 29, .82);
  color: var(--text);
  white-space: pre-wrap;
  overflow: auto;
}

.xml-upload-alert[hidden] {
  display: none;
}

.xml-upload-alert {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
  padding: 24px;
}

.xml-upload-alert-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(3, 6, 18, .78);
  backdrop-filter: blur(7px);
  cursor: default;
}

.xml-upload-alert-card {
  position: relative;
  width: min(560px, 100%);
  padding: 32px;
  border: 1px solid rgba(251, 146, 60, .38);
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(24, 29, 49, .99), rgba(10, 14, 29, .99));
  box-shadow: 0 28px 90px rgba(0, 0, 0, .58), 0 0 42px rgba(249, 115, 22, .08);
  text-align: center;
}

.xml-upload-alert-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 18px;
  border: 1px solid rgba(251, 146, 60, .52);
  border-radius: 18px;
  color: #fed7aa;
  background: rgba(249, 115, 22, .14);
  font-size: 30px;
  font-weight: 800;
}

.xml-upload-alert-copy small {
  color: #fb923c;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.xml-upload-alert-copy h2 {
  margin: 7px 0 9px;
  font-size: clamp(22px, 3vw, 28px);
}

.xml-upload-alert-copy p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.xml-upload-alert-files {
  display: grid;
  gap: 8px;
  margin: 22px 0 14px;
  text-align: left;
}

.xml-upload-alert-file {
  padding: 13px 14px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 12px;
  background: rgba(7, 11, 24, .72);
}

.xml-upload-alert-file strong,
.xml-upload-alert-file span {
  display: block;
  overflow-wrap: anywhere;
}

.xml-upload-alert-file strong {
  margin-bottom: 4px;
  color: var(--text);
  font-size: 13px;
}

.xml-upload-alert-file span {
  color: #fdba74;
  font-size: 12px;
  line-height: 1.45;
}

.xml-upload-alert-guidance {
  display: grid;
  gap: 4px;
  padding: 13px 14px;
  border-radius: 12px;
  color: var(--muted);
  background: rgba(124, 58, 237, .1);
  font-size: 12px;
  line-height: 1.45;
  text-align: left;
}

.xml-upload-alert-guidance strong {
  color: #c4b5fd;
}

.xml-upload-alert-confirm {
  min-width: 150px;
  margin-top: 22px;
}

@media (max-width: 640px) {
  .xml-upload-alert {
    padding: 16px;
  }

  .xml-upload-alert-card {
    padding: 25px 18px 20px;
    border-radius: 18px;
  }
}

textarea {
  width: 100%;
  min-height: 84px;
  padding: 13px 14px;
  color: var(--text);
  background: #0d111d;
  border: 1px solid var(--line);
  border-radius: 10px;
  font: inherit;
  resize: vertical;
}

.edit-side label { margin-bottom: 12px; }

.warning-note {
  margin: 14px 0;
  padding: 13px;
  border: 1px solid rgba(245, 158, 11, .6);
  border-radius: 8px;
  color: #fed7aa;
  background: rgba(120, 53, 15, .22);
  line-height: 1.45;
}

.alert-panel {
  border-color: rgba(245, 158, 11, .45);
  background: rgba(120, 53, 15, .18);
}

.alert-panel strong {
  display: block;
  color: #fed7aa;
  margin-bottom: 6px;
}

.alert-panel p {
  margin: 0;
  color: var(--muted);
}

.badge.critico { color: #fecdd3; background: rgba(225, 29, 72, .28); }
.badge.atencao { color: #fed7aa; background: rgba(249, 115, 22, .24); }

.note-grid.compact {
  grid-template-columns: 1fr;
}

@media (max-width: 1680px) {
  .overview-grid,
  .decision-kpis,
  .summary-grid,
  .quick-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-workspace.with-side,
  .product-workspace.narrow-side {
    grid-template-columns: 1fr;
  }
  .price-side,
  .edit-side,
  .purchase-side,
  .note-detail {
    position: static;
  }
}

@media (max-width: 980px) {
  .products-top-actions { justify-content: flex-start; }
  .overview-grid,
  .decision-kpis,
  .summary-grid,
  .quick-actions,
  .product-filters.compact,
  .search-hero,
  .side-metrics {
    grid-template-columns: 1fr;
  }
}


/* Login e sessao */
.login-page {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  min-height: 100vh;
  padding: clamp(28px, 4vw, 72px);
  background-color: #080808;
  background-image: url("/static/assets/branding/login/login-bg-desktop.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.login-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(480px, 520px);
  align-items: start;
  gap: clamp(64px, 7vw, 136px);
  width: min(100%, 1720px);
  margin: auto;
}

.login-brand-panel {
  --login-brand-offset: clamp(180px, 12vw, 220px);
  min-width: 0;
}

.login-brand-content {
  position: relative;
  width: min(680px, calc(100% - var(--login-brand-offset)));
  margin-left: var(--login-brand-offset);
}

.login-brand-logo {
  display: block;
  width: clamp(380px, 26vw, 480px);
  max-width: 100%;
  height: auto;
}

.login-brand-tagline {
  width: clamp(380px, 26vw, 480px);
  max-width: 100%;
  margin: clamp(2px, .35vh, 5px) 0 0;
  color: #d8ad56;
  font-size: clamp(12px, .82vw, 14px);
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}

.login-commercial-detail {
  position: absolute;
  top: 100%;
  left: 0;
  width: min(100%, 660px);
  margin-top: clamp(28px, 3vh, 40px);
  color: #f5f2ec;
}

.login-commercial-detail h2 {
  margin: 0;
  font-size: clamp(34px, 2.6vw, 48px);
  font-weight: 650;
  letter-spacing: -.035em;
  line-height: 1.16;
}

.login-commercial-detail h2 span { color: #c9a24d; }

.login-commercial-lead {
  margin: clamp(16px, 2vh, 24px) 0 0;
  color: #eeeae2;
  font-size: clamp(15px, 1.13vw, 19px);
  line-height: 1.45;
}

.login-commercial-lead strong { color: #d9aa48; font-weight: 650; }

.login-commercial-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(18px, 2vw, 34px);
  margin: clamp(22px, 2.6vh, 34px) 0 0;
  padding: 0;
  list-style: none;
}

.login-commercial-flow li {
  position: relative;
  min-width: 0;
  text-align: center;
}

.login-commercial-flow li:not(:last-child)::after {
  position: absolute;
  top: 41px;
  right: clamp(-25px, -1.6vw, -15px);
  color: #c9a24d;
  content: "→";
  font-size: 24px;
  font-weight: 300;
}

.login-flow-icon {
  display: grid;
  place-items: center;
  width: clamp(70px, 5.2vw, 88px);
  height: clamp(70px, 5.2vw, 88px);
  margin: 0 auto 10px;
  border: 1px solid rgba(151, 154, 163, .36);
  border-radius: 11px;
  background: linear-gradient(145deg, rgba(28, 29, 33, .86), rgba(11, 12, 15, .88));
  box-shadow: inset 0 1px rgba(255, 255, 255, .035), 0 12px 24px rgba(0, 0, 0, .18);
}

.login-flow-icon svg {
  width: 50%;
  fill: none;
  stroke: #9d56ff;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.login-flow-platforms {
  align-content: center;
  gap: 1px;
  color: #f5f2ec;
  line-height: 1;
  transform: none;
}

.login-flow-platforms b:first-child { font-size: clamp(15px, 1.15vw, 20px); font-style: italic; }
.login-flow-platforms b:last-child { font-size: clamp(22px, 1.7vw, 30px); }

.login-commercial-flow li > span {
  color: #f1eee8;
  font-size: clamp(12px, .9vw, 15px);
  line-height: 1.35;
}

.login-commercial-benefits {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(24px, 3vh, 36px);
  padding-top: clamp(22px, 2.4vh, 30px);
  border-top: 1px solid rgba(151, 154, 163, .22);
}

.login-commercial-benefits > div {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 10px;
  min-width: 0;
  padding: 0 clamp(10px, 1.2vw, 18px);
}

.login-commercial-benefits > div:first-child { padding-left: 0; }
.login-commercial-benefits > div:last-child { padding-right: 0; }
.login-commercial-benefits > div + div { border-left: 1px solid rgba(151, 154, 163, .25); }

.login-commercial-benefits svg {
  width: 34px;
  fill: none;
  stroke: #d1a442;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.login-commercial-benefits p { margin: 0; min-width: 0; }
.login-commercial-benefits strong {
  display: block;
  color: #f5f2ec;
  font-size: clamp(10px, .72vw, 12px);
  letter-spacing: .02em;
  line-height: 1.35;
  text-transform: uppercase;
}
.login-commercial-benefits span {
  display: block;
  margin-top: 5px;
  color: #a9a9ac;
  font-size: clamp(11px, .78vw, 13px);
  line-height: 1.38;
}

.login-commercial-signature {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: clamp(24px, 3vh, 34px) 0 0;
  color: #e8e4dc;
  font-size: 16px;
}

.login-commercial-signature strong {
  color: #f4efe5;
  font-size: 19px;
  font-weight: 500;
  letter-spacing: .16em;
}

.login-commercial-signature small {
  display: block;
  margin-top: 2px;
  color: #c9a24d;
  font-size: 8px;
  letter-spacing: .52em;
  text-align: center;
}

@media (min-aspect-ratio: 21 / 9) and (min-width: 2200px) {
  .login-page {
    background-image: url("/static/assets/branding/login/login-bg-ultrawide-vector.svg");
  }

  .login-brand-logo,
  .login-brand-tagline {
    width: 520px;
  }
}

@media (max-aspect-ratio: 5 / 3) {
  .login-page {
    background-image: url("/static/assets/branding/login/login-bg-standard.png");
  }
}

@media (max-aspect-ratio: 3 / 4) {
  .login-page {
    background-image: url("/static/assets/branding/login/login-bg-portrait.png");
  }
}

.login-shell {
  width: min(100%, 520px);
  justify-self: end;
}

@media (max-width: 900px) {
  .login-page {
    align-items: flex-start;
    padding: 22px;
  }

  .login-layout {
    grid-template-columns: 1fr;
    gap: 16px;
    width: min(100%, 520px);
    margin: 0;
  }

  .login-brand-panel {
    --login-brand-offset: 0px;
    padding: 0 12px;
  }

  .login-brand-content {
    width: min(100%, 320px);
    margin: 0 auto;
  }

  .login-brand-logo {
    width: min(230px, 62vw);
    max-width: 100%;
    margin: 0 auto;
  }

  .login-brand-tagline {
    width: min(100%, 270px);
    margin: 0 auto;
    font-size: 11px;
    letter-spacing: .1em;
  }

  .login-commercial-detail { display: none; }

  .login-shell {
    justify-self: center;
  }
}

@media (min-width: 901px) and (max-width: 1500px) {
  .login-commercial-detail { margin-top: 22px; }
  .login-commercial-detail h2 { font-size: clamp(29px, 2.5vw, 38px); }
  .login-commercial-lead { margin-top: 13px; font-size: clamp(13px, 1.15vw, 16px); }
  .login-commercial-flow { gap: 16px; margin-top: 18px; }
  .login-commercial-flow li:not(:last-child)::after { top: 34px; right: -20px; font-size: 20px; }
  .login-flow-icon { width: 68px; height: 68px; margin-bottom: 7px; }
  .login-commercial-benefits { margin-top: 18px; padding-top: 18px; }
  .login-commercial-benefits > div { grid-template-columns: 28px 1fr; gap: 7px; padding: 0 8px; }
  .login-commercial-benefits svg { width: 27px; }
  .login-commercial-benefits strong { font-size: 11px; }
  .login-commercial-benefits span { font-size: 11.5px; }
  .login-commercial-signature { margin-top: 18px; font-size: 13px; }
  .login-commercial-signature strong { font-size: 16px; }
}

@media (min-width: 901px) and (max-height: 820px) {
  .login-commercial-signature { gap: 13px; margin-top: 12px; font-size: 12px; }
  .login-commercial-signature strong { font-size: 14px; }
  .login-commercial-signature small { font-size: 7px; }
}

@media (max-width: 520px) {
  .login-page {
    align-items: flex-start;
    padding: 20px 16px;
  }

  .login-layout {
    gap: 14px;
  }

  .login-brand-content {
    width: min(100%, 270px);
    margin-right: 0;
  }

  .login-brand-logo {
    width: min(180px, 48vw);
    margin-right: 0;
  }

  .login-brand-tagline {
    width: min(100%, 230px);
    margin-right: 0;
    font-size: 10px;
    letter-spacing: .08em;
  }
}

.login-card {
  padding: clamp(28px, 2vw, 36px);
  border: 1px solid rgba(201, 162, 77, .58);
  border-radius: 22px;
  background:
    radial-gradient(circle at 18% 0%, rgba(255, 255, 255, .045), transparent 34%),
    linear-gradient(145deg, rgba(24, 24, 25, .98), rgba(10, 11, 13, .985));
  box-shadow: 0 28px 72px rgba(0, 0, 0, .5), inset 0 1px rgba(255, 255, 255, .035);
}

.login-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 46px;
  margin-bottom: 20px;
}

.login-card-logo {
  display: block;
  width: 220px;
  max-width: 58%;
  height: auto;
}

.login-card-partner {
  width: 116px;
  height: 1px;
}

.login-copy h1 {
  margin: 0 0 8px;
  color: #f5f2ec;
  font-size: clamp(28px, 2vw, 32px);
  line-height: 1.18;
}

.login-copy p {
  max-width: 390px;
  margin: 0;
  color: #a8a8aa;
  font-size: 15px;
  line-height: 1.5;
}

.login-form {
  display: grid;
  gap: 18px;
  margin-top: 25px;
}

.login-form label span,
.login-field-label {
  display: block;
  margin-bottom: 9px;
  color: #f0ece4;
  font-size: 13px;
  font-weight: 600;
}

.login-form input {
  width: 100%;
  min-height: 54px;
  padding: 14px 16px;
  color: #f5f2ec;
  background: rgba(8, 9, 11, .78);
  border: 1px solid rgba(151, 154, 163, .5);
  border-radius: 10px;
  font: inherit;
  font-size: 14px;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.login-form input::placeholder { color: #85868b; }

.login-form input:focus-visible {
  border-color: #c9a24d;
  outline: none;
  box-shadow: 0 0 0 3px rgba(201, 162, 77, .16);
  background: rgba(12, 13, 15, .96);
}

.login-password-control {
  position: relative;
  display: block;
}

.login-password-control input { padding-right: 82px; }

.login-password-toggle {
  position: absolute;
  top: 50%;
  right: 10px;
  padding: 8px 9px;
  border: 0;
  color: #d7c28e;
  background: transparent;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  transform: translateY(-50%);
}

.login-password-toggle:focus-visible {
  border-radius: 6px;
  outline: 2px solid #c9a24d;
  outline-offset: 1px;
}

.login-submit.primary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  margin-top: 2px;
  padding: 13px 18px;
  border: 1px solid rgba(224, 190, 112, .72);
  border-radius: 10px;
  color: #0d0d0f;
  background: linear-gradient(105deg, #b8872e, #e0be70 52%, #b88935);
  box-shadow: 0 12px 26px rgba(143, 104, 39, .18), inset 0 1px rgba(255, 255, 255, .32);
  font-size: 15px;
  font-weight: 700;
}

.login-submit.primary:hover {
  background: linear-gradient(105deg, #c49338, #ebcb82 52%, #c39843);
}

.login-submit.primary:focus-visible {
  outline: 3px solid rgba(224, 190, 112, .42);
  outline-offset: 3px;
}

.login-alert {
  margin-top: 18px;
  padding: 13px 14px;
  border: 1px solid rgba(251, 113, 133, .52);
  border-radius: 12px;
  color: #fecdd3;
  background: rgba(127, 29, 29, .22);
}

.login-footer {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  margin-top: 23px;
  color: #a8a8aa;
  font-size: 13px;
  text-align: center;
}

.login-footer::before,
.login-footer::after {
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, rgba(201, 162, 77, .38));
}

.login-footer::after { transform: scaleX(-1); }

@media (max-width: 520px) {
  .login-card { padding: 26px 24px; }
  .login-card-header { min-height: 40px; margin-bottom: 18px; }
  .login-card-logo { width: 184px; }
  .login-card-partner { width: 0; }
  .login-copy h1 { font-size: 27px; }
  .login-copy p { font-size: 14px; }
  .login-form { gap: 16px; margin-top: 24px; }
  .login-footer { margin-top: 22px; font-size: 12px; }
}

.user-session {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 9px 8px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(17, 21, 34, .76);
}

.user-session strong { color: var(--text); }

.ghost.small {
  padding: 8px 12px;
  font-size: 13px;
}

.landing-page {
  background: #f5f8fb;
  color: #102a36;
}

.landing-page a,
.login-page a {
  text-decoration: none;
}

.landing-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px clamp(18px, 5vw, 72px);
  border-bottom: 1px solid #d9e4ea;
  background: rgba(245, 248, 251, .92);
  backdrop-filter: blur(14px);
}

.landing-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #12313c;
  font-weight: 800;
}

.landing-brand span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #0f4c5c;
  color: #fff;
  letter-spacing: .02em;
}

.landing-nav {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 0;
  overflow: visible;
}

.landing-nav a {
  color: #49636c;
  font-size: 15px;
  font-weight: 700;
}

.landing-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 8px;
  font-weight: 800;
  border: 1px solid transparent;
}

.landing-button.primary {
  color: #fff;
  background: #0f4c5c;
  box-shadow: 0 14px 28px rgba(15, 76, 92, .18);
}

.landing-button.ghost {
  color: #0f4c5c;
  background: #fff;
  border-color: #c9d8de;
}

.landing-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
  min-height: calc(100vh - 78px);
  padding: clamp(44px, 7vw, 96px) clamp(18px, 5vw, 72px);
}

.landing-hero-content {
  max-width: 760px;
}

.landing-kicker,
.section-title span {
  display: inline-flex;
  margin-bottom: 14px;
  color: #138a72;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.landing-hero h1 {
  margin: 0;
  max-width: 820px;
  color: #0b2731;
  font-size: clamp(42px, 6vw, 76px);
  line-height: .98;
  letter-spacing: 0;
}

.landing-hero p {
  margin: 24px 0 0;
  max-width: 720px;
  color: #49636c;
  font-size: 20px;
  line-height: 1.55;
}

.landing-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 32px;
}

.dashboard-mockup {
  border: 1px solid #d5e3e8;
  border-radius: 8px;
  padding: 18px;
  background: #fff;
  box-shadow: 0 26px 70px rgba(20, 53, 64, .16);
}

.mockup-top {
  display: flex;
  gap: 7px;
  padding-bottom: 16px;
}

.mockup-top span {
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: #bfd0d7;
}

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

.mockup-grid div,
.mockup-table,
.mockup-chart {
  border: 1px solid #e3edf1;
  border-radius: 8px;
  background: #f8fbfc;
}

.mockup-grid div {
  padding: 16px;
}

.mockup-grid small,
.mockup-table span {
  color: #6f8790;
}

.mockup-grid strong {
  display: block;
  margin-top: 8px;
  color: #0f4c5c;
  font-size: 28px;
}

.mockup-chart {
  display: flex;
  align-items: end;
  gap: 14px;
  height: 190px;
  margin-top: 12px;
  padding: 18px;
}

.mockup-chart span {
  flex: 1;
  min-width: 28px;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(180deg, #19a78b, #0f4c5c);
}

.mockup-table {
  margin-top: 12px;
  padding: 10px 14px;
}

.mockup-table p {
  display: grid;
  grid-template-columns: 1.3fr .8fr .8fr;
  gap: 8px;
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid #e3edf1;
  font-size: 14px;
}

.mockup-table p:last-child {
  border-bottom: 0;
}

.mockup-table em {
  color: #138a72;
  font-style: normal;
  font-weight: 800;
}

.mockup-table em.warn {
  color: #b45309;
}

.mockup-table strong {
  color: #12313c;
}

.landing-section {
  padding: clamp(48px, 6vw, 86px) clamp(18px, 5vw, 72px);
}

.section-title {
  max-width: 760px;
  margin-bottom: 28px;
}

.section-title h2,
.solution h2,
.security h2,
.landing-cta h2 {
  margin: 0;
  color: #0b2731;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.08;
  letter-spacing: 0;
}

.landing-cards {
  display: grid;
  gap: 16px;
}

.landing-cards.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.landing-cards.features {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.landing-cards article {
  min-height: 156px;
  padding: 22px;
  border: 1px solid #dce7ec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(20, 53, 64, .07);
}

.landing-cards h3 {
  margin: 0 0 10px;
  color: #12313c;
  font-size: 19px;
}

.landing-cards p,
.solution p,
.security li,
.faq p {
  color: #516a73;
  line-height: 1.55;
}

.solution,
.security,
.landing-cta {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 34px;
  align-items: center;
  margin: 0 clamp(18px, 5vw, 72px);
  padding: clamp(32px, 5vw, 64px);
  border-radius: 8px;
  background: #e8f3f4;
}

.audience-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.audience-list span {
  padding: 13px 16px;
  border-radius: 8px;
  color: #0f4c5c;
  background: #fff;
  border: 1px solid #dce7ec;
  font-weight: 800;
}

.security ul {
  margin: 0;
  padding-left: 20px;
}

.faq {
  max-width: 980px;
  margin: 0 auto;
}

.faq details {
  margin-bottom: 12px;
  padding: 18px 20px;
  border: 1px solid #dce7ec;
  border-radius: 8px;
  background: #fff;
}

.faq summary {
  color: #12313c;
  cursor: pointer;
  font-weight: 900;
}

.landing-cta {
  grid-template-columns: 1fr auto;
  margin-bottom: 72px;
  background: #0f4c5c;
}

.landing-cta h2 {
  color: #fff;
}

.landing-cta .landing-button.primary {
  color: #0f4c5c;
  background: #fff;
}




@media (max-width: 1080px) {
  .landing-hero,
  .solution,
  .security,
  .landing-cta {
    grid-template-columns: 1fr;
  }
  .landing-cards.four,
  .landing-cards.features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .landing-header {
    position: static;
    align-items: flex-start;
    flex-direction: column;
  }
  .landing-nav {
    width: 100%;
    flex-wrap: wrap;
    gap: 12px;
  }
  .landing-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .mockup-grid,
  .landing-cards.four,
  .landing-cards.features,
  .mockup-table p {
    grid-template-columns: 1fr;
  }
  .landing-cta {
    margin-bottom: 36px;
  }
}

/* Landing publica - estrutura de conversao */
.conversion-landing {
  --lp-ink: #062c35;
  --lp-muted: #526b74;
  --lp-line: #dce8ed;
  --lp-brand: #073f4b;
  --lp-brand-2: #0e6672;
  --lp-green: #19b989;
  --lp-soft: #eef7f8;
  background: #f7fafb;
  color: var(--lp-ink);
  padding-top: 76px;
}

.conversion-landing .landing-header {
  position: fixed;
  inset: 0 0 auto;
  min-height: 76px;
  background: #062c35;
  border-bottom: 0;
  box-shadow: 0 10px 26px rgba(6, 44, 53, .16);
}

.conversion-landing .landing-brand {
  color: #fff;
}

.conversion-landing .landing-brand span {
  background: #12c7d8;
  color: #062c35;
}

.conversion-landing .landing-nav a {
  color: rgba(255, 255, 255, .74);
}

.conversion-landing .landing-nav a:hover {
  color: #fff;
}

.conversion-landing .landing-button {
  min-height: 46px;
  border-radius: 999px;
  padding-inline: 22px;
}

.conversion-landing .landing-button.primary {
  background: #19d3e8;
  color: #052a33;
  box-shadow: 0 14px 30px rgba(25, 211, 232, .25);
}

.conversion-landing .landing-button.ghost {
  color: var(--lp-brand);
  background: #fff;
  border-color: #c9dce2;
}

.conversion-landing .landing-header .landing-button.primary {
  background: #fff;
  color: #062c35;
  box-shadow: none;
}

.conversion-hero {
  min-height: calc(100vh - 76px);
  background:
    linear-gradient(90deg, rgba(211, 249, 250, .95) 0%, rgba(245, 250, 251, .92) 54%, #fff 100%);
}

.conversion-hero .landing-kicker {
  color: #0e6672;
}

.conversion-hero h1 {
  max-width: 850px;
  color: var(--lp-ink);
  font-size: clamp(42px, 5.4vw, 74px);
}

.conversion-hero p {
  color: var(--lp-muted);
}

.conversion-mockup {
  position: relative;
  padding: 18px;
  border-radius: 8px;
  border-color: #cfe1e7;
  background: #ffffff;
}

.conversion-mockup::before,
.conversion-mockup::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 999px;
  background: rgba(25, 211, 232, .16);
}

.conversion-mockup::before {
  width: 210px;
  height: 210px;
  right: -48px;
  top: -54px;
}

.conversion-mockup::after {
  width: 140px;
  height: 140px;
  left: -42px;
  bottom: -40px;
}

.mockup-window-bar {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid #e2edf1;
  border-radius: 8px;
  background: #f8fbfc;
}

.mockup-window-bar span {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #9cc3cc;
}

.mockup-window-bar strong {
  margin-left: auto;
  color: var(--lp-brand);
}

.mockup-kpis {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.mockup-kpis article {
  min-height: 120px;
  padding: 18px;
  border-radius: 8px;
  border: 1px solid #dce8ed;
  background: #fff;
  box-shadow: 0 12px 26px rgba(6, 44, 53, .07);
}

.mockup-kpis small {
  display: block;
  min-height: 34px;
  color: var(--lp-muted);
}

.mockup-kpis strong {
  display: block;
  margin: 8px 0 4px;
  color: var(--lp-brand);
  font-size: 30px;
}

.mockup-kpis em {
  color: var(--lp-green);
  font-style: normal;
  font-weight: 800;
}

.mockup-insights {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 150px;
  gap: 12px;
  margin-top: 12px;
}

.mockup-insights > div {
  padding: 18px;
  border: 1px solid #dce8ed;
  border-radius: 8px;
  background: var(--lp-soft);
}

.mockup-insights span {
  display: block;
  color: var(--lp-muted);
  font-weight: 700;
}

.mockup-insights b {
  display: block;
  height: 10px;
  margin-top: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--lp-green), #19d3e8);
}

.mockup-alert {
  text-align: center;
}

.mockup-alert strong {
  display: block;
  color: #0e6672;
  font-size: 34px;
}

.section-title.centered {
  margin-inline: auto;
  text-align: center;
}

.conversion-landing .landing-section {
  max-width: 1280px;
  margin-inline: auto;
}

.conversion-landing .landing-cards article {
  border-color: var(--lp-line);
}

.conversion-band {
  max-width: none;
  border: 1px solid #cfe4e8;
  background:
    linear-gradient(135deg, #e6fbfc, #f7fafb);
}

.modules {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 32px;
  align-items: start;
}

.module-list {
  display: grid;
  gap: 12px;
}

.module-list article {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border: 1px solid var(--lp-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(6, 44, 53, .06);
}

.module-list strong {
  color: var(--lp-brand);
  font-size: 18px;
}

.module-list span {
  color: var(--lp-muted);
  text-align: right;
}

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

.conversion-landing .faq {
  max-width: 1180px;
}

.conversion-landing .faq details {
  margin-bottom: 0;
}

.conversion-landing .landing-cta {
  max-width: 1180px;
  background:
    linear-gradient(135deg, #062c35, #0e6672);
}

.conversion-landing .landing-cta .landing-actions {
  justify-content: flex-end;
  margin-top: 0;
}

.conversion-landing .landing-cta .landing-button.primary {
  background: #19d3e8;
  color: #052a33;
}

.conversion-landing .landing-cta .landing-button.ghost {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, .45);
}

.privacy-section {
  background:
    linear-gradient(180deg, rgba(25, 211, 232, .08), rgba(255, 255, 255, 0));
}

.privacy-section .section-title {
  max-width: 860px;
}

.privacy-section .section-title p {
  color: var(--lp-muted);
  font-size: 18px;
  line-height: 1.75;
}

.privacy-cards article {
  background: #fff;
  box-shadow: 0 18px 42px rgba(6, 44, 53, .07);
}

.privacy-cards h3::before {
  content: "";
  display: block;
  width: 38px;
  height: 6px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--lp-green), #19d3e8);
}

.landing-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 28px clamp(18px, 5vw, 72px);
  color: #c8dce1;
  background: var(--lp-brand);
}

.landing-footer strong {
  color: #fff;
  font-size: 18px;
}

.landing-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px 20px;
}

.landing-footer a {
  color: #e9f6f7;
  font-weight: 800;
  text-decoration: none;
}

.landing-footer a:hover {
  color: var(--lp-green);
}

.legal-page {
  min-height: 100vh;
  color: var(--lp-brand);
  background: #f6fafb;
}

.legal-header,
.legal-content {
  width: min(980px, calc(100% - 36px));
  margin-inline: auto;
}

.legal-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 28px 0;
}

.legal-header a {
  color: var(--lp-brand);
  font-weight: 900;
  text-decoration: none;
}

.legal-content {
  padding: clamp(34px, 6vw, 76px);
  border: 1px solid var(--lp-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(6, 44, 53, .08);
}

.legal-content h1 {
  margin: 0 0 18px;
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1.05;
}

.legal-content h2 {
  margin-top: 30px;
  font-size: 22px;
}

.legal-content p,
.legal-content li {
  color: var(--lp-muted);
  font-size: 17px;
  line-height: 1.7;
}

@media (max-width: 1080px) {
  .modules,
  .mockup-insights {
    grid-template-columns: 1fr;
  }
  .module-list span {
    text-align: left;
  }
}

@media (max-width: 820px) {
  .conversion-landing {
    padding-top: 0;
  }
  .conversion-landing .landing-header {
    position: static;
  }
  .conversion-landing .landing-header .landing-button {
    width: 100%;
  }
  .mockup-kpis,
  .faq-grid {
    grid-template-columns: 1fr;
  }
  .module-list article {
    flex-direction: column;
  }
  .conversion-landing .landing-cta .landing-actions {
    justify-content: flex-start;
  }
  .landing-footer,
  .legal-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .landing-footer nav {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  body.app-shell {
    min-height: 100dvh;
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
    color: #f8fbff;
    background:
      radial-gradient(circle at 75% 16%, rgba(128, 45, 255, .32), transparent 13rem),
      radial-gradient(circle at 8% 2%, rgba(20, 184, 166, .18), transparent 11rem),
      linear-gradient(180deg, #070a17 0%, #0b1024 48%, #08101d 100%);
  }

  .mobile-app-header {
    min-height: 68px;
    padding: calc(10px + env(safe-area-inset-top)) 18px 12px;
    border-bottom: 1px solid rgba(113, 128, 185, .24);
    background: rgba(6, 10, 25, .88);
    box-shadow: 0 12px 34px rgba(0, 0, 0, .24);
  }

  .mobile-app-header a {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    font-size: 18px;
    letter-spacing: 0;
  }

  .mobile-brand-mark {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border: 1px solid rgba(45, 212, 191, .42);
    border-radius: 12px;
    color: #fff;
    background:
      linear-gradient(135deg, rgba(168, 85, 247, .95), rgba(20, 184, 166, .78));
    font-size: 11px;
    font-weight: 1000;
    box-shadow: 0 12px 26px rgba(124, 58, 237, .25);
  }

  .mobile-app-header button {
    display: none;
  }

  .mobile-menu-lines {
    position: relative;
    width: 18px;
    height: 12px;
    flex: 0 0 auto;
  }

  .mobile-menu-lines::before,
  .mobile-menu-lines::after,
  .mobile-menu-lines {
    border-top: 2px solid currentColor;
  }

  .mobile-menu-lines::before,
  .mobile-menu-lines::after {
    content: "";
    position: absolute;
    left: 0;
    width: 18px;
  }

  .mobile-menu-lines::before { top: 4px; }
  .mobile-menu-lines::after { top: 10px; }

  .main {
    width: 100%;
    padding: 16px 14px 22px;
  }

  .shell,
  .main > * {
    width: 100%;
    min-width: 0;
  }

  .topbar {
    display: none;
  }

  .topbar::after {
    content: "";
    position: absolute;
    right: -28px;
    bottom: 4px;
    width: 260px;
    height: 90px;
    pointer-events: none;
    background:
      radial-gradient(ellipse at center, rgba(45, 212, 191, .16), transparent 60%),
      linear-gradient(170deg, transparent 24%, rgba(168, 85, 247, .22), transparent 64%);
    transform: rotate(-7deg);
  }

  .topbar > div:first-child,
  .top-actions {
    position: relative;
    z-index: 1;
  }

  .topbar h1 {
    max-width: 78%;
    margin: 0;
    color: #fff;
    font-size: clamp(34px, 11vw, 48px);
    line-height: .98;
  }

  .topbar p {
    max-width: 86%;
    margin-top: 10px;
    color: #b8c6e8;
    font-size: 16px;
    line-height: 1.45;
  }

  .top-actions {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .top-actions > .primary[data-action="atualizar-base"] {
    display: none;
  }

  .user-session {
    width: auto;
    margin: 0 0 0 auto;
    padding: 8px 10px;
    border: 1px solid rgba(148, 163, 184, .28);
    border-radius: 999px;
    background: rgba(12, 18, 36, .74);
  }

  .user-session span {
    max-width: 150px;
    color: #d5def7;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .user-session .ghost.small {
    display: none;
  }

  .base-folder-bar {
    gap: 14px;
    margin: 0 0 16px;
    padding: 18px;
    overflow: hidden;
    border: 1px solid rgba(128, 90, 213, .46);
    border-radius: 22px;
    background:
      linear-gradient(145deg, rgba(17, 24, 48, .98), rgba(8, 13, 31, .96)),
      radial-gradient(circle at 20% 0%, rgba(168, 85, 247, .2), transparent 10rem);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
  }

  .base-folder-bar .folder-bar-info {
    padding-left: 58px;
    position: relative;
    flex: none;
  }

  .base-folder-bar .folder-bar-info::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background:
      linear-gradient(135deg, rgba(168, 85, 247, .95), rgba(91, 33, 182, .88));
    box-shadow: 0 12px 30px rgba(124, 58, 237, .28);
  }

  .base-folder-bar .folder-bar-info strong {
    display: block;
    color: #fff;
    font-size: 20px;
    line-height: 1.15;
  }

  .base-folder-bar .folder-bar-info span {
    display: block;
    margin-top: 6px;
    color: #aebbdd;
    font-size: 14px;
    line-height: 1.35;
  }

  .upload-inline-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .file-picker,
  .base-folder-bar .file-picker {
    display: flex;
    align-items: center;
    min-height: 74px;
    padding: 13px 48px 13px 72px;
    position: relative;
    border: 1px solid rgba(113, 128, 185, .28);
    border-radius: 17px;
    background: rgba(255, 255, 255, .045);
  }

  .file-picker::before {
    content: "";
    position: absolute;
    left: 16px;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(168, 85, 247, .95), rgba(91, 33, 182, .9));
  }

  .folder-upload-form .file-picker::before {
    background: linear-gradient(135deg, rgba(20, 184, 166, .95), rgba(13, 148, 136, .9));
  }

  .file-picker::after {
    content: ">";
    position: absolute;
    right: 17px;
    color: #dce7ff;
    font-size: 28px;
    line-height: 1;
  }

  .file-picker span {
    color: #f8fbff;
    font-size: 17px;
    font-weight: 900;
  }

  .base-folder-bar .file-picker .file-picker-icon {
    position: absolute;
    left: 25px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    color: #ffffff !important;
    z-index: 2;
  }

  .file-picker input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0 !important;
    cursor: pointer;
    z-index: 3;
  }

  .upload-inline-form .primary,
  .upload-inline-form .ghost,
  .base-folder-bar > button,
  .actions .primary,
  .actions .ghost,
  .actions-row a,
  .panel-head .ghost,
  .panel-head .primary {
    min-height: 54px;
    border-radius: 16px;
    justify-content: center;
  }

  .upload-inline-form .primary,
  .base-folder-bar > button.primary,
  .actions .primary {
    background: linear-gradient(135deg, #a855f7, #7c3aed);
    box-shadow: 0 14px 34px rgba(124, 58, 237, .32);
  }

  .folder-upload-form .ghost,
  .base-folder-bar > button.ghost {
    border-color: rgba(45, 212, 191, .58);
    color: #e6fffb;
    background: rgba(20, 184, 166, .12);
  }

  .upload-result,
  #status-output,
  pre {
    max-width: 100%;
    overflow-x: auto;
    border-radius: 16px;
    white-space: pre-wrap;
    word-break: break-word;
  }

  .mobile-app-home {
    gap: 14px;
  }

  .mobile-hero-card {
    min-height: 126px;
    padding: 19px;
    border-color: rgba(128, 90, 213, .42);
    border-radius: 22px;
    background:
      linear-gradient(135deg, rgba(28, 18, 75, .96), rgba(8, 16, 36, .94)),
      radial-gradient(circle at 88% 16%, rgba(20, 184, 166, .18), transparent 9rem);
  }

  .mobile-hero-card strong {
    font-size: 28px;
  }

  .mobile-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .mobile-metric-card,
  .card,
  .panel,
  .export-card,
  .product-kpi,
  .insight,
  .note-grid > div,
  .status-box {
    border: 1px solid rgba(113, 128, 185, .26);
    border-radius: 20px;
    background:
      linear-gradient(145deg, rgba(18, 25, 48, .96), rgba(9, 14, 30, .94));
    box-shadow: 0 16px 38px rgba(0, 0, 0, .22);
  }

  .mobile-metric-card {
    min-width: auto;
    min-height: 110px;
    scroll-snap-align: none;
  }

  .mobile-metric-card:first-child {
    grid-column: 1 / -1;
  }

  .mobile-metric-card strong {
    font-size: 25px;
  }

  .mobile-quick-actions {
    grid-template-columns: 1fr 1fr;
    gap: 11px;
  }

  .mobile-quick-actions a {
    min-height: 68px;
    border-color: rgba(45, 212, 191, .28);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(124, 58, 237, .34), rgba(20, 184, 166, .18));
  }

  .cards,
  .cards.compact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .cards .card,
  .mini-metric {
    min-height: 102px;
    padding: 15px;
  }

  .card span,
  .mini-metric span {
    color: #aebbdd;
    font-size: 12px;
    line-height: 1.3;
  }

  .card strong,
  .mini-metric strong {
    margin-top: 8px;
    color: #fff;
    font-size: clamp(22px, 8vw, 32px);
    line-height: 1.02;
  }

  .grid.two,
  .product-layout,
  .product-bottom,
  .overview-grid,
  .decision-kpis,
  .product-kpis,
  .analysis-grid,
  .mini-panels,
  .note-grid,
  .quick-actions,
  .settings-form {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 13px;
  }

  .panel {
    margin-bottom: 14px;
    padding: 17px;
  }

  .panel-head {
    gap: 10px;
    margin-bottom: 14px;
  }

  .panel-head h2 {
    font-size: 20px;
    line-height: 1.16;
  }

  .section-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 0;
  }

  .section-toolbar .muted {
    padding: 12px 14px;
    border: 1px solid rgba(113, 128, 185, .2);
    border-radius: 14px;
    background: rgba(255, 255, 255, .04);
  }

  input,
  select,
  textarea {
    width: 100%;
    min-height: 50px;
    border-radius: 15px;
    font-size: 16px;
  }

  label {
    min-width: 0;
  }

  .settings-form label,
  .filters label,
  .product-filters label,
  .premium-filters label {
    display: grid;
    gap: 7px;
    color: #c9d4ee;
    font-size: 13px;
    font-weight: 900;
  }

  .settings-hub {
    gap: 9px;
  }

  .settings-module {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
    border-radius: 14px;
  }

  .settings-module-icon {
    width: 36px;
    height: 36px;
    border-radius: 11px;
  }

  .settings-module-icon .nav-icon {
    width: 20px;
    height: 20px;
  }

  .settings-module-body {
    gap: 8px;
  }

  .settings-module h2 {
    max-width: calc(100% - 28px);
    font-size: 18px;
    line-height: 1.15;
  }

  .settings-module-arrow {
    top: 12px;
    right: 14px;
    font-size: 24px;
  }

  .settings-module-grid {
    grid-template-columns: 1fr;
    gap: 6px;
    font-size: 13px;
  }

  .settings-module-action {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 10px 12px;
    justify-self: stretch;
    font-size: 14px;
  }

  .settings-role-row b {
    padding: 7px 9px;
    font-size: 11px;
  }

  .settings-access-row,
  .settings-role-row {
    gap: 6px;
  }

  .settings-avatar {
    width: 32px;
    height: 32px;
    font-size: 13px;
  }

  .settings-security-line {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
  }

  .settings-security-line span {
    width: 100%;
  }

  .settings-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .settings-status-grid span:first-child {
    grid-column: 1 / -1;
  }

  .settings-status-grid span {
    min-height: 58px;
    padding: 9px;
  }

  .settings-status-grid small {
    font-size: 11px;
  }

  .settings-status-grid strong {
    margin-top: 5px;
    font-size: 19px;
  }

  .settings-status-output {
    max-height: 130px;
    font-size: 12px;
  }

  .import-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .import-history-table {
    min-width: 980px;
  }

  .users-admin-forms,
  .grid.two.users-admin-lists {
    grid-template-columns: 1fr;
  }

  .users-link-form {
    grid-template-columns: 1fr;
  }

  .users-inline-edit {
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .cnpj-lookup-row {
    grid-template-columns: 1fr;
  }

  .settings-edit-head,
  .settings-edit-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .settings-edit-grid {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .check {
    display: flex !important;
    align-items: center;
    grid-template-columns: none;
    gap: 10px;
  }

  .check input {
    width: 20px;
    min-height: 20px;
  }

  .actions.inline,
  .actions-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .mobile-product-search {
    grid-template-columns: 1fr;
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(18, 25, 48, .96), rgba(9, 14, 30, .94));
  }

  .mobile-filter-trigger {
    border-color: rgba(45, 212, 191, .42);
    border-radius: 16px;
    color: #e6fffb;
    background: rgba(20, 184, 166, .12);
  }

  .mobile-filter-panel,
  .mobile-menu-sheet {
    right: 12px;
    left: 12px;
    bottom: calc(86px + env(safe-area-inset-bottom));
    border-color: rgba(128, 90, 213, .42);
    border-radius: 24px;
    background:
      linear-gradient(160deg, rgba(17, 24, 48, .98), rgba(7, 12, 28, .98));
  }

  .mobile-menu-sheet a,
  .mobile-menu-sheet nav button {
    min-height: 56px;
    border-radius: 16px;
  }

  .table-wrap {
    width: 100%;
    overflow: visible;
  }

  .table-wrap tbody {
    gap: 13px;
  }

  .table-wrap tbody tr {
    position: relative;
    display: grid;
    gap: 0;
    padding: 15px;
    overflow: hidden;
    border: 1px solid rgba(113, 128, 185, .25);
    border-radius: 20px;
    background:
      linear-gradient(145deg, rgba(18, 25, 48, .96), rgba(9, 14, 30, .95));
    box-shadow: 0 16px 38px rgba(0, 0, 0, .22);
  }

  .table-wrap tbody tr::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, #a855f7, #14b8a6);
    opacity: .75;
  }

  .table-wrap td {
    min-width: 0;
    padding: 8px 0;
    border-color: rgba(148, 163, 184, .12);
    color: #eef4ff;
    font-size: 14px;
    line-height: 1.35;
  }

  .table-wrap td::before {
    max-width: 43%;
    color: #98a8cc;
    font-size: 12px;
    text-transform: uppercase;
  }

  .table-wrap tr.mobile-card-ready td.mobile-card-title {
    display: block;
    padding: 0 0 10px;
    border-bottom-color: rgba(45, 212, 191, .24);
    color: #fff;
    font-size: 18px;
    font-weight: 1000;
    text-align: left;
  }

  .table-wrap tr.mobile-card-ready td.mobile-card-title::before {
    display: block;
    max-width: none;
    margin-bottom: 3px;
    color: #22d3ee;
    font-size: 11px;
  }

  .table-wrap td .badge {
    justify-self: end;
  }

  .table-wrap td .ghost,
  .table-wrap td .primary,
  .table-wrap td a.ghost,
  .table-wrap td button {
    width: 100%;
    min-height: 42px;
    margin-top: 4px;
    justify-content: center;
  }

  .access-key,
  .table-wrap td:last-child {
    word-break: break-word;
  }

  .empty,
  .empty-state {
    padding: 18px;
    border-radius: 16px;
  }

  .product-table tbody tr td:first-child {
    display: flex;
    justify-content: flex-start;
    gap: 12px;
  }

  .product-table tbody tr td:nth-child(2),
  .table-wrap tbody tr td:nth-child(2) {
    font-size: 16px;
  }

  .product-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .product-tabs a {
    flex: 0 0 auto;
    min-height: 42px;
    border-radius: 999px;
  }

  .toast {
    right: 12px;
    bottom: calc(98px + env(safe-area-inset-bottom));
    left: 12px;
    width: auto;
    border-radius: 16px;
  }

  .mobile-bottom-nav {
    min-height: calc(82px + env(safe-area-inset-bottom));
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom));
    border: 1px solid rgba(113, 128, 185, .24);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    background: rgba(8, 12, 27, .96);
    box-shadow: 0 -18px 54px rgba(0, 0, 0, .42);
  }

  .mobile-bottom-nav a,
  .mobile-bottom-nav button {
    min-height: 60px;
    border-radius: 18px;
    font-size: 11px;
  }

  .mobile-bottom-nav a.active,
  .mobile-bottom-nav button[aria-expanded="true"] {
    color: #f6edff;
    background: rgba(124, 58, 237, .24);
  }

  .mobile-bottom-nav a.active::after,
  .mobile-bottom-nav button[aria-expanded="true"]::after {
    content: "";
    width: 34px;
    height: 3px;
    border-radius: 999px;
    background: #a855f7;
  }

  .ai-assistant {
    display: none !important;
  }

  .audit-hub-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .audit-sector-card {
    border-radius: 22px;
  }

  .audit-sector-stats {
    grid-template-columns: 1fr;
  }

  .audit-sector-stats div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 52px;
    border-radius: 16px;
  }

  .audit-sector-stats strong {
    margin-top: 0;
    text-align: right;
  }

  .audit-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
}

@media (max-width: 767px) {
  .quick-product-result {
    margin: 0 0 14px;
    padding: 17px;
    border-radius: 22px;
    background:
      linear-gradient(145deg, rgba(18, 25, 48, .98), rgba(9, 14, 30, .96)),
      radial-gradient(circle at 92% 0%, rgba(168, 85, 247, .22), transparent 10rem);
  }

  .quick-product-head {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    align-items: center;
    gap: 8px 12px;
    margin-bottom: 14px;
  }

  .quick-product-media {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 86px;
    height: 86px;
    flex-basis: 86px;
    border-radius: 16px;
  }

  .quick-product-media span {
    font-size: 32px;
  }

  .quick-product-head > div:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }

  .quick-product-head .badge {
    grid-column: 2;
    grid-row: 2;
    width: fit-content;
    max-width: 100%;
    white-space: normal;
  }

  .quick-product-head h2 {
    font-size: 24px;
    line-height: 1.05;
  }

  .quick-product-head .badge {
    width: fit-content;
  }

  .quick-price-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .quick-price-grid article:first-child {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, rgba(124, 58, 237, .34), rgba(20, 184, 166, .12));
  }

  .quick-price-grid strong {
    font-size: 23px;
  }

  .quick-product-details {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .quick-product-details > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 12px;
    padding: 13px;
  }

  .quick-product-details span,
  .quick-product-details small {
    grid-column: 1;
  }

  .quick-product-details strong {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    max-width: 150px;
    text-align: right;
  }

  .quick-product-alert {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .quick-linked-notes a {
    grid-template-columns: 1fr;
  }

  .quick-linked-notes em {
    grid-row: auto;
    justify-self: start;
  }

  .quick-product-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .quick-product-actions a {
    min-height: 48px;
    justify-content: center;
  }
}

@media (max-width: 430px) {
  .quick-product-head {
    grid-template-columns: 74px minmax(0, 1fr);
  }

  .quick-product-media {
    width: 74px;
    height: 74px;
    flex-basis: 74px;
    border-radius: 14px;
  }

  .quick-product-media span {
    font-size: 28px;
  }

  .quick-product-head h2 {
    font-size: 22px;
  }
}

.compact-head {
  align-items: flex-start;
}

@media (max-width: 640px) {
  .topbar {
    margin-bottom: 14px;
  }

  .topbar h1 {
    max-width: 10ch;
    font-size: 34px;
    line-height: 1.02;
  }

  .topbar p {
    font-size: 14px;
    line-height: 1.35;
  }

  .top-actions:empty {
    display: none;
  }

  .decision-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
    margin-bottom: 12px;
  }

  .decision-kpis .product-kpi {
    min-height: 92px;
    padding: 13px;
    border-radius: 12px;
  }

  .decision-kpis .product-kpi::after {
    right: 12px;
    top: 14px;
    width: 42px;
    height: 42px;
  }

  .product-kpi span {
    font-size: 13px;
    line-height: 1.2;
  }

  .product-kpi strong {
    margin: 7px 0 4px;
    font-size: 23px;
    line-height: 1.05;
  }

  .product-kpi small {
    font-size: 12px;
    line-height: 1.25;
  }

  .product-filter-panel {
    padding: 12px;
    margin-bottom: 12px;
  }

  .product-tabs {
    margin-bottom: 14px;
  }

  .product-tabs a {
    min-height: 48px;
    padding: 0 14px;
  }

  .product-list-panel {
    padding: 10px;
    border-radius: 16px;
  }

  .product-list-toolbar {
    grid-template-columns: 1fr auto;
    gap: 8px;
    margin-bottom: 12px;
  }

  .source-pill,
  .order-pill {
    min-height: 38px;
    padding: 0 10px;
    font-size: 13px;
  }

  .consulta-list-search {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .consulta-list-search input,
  .consulta-list-search button {
    width: 100%;
    min-height: 46px;
  }

  .product-list-item {
    min-height: 70px;
    grid-template-columns: 46px minmax(0, 1fr) minmax(64px, auto);
    gap: 9px;
    padding: 9px;
  }

  .product-list-photo {
    width: 42px;
    height: 42px;
  }

  .product-list-item strong {
    font-size: 14px;
  }

  .product-list-item small {
    font-size: 12px;
  }

  .product-list-item em {
    font-size: 14px;
  }

  .purchase-builder {
    grid-template-columns: 1fr;
  }

  .purchase-list-row {
    grid-template-columns: 24px 42px minmax(0, 1fr) auto;
  }

  .purchase-list-row .purchase-qty {
    grid-column: 3 / -1;
    width: 100%;
  }

  .compact-head {
    display: grid;
    grid-template-columns: 1fr;
  }
}

.app-shell .product-catalog-panel {
  padding: 16px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #f8fafc;
  color: #111827;
  box-shadow: 0 18px 46px rgba(2, 6, 23, .18);
}

.app-shell .product-catalog-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin: 0 0 14px;
}

.app-shell .product-catalog-source,
.app-shell .product-catalog-order {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  padding: 0 14px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
}

.app-shell .product-catalog-source {
  color: #166534;
  background: #dcfce7;
}

.app-shell .product-catalog-source .btn-icon {
  width: 20px;
  height: 20px;
}

.app-shell .product-catalog-order {
  justify-self: end;
  color: #111827;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .08);
}

.app-shell .product-catalog-panel .consulta-list-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin: 0 0 14px;
}

.app-shell .product-catalog-panel .consulta-list-search input {
  min-width: 0;
  min-height: 46px;
  color: #111827;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
}

.app-shell .product-catalog-panel .consulta-list-search input::placeholder {
  color: #6b7280;
}

.app-shell .product-catalog-panel .consulta-list-search button {
  min-height: 46px;
  padding: 0 18px;
  border-radius: 8px;
}

.app-shell .product-catalog-total {
  margin: 0 0 14px;
  color: #4b5563;
  font-size: 15px;
}

.app-shell .product-catalog-list {
  display: block;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}

.app-shell .product-catalog-row {
  min-height: 76px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) minmax(82px, auto);
  gap: 12px;
  align-items: center;
  padding: 10px 14px;
  border: 0;
  border-bottom: 1px solid #e5e7eb;
  background: #fff;
}

.app-shell .product-catalog-row:last-child {
  border-bottom: 0;
}

.app-shell .product-catalog-photo {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #eef2f7;
  border-radius: 8px;
  background: #fff;
}

.app-shell .product-catalog-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.app-shell .product-catalog-photo span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: #2563eb;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  background: #eff6ff;
}

.app-shell .product-catalog-info {
  min-width: 0;
}

.app-shell .product-catalog-info strong {
  display: block;
  color: #111827;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.app-shell .product-catalog-info small {
  display: block;
  margin-top: 4px;
  color: #4b5563;
  font-size: 13px;
  line-height: 1.2;
}

.app-shell .product-catalog-price {
  display: block;
  color: #111827;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.2;
  text-align: right;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .app-shell .product-catalog-panel {
    padding: 10px;
    border-radius: 14px;
  }

  .app-shell .product-catalog-toolbar {
    grid-template-columns: 1fr auto;
    gap: 8px;
    margin-bottom: 12px;
  }

  .app-shell .product-catalog-source,
  .app-shell .product-catalog-order {
    min-height: 38px;
    padding: 0 10px;
    font-size: 13px;
  }

  .app-shell .product-catalog-panel .consulta-list-search {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .app-shell .product-catalog-panel .consulta-list-search input,
  .app-shell .product-catalog-panel .consulta-list-search button {
    width: 100%;
  }

  .app-shell .product-catalog-row {
    min-height: 70px;
    grid-template-columns: 44px minmax(0, 1fr) minmax(66px, auto);
    gap: 9px;
    padding: 9px;
  }

  .app-shell .product-catalog-photo {
    width: 40px;
    height: 40px;
  }

  .app-shell .product-catalog-info strong {
    font-size: 14px;
  }

  .app-shell .product-catalog-info small {
    font-size: 12px;
  }

  .app-shell .product-catalog-price {
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  body.app-shell[data-active="/produtos"] .mobile-app-header,
  body.app-shell[data-active="/produtos"] .topbar {
    display: none;
  }
}

.cadastro-master {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  gap: 16px;
  align-items: start;
}

.cadastro-master .panel {
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #111827;
  box-shadow: 0 18px 46px rgba(2, 6, 23, .18);
}

.cadastro-master-head,
.cadastro-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.cadastro-master h2,
.cadastro-editor h2 {
  margin: 0;
  color: #111827;
  font-size: 20px;
  line-height: 1.2;
}

.cadastro-master-head span,
.cadastro-editor-head span {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  color: #1f2937;
  border: 1px solid #e5e7eb;
  background: #fff;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.cadastro-editor-head span.active {
  color: #166534;
  border-color: #bbf7d0;
  background: #dcfce7;
}

.cadastro-editor-head span.inactive,
.cadastro-product-card.inactive .cadastro-product-state {
  color: #991b1b;
  border-color: #fecaca;
  background: #fee2e2;
}

.cadastro-master-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-bottom: 14px;
}

.cadastro-master-search input {
  min-width: 0;
  min-height: 46px;
  color: #111827;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
}

.cadastro-master-search input::placeholder {
  color: #6b7280;
}

.cadastro-master-search button {
  min-height: 46px;
  padding: 0 18px;
  border-radius: 8px;
}

.cadastro-master .cadastro-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.cadastro-master .cadastro-filters a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  color: #374151;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  font-weight: 800;
  text-decoration: none;
}

.cadastro-master .cadastro-filters a.active {
  color: #5b21b6;
  border-color: #c4b5fd;
  background: #ede9fe;
}

.cadastro-master .cadastro-filters b {
  margin: 0;
  color: inherit;
}

.cadastro-product-list {
  display: grid;
  gap: 8px;
  max-height: 620px;
  overflow: auto;
  padding-right: 2px;
}

.cadastro-product-card {
  min-height: 72px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px;
  color: #111827;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  text-decoration: none;
}

.cadastro-product-card.selected {
  border-color: #8b5cf6;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, .18);
}

.cadastro-product-card.inactive {
  opacity: .72;
}

.cadastro-product-photo {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid #eef2f7;
  border-radius: 8px;
  background: #eff6ff;
}

.cadastro-product-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
}

.cadastro-product-photo b {
  color: #2563eb;
  font-size: 20px;
  line-height: 1;
}

.cadastro-product-main {
  min-width: 0;
}

.cadastro-product-main strong {
  display: block;
  color: #111827;
  font-size: 14px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.cadastro-product-main small {
  display: block;
  margin-top: 4px;
  color: #4b5563;
  font-size: 12px;
  line-height: 1.2;
}

.cadastro-product-state {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 0 9px;
  color: #166534;
  border: 1px solid #bbf7d0;
  border-radius: 999px;
  background: #dcfce7;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.cadastro-editor {
  position: sticky;
  top: 18px;
}

.cadastro-photo-action {
  width: 100%;
  cursor: pointer;
}

.cadastro-master .upload-box {
  min-height: 132px;
  margin: 0 0 14px;
  color: #64748b;
  border-color: #cbd5e1;
  background: #fff;
}

.cadastro-master .upload-box img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-color: #e5e7eb;
  background: #fff;
}

.cadastro-origin {
  padding: 12px;
  margin-bottom: 14px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

.cadastro-origin span,
.cadastro-origin small {
  display: block;
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
}

.cadastro-origin strong {
  display: block;
  margin: 5px 0;
  color: #111827;
  line-height: 1.25;
}

.cadastro-editor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.cadastro-master label {
  color: #334155;
  font-size: 13px;
  font-weight: 800;
}

.cadastro-master input,
.cadastro-master select,
.cadastro-master textarea {
  color: #111827;
  border: 1px solid #d1d5db;
  background: #fff;
}

.cadastro-switches {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.cadastro-master .check {
  min-height: 44px;
  padding: 10px 12px;
  color: #111827;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

.cadastro-master .warning-note {
  color: #475569;
  border-color: #bae6fd;
  background: #f0f9ff;
}

.cadastro-packages {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}

.cadastro-packages-head strong,
.quick-related-packages > strong {
  display: block;
  color: #111827;
  font-size: 14px;
  line-height: 1.2;
}

.cadastro-packages-head small {
  display: block;
  margin-top: 3px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.35;
}

.cadastro-package-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #f8fafc;
}

.cadastro-package-row.suggestion {
  background: #faf5ff;
  border-color: #e9d5ff;
}

.cadastro-package-row.ignored {
  background: #f8fafc;
  border-style: dashed;
  opacity: .86;
}

.cadastro-package-row strong,
.cadastro-package-row small {
  display: block;
}

.cadastro-package-row strong {
  color: #111827;
  font-size: 13px;
  line-height: 1.2;
}

.cadastro-package-row small {
  margin-top: 3px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.3;
}

.cadastro-package-action {
  display: grid;
  grid-template-columns: 88px auto;
  gap: 8px;
  align-items: end;
}

.cadastro-package-action label {
  display: grid;
  gap: 3px;
  color: #64748b;
  font-size: 11px;
  font-weight: 900;
}

.cadastro-package-action input {
  width: 100%;
  min-height: 34px;
  padding: 0 8px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 800;
}

.cadastro-package-suggestions {
  display: grid;
  gap: 8px;
}

.cadastro-package-suggestions > span {
  color: #7c3aed;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.cadastro-package-ignored {
  border-top: 1px solid #e5e7eb;
  padding-top: 8px;
}

.cadastro-package-ignored summary {
  cursor: pointer;
  color: #64748b;
  font-size: 12px;
  font-weight: 900;
}

.cadastro-package-ignored .cadastro-package-row {
  margin-top: 8px;
}

@media (max-width: 767px) {
  .cadastro-master {
    grid-template-columns: 1fr;
  }

  .cadastro-editor {
    position: static;
    order: -1;
  }

  .cadastro-master .panel {
    padding: 12px;
    border-radius: 14px;
  }

  .cadastro-master-search,
  .cadastro-editor-grid,
  .cadastro-switches {
    grid-template-columns: 1fr;
  }

  .cadastro-product-list {
    max-height: none;
    overflow: visible;
  }

  .cadastro-product-card {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 9px;
  }

  .cadastro-product-state {
    font-size: 11px;
  }

  .cadastro-package-row {
    grid-template-columns: 1fr;
  }

  .cadastro-package-action {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

.products-module-shell {
  padding: 18px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  color: #111827;
  box-shadow: 0 18px 46px rgba(2, 6, 23, .22);
}

.products-module-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin-bottom: 18px;
}

.products-module-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  box-shadow: 0 10px 24px rgba(124, 58, 237, .28);
}

.products-module-icon .btn-icon {
  width: 20px;
  height: 20px;
}

.products-module-head h1 {
  margin: 0;
  color: #111827;
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 0;
}

.products-module-head p {
  margin: 7px 0 0;
  color: #4b5563;
  line-height: 1.35;
}

.products-module-shell .product-tabs {
  height: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin: 0 0 22px;
  padding: 4px;
  overflow: visible;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #f3f4f6;
  box-shadow: none;
}

.products-module-shell .product-tabs a {
  min-width: 0;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  color: #374151;
  border: 0;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}

.products-module-shell .product-tabs a.active {
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  box-shadow: 0 12px 24px rgba(124, 58, 237, .28);
}

.products-module-shell .product-catalog-panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.products-module-shell .product-catalog-toolbar {
  margin-bottom: 18px;
}

.products-module-shell .consulta-list-search {
  grid-template-columns: minmax(0, 1fr) 120px;
  margin-bottom: 18px;
}

.products-module-shell .product-catalog-list {
  border-color: #e5e7eb;
  box-shadow: none;
}

.products-module-shell .product-catalog-row {
  color: inherit;
  text-decoration: none;
}

.products-module-shell .product-catalog-row.selected {
  border-color: #8b5cf6;
  background: #f5f3ff;
  box-shadow: inset 4px 0 0 #7c3aed;
}

.products-module-shell .product-kpis,
.products-module-shell .product-filter-panel {
  margin-left: 0;
  margin-right: 0;
}

.products-module-shell .purchase-builder .panel,
.products-module-shell .purchase-side {
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  color: #111827;
  box-shadow: none;
}

.products-module-shell .purchase-builder h2,
.products-module-shell .purchase-side h2 {
  color: #111827;
}

.products-module-shell .purchase-builder .muted,
.products-module-shell .purchase-side .muted {
  color: #4b5563;
}

.products-module-shell .purchase-side .side-stat {
  border-color: #e5e7eb;
  background: #fff;
}

.products-module-shell .purchase-side .side-stat span {
  color: #4b5563;
}

.products-module-shell .purchase-side .side-stat strong {
  color: #111827;
}

.products-module-shell .cadastro-master .panel {
  box-shadow: none;
}

@media (max-width: 767px) {
  .products-module-shell {
    padding: 14px;
    border-radius: 16px;
  }

  .products-module-head {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 14px;
  }

  .products-module-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
  }

  .products-module-head h1 {
    font-size: 24px;
  }

  .products-module-head p {
    font-size: 14px;
  }

  .products-module-shell .product-tabs {
    margin-bottom: 16px;
  }

  .products-module-shell .product-tabs a {
    min-height: 42px;
    padding: 0 8px;
    font-size: 14px;
  }

  .products-module-shell .consulta-list-search {
    grid-template-columns: minmax(0, 1fr) 96px;
    gap: 8px;
  }

  .products-module-shell .consulta-list-search input,
  .products-module-shell .consulta-list-search button {
    min-height: 44px;
  }
}

.products-module-shell .purchase-product-list {
  display: grid;
  gap: 10px;
  overflow: visible;
  border: 0;
  background: transparent;
}

.products-module-shell .purchase-list-row {
  min-height: 74px;
  display: grid;
  grid-template-columns: 28px 48px minmax(0, 1fr) auto 92px;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
}

.products-module-shell .purchase-check {
  width: 28px;
  height: 44px;
  display: grid;
  place-items: center;
}

.products-module-shell .purchase-check input {
  width: 18px;
  height: 18px;
  accent-color: #7c3aed;
}

.products-module-shell .purchase-list-row .product-list-photo {
  width: 44px;
  height: 44px;
  border: 1px solid #eef2f7;
  background: #fff;
}

.products-module-shell .purchase-item-info {
  min-width: 0;
}

.products-module-shell .purchase-item-info strong {
  display: block;
  color: #111827;
  font-size: 14px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.products-module-shell .purchase-item-info small {
  display: block;
  margin-top: 4px;
  color: #4b5563;
  font-size: 12px;
  line-height: 1.2;
}

.products-module-shell .purchase-item-price {
  color: #111827;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.products-module-shell .purchase-list-row .purchase-qty {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  color: #111827;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  background: #fff;
  font-size: 14px;
}

.products-module-shell .purchase-qty-field {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #4b5563;
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 767px) {
  .products-module-shell .purchase-builder {
    gap: 12px;
  }

  .products-module-shell .purchase-builder .panel,
  .products-module-shell .purchase-side {
    padding: 12px;
    border-radius: 14px;
  }

  .products-module-shell .purchase-builder .panel-head {
    gap: 10px;
    margin-bottom: 12px;
  }

  .products-module-shell .purchase-builder .panel-head .primary {
    width: 100%;
  }

  .products-module-shell .purchase-list-row {
    grid-template-columns: 32px 50px minmax(0, 1fr);
    grid-template-areas:
      "check photo info"
      "price price price"
      "qty qty qty";
    gap: 10px;
    align-items: start;
    padding: 12px;
  }

  .products-module-shell .purchase-check {
    grid-area: check;
    align-self: start;
    width: 32px;
    height: 50px;
    padding-top: 4px;
  }

  .products-module-shell .purchase-list-row .product-list-photo {
    grid-area: photo;
    width: 48px;
    height: 48px;
  }

  .products-module-shell .purchase-item-info {
    grid-area: info;
    padding-top: 2px;
  }

  .products-module-shell .purchase-item-info strong {
    font-size: 14px;
    line-height: 1.25;
  }

  .products-module-shell .purchase-item-info small {
    font-size: 12px;
    line-height: 1.25;
  }

  .products-module-shell .purchase-item-price {
    grid-area: price;
    justify-self: start;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    color: #111827;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #f9fafb;
    font-size: 13px;
  }

  .products-module-shell .purchase-qty-field {
    grid-area: qty;
  }

  .products-module-shell .purchase-list-row .purchase-qty {
    min-height: 46px;
    font-size: 16px;
  }
}

.products-module-shell .purchase-list-row {
  grid-template-columns: 30px 48px minmax(180px, 1fr) minmax(72px, max-content) 72px;
  grid-template-areas: "check photo info price qty";
}

.products-module-shell .purchase-check {
  position: relative;
  grid-area: check;
  align-self: stretch;
  width: 30px;
  min-height: 48px;
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
  line-height: 0;
}

.products-module-shell .purchase-check input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
  opacity: 0;
}

.products-module-shell .purchase-check-ui {
  position: relative;
  width: 22px;
  height: 22px;
  display: block;
  margin: auto;
  border: 2px solid #a78bfa;
  border-radius: 7px;
  background: #fff;
  box-shadow: inset 0 0 0 2px #fff;
}

.products-module-shell .purchase-check input:checked + .purchase-check-ui {
  border-color: #7c3aed;
  background: #7c3aed;
}

.products-module-shell .purchase-check input:checked + .purchase-check-ui::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.products-module-shell .purchase-list-row .product-list-photo {
  grid-area: photo;
}

.products-module-shell .purchase-item-info {
  grid-area: info;
}

.products-module-shell .purchase-item-price {
  grid-area: price;
  align-self: center;
  justify-self: end;
}

.products-module-shell .purchase-qty-field {
  grid-area: qty;
  align-self: center;
  justify-self: end;
  width: 72px;
}

.products-module-shell .purchase-qty-field {
  font-size: 0;
}

.products-module-shell .purchase-qty-field .purchase-qty {
  width: 72px;
  min-width: 0;
  min-height: 34px;
  padding: 0 8px;
  border-radius: 8px;
  text-align: center;
}

@media (max-width: 767px) {
  .products-module-shell .purchase-list-row {
    grid-template-columns: 28px 40px minmax(0, 1fr) 54px 48px;
    grid-template-areas: "check photo info price qty";
    gap: 7px;
    align-items: center;
    padding: 9px;
  }

  .products-module-shell .purchase-check {
    width: 28px;
    min-height: 42px;
  }

  .products-module-shell .purchase-check-ui {
    width: 20px;
    height: 20px;
    border-radius: 6px;
  }

  .products-module-shell .purchase-check input:checked + .purchase-check-ui::after {
    left: 5px;
    top: 2px;
    width: 5px;
    height: 10px;
  }

  .products-module-shell .purchase-list-row .product-list-photo {
    width: 38px;
    height: 38px;
  }

  .products-module-shell .purchase-item-info strong {
    font-size: 12px;
    line-height: 1.15;
  }

  .products-module-shell .purchase-item-info small {
    max-height: 28px;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.2;
  }

  .products-module-shell .purchase-item-price {
    min-height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 11px;
    line-height: 1.15;
  }

.products-module-shell .purchase-list-row .purchase-qty {
    min-height: 36px;
    width: 48px;
    padding: 0 4px;
    border-radius: 9px;
    font-size: 13px;
    text-align: center;
  }

  .products-module-shell .purchase-qty-field {
    width: 48px;
  }
}

.products-module-shell .quick-product-result {
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #f8fafc;
  color: #111827;
  box-shadow: none;
}

.products-module-shell .quick-product-media {
  border-color: #e5e7eb;
  background: #fff;
  cursor: default;
  transition: none;
}

.products-module-shell .quick-product-media:hover,
.products-module-shell .quick-product-media:focus-visible {
  border-color: #e5e7eb;
  box-shadow: none;
  transform: none;
}

.products-module-shell .quick-product-media span {
  color: #2563eb;
  background: #eff6ff;
}

.products-module-shell .quick-product-media small {
  color: #1e3a8a;
  background: rgba(219, 234, 254, .92);
}

.products-module-shell .quick-product-head > div:nth-child(2) > span:first-child,
.products-module-shell .quick-price-grid span,
.products-module-shell .quick-product-details span {
  color: #64748b;
}

.products-module-shell .quick-product-head h2,
.products-module-shell .quick-price-grid strong,
.products-module-shell .quick-product-details strong,
.products-module-shell .quick-linked-notes > strong {
  color: #111827;
}

.products-module-shell .quick-product-head p,
.products-module-shell .quick-price-grid small,
.products-module-shell .quick-product-details small,
.products-module-shell .quick-linked-notes small {
  color: #4b5563;
}

.products-module-shell .quick-price-grid article,
.products-module-shell .quick-product-details > div,
.products-module-shell .quick-linked-notes a,
.products-module-shell .quick-related-packages {
  border-color: #e5e7eb;
  background: #fff;
}

.products-module-shell .quick-related-packages {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
}

.products-module-shell .quick-related-packages a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 10px;
  color: inherit;
  text-decoration: none;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #f8fafc;
}

.products-module-shell .quick-related-packages span,
.products-module-shell .quick-related-packages small {
  display: block;
}

.products-module-shell .quick-related-packages span {
  color: #111827;
  font-size: 13px;
  font-weight: 900;
}

.products-module-shell .quick-related-packages small {
  margin-top: 3px;
  color: #64748b;
  font-size: 12px;
}

.products-module-shell .quick-related-packages em {
  color: #7c3aed;
  font-size: 13px;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.products-module-shell .quick-product-alert {
  border-color: #fde68a;
  background: #fffbeb;
}

.products-module-shell .quick-product-alert p,
.products-module-shell .quick-product-alert a {
  color: #92400e;
}

.products-module-shell .quick-linked-notes a {
  color: #111827;
}

.products-module-shell .quick-linked-notes em {
  color: #166534;
}

@media (max-width: 767px) {
  .products-module-shell .quick-product-result {
    padding: 14px;
    border-radius: 14px;
    background: #f8fafc;
  }

  .products-module-shell .quick-price-grid article:first-child {
    background: #fff;
  }

  .products-module-shell .quick-related-packages a {
    grid-template-columns: 1fr;
  }

  .products-module-shell .quick-related-packages em {
    white-space: normal;
  }
}

/* Executive mobile dashboard */
.dashboard-executive {
  width: 100%;
  max-width: 1360px;
  display: grid;
  gap: 18px;
  margin: 0 auto;
}

.dashboard-app-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.dashboard-brand-block {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 16px;
}

.dashboard-logo {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #0fbea8);
  box-shadow: 0 18px 36px rgba(37, 99, 235, .2);
  font-size: 19px;
  font-weight: 1000;
}

.dashboard-brand-block h2 {
  color: #fff;
  font-size: 34px;
  line-height: 1.05;
}

.dashboard-brand-block p {
  margin-top: 7px;
  color: #b7c0da;
  font-size: 18px;
  font-weight: 700;
}

.dashboard-top-actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

.dashboard-user-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-left: 12px;
  border-left: 1px solid rgba(96, 115, 176, .3);
  color: #ccd5ef;
  font-size: 15px;
}

.dashboard-user-info b {
  color: #fff;
}

.dashboard-user-info .btn-sair {
  padding: 6px 12px;
  border: 1px solid rgba(96, 115, 176, .4);
  border-radius: 8px;
  color: #b7c0da;
  text-decoration: none;
  font-size: 14px;
  transition: all 0.2s;
}

.dashboard-user-info .btn-sair:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.mobile-app-only {
  display: none;
}

.dashboard-bell {
  position: relative;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #ccd5ef;
  text-decoration: none;
}

.dashboard-bell::before {
  content: "";
  width: 31px;
  height: 31px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22Zm8-5h-2V10a6 6 0 1 0-12 0v7H4v2h16v-2ZM8 17v-7a4 4 0 0 1 8 0v7H8Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22Zm8-5h-2V10a6 6 0 1 0-12 0v7H4v2h16v-2ZM8 17v-7a4 4 0 0 1 8 0v7H8Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.dashboard-bell span {
  position: absolute;
  top: 1px;
  right: 0;
  min-width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 999px;
  color: #fff;
  background: #ef233c;
  font-size: 12px;
  font-weight: 900;
}

.dashboard-top-bell {
  position: relative;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #d9e2fb;
  text-decoration: none;
}

.dashboard-top-bell::before {
  content: "";
  width: 28px;
  height: 28px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22Zm8-5h-2V10a6 6 0 1 0-12 0v7H4v2h16v-2ZM8 17v-7a4 4 0 0 1 8 0v7H8Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22Zm8-5h-2V10a6 6 0 1 0-12 0v7H4v2h16v-2ZM8 17v-7a4 4 0 0 1 8 0v7H8Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.dashboard-top-bell span {
  position: absolute;
  top: 2px;
  right: 1px;
  min-width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  color: #fff;
  background: #ef233c;
  font-size: 11px;
  font-weight: 900;
}

.dashboard-refresh,
.dashboard-filter-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  color: #5eead4;
  border: 1px solid rgba(45, 212, 191, .34);
  border-radius: 16px;
  background: rgba(8, 47, 73, .38);
  font-size: 16px;
  font-weight: 900;
  text-decoration: none;
}

.dashboard-period-card,
.dashboard-kpi,
.dashboard-list-card {
  border: 1px solid rgba(96, 115, 176, .3);
  background:
    linear-gradient(145deg, rgba(17, 24, 50, .96), rgba(8, 13, 31, .97));
  box-shadow: 0 22px 55px rgba(0, 0, 0, .25);
}

.dashboard-period-card {
  overflow: hidden;
  border-radius: 14px;
}

.dashboard-period-main {
  display: grid;
  grid-template-columns: auto 48px minmax(180px, auto) 1px minmax(200px, 1fr) auto auto;
  gap: 16px;
  align-items: center;
  padding: 14px 18px;
}

.period-label-global {
  color: #aeb8d3;
  font-size: 15px;
  font-weight: 700;
}

.period-divider {
  width: 1px;
  height: 32px;
  background: rgba(96, 115, 176, .3);
}

.dashboard-period-icon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #4c1d95);
}

.dashboard-period-icon::before {
  content: "";
  width: 28px;
  height: 28px;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.dashboard-period-main label {
  min-width: 0;
  gap: 3px;
  color: #aeb8d3;
  font-size: 15px;
}

.dashboard-period-main label > span {
  font-weight: 700;
}

.dashboard-period-main select {
  width: auto;
  min-width: 0;
  height: 36px;
  padding: 0 28px 0 0;
  border: 0;
  color: #fff;
  background: #080d1f;
  font-size: 24px;
  font-weight: 900;
}

.dashboard-period-main select option {
  color: #fff;
  background: #111832;
}

.dashboard-period-main .dashboard-refresh {
  justify-self: end;
}

.dashboard-period-note {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #b8c2dd;
  font-size: 14px;
  line-height: 1.35;
}

.dashboard-period-note span {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid #7d8db6;
  border-radius: 50%;
  color: #9aa9d9;
  font-size: 13px;
  font-weight: 900;
}

.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.dashboard-kpi {
  position: relative;
  min-height: 150px;
  overflow: hidden;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
  border-radius: 16px;
}

.dashboard-kpi::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: currentColor;
}

.dashboard-kpi > div {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.dashboard-kpi span {
  display: block;
  color: currentColor;
  font-size: 15px;
  font-weight: 900;
}

.dashboard-kpi strong {
  display: block;
  margin-top: 11px;
  color: #fff;
  font-size: clamp(30px, 3.2vw, 40px);
  line-height: 1;
  overflow-wrap: anywhere;
}

.dashboard-kpi.money-card strong {
  font-size: clamp(25px, 2.4vw, 34px);
  white-space: nowrap;
  overflow-wrap: normal;
}

.dashboard-kpi small {
  display: block;
  margin-top: 12px;
  color: #c1cbe4;
  font-size: 14px;
  line-height: 1.35;
}

.dashboard-kpi.purple { color: #c879ff; }
.dashboard-kpi.blue { color: #6aa9ff; }
.dashboard-kpi.green { color: #58e37f; }
.dashboard-kpi.cyan { color: #52dce8; }
.dashboard-kpi.danger { color: #ff5568; }
.dashboard-kpi.orange { color: #f6a833; }

.dashboard-kpi-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 12px;
  color: #f8fbff;
  background: color-mix(in srgb, currentColor 20%, transparent);
  box-shadow: 0 4px 12px color-mix(in srgb, currentColor 15%, transparent);
  font-size: 22px;
  font-style: normal;
  font-weight: 900;
}

.dashboard-kpi-icon.icon-doc,
.dashboard-kpi-icon.icon-warning,
.dashboard-kpi-icon.icon-copy,
.dashboard-kpi-icon.icon-box,
.dashboard-kpi-icon.icon-file,
.dashboard-kpi-icon.icon-flow {
  background-color: currentColor;
  -webkit-mask: var(--icon) center / 30px 30px no-repeat;
  mask: var(--icon) center / 30px 30px no-repeat;
}

.alert-card,
.clean-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
}

.alert-card > .dashboard-kpi-icon,
.clean-card > .dashboard-kpi-icon {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
}

.alert-card > div:first-of-type,
.clean-card > div:first-of-type {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
}

.alert-breakdown,
.clean-card em {
  grid-column: 1 / -1;
  grid-row: 2;
}

.alert-breakdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 16px -24px -24px;
  border-top: 1px solid rgba(96, 115, 176, .18);
}

.alert-breakdown b {
  display: grid;
  place-items: center;
  min-height: 76px;
  color: #fff;
  border-left: 1px solid rgba(96, 115, 176, .18);
  font-size: 28px;
}

.alert-breakdown b:first-child {
  border-left: 0;
  color: #ff5568;
}

.alert-breakdown b:nth-child(2) {
  color: #ff9f2e;
}

.alert-breakdown b:nth-child(3) {
  color: #58e37f;
}

.alert-breakdown small {
  margin-top: 4px;
  color: #aeb8d3;
  font-size: 13px;
  font-weight: 700;
}

.clean-card em {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 10px -24px -24px;
  padding: 18px 24px;
  color: #e9fff2;
  border-top: 1px solid rgba(96, 115, 176, .18);
  font-size: 17px;
  font-style: normal;
  font-weight: 800;
}

.dashboard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
  color: #6a7c9f;
  font-size: 13px;
}

.footer-clock {
  display: flex;
  align-items: center;
  gap: 8px;
}

.footer-clock .btn-icon {
  width: 18px;
  height: 18px;
  background-color: currentColor;
  mask: var(--icon) center / contain no-repeat;
  -webkit-mask: var(--icon) center / contain no-repeat;
}

.dashboard-actions {
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px solid rgba(96, 115, 176, .3);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(17, 24, 50, .96), rgba(8, 13, 31, .97));
  box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
}

.dashboard-actions h2,
.dashboard-list-card h2 {
  color: #fff;
  font-size: 18px;
}

.dashboard-actions > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.dashboard-actions a,
.dashboard-actions button {
  min-height: 70px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-areas: "icon title" "icon sub";
  gap: 3px 14px;
  align-items: center;
  padding: 14px 18px;
  border: 1px solid rgba(96, 115, 176, .28);
  border-radius: 10px;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 16px 36px rgba(0, 0, 0, .24);
  text-align: left;
}

.dashboard-actions a .btn-icon,
.dashboard-actions button .btn-icon {
  grid-area: icon;
  width: 34px;
  height: 34px;
}

.dashboard-actions a b,
.dashboard-actions button b {
  grid-area: title;
  font-size: 16px;
  line-height: 1.1;
}

.dashboard-actions a small,
.dashboard-actions button small {
  grid-area: sub;
  color: #d0d9ee;
  font-size: 13px;
}

.action-import { background: linear-gradient(135deg, #7c1fff, #5b10ad); }
.action-audit { background: linear-gradient(135deg, #1d4ed8, #162f87); }
.action-product { background: linear-gradient(135deg, #0f766e, #075e5a); }
.action-process { background: linear-gradient(135deg, #1e293b, #111827); }

.dashboard-list-card {
  overflow: hidden;
  border-radius: 20px;
}

.dashboard-lists-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.dashboard-list-card > header {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
}

.dashboard-list-card h2 {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.dashboard-list-card h2 span {
  min-width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: rgba(244, 63, 94, .48);
  font-size: 13px;
}

.dashboard-list-card header a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #20dfc3;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.dashboard-list {
  border-top: 1px solid rgba(96, 115, 176, .24);
}

.dashboard-alert-row,
.dashboard-xml-row {
  min-height: 64px;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 20px;
  color: #fff;
  border-bottom: 1px solid rgba(96, 115, 176, .18);
  text-decoration: none;
}

.dashboard-empty-row {
  min-height: 72px;
  display: grid;
  place-items: center;
  padding: 16px 20px;
  color: #aeb8d3;
  font-size: 14px;
  border-top: 1px solid rgba(96, 115, 176, .18);
}

.dashboard-alert-row:last-child,
.dashboard-xml-row:last-child {
  border-bottom: 0;
}

.dashboard-alert-row > i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  color: currentColor;
  background: currentColor;
  -webkit-mask: none;
  mask: none;
}

.dashboard-alert-row.danger { color: #ff5568; }
.dashboard-alert-row.warn { color: #ffb02f; }

.dashboard-alert-row strong,
.dashboard-xml-row strong {
  display: block;
  color: #fff;
  font-size: 14px;
  line-height: 1.2;
}

.dashboard-alert-row small,
.dashboard-xml-row small {
  display: block;
  margin-top: 4px;
  color: #b7c0da;
  font-size: 13px;
}

.dashboard-alert-row > span,
.dashboard-xml-row > span {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid currentColor;
  border-radius: 8px;
  background: color-mix(in srgb, currentColor 16%, transparent);
  color: currentColor;
  font-weight: 900;
}

.dashboard-alert-row > b,
.dashboard-xml-row > b {
  display: none;
}

.dashboard-xml-row > i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  color: transparent;
  background: #60a5fa;
  box-shadow: none;
  font-size: 0;
}

.dashboard-xml-row > span {
  color: #60a5fa;
}

@media (min-width: 981px) {
  .dashboard-executive {
    padding-bottom: 34px;
  }

  .dashboard-app-top {
    display: none;
  }

  .dashboard-period-main {
    grid-template-columns: 46px minmax(178px, auto) minmax(240px, 1fr) auto auto;
    padding: 14px 16px;
  }

  .dashboard-kpi {
    min-height: 138px;
    padding: 18px;
  }

  .dashboard-kpi strong {
    font-size: clamp(30px, 3vw, 42px);
  }

  .dashboard-kpi.money-card strong {
    font-size: clamp(26px, 2.3vw, 36px);
  }

  .dashboard-actions {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }

  .dashboard-actions h2 {
    min-width: 150px;
  }

  .dashboard-actions > div {
    gap: 14px;
  }

  .dashboard-list-card > header {
    min-height: 58px;
    padding: 16px 18px;
  }

  .dashboard-alert-row,
  .dashboard-xml-row {
    min-height: 74px;
    padding: 12px 18px;
  }
}

@media (max-width: 767px) {
  body.app-shell[data-active="/dashboard"] .mobile-app-header {
    display: none;
  }

  body.app-shell[data-active="/dashboard"] .main {
    padding: calc(14px + env(safe-area-inset-top)) 18px 18px;
  }

  .dashboard-executive {
    gap: 18px;
    width: 100%;
    max-width: none;
  }

  .dashboard-actions {
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
  }

  .desktop-summary-only,
  .action-process,
  .period-refresh {
    display: none;
  }

  .mobile-app-only {
    display: flex;
  }

  b.mobile-app-only,
  small.mobile-app-only,
  span.mobile-app-only {
    display: block;
  }

  .dashboard-app-top {
    gap: 10px;
  }

  .dashboard-logo {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    font-size: 17px;
  }

  .dashboard-brand-block {
    gap: 14px;
  }

  .dashboard-brand-block h2 {
    font-size: 30px;
  }

  .dashboard-brand-block p {
    font-size: 16px;
  }

  .dashboard-top-actions {
    gap: 8px;
  }

  .dashboard-bell {
    width: 42px;
    height: 42px;
  }

  .dashboard-refresh {
    min-height: 42px;
    padding: 0 13px;
    border-radius: 999px;
    font-size: 14px;
  }

  .dashboard-period-main {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 10px;
    padding: 12px 14px;
  }

  .dashboard-period-note {
    display: none;
  }

  .dashboard-period-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
  }

  .dashboard-period-icon::before {
    width: 24px;
    height: 24px;
  }

  .dashboard-period-main label {
    font-size: 13px;
  }
  .dashboard-period-main label > span {
    font-weight: 700;
  }

  .dashboard-period-main select {
    height: 30px;
    font-size: 20px;
  }

  .dashboard-period-note {
    grid-column: 1 / -1;
    margin-top: 2px;
    padding-top: 14px;
    border-top: 1px solid rgba(96, 115, 176, .22);
  }

  .dashboard-filter-button {
    width: 42px;
    min-height: 42px;
    padding: 0;
    border-radius: 14px;
    font-size: 0;
  }

  .dashboard-filter-button .btn-icon {
    width: 22px;
    height: 22px;
  }

  .dashboard-period-card > p {
    padding: 15px 18px 18px;
    font-size: 15px;
  }

  .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .dashboard-kpi {
    min-height: 162px;
    padding: 20px;
    border-radius: 18px;
    flex-direction: row-reverse;
    justify-content: space-between;
  }

  .dashboard-kpi span {
    font-size: 16px;
  }

  .dashboard-kpi strong {
    font-size: clamp(31px, 10vw, 42px);
  }

  .dashboard-kpi.money-card strong {
    font-size: clamp(27px, 6.6vw, 32px);
  }

  .dashboard-kpi small {
    font-size: 16px;
  }

  .dashboard-kpi-icon {
    width: 48px;
    height: 48px;
    font-size: 27px;
    border-radius: 50%;
    background:
      radial-gradient(circle at 50% 45%, rgba(255, 255, 255, .16), transparent 34%),
      color-mix(in srgb, currentColor 54%, transparent);
    box-shadow: 0 0 32px color-mix(in srgb, currentColor 32%, transparent);
  }

  .dashboard-kpi-icon.icon-doc,
  .dashboard-kpi-icon.icon-warning,
  .dashboard-kpi-icon.icon-copy,
  .dashboard-kpi-icon.icon-box {
    -webkit-mask-size: 36px 36px;
    mask-size: 36px 36px;
  }

  .alert-card,
  .clean-card {
    display: flex;
    flex-direction: column;
  }

  .alert-card > .dashboard-kpi-icon,
  .clean-card > .dashboard-kpi-icon {
    position: absolute;
    top: 18px;
    right: 18px;
  }

  .alert-card > div:first-child,
  .clean-card > div:first-child {
    padding-right: 56px;
  }

  .alert-breakdown {
    margin: 12px -20px -20px;
  }

  .alert-breakdown b {
    min-height: 70px;
    font-size: 25px;
  }

  .clean-card em {
    margin: 8px -20px -20px;
    padding: 17px 20px;
  }

  .dashboard-actions h2,
  .dashboard-list-card h2 {
    font-size: 22px;
  }

  .dashboard-actions > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
  }

  .dashboard-actions a,
  .dashboard-actions button {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 12px 6px;
    border-radius: 12px;
    border: none;
    min-height: 80px;
  }

  .dashboard-actions a .btn-icon,
  .dashboard-actions button .btn-icon {
    width: 24px;
    height: 24px;
    margin-bottom: 2px;
  }

  .dashboard-actions a b,
  .dashboard-actions button b {
    font-size: 12px;
    line-height: 1.2;
    white-space: normal;
  }

  .dashboard-actions a small,
  .dashboard-actions button small {
    font-size: 10px;
    line-height: 1.1;
    white-space: normal;
    color: rgba(255, 255, 255, 0.7);
  }

  .dashboard-actions .action-process {
    display: none;
  }

  .dashboard-list-card > header {
    padding: 16px 14px;
  }

  .dashboard-lists-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .dashboard-alert-row,
  .dashboard-xml-row {
    grid-template-columns: 48px minmax(0, 1fr) auto 14px;
    gap: 11px;
    min-height: 78px;
    padding: 13px 14px;
  }

  .dashboard-alert-row > i,
  .dashboard-xml-row > i {
    width: 44px;
    height: 44px;
  }

  .dashboard-alert-row > i {
    border-radius: 0;
    -webkit-mask: var(--icon) center / 42px 42px no-repeat;
    mask: var(--icon) center / 42px 42px no-repeat;
  }

  .dashboard-xml-row > i {
    display: grid;
    place-items: end center;
    padding-bottom: 8px;
    border-radius: 10px;
    color: #e5f0ff;
    background: linear-gradient(135deg, #1d4ed8, #0f2b78);
    box-shadow: inset 0 0 0 1px rgba(147, 197, 253, .25);
    font-size: 10px;
    font-style: normal;
    font-weight: 1000;
  }

  .dashboard-alert-row strong,
  .dashboard-xml-row strong {
    font-size: 16px;
  }

  .dashboard-alert-row small,
  .dashboard-xml-row small {
    font-size: 14px;
  }

  .dashboard-alert-row > span,
  .dashboard-xml-row > span {
    min-height: 32px;
    padding: 0 10px;
    font-size: 13px;
  }

  .dashboard-alert-row > b,
  .dashboard-xml-row > b {
    display: block;
    color: #9da8c7;
    font-size: 26px;
    font-weight: 400;
  }

  .mobile-bottom-nav a.active {
    color: #fff;
    background: linear-gradient(135deg, rgba(124, 58, 237, .98), rgba(91, 33, 182, .88));
    box-shadow: inset 0 0 0 1px rgba(216, 180, 254, .22), 0 12px 28px rgba(124, 58, 237, .28);
  }
}

@media (max-width: 520px) {
  .dashboard-app-top {
    align-items: flex-start;
  }

  .dashboard-brand-block {
    flex: 1;
    align-items: center;
  }

  .dashboard-logo {
    width: 54px;
    height: 54px;
    border-radius: 15px;
  }

  .dashboard-brand-block h2 {
    font-size: 27px;
  }

  .dashboard-brand-block p {
    margin-top: 5px;
    font-size: 14px;
  }

  .dashboard-refresh {
    width: 42px;
    padding: 0;
    font-size: 0;
  }

  .dashboard-refresh .btn-icon {
    width: 21px;
    height: 21px;
  }

  .dashboard-period-main {
    grid-template-columns: 44px minmax(0, 1fr) 42px;
  }

  .dashboard-filter-button {
    width: 42px;
  }

  .dashboard-filter-button .btn-icon {
    width: 22px;
    height: 22px;
  }

  .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-kpi {
    min-height: 150px;
    padding: 15px;
  }

  .dashboard-kpi strong {
    font-size: clamp(28px, 9.2vw, 38px);
  }

  .dashboard-kpi.money-card strong {
    font-size: clamp(24px, 6.2vw, 27px);
  }

  .dashboard-kpi small {
    font-size: 14px;
  }

  .dashboard-kpi-icon {
    width: 44px;
    height: 44px;
    font-size: 25px;
  }

  .alert-card,
  .clean-card {
    display: flex;
    flex-direction: column;
  }

  .alert-card > .dashboard-kpi-icon,
  .clean-card > .dashboard-kpi-icon {
    position: absolute;
    right: 14px;
  }

  .alert-card > div:first-child,
  .clean-card > div:first-child {
    padding-right: 42px;
  }

  .dashboard-actions > div {
    display: flex;
  }

  .dashboard-actions a,
  .dashboard-actions button {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .dashboard-alert-row,
  .dashboard-xml-row {
    grid-template-columns: 44px minmax(0, 1fr) 74px 12px;
    gap: 8px;
  }

  .dashboard-alert-row > span,
  .dashboard-xml-row > span {
    padding: 0 7px;
    font-size: 12px;
  }
}

/* Ultrawide 34" Monitor Support */
@media (min-width: 1600px) {
  .dashboard-executive {
    max-width: 2560px;
  }
  
  .dashboard-kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  }
  
  .dashboard-actions > div {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
  
  .dashboard-lists-grid {
    grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));
  }
}

/* Dashboard visual refresh */
body.app-shell[data-active="/dashboard"] {
  background:
    radial-gradient(circle at 12% -8%, rgba(124, 58, 237, .18), transparent 30rem),
    radial-gradient(circle at 92% 2%, rgba(34, 211, 238, .12), transparent 34rem),
    linear-gradient(180deg, #030714 0%, #050917 45%, #030713 100%);
}

body.app-shell[data-active="/dashboard"] .shell {
  max-width: 1480px;
}

.dashboard-executive {
  gap: clamp(14px, 1.3vw, 20px);
}

.dashboard-period-card,
.dashboard-kpi,
.dashboard-actions,
.dashboard-list-card {
  border-color: rgba(90, 113, 169, .36);
  background:
    linear-gradient(145deg, rgba(14, 22, 48, .96), rgba(4, 10, 28, .98)),
    radial-gradient(circle at 18% 0%, rgba(124, 58, 237, .14), transparent 16rem);
  box-shadow: 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-period-card {
  border-radius: 20px;
}

.dashboard-period-main label {
  position: relative;
}

.dashboard-period-main label::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 4px;
  width: 12px;
  height: 12px;
  border-right: 3px solid #f6f8ff;
  border-bottom: 3px solid #f6f8ff;
  pointer-events: none;
  transform: translateY(-70%) rotate(45deg);
}

.dashboard-period-main select {
  padding-right: 34px;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.dashboard-kpi {
  --kpi-accent: currentColor;
  isolation: isolate;
  border-radius: 20px;
}

.dashboard-kpi::before {
  inset: 0;
  width: auto;
  background:
    radial-gradient(circle at 0% 0%, color-mix(in srgb, currentColor 26%, transparent), transparent 12rem),
    linear-gradient(90deg, color-mix(in srgb, currentColor 22%, transparent), transparent 38%);
  opacity: .74;
  pointer-events: none;
  z-index: 0;
}

.dashboard-kpi > * {
  position: relative;
  z-index: 1;
}

.dashboard-kpi.purple {
  --kpi-accent: #a855f7;
  border-color: rgba(168, 85, 247, .46);
  box-shadow: inset 2px 0 0 rgba(168, 85, 247, .74), 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-kpi.blue {
  --kpi-accent: #60a5fa;
  border-color: rgba(96, 165, 250, .5);
  box-shadow: inset 2px 0 0 rgba(96, 165, 250, .82), 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-kpi.green {
  --kpi-accent: #4ade80;
  border-color: rgba(74, 222, 128, .44);
  box-shadow: inset 2px 0 0 rgba(74, 222, 128, .74), 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-kpi.cyan {
  --kpi-accent: #22d3ee;
  border-color: rgba(34, 211, 238, .5);
  box-shadow: inset 2px 0 0 rgba(34, 211, 238, .82), 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-kpi.danger {
  --kpi-accent: #fb7185;
  border-color: rgba(251, 113, 133, .5);
  box-shadow: inset 2px 0 0 rgba(251, 113, 133, .82), 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-kpi.orange {
  --kpi-accent: #fbbf24;
  border-color: rgba(251, 191, 36, .44);
  box-shadow: inset 2px 0 0 rgba(251, 191, 36, .74), 0 22px 54px rgba(0, 0, 0, .34);
}

.dashboard-kpi-icon {
  color: #fff;
  background:
    radial-gradient(circle at 42% 34%, rgba(255, 255, 255, .24), transparent 35%),
    color-mix(in srgb, var(--kpi-accent) 58%, #09142b);
  box-shadow: 0 0 32px color-mix(in srgb, var(--kpi-accent) 32%, transparent);
}

.dashboard-kpi-icon.icon-doc,
.dashboard-kpi-icon.icon-warning,
.dashboard-kpi-icon.icon-copy,
.dashboard-kpi-icon.icon-box,
.dashboard-kpi-icon.icon-file,
.dashboard-kpi-icon.icon-flow {
  position: relative;
  background:
    radial-gradient(circle at 42% 34%, rgba(255, 255, 255, .24), transparent 35%),
    color-mix(in srgb, var(--kpi-accent) 58%, #09142b);
  -webkit-mask: none;
  mask: none;
}

.dashboard-kpi-icon.icon-doc::before,
.dashboard-kpi-icon.icon-warning::before,
.dashboard-kpi-icon.icon-copy::before,
.dashboard-kpi-icon.icon-box::before,
.dashboard-kpi-icon.icon-file::before,
.dashboard-kpi-icon.icon-flow::before {
  content: "";
  width: 58%;
  height: 58%;
  background: #fff;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.clean-card em .btn-icon {
  --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Zm4.7 5.3 1.4 1.4-7 7-4.2-4.2 1.4-1.4 2.8 2.8 5.6-5.6Z'/%3E%3C/svg%3E");
}

@media (min-width: 981px) {
  .dashboard-period-main {
    grid-template-columns: auto 52px minmax(220px, 1fr) auto;
    gap: 16px;
    padding: 16px 18px;
  }

  .dashboard-period-main label::after {
    right: 0;
  }

  .dashboard-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .dashboard-actions {
    border-radius: 18px;
  }

  .dashboard-actions a,
  .dashboard-actions button {
    border-radius: 14px;
  }
}

@media (max-width: 767px) {
  body.app-shell[data-active="/dashboard"] {
    background:
      radial-gradient(circle at 10% -10%, rgba(124, 58, 237, .22), transparent 23rem),
      radial-gradient(circle at 94% 0%, rgba(34, 211, 238, .16), transparent 22rem),
      linear-gradient(180deg, #020612 0%, #050917 52%, #020612 100%);
  }

  body.app-shell[data-active="/dashboard"] .main {
    padding: calc(14px + env(safe-area-inset-top)) 15px 10px;
  }

  .dashboard-executive {
    gap: 14px;
  }

  .dashboard-app-top {
    align-items: flex-start;
    gap: 10px;
  }

  .dashboard-brand-block {
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    gap: 12px;
  }

  .dashboard-logo {
    width: 50px;
    height: 50px;
    border-radius: 16px;
    background:
      linear-gradient(135deg, rgba(124, 58, 237, 1), rgba(34, 211, 238, .86));
    box-shadow: 0 0 0 1px rgba(103, 232, 249, .58), 0 14px 36px rgba(34, 211, 238, .2);
    font-size: 16px;
  }

  .dashboard-brand-block h2 {
    font-size: clamp(27px, 7.8vw, 31px);
    letter-spacing: 0;
  }

  .dashboard-brand-block p {
    max-width: 242px;
    color: #b8c4e6;
    font-size: clamp(12px, 3.5vw, 14px);
    line-height: 1.18;
  }

  .dashboard-top-actions {
    flex: 0 0 auto;
    gap: 8px;
  }

  .dashboard-bell,
  .dashboard-refresh.mobile-app-only {
    width: 48px;
    height: 48px;
    min-height: 48px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(105, 126, 190, .42);
    background: rgba(4, 10, 28, .66);
    box-shadow: inset 0 0 18px rgba(124, 58, 237, .16), 0 14px 34px rgba(0, 0, 0, .24);
    font-size: 0;
  }

  .dashboard-bell::before {
    width: 25px;
    height: 25px;
  }

  .dashboard-bell span {
    top: 0;
    right: -2px;
    min-width: 25px;
    height: 25px;
    font-size: 12px;
  }

  .dashboard-refresh.mobile-app-only .btn-icon {
    width: 25px;
    height: 25px;
  }

  .dashboard-period-card {
    border-radius: 19px;
  }

  .dashboard-period-main {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    height: auto;
    min-height: 72px;
    padding: 10px 14px;
  }

  .dashboard-period-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background:
      radial-gradient(circle at 40% 30%, rgba(255, 255, 255, .2), transparent 34%),
      linear-gradient(135deg, #8b35f6, #4c1d95);
    box-shadow: 0 0 26px rgba(124, 58, 237, .28);
  }

  .dashboard-period-main label {
    align-self: center;
    padding-right: 34px;
  }

  .dashboard-period-main label::after {
    right: 1px;
    width: 13px;
    height: 13px;
  }

  .dashboard-period-main label > span {
    color: #aeb8d3;
    font-size: 14px;
    line-height: 1.05;
  }

  .dashboard-period-main select {
    height: 29px;
    padding-right: 0;
    color: #fff;
    font-size: clamp(21px, 6vw, 26px);
    line-height: 1;
  }

  .dashboard-kpi-grid {
    gap: 11px;
  }

  .dashboard-kpi {
    min-height: 124px;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr);
    grid-auto-rows: min-content;
    gap: 7px 10px;
    align-items: start;
    padding: 11px 12px;
    border-radius: 19px;
    flex-direction: initial;
  }

  .dashboard-kpi > .dashboard-kpi-icon {
    position: relative;
    top: auto;
    right: auto;
    grid-column: 1;
    grid-row: 1;
    width: 42px;
    height: 42px;
    font-size: 23px;
    border-radius: 50%;
  }

  .dashboard-kpi > div:first-of-type {
    display: contents;
    padding-right: 0;
  }

  .dashboard-kpi > div:first-of-type > span {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    font-size: clamp(13px, 3.8vw, 16px);
    line-height: 1.2;
    overflow-wrap: anywhere;
  }

  .dashboard-kpi > div:first-of-type > strong {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 2px;
    font-size: clamp(28px, 8.2vw, 36px);
    text-shadow: 0 3px 16px rgba(0, 0, 0, .35);
  }

  .dashboard-kpi.money-card > div:first-of-type > strong {
    font-size: clamp(20px, 5.9vw, 28px);
    letter-spacing: 0;
  }

  .dashboard-kpi > div:first-of-type > small {
    grid-column: 1 / -1;
    grid-row: 3;
    margin-top: 7px;
    padding-top: 7px;
    border-top: 1px solid rgba(143, 160, 206, .18);
    color: #b8c4e6;
    font-size: clamp(11px, 3.1vw, 13px);
    line-height: 1.26;
  }

  .dashboard-kpi-icon.icon-doc::before,
  .dashboard-kpi-icon.icon-warning::before,
  .dashboard-kpi-icon.icon-copy::before,
  .dashboard-kpi-icon.icon-box::before {
    width: 56%;
    height: 56%;
  }

  .alert-card,
  .clean-card {
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .alert-breakdown {
    grid-column: 1 / -1;
    grid-row: 4;
    margin: 5px -12px -11px;
    border-top-color: rgba(143, 160, 206, .18);
  }

  .alert-breakdown b {
    min-height: 36px;
    font-size: clamp(15px, 4.4vw, 19px);
  }

  .alert-breakdown small {
    margin-top: 1px;
    font-size: 9px;
  }

  .clean-card em {
    grid-column: 1 / -1;
    grid-row: 4;
    margin: 5px -12px -11px;
    padding: 8px 12px;
    color: #58e37f;
    border-top-color: rgba(143, 160, 206, .18);
    font-size: clamp(12px, 3.6vw, 15px);
  }

  .dashboard-actions h2 {
    padding-left: 4px;
    font-size: 22px;
  }

  .dashboard-actions > div {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
  }

  .dashboard-actions a,
  .dashboard-actions button {
    min-height: 72px;
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr);
    grid-template-areas: "icon title" "icon sub";
    gap: 3px 8px;
    align-items: center;
    justify-items: start;
    padding: 10px 9px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 15px;
    text-align: left;
  }

  .dashboard-actions a .btn-icon,
  .dashboard-actions button .btn-icon {
    grid-area: icon;
    width: 25px;
    height: 25px;
    margin: 0;
  }

  .dashboard-actions a b,
  .dashboard-actions button b {
    min-width: 0;
    font-size: clamp(11px, 3.4vw, 14px);
    line-height: 1.1;
    overflow-wrap: anywhere;
  }

  .dashboard-actions a small,
  .dashboard-actions button small {
    min-width: 0;
    font-size: clamp(9px, 2.9vw, 12px);
    line-height: 1.1;
    color: rgba(235, 241, 255, .78);
    overflow-wrap: anywhere;
  }

  body.app-shell[data-active="/dashboard"] .desktop-summary-only,
  body.app-shell[data-active="/dashboard"] .action-process,
  body.app-shell[data-active="/dashboard"] .period-refresh {
    display: none !important;
  }

  .mobile-bottom-nav {
    gap: 6px;
    min-height: calc(82px + env(safe-area-inset-bottom));
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    border-top-color: rgba(91, 111, 169, .28);
    background: rgba(3, 8, 22, .94);
    box-shadow: 0 -18px 44px rgba(0, 0, 0, .42);
  }

  .mobile-bottom-nav a,
  .mobile-bottom-nav button {
    min-height: 60px;
    padding: 7px 2px;
    color: #8f9abc;
    border-radius: 17px;
    font-size: 12px;
  }

  .mobile-bottom-nav .nav-icon {
    width: 24px;
    height: 24px;
  }

  .mobile-bottom-nav a.active,
  .mobile-bottom-nav button[aria-expanded="true"] {
    color: #c879ff;
    border: 1px solid rgba(168, 85, 247, .48);
    background:
      linear-gradient(145deg, rgba(91, 33, 182, .68), rgba(39, 18, 79, .72)),
      rgba(7, 9, 20, .9);
    box-shadow: inset 0 0 22px rgba(168, 85, 247, .2), 0 12px 28px rgba(0, 0, 0, .22);
  }
}

@media (max-width: 380px) {
  body.app-shell[data-active="/dashboard"] .main {
    padding-right: 12px;
    padding-left: 12px;
  }

  .dashboard-logo {
    width: 50px;
    height: 50px;
    font-size: 16px;
  }

  .dashboard-bell,
  .dashboard-refresh.mobile-app-only {
    width: 47px;
    height: 47px;
    min-height: 47px;
  }

  .dashboard-kpi {
    min-height: 138px;
    padding: 14px 12px;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .dashboard-kpi > .dashboard-kpi-icon {
    width: 42px;
    height: 42px;
  }

  .dashboard-actions a,
  .dashboard-actions button {
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 3px 6px;
    padding: 9px 7px;
  }
}

/* Ajuste de escala e presenca visual do card Alertas Fiscais no desktop */
@media (min-width: 1024px) {
  article.alert-card-fiscal {
    padding: 28px;
  }

  article.alert-card-fiscal > div > strong {
    font-size: 2.85rem;
    margin-top: 14px;
  }

  article.alert-card-fiscal .alert-breakdown {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 22px;
    padding: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.10);
    background: rgba(255, 255, 255, 0.025);
    border-radius: 12px;
  }

  article.alert-card-fiscal .alert-breakdown > b {
    min-height: 72px;
    padding: 8px 4px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.035);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-align: center;
    font-size: 1.4rem;
    line-height: 1;
  }

  article.alert-card-fiscal .alert-breakdown > b > small {
    display: block;
    width: 100%;
    font-size: 0.74rem;
    line-height: 1.05;
    text-align: center;
    margin-top: 0;
  }
}


/* Mobile First Cards para Notas/Compras */
.xml-mobile-cards {
  display: none;
}


/* Hiding new mobile app on desktop */
.mobile-notas-app {
  display: none;
}

/* Correcao do Layout Mobile da lista de Notas/Compras */
@media (max-width: 767px) {
  body.app-shell[data-active="/xml-compras"] .actions,
  body.app-shell[data-active="/xml-compras"] .cards.compact,
  body.app-shell[data-active="/xml-compras"] .panel,
  body.app-shell[data-active="/xml-compras"] .xml-import-legacy {
    display: none !important;
  }

  body.app-shell[data-active="/xml-compras"] .mobile-notas-app {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 90px;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-summary {
    color: var(--muted);
    font-size: 0.78rem;
    text-align: center;
  }

  body.app-shell[data-active="/xml-compras"] .mn-page-size {
    display: grid;
    grid-template-columns: auto minmax(72px, 1fr) auto;
    align-items: center;
    gap: 8px;
  }

  body.app-shell[data-active="/xml-compras"] .mn-page-size label {
    color: var(--muted);
    font-size: 0.76rem;
  }

  body.app-shell[data-active="/xml-compras"] .mn-page-size select,
  body.app-shell[data-active="/xml-compras"] .mn-page-size button {
    min-height: 40px;
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav a,
  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav span {
    display: inline-grid;
    min-width: 38px;
    min-height: 38px;
    place-items: center;
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--text);
    font-size: 0.82rem;
    text-decoration: none;
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav a:hover {
    border-color: var(--primary);
    background: rgba(139, 92, 246, 0.12);
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav a:focus-visible,
  body.app-shell[data-active="/xml-compras"] .mn-page-size select:focus-visible,
  body.app-shell[data-active="/xml-compras"] .mn-page-size button:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav .current {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
  }

  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav .disabled,
  body.app-shell[data-active="/xml-compras"] .mn-pagination-nav .ellipsis {
    color: var(--muted);
    cursor: default;
    opacity: 0.55;
  }

  .mn-header {
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
  }
  
  .mn-header h2 {
    font-size: 24px;
    margin: 0;
    color: #fff;
  }

  .mn-header span {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.6);
  }

  .mn-summary-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .mn-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 12px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
  }

  .mn-card-notas { border-color: rgba(168, 85, 247, 0.3); }
  .mn-card-notas .mn-icon { color: #a855f7; background: rgba(168, 85, 247, 0.1); }
  
  .mn-card-compras { border-color: rgba(34, 197, 94, 0.3); }
  .mn-card-compras .mn-icon { color: #22c55e; background: rgba(34, 197, 94, 0.1); }
  
  .mn-card-servicos { border-color: rgba(56, 189, 248, 0.3); }
  .mn-card-servicos .mn-icon { color: #38bdf8; background: rgba(56, 189, 248, 0.1); }
  
  .mn-card-alertas { border-color: rgba(245, 158, 11, 0.3); }
  .mn-card-alertas .mn-icon { color: #f59e0b; background: rgba(245, 158, 11, 0.1); }

  .mn-icon {
    font-size: 20px;
    padding: 8px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .mn-info {
    display: flex;
    flex-direction: column;
  }

  .mn-info span {
    font-size: 12px;
    color: #fff;
  }

  .mn-info strong {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    margin: 2px 0;
  }

  .mn-info small {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.5);
  }

  .mn-actions {
    display: flex;
    gap: 8px;
  }

  .mn-actions button {
    flex: 1;
    border-radius: 20px;
    padding: 8px 12px;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: transparent;
    color: #fff;
  }
  
  .mn-actions button:first-child {
    color: #a855f7;
  }

  .mn-action-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    display: inline-block;
  }

  .mn-search {
    display: flex;
    gap: 8px;
    margin-top: 4px;
    align-items: center;
  }

  .mn-search-input {
    flex: 1;
    position: relative;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    display: flex;
    align-items: center;
    padding: 0 12px;
  }

  .mn-search-input .icon-search {
    color: rgba(255, 255, 255, 0.4);
    margin-right: 8px;
    font-size: 14px;
  }

  .mn-search-input input {
    width: 100%;
    background: transparent;
    border: none;
    color: #fff;
    padding: 12px 0;
    font-size: 14px;
  }

  .mn-search-input input:focus {
    outline: none;
  }

  .mn-filter-btn {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 12px 16px;
    color: #a855f7;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
  }

  .mn-tabs {
    display: flex;
    gap: 8px;
    margin-top: 4px;
  }

  .mn-tab {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid transparent;
    border-radius: 16px;
    padding: 8px 16px;
    color: #fff;
    font-size: 13px;
    cursor: pointer;
  }

  .mn-tab.active {
    background: #a855f7;
    color: #fff;
  }

  .mn-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    max-width: 100%;
  }

  .mn-list-item {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
  }

  .mn-note-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.9), rgba(15, 190, 168, 0.9));
    box-shadow: 0 4px 10px rgba(124, 58, 237, 0.2);
  }

  .mn-note-initials {
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.5px;
  }

  .mn-item-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 6px;
  }

  .mn-item-forn {
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: 1.3;
    text-transform: uppercase;
  }

  .mn-item-meta {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
  }

  .mn-item-date {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
    display: flex;
    align-items: center;
    gap: 4px;
  }

  .mn-item-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    flex-shrink: 0;
  }

  .mn-badge {
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 12px;
    border: 1px solid transparent;
  }

  .badge-compra {
    color: #a855f7;
    border-color: rgba(168, 85, 247, 0.3);
    background: rgba(168, 85, 247, 0.1);
  }

  .badge-servico {
    color: #38bdf8;
    border-color: rgba(56, 189, 248, 0.3);
    background: rgba(56, 189, 248, 0.1);
  }

  .mn-item-valor {
    color: #22c55e;
    font-size: 15px;
    font-weight: 700;
  }

  .mn-badge-extra {
    font-size: 10px;
    padding: 3px 8px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.6);
  }

  .mn-item-arrow {
    color: rgba(255, 255, 255, 0.3);
    font-size: 18px;
    margin-left: 6px;
  }

  .dashboard-period-controls {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-self: center;
    width: 100%;
  }
  .dashboard-date-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .dashboard-date-input {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 14px;
    outline: none;
    width: 100%;
  }
  .dashboard-date-input::-webkit-calendar-picker-indicator {
    filter: invert(1);
    cursor: pointer;
  }
  .dashboard-date-clear {
    background: rgba(255, 60, 60, 0.2);
    color: #ff6b6b;
    border: none;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
  }

  .desktop-only { display: none !important; }
  .is-hidden { display: none !important; }

  .mobile-period-trigger {
    background: transparent;
    border: none;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    text-align: left;
    padding: 0;
    cursor: pointer;
  }
  .mpt-info {
    display: flex;
    flex-direction: column;
  }
  .mpt-label {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
  }
  .mpt-value {
    font-size: 15px;
    font-weight: 600;
  }
  .mpt-icon {
    font-size: 24px;
    color: rgba(255, 255, 255, 0.5);
    margin-left: 10px;
    transform: rotate(90deg);
  }

  .mobile-period-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 9999;
    display: flex;
    align-items: flex-end;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
  }
  .mobile-period-overlay.active {
    opacity: 1;
    visibility: visible;
  }
  .mobile-period-sheet {
    background: #111827;
    width: 100%;
    border-radius: 20px 20px 0 0;
    padding: 24px 24px calc(24px + env(safe-area-inset-bottom)) 24px;
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.1);
  }
  .mobile-period-overlay.active .mobile-period-sheet {
    transform: translateY(0);
  }
  .mobile-period-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
  }
  .mobile-period-header h3 {
    margin: 0;
    font-size: 18px;
    color: #fff;
  }
  .close-sheet {
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: #fff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .mps-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 24px;
  }
  .mps-btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 14px;
    text-decoration: none;
  }
  .mps-btn.active {
    background: #2563eb;
    border-color: #3b82f6;
    font-weight: 600;
  }
  
  .mps-custom h4 {
    margin: 0 0 12px 0;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 500;
  }
  .mps-inputs {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
  }
  .mps-inputs label {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .mps-inputs span {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.8);
  }
  .mps-inputs input {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    padding: 10px;
    border-radius: 8px;
    outline: none;
    width: 100%;
    box-sizing: border-box;
    min-height: 54px;
    color-scheme: dark;
  }
  .mps-inputs input::-webkit-calendar-picker-indicator {
    filter: invert(1);
  }
  .mps-error {
    color: #ef4444;
    font-size: 13px;
    margin-bottom: 16px;
  }
  .mps-actions {
    display: flex;
    gap: 12px;
  }
  .mps-action-btn {
    flex: 1;
    padding: 12px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border: none;
  }
  .mps-clear {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
  }
  .mps-apply {
    background: #2563eb;
    color: #fff;
  }
}

@media (min-width: 992px) {
  .mobile-only { display: none !important; }
}

@media (max-width: 767px) {
  .mobile-period-sheet .mps-inputs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100%;
  }

  .mobile-period-sheet .mps-inputs label {
    width: 100%;
    min-width: 0;
  }

  .mobile-period-sheet input[type="date"] {
    width: 100%;
    min-height: 56px;
    color-scheme: dark;
  }
}

@media (max-width: 720px) {
  body.app-shell[data-active="/xml-compras"] .panel .table-wrap {
    overflow-x: auto;
    overflow-y: hidden;
  }

  body.app-shell[data-active="/xml-compras"] .panel .table-wrap table {
    display: table;
    width: 100%;
    min-width: 1120px;
  }

  body.app-shell[data-active="/xml-compras"] .panel .table-wrap thead {
    position: static;
    display: table-header-group;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
  }

  body.app-shell[data-active="/xml-compras"] .panel .table-wrap tbody {
    display: table-row-group;
    gap: 0;
  }

  body.app-shell[data-active="/xml-compras"] .panel .table-wrap tr {
    display: table-row;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.app-shell[data-active="/xml-compras"] .panel .table-wrap th,
  body.app-shell[data-active="/xml-compras"] .panel .table-wrap td {
    display: table-cell;
    width: auto;
    padding: 12px 13px;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
  }

  body.app-shell[data-active="/xml-compras"] .panel .table-wrap tbody tr::before,
  body.app-shell[data-active="/xml-compras"] .panel .table-wrap td::before {
    display: none;
  }

  body.app-shell[data-active="/xml-compras"] .financeiro-cell {
    min-width: 180px;
  }
}

/* === Conciliacao Refactor === */
.financeiro-conciliacao-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.nav-card {
  display: flex;
  flex-direction: column;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 12px;
  background: rgba(15, 23, 42, .6);
  transition: all .2s;
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
}

.nav-card:hover {
  border-color: rgba(148, 163, 184, .35);
  background: rgba(15, 23, 42, .85);
}

.nav-card.active {
  border-color: rgba(168, 85, 247, .5);
  background: rgba(168, 85, 247, .08);
}

.nav-card-head {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.nav-card-head strong {
  font-size: 13px;
  line-height: 1.2;
  color: #f1f5f9;
}

.nav-card span {
  font-size: 11px;
  color: #94a3b8;
  line-height: 1.35;
  margin-bottom: 10px;
  flex: 1;
}

.nav-badge {
  align-self: flex-start;
  padding: 3px 6px;
  font-size: 11px;
  font-weight: 600;
  border-radius: 4px;
  background: rgba(148, 163, 184, .1);
  color: #cbd5e1;
}

.nav-badge.purple {
  background: rgba(168, 85, 247, .15);
  color: #c084fc;
}

.filters-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

.filters-actions {
  display: flex;
  gap: 8px;
}

.title-with-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.title-with-actions h2 {
  margin: 0;
}

.mini-metric.with-icon {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
}

.metric-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(148, 163, 184, .1);
  color: #94a3b8;
}

.metric-icon.purple { background: rgba(168, 85, 247, .15); color: #c084fc; }
.metric-icon.green { background: rgba(34, 197, 94, .15); color: #4ade80; }
.metric-icon.red { background: rgba(239, 68, 68, .15); color: #f87171; }
.metric-icon.blue { background: rgba(56, 189, 248, .15); color: #38bdf8; }
.metric-icon.yellow { background: rgba(234, 179, 8, .15); color: #facc15; }
.metric-icon.orange { background: rgba(249, 115, 22, .15); color: #fb923c; }
.metric-icon.slate { background: rgba(148, 163, 184, .15); color: #94a3b8; }

.metric-data {
  display: flex;
  flex-direction: column;
}

.metric-data span {
  font-size: 11px;
  color: #94a3b8;
  margin-bottom: 2px;
}

.metric-data strong {
  font-size: 15px;
  color: #f1f5f9;
}

/* === Conciliacao Table Actions === */
.actions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  min-width: 180px;
}

.table-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 500;
  border-radius: 6px;
  border: 1px solid rgba(148, 163, 184, .3);
  color: #cbd5e1;
  background: transparent;
  cursor: pointer;
  transition: all .2s;
  white-space: nowrap;
}

.table-btn:hover {
  border-color: rgba(148, 163, 184, .6);
  background: rgba(148, 163, 184, .1);
}

.table-btn.purple {
  border-color: rgba(168, 85, 247, .4);
  color: #c084fc;
}
.table-btn.purple:hover {
  border-color: rgba(168, 85, 247, .8);
  background: rgba(168, 85, 247, .1);
}

.table-btn.red {
  border-color: rgba(239, 68, 68, .4);
  color: #f87171;
}
.table-btn.red:hover {
  border-color: rgba(239, 68, 68, .8);
  background: rgba(239, 68, 68, .1);
}

/* === Conciliacao bancaria - layout operacional === */
.financeiro-conciliacao-page .select-col {
  width: 48px;
  text-align: center;
}

.conciliacao-check-control {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  cursor: pointer;
}

.conciliacao-check-control input { position: absolute; opacity: 0; pointer-events: none; }
.conciliacao-check-control span {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  border: 1px solid #52617a;
  border-radius: 5px;
  background: #0b1222;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.conciliacao-check-control:hover span { border-color: #a78bfa; }
.conciliacao-check-control input:focus-visible + span { box-shadow: 0 0 0 3px rgba(139, 92, 246, .22); }
.conciliacao-check-control input:checked + span { border-color: #8b5cf6; background: #7c3aed; }
.conciliacao-check-control input:checked + span::after {
  content: "";
  width: 8px;
  height: 4px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-1px) rotate(-45deg);
}
.financeiro-conciliacao-table tr.is-selected td { background: rgba(124, 58, 237, .09); }

.conciliacao-lote-toolbar {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 66px;
  padding: 11px 14px;
  margin: 2px 0 14px;
  border: 1px solid #2a354c;
  border-radius: 7px;
  background: linear-gradient(90deg, rgba(19, 28, 47, .96), rgba(15, 23, 42, .76));
}

.conciliacao-lote-heading { display: flex; align-items: center; gap: 11px; min-width: 290px; }
.conciliacao-lote-heading > div { display: grid; gap: 3px; }
.conciliacao-lote-heading small { color: var(--muted); line-height: 1.25; }
.conciliacao-lote-icon {
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  height: 38px;
  border: 1px solid rgba(139, 92, 246, .42);
  border-radius: 7px;
  color: #c4b5fd;
  background: rgba(124, 58, 237, .14);
}
.conciliacao-lote-selection { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.conciliacao-lote-selection[hidden] { display: none; }
.conciliacao-lote-selection strong { color: #ddd6fe; }
.conciliacao-lote-selection span { color: var(--muted); }
.conciliacao-lote-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.conciliacao-lote-selection:not([hidden]) + .conciliacao-lote-actions { margin-left: 0; }
.conciliacao-lote-actions button:disabled { opacity: .46; cursor: not-allowed; box-shadow: none; }

.conciliacao-classificacao-resumo {
  display: block;
  margin-top: 5px;
  color: #c4b5fd;
}

.conciliacao-lote-dialog { max-width: 920px; max-height: calc(100vh - 48px); overflow-y: auto; }
.conciliacao-lote-dialog > .panel-head > button { margin-left: auto; align-self: flex-start; }
.conciliacao-lote-form { display: grid; gap: 16px; }
.conciliacao-lote-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  padding: 0;
  border: 0;
  background: transparent;
}
.conciliacao-lote-summary > div {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(15, 23, 42, .55);
}
.conciliacao-lote-summary span,
.conciliacao-lote-summary small { color: var(--muted); }
.conciliacao-lote-summary strong { font-size: 20px; color: #f8fafc; }

.modal-eyebrow { display: block; margin-bottom: 4px; color: #a78bfa; font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.conciliacao-lote-section {
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid #273249;
  border-radius: 7px;
  background: rgba(11, 18, 34, .48);
}
.conciliacao-lote-section-title { display: flex; align-items: flex-start; gap: 11px; }
.conciliacao-lote-section-title > span {
  display: grid;
  place-items: center;
  flex: 0 0 26px;
  height: 26px;
  border-radius: 50%;
  color: #ddd6fe;
  font-weight: 700;
  background: rgba(124, 58, 237, .22);
}
.conciliacao-lote-section-title > div { display: grid; gap: 3px; }
.conciliacao-lote-section-title small { color: var(--muted); }

.conciliacao-mode-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.conciliacao-mode-options label {
  position: relative;
  display: block;
  cursor: pointer;
}
.conciliacao-mode-options input { position: absolute; opacity: 0; }
.conciliacao-mode-options label > span {
  display: grid;
  gap: 4px;
  min-height: 68px;
  padding: 12px 14px;
  border: 1px solid #344159;
  border-radius: 7px;
  background: #101827;
}
.conciliacao-mode-options label > span small { color: var(--muted); line-height: 1.35; }
.conciliacao-mode-options input:checked + span { border-color: #8b5cf6; background: rgba(124, 58, 237, .12); box-shadow: inset 3px 0 #8b5cf6; }

.conciliacao-lote-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.conciliacao-lote-form label,
.conciliacao-lote-form .lote-field { display: grid; gap: 7px; }
.conciliacao-lote-form .lote-field > span { display: flex; align-items: center; gap: 7px; color: #dbe4f3; }
.conciliacao-lote-form select,
.conciliacao-lote-form textarea {
  width: 100%;
  min-height: 44px;
  color-scheme: dark;
}

.conciliacao-lote-review { border-color: rgba(139, 92, 246, .38); background: rgba(91, 33, 182, .07); }
.conciliacao-lote-notice { display: grid; gap: 4px; padding: 11px 13px; border-left: 3px solid #8b5cf6; background: rgba(15, 23, 42, .65); }
.conciliacao-lote-notice span { color: var(--muted); line-height: 1.4; }

.conciliacao-classificacao-unificada {
  border: 1px solid rgba(139, 92, 246, .42);
  border-radius: 7px;
  background: rgba(91, 33, 182, .07);
  overflow: hidden;
}

.conciliacao-classificacao-unificada > summary {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 58px;
  padding: 10px 14px;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(90deg, rgba(76, 29, 149, .16), rgba(15, 23, 42, .35));
}
.conciliacao-classificacao-unificada > summary::-webkit-details-marker { display: none; }
.conciliacao-classificacao-unificada > summary > span:nth-child(2) { display: grid; gap: 3px; flex: 1; }
.conciliacao-classificacao-unificada > summary small { color: var(--muted); }
.conciliacao-classificacao-unificada-icon {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  height: 36px;
  border-radius: 7px;
  color: #c4b5fd;
  background: rgba(124, 58, 237, .2);
}
.conciliacao-classificacao-unificada-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 15px 14px 12px;
  border-top: 1px solid rgba(139, 92, 246, .2);
}
.conciliacao-classificacao-unificada-grid label { display: grid; gap: 6px; color: #dbe4f3; }
.conciliacao-classificacao-unificada-grid select { width: 100%; min-height: 44px; color-scheme: dark; }
.conciliacao-classificacao-unificada-status {
  margin: 0 14px 14px;
  padding: 9px 11px;
  border-left: 3px solid #8b5cf6;
  color: var(--muted);
  background: rgba(15, 23, 42, .52);
}

@media (max-width: 760px) {
  .conciliacao-lote-bar { align-items: stretch; flex-direction: column; }
  .conciliacao-lote-toolbar { align-items: stretch; flex-direction: column; }
  .conciliacao-lote-heading { min-width: 0; }
  .conciliacao-lote-selection { margin-left: 0; }
  .conciliacao-lote-actions { display: grid; grid-template-columns: 1fr 1fr; margin-left: 0; }
  .conciliacao-lote-actions .lote-action:last-child { grid-column: 1 / -1; }
  .conciliacao-lote-grid { grid-template-columns: 1fr; }
  .conciliacao-lote-summary { grid-template-columns: 1fr 1fr; }
  .conciliacao-mode-options { grid-template-columns: 1fr; }
  .conciliacao-classificacao-unificada-grid { grid-template-columns: 1fr; }
}
.financeiro-conciliacao-page {
  --conc-panel: rgba(15, 23, 42, .72);
  --conc-panel-strong: rgba(20, 29, 48, .88);
  --conc-line: rgba(148, 163, 184, .17);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.financeiro-conciliacao-page .tab-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.financeiro-conciliacao-page .card,
.financeiro-conciliacao-page .panel {
  border: 1px solid var(--conc-line);
  background:
    radial-gradient(circle at top left, rgba(124, 58, 237, .08), transparent 38%),
    linear-gradient(145deg, rgba(15, 23, 42, .88), rgba(11, 18, 32, .94));
  box-shadow: 0 18px 40px rgba(2, 6, 23, .2);
}

.conciliacao-kpis-top,
.conciliacao-kpis-secondary {
  display: grid;
  gap: 14px;
}

.conciliacao-kpis-top {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.conciliacao-kpis-secondary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.financeiro-conciliacao-page .mini-metric.with-icon {
  min-height: 90px;
  padding: 22px;
  gap: 18px;
}

.financeiro-conciliacao-page .mini-metric.kpi-large {
  min-height: 126px;
}

.financeiro-conciliacao-page .metric-icon {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  border: 1px solid currentColor;
  flex: 0 0 auto;
  box-shadow: 0 0 28px rgba(56, 189, 248, .12);
}

.financeiro-conciliacao-page .conciliacao-kpis-secondary .metric-icon {
  width: 46px;
  height: 46px;
  border-radius: 999px;
}

.financeiro-conciliacao-page .metric-data span {
  color: #cbd5e1;
  font-size: 13px;
  letter-spacing: 0;
}

.financeiro-conciliacao-page .metric-data strong {
  color: #f8fafc;
  font-size: 26px;
  line-height: 1.15;
}

.financeiro-conciliacao-page .conciliacao-kpis-secondary .metric-data strong {
  font-size: 22px;
}

.financeiro-conciliacao-page .metric-data small {
  margin-top: 4px;
  color: #a8b3c7;
  font-size: 13px;
  line-height: 1.35;
}

.conciliacao-filtros-panel {
  padding: 18px;
}

.financeiro-conciliacao-filtros {
  margin: 0;
  display: block;
}

.financeiro-conciliacao-page .filters-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(170px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}

.pre-fechamento-coverage {
  padding: 18px;
}

.pre-socios-composicao {
  display: grid;
  gap: 14px;
  margin: 18px 0 20px;
  padding: 16px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(15, 23, 42, .38);
}

.pre-socios-composicao .panel-head {
  margin-bottom: 0;
}

.pre-socios-composicao .coverage-grid {
  margin: 0;
}

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

.coverage-item {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(15, 23, 42, .54);
  display: grid;
  gap: 6px;
}

.coverage-item strong,
.coverage-item span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.coverage-item strong {
  color: #f8fafc;
  font-size: 13px;
}

.coverage-item span {
  color: #a8b3c7;
  font-size: 12px;
  line-height: 1.35;
}

.coverage-item .status-pill {
  justify-self: start;
}

.status-pill.disponivel,
.status-pill.conferido {
  color: #86efac;
  background: rgba(22, 163, 74, .16);
}

.status-pill.parcial,
.status-pill.pequena_diferenca {
  color: #fde68a;
  background: rgba(217, 119, 6, .16);
}

.status-pill.ausente,
.status-pill.sem_ofx,
.status-pill.sem_base,
.status-pill.sem_movimentos {
  color: #cbd5e1;
  background: rgba(148, 163, 184, .14);
}

.status-pill.bloqueado,
.status-pill.sem_mapeamento_makro,
.status-pill.divergente {
  color: #fecaca;
  background: rgba(220, 38, 38, .16);
}

.financeiro-conciliacao-page .filters-grid label,
.financeiro-conciliacao-page .conciliacao-advanced-grid label {
  min-width: 0;
  color: #d8deee;
  font-size: 12px;
}

.financeiro-conciliacao-page .filters-grid input,
.financeiro-conciliacao-page .filters-grid select,
.financeiro-conciliacao-page .conciliacao-advanced-grid input,
.financeiro-conciliacao-page .conciliacao-advanced-grid select {
  min-height: 46px;
  height: 46px;
  padding: 12px 14px;
  line-height: 20px;
  border-radius: 8px;
  background: rgba(10, 16, 29, .82);
  border-color: rgba(148, 163, 184, .22);
  color-scheme: dark;
}

.financeiro-conciliacao-page .filters-grid select,
.financeiro-conciliacao-page .conciliacao-advanced-grid select {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 22px;
}

.financeiro-conciliacao-page .filters-grid select option,
.financeiro-conciliacao-page .conciliacao-advanced-grid select option {
  background: #111827;
  color: #f8fafc;
}

.input-with-icon {
  position: relative;
  display: block;
}

.input-with-icon svg {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
}

.input-with-icon input {
  width: 100%;
  padding-left: 38px;
}

.financeiro-conciliacao-page .filters-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  align-self: end;
}

.financeiro-conciliacao-page .filters-actions .primary,
.financeiro-conciliacao-page .filters-actions .ghost {
  min-height: 46px;
  height: 46px;
  min-width: 78px;
  justify-content: center;
  border-radius: 8px;
}

.conciliacao-advanced {
  margin-top: 14px;
}

.conciliacao-advanced summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #a855f7;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

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

.conciliacao-advanced summary::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .18s ease;
}

.conciliacao-advanced[open] summary::after {
  transform: rotate(225deg) translateY(-1px);
}

.conciliacao-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, .14);
}

body.app-shell[data-active="/financeiro/conciliacao"] .mobile-filter-trigger,
body.app-shell[data-active="/financeiro/conciliacao"] .financeiro-conciliacao-filtros .mobile-filter-close {
  display: none !important;
}

.financeiro-conciliacao-page .table-card {
  padding: 18px;
}

.xml-compras-filtros {
  margin: 0 0 16px;
  display: block;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid {
  display: grid;
  grid-template-columns: minmax(150px, 220px) minmax(260px, 1fr) auto;
  gap: 12px;
  align-items: end;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid label,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid label {
  min-width: 0;
  color: #d8deee;
  font-size: 12px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid input,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid select,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid input,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid select {
  min-width: 0;
  width: 100%;
  min-height: 46px;
  height: 46px;
  padding: 12px 14px;
  line-height: 20px;
  border-radius: 8px;
  background: rgba(10, 16, 29, .82);
  border-color: rgba(148, 163, 184, .22);
  color-scheme: dark;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid select,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid select {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 22px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid select option,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid select option {
  background: #111827;
  color: #f8fafc;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  align-self: end;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions .primary,
body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions .ghost {
  min-height: 46px;
  height: 46px;
  min-width: 78px;
  justify-content: center;
  border-radius: 8px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista {
  padding: 22px;
  overflow: hidden;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista-head {
  align-items: flex-start;
  margin-bottom: 14px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista-head h2 {
  margin: 0;
  font-size: 20px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista-head .muted {
  margin-top: 4px;
  font-size: 12px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista .xml-compras-filtros {
  margin-bottom: 14px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista .table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table {
  width: 100%;
  min-width: 1180px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table th,
body.app-shell[data-active="/xml-compras"] .xml-compras-table td {
  padding: 11px 12px;
  font-size: 12px;
  line-height: 1.3;
  vertical-align: middle;
  border-bottom: 1px solid rgba(148, 163, 184, .12);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: #dbe7f6;
  background: rgba(20, 31, 49, .96);
  font-size: 11px;
  letter-spacing: 0;
  text-transform: none;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody tr {
  background: rgba(10, 17, 31, .42);
  transition: background .16s ease, box-shadow .16s ease;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody tr:hover {
  background: rgba(30, 41, 59, .56);
  box-shadow: inset 3px 0 0 rgba(139, 92, 246, .76);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-data { width: 88px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-numero { width: 92px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-forn { width: 240px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-chave { width: 180px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-valor { width: 96px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-financeiro { width: 260px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-impacto { width: 120px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-status { width: 132px; }

body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-forn,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-modelo {
  overflow-wrap: anywhere;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .nota-stack,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .fornecedor-stack {
  display: grid;
  gap: 3px;
  min-width: 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .nota-stack strong,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .fornecedor-stack strong {
  color: #eef2ff;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.25;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .nota-stack small,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .fornecedor-stack small {
  color: #8ea0ba;
  font-size: 10px;
  line-height: 1.2;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .access-key {
  max-width: none;
  font-size: 10px;
  line-height: 1.25;
  color: #9fb0c5;
  word-break: break-all;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-cell {
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px 8px;
  align-items: center;
  font-size: 12px;
  line-height: 1.25;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-valores {
  gap: 2px;
  min-width: 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-linha {
  gap: 6px;
  white-space: normal;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-ultima {
  grid-column: 1 / -1;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #94a3b8;
  font-size: 11px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-badge {
  margin: 0;
  padding: 4px 8px;
  font-size: 11px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-btn,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .ghost.small {
  min-height: 30px;
  padding: 6px 10px;
  font-size: 11px;
  border-radius: 8px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-btn {
  grid-column: 1 / -1;
  width: fit-content;
  margin-top: 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .num {
  text-align: right;
  white-space: nowrap;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .status-cell {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .danfe-link {
  margin: 0;
  display: inline-flex;
  font-size: 11px;
}

/* Compras: grade operacional horizontal inspirada em bases de dados. */
body.app-shell[data-active="/xml-compras"] .xml-compras-metricas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 10px;
  margin: 16px 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-metricas .mini-metric {
  position: relative;
  min-height: 84px;
  padding: 14px 14px 14px 52px;
  display: grid;
  align-content: center;
  gap: 5px;
  border-radius: 8px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-metricas .mini-metric-icon {
  position: absolute;
  left: 14px;
  top: 17px;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  color: #a855f7;
  border: 1px solid rgba(168, 85, 247, .28);
  border-radius: 7px;
  background: rgba(88, 28, 135, .16);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-metricas .mini-metric-icon::before {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista {
  padding: 16px;
}

/* Compras e uma grade operacional: em telas largas, usa toda a area util da aplicacao. */
body.app-shell[data-active="/xml-compras"] .shell {
  max-width: none;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista-head {
  align-items: center;
  margin-bottom: 12px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista-head h2 {
  font-size: 18px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-lista .xml-compras-filtros {
  padding: 12px;
  margin-bottom: 12px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  background: rgba(11, 18, 32, .42);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table-wrap {
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(10, 17, 31, .52);
  overflow-x: auto;
  scrollbar-color: #7c3aed rgba(15, 23, 42, .7);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table {
  width: 100%;
  min-width: 1320px;
  table-layout: auto;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table th,
body.app-shell[data-active="/xml-compras"] .xml-compras-table td {
  height: 58px;
  padding: 9px 10px;
  vertical-align: middle;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table th {
  font-size: 10px;
  letter-spacing: 0;
  text-transform: uppercase;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-data { width: 94px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-numero { width: 112px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-valor { width: 105px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-impacto { width: 82px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-status { width: 98px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-acoes { width: 170px; }

/* Campos descritivos absorvem a largura restante da tela, sem dilatar colunas curtas. */
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-forn { min-width: 180px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-pagamento { min-width: 210px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-contrapartida { min-width: 170px; }
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-reembolso { min-width: 205px; }

body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-numero strong,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-numero small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-numero small {
  margin-top: 3px;
  color: #9fb0c5;
  font-size: 10px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .notion-cell-text {
  display: block;
  overflow: hidden;
  color: #dce6f7;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-pagamento .notion-cell-text,
body.app-shell[data-active="/xml-compras"] .xml-compras-table .col-reembolso .notion-cell-text {
  color: #b8c5d9;
  font-size: 11px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .xml-compras-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  white-space: nowrap;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .icon-action {
  width: 30px;
  height: 30px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  color: #b9c5d9;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 7px;
  background: rgba(30, 41, 59, .58);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .icon-action:hover {
  color: #f5f3ff;
  border-color: rgba(168, 85, 247, .7);
  background: rgba(109, 40, 217, .26);
}

body.app-shell[data-active="/xml-compras"] .xml-compras-table .icon-action .btn-icon {
  margin: 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 44px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(148, 163, 184, .14);
  color: #9fb0c5;
  font-size: 12px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao-resumo {
  margin: 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao-controles,
body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao-acoes {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-por-pagina {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 6px 0 0;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-por-pagina label {
  color: #9fb0c5;
  font-size: 12px;
  white-space: nowrap;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-por-pagina select {
  width: 66px;
  min-width: 66px;
  height: 32px;
  padding: 0 24px 0 9px;
  border-radius: 7px;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-seta,
body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-link {
  width: 32px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 7px;
  color: #c9d3e5;
  background: rgba(30, 41, 59, .58);
  text-decoration: none;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-seta {
  font-size: 21px;
  line-height: 1;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-reticencias {
  width: 20px;
  display: inline-grid;
  place-items: center;
  color: #7889a1;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-link:hover,
body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-link.active,
body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-seta:hover {
  border-color: rgba(168, 85, 247, .7);
  color: #fff;
  background: #7c3aed;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao .pagina-seta.disabled {
  border-color: rgba(148, 163, 184, .08);
  color: rgba(159, 176, 197, .35);
  background: rgba(30, 41, 59, .24);
  cursor: not-allowed;
}

body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao a:focus-visible,
body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao button:focus-visible,
body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao select:focus-visible {
  outline: 2px solid #c084fc;
  outline-offset: 2px;
}

@media (max-width: 1180px) {
  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-lista {
    padding: 18px;
  }
}

@media (max-width: 720px) {
  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-grid,
  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .conciliacao-advanced-grid {
    grid-template-columns: 1fr;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions {
    justify-content: stretch;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions .primary,
  body.app-shell[data-active="/xml-compras"] .xml-compras-filtros .filters-actions .ghost {
    flex: 1 1 0;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-lista {
    padding: 14px;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao {
    align-items: stretch;
    flex-direction: column;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao-controles {
    align-items: flex-start;
    flex-direction: column;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-por-pagina {
    width: 100%;
    margin: 0;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-paginacao-acoes {
    width: 100%;
    flex-wrap: wrap;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table {
    min-width: 0;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table-wrap {
    overflow-x: visible;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table thead,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table tr,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table th,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table td {
    display: block;
    width: 100%;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table thead {
    display: none;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody {
    display: grid;
    gap: 12px;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody tr {
    display: grid;
    gap: 0;
    padding: 12px;
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 8px;
    background: rgba(15, 23, 42, .76);
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody tr:hover {
    box-shadow: inset 3px 0 0 rgba(139, 92, 246, .76);
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table td {
    display: grid;
    grid-template-columns: minmax(90px, .38fr) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 9px 0;
    border-bottom: 1px solid rgba(148, 163, 184, .1);
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table td:last-child {
    border-bottom: 0;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table td::before {
    content: attr(data-label);
    color: #8ea0ba;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table .num {
    text-align: left;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-cell,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table .status-cell {
    min-width: 0;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-cell {
    grid-template-columns: minmax(0, 1fr);
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table .financeiro-btn {
    width: 100%;
    justify-content: center;
  }
}

.financeiro-conciliacao-page .panel-head {
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 14px;
}

.financeiro-conciliacao-page .panel-head h2 {
  margin-bottom: 4px;
  font-size: 21px;
}

.financeiro-conciliacao-page .panel-head .ghost.small {
  margin-left: auto;
  border-radius: 8px;
}

.financeiro-conciliacao-page .table-wrap {
  border: 1px solid rgba(148, 163, 184, .15);
  border-radius: 10px;
  background: rgba(9, 14, 26, .32);
}

.financeiro-conciliacao-table {
  min-width: 1120px;
  border-collapse: collapse;
}

.financeiro-conciliacao-table th {
  background: rgba(21, 30, 49, .88);
  color: #dbe6fb;
  font-size: 12px;
  font-weight: 700;
  padding: 14px 12px;
}

.financeiro-conciliacao-table td {
  padding: 14px 12px;
  border-top: 1px solid rgba(148, 163, 184, .12);
  vertical-align: middle;
}

.financeiro-conciliacao-table tbody tr:hover {
  background: rgba(124, 58, 237, .06);
}

.financeiro-conciliacao-table td strong {
  color: #f1f5f9;
  font-size: 13px;
  line-height: 1.35;
}

.financeiro-conciliacao-table .path-muted {
  font-size: 11px;
  color: #8592aa;
}

.financeiro-conciliacao-page .actions-grid {
  grid-template-columns: repeat(2, max-content);
  justify-content: start;
  min-width: 0;
}

.financeiro-conciliacao-page .table-btn {
  min-height: 28px;
  border-radius: 7px;
  gap: 6px;
}

.financeiro-conciliacao-page .table-btn.purple {
  background: linear-gradient(135deg, #7c3aed, #9333ea);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 18px rgba(124, 58, 237, .24);
}

.financeiro-conciliacao-page .table-btn.purple:hover {
  background: linear-gradient(135deg, #8b5cf6, #a855f7);
}

.conciliacao-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  color: #9ca8bd;
  font-size: 13px;
}

.pagination.compact {
  justify-content: flex-end;
  margin-top: 0;
}

.pagination.compact .page-badge {
  padding: 8px 12px;
  border-radius: 8px;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .app-topbar,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-actions,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-body,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .razao-contabil-page,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .razao-contabil-page .panel,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-layout,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .razao-ledger-layout {
  min-width: 0;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .razao-ledger-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-layout {
  display: grid;
  grid-template-columns: minmax(170px, 260px) minmax(0, 1fr);
  gap: 14px;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-nav {
  min-width: 0;
  max-height: 640px;
  overflow: auto;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 4px 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  color: #dbe6fb;
  text-decoration: none;
  background: rgba(15, 23, 42, .52);
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module + .settings-module {
  margin-top: 8px;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module strong,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module span,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module strong {
  color: #c4b5fd;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module span {
  white-space: nowrap;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module small {
  grid-column: 1 / -1;
  color: #a8b3c7;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-module.active {
  border-color: rgba(168, 85, 247, .54);
  background: rgba(124, 58, 237, .16);
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .table-wrapper {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(148, 163, 184, .15);
  border-radius: 10px;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .data-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
}

body.app-shell[data-active="/financeiro/contabilidade/razao"] .data-table th,
body.app-shell[data-active="/financeiro/contabilidade/razao"] .data-table td {
  overflow-wrap: anywhere;
}

@media (max-width: 1120px) and (min-width: 981px) {
  body.app-shell[data-active="/financeiro/contabilidade/razao"] .app-topbar {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "main"
      "actions"
      "user";
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .user-profile-menu {
    justify-self: end;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control {
    width: 100%;
    flex-basis: 100%;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row {
    display: grid;
    grid-template-columns: 24px minmax(112px, 1fr) auto minmax(112px, 1fr) 24px minmax(72px, .75fr);
    gap: 6px;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control input[type="date"],
  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control select {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 1024px) {
  body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-layout {
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .data-table {
    min-width: 620px;
  }
}

@media (max-width: 760px) {
  body.app-shell[data-active="/financeiro/contabilidade/razao"] .topbar.app-topbar {
    display: flex;
    margin-bottom: 12px;
    padding: 0;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .topbar-main,
  body.app-shell[data-active="/financeiro/contabilidade/razao"] .user-profile-menu {
    display: none;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-actions {
    display: flex;
    width: 100%;
    justify-content: center;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control {
    min-width: 0;
    width: 100%;
    flex-basis: 100%;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 24px;
    gap: 7px 8px;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row > .top-period-arrow:first-child {
    grid-column: 1;
    grid-row: 1;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row > input[name="data_inicio"] {
    grid-column: 2;
    grid-row: 1;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row > .muted {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    justify-self: center;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row > input[name="data_fim"] {
    grid-column: 2;
    grid-row: 2;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-row > .top-period-arrow:nth-of-type(2) {
    grid-column: 3;
    grid-row: 1;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control select {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    min-width: 0;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .top-period-control input[type="date"] {
    width: 100%;
    min-width: 0;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-layout {
    grid-template-columns: 1fr;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .settings-nav {
    max-height: 260px;
  }

  body.app-shell[data-active="/financeiro/contabilidade/razao"] .data-table {
    min-width: 600px;
  }
}

body.app-shell[data-active="/financeiro/conciliacao"] .top-actions .ghost.small {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 700;
}

@media (max-width: 1280px) {
  .financeiro-conciliacao-page .filters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .financeiro-conciliacao-page .filters-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }

  .conciliacao-kpis-top,
  .conciliacao-kpis-secondary,
  .coverage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .conciliacao-kpis-top,
  .conciliacao-kpis-secondary,
  .coverage-grid,
  .financeiro-conciliacao-page .filters-grid,
  .conciliacao-advanced-grid {
    grid-template-columns: 1fr;
  }

  .financeiro-conciliacao-page .mini-metric.with-icon {
    min-height: auto;
    padding: 16px;
  }

  .financeiro-conciliacao-page .panel-head {
    flex-direction: column;
  }

  .financeiro-conciliacao-page .panel-head .ghost.small {
    margin-left: 0;
  }
}

@media (max-width: 760px) {
  .pre-alert-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pre-alert-evidence-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .pre-alert-evidence-action {
    justify-self: start;
  }
}

@media (max-width: 520px) {
  #pre-fechamento-modal {
    width: calc(100vw - 18px);
  }

  #pre-fechamento-modal .modal-header,
  #pre-fechamento-modal .modal-body,
  #pre-fechamento-modal .modal-footer {
    padding: 14px;
  }

  #pre-fechamento-modal .modal-footer {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: stretch;
  }

  #pre-fechamento-modal .modal-footer label,
  #pre-fechamento-modal .modal-footer input,
  #pre-fechamento-modal .modal-footer select,
  #pre-fechamento-modal .modal-footer button {
    width: 100%;
  }

  .pre-alert-summary {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  body.app-shell[data-active="/financeiro/pre-fechamento"] .topbar.app-topbar {
    display: flex;
    margin-bottom: 12px;
    padding: 0;
  }

  body.app-shell[data-active="/financeiro/pre-fechamento"] .topbar-main,
  body.app-shell[data-active="/financeiro/pre-fechamento"] .user-profile-menu {
    display: none;
  }

  body.app-shell[data-active="/financeiro/pre-fechamento"] .top-actions {
    display: flex;
    width: 100%;
    justify-content: center;
  }

  body.app-shell[data-active="/financeiro/pre-fechamento"] .pre-fechamento-top-period {
    min-width: 0;
    width: 100%;
    flex-basis: 100%;
  }

  body.app-shell[data-active="/financeiro/pre-fechamento"] .pre-fechamento-top-period .top-period-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto minmax(0, 1fr) 24px;
    gap: 6px;
  }

  body.app-shell[data-active="/financeiro/pre-fechamento"] .pre-fechamento-top-period .ghost.small {
    grid-column: 1 / -1;
    justify-self: stretch;
  }

  body.app-shell[data-active="/financeiro/pre-fechamento"] .pre-fechamento-top-period input[type="date"] {
    width: 100%;
    min-width: 0;
  }
}

.financeiro-recebimentos-page .table-card .table-wrap {
  overflow: auto;
}

@media (max-width: 900px) {
  .financeiro-recebimentos-layout {
    grid-template-columns: 1fr;
  }

  .recebimentos-command-center {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .recebiveis-import-hero,
  .recebiveis-import-workspace,
  .recebiveis-import-grid,
  .recebiveis-import-grid.history {
    grid-template-columns: 1fr;
  }

  .recebiveis-import-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .recebiveis-preview-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .recebiveis-import-pagination {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .recebiveis-import-page-nav {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .recebimentos-side-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .recebimentos-periodo-resumo {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .financeiro-recebimentos-resumo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .recebimentos-command-center,
  .recebimento-form-mode {
    grid-template-columns: 1fr;
  }

  .recebimentos-command-card {
    grid-template-columns: 38px minmax(0, 1fr);
    min-height: 94px;
  }

  .recebimentos-command-card b {
    grid-column: 2;
    justify-self: start;
  }

  .recebiveis-import-hero {
    padding: 16px;
  }

  .recebiveis-import-hero h2 {
    font-size: 22px;
  }

  .recebiveis-import-flow,
  .recebiveis-preview-kpis,
  .recebiveis-guidance-list {
    grid-template-columns: 1fr;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page > *,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-layout,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimento-form,
  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-side-stack,
  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-side-stack > *,
  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-table-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .financeiro-recebimentos-resumo .card {
    width: 100%;
    min-width: 0;
    padding: 12px;
  }

  .recebimento-kpi {
    align-items: flex-start;
    gap: 10px;
    min-height: 88px;
  }

  .recebimento-kpi-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }

  .recebimento-kpi .metric-data strong {
    font-size: 17px;
  }

  .financeiro-recebimento-form .settings-edit-grid,
  .recebimentos-filtros,
  .recebimentos-side-stack,
  .recebimentos-periodo-resumo {
    grid-template-columns: 1fr;
  }

  .recebimentos-periodo-fields {
    grid-template-columns: 1fr;
  }

  .recebimentos-periodo-fields span {
    display: none;
  }

  .financeiro-recebimento-form .settings-edit-actions,
  .recebimentos-filtros-actions {
    justify-content: stretch;
  }

  .financeiro-recebimento-form .settings-edit-actions .primary,
  .recebimentos-filtros-actions .primary,
  .recebimentos-filtros-actions .ghost {
    width: 100%;
    justify-content: center;
  }

  .recebimentos-periodo-resumo span {
    align-items: center;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    border-radius: 12px;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap table,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap thead,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap tbody,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap tr,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap th,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap td {
    display: revert;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap table {
    width: 100%;
    min-width: 980px;
    border-collapse: separate;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap thead {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip-path: none;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap tbody {
    gap: 0;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap tbody tr {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap tbody tr::before,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap td::before {
    content: none;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap th,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap td {
    width: auto;
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid var(--line);
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap th.num,
  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-page .table-wrap td.num {
    text-align: right;
  }

body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimento-actions {
    justify-content: flex-start;
  }
}

/* === Contas a Receber - painel operacional compacto === */
.recebimentos-dashboard-page {
  gap: 12px;
}

.recebimentos-dashboard-page .panel {
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(15, 23, 42, .9), rgba(8, 13, 25, .94));
}

.recebimentos-dashboard-page .panel-head {
  margin-bottom: 10px;
}

.recebimentos-dashboard-page .path-muted,
.recebimentos-dashboard-page small {
  letter-spacing: 0;
}

.recebimentos-kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.recebimentos-kpi-strip .card {
  min-width: 0;
  min-height: 92px;
  border-radius: 8px;
  padding: 14px 16px;
  background: linear-gradient(145deg, rgba(16, 27, 45, .92), rgba(11, 17, 31, .96));
}

.recebimentos-kpi-strip .recebimento-kpi-icon {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  border-radius: 14px;
}

.recebimento-kpi-icon.purple {
  color: #c4b5fd;
  background: linear-gradient(145deg, rgba(124, 58, 237, .45), rgba(67, 56, 202, .28));
}

.recebimento-kpi-icon.teal {
  color: #5eead4;
  background: linear-gradient(145deg, rgba(20, 184, 166, .34), rgba(13, 148, 136, .18));
}

.recebimento-kpi-icon.violet {
  color: #ddd6fe;
  background: linear-gradient(145deg, rgba(139, 92, 246, .36), rgba(91, 33, 182, .2));
}

.recebimentos-kpi-strip .metric-data strong {
  font-size: 19px;
}

.metric-trend {
  display: block;
  margin-top: 4px;
  color: #93a4bd;
  font-size: 11px;
}

.metric-trend.good {
  color: #74e19b;
}

.recebimentos-dashboard-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  min-height: max(520px, calc(100vh - 300px));
}

.recebimentos-main-stack {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
}

.recebimentos-flow-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr) 22px minmax(0, 1fr) 22px minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
  padding: 12px;
}

.recebimentos-flow-card {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  min-height: 116px;
  padding: 16px;
  border: 1px solid rgba(96, 119, 150, .34);
  border-radius: 6px;
  background: rgba(9, 17, 31, .55);
  text-decoration: none;
}

.recebimentos-flow-card.active {
  border-color: rgba(139, 92, 246, .86);
  box-shadow: inset 0 0 0 1px rgba(139, 92, 246, .22), 0 16px 40px rgba(67, 56, 202, .12);
}

.recebimentos-flow-card strong,
.recebimentos-flow-card small,
.recebimentos-flow-card b {
  display: block;
}

.recebimentos-flow-card strong {
  color: #f8fafc;
  font-size: 14px;
}

.recebimentos-flow-card small {
  margin-top: 6px;
  color: #a9b7ca;
  font-size: 12px;
}

.recebimentos-flow-card b {
  margin-top: 3px;
  color: #eef2ff;
  font-size: 14px;
}

.flow-step-icon,
.flow-step-number {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  color: #c4b5fd;
  background: rgba(124, 58, 237, .25);
  font-weight: 900;
}

.flow-step-icon {
  background-color: #c4b5fd;
  -webkit-mask: var(--icon) center / 22px 22px no-repeat;
  mask: var(--icon) center / 22px 22px no-repeat;
}

.flow-step-number.green {
  color: #bbf7d0;
  background: rgba(34, 197, 94, .42);
}

.flow-step-number.violet {
  color: #ddd6fe;
  background: rgba(124, 58, 237, .42);
}

.recebimentos-flow-arrow {
  align-self: center;
  justify-self: center;
  color: #d8e2f1;
  font-size: 26px;
  line-height: 1;
}

.recebimentos-control-panel {
  display: grid;
  gap: 10px;
  padding: 12px;
  margin-top: 0;
}

.recebimentos-action-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.recebimentos-action-bar .primary,
.recebimentos-action-bar .ghost {
  border-radius: 6px;
  min-height: 40px;
  padding: 0 16px;
}

.recebimentos-action-bar .secondary-action {
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
}

.recebimentos-more-filter {
  margin-left: auto;
}

.recebimentos-filter-bar {
  display: grid;
  grid-template-columns: minmax(130px, .9fr) minmax(130px, .9fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(130px, .9fr) auto;
  gap: 8px;
  align-items: end;
}

.recebimentos-filter-bar label {
  min-width: 0;
  color: #9fb0c5;
  font-size: 11px;
  font-weight: 800;
}

.recebimentos-filter-bar input,
.recebimentos-filter-bar select {
  width: 100%;
  min-height: 36px;
  margin-top: 4px;
  padding: 7px 10px;
  border-radius: 6px;
  font-size: 13px;
}

.recebimentos-filter-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.recebimento-manual-drawer {
  padding: 0;
  overflow: hidden;
}

.recebimento-manual-drawer summary {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
}

.recebimento-manual-drawer summary::-webkit-details-marker {
  display: none;
}

.recebimento-manual-drawer summary strong,
.recebimento-manual-drawer summary small {
  display: block;
}

.recebimento-manual-drawer summary strong {
  color: #f8fafc;
}

.recebimento-manual-drawer form {
  padding: 0 16px 16px;
  border-top: 1px solid rgba(148, 163, 184, .14);
}

.inline-field-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px;
  gap: 8px;
}

.inline-field-action .button.icon {
  display: inline-grid;
  place-items: center;
  min-height: 42px;
  padding: 0;
}

.recebimentos-table-card {
  align-self: start;
  padding: 12px;
}

.recebimentos-table-card .panel-head {
  margin-bottom: 8px;
}

.table-card .recebimentos-dashboard-table {
  width: 100%;
  min-width: 1120px;
  font-size: 12px;
}

.table-card .recebimentos-dashboard-table th {
  background: rgba(20, 31, 49, .96);
  color: #dce7f7;
  letter-spacing: 0;
  text-transform: none;
}

.table-card .recebimentos-dashboard-table th,
.table-card .recebimentos-dashboard-table td {
  padding: 8px 10px;
}

.recebimentos-dashboard-table td strong {
  color: #f1f5f9;
  font-size: 12px;
}

.recebimentos-dashboard-table .badge {
  padding: 5px 8px;
  font-size: 11px;
}

.financeiro-recebimento-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.financeiro-recebimento-actions .table-btn {
  min-height: 30px;
  padding: 5px 8px;
  border-radius: 6px;
  font-size: 11px;
}

.recebimentos-pagination {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 4px 0;
  color: #9fb0c5;
  font-size: 12px;
}

.recebimentos-page-size {
  margin: 0;
}

.recebimentos-page-size label {
  display: flex;
  gap: 8px;
  align-items: center;
  color: #9fb0c5;
  font-size: 12px;
  font-weight: 700;
}

.recebimentos-page-size select {
  min-height: 34px;
  padding: 6px 28px 6px 10px;
  border-radius: 6px;
  font-size: 12px;
}

.recebimentos-page-nav {
  display: flex;
  gap: 7px;
  align-items: center;
  justify-content: flex-end;
}

/* === Vendas de plataformas === */
.platform-sales-page {
  display: grid;
  gap: 14px;
}

.platform-filter-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr)) auto auto;
  gap: 12px;
  align-items: end;
  padding: 12px;
  border: 1px solid rgba(67, 89, 120, .42);
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(14, 24, 41, .9), rgba(8, 13, 25, .94));
}

.platform-filter-strip label {
  color: #9fb0c5;
  font-size: 11px;
  font-weight: 800;
}

.platform-filter-strip input,
.platform-filter-strip select {
  width: 100%;
  min-height: 40px;
  margin-top: 5px;
  border-radius: 6px;
  font-size: 13px;
}

.ifood-period-filter {
  grid-template-columns: minmax(260px, 1.2fr) minmax(180px, .8fr) auto auto;
}

.ifood-period-filter .primary,
.ifood-period-filter .ghost {
  width: auto;
  min-width: 84px;
  justify-self: start;
  white-space: nowrap;
}

.platform-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 14px;
  align-items: start;
}

.platform-sales-page .panel {
  border-radius: 8px;
  background: linear-gradient(145deg, rgba(15, 25, 43, .92), rgba(7, 13, 24, .97));
}

.platform-sales-page .panel h2 {
  margin: 0;
  color: #f8fafc;
  font-size: 18px;
}

.platform-margin-panel,
.platform-auto-panel,
.platform-imported-fields-panel,
.platform-promos-panel,
.platform-days-panel {
  min-width: 0;
}

.platform-margin-value {
  color: #74e19b;
  font-size: 32px;
}

.platform-money-chain {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.platform-money-chain div {
  min-height: 82px;
  padding: 12px;
  border: 1px solid rgba(96, 119, 150, .26);
  border-radius: 8px;
  background: rgba(8, 15, 28, .62);
}

.platform-money-chain span,
.platform-money-chain strong {
  display: block;
}

.platform-money-chain span {
  color: #9fb0c5;
  font-size: 12px;
}

.platform-money-chain strong {
  margin-top: 8px;
  color: #f8fafc;
  font-size: 15px;
}

.platform-money-chain .negative strong {
  color: #ff8c8c;
}

.platform-money-chain .negative.amber strong {
  color: #fbbf24;
}

.platform-money-chain .pending strong {
  color: #93c5fd;
}

.platform-money-chain .neutral strong {
  color: #bfdbfe;
}

.platform-money-chain .positive strong {
  color: #74e19b;
}

.platform-margin-bar {
  display: grid;
  grid-template-columns: minmax(180px, 1.5fr) minmax(60px, .4fr) minmax(60px, .35fr) minmax(90px, .5fr);
  height: 34px;
  margin-top: 14px;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(15, 23, 42, .86);
}

.platform-margin-bar span {
  display: grid;
  place-items: center;
  min-width: 0;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.platform-margin-bar .gross {
  background: linear-gradient(135deg, #7c3aed, #6d28d9);
}

.platform-margin-bar .fees {
  background: linear-gradient(135deg, #dc2626, #b91c1c);
}

.platform-margin-bar .promo {
  background: linear-gradient(135deg, #f59e0b, #d97706);
}

.platform-margin-bar .net {
  background: linear-gradient(135deg, #22c55e, #15803d);
}

.platform-best-panel {
  min-width: 0;
}

.platform-bars {
  display: grid;
  gap: 12px;
}

.platform-bar-row {
  display: grid;
  grid-template-columns: 36px minmax(68px, .8fr) minmax(70px, 1fr) 48px;
  gap: 8px;
  align-items: center;
}

.platform-logo {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  color: #fff;
  background: rgba(124, 58, 237, .46);
  font-size: 11px;
  font-weight: 950;
}

.platform-entry-card.ifood .ifood-logo-wordmark {
  justify-self: start;
  width: 112px;
  height: 62px;
  border-radius: 0;
  background: transparent;
}

.platform-entry-card.ifood .ifood-logo-wordmark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.platform-bar-row.ifood .platform-logo {
  background: #ef4444;
}

.platform-bar-row.food99 .platform-logo {
  color: #111827;
  background: #fde047;
}

.platform-bar-row strong {
  color: #f8fafc;
  font-size: 13px;
}

.platform-bar-row b,
.platform-bar-row small {
  color: #dbeafe;
  font-size: 12px;
  text-align: right;
}

.platform-bar-row small {
  grid-column: 2 / -1;
}

.platform-bar-track {
  display: block;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(30, 41, 59, .9);
}

.platform-bar-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #8b5cf6, #22c55e);
}

.platform-auto-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.platform-auto-grid div {
  display: grid;
  gap: 8px;
  min-height: 120px;
  padding: 12px;
  border: 1px solid rgba(96, 119, 150, .28);
  border-radius: 8px;
  background: rgba(8, 15, 28, .62);
}

.platform-auto-grid span,
.platform-auto-grid small {
  color: #9fb0c5;
}

.platform-auto-grid strong {
  color: #f8fafc;
  font-size: 22px;
}

.platform-promos-panel,
.platform-days-panel,
.platform-imported-fields-panel {
  min-height: 260px;
}

.platform-promo-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.platform-promo-list div {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(100px, 1.1fr) 90px 58px;
  gap: 10px;
  align-items: center;
}

.platform-promo-list span {
  color: #dbeafe;
  font-weight: 800;
}

.platform-promo-list i {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(30, 41, 59, .9);
}

.platform-promo-list i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #8b5cf6;
}

.platform-promo-list .taxa i b {
  background: #ef4444;
}

.platform-promo-list .offline i b {
  background: #38bdf8;
}

.platform-promo-list strong,
.platform-promo-list small {
  color: #e2e8f0;
  text-align: right;
}

.platform-days-chart {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  height: 150px;
  padding: 12px 8px 4px;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
}

.platform-days-chart div {
  display: grid;
  align-items: end;
  justify-items: center;
  height: 100%;
}

.platform-days-chart span {
  display: block;
  width: 28px;
  min-height: 2px;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(180deg, #8b5cf6, #2563eb);
}

.platform-days-chart small {
  margin-top: 6px;
  color: #cbd5e1;
}

.platform-days-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.platform-days-summary span {
  padding: 10px;
  border-radius: 8px;
  color: #9fb0c5;
  background: rgba(8, 15, 28, .58);
}

.platform-days-summary b {
  display: block;
  margin-top: 4px;
  color: #f8fafc;
}

.platform-fields-list {
  display: grid;
  margin-top: 14px;
  gap: 10px;
}

.platform-fields-list div {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border: 1px solid rgba(96, 119, 150, .25);
  border-radius: 8px;
  background: rgba(8, 15, 28, .58);
}

.platform-fields-list strong {
  color: #f8fafc;
}

.platform-fields-list span {
  color: #9fb0c5;
  font-size: 12px;
}

.platform-alerts-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}

.platform-alerts-panel > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.platform-alerts-panel article {
  padding: 12px;
  border: 1px solid rgba(96, 119, 150, .28);
  border-radius: 8px;
  background: rgba(8, 15, 28, .64);
}

.platform-alerts-panel strong,
.platform-alerts-panel span {
  display: block;
}

.platform-alerts-panel strong {
  color: #f8fafc;
}

.platform-alerts-panel span {
  margin-top: 4px;
  color: #aab5c7;
}

@media (min-width: 1500px) {
  .platform-dashboard-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .platform-margin-panel {
    grid-column: span 7;
  }

  .platform-best-panel {
    grid-column: span 5;
  }

  .platform-auto-panel {
    grid-column: span 12;
  }

  .platform-promos-panel,
  .platform-days-panel,
  .platform-imported-fields-panel {
    grid-column: span 4;
  }
}

@media (max-width: 1080px) {
  .platform-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .platform-best-panel,
  .platform-imported-fields-panel {
    grid-column: auto;
  }
}

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

  .platform-money-chain,
  .platform-auto-grid,
  .platform-alerts-panel > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .platform-alerts-panel {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .platform-filter-strip,
  .platform-money-chain,
  .platform-auto-grid,
  .platform-promo-list div,
  .platform-alerts-panel > div,
  .platform-repasses-summary,
  .platform-days-summary {
    grid-template-columns: 1fr;
  }

  .platform-margin-bar {
    grid-template-columns: 1fr;
    height: auto;
  }

  .platform-margin-bar span {
    min-height: 30px;
  }

  .platform-bar-row {
    grid-template-columns: 36px 1fr 58px;
  }

  .platform-bar-track,
  .platform-bar-row small {
    grid-column: 2 / -1;
  }
}

.recebimentos-page-nav .table-btn {
  min-width: 34px;
  min-height: 34px;
  padding: 6px 10px;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
}

.recebimentos-page-nav .page-number.active {
  color: #fff;
  border-color: rgba(196, 181, 253, .55);
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  box-shadow: 0 10px 24px rgba(124, 58, 237, .22);
}

.recebimentos-page-nav .disabled {
  opacity: .45;
  pointer-events: none;
}

.recebimentos-page-nav .page-ellipsis {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  color: #7f8ca3;
}

.recebimentos-right-rail {
  display: grid;
  align-content: start;
  gap: 12px;
  align-self: stretch;
  min-width: 0;
}

.recebimentos-side-card {
  padding: 16px;
}

.side-card-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
}

.side-card-head h2 {
  margin: 0;
  color: #f8fafc;
  font-size: 16px;
}

.side-card-head a {
  color: #a78bfa;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.recebimentos-rail-list {
  display: grid;
  gap: 0;
}

.recebimentos-rail-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
}

.recebimentos-rail-item:last-child {
  border-bottom: 0;
}

.recebimentos-rail-item strong,
.recebimentos-rail-item small,
.recebimentos-rail-item b {
  display: block;
}

.recebimentos-rail-item strong {
  color: #f8fafc;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.recebimentos-rail-item small {
  color: #9fb0c5;
  font-size: 12px;
}

.recebimentos-rail-item b {
  color: #f8fafc;
  font-size: 13px;
  text-align: right;
  white-space: nowrap;
}

.rail-origin-dot,
.rail-platform-badge {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: linear-gradient(135deg, #22c55e, #06b6d4);
}

.rail-origin-dot::before {
  content: "";
  width: 14px;
  height: 14px;
  background: #06111f;
  transform: rotate(45deg);
}

.rail-platform-badge {
  color: #06111f;
  background: linear-gradient(135deg, #facc15, #f97316);
  font-size: 11px;
  font-weight: 900;
}

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

.recebimentos-donut {
  width: 86px;
  height: 86px;
  border-radius: 50%;
  background: conic-gradient(#22c55e 0 48%, #3b82f6 48% 68%, #8b5cf6 68% 82%, #f59e0b 82% 100%);
  position: relative;
}

.recebimentos-donut::after {
  content: "";
  position: absolute;
  inset: 22px;
  border-radius: 50%;
  background: #0b1424;
}

.recebimentos-donut-legend {
  display: grid;
  gap: 8px;
}

.recebimentos-donut-legend span {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  color: #a9b7ca;
  font-size: 11px;
}

.recebimentos-donut-legend i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.recebimentos-donut-legend i.ok { background: #22c55e; }
.recebimentos-donut-legend i.warn { background: #3b82f6; }
.recebimentos-donut-legend i.info { background: #8b5cf6; }

.recebimentos-donut-legend b {
  color: #f8fafc;
  font-weight: 700;
  white-space: nowrap;
}

.recebimentos-side-total {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(148, 163, 184, .16);
  color: #9fb0c5;
}

.recebimentos-side-total strong {
  color: #f8fafc;
  font-size: 17px;
}

@media (max-width: 1500px) {
  .recebimentos-dashboard-shell {
    grid-template-columns: minmax(0, 1fr);
  }

  .recebimentos-kpi-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 1280px) {
  .recebimentos-dashboard-shell {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .recebimentos-right-rail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1080px) {
  .recebimentos-flow-panel {
    grid-template-columns: 1fr;
  }

  .recebimentos-flow-arrow,
  .recebimentos-flow-card em {
    display: none;
  }

  .recebimentos-control-panel {
    margin-top: 0;
  }

  .recebimentos-filter-bar,
  .recebimentos-right-rail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .recebimentos-kpi-strip,
  .recebimentos-filter-bar,
  .recebimentos-right-rail,
  .financeiro-recebimento-form .settings-edit-grid {
    grid-template-columns: 1fr;
  }

  .recebimentos-action-bar .primary,
  .recebimentos-action-bar .ghost,
  .recebimentos-filter-actions,
  .recebimentos-filter-actions .primary,
  .recebimentos-filter-actions .ghost {
    width: 100%;
    justify-content: center;
  }

  .recebimentos-more-filter {
    margin-left: 0;
  }

  .recebimentos-donut-row {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .recebimentos-pagination {
    grid-template-columns: 1fr;
  }

  .recebimentos-page-size label,
  .recebimentos-page-nav {
    justify-content: center;
  }

  .financeiro-recebimento-modal .settings-edit-grid {
    grid-template-columns: 1fr;
  }
}

/* === Premium Contas a Pagar KPI Cards === */
.contas-pagar-resumo.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.contas-pagar-resumo .card.mini-metric.with-icon {
  background: linear-gradient(145deg, #131726 0%, #0d101a 100%);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 12px;
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 140px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contas-pagar-resumo .card.mini-metric.with-icon:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
  border-color: rgba(255, 255, 255, 0.08);
}

.contas-pagar-resumo .metric-icon {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.contas-pagar-resumo .metric-icon svg {
  width: 32px;
  height: 32px;
}

.contas-pagar-resumo .metric-icon.orange {
  background: linear-gradient(135deg, rgba(217, 119, 6, 0.2) 0%, rgba(217, 119, 6, 0.05) 100%);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.2);
}

.contas-pagar-resumo .metric-icon.green {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(16, 185, 129, 0.05) 100%);
  color: #10b981;
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.contas-pagar-resumo .metric-icon.purple {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.2) 0%, rgba(139, 92, 246, 0.05) 100%);
  color: #a78bfa;
  border: 1px solid rgba(139, 92, 246, 0.2);
}

.contas-pagar-resumo .metric-data {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}

.contas-pagar-resumo .metric-data span {
  font-size: 13px;
  color: #94a3b8;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.contas-pagar-resumo .metric-data strong {
  font-size: 32px;
  color: #f8fafc;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.5px;
}

.contas-pagar-resumo .metric-data small {
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

@media (max-width: 768px) {
  .contas-pagar-resumo.cards {
    grid-template-columns: 1fr;
  }
}

/* Ajuste final do modal individual: prevalece sobre estilos financeiros legados. */
.conciliacao-view-switch {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  background: rgba(15, 23, 42, .62);
}

.conciliacao-view-switch a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 6px;
  color: #aeb9cb;
}

.conciliacao-view-switch a span { padding: 2px 7px; border-radius: 10px; background: rgba(148, 163, 184, .12); font-size: 12px; }
.conciliacao-view-switch a.active { color: #fff; background: #6d28d9; box-shadow: 0 6px 18px rgba(109, 40, 217, .24); }

#modal-conciliacao .conciliacao-modal-dialog {
  box-sizing: border-box;
  width: min(820px, calc(100vw - 32px));
  max-width: 820px;
  max-height: calc(100vh - 40px);
  padding: 20px;
  overflow-x: hidden;
  overflow-y: auto;
  border-radius: 8px;
}

#modal-conciliacao .conciliacao-modal-dialog > * { min-width: 0; }
#modal-conciliacao .conciliacao-extrato-resumo { width: 100%; box-sizing: border-box; }

#modal-conciliacao .conciliacao-sugestao-item {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  grid-template-columns: minmax(0, 1fr) 190px;
}

#modal-conciliacao .sugestao-main { min-width: 0; }
#modal-conciliacao .sugestao-main > strong { margin-bottom: 3px; font-size: 16px; }
#modal-conciliacao .sugestao-main > small { display: block; overflow: hidden; color: #aeb9cb; text-overflow: ellipsis; white-space: nowrap; }
.conciliacao-sugestao-acoes { display: grid; align-content: center; gap: 8px; }
.conciliacao-sugestao-acoes .primary { width: 100%; }
.conciliacao-sugestao-acoes .link-button { border: 0; color: #c084fc; background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; }

#modal-conciliacao .conciliacao-classificacao-unificada {
  display: none;
  order: 4;
}

#modal-conciliacao .conciliacao-classificacao-unificada[open] { display: block; }
#modal-conciliacao .conciliacao-classificacao-unificada[open] + .conciliacao-classificacao-card { display: none; }
#modal-conciliacao [data-classificacao-entrada][hidden] { display: none !important; }
#modal-conciliacao [data-classificacao-saida][hidden],
#modal-conciliacao-lote [data-lote-entrada][hidden],
#modal-conciliacao-lote [data-lote-saida][hidden] { display: none !important; }

.conciliacao-classificacao-card {
  order: 3;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  margin: 0 0 10px;
  padding: 8px 12px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 7px;
  color: #e5e7eb;
  text-align: left;
  background: rgba(15, 23, 42, .45);
  cursor: pointer;
}

.conciliacao-classificacao-card > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }
.conciliacao-classificacao-card small { overflow: hidden; color: #aeb9cb; text-overflow: ellipsis; white-space: nowrap; }
.conciliacao-classificacao-card-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 7px; color: #c4b5fd; background: rgba(124, 58, 237, .18); }

#modal-conciliacao .conciliacao-outras-formas { order: 5; }
#modal-conciliacao #form-conciliacao { order: 6; grid-template-columns: minmax(0, 1fr) auto; }
#modal-conciliacao .conciliacao-selecao-detalhes { display: none; }
#modal-conciliacao .conciliacao-reembolso-contexto {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: .65fr 1.35fr 1fr;
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(56, 189, 248, .32);
  border-radius: 7px;
  background: rgba(14, 165, 233, .08);
}
#modal-conciliacao .conciliacao-reembolso-contexto[hidden] { display: none; }
#modal-conciliacao .conciliacao-reembolso-contexto > div { display: grid; gap: 3px; min-width: 0; padding: 9px 11px; background: rgba(15, 23, 42, .72); }
#modal-conciliacao .conciliacao-reembolso-contexto span { color: #94a3b8; font-size: 11px; }
#modal-conciliacao .conciliacao-reembolso-contexto strong { overflow: hidden; color: #e2e8f0; text-overflow: ellipsis; white-space: nowrap; }
#modal-conciliacao .conciliacao-classificacao-unificada select:disabled { color: #cbd5e1; opacity: .78; cursor: not-allowed; }
#modal-conciliacao .conciliacao-observacao-compacta { grid-column: 1 / -1; }
#modal-conciliacao .conciliacao-confirmacao-resumo { grid-column: 1; grid-row: auto; }
#modal-conciliacao .conciliacao-footer-actions { grid-column: 2; grid-row: auto; }
#modal-conciliacao .conciliacao-footer-actions button { min-height: 40px; }

@media (max-width: 760px) {
  #modal-conciliacao .conciliacao-modal-dialog { width: calc(100vw - 16px); padding: 14px; }
  #modal-conciliacao .conciliacao-sugestao-item { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-extrato-resumo { grid-template-columns: 36px minmax(0, 1fr) auto; }
  #modal-conciliacao #form-conciliacao { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-confirmacao-resumo,
  #modal-conciliacao .conciliacao-footer-actions { grid-column: 1; }
  #modal-conciliacao .conciliacao-reembolso-contexto { grid-template-columns: 1fr; }
}

/* === Premium Filters === */
.contas-pagar-filtros-premium {
  background: #0f121d;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 24px;
}

.premium-form .filters-main-row {
  display: flex;
  gap: 16px;
  align-items: flex-end;
}

.premium-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13px;
  color: #cbd5e1;
  font-weight: 500;
}

.premium-form .search-field {
  flex: 2;
  min-width: 250px;
}

.premium-form .select-field {
  flex: 1;
  min-width: 180px;
}

.input-with-icon {
  position: relative;
  display: flex;
  align-items: center;
}

.input-with-icon .search-icon {
  position: absolute;
  left: 14px;
  color: #64748b;
}

.input-with-icon input {
  width: 100%;
  padding: 12px 14px 12px 40px !important;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: #f8fafc;
  height: 44px;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.input-with-icon input:focus {
  border-color: #8b5cf6;
  background: rgba(255, 255, 255, 0.05);
  outline: none;
}

.premium-form select {
  width: 100%;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: #f8fafc;
  height: 44px;
  color-scheme: dark;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.premium-form select:focus {
  border-color: #8b5cf6;
  background: rgba(255, 255, 255, 0.05);
  outline: none;
}

body.app-shell[data-active="/financeiro/contas-a-pagar"] select,
body.app-shell[data-active="/financeiro/contas-a-pagar"] input[type="date"] {
  color-scheme: dark;
}

body.app-shell[data-active="/financeiro/contas-a-pagar"] select option {
  background: #121827;
  color: #f8fafc;
}

body.app-shell[data-active="/financeiro/contas-a-pagar"] select option:checked {
  background: #6d28d9;
  color: #ffffff;
}

body.app-shell[data-active="/financeiro/contas-a-pagar"] select option:disabled {
  color: #64748b;
}

body.app-shell[data-active="/financeiro/contas-a-pagar"] input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(71%) sepia(85%) saturate(2121%) hue-rotate(164deg) brightness(101%) contrast(97%);
  opacity: 1;
}

.documentos-pagar-conciliacao-dialog {
  width: min(980px, calc(100vw - 32px));
}

.documentos-pagar-conciliacao-lancamentos {
  display: grid;
  gap: 10px;
  max-height: 48vh;
  overflow: auto;
  padding-right: 4px;
}

.documento-conciliacao-lancamento {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(120px, .7fr)) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 10px;
  background: rgba(15, 23, 42, .72);
}

.documento-conciliacao-lancamento.mesmo-valor {
  border-color: rgba(124, 58, 237, .55);
  box-shadow: inset 3px 0 0 #8b5cf6;
}

.documento-conciliacao-lancamento.selected {
  background: rgba(124, 58, 237, .18);
  border-color: rgba(167, 139, 250, .85);
}

.documento-conciliacao-lancamento span {
  display: block;
  color: #94a3b8;
  font-size: 12px;
}

.documento-conciliacao-lancamento small {
  display: block;
  margin-top: 4px;
  color: #94a3b8;
}

@media (max-width: 860px) {
  .documento-conciliacao-lancamento {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}

.contas-pagar-filter-actions {
  display: flex;
  gap: 12px;
  height: 44px;
}

.btn-buscar-premium {
  background: #7c3aed;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 0 24px;
  font-weight: 600;
  cursor: pointer;
  height: 44px;
  transition: background 0.2s ease;
}

.btn-buscar-premium:hover {
  background: #6d28d9;
}

.btn-limpar-premium {
  background: rgba(255, 255, 255, 0.05);
  color: #cbd5e1;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 0 20px;
  font-weight: 500;
  cursor: pointer;
  height: 44px;
  transition: background 0.2s ease, color 0.2s ease;
}

.btn-limpar-premium:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #f8fafc;
}

.filters-divider {
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  margin: 24px 0;
}

.premium-advanced summary {
  color: #8b5cf6;
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
}

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

.premium-advanced[open] summary .chevron {
  transform: rotate(180deg);
}

@media (max-width: 768px) {
  .premium-form .filters-main-row {
    flex-direction: column;
    align-items: stretch;
  }
  
  .contas-pagar-filter-actions {
    flex-direction: column;
    height: auto;
  }
  
.btn-buscar-premium, .btn-limpar-premium {
    width: 100%;
  }
}

/* Mesmo sistema visual e mesma ordem de dados nos fluxos individual e em lote. */
#modal-conciliacao-lote .conciliacao-lote-dialog {
  box-sizing: border-box;
  width: min(820px, calc(100vw - 32px));
  max-width: 820px;
  max-height: calc(100vh - 40px);
  padding: 20px;
  overflow-x: hidden;
  border-radius: 8px;
}

#modal-conciliacao,
#modal-conciliacao-lote {
  z-index: 3000;
}

#modal-conciliacao-lote .conciliacao-lote-form { gap: 11px; }
#modal-conciliacao-lote .conciliacao-lote-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
#modal-conciliacao-lote .conciliacao-lote-summary > div { padding: 9px 11px; }
#modal-conciliacao-lote .conciliacao-lote-summary strong { font-size: 17px; }
#modal-conciliacao-lote .conciliacao-lote-section { gap: 10px; padding: 12px; border-radius: 7px; }
#modal-conciliacao-lote .conciliacao-lote-section-title > span { flex-basis: 24px; height: 24px; }
#modal-conciliacao-lote .conciliacao-mode-options { gap: 8px; }
#modal-conciliacao-lote .conciliacao-mode-options label > span { min-height: 56px; padding: 9px 11px; }
#modal-conciliacao-lote .conciliacao-lote-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
#modal-conciliacao-lote .conciliacao-lote-form select { min-height: 38px; }
#modal-conciliacao-lote .lote-observacao textarea { min-height: 54px; }
#modal-conciliacao-lote [hidden] { display: none !important; }

@media (max-width: 760px) {
  #modal-conciliacao-lote .conciliacao-lote-dialog { width: calc(100vw - 16px); padding: 14px; }
  #modal-conciliacao-lote .conciliacao-lote-summary { grid-template-columns: 1fr 1fr; }
  #modal-conciliacao-lote .conciliacao-lote-grid { grid-template-columns: 1fr; }
}
.padrao-recorrente-dialog { max-width: 760px; }
.padrao-recorrente-alert { display: grid; gap: 4px; margin: 12px 0; padding: 12px 14px; border: 1px solid rgba(34,197,94,.35); border-radius: 8px; background: rgba(34,197,94,.08); }
.padrao-recorrente-alert span, .padrao-recorrente-classificacao span { color: var(--muted); font-size: 12px; }
.padrao-recorrente-classificacao { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 8px; }
.padrao-recorrente-lista { display: grid; max-height: 340px; margin: 12px 0; overflow: auto; border: 1px solid var(--border); border-radius: 8px; }
.padrao-recorrente-item { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--border); cursor: pointer; }
.padrao-recorrente-item:last-child { border-bottom: 0; }
.padrao-recorrente-item span { display: grid; min-width: 0; }
.padrao-recorrente-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.padrao-recorrente-item small { color: var(--muted); }
.padrao-recorrente-total { margin-right: auto; color: var(--muted); }
@media (max-width: 640px) { .padrao-recorrente-classificacao { display: grid; } .padrao-recorrente-item { grid-template-columns: auto minmax(0,1fr); } .padrao-recorrente-item b { grid-column: 2; } }
.transferencia-modo { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; margin: 14px 0; padding: 4px; border: 1px solid var(--border); border-radius: 8px; background: rgba(5,10,25,.4); }
.transferencia-modo button { min-height: 40px; border: 0; border-radius: 6px; color: var(--muted); background: transparent; cursor: pointer; }
.transferencia-modo button.active { color: var(--text); background: rgba(124,58,237,.22); box-shadow: inset 0 0 0 1px rgba(139,92,246,.5); }
#transferencia-painel-vincular[hidden], #transferencia-painel-registrar[hidden], #transferencia-selecionado-campo[hidden] { display: none !important; }
.transferencia-registrar-panel { margin-bottom: 14px; padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: rgba(10,18,38,.5); }
.transferencia-register-notice { display: grid; gap: 4px; margin-bottom: 14px; padding: 11px 13px; border-left: 3px solid #38bdf8; background: rgba(14,165,233,.08); }
.transferencia-register-notice span { color: var(--muted); font-size: 12px; }
.transferencia-direcao-preview { display: grid; grid-template-columns: auto minmax(90px,1fr) auto auto minmax(90px,1fr) auto; align-items: center; gap: 9px; margin-top: 12px; padding: 11px 13px; border: 1px solid rgba(56,189,248,.24); border-radius: 8px; }
.transferencia-direcao-preview span { color: var(--muted); font-size: 11px; }
.transferencia-direcao-preview b { color: #38bdf8; }
.transferencia-direcao-preview em { color: var(--text); font-style: normal; font-weight: 700; }
@media (max-width: 640px) { .transferencia-modo { grid-template-columns: 1fr; } .transferencia-direcao-preview { grid-template-columns: auto 1fr; } .transferencia-direcao-preview b { display: none; } }

/* Contas e saldos: visao consolidada e extrato individual. */
.contas-saldos-page,
.conta-extrato-page { display: grid; min-width: 0; gap: 14px; }
.conta-extrato-page > * { min-width: 0; }
.contas-saldos-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.contas-saldos-kpis article { display: grid; gap: 5px; min-height: 106px; padding: 17px 18px; border: 1px solid var(--border); border-radius: 8px; background: rgba(15, 23, 42, .68); }
.contas-saldos-kpis span,
.contas-saldos-kpis small { color: var(--muted); font-size: 12px; }
.contas-saldos-kpis strong { color: var(--text); font-size: 23px; line-height: 1.1; }
.contas-saldos-kpis .has-warning { border-color: rgba(245, 158, 11, .35); background: rgba(245, 158, 11, .05); }
.contas-saldos-filtros { display: grid; grid-template-columns: minmax(260px, 1fr) 180px 150px auto auto; align-items: end; gap: 10px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 8px; background: rgba(15, 23, 42, .54); }
.contas-saldos-filtros > div { display: grid; gap: 3px; }
.contas-saldos-filtros > div span { color: var(--muted); font-size: 12px; }
.contas-saldos-filtros label,
.conta-extrato-filtros label,
.conta-operacao-grid label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; }
.contas-saldos-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.conta-saldo-card { display: grid; gap: 14px; min-width: 0; padding: 17px; border: 1px solid var(--border); border-radius: 8px; background: linear-gradient(145deg, rgba(19, 29, 51, .92), rgba(10, 17, 34, .92)); }
.conta-saldo-card.inactive { opacity: .64; }
.conta-saldo-card.negative { border-color: rgba(244, 63, 94, .35); }
.conta-saldo-card > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.conta-saldo-card h2 { margin: 0; font-size: 17px; }
.conta-saldo-card p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.conta-saldo-icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(56, 189, 248, .38); border-radius: 8px; color: #38bdf8; background: rgba(14, 165, 233, .09); }
.conta-saldo-icon.cash { border-color: rgba(34, 197, 94, .38); color: #4ade80; background: rgba(34, 197, 94, .09); }
.conta-saldo-principal { display: grid; gap: 3px; }
.conta-saldo-principal span,
.conta-saldo-principal small { color: var(--muted); font-size: 11px; }
.conta-saldo-principal strong { font-size: 25px; }
.conta-saldo-card.negative .conta-saldo-principal strong { color: #fb7185; }
.conta-saldo-comparacao { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(148, 163, 184, .16); border-radius: 7px; overflow: hidden; }
.conta-saldo-comparacao > div { display: grid; gap: 3px; padding: 10px; border-right: 1px solid rgba(148, 163, 184, .16); }
.conta-saldo-comparacao > div:last-child { border-right: 0; }
.conta-saldo-comparacao span,
.conta-saldo-comparacao small { color: var(--muted); font-size: 10px; }
.conta-saldo-comparacao strong { font-size: 13px; }
.conta-saldo-comparacao .different strong { color: #fbbf24; }
.conta-saldo-fluxo { display: flex; flex-wrap: wrap; gap: 9px 18px; color: var(--muted); font-size: 11px; }
.conta-saldo-fluxo strong { color: var(--text); }
.conta-saldo-alertas,
.conta-extrato-alertas { display: flex; flex-wrap: wrap; gap: 7px; }
.conta-saldo-alertas span,
.conta-extrato-alertas span { padding: 5px 8px; border-radius: 6px; color: #bfdbfe; font-size: 10px; background: rgba(59, 130, 246, .12); }
.conta-saldo-alertas .warn,
.conta-extrato-alertas .warn { color: #fcd34d; background: rgba(245, 158, 11, .12); }
.conta-saldo-alertas .danger,
.conta-extrato-alertas .danger { color: #fda4af; background: rgba(244, 63, 94, .12); }
.conta-saldo-card > footer { display: grid; grid-template-columns: minmax(120px, 1fr) auto; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid rgba(148, 163, 184, .14); color: var(--muted); font-size: 10px; }
.conta-saldo-actions { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 7px; min-width: 0; }
.conta-saldo-actions .small { min-height: 38px; padding-inline: 13px; white-space: nowrap; }
.contas-saldos-empty { grid-column: 1 / -1; }
.conta-cadastro-callout { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 15px 18px; }
.conta-cadastro-callout > div { display: grid; gap: 3px; }
.conta-cadastro-callout span { color: var(--muted); font-size: 12px; }

.conta-extrato-head { display: grid; grid-template-columns: minmax(220px, 1.2fr) repeat(3, minmax(150px, .72fr)) auto; align-items: center; gap: 0; border: 1px solid var(--border); border-radius: 8px; background: rgba(15, 23, 42, .68); overflow: hidden; }
.conta-extrato-head > div { min-height: 108px; padding: 17px; border-right: 1px solid var(--border); }
.conta-extrato-identidade { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; }
.conta-extrato-identidade > div { display: grid; gap: 3px; min-width: 0; }
.conta-extrato-identidade span,
.conta-extrato-identidade small,
.conta-extrato-saldo span,
.conta-extrato-saldo small,
.conta-extrato-referencia span,
.conta-extrato-referencia small { color: var(--muted); font-size: 11px; }
.conta-extrato-identidade h2 { margin: 0; overflow: hidden; font-size: 19px; text-overflow: ellipsis; white-space: nowrap; }
.conta-extrato-saldo,
.conta-extrato-referencia { display: grid; align-content: center; gap: 5px; }
.conta-extrato-saldo strong { font-size: 24px; }
.conta-extrato-saldo strong.negative { color: #fb7185; }
.conta-extrato-referencia strong { font-size: 16px; }
.conta-extrato-referencia.different strong { color: #fbbf24; }
.conta-extrato-head .conta-extrato-actions { display: grid; align-content: center; gap: 8px; min-width: 195px; border-right: 0; }
.conta-extrato-resumo-periodo { padding: 15px 17px; border: 1px solid var(--border); border-radius: 8px; background: rgba(15, 23, 42, .54); }
.conta-extrato-resumo-periodo > header { display: flex; justify-content: space-between; align-items: end; gap: 14px; margin-bottom: 13px; }
.conta-extrato-resumo-periodo h2 { margin: 2px 0 0; font-size: 18px; }
.conta-extrato-resumo-periodo p { margin: 0; color: var(--muted); font-size: 12px; }
.conta-extrato-resumo-periodo > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.conta-extrato-resumo-periodo article { display: grid; gap: 4px; min-width: 0; padding: 13px; border-right: 1px solid var(--border); }
.conta-extrato-resumo-periodo article:last-child { border-right: 0; }
.conta-extrato-resumo-periodo span,
.conta-extrato-resumo-periodo small { color: var(--muted); font-size: 10px; }
.conta-extrato-resumo-periodo strong { font-size: 19px; }
.conta-extrato-resumo-periodo strong.entrada { color: #4ade80; }
.conta-extrato-resumo-periodo strong.saida,
.conta-extrato-resumo-periodo strong.negative { color: #fb7185; }
.conta-ofx-import-card { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(320px, .9fr); align-items: end; gap: 16px; padding: 16px 18px; scroll-margin-top: 18px; }
.conta-ofx-import-card > div:first-child { display: grid; gap: 4px; }
.conta-ofx-import-card h2 { margin: 0; font-size: 19px; }
.conta-ofx-import-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.conta-ofx-import-form label { display: grid; gap: 5px; color: var(--muted); font-size: 11px; }
.conta-ofx-import-form input[type="file"] { min-height: 42px; }
.conta-extrato-filtros { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(125px, .7fr)) auto auto; align-items: end; gap: 9px; padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: rgba(15, 23, 42, .54); }
.conta-extrato-panel { min-width: 0; padding: 0; overflow: visible; }
.conta-extrato-panel > .panel-head { margin: 0; padding: 15px 17px; border-bottom: 1px solid var(--border); }
.conta-ajustes-historico { position: relative; }
.conta-ajustes-historico > summary { padding: 8px 11px; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; list-style: none; }
.conta-ajustes-historico > summary::-webkit-details-marker { display: none; }
.conta-ajustes-historico > div { position: absolute; z-index: 12; top: calc(100% + 7px); right: 0; display: grid; width: min(440px, 80vw); max-height: 300px; overflow: auto; padding: 8px; border: 1px solid var(--border); border-radius: 7px; background: #0d1528; box-shadow: 0 18px 46px rgba(0, 0, 0, .38); }
.conta-ajustes-historico article { display: grid; gap: 3px; padding: 9px; border-bottom: 1px solid var(--border); }
.conta-ajustes-historico article:last-child { border-bottom: 0; }
.conta-ajustes-historico span,
.conta-ajustes-historico small { color: var(--muted); font-size: 11px; }
.conta-extrato-table-wrap { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; }
.conta-extrato-table { width: 100%; min-width: 1020px; border-collapse: collapse; }
.conta-extrato-table th { padding: 11px 12px; color: #cbd5e1; font-size: 11px; text-align: left; background: rgba(30, 41, 59, .68); }
.conta-extrato-table td { padding: 11px 12px; border-top: 1px solid var(--border); font-size: 12px; vertical-align: middle; }
.conta-extrato-table td > strong,
.conta-extrato-table td > small { display: block; }
.conta-extrato-table td > small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.conta-extrato-table .money { text-align: right; white-space: nowrap; }
.conta-extrato-table .entrada { color: #4ade80; }
.conta-extrato-table .saida { color: #fb7185; }
.conta-extrato-table tr.cancelado { opacity: .52; }
.conta-extrato-table tr.cancelado td:nth-child(2) strong { text-decoration: line-through; }
.conta-extrato-table .badge { display: inline-flex; }
.source-manual { color: #c4b5fd; background: rgba(139, 92, 246, .16); }
.source-transferencia { color: #7dd3fc; background: rgba(14, 165, 233, .14); }
.source-ofx { color: #cbd5e1; background: rgba(100, 116, 139, .16); }
.conta-extrato-paginacao { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-top: 1px solid var(--border); color: var(--muted); font-size: 11px; }
.conta-extrato-paginacao > div { display: flex; gap: 8px; }
.conta-operacao-dialog { box-sizing: border-box; width: min(690px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow-y: auto; overflow-x: hidden; }
.conta-operacao-modal { z-index: 3000; }
.conta-operacao-dialog.compact { width: min(570px, calc(100vw - 32px)); }
.conta-cadastro-dialog { width: min(790px, calc(100vw - 32px)); }
.conta-cadastro-dialog input:disabled { color: #94a3b8; border-color: rgba(148, 163, 184, .12); background: rgba(15, 23, 42, .45); cursor: not-allowed; }
.conta-operacao-dialog > .panel-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; margin-bottom: 14px; }
.conta-operacao-dialog > .panel-head .icon-button { justify-self: end; }
.conta-operacao-form { display: grid; gap: 14px; }
.conta-tipo-movimento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; }
.conta-tipo-movimento legend { margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.conta-tipo-movimento label { cursor: pointer; }
.conta-tipo-movimento input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.conta-tipo-movimento span { display: grid; place-items: center; min-height: 42px; border: 1px solid var(--border); border-radius: 7px; color: var(--muted); }
.conta-tipo-movimento input:checked + span { border-color: #8b5cf6; color: #fff; background: rgba(124, 58, 237, .2); }
.conta-operacao-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.conta-operacao-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.conta-operacao-grid .wide { grid-column: span 2; }
.conta-operacao-grid label { min-width: 0; }
.conta-operacao-grid input,
.conta-operacao-grid select,
.conta-operacao-grid textarea { box-sizing: border-box; width: 100%; min-width: 0; }
.conta-operacao-grid textarea { resize: vertical; }
.conta-operacao-note { padding: 10px 12px; border-left: 3px solid #38bdf8; color: var(--muted); font-size: 11px; background: rgba(14, 165, 233, .08); }
.conta-operacao-note.warning { border-color: #f59e0b; background: rgba(245, 158, 11, .08); }
.conta-operacao-form footer { display: flex; justify-content: flex-end; gap: 9px; padding-top: 13px; border-top: 1px solid var(--border); }
.conta-saldo-atual { display: grid; gap: 3px; margin-bottom: 14px; padding: 12px; border: 1px solid var(--border); border-radius: 7px; }
.conta-saldo-atual span,
.conta-saldo-atual small { color: var(--muted); font-size: 11px; }

@media (max-width: 1400px) {
  .contas-saldos-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conta-extrato-head { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conta-extrato-head > div { border-bottom: 1px solid var(--border); }
  .conta-extrato-head .conta-extrato-actions { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); min-height: auto; border-bottom: 0; }
  .conta-extrato-resumo-periodo > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conta-extrato-resumo-periodo article:nth-child(2) { border-right: 0; }
  .conta-extrato-resumo-periodo article:nth-child(-n + 2) { border-bottom: 1px solid var(--border); }
  .conta-ofx-import-card { grid-template-columns: 1fr; }
  .conta-extrato-filtros { grid-template-columns: repeat(4, minmax(130px, 1fr)); }
  .conta-extrato-busca { grid-column: span 2; }
}
@media (max-width: 900px) {
  .contas-saldos-grid { grid-template-columns: 1fr; }
  .contas-saldos-filtros { grid-template-columns: 1fr 1fr; }
  .contas-saldos-filtros > div { grid-column: 1 / -1; }
  .conta-saldo-card > footer { grid-template-columns: 1fr; align-items: stretch; }
  .conta-saldo-actions { justify-content: flex-start; flex-wrap: wrap; }
}
@media (max-width: 640px) {
  .contas-saldos-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .contas-saldos-kpis article { min-height: 94px; padding: 13px; }
  .contas-saldos-kpis strong { font-size: 18px; }
  .contas-saldos-filtros,
  .conta-extrato-filtros { grid-template-columns: 1fr; }
  .conta-extrato-busca { grid-column: auto; }
  .conta-saldo-comparacao { grid-template-columns: 1fr; }
  .conta-saldo-comparacao > div { border-right: 0; border-bottom: 1px solid rgba(148, 163, 184, .16); }
  .conta-saldo-comparacao > div:last-child { border-bottom: 0; }
  .conta-saldo-card > footer { align-items: stretch; flex-direction: column; }
  .conta-saldo-card > footer > div { display: grid; grid-template-columns: 1fr; }
  .conta-cadastro-callout { align-items: stretch; flex-direction: column; }
  .conta-cadastro-callout button { width: 100%; }
  .conta-extrato-head { grid-template-columns: 1fr; }
  .conta-extrato-head > div { min-height: auto; border-right: 0; }
  .conta-extrato-head .conta-extrato-actions { grid-column: auto; grid-template-columns: 1fr; }
  .conta-extrato-resumo-periodo > header { display: grid; align-items: start; }
  .conta-extrato-resumo-periodo > div { grid-template-columns: 1fr; }
  .conta-extrato-resumo-periodo article,
  .conta-extrato-resumo-periodo article:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--border); }
  .conta-extrato-resumo-periodo article:last-child { border-bottom: 0; }
  .conta-ofx-import-form { grid-template-columns: 1fr; }
  .conta-operacao-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); padding: 14px; }
  .conta-operacao-grid,
  .conta-operacao-grid.two,
  .conta-cadastro-dialog .conta-operacao-grid { grid-template-columns: 1fr; }
  .conta-operacao-grid .wide { grid-column: auto; }
}

/* Conciliacao individual: revisao objetiva, classificacao sempre visivel. */
#modal-conciliacao .conciliacao-modal-dialog {
  width: min(740px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 32px));
  gap: 0;
}
#modal-conciliacao .conciliacao-sugestoes { order: 2; }
#modal-conciliacao .conciliacao-reembolso-contexto {
  order: 3;
  grid-template-columns: .65fr 1.15fr 1.35fr 1fr;
  margin: 0 0 10px;
  border-color: rgba(56, 189, 248, .22);
  background: rgba(14, 165, 233, .05);
}
#modal-conciliacao .conciliacao-reembolso-contexto > div { padding: 9px 10px; }
#modal-conciliacao .conciliacao-reembolso-contexto small { color: #94a3b8; font-size: 11px; }
#modal-conciliacao .conciliacao-reembolso-classificacao strong { color: #f8fafc; }
#modal-conciliacao .conciliacao-classificacao-card {
  order: 4;
  min-height: 58px;
  cursor: default;
  background: rgba(15, 23, 42, .58);
}
#modal-conciliacao .conciliacao-classificacao-card > button { min-height: 34px; }
#modal-conciliacao .conciliacao-classificacao-card small {
  line-height: 1.4;
  white-space: normal;
}
#modal-conciliacao .conciliacao-classificacao-unificada { order: 5; }
#modal-conciliacao .conciliacao-outras-formas { order: 6; }
#modal-conciliacao #form-conciliacao { order: 7; }
#modal-conciliacao .compact-head { margin-bottom: 6px; }
#modal-conciliacao .conciliacao-sugestao-item {
  padding: 12px 14px;
  border-color: rgba(34, 197, 94, .34);
  background: rgba(20, 83, 45, .13);
}
#modal-conciliacao .sugestao-main > strong { font-size: 15px; }
#modal-conciliacao .sugestao-main > small { margin-top: 2px; }
#modal-conciliacao .conciliacao-motivos { display: none; }
#modal-conciliacao .conciliacao-recomendacao-label {
  display: block;
  padding: 0;
  color: #4ade80;
  background: transparent;
  font-size: 11px;
}
.conciliacao-correspondencias-ambiguas-aviso {
  display: grid;
  gap: 3px;
  padding: 11px 13px;
  border: 1px solid rgba(245, 158, 11, .32);
  border-radius: 7px;
  background: rgba(146, 64, 14, .1);
}
.conciliacao-correspondencias-ambiguas-aviso span { color: #cbd5e1; font-size: 12px; }
#modal-conciliacao .conciliacao-exatas-lista { margin-top: 8px; }
#modal-conciliacao .conciliacao-exatas-lista .conciliacao-sugestao-item {
  border-color: rgba(245, 158, 11, .26);
  background: rgba(15, 23, 42, .58);
}

@media (max-width: 760px) {
  #modal-conciliacao .conciliacao-modal-dialog {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
  }
  #modal-conciliacao .conciliacao-reembolso-contexto { grid-template-columns: 1fr 1fr; }
  #modal-conciliacao .conciliacao-classificacao-card { grid-template-columns: 32px minmax(0, 1fr); }
  #modal-conciliacao .conciliacao-classificacao-card > button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 480px) {
  #modal-conciliacao .conciliacao-reembolso-contexto { grid-template-columns: 1fr; }
}

/* Modal de conciliacao aprovado: hierarquia limpa e classificacao legivel. */
#modal-conciliacao .conciliacao-modal-dialog {
  width: min(820px, calc(100vw - 32px));
  max-width: 820px;
  max-height: calc(100vh - 32px);
  padding: 22px 24px;
  gap: 0;
  border-color: rgba(148, 163, 184, .28);
  background: #0d1525;
  box-shadow: 0 28px 80px rgba(2, 6, 23, .62);
}

#modal-conciliacao .panel-head { margin-bottom: 12px; }
#modal-conciliacao .panel-head h2 { font-size: 22px; line-height: 1.2; }
#modal-conciliacao .panel-head p { margin-top: 4px; font-size: 13px; }
#modal-conciliacao .conciliacao-modal-close { border-radius: 7px; }

#modal-conciliacao .conciliacao-extrato-resumo {
  min-height: 70px;
  margin-bottom: 18px;
  padding: 13px 16px;
  border-color: rgba(148, 163, 184, .28);
  background: rgba(15, 23, 42, .62);
}
#modal-conciliacao .conciliacao-resumo-icon { width: 42px; height: 42px; }
#modal-conciliacao .conciliacao-resumo-descricao strong { font-size: 15px; }
#modal-conciliacao .conciliacao-resumo-valor { font-size: 21px; }

#modal-conciliacao .conciliacao-sugestoes { margin-bottom: 16px; }
#modal-conciliacao .compact-head { align-items: center; margin-bottom: 9px; }
#modal-conciliacao .compact-head h3 { font-size: 15px; }
#modal-conciliacao .compact-head p { font-size: 11px; }
#modal-conciliacao .conciliacao-recomendacao-label { display: none; }
#modal-conciliacao .conciliacao-sugestao-item {
  grid-template-columns: 44px minmax(0, 1fr) auto 210px;
  gap: 14px;
  min-height: 104px;
  padding: 15px 17px;
  border-color: rgba(34, 197, 94, .58);
  border-radius: 7px;
  background: rgba(20, 83, 45, .13);
}
#modal-conciliacao .conciliacao-correspondencia-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: #bbf7d0;
  background: rgba(34, 197, 94, .32);
}
#modal-conciliacao .sugestao-main { display: grid; gap: 3px; }
#modal-conciliacao .sugestao-main > strong { margin: 0; font-size: 16px; }
#modal-conciliacao .sugestao-main > small {
  overflow: visible;
  color: #b8c3d5;
  text-overflow: clip;
  white-space: normal;
}
#modal-conciliacao .conciliacao-correspondencia-valor {
  color: #f8fafc;
  font-size: 19px;
  white-space: nowrap;
}
#modal-conciliacao .conciliacao-sugestao-acoes { width: 100%; }
#modal-conciliacao .conciliacao-sugestao-acoes .primary { width: 100%; min-width: 0; min-height: 42px; }
#modal-conciliacao .conciliacao-sugestao-acoes .link-button { font-weight: 600; }

#modal-conciliacao .conciliacao-classificacao-card {
  order: 4;
  display: block;
  min-height: 0;
  margin-bottom: 14px;
  padding: 0;
  overflow: hidden;
  border-color: rgba(148, 163, 184, .28);
  border-radius: 7px;
  background: rgba(15, 23, 42, .56);
}
#modal-conciliacao .conciliacao-classificacao-card-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 9px 14px;
  border-bottom: 1px solid rgba(148, 163, 184, .18);
}
#modal-conciliacao .conciliacao-classificacao-card-head > span:nth-child(2) { display: grid; gap: 2px; }
#modal-conciliacao .conciliacao-classificacao-card-head strong { font-size: 15px; }
#modal-conciliacao .conciliacao-classificacao-card-head small { color: #94a3b8; font-size: 11px; }
#modal-conciliacao .conciliacao-classificacao-card-head > button { min-height: 36px; }
#modal-conciliacao .conciliacao-classificacao-card-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 14px;
  padding: 14px;
}
#modal-conciliacao .conciliacao-classificacao-card-grid > div { display: grid; gap: 6px; min-width: 0; }
#modal-conciliacao .conciliacao-classificacao-card-grid span { color: #aeb9cb; font-size: 12px; }
#modal-conciliacao .conciliacao-classificacao-card-grid strong {
  min-height: 42px;
  padding: 10px 12px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 7px;
  color: #e5e7eb;
  background: rgba(8, 15, 28, .62);
  font-size: 14px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#modal-conciliacao .conciliacao-compra-classificacao-editor {
  display: grid;
  gap: 14px;
  padding: 14px;
  border-top: 1px solid rgba(148, 163, 184, .18);
  background: rgba(8, 15, 28, .72);
}
#modal-conciliacao .conciliacao-compra-classificacao-editor[hidden] { display: none; }
#modal-conciliacao .conciliacao-compra-classificacao-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
#modal-conciliacao .conciliacao-compra-classificacao-editor-head > div { display: grid; gap: 4px; }
#modal-conciliacao .conciliacao-compra-classificacao-editor-head small,
#modal-conciliacao .conciliacao-compra-classificacao-editor-actions > span { color: #94a3b8; font-size: 12px; }
#modal-conciliacao .conciliacao-compra-classificacao-editor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
#modal-conciliacao .conciliacao-compra-classificacao-editor-grid label { display: grid; gap: 6px; }
#modal-conciliacao .conciliacao-compra-classificacao-editor-grid select { width: 100%; min-height: 44px; }
#modal-conciliacao .conciliacao-compra-classificacao-editor-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
#modal-conciliacao .conciliacao-compra-classificacao-editor-actions > span { margin-right: auto; }
#modal-conciliacao .conciliacao-reembolso-contexto { display: none !important; }

#modal-conciliacao .conciliacao-classificacao-unificada { order: 5; margin-bottom: 14px; }
#modal-conciliacao .conciliacao-classificacao-unificada[open] { padding-bottom: 12px; }
#modal-conciliacao .conciliacao-field-with-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: end;
  gap: 8px;
}
#modal-conciliacao .conciliacao-field-with-action select { min-width: 0; }
#modal-conciliacao .conciliacao-inline-add {
  width: 44px;
  height: 44px;
  min-width: 44px;
  padding: 0;
  border-color: rgba(167, 139, 250, .42);
  color: #f8fafc;
  background: rgba(124, 58, 237, .18);
  font-size: 23px;
  font-weight: 700;
  line-height: 1;
}
#modal-conciliacao .conciliacao-outras-formas { order: 6; margin-bottom: 14px; }
#modal-conciliacao .conciliacao-outras-formas > summary { min-height: 48px; }

.conciliacao-favorecido-modal {
  width: min(760px, calc(100vw - 32px));
  border-color: rgba(148, 163, 184, .28);
  background: #0d1525;
}

.conciliacao-favorecido-modal .modal-header,
.conciliacao-favorecido-modal .modal-footer {
  background: rgba(8, 15, 28, .66);
}

.conciliacao-favorecido-modal .favorecido-rapido-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.conciliacao-favorecido-modal label {
  min-width: 0;
  color: #cbd5e1;
  font-weight: 800;
}

.conciliacao-favorecido-modal input,
.conciliacao-favorecido-modal select {
  min-width: 0;
  width: 100%;
  min-height: 44px;
  color: #f8fafc;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 8px;
  background: rgba(8, 13, 25, .86);
  color-scheme: dark;
}

.conciliacao-favorecido-modal input::placeholder { color: #7b8497; }

#modal-conciliacao #form-conciliacao {
  order: 7;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 18px;
  padding-top: 14px;
}
#modal-conciliacao .conciliacao-observacao-compacta { grid-column: 1 / -1; font-size: 12px; }
#modal-conciliacao .conciliacao-observacao-compacta input { min-height: 44px; }
#modal-conciliacao .conciliacao-confirmacao-resumo { gap: 26px; }
#modal-conciliacao .conciliacao-confirmacao-resumo strong { font-size: 16px; }
#modal-conciliacao .conciliacao-footer-actions { gap: 10px; }
#modal-conciliacao .conciliacao-footer-actions button { min-height: 42px; padding-inline: 18px; }

@media (max-width: 760px) {
  #modal-conciliacao .conciliacao-modal-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); padding: 16px; }
  #modal-conciliacao .conciliacao-sugestao-item { grid-template-columns: 38px minmax(0, 1fr); }
  #modal-conciliacao .conciliacao-correspondencia-valor { grid-column: 2; }
  #modal-conciliacao .conciliacao-sugestao-acoes { grid-column: 1 / -1; }
  #modal-conciliacao .conciliacao-classificacao-card-grid { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-compra-classificacao-editor-grid { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-compra-classificacao-editor-actions { flex-wrap: wrap; }
  #modal-conciliacao .conciliacao-compra-classificacao-editor-actions > span { width: 100%; }
  .conciliacao-favorecido-modal .favorecido-rapido-grid { grid-template-columns: 1fr; }
  #modal-conciliacao #form-conciliacao { grid-template-columns: 1fr; }
  #modal-conciliacao .conciliacao-confirmacao-resumo,
  #modal-conciliacao .conciliacao-footer-actions { grid-column: 1; }
  #modal-conciliacao .conciliacao-footer-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Cadastros financeiros */
.financeiro-cadastros-page {
  display: grid;
  gap: 20px;
  max-width: 100%;
  overflow: hidden;
}
.financeiro-cadastros-page > * {
  min-width: 0;
  max-width: 100%;
}

.cadastros-financeiros-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(15, 23, 42, .92), rgba(8, 13, 25, .96));
}

.cadastro-tab {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 80px;
  gap: 14px;
  padding: 14px 16px;
  color: #dbe5f5;
  text-decoration: none;
  border-right: 1px solid rgba(148, 163, 184, .14);
  background: rgba(8, 14, 26, .28);
}

.cadastro-tab:last-child { border-right: 0; }
.cadastro-tab:hover { background: rgba(30, 41, 59, .42); }
.cadastro-tab.active {
  color: #c4b5fd;
  background: linear-gradient(180deg, rgba(124, 58, 237, .16), rgba(15, 23, 42, .18));
}
.cadastro-tab.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #7c3aed, #a855f7);
}
.cadastro-tab.disabled { opacity: .65; }
.cadastro-tab-icon {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
}
.cadastro-tab span:last-child {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.cadastro-tab strong {
  font-size: 13px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.cadastro-tab small {
  justify-self: start;
  width: fit-content;
  padding: 4px 8px;
  border: 1px solid rgba(74, 222, 128, .22);
  border-radius: 7px;
  color: #86efac;
  background: rgba(22, 101, 52, .36);
  font-size: 11px;
  font-weight: 800;
}
.cadastros-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.cadastro-kpi {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 86px;
  padding: 18px 20px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(15, 23, 42, .9), rgba(8, 14, 26, .96));
}

.cadastro-kpi .metric-icon {
  width: 46px;
  height: 46px;
  border-radius: 8px;
}
.cadastro-kpi .metric-icon.amber { color: #fbbf24; background: rgba(245, 158, 11, .14); }
.cadastro-kpi strong {
  display: block;
  color: #f8fafc;
  font-size: 28px;
  line-height: 1;
}
.cadastro-kpi small {
  color: #b8c1d1;
  font-size: 14px;
}

.cadastro-main-panel,
.cadastro-form-card,
.cadastro-summary-card {
  min-width: 0;
  border: 1px solid rgba(148, 163, 184, .17);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(15, 23, 42, .88), rgba(8, 13, 25, .96));
  box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
}

.cadastro-main-panel { overflow: hidden; }
.cadastro-section[hidden] { display: none; }

.cadastro-section-head,
.cadastro-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px;
}

.cadastro-card-head {
  display: grid;
  gap: 5px;
  padding-bottom: 10px;
}

.cadastro-section-head h2,
.cadastro-card-head h3 {
  margin: 0;
  color: #f8fafc;
  font-size: 22px;
}
.cadastro-card-head h3 { font-size: 18px; }
.cadastro-section-head p,
.cadastro-card-head p {
  margin: 5px 0 0;
  color: #94a3b8;
}

.cadastro-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 220px 220px auto auto;
  align-items: end;
  gap: 12px;
  padding: 0 20px 18px;
}

.cadastro-toolbar label,
.cadastro-form label {
  display: grid;
  gap: 7px;
  color: #cbd5e1;
  font-size: 13px;
  font-weight: 700;
}

.cadastro-search {
  position: relative;
}
.cadastro-search .nav-icon {
  position: absolute;
  left: 13px;
  bottom: 12px;
  width: 18px;
  height: 18px;
  opacity: .68;
}
.cadastro-search input { padding-left: 42px; }
.cadastro-filter-button,
.cadastro-new-button {
  min-height: 42px;
  align-self: end;
  white-space: nowrap;
}
.cadastro-filter-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.cadastro-filter-button .nav-icon {
  width: 18px;
  height: 18px;
}

.cadastro-toolbar input,
.cadastro-toolbar select,
.cadastro-form input,
.cadastro-form select {
  min-height: 42px;
  width: 100%;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 8px;
  color: #e5e7eb;
  background: rgba(8, 13, 25, .78);
  outline: none;
}

.cadastro-toolbar input:focus,
.cadastro-toolbar select:focus,
.cadastro-form input:focus,
.cadastro-form select:focus {
  border-color: rgba(168, 85, 247, .68);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .14);
}

.cadastro-table-wrap {
  margin: 0;
  max-width: 100%;
  overflow-x: auto;
  border: 0;
  border-top: 1px solid rgba(148, 163, 184, .14);
  border-radius: 0;
}
.cadastro-table th {
  color: #dbe5f5;
  background: rgba(30, 41, 59, .78);
}
.cadastro-table { min-width: 760px; }
.cadastro-table td { vertical-align: middle; }
.cadastro-table .actions-col,
.cadastro-actions {
  white-space: nowrap;
}

.plano-contas-panel {
  overflow: hidden;
}

.plano-contas-toolbar {
  grid-template-columns: minmax(280px, 1fr);
  max-width: 620px;
}

.plano-contas-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
}

.plano-contas-table {
  min-width: 1040px;
}

.plano-contas-table th,
.plano-contas-table td {
  padding-top: 9px;
  padding-bottom: 9px;
}

.plano-contas-table td:nth-child(4) {
  font-weight: 700;
  color: #dbeafe;
}

.plano-nivel {
  display: inline-grid;
  place-items: center;
  min-width: 26px;
  height: 24px;
  padding: 0 7px;
  border-radius: 7px;
  color: #fff;
  background: rgba(100, 116, 139, .72);
  font-size: 12px;
  font-weight: 900;
}

.plano-nivel.nivel-4 {
  background: rgba(245, 158, 11, .82);
}

.plano-nivel.nivel-5,
.plano-nivel.nivel-A {
  background: rgba(100, 116, 139, .72);
}

.cadastro-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.cadastro-actions .icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 34px;
  min-width: 38px;
  padding: 0;
}
.cadastro-actions .nav-icon {
  width: 17px;
  height: 17px;
}

.cadastro-pill,
.cadastro-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.cadastro-pill.tipo-despesa { color: #fca5a5; background: rgba(127, 29, 29, .42); border: 1px solid rgba(248, 113, 113, .2); }
.cadastro-pill.tipo-custo { color: #fcd34d; background: rgba(120, 53, 15, .36); border: 1px solid rgba(251, 191, 36, .22); }
.cadastro-pill.tipo-receita { color: #86efac; background: rgba(20, 83, 45, .36); border: 1px solid rgba(74, 222, 128, .22); }
.cadastro-pill.tipo-movimentacao { color: #93c5fd; background: rgba(30, 58, 138, .32); border: 1px solid rgba(96, 165, 250, .2); }
.cadastro-pill.tipo-ajuste { color: #c4b5fd; background: rgba(76, 29, 149, .34); border: 1px solid rgba(167, 139, 250, .2); }

.cadastro-chip-cell {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.cadastro-chip {
  color: #cbd5e1;
  background: rgba(51, 65, 85, .55);
  border: 1px solid rgba(148, 163, 184, .16);
}

.cadastro-grid {
  display: grid;
  grid-template-columns: minmax(300px, .9fr) minmax(420px, 1.1fr);
  gap: 16px;
  min-width: 0;
}
.cadastro-grid > * { min-width: 0; }
.cadastro-grid.secondary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cadastro-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 20px 20px;
}
.cadastro-form.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cadastro-form .wide,
.cadastro-form-actions,
.cadastro-check-grid {
  grid-column: 1 / -1;
}

.cadastro-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.cadastro-form-actions button {
  justify-self: end;
}

.cadastro-check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.cadastro-check-grid label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(15, 23, 42, .62);
  font-weight: 600;
}
.cadastro-check-grid input {
  width: 15px;
  height: 15px;
  min-height: 15px;
}

.cadastro-mini-list {
  display: grid;
  max-height: 260px;
  overflow: auto;
  border-top: 1px solid rgba(148, 163, 184, .14);
}

.cadastro-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 20px;
  border-top: 1px solid rgba(148, 163, 184, .14);
  color: #94a3b8;
  font-size: 13px;
}
.cadastro-pagination > div {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cadastro-pagination strong {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
}
.cadastro-pagination button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.cadastro-inline-form {
  border-top: 1px solid rgba(148, 163, 184, .14);
  background: rgba(8, 13, 25, .36);
}
.cadastro-inline-form summary {
  cursor: pointer;
  padding: 14px 20px;
  color: #dbe5f5;
  font-weight: 800;
}
.cadastro-inline-form[open] summary {
  border-bottom: 1px solid rgba(148, 163, 184, .14);
}
.cadastro-inline-form .cadastro-form {
  padding-top: 18px;
}
.cadastro-mini-list > div {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(0, 1.1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 1px solid rgba(148, 163, 184, .1);
}
.cadastro-mini-list strong {
  color: #f1f5f9;
  font-size: 14px;
}
.cadastro-mini-list span {
  color: #94a3b8;
  font-size: 13px;
}

.financeiro-origens-page {
  display: grid;
  gap: 20px;
  max-width: 100%;
  overflow: hidden;
}
.financeiro-origens-page > * {
  min-width: 0;
  max-width: 100%;
}
.origens-toolbar {
  grid-template-columns: minmax(260px, 1fr) 220px 180px auto auto;
}
.origem-table {
  min-width: 1060px;
}
.origem-table tr.is-muted {
  opacity: .62;
}
.origem-table td:first-child strong {
  color: #e5e7eb;
}
.origem-palavras {
  max-width: 320px;
}
.cadastro-pill.origem-tipo-plataforma,
.cadastro-pill.origem-tipo-plataforma_propria {
  color: #c4b5fd;
  background: rgba(76, 29, 149, .34);
  border: 1px solid rgba(167, 139, 250, .22);
}
.cadastro-pill.origem-tipo-meio_pagamento {
  color: #93c5fd;
  background: rgba(30, 58, 138, .32);
  border: 1px solid rgba(96, 165, 250, .2);
}
.cadastro-pill.origem-tipo-venda_direta,
.cadastro-pill.origem-tipo-cliente {
  color: #86efac;
  background: rgba(20, 83, 45, .34);
  border: 1px solid rgba(74, 222, 128, .2);
}
.cadastro-pill.origem-tipo-socio,
.cadastro-pill.origem-tipo-emprestimo,
.cadastro-pill.origem-tipo-reembolso {
  color: #fcd34d;
  background: rgba(120, 53, 15, .32);
  border: 1px solid rgba(251, 191, 36, .2);
}
.cadastro-pill.origem-tipo-outro {
  color: #cbd5e1;
  background: rgba(51, 65, 85, .44);
  border: 1px solid rgba(148, 163, 184, .16);
}
.cadastro-pill.origem-receita-sim {
  color: #86efac;
  background: rgba(20, 83, 45, .34);
  border: 1px solid rgba(74, 222, 128, .2);
}
.cadastro-pill.origem-receita-nao {
  color: #cbd5e1;
  background: rgba(51, 65, 85, .44);
  border: 1px solid rgba(148, 163, 184, .16);
}

@media (max-width: 1180px) {
  .cadastros-financeiros-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cadastro-tab:nth-child(3n) { border-right: 0; }
  .cadastros-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cadastro-toolbar { grid-template-columns: 1fr 1fr 1fr; }
  .cadastro-search { grid-column: 1 / -1; }
}

@media (max-width: 780px) {
  .cadastros-kpis,
  .cadastro-grid,
  .cadastro-grid.secondary,
  .cadastro-form,
  .cadastro-form.compact,
  .cadastro-toolbar,
  .cadastro-check-grid {
    grid-template-columns: 1fr;
  }
  .cadastros-financeiros-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cadastro-tab {
    min-height: 70px;
    border-right: 0;
    border-bottom: 1px solid rgba(148, 163, 184, .12);
  }
  .cadastro-tab:nth-child(odd) {
    border-right: 1px solid rgba(148, 163, 184, .12);
  }
  .cadastro-section-head {
    display: grid;
  }
  .cadastro-section-head .primary {
    width: 100%;
    justify-content: center;
  }
  .cadastro-mini-list > div { grid-template-columns: 1fr; }
  .cadastro-actions,
  .cadastro-form-actions {
    justify-content: stretch;
  }
  .cadastro-actions button,
  .cadastro-form-actions button {
    flex: 1;
    justify-content: center;
  }
  .financeiro-origem-modal .origem-modal-grid,
  .financeiro-categoria-modal .categoria-modal-grid {
    grid-template-columns: 1fr;
  }
  dialog.modal {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
  }
  .modal-content {
    max-height: calc(100vh - 16px);
  }
}

.makro-page {
  display: grid;
  gap: 1rem;
}

.makro-hero-panel,
.makro-bottom-grid {
  display: grid;
  gap: 1rem;
}

.makro-hero-panel {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.makro-hero-panel h2 {
  margin: .35rem 0;
}

.makro-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .6rem;
}

.makro-status-grid,
.makro-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
}

.makro-status-grid .card,
.makro-kpis .card {
  min-height: 96px;
}

.makro-kpis .card strong {
  display: block;
  margin-top: .25rem;
  font-size: 1.35rem;
}

.warning-card {
  border-color: rgba(245, 158, 11, .45);
}

.makro-period-note {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .8rem 1rem;
  border-color: rgba(14, 165, 233, .28);
  color: #cbd5e1;
  background: rgba(14, 165, 233, .08);
}

.makro-period-note strong {
  color: #f8fafc;
  white-space: nowrap;
}

.makro-period-note span {
  font-size: .86rem;
}

.makro-tabs-panel {
  padding: 0;
  overflow: hidden;
}

.makro-tabs {
  display: flex;
  gap: .35rem;
  padding: .75rem;
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .45);
}

.makro-tab {
  border: 1px solid transparent;
  border-radius: 7px;
  padding: .65rem .85rem;
  color: var(--text-muted);
  background: transparent;
  font-weight: 700;
  cursor: pointer;
}

.makro-tab.active {
  color: #fff;
  border-color: rgba(139, 92, 246, .45);
  background: linear-gradient(135deg, rgba(124, 58, 237, .95), rgba(168, 85, 247, .86));
}

.makro-tab-panel {
  display: none;
  padding: 1rem;
}

.makro-tab-panel.active {
  display: block;
}

.panel-head.compact {
  margin-bottom: .75rem;
}

.makro-table td:nth-child(3),
.makro-table th:nth-child(3),
.makro-table td:nth-child(5),
.makro-table th:nth-child(5) {
  white-space: nowrap;
}

.dc-badge {
  display: inline-grid;
  min-width: 34px;
  height: 26px;
  place-items: center;
  border-radius: 6px;
  font-weight: 800;
  color: #fff;
}

.dc-badge.d {
  background: rgba(16, 185, 129, .9);
}

.dc-badge.c {
  background: rgba(239, 68, 68, .88);
}

.empty-state-inline {
  padding: 1rem;
  text-align: center;
  color: var(--text-muted);
}

.makro-bottom-grid {
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
}

.makro-source-list {
  display: grid;
  gap: .6rem;
}

.makro-source-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: .75rem;
  align-items: center;
  padding: .7rem .8rem;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 7px;
  background: rgba(15, 23, 42, .4);
}

.makro-source-list span {
  color: var(--text-muted);
}

.compact-table {
  max-height: 360px;
}

.makro-learning-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: .9rem;
}

.makro-learning-grid article {
  padding: .8rem;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 7px;
  background: rgba(15, 23, 42, .48);
}

.makro-learning-grid strong,
.makro-learning-grid span {
  display: block;
}

.makro-learning-grid span {
  margin-top: .3rem;
  color: var(--text-muted);
  line-height: 1.35;
}

.makro-balancete-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 180px auto;
  gap: .75rem;
  align-items: end;
  margin-bottom: .75rem;
}

.makro-balancete-toolbar label {
  display: grid;
  gap: .35rem;
  color: var(--text-muted);
  font-weight: 700;
}

.makro-balancete-toolbar input,
.makro-balancete-toolbar select {
  min-height: 42px;
}

.makro-balancete-totals {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
}

.makro-balancete-totals span {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: 0 .75rem;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 7px;
  background: rgba(15, 23, 42, .55);
  color: var(--text-muted);
}

.makro-balancete-totals b {
  color: var(--text);
}

.makro-balancete-shell {
  overflow: auto;
  max-height: 620px;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 8px;
  background: rgba(2, 6, 23, .28);
}

.makro-balancete-table {
  width: 100%;
  min-width: 1180px;
  border-collapse: collapse;
  font-size: .92rem;
}

.makro-balancete-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  height: 44px;
  padding: .55rem .6rem;
  text-align: left;
  border-bottom: 1px solid rgba(148, 163, 184, .24);
  background: #101827;
  color: var(--text);
  white-space: nowrap;
}

.makro-balancete-table td {
  height: 38px;
  padding: .42rem .6rem;
  border-bottom: 1px solid rgba(148, 163, 184, .15);
  color: var(--text);
  white-space: nowrap;
}

.makro-balancete-table td:nth-child(6),
.makro-balancete-table td:nth-child(7),
.makro-balancete-table td:nth-child(8),
.makro-balancete-table td:nth-child(9),
.makro-balancete-table th:nth-child(6),
.makro-balancete-table th:nth-child(7),
.makro-balancete-table th:nth-child(8),
.makro-balancete-table th:nth-child(9) {
  text-align: right;
}

.makro-balancete-row.synthetic td {
  color: rgba(226, 232, 240, .9);
  font-weight: 800;
  background: rgba(148, 163, 184, .06);
}

.makro-balancete-row.analytic td {
  background: rgba(15, 23, 42, .18);
}

.makro-balancete-row.nivel-1 td:nth-child(4),
.makro-balancete-row.nivel-2 td:nth-child(4),
.makro-balancete-row.nivel-3 td:nth-child(4),
.makro-balancete-row.nivel-4 td:nth-child(4) {
  letter-spacing: .08em;
}

.makro-balancete-row.nivel-2 td:nth-child(4) { padding-left: 1.1rem; }
.makro-balancete-row.nivel-3 td:nth-child(4) { padding-left: 1.8rem; }
.makro-balancete-row.nivel-4 td:nth-child(4) { padding-left: 2.5rem; }
.makro-balancete-row.nivel-5 td:nth-child(4) { padding-left: 3.2rem; }

.makro-level-badge {
  display: inline-grid;
  width: 22px;
  height: 22px;
  margin-right: .45rem;
  place-items: center;
  border-radius: 6px;
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
}

.makro-level-badge.nivel-1 { background: #fb7185; }
.makro-level-badge.nivel-2 { background: #10b981; }
.makro-level-badge.nivel-3 { background: #8b5cf6; }
.makro-level-badge.nivel-4 { background: #f59e0b; }
.makro-level-badge.nivel-5 { background: #64748b; }

.makro-check {
  color: #10b981;
  font-size: 1.2rem;
  font-weight: 900;
}

.makro-chain {
  color: var(--text-muted);
  font-size: 1rem;
}

.makro-trace-chip {
  display: inline-flex;
  max-width: 220px;
  min-height: 26px;
  align-items: center;
  gap: .35rem;
  padding: .2rem .5rem;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 999px;
  color: rgba(226, 232, 240, .88);
  background: rgba(15, 23, 42, .72);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.makro-account-link,
.makro-account-muted {
  display: inline-flex;
  min-width: 42px;
  min-height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font: inherit;
  font-weight: 800;
}

.makro-account-link {
  border: 1px solid rgba(34, 211, 238, .28);
  color: #bae6fd;
  background: rgba(14, 165, 233, .1);
  cursor: pointer;
}

.makro-account-link:hover,
.makro-account-link.active {
  border-color: rgba(168, 85, 247, .75);
  color: #fff;
  background: linear-gradient(135deg, rgba(124, 58, 237, .85), rgba(14, 165, 233, .45));
  box-shadow: 0 12px 26px rgba(124, 58, 237, .18);
}

.makro-account-muted {
  color: rgba(226, 232, 240, .72);
}

.makro-razao-view {
  margin-top: 1rem;
}

.makro-razao-view[hidden] {
  display: none;
}

.makro-razao-empty,
.makro-razao-card {
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(15, 23, 42, .92), rgba(15, 23, 42, .72));
}

.makro-razao-empty {
  padding: 1rem;
  color: var(--text-muted);
  text-align: center;
}

.makro-razao-card {
  overflow: hidden;
}

.makro-razao-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
}

.makro-razao-head span,
.makro-razao-head small {
  display: block;
  color: var(--text-muted);
}

.makro-razao-head strong {
  display: block;
  margin: .2rem 0;
  color: var(--text);
  font-size: 1.05rem;
}

.makro-razao-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  padding: 1rem;
}

.makro-razao-summary span {
  min-height: 58px;
  padding: .7rem .8rem;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 10px;
  color: var(--text-muted);
  background: rgba(2, 6, 23, .28);
}

.makro-razao-summary b {
  display: block;
  margin-top: .2rem;
  color: var(--text);
  font-size: 1.05rem;
}

.makro-razao-note {
  margin: 0 1rem 1rem;
  padding: .75rem .85rem;
  border: 1px solid rgba(34, 197, 94, .18);
  border-radius: 10px;
  color: rgba(187, 247, 208, .92);
  background: rgba(22, 101, 52, .12);
}

.makro-razao-table td:nth-child(5),
.makro-razao-table td:nth-child(6),
.makro-razao-table td:nth-child(7),
.makro-razao-table th:nth-child(5),
.makro-razao-table th:nth-child(6),
.makro-razao-table th:nth-child(7) {
  text-align: right;
}

.makro-razao-table td strong,
.makro-razao-table td span {
  display: block;
}

.makro-razao-table td span {
  margin-top: .18rem;
  color: var(--text-muted);
  font-size: .82rem;
}

#razao-diario-modal {
  box-sizing: border-box;
  width: min(1180px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 10px;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(124, 58, 237, .14), transparent 34%),
    linear-gradient(180deg, rgba(15, 23, 42, .98), rgba(8, 13, 26, .98));
  box-shadow: 0 28px 90px rgba(2, 6, 23, .62);
}

#razao-diario-modal::backdrop {
  background: rgba(2, 6, 23, .76);
  backdrop-filter: blur(8px);
}

#razao-diario-modal .modal-close-form {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  margin: 0;
}

#razao-diario-modal .ai-icon-button {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  color: var(--text);
  background: rgba(15, 23, 42, .72);
}

#razao-diario-modal .ai-icon-button:hover {
  border-color: rgba(168, 85, 247, .45);
  background: rgba(30, 41, 59, .92);
}

#razao-diario-modal > .panel-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  margin: 0;
  padding: 1.25rem 4.75rem 1rem 1.25rem;
  border-bottom: 1px solid rgba(148, 163, 184, .16);
}

#razao-diario-modal > .panel-head h2 {
  margin: .25rem 0 0;
  overflow-wrap: anywhere;
  color: var(--text);
  font-size: 1.2rem;
  line-height: 1.25;
}

#razao-diario-modal > .panel-head .status-pill {
  align-self: center;
}

.diario-makro-header {
  padding: 1rem 1.25rem 1.15rem;
  border-bottom: 1px solid rgba(148, 163, 184, .14);
  background: rgba(2, 6, 23, .18);
}

.diario-makro-form {
  display: grid;
  gap: .8rem;
}

.diario-makro-fields {
  display: grid;
  grid-template-columns: minmax(112px, .75fr) minmax(136px, .85fr) minmax(128px, .8fr) minmax(160px, 1fr) minmax(220px, 1.45fr);
  gap: .7rem;
  align-items: start;
}

.diario-makro-field {
  min-width: 0;
}

.diario-makro-field.wide {
  grid-column: 1 / -1;
}

.diario-makro-field span {
  display: block;
  margin: 0 0 -.2rem .7rem;
  width: max-content;
  max-width: calc(100% - 1.4rem);
  padding: 0 .32rem;
  color: var(--text-muted);
  background: rgba(7, 11, 23, .98);
  font-size: .78rem;
  line-height: 1.1;
  position: relative;
  z-index: 1;
}

.diario-makro-field strong {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .65rem .8rem;
  overflow-wrap: anywhere;
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 10px;
  color: var(--text);
  background: rgba(15, 23, 42, .72);
  font-size: .96rem;
  font-weight: 700;
  line-height: 1.2;
}

.diario-makro-field small {
  display: block;
  margin: .28rem .75rem 0;
  color: var(--text-muted);
  font-size: .75rem;
}

.diario-makro-checks {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.25rem;
  align-items: center;
}

.diario-makro-check {
  display: inline-flex;
  gap: .5rem;
  align-items: center;
  color: var(--text-muted);
  font-size: .9rem;
}

.diario-makro-check strong {
  font-weight: 700;
}

.diario-makro-check-box {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(148, 163, 184, .38);
  border-radius: 5px;
  background: rgba(15, 23, 42, .7);
}

.diario-makro-check.checked .diario-makro-check-box::after {
  content: "";
  width: 9px;
  height: 5px;
  margin-top: -2px;
  border-left: 2px solid #38bdf8;
  border-bottom: 2px solid #38bdf8;
  transform: rotate(-45deg);
}

#razao-diario-modal > .makro-tabs-panel {
  max-height: calc(100vh - 270px);
  overflow: auto;
  border-top: 1px solid rgba(148, 163, 184, .14);
  background: rgba(2, 6, 23, .2);
}

#razao-diario-modal .makro-tabs {
  position: sticky;
  top: 0;
  z-index: 2;
  overflow-x: auto;
  border-bottom-color: rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .96);
}

#razao-diario-modal .makro-tab {
  flex: 0 0 auto;
  color: #cbd5e1;
}

#razao-diario-modal .makro-tab-panel {
  padding: 1rem 1.25rem 1.25rem;
}

#razao-diario-modal .makro-tab-panel > .conciliacao-kpis-secondary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: .9rem;
}

#razao-diario-modal .table-wrapper {
  max-width: 100%;
  overflow: auto;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(2, 6, 23, .28);
}

#razao-diario-modal .data-table {
  min-width: 760px;
}

#razao-diario-modal .data-table th,
#razao-diario-modal .data-table td {
  color: var(--text);
  border-color: rgba(148, 163, 184, .12);
}

#razao-diario-modal .data-table thead th {
  background: rgba(15, 23, 42, .98);
}

#razao-diario-modal .data-table td {
  background: rgba(15, 23, 42, .36);
}

#razao-diario-modal .coverage-grid,
#razao-diario-modal .pre-alert-evidence-list {
  margin-top: 0;
}

@media (max-width: 1100px) {
  .makro-hero-panel,
  .makro-bottom-grid {
    grid-template-columns: 1fr;
  }

  .makro-hero-actions {
    justify-content: flex-start;
  }

  .makro-status-grid,
  .makro-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .makro-status-grid,
  .makro-kpis {
    grid-template-columns: 1fr;
  }

  .makro-tabs {
    overflow-x: auto;
  }

  .makro-tab {
    flex: 0 0 auto;
  }

  .makro-source-list div {
    grid-template-columns: 1fr;
  }

  .makro-learning-grid,
  .makro-balancete-toolbar {
    grid-template-columns: 1fr;
  }

  .makro-balancete-totals {
    justify-content: stretch;
  }

  .makro-balancete-totals span {
    flex: 1;
  }

  .makro-razao-head {
    display: grid;
  }

  .makro-razao-summary {
    grid-template-columns: 1fr;
  }

  #razao-diario-modal {
    width: calc(100vw - 16px);
    max-height: calc(100vh - 16px);
  }

  #razao-diario-modal > .panel-head {
    padding: 1rem 4rem .9rem 1rem;
  }

  #razao-diario-modal .makro-tab-panel > .conciliacao-kpis-secondary {
    grid-template-columns: 1fr;
  }

  .diario-makro-header {
    padding: .85rem;
  }

  .diario-makro-fields {
    grid-template-columns: 1fr;
  }

  #razao-diario-modal > .makro-tabs-panel {
    max-height: calc(100vh - 360px);
  }

  #razao-diario-modal .makro-tab-panel {
    padding: .85rem;
  }
}

/* Responsive shell: adapt the header to the usable area beside the sidebar. */
@media (max-width: 1500px) and (min-width: 1121px) {
  .app-topbar {
    grid-template-columns: minmax(0, 1fr) minmax(440px, 560px) minmax(190px, 240px);
    grid-template-areas:
      ". actions user"
      "main main main";
    row-gap: 14px;
  }

  .topbar-main {
    width: 100%;
  }

  .topbar-main h1,
  .topbar-main p {
    max-width: none;
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .conciliacao-kpis-secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .financeiro-conciliacao-page .filters-grid {
    grid-template-columns: minmax(240px, 1.2fr) minmax(200px, .8fr);
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .financeiro-conciliacao-page .filters-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

@media (max-width: 1120px) and (min-width: 768px) {
  .app-topbar {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "actions"
      "main"
      "user";
    row-gap: 14px;
  }

  .top-actions {
    justify-content: center;
  }

  .topbar-main,
  .top-period-control {
    width: 100%;
    max-width: none;
  }

  .top-period-control[data-top-period-control] .top-period-row {
    display: grid;
    grid-template-columns: 24px minmax(112px, 1fr) auto minmax(112px, 1fr) 24px minmax(78px, .7fr);
    gap: 6px;
  }

  .top-period-control[data-top-period-control] input[type="date"],
  .top-period-control[data-top-period-control] select {
    width: 100%;
    min-width: 0;
  }

  .user-profile-menu {
    justify-self: end;
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .conciliacao-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.app-shell .topbar.app-topbar:has(.top-period-control) {
    display: flex;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 16px;
    padding: 0;
  }

  body.app-shell .topbar.app-topbar:has(.top-period-control)::after {
    display: none;
  }

  body.app-shell .topbar.app-topbar:has(.top-period-control) .top-actions {
    order: -2;
    display: flex;
    width: 100%;
    justify-content: stretch;
  }

  body.app-shell .topbar.app-topbar:has(.top-period-control) .topbar-main {
    order: -1;
    display: block;
    width: 100%;
  }

  body.app-shell .topbar.app-topbar:has(.top-period-control) .topbar-main h1 {
    max-width: none;
    font-size: 26px;
    line-height: 1.1;
  }

  body.app-shell .topbar.app-topbar:has(.top-period-control) .topbar-main p {
    max-width: none;
    font-size: 13px;
    line-height: 1.4;
  }

  body.app-shell .topbar.app-topbar:has(.top-period-control) .user-profile-menu {
    display: none;
  }

  .top-period-control[data-top-period-control] {
    min-width: 0;
    width: 100%;
    max-width: none;
    flex-basis: 100%;
  }

  .top-period-control[data-top-period-control] .top-period-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 24px;
    gap: 7px 8px;
  }

  .top-period-control[data-top-period-control] .top-period-row > .top-period-arrow:first-child {
    grid-column: 1;
    grid-row: 1;
  }

  .top-period-control[data-top-period-control] .top-period-row > input[type="date"]:first-of-type {
    grid-column: 2;
    grid-row: 1;
  }

  .top-period-control[data-top-period-control] .top-period-row > .top-period-separator {
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
  }

  .top-period-control[data-top-period-control] .top-period-row > input[type="date"]:last-of-type {
    grid-column: 2;
    grid-row: 2;
  }

  .top-period-control[data-top-period-control] .top-period-row > .top-period-arrow:nth-of-type(2) {
    grid-column: 3;
    grid-row: 1;
  }

  .top-period-control[data-top-period-control] .top-period-arrow {
    width: 24px;
    min-width: 0;
    padding: 0;
  }

  .top-period-control[data-top-period-control] .top-period-row > select {
    grid-column: 1 / -1;
    grid-row: 3;
  }

  .top-period-control[data-top-period-control] input[type="date"],
  .top-period-control[data-top-period-control] select {
    width: 100%;
    min-width: 0;
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .financeiro-conciliacao-page .filters-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .financeiro-conciliacao-page .filters-actions .primary,
  body.app-shell[data-active="/financeiro/conciliacao"] .financeiro-conciliacao-page .filters-actions .ghost {
    width: 100%;
  }

  body.app-shell[data-active="/financeiro/conciliacao"] .conciliacao-table-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* A lista de compras permanece uma tabela no celular: rolagem horizontal e linhas compactas. */
@media (max-width: 720px) {
  body.app-shell[data-active="/xml-compras"] .xml-compras-lista {
    padding: 12px;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table-wrap {
    overflow-x: auto !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table {
    display: table !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table thead {
    display: table-header-group !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody {
    display: table-row-group !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tr {
    display: table-row !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table th,
  body.app-shell[data-active="/xml-compras"] .xml-compras-table td {
    display: table-cell !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table {
    min-width: 1320px !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody {
    gap: 0 !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table tbody tr {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table td {
    grid-template-columns: none !important;
    gap: 0 !important;
    padding: 9px 10px !important;
  }

  body.app-shell[data-active="/xml-compras"] .xml-compras-table td::before {
    content: none !important;
  }
}

/* Classificacao contabil de itens de compras */
body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .shell {
  max-width: none;
}

.classificacao-compras-page {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.classificacao-compras-metricas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
  gap: 10px;
  margin: 0;
}

.classificacao-compras-metricas .mini-metric {
  position: relative;
  min-height: 82px;
  padding: 13px 12px 13px 48px;
  display: grid;
  align-content: center;
  gap: 4px;
  border-radius: 8px;
}

body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .cards.compact.classificacao-compras-metricas .card.mini-metric {
  padding: 13px 12px 13px 48px;
}

.classificacao-compras-metricas .mini-metric strong {
  font-size: 1.08rem;
  line-height: 1.2;
}

.classificacao-compras-metricas .mini-metric > span:not(.mini-metric-icon) {
  overflow: hidden;
  color: #a9b7cc;
  font-size: .72rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.classificacao-compras-metricas .mini-metric-icon {
  position: absolute;
  left: 12px;
  top: 15px;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  color: #a855f7;
  border: 1px solid rgba(168, 85, 247, .28);
  border-radius: 7px;
  background: rgba(88, 28, 135, .16);
}

.classificacao-compras-metricas .mini-metric-icon::before {
  content: "";
  width: 15px;
  height: 15px;
  display: block;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.classificacao-compras-metricas .metric-warning {
  border-color: rgba(245, 158, 11, .34);
}

.classificacao-compras-metricas .metric-warning .mini-metric-icon {
  color: #f59e0b;
  border-color: rgba(245, 158, 11, .3);
  background: rgba(120, 53, 15, .16);
}

.classificacao-compras-metricas .metric-positive {
  border-color: rgba(34, 197, 94, .34);
}

.classificacao-compras-metricas .metric-positive .mini-metric-icon {
  color: #34d399;
  border-color: rgba(52, 211, 153, .28);
  background: rgba(6, 78, 59, .16);
}

.classificacao-compras-filtros {
  padding: 12px;
  margin-bottom: 12px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  background: rgba(11, 18, 32, .42);
}

.classificacao-compras-filtros-principais {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(210px, 1fr) minmax(110px, .45fr) minmax(230px, 1.25fr) auto;
  gap: 12px;
  align-items: end;
}

.classificacao-compras-filtros label {
  min-width: 0;
  color: #d8deee;
  font-size: 12px;
}

.classificacao-compras-filtros input,
.classificacao-compras-filtros select {
  min-width: 0;
  width: 100%;
  min-height: 42px;
  height: 42px;
  padding: 10px 12px;
  line-height: 20px;
  border-radius: 8px;
  background: rgba(10, 16, 29, .82);
  border-color: rgba(148, 163, 184, .22);
  color-scheme: dark;
}

.classificacao-compras-filtros select option {
  background: #111827;
  color: #f8fafc;
}

.classificacao-compras-filtros .filters-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  align-self: end;
}

.classificacao-compras-filtros .filters-actions .primary,
.classificacao-compras-filtros .filters-actions .ghost {
  min-width: 74px;
  min-height: 42px;
  height: 42px;
  justify-content: center;
  border-radius: 8px;
}

.classificacao-compras-filtros .conciliacao-advanced {
  margin-top: 10px;
}

.classificacao-compras-filtros .conciliacao-advanced-grid {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.classificacao-compras-lista {
  min-width: 0;
  padding: 16px;
  overflow: hidden;
}

.classificacao-compras-lista-head {
  align-items: center;
  margin-bottom: 12px;
}

.classificacao-compras-lista-head h2 {
  margin: 0;
  font-size: 18px;
}

.classificacao-compras-lista-head .muted {
  margin-top: 4px;
  font-size: 12px;
}

.classificacao-compras-lista-head .ghost.small {
  min-height: 34px;
  border-radius: 8px;
}

.classificacao-compras-lista-acoes {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.classificacao-compras-selecao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 7px 10px;
  margin-bottom: 12px;
  border: 1px solid rgba(148, 163, 184, .14);
  border-radius: 8px;
  background: rgba(15, 23, 42, .5);
}

.classificacao-compras-selecao > span {
  color: var(--muted);
  font-size: .8rem;
  white-space: nowrap;
}

.classificacao-compras-acoes-lote {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.classificacao-compras-acoes-lote .primary,
.classificacao-compras-acoes-lote .ghost {
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 7px;
  font-size: .78rem;
}

.classificacao-compras-table-wrap {
  margin: 0;
  border: 1px solid rgba(148, 163, 184, .16);
  border-radius: 8px;
  background: rgba(10, 17, 31, .52);
  max-width: 100%;
  overflow-x: auto;
  scrollbar-color: #7c3aed rgba(15, 23, 42, .7);
}

.classificacao-compras-table {
  width: 100%;
  min-width: 1452px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

.classificacao-compras-table th,
.classificacao-compras-table td {
  height: 60px;
  padding: 9px 10px;
  border-bottom: 1px solid rgba(148, 163, 184, .12);
  font-size: 11px;
  line-height: 1.3;
  vertical-align: middle;
}

.classificacao-compras-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: #dbe7f6;
  background: rgba(20, 31, 49, .98);
  font-size: 10px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.classificacao-compras-table tbody tr {
  background: rgba(10, 17, 31, .42);
  transition: background .16s ease, box-shadow .16s ease;
}

.classificacao-compras-table .col-select { width: 36px; }
.classificacao-compras-table .col-emissao { width: 72px; }
.classificacao-compras-table .col-nota { width: 78px; }
.classificacao-compras-table .col-fornecedor { width: 132px; }
.classificacao-compras-table .col-produto { width: 170px; }
.classificacao-compras-table .col-fiscal { width: 76px; }
.classificacao-compras-table .col-quantidade { width: 68px; }
.classificacao-compras-table .col-valor {
  width: 82px;
  text-align: right;
}
.classificacao-compras-table .col-origem { width: 105px; }
.classificacao-compras-table .col-destino { width: 185px; }
.classificacao-compras-table .col-confianca { width: 68px; }
.classificacao-compras-table .col-status { width: 94px; }
.classificacao-compras-table .col-acoes { width: 104px; }

.classificacao-compras-table .col-emissao,
.classificacao-compras-table .col-nota,
.classificacao-compras-table .col-quantidade,
.classificacao-compras-table .col-valor,
.classificacao-compras-table .col-confianca {
  white-space: nowrap;
}

.classificacao-compras-table td.col-fornecedor,
.classificacao-compras-table td.col-origem {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.classificacao-compras-table td.col-destino {
  overflow-wrap: anywhere;
}

.classificacao-compras-table td.col-destino > strong,
.classificacao-compras-table td.col-destino > span,
.classificacao-compras-table td.col-destino > small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.classificacao-compras-table td.col-destino > small:nth-of-type(n + 2) {
  display: none;
}

.classificacao-compras-table td strong,
.classificacao-compras-table td small {
  display: block;
}

.classificacao-compras-table td strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.classificacao-compras-table td small {
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.35;
  margin-top: 3px;
}

.classificacao-compras-table tbody tr:focus-within,
.classificacao-compras-table tbody tr:hover {
  background: rgba(30, 41, 59, .56);
  box-shadow: inset 3px 0 0 rgba(139, 92, 246, .76);
}

.classificacao-compras-table .table-actions {
  display: grid;
  grid-template-columns: repeat(3, 30px);
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

.classificacao-compras-table .icon-button {
  display: inline-grid;
  place-items: center;
  width: 30px;
  min-width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: #cbd5e1;
  background: rgba(15, 23, 42, .72);
}

.classificacao-compras-table .icon-button > span {
  display: inline-block;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.classificacao-compras-table .icon-button:hover,
.classificacao-compras-table .icon-button:focus-visible {
  color: #fff;
  border-color: rgba(139, 92, 246, .68);
  background: rgba(124, 58, 237, .18);
}

.classificacao-compras-table .icon-button.danger:hover,
.classificacao-compras-table .icon-button.danger:focus-visible {
  color: #fca5a5;
  border-color: rgba(248, 113, 113, .56);
  background: rgba(127, 29, 29, .2);
}

body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table input[type="checkbox"] {
  width: 16px;
  min-width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  padding: 0;
  accent-color: #8b5cf6;
}

.classificacao-compras-paginacao {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  color: var(--muted);
  font-size: 12px;
}

.classificacao-compras-paginacao > div {
  display: flex;
  gap: 8px;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(148, 163, 184, .09);
  color: var(--text);
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.2;
}

.status-confirmado {
  border-color: rgba(34, 197, 94, .3);
  background: rgba(34, 197, 94, .12);
  color: #86efac;
}

.status-pendente {
  border-color: rgba(245, 158, 11, .3);
  background: rgba(245, 158, 11, .12);
  color: #fcd34d;
}

.status-sugestao-automatica,
.status-classificado-automaticamente {
  border-color: rgba(56, 189, 248, .3);
  background: rgba(56, 189, 248, .1);
  color: #7dd3fc;
}

.status-classificado-manualmente {
  border-color: rgba(167, 139, 250, .35);
  background: rgba(139, 92, 246, .13);
  color: #c4b5fd;
}

.classificacao-compras-dialog,
.classificacao-rastreabilidade-dialog,
.classificacao-previa-dialog,
.classificacao-confirmacao-dialog {
  width: min(760px, calc(100vw - 28px));
  max-height: min(88vh, 900px);
  padding: 0;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: var(--panel);
  color: var(--text);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .55);
}

.classificacao-rastreabilidade-dialog {
  width: min(720px, calc(100vw - 28px));
  margin-right: 14px;
}

.classificacao-confirmacao-dialog {
  width: min(520px, calc(100vw - 28px));
  margin: auto;
}

.classificacao-compras-dialog::backdrop,
.classificacao-rastreabilidade-dialog::backdrop,
.classificacao-previa-dialog::backdrop,
.classificacao-confirmacao-dialog::backdrop {
  background: rgba(2, 6, 23, .74);
  backdrop-filter: blur(2px);
}

.classificacao-dialog-shell,
.classificacao-drawer,
.classificacao-previa-shell {
  display: grid;
  gap: 16px;
  padding: 18px;
  max-height: inherit;
  overflow: auto;
}

.classificacao-dialog-shell > header,
.classificacao-drawer > header,
.classificacao-previa-shell > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.classificacao-dialog-shell > header h2,
.classificacao-drawer > header h2,
.classificacao-previa-shell > header h2 {
  margin: 3px 0 0;
}

.classificacao-dialog-shell > header .icon-button,
.classificacao-drawer > header .icon-button,
.classificacao-previa-shell > header .icon-button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: #cbd5e1;
  background: rgba(15, 23, 42, .72);
}

.classificacao-dialog-shell > header .icon-button > span,
.classificacao-drawer > header .icon-button > span,
.classificacao-previa-shell > header .icon-button > span {
  display: block;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.classificacao-dialog-shell > header .icon-button:hover,
.classificacao-dialog-shell > header .icon-button:focus-visible,
.classificacao-drawer > header .icon-button:hover,
.classificacao-drawer > header .icon-button:focus-visible,
.classificacao-previa-shell > header .icon-button:hover,
.classificacao-previa-shell > header .icon-button:focus-visible {
  color: #fff;
  border-color: rgba(139, 92, 246, .68);
  background: rgba(124, 58, 237, .18);
}

.classificacao-dialog-shell > footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.classificacao-dialog-shell > footer .form-feedback {
  margin-right: auto;
}

.classificacao-dialog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.classificacao-dialog-grid label,
.memoria-regra-opcoes label {
  display: grid;
  gap: 6px;
}

.classificacao-dialog-grid .dialog-full {
  grid-column: 1 / -1;
}

.account-search {
  position: relative;
}

.account-search-native {
  display: none;
}

.account-search > input {
  width: 100%;
}

.account-search-results {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 310px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #0f1422;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .38);
}

.account-search-results[hidden] {
  display: none !important;
}

.account-search-option,
.account-search-empty {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-radius: 0;
  text-align: left;
}

.account-search-option {
  color: var(--text);
  background: transparent;
}

.account-search-option:hover,
.account-search-option:focus-visible {
  outline: 0;
  background: rgba(139, 92, 246, .2);
}

.account-search-empty {
  color: var(--muted);
}

.memoria-regra-opcoes {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(139, 92, 246, .3);
  background: rgba(139, 92, 246, .06);
  border-radius: 6px;
}

.memoria-regra-opcoes[hidden] {
  display: none !important;
}

.classificacao-confirmacao-shell {
  display: grid;
  overflow: hidden;
}

.classificacao-confirmacao-shell > header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 36px;
  align-items: start;
  gap: 12px;
  padding: 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(15, 23, 42, .56);
}

.classificacao-confirmacao-shell > header h2 {
  margin: 3px 0 0;
  font-size: 1.18rem;
  line-height: 1.3;
}

.classificacao-confirmacao-icon {
  display: inline-block;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(139, 92, 246, .42);
  border-radius: 8px;
  color: #c4b5fd;
  background: rgba(124, 58, 237, .14);
}

.classificacao-confirmacao-icon::before {
  display: block;
  width: 20px;
  height: 20px;
  margin: 11px;
  content: "";
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.classificacao-confirmacao-shell .icon-button {
  display: inline-grid;
  place-items: center;
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: #cbd5e1;
  background: rgba(15, 23, 42, .72);
}

.classificacao-confirmacao-shell .icon-button > span {
  display: block;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: var(--icon) center / contain no-repeat;
  mask: var(--icon) center / contain no-repeat;
}

.classificacao-confirmacao-body {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.classificacao-confirmacao-body > p {
  margin: 0;
}

.confirmacao-automaticos-resumo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(15, 23, 42, .42);
}

.confirmacao-automaticos-resumo > div {
  min-width: 0;
  padding: 11px 12px;
}

.confirmacao-automaticos-resumo > div:nth-child(2) {
  border-left: 1px solid var(--line);
}

.confirmacao-automaticos-resumo .confirmacao-automaticos-periodo {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
}

.confirmacao-automaticos-resumo dt {
  color: var(--muted);
  font-size: .72rem;
}

.confirmacao-automaticos-resumo dd {
  margin: 3px 0 0;
  color: var(--text);
  font-weight: 700;
}

.confirmacao-automaticos-aviso {
  padding: 11px 12px;
  border-left: 3px solid #38bdf8;
  border-radius: 0 6px 6px 0;
  color: #cbd5e1;
  background: rgba(14, 116, 144, .12);
  font-size: .82rem;
  line-height: 1.5;
}

.classificacao-confirmacao-body .form-feedback {
  min-height: 18px;
}

.classificacao-confirmacao-shell > footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding: 14px 18px 18px;
  border-top: 1px solid var(--line);
}

.classificacao-dialog-shell > .check-row,
.classificacao-compras-filtros .check-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.classificacao-dialog-shell > .check-row input[type="checkbox"],
.classificacao-compras-filtros .check-row input[type="checkbox"] {
  flex: 0 0 16px;
  width: 16px;
  min-width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 0;
  padding: 0;
  accent-color: #8b5cf6;
}

.trace-section {
  display: grid;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.trace-section:first-of-type {
  padding-top: 0;
  border-top: 0;
}

.trace-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--line);
}

.trace-detail-row {
  min-width: 0;
  padding: 9px 10px;
  background: var(--panel-strong);
}

.trace-detail-row dt {
  color: var(--muted);
  font-size: .7rem;
}

.trace-detail-row dd {
  margin: 3px 0 0;
  overflow-wrap: anywhere;
}

.trace-event-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.trace-event-list li {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
}

.trace-event-list li span,
.trace-event-list li p {
  color: var(--muted);
  font-size: .78rem;
}

.trace-event-list li p {
  margin: 0;
}

.classificacao-previa-dialog {
  width: min(1040px, calc(100vw - 32px));
  height: min(86dvh, 820px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  overflow: hidden;
}

.classificacao-previa-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0;
  height: 100%;
  max-height: none;
  padding: 0;
  overflow: hidden;
}

.classificacao-previa-shell > .classificacao-previa-header {
  align-items: center;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
  background: rgba(15, 23, 42, .72);
}

.classificacao-previa-header .eyebrow {
  color: #a78bfa;
}

.classificacao-previa-header h2 {
  font-size: 1.24rem;
  line-height: 1.25;
}

.classificacao-previa-content {
  display: grid;
  align-content: start;
  gap: 15px;
  min-height: 0;
  padding: 16px 18px 20px;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}

.preview-notice,
.preview-automaticos {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 9px 11px;
  border-radius: 6px;
  font-size: .78rem;
  line-height: 1.4;
}

.preview-notice {
  border: 1px solid rgba(245, 158, 11, .22);
  border-left: 3px solid #f59e0b;
  color: #cbd5e1;
  background: rgba(120, 53, 15, .1);
}

.preview-automaticos {
  border: 1px solid rgba(56, 189, 248, .22);
  border-left: 3px solid #38bdf8;
  color: #cbd5e1;
  background: rgba(14, 116, 144, .1);
}

.preview-notice strong,
.preview-automaticos strong {
  flex: 0 0 auto;
  color: #f8fafc;
}

.preview-notice span,
.preview-automaticos span {
  min-width: 0;
}

.preview-section {
  display: grid;
  gap: 9px;
  min-width: 0;
}

.preview-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.preview-section-heading h3 {
  margin: 0;
  color: #f8fafc;
  font-size: .96rem;
}

.preview-section-heading > span {
  color: var(--muted);
  font-size: .72rem;
}

.preview-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--line);
}

.preview-metric {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
  min-height: 72px;
  padding: 11px 12px;
  background: rgba(15, 23, 42, .92);
}

.preview-metric > span {
  overflow: hidden;
  color: #9eabc0;
  font-size: .71rem;
  line-height: 1.3;
  text-overflow: ellipsis;
}

.preview-metric > strong {
  color: #f8fafc;
  font-size: 1.08rem;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}

.preview-metric > small {
  color: var(--muted);
  font-size: .66rem;
}

.preview-metric-total,
.preview-metric-highlight {
  box-shadow: inset 3px 0 0 rgba(139, 92, 246, .72);
}

.preview-metric-balanced {
  background: rgba(6, 78, 59, .22);
  box-shadow: inset 3px 0 0 rgba(52, 211, 153, .72);
}

.preview-metric-balanced > strong,
.preview-metric-balanced > small {
  color: #6ee7b7;
}

.preview-metric-unbalanced {
  background: rgba(127, 29, 29, .2);
  box-shadow: inset 3px 0 0 rgba(248, 113, 113, .72);
}

.preview-metric-unbalanced > strong,
.preview-metric-unbalanced > small {
  color: #fca5a5;
}

.preview-balance-status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-weight: 700;
}

.preview-balance-status.balanced {
  color: #6ee7b7;
  background: rgba(6, 78, 59, .18);
}

.preview-balance-status.unbalanced {
  color: #fca5a5;
  background: rgba(127, 29, 29, .16);
}

.preview-ledger-wrap,
.preview-composition-list {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: rgba(8, 15, 29, .48);
}

.preview-ledger-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.preview-ledger-table th,
.preview-ledger-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
  text-align: left;
}

.preview-ledger-table th {
  color: #aebbd0;
  background: rgba(30, 41, 59, .58);
  font-size: .69rem;
  font-weight: 700;
  text-transform: uppercase;
}

.preview-ledger-table tbody tr:last-child td {
  border-bottom: 0;
}

.preview-ledger-table th:first-child,
.preview-ledger-table .preview-dc {
  width: 58px;
  text-align: center;
}

.preview-ledger-table th:nth-child(2) {
  width: 37%;
}

.preview-ledger-table th:last-child,
.preview-ledger-table .preview-money {
  width: 130px;
  text-align: right;
}

.preview-dc {
  color: #c4b5fd;
  font-weight: 800;
}

.preview-account {
  color: #f8fafc;
  font-weight: 700;
}

.preview-category {
  color: #cbd5e1;
  overflow-wrap: anywhere;
}

.preview-money,
.preview-composition-value {
  color: #f8fafc;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.preview-composition-row {
  display: grid;
  grid-template-columns:
    minmax(190px, 1.15fr)
    minmax(100px, .54fr)
    minmax(190px, 1.28fr)
    minmax(92px, .48fr)
    76px;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}

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

.preview-composition-head {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #aebbd0;
  background: rgba(30, 41, 59, .58);
  font-size: .69rem;
  font-weight: 700;
  text-transform: uppercase;
}

.preview-composition-row > * {
  min-width: 0;
}

.preview-composition-destination,
.preview-composition-document {
  display: grid;
  gap: 3px;
}

.preview-composition-destination strong,
.preview-composition-document strong {
  overflow-wrap: anywhere;
  color: #f8fafc;
  font-size: .78rem;
}

.preview-composition-destination span,
.preview-composition-document span {
  color: var(--muted);
  font-size: .69rem;
  line-height: 1.35;
}

.preview-composition-description {
  overflow: hidden;
  color: #cbd5e1;
  font-size: .76rem;
  line-height: 1.4;
  text-overflow: ellipsis;
}

.preview-composition-value {
  text-align: right;
  font-size: .78rem;
}

.preview-composition-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  color: var(--muted);
  font-size: .7rem;
}

.preview-composition-action .ghost {
  min-height: 30px;
  padding: 5px 9px;
}

.preview-composition-empty {
  margin: 0;
  border: 0;
  border-radius: 0;
}

@media (max-width: 1280px) {
  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .cards.compact.classificacao-compras-metricas {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .classificacao-compras-filtros-principais {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .classificacao-compras-filtros-principais .filters-actions {
    grid-column: 1 / -1;
  }

  .classificacao-compras-filtros .conciliacao-advanced-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media (max-width: 760px) {
  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .cards.compact.classificacao-compras-metricas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .cards.compact.classificacao-compras-metricas .card.mini-metric {
    min-height: 74px;
    padding: 11px 10px 11px 44px;
  }

  .classificacao-compras-metricas .mini-metric-icon {
    left: 10px;
    top: 13px;
  }

  .classificacao-compras-filtros-principais,
  .classificacao-compras-filtros .conciliacao-advanced-grid,
  .classificacao-dialog-grid,
  .trace-detail-list {
    grid-template-columns: 1fr;
  }

  .classificacao-compras-lista {
    padding: 12px;
  }

  .classificacao-compras-lista-head,
  .classificacao-compras-selecao {
    align-items: stretch;
    flex-direction: column;
  }

  .classificacao-compras-lista-acoes {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .classificacao-compras-lista-acoes .ghost {
    width: 100%;
    justify-content: center;
  }

  .classificacao-compras-acoes-lote {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: flex-start;
    width: 100%;
  }

  .classificacao-compras-acoes-lote .primary,
  .classificacao-compras-acoes-lote .ghost {
    width: 100%;
    justify-content: center;
  }

  .classificacao-compras-filtros .filters-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .classificacao-compras-filtros .filters-actions .primary,
  .classificacao-compras-filtros .filters-actions .ghost {
    width: 100%;
  }

  .classificacao-compras-table-wrap {
    overflow-x: auto !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table {
    display: table !important;
    min-width: 1452px !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table thead {
    position: static !important;
    display: table-header-group !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table tbody {
    display: table-row-group !important;
    gap: 0 !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table tr {
    display: table-row !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table tbody tr {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table tbody tr::before {
    content: none !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table th,
  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table td {
    display: table-cell !important;
    gap: 0 !important;
    padding: 9px 8px !important;
    font-size: 11px !important;
    text-align: left !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table th.col-valor,
  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table td.col-valor {
    text-align: right !important;
  }

  body.app-shell[data-active="/financeiro/contabilidade/classificacao-compras"] .classificacao-compras-table td::before {
    content: none !important;
  }

  .classificacao-dialog-shell > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .classificacao-dialog-shell > footer .form-feedback {
    margin: 0;
  }

  .classificacao-rastreabilidade-dialog {
    margin: auto;
  }

  .classificacao-confirmacao-dialog {
    width: calc(100vw - 20px);
  }

  .classificacao-confirmacao-shell > header {
    grid-template-columns: 40px minmax(0, 1fr) 36px;
    gap: 10px;
    padding: 15px;
  }

  .classificacao-confirmacao-icon {
    width: 40px;
    height: 40px;
  }

  .classificacao-confirmacao-icon::before {
    margin: 9px;
  }

  .classificacao-confirmacao-body {
    padding: 15px;
  }

  .confirmacao-automaticos-resumo {
    grid-template-columns: 1fr;
  }

  .confirmacao-automaticos-resumo > div:nth-child(2) {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .confirmacao-automaticos-resumo .confirmacao-automaticos-periodo {
    grid-column: 1;
  }

  .classificacao-confirmacao-shell > footer {
    display: grid;
    grid-template-columns: 1fr;
    padding: 13px 15px 15px;
  }

  .classificacao-confirmacao-shell > footer .primary,
  .classificacao-confirmacao-shell > footer .ghost {
    width: 100%;
    justify-content: center;
  }

  .classificacao-compras-paginacao {
    align-items: stretch;
    flex-direction: column;
  }

  .classificacao-previa-dialog {
    width: calc(100vw - 18px);
    height: calc(100dvh - 18px);
    max-height: calc(100dvh - 18px);
  }

  .classificacao-previa-shell > .classificacao-previa-header {
    padding: 13px 14px;
  }

  .classificacao-previa-header h2 {
    font-size: 1.08rem;
  }

  .classificacao-previa-content {
    gap: 13px;
    padding: 13px 12px 16px;
    scrollbar-gutter: auto;
  }

  .preview-notice,
  .preview-automaticos {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .preview-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .preview-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .preview-metric {
    min-height: 68px;
    padding: 10px;
  }

  .preview-metric > strong {
    font-size: 1rem;
  }

  .preview-ledger-table thead {
    display: none;
  }

  .preview-ledger-table tbody {
    display: grid;
  }

  .preview-ledger-table tbody tr {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 4px 10px;
    padding: 10px;
    border-bottom: 1px solid var(--line);
  }

  .preview-ledger-table tbody tr:last-child {
    border-bottom: 0;
  }

  .preview-ledger-table td {
    display: block;
    width: auto !important;
    padding: 0;
    border: 0;
    text-align: left;
  }

  .preview-ledger-table .preview-dc {
    grid-row: 1 / 3;
    align-self: center;
    display: grid;
    place-items: center;
    width: 34px !important;
    height: 34px;
    border: 1px solid rgba(139, 92, 246, .34);
    border-radius: 6px;
    background: rgba(124, 58, 237, .12);
  }

  .preview-ledger-table .preview-account {
    grid-column: 2;
    grid-row: 1;
  }

  .preview-ledger-table .preview-category {
    grid-column: 2 / 4;
    grid-row: 2;
    font-size: .72rem;
  }

  .preview-ledger-table .preview-money {
    grid-column: 3;
    grid-row: 1;
    text-align: right;
  }

  .preview-composition-head {
    display: none;
  }

  .preview-composition-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 12px;
    padding: 12px;
  }

  .preview-composition-row > [data-label]::before {
    display: block;
    margin-bottom: 3px;
    content: attr(data-label);
    color: #8fa0b8;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .preview-composition-destination,
  .preview-composition-description,
  .preview-composition-action {
    grid-column: 1 / -1;
  }

  .preview-composition-document {
    grid-column: 1;
  }

  .preview-composition-value {
    grid-column: 2;
    text-align: right;
  }

  .preview-composition-description {
    white-space: normal;
  }

  .preview-composition-action {
    justify-content: flex-start;
  }
}

/* Vendas: ocupa a largura disponivel e reorganiza o conteudo por viewport. */
body.app-shell[data-active="/xml-vendas"] .shell {
  max-width: none;
}

body.app-shell[data-active="/xml-vendas"] .main {
  padding-inline: clamp(20px, 2.2vw, 42px);
}

body.app-shell[data-active="/xml-vendas"] .section-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
}

body.app-shell[data-active="/xml-vendas"] .section-toolbar .muted {
  min-width: 240px;
  flex: 1 1 320px;
}

body.app-shell[data-active="/xml-vendas"] .cards.compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.app-shell[data-active="/xml-vendas"] .premium-filters {
  display: grid;
  grid-template-columns:
    minmax(150px, 1fr)
    minmax(150px, .8fr)
    minmax(220px, 1.35fr)
    auto
    auto;
  align-items: end;
}

body.app-shell[data-active="/xml-vendas"] .mobile-filter-trigger,
body.app-shell[data-active="/xml-vendas"] .mobile-filter-close,
body.app-shell[data-active="/xml-vendas"] .mobile-filter-actions {
  display: none;
}

body.app-shell[data-active="/xml-vendas"] .premium-filters > button,
body.app-shell[data-active="/xml-vendas"] .premium-filters > a {
  min-height: 46px;
  justify-content: center;
  white-space: nowrap;
}

body.app-shell[data-active="/xml-vendas"] .xml-vendas-lista .table-wrap {
  width: 100%;
}

@media (max-width: 1280px) {
  body.app-shell[data-active="/xml-vendas"] .cards.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/xml-vendas"] .premium-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/xml-vendas"] .premium-filters > button,
  body.app-shell[data-active="/xml-vendas"] .premium-filters > a {
    width: 100%;
  }
}

@media (max-width: 980px) {
  body.app-shell[data-active="/xml-vendas"] .main {
    padding-inline: 18px;
  }

  body.app-shell[data-active="/xml-vendas"] .section-toolbar .muted {
    flex-basis: 100%;
  }
}

@media (max-width: 767px) {
  body.app-shell[data-active="/xml-vendas"] .main {
    padding-inline: 12px;
  }

  body.app-shell[data-active="/xml-vendas"] .section-toolbar,
  body.app-shell[data-active="/xml-vendas"] .premium-filters {
    grid-template-columns: 1fr;
  }

  body.app-shell[data-active="/xml-vendas"] .section-toolbar {
    display: grid;
  }

  body.app-shell[data-active="/xml-vendas"] .mobile-filter-trigger,
  body.app-shell[data-active="/xml-vendas"] .mobile-filter-close {
    display: inline-flex;
  }

  body.app-shell[data-active="/xml-vendas"] .mobile-filter-actions {
    display: grid;
  }

  body.app-shell[data-active="/xml-vendas"] .section-toolbar > *,
  body.app-shell[data-active="/xml-vendas"] .section-toolbar .muted {
    width: 100%;
    min-width: 0;
  }

  body.app-shell[data-active="/xml-vendas"] .section-toolbar > a,
  body.app-shell[data-active="/xml-vendas"] .section-toolbar > button {
    justify-content: center;
  }

  body.app-shell[data-active="/xml-vendas"] .cards.compact {
    grid-template-columns: 1fr;
  }

  body.app-shell[data-active="/xml-vendas"] .xml-vendas-section-card {
    padding: 14px;
  }

  body.app-shell[data-active="/xml-vendas"] .xml-vendas-lista {
    padding: 15px;
  }
}

/* Servicos tomados: layout fluido para desktop amplo, tablet e celular. */
body.app-shell[data-active="/xml-servicos"] .shell {
  max-width: none;
}

body.app-shell[data-active="/xml-servicos"] .main {
  padding-inline: clamp(20px, 2.2vw, 42px);
}

body.app-shell[data-active="/xml-servicos"] .xml-servicos-metricas {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.app-shell[data-active="/xml-servicos"] .base-folder-bar,
body.app-shell[data-active="/xml-servicos"] .xml-servicos-lista,
body.app-shell[data-active="/xml-servicos"] .xml-servicos-lista .table-wrap {
  width: 100%;
}

body.app-shell[data-active="/xml-servicos"] .folder-bar-uploaders {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.app-shell[data-active="/xml-servicos"] .upload-inline-form,
body.app-shell[data-active="/xml-servicos"] .base-folder-bar .file-picker {
  min-width: 0;
}

body.app-shell[data-active="/xml-servicos"] .upload-inline-form > button {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 1280px) {
  body.app-shell[data-active="/xml-servicos"] .folder-bar-uploaders {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  body.app-shell[data-active="/xml-servicos"] .main {
    padding-inline: 18px;
  }

  body.app-shell[data-active="/xml-servicos"] .xml-servicos-metricas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  body.app-shell[data-active="/xml-servicos"] .main {
    padding-inline: 12px;
  }

  body.app-shell[data-active="/xml-servicos"] .xml-servicos-metricas {
    grid-template-columns: 1fr;
  }

  body.app-shell[data-active="/xml-servicos"] .xml-servicos-lista {
    padding: 15px;
  }
}

/* Final viewport containment for restored screens. Keep this block last so
   page-specific desktop rules cannot reintroduce document-level overflow. */
@media (max-width: 1500px) and (min-width: 768px) {
  .main,
  .shell,
  .shell > *,
  .panel,
  .table-card,
  .settings-layout,
  .settings-edit,
  .settings-edit-full,
  .financeiro-contas-layout,
  .financeiro-recebimentos-page,
  .financeiro-recebimentos-layout,
  .recebimentos-side-stack,
  .ifood-finance-page,
  .makro-page,
  .makro-bottom-grid,
  .makro-bottom-grid > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .main {
    width: calc(100% - 300px);
    box-sizing: border-box;
    overflow-x: hidden;
  }

  .table-wrap,
  .table-card .table-wrap,
  .documentos-pagar-table-wrap {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto !important;
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .financeiro-recebimentos-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-side-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.app-shell[data-active="/financeiro/contabilidade/diario"] .settings-layout,
  body.app-shell[data-active="/financeiro/relatorios/makro"] .settings-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1120px) and (min-width: 768px) {
  .main {
    padding-inline: 18px;
  }

  .settings-layout,
  .makro-bottom-grid,
  .ifood-finance-grid,
  .financeiro-contas-layout,
  .financeiro-recebimentos-layout,
  body.app-shell[data-active="/financeiro/recebimentos"] .recebimentos-side-stack {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .contas-saldos-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  input,
  select,
  textarea {
    min-width: 0;
    max-width: 100%;
  }
}
/* Commercial module licensing */
.module-lock{margin-left:auto;font-size:.78rem;filter:grayscale(1);opacity:.78}
.nav-group.module-locked>.nav-item{color:#aeb7ce}
.nav-group.module-locked>.nav-item::after{opacity:.45}
.module-locked-page{min-height:calc(100vh - 190px);display:grid;place-items:center;padding:32px}
.module-locked-card{width:min(560px,100%);padding:42px;text-align:center;border:1px solid #303a59;border-radius:20px;background:linear-gradient(145deg,#12182c,#0d1222);box-shadow:0 24px 70px rgba(0,0,0,.32)}
.module-locked-icon{width:72px;height:72px;margin:0 auto 18px;display:grid;place-items:center;border-radius:20px;background:rgba(139,72,246,.16);font-size:2rem}
.module-locked-card h1{margin:8px 0 12px}.module-locked-card p{line-height:1.6}
.module-locked-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}
.module-license-form{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(190px,1.4fr) auto;gap:8px;align-items:center;min-width:440px}
.module-license-form select,.module-license-form input{min-height:38px}
@media(max-width:760px){.module-locked-page{padding:16px}.module-locked-card{padding:28px 20px}.module-license-form{min-width:260px;grid-template-columns:1fr}.module-license-form button{width:100%}}
