/* ============================================================
   App Concept Vision - EstiloConcept
   Escopo: somente telas com .cv-pilot.

   Esta camada e incremental: nao remove CSS antigo e centraliza
   tokens e componentes reutilizaveis para expansao gradual.
   ============================================================ */

:root {
  --cv-color-primary-dark: #102A6B;
  --cv-color-navy: #0F1F3D;
  --cv-color-primary: #004763;
  --cv-color-primary-hover: #00364D;
  --cv-color-primary-soft: #DBEAFE;
  --cv-color-primary-border: #60A5FA;
  --cv-color-bg: #F5F7FA;
  --cv-color-bg-alt: #F8FAFC;
  --cv-color-card: #FFFFFF;
  --cv-color-border: #E2E8F0;
  --cv-color-border-strong: #CBD5E1;
  --cv-color-text: #1E293B;
  --cv-color-muted: #64748B;
  --cv-color-soft: #94A3B8;
  --cv-success-bg: #DCFCE7;
  --cv-success-border: #22C55E;
  --cv-success-text: #166534;
  --cv-warning-bg: #FEF3C7;
  --cv-warning-border: #F59E0B;
  --cv-warning-text: #92400E;
  --cv-danger-bg: #FEE2E2;
  --cv-danger-border: #EF4444;
  --cv-danger-text: #991B1B;
  --cv-info-bg: #DBEAFE;
  --cv-info-border: #3B82F6;
  --cv-info-text: #1E40AF;
  --cv-purple-bg: #EDE9FE;
  --cv-purple-border: #8B5CF6;
  --cv-purple-text: #5B21B6;
  --cv-neutral-bg: #F1F5F9;
  --cv-neutral-border: #CBD5E1;
  --cv-neutral-text: #334155;
  --cv-space-xs: 4px;
  --cv-space-sm: 8px;
  --cv-space-md: 12px;
  --cv-space-lg: 16px;
  --cv-space-xl: 24px;
  --cv-radius-sm: 6px;
  --cv-radius-md: 8px;
  --cv-radius-lg: 12px;
  --cv-radius-xl: 16px;
  --cv-radius-pill: 999px;
  --cv-shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);
  --cv-shadow-md: 0 10px 26px rgba(15, 23, 42, 0.08);
  --cv-shadow-popover: 0 16px 36px rgba(15, 23, 42, 0.16);
  --cv-control-sm: 28px;
  --cv-control-md: 34px;
  --cv-control-lg: 38px;
}

.cv-pilot {
  color: var(--cv-color-text);
}

.cv-pilot,
.cv-pilot * {
  box-sizing: border-box;
}

.cv-pilot.cv-crm-clientes {
  max-width: 100%;
  min-width: 0;
}

/* ============================================================
   Componentes oficiais reutilizaveis
   ============================================================ */

.cv-pilot .cv-page-toolbar,
.cv-pilot .page-toolbar {
  align-items: center;
  gap: var(--cv-space-md);
  margin-bottom: var(--cv-space-lg);
}

.cv-pilot .page-title {
  color: var(--cv-color-navy);
  font-size: 24px;
  letter-spacing: 0;
}

.cv-pilot .cv-toolbar-meta {
  display: inline-flex;
  align-items: center;
  gap: var(--cv-space-sm);
  color: var(--cv-color-muted);
  font-size: 13px;
}

.cv-pilot .alert-success,
.cv-pilot .alert-error {
  border: 1px solid transparent;
  border-radius: var(--cv-radius-lg);
  box-shadow: var(--cv-shadow-sm);
  font-weight: 600;
}

.cv-pilot .alert-success {
  border-color: var(--cv-success-border);
}

.cv-pilot .alert-error {
  border-color: var(--cv-danger-border);
}

.cv-btn,
.cv-pilot .btn-primary.cv-btn,
.cv-pilot .btn-secondary.cv-btn,
.cv-pilot .btn-link.cv-btn,
.cv-pilot .btn-danger.cv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--cv-space-sm);
  min-height: var(--cv-control-md);
  border: 1px solid transparent;
  border-radius: var(--cv-radius-md);
  padding: 6px 10px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.cv-btn:hover,
.cv-pilot .btn-primary.cv-btn:hover,
.cv-pilot .btn-secondary.cv-btn:hover,
.cv-pilot .btn-link.cv-btn:hover,
.cv-pilot .btn-danger.cv-btn:hover {
  transform: translateY(-1px);
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot .cv-btn-primary,
.cv-pilot .btn-primary.cv-btn,
.cv-pilot .btn-link.cv-btn {
  background: var(--cv-color-primary);
  border-color: var(--cv-color-primary);
  color: #fff;
}

.cv-pilot .cv-btn-primary:hover,
.cv-pilot .btn-primary.cv-btn:hover,
.cv-pilot .btn-link.cv-btn:hover {
  background: var(--cv-color-primary-hover);
  border-color: var(--cv-color-primary-hover);
}

.cv-pilot .cv-btn-secondary,
.cv-pilot .btn-secondary.cv-btn {
  background: #fff;
  border-color: var(--cv-color-border-strong);
  color: var(--cv-neutral-text);
}

.cv-pilot .cv-btn-secondary:hover,
.cv-pilot .btn-secondary.cv-btn:hover {
  background: var(--cv-color-bg-alt);
  border-color: #94A3B8;
}

.cv-pilot .cv-btn-danger,
.cv-pilot .btn-danger.cv-btn {
  background: var(--cv-danger-bg);
  border-color: #FCA5A5;
  color: var(--cv-danger-text);
}

.cv-pilot .cv-btn-danger:hover,
.cv-pilot .btn-danger.cv-btn:hover {
  border-color: var(--cv-danger-border);
}

.cv-pilot.cv-planejamento-visitas .page-toolbar .pv-actions {
  align-items: center;
  overflow: visible;
  padding-top: 3px;
  padding-bottom: 2px;
}

.cv-pilot.cv-planejamento-visitas .page-toolbar {
  overflow: visible;
}

.cv-pilot.cv-planejamento-visitas .page-toolbar .cv-btn:hover,
.cv-pilot.cv-planejamento-visitas .page-toolbar .btn-primary.cv-btn:hover,
.cv-pilot.cv-planejamento-visitas .page-toolbar .btn-secondary.cv-btn:hover,
.cv-pilot.cv-planejamento-visitas .page-toolbar .btn-link.cv-btn:hover,
.cv-pilot.cv-planejamento-visitas .page-toolbar .btn-danger.cv-btn:hover {
  transform: none;
}

.cv-btn-icon,
.cv-action-icon,
.cv-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

.cv-btn-add::before,
.cv-btn-save::before,
.cv-btn-back::before,
.cv-btn-filter::before,
.cv-btn-clear::before,
.cv-btn-columns::before,
.cv-btn-audit::before,
.cv-btn-prev::before,
.cv-btn-next::after,
.cv-btn-copy::before,
.cv-btn-download::before,
.cv-btn-pdf::before,
.cv-btn-chart::before,
.cv-btn-edit::before,
.cv-btn-delete::before,
.cv-btn-cancel::before,
.cv-btn-calendar::before,
.cv-btn-open::before,
.cv-btn-mail::before,
.cv-btn-print::before,
.cv-btn-refresh::before,
.cv-btn-close::before,
.cv-btn-confirm::before,
.cv-btn-map::before,
.cv-btn-record::before,
.cv-btn-stop::before,
.cv-btn-toggle::before,
.cv-btn-speed::before {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}

.cv-btn-add::before {
  content: "+";
}

.cv-btn-save::before {
  content: "\2713";
}

.cv-btn-back::before,
.cv-btn-prev::before {
  content: "\2190";
}

.cv-btn-filter::before {
  content: "\2315";
}

.cv-btn-clear::before {
  content: "\00d7";
}

.cv-btn-columns::before {
  content: "\2637";
}

.cv-btn-audit::before {
  content: "\25f7";
}

.cv-btn-next::after {
  content: "\2192";
}

.cv-btn-copy::before {
  content: "\2398";
}

.cv-btn-download::before {
  content: "\2193";
}

.cv-btn-pdf::before {
  content: "\25a3";
}

.cv-btn-chart::before {
  content: "\25cc";
}

.cv-btn-edit::before {
  content: "\270e";
}

.cv-btn-delete::before {
  content: "\1f5d1";
}

.cv-btn-cancel::before,
.cv-btn-close::before {
  content: "\00d7";
}

.cv-btn-calendar::before {
  content: "\25a3";
}

.cv-btn-open::before {
  content: "\2197";
}

.cv-btn-mail::before {
  content: "\2709";
}

.cv-btn-print::before {
  content: "\2399";
}

.cv-btn-refresh::before {
  content: "\21bb";
}

.cv-btn-confirm::before {
  content: "\2713";
}

.cv-btn-map::before {
  content: "\25ce";
}

.cv-btn-record::before {
  content: "\25cf";
}

.cv-btn-stop::before {
  content: "\25a0";
}

.cv-btn-toggle::before {
  content: "\25be";
}

.cv-btn-speed::before {
  content: "\25b6";
}

.cv-pilot .cv-icon-btn,
.cv-pilot .acoes-menu-btn.cv-icon-btn {
  display: inline-grid;
  place-items: center;
  position: relative;
  width: 26px;
  height: 26px;
  min-width: 26px;
  padding: 0;
  border: 1px solid var(--cv-color-border-strong);
  border-radius: var(--cv-radius-md);
  background: #fff;
  color: var(--cv-neutral-text);
  cursor: pointer;
  overflow: hidden;
  font-size: 0;
  font-weight: 500;
  line-height: 1;
  transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.cv-pilot .acoes-menu-btn.cv-icon-btn::before {
  content: "\22EE";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 15px;
  line-height: 1;
}

.cv-pilot .cv-icon-btn:hover,
.cv-pilot .acoes-menu-btn.cv-icon-btn:hover {
  background: var(--cv-info-bg);
  border-color: var(--cv-info-border);
  color: var(--cv-info-text);
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot .cv-badge,
.cv-pilot .crm-commercial-tag.cv-badge,
.cv-pilot .crm-classification-badge.cv-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 24px;
  border: 1px solid var(--cv-neutral-border);
  border-radius: var(--cv-radius-pill);
  background: var(--cv-neutral-bg);
  color: var(--cv-neutral-text);
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.15;
  white-space: nowrap;
}

.cv-pilot .cv-badge-success,
.cv-pilot .crm-commercial-tag-green.cv-badge,
.cv-pilot .crm-commercial-tag-aumentou.cv-badge {
  background: var(--cv-success-bg);
  border-color: var(--cv-success-border);
  color: var(--cv-success-text);
}

.cv-pilot .cv-badge-warning,
.cv-pilot .crm-commercial-tag-yellow.cv-badge,
.cv-pilot .crm-commercial-tag-diminuiu.cv-badge {
  background: var(--cv-warning-bg);
  border-color: var(--cv-warning-border);
  color: var(--cv-warning-text);
}

.cv-pilot .cv-badge-danger,
.cv-pilot .crm-commercial-tag-red.cv-badge,
.cv-pilot .crm-commercial-tag-parado.cv-badge {
  background: var(--cv-danger-bg);
  border-color: var(--cv-danger-border);
  color: var(--cv-danger-text);
}

.cv-pilot .cv-badge-info,
.cv-pilot .crm-commercial-tag-blue.cv-badge,
.cv-pilot .crm-commercial-tag-iniciou.cv-badge {
  background: var(--cv-info-bg);
  border-color: var(--cv-info-border);
  color: var(--cv-info-text);
}

.cv-pilot .cv-badge-purple {
  background: var(--cv-purple-bg);
  border-color: var(--cv-purple-border);
  color: var(--cv-purple-text);
}

.cv-pilot .cv-badge-neutral,
.cv-pilot .crm-commercial-tag-gray.cv-badge,
.cv-pilot .crm-commercial-tag-nao_habilitada.cv-badge,
.cv-pilot .crm-commercial-tag-prospeccao.cv-badge {
  background: var(--cv-neutral-bg);
  border-color: var(--cv-neutral-border);
  color: var(--cv-neutral-text);
}

.cv-pilot .cv-table-wrap,
.cv-pilot .table-wrap.cv-table-wrap {
  max-width: 100%;
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  background: #fff;
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot .table-wrap.cv-table-wrap:not(.crm-table-scroll) {
  overflow-x: auto;
  overflow-y: visible;
}

.cv-pilot .crm-table-scroll.cv-table-wrap {
  overflow-x: scroll;
  overflow-y: auto;
  scrollbar-gutter: stable;
  scrollbar-color: #94A3B8 #F1F5F9;
  scrollbar-width: auto;
}

.cv-pilot .crm-table-scroll.cv-table-wrap::-webkit-scrollbar {
  width: 14px;
  height: 14px;
}

.cv-pilot .crm-table-scroll.cv-table-wrap::-webkit-scrollbar-track {
  background: #F1F5F9;
  border-radius: var(--cv-radius-pill);
}

.cv-pilot .crm-table-scroll.cv-table-wrap::-webkit-scrollbar-thumb {
  border: 3px solid #F1F5F9;
  border-radius: var(--cv-radius-pill);
  background: #94A3B8;
}

.cv-pilot .crm-table-scroll.cv-table-wrap::-webkit-scrollbar-thumb:hover {
  background: #64748B;
}

.cv-pilot .cv-table,
.cv-pilot .app-table.cv-table {
  color: var(--cv-color-text);
}

.cv-pilot .crm-clientes-table .acoes-menu-wrap {
  margin-right: 0;
}

.cv-pilot .cv-table th,
.cv-pilot .app-table.cv-table th {
  background: var(--cv-color-bg-alt);
  color: var(--cv-neutral-text);
  font-size: 12px;
  font-weight: 600;
}

.cv-pilot .cv-table td,
.cv-pilot .app-table.cv-table td {
  color: var(--cv-color-text);
  font-weight: 400;
}

.cv-pilot .cv-table td strong,
.cv-pilot .app-table.cv-table td strong {
  font-weight: 500;
}

.cv-pilot .cv-table tbody tr:hover td,
.cv-pilot .app-table.cv-table tbody tr:hover td {
  background: #F8FAFC;
}

.cv-pilot .cv-actions-col {
  text-align: center;
}

.cv-pilot .cv-action-menu,
.cv-pilot .acoes-menu-dropdown.cv-action-menu {
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  background: #fff;
  box-shadow: var(--cv-shadow-popover);
  padding: 6px;
}

.cv-pilot .cv-action-menu.open,
.cv-pilot .acoes-menu-dropdown.cv-action-menu.open {
  position: fixed !important;
  top: var(--cv-action-menu-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--cv-action-menu-left, auto) !important;
  z-index: 10050;
}

.cv-pilot .crm-clientes-table .acoes-menu-wrap:focus-within .acoes-menu-dropdown.cv-action-menu {
  position: fixed !important;
  top: var(--cv-action-menu-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--cv-action-menu-left, auto) !important;
}

.cv-pilot.cv-crm-tipos-visita .acoes-menu-dropdown.cv-action-menu.open,
.cv-pilot.cv-tipos-visita .acoes-menu-dropdown.cv-action-menu.open,
.cv-pilot.cv-planejamento-visitas .acoes-menu-dropdown.cv-action-menu.open {
  display: grid;
  min-width: 158px;
  overflow: visible;
}

.cv-pilot.cv-crm-tipos-visita .acoes-menu-dropdown.cv-action-menu form,
.cv-pilot.cv-tipos-visita .acoes-menu-dropdown.cv-action-menu form,
.cv-pilot.cv-planejamento-visitas .acoes-menu-dropdown.cv-action-menu form {
  margin: 0;
}

.cv-pilot.cv-crm-tipos-visita .acoes-menu-dropdown.cv-action-menu button,
.cv-pilot.cv-tipos-visita .acoes-menu-dropdown.cv-action-menu button,
.cv-pilot.cv-planejamento-visitas .acoes-menu-dropdown.cv-action-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.cv-pilot.crm-recursos .table-wrap.cv-table-wrap {
  overflow: visible;
}

.cv-pilot.crm-recursos .acoes-menu-dropdown.cv-action-menu.open {
  z-index: 10060;
}

.cv-pilot.cv-admin-avisos .acoes-menu-dropdown.cv-action-menu.open {
  display: grid;
  position: fixed !important;
  top: var(--cv-action-menu-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--cv-action-menu-left, auto) !important;
  min-width: 158px;
  overflow: visible;
  z-index: 10060;
}

.cv-pilot.cv-admin-avisos .acoes-menu-dropdown.cv-action-menu.open-up {
  bottom: auto !important;
}

.cv-pilot.cv-admin-avisos .acoes-menu-dropdown.cv-action-menu form {
  margin: 0;
}

.cv-pilot.cv-admin-avisos .acoes-menu-dropdown.cv-action-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.cv-pilot.cv-admin-avisos .avisos-form-actions {
  display: flex;
  justify-content: flex-end;
}

.cv-pilot.cv-admin-avisos .avisos-toolbar,
.cv-pilot.cv-admin-avisos .page-toolbar > .cv-btn,
.cv-pilot.cv-admin-avisos .page-toolbar > div:last-child {
  margin-left: auto;
}

.cv-pilot.cv-admin-avisos .avisos-filter-actions {
  justify-content: flex-end;
}

.cv-pilot.cv-admin-avisos .avisos-table-wrap th:last-child,
.cv-pilot.cv-admin-avisos .avisos-table-wrap td:last-child {
  text-align: right;
}

.cv-pilot.cv-admin-avisos .avisos-table-wrap .acoes-menu-wrap {
  display: inline-flex;
  justify-content: flex-end;
}

.cv-pilot.cv-admin-avisos .avisos-notificacoes-table .acoes-menu-btn.cv-icon-btn,
.cv-pilot.cv-admin-integracoes .table-wrap.cv-table-wrap .acoes-menu-btn.cv-icon-btn {
  display: inline-grid !important;
  place-items: center;
  width: 26px;
  height: 26px;
  min-width: 26px;
  padding: 0;
  border-radius: var(--cv-radius-md);
  line-height: 1;
  visibility: visible;
}

.cv-pilot.cv-admin-avisos .avisos-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--cv-space-sm);
  flex-wrap: nowrap;
}

.cv-pilot.cv-admin-avisos .avisos-row-actions .cv-btn {
  width: auto;
  white-space: nowrap;
}

.cv-pilot.crm-visitas-shell {
  width: min(100%, calc(100vw - 28px));
  max-width: 1540px;
}

.cv-pilot.crm-visitas-shell .crm-visitas-cards,
.cv-pilot.crm-visitas-shell .crm-visitas-etiquetas,
.cv-pilot.crm-visitas-shell .crm-visitas-filter,
.cv-pilot.crm-visitas-shell .table-wrap.cv-table-wrap {
  width: 100%;
}

.cv-pilot.crm-visitas-shell .crm-visitas-cards {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.cv-pilot.crm-visitas-shell .crm-visitas-etiquetas.crm-visitas-etiquetas-duplo {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  justify-content: stretch;
}

.cv-pilot.crm-visitas-shell .crm-visitas-etiqueta-panel {
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 14px;
}

.cv-pilot.crm-visitas-shell .crm-visitas-pie,
.cv-pilot.crm-visitas-shell .crm-visitas-pie svg {
  width: 112px;
  height: 112px;
  min-height: 112px;
  max-width: 112px;
}

.cv-pilot.crm-visitas-shell .crm-visitas-pie [data-pie-slice] {
  cursor: pointer;
}

.cv-pilot.crm-visitas-shell .crm-visitas-pie-tooltip {
  position: fixed;
  z-index: 10080;
  max-width: 220px;
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-md);
  background: #fff;
  box-shadow: var(--cv-shadow-popover);
  color: var(--cv-color-text);
  padding: 7px 9px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.25;
  pointer-events: none;
  white-space: nowrap;
}

.agenda-tooltip.cv-pie-tooltip {
  position: fixed;
  z-index: 10080;
  max-width: 320px;
  border: 0;
  border-radius: 10px;
  background: #0f172a;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.28);
  color: #fff;
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 0.12s ease, transform 0.12s ease;
  white-space: pre-line;
}

.agenda-tooltip.cv-pie-tooltip.open {
  opacity: 1;
  transform: translateY(0);
}

.cv-pilot.crm-visitas-shell .crm-visitas-etiquetas-list {
  grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
  justify-content: stretch;
  max-width: none;
  width: 100%;
}

.cv-pilot.crm-visitas-shell .crm-visitas-etiqueta-item {
  justify-content: space-between;
  min-width: 0;
}

.cv-pilot.crm-visitas-shell .crm-visitas-etiqueta-item .cv-badge,
.cv-pilot.crm-visitas-shell .crm-commercial-tag.cv-badge,
.cv-pilot.crm-visitas-shell .crm-classification-badge.cv-badge,
.cv-pilot.crm-visitas-shell .pv-visit-status {
  white-space: nowrap;
}

.cv-pilot.crm-visitas-shell .crm-visitas-filter {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.cv-pilot.crm-visitas-shell .cv-table th,
.cv-pilot.crm-visitas-shell .cv-table td {
  white-space: nowrap;
}

.cv-pilot.crm-visitas-shell .cv-table td:nth-child(2) {
  min-width: 210px;
  white-space: normal;
}

.cv-pilot.crm-visitas-shell .table-wrap.cv-table-wrap {
  overflow-x: auto;
}

.cv-pilot.crm-visitas-shell .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table th:last-child,
.cv-pilot.crm-visitas-shell .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table td:last-child {
  position: sticky !important;
  right: 0 !important;
  z-index: 6;
}

.cv-pilot.crm-visitas-shell .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table thead th:last-child {
  z-index: 9;
}

/* ============================================================
   Bloco final: BI, Home/Dashboard, Auth e relatorios
   ============================================================ */

.cv-pilot.cv-bi-paineis .page-toolbar,
.cv-pilot.cv-dashboard .dashboard-topbar {
  margin-bottom: var(--cv-space-lg);
}

.cv-pilot.cv-bi-paineis .bi-logo-mini {
  border-color: var(--cv-color-border);
  border-radius: var(--cv-radius-md);
}

.cv-pilot.cv-bi-paineis.bi-view-wrap,
.cv-pilot.cv-bi-paineis .bi-embed-wrap {
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.cv-pilot.cv-bi-paineis .bi-embed-wrap iframe {
  display: block;
}

.cv-pilot.cv-bi-paineis .acoes-menu-dropdown.cv-action-menu.open {
  display: grid;
  position: fixed !important;
  top: var(--cv-action-menu-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--cv-action-menu-left, auto) !important;
  min-width: 170px;
  overflow: visible;
  z-index: 10070;
}

.cv-pilot.cv-bi-paineis .acoes-menu-dropdown.cv-action-menu form {
  margin: 0;
}

.cv-pilot.cv-bi-paineis .acoes-menu-dropdown.cv-action-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.cv-pilot.cv-bi-paineis .bi-painel-form-label,
.cv-pilot.cv-usuarios-especiais .usuario-form-label,
.cv-pilot.cv-auth .auth-label {
  color: var(--cv-color-text);
  font-weight: 600;
}

.cv-pilot .cv-form-control,
.cv-pilot.cv-auth .auth-input {
  border-color: var(--cv-color-border-strong);
  border-radius: var(--cv-radius-md);
  color: var(--cv-color-text);
}

.cv-pilot .cv-form-control:focus,
.cv-pilot.cv-auth .auth-input:focus {
  border-color: var(--cv-info-border);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16);
  outline: none;
}

.cv-pilot.cv-bi-paineis .bi-painel-checkbox-list {
  border-color: var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  background: var(--cv-color-bg-alt);
}

.cv-pilot.cv-dashboard .dashboard-title,
.cv-pilot.cv-home .home-panel h1,
.cv-pilot.cv-home .home-panel h2,
.cv-pilot.cv-auth .auth-title {
  color: var(--cv-color-navy);
  letter-spacing: 0;
}

.cv-pilot.cv-dashboard .dashboard-user-chip,
.cv-pilot.cv-dashboard .dashboard-accordion-item,
.cv-pilot.cv-home .home-panel {
  border-color: var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot.cv-dashboard .dashboard-tab-btn.active {
  color: var(--cv-color-primary);
  background: var(--cv-info-bg);
  border-bottom-color: var(--cv-color-primary);
}

.cv-pilot.cv-dashboard .dashboard-card,
.cv-pilot.cv-home .home-mini-card.dashboard-card {
  border-color: var(--cv-color-border) !important;
  border-radius: var(--cv-radius-md);
  box-shadow: var(--cv-shadow-sm) !important;
}

.cv-pilot.cv-home .home-panel-action {
  border-radius: var(--cv-radius-md);
  font-weight: 600;
}

.cv-pilot.cv-home .home-icon-action {
  border-radius: var(--cv-radius-md);
}

.cv-pilot.cv-auth .auth-box {
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-xl);
  box-shadow: var(--cv-shadow-md);
}

.cv-pilot.cv-auth .auth-button.cv-btn {
  width: 100%;
  margin-top: var(--cv-space-lg);
}

.cv-pilot.cv-controle-processos-report .report-page {
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-xl);
  box-shadow: var(--cv-shadow-md);
}

.cv-pilot.cv-controle-processos-report .report-actions {
  align-items: center;
  justify-content: flex-end;
  gap: var(--cv-space-sm);
  flex-wrap: wrap;
}

.cv-pilot.cv-controle-processos-report .report-title h1 {
  color: var(--cv-color-navy);
  letter-spacing: 0;
}

.cv-pilot.cv-controle-processos-report .meta-box,
.cv-pilot.cv-controle-processos-report .chart-box,
.cv-pilot.cv-controle-processos-report .empty {
  border-color: var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  background: var(--cv-color-bg-alt);
}

.cv-pilot.cv-controle-processos-report th {
  background: var(--cv-color-bg-alt);
  color: var(--cv-neutral-text);
  font-weight: 600;
}

.cv-pilot.cv-controle-processos-report td {
  color: var(--cv-color-text);
}

.cv-pilot.cv-controle-processos-report .status-badge.status-aprovado {
  background: var(--cv-success-bg);
  border-color: var(--cv-success-border);
  color: var(--cv-success-text);
}

.cv-pilot.cv-controle-processos-report .status-badge.status-atencao {
  background: var(--cv-warning-bg);
  border-color: var(--cv-warning-border);
  color: var(--cv-warning-text);
}

.cv-pilot.cv-controle-processos-report .status-badge.status-suspenso {
  background: var(--cv-danger-bg);
  border-color: var(--cv-danger-border);
  color: var(--cv-danger-text);
}

@media (max-width: 760px) {
  .cv-pilot.cv-bi-paineis .bi-painel-form-actions,
  .cv-pilot.cv-usuarios-especiais .usuario-form-actions,
  .cv-pilot.cv-controle-processos-report .report-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .cv-pilot.cv-controle-processos-report .report-header,
  .cv-pilot.cv-controle-processos-report .report-meta {
    grid-template-columns: 1fr;
  }

  .cv-pilot.cv-controle-processos-report .report-header {
    display: grid;
  }
}

@media print {
  .cv-pilot.cv-controle-processos-report .cv-btn {
    box-shadow: none;
  }
}

/* Contrato oficial: campo ativo com foco visivel em todo EstiloConcept. */
.cv-pilot input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):focus,
.cv-pilot select:focus,
.cv-pilot textarea:focus {
  border-color: #60A5FA !important;
  box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.32) !important;
  outline: none !important;
}

.cv-pilot.cv-controle-processos .module-header h1,
.cv-pilot.cv-controle-processos .module-header-main h1 {
  color: var(--cv-color-navy);
  letter-spacing: 0;
}

.cv-pilot.cv-controle-processos .module-header p,
.cv-pilot.cv-controle-processos .module-header-main p {
  color: var(--cv-color-muted);
}

.cv-pilot.cv-controle-processos .tabs {
  border-bottom-color: var(--cv-color-border);
}

.cv-pilot.cv-controle-processos .tab-button {
  color: var(--cv-color-muted);
  border-radius: var(--cv-radius-md) var(--cv-radius-md) 0 0;
}

.cv-pilot.cv-controle-processos .tab-button.active {
  color: var(--cv-color-primary);
  border-bottom-color: var(--cv-color-primary);
}

.cv-pilot.cv-controle-processos .form-section,
.cv-pilot.cv-controle-processos .table-card,
.cv-pilot.cv-controle-processos .chart-card,
.cv-pilot.cv-controle-processos .show-card {
  border-color: var(--cv-color-border);
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot.cv-controle-processos .table-card-header,
.cv-pilot.cv-controle-processos .chart-header,
.cv-pilot.cv-controle-processos .show-header {
  background: var(--cv-color-bg-alt);
  border-bottom-color: var(--cv-color-border);
}

.cv-pilot.cv-controle-processos .result-badge.status-aprovado,
.cv-pilot.cv-controle-processos .record-badge.record-ativo {
  background: var(--cv-success-bg);
  border-color: var(--cv-success-border);
  color: var(--cv-success-text);
}

.cv-pilot.cv-controle-processos .result-badge.status-atencao {
  background: var(--cv-warning-bg);
  border-color: var(--cv-warning-border);
  color: var(--cv-warning-text);
}

.cv-pilot.cv-controle-processos .result-badge.status-suspenso {
  background: var(--cv-danger-bg);
  border-color: var(--cv-danger-border);
  color: var(--cv-danger-text);
}

.cv-pilot.cv-controle-processos .record-badge.record-inativo {
  background: var(--cv-neutral-bg);
  border-color: var(--cv-neutral-border);
  color: var(--cv-neutral-text);
}

.cv-pilot.cv-controle-processos .actions-dropdown.cv-action-menu.open {
  display: grid;
  position: fixed !important;
  top: var(--cv-action-menu-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--cv-action-menu-left, auto) !important;
  min-width: 170px;
  z-index: 10070;
}

.cv-pilot.cv-controle-processos .actions-dropdown.cv-action-menu form {
  margin: 0;
}

.cv-pilot.cv-controle-processos .actions-dropdown.cv-action-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.cv-pilot.cv-controle-processos .controle-pagination a {
  background: #fff;
  border: 1px solid var(--cv-color-border-strong);
  color: var(--cv-neutral-text);
}

.cv-pilot.cv-admin-integracoes .acoes-menu-dropdown.cv-action-menu.open {
  display: grid;
  position: fixed !important;
  top: var(--cv-action-menu-top, auto) !important;
  right: auto !important;
  bottom: auto !important;
  left: var(--cv-action-menu-left, auto) !important;
  min-width: 170px;
  overflow: visible;
  z-index: 10060;
}

.cv-pilot.cv-admin-integracoes .acoes-menu-dropdown.cv-action-menu.open-up {
  bottom: auto !important;
}

.cv-pilot.cv-admin-integracoes .acoes-menu-dropdown.cv-action-menu form {
  margin: 0;
}

.cv-pilot.cv-admin-integracoes .acoes-menu-dropdown.cv-action-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
}

.cv-pilot.cv-admin-integracoes .integracoes-actions,
.cv-pilot.cv-admin-integracoes .page-toolbar > .cv-btn,
.cv-pilot.cv-admin-integracoes .page-toolbar > div:last-child {
  margin-left: auto;
}

.cv-pilot.cv-admin-integracoes .integracoes-form-actions {
  display: flex;
  justify-content: flex-end;
}

.cv-pilot.cv-admin-integracoes .table-wrap.cv-table-wrap th:last-child,
.cv-pilot.cv-admin-integracoes .table-wrap.cv-table-wrap td:last-child {
  text-align: right;
}

.cv-pilot.cv-admin-integracoes .table-wrap.cv-table-wrap .acoes-menu-wrap {
  display: inline-flex;
  justify-content: flex-end;
}

.cv-pilot .cv-action-item,
.cv-pilot .acoes-menu-link.cv-action-item,
.cv-pilot .acoes-menu-delete.cv-action-item {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 30px;
  border-radius: var(--cv-radius-md);
  padding: 5px 8px;
  color: var(--cv-color-text);
  font-size: 12px;
  font-weight: 400;
}

.cv-pilot .cv-action-item:hover,
.cv-pilot .cv-action-item:focus,
.cv-pilot .cv-action-item:active,
.cv-pilot .acoes-menu-link.cv-action-item:hover,
.cv-pilot .acoes-menu-link.cv-action-item:focus,
.cv-pilot .acoes-menu-link.cv-action-item:active,
.cv-pilot .cv-action-menu button.cv-action-item:hover,
.cv-pilot .cv-action-menu button.cv-action-item:focus,
.cv-pilot .cv-action-menu button.cv-action-item:active {
  background: var(--cv-info-bg);
  color: var(--cv-info-text);
  border-radius: var(--cv-radius-md);
  outline: none;
}

.cv-pilot .cv-action-menu .cv-action-item,
.cv-pilot .acoes-menu-dropdown.cv-action-menu .cv-action-item,
.cv-pilot .acoes-menu-dropdown.cv-action-menu .acoes-menu-link {
  position: relative;
  z-index: 1;
  width: 100%;
  box-sizing: border-box;
  border-radius: var(--cv-radius-md);
  margin: 0;
  overflow: hidden;
  background-clip: padding-box;
}

.cv-pilot .cv-action-item-danger,
.cv-pilot .acoes-menu-delete.cv-action-item-danger {
  color: var(--cv-danger-text);
}

.cv-pilot .cv-action-item-danger:hover,
.cv-pilot .cv-action-item-danger:focus,
.cv-pilot .cv-action-item-danger:active,
.cv-pilot .acoes-menu-delete.cv-action-item-danger:hover,
.cv-pilot .acoes-menu-delete.cv-action-item-danger:focus,
.cv-pilot .acoes-menu-delete.cv-action-item-danger:active,
.cv-pilot .cv-action-menu .cv-action-item-danger:hover,
.cv-pilot .cv-action-menu .cv-action-item-danger:focus,
.cv-pilot .cv-action-menu .cv-action-item-danger:active,
.cv-pilot .cv-action-menu button.cv-action-item-danger:hover,
.cv-pilot .cv-action-menu button.cv-action-item-danger:focus,
.cv-pilot .cv-action-menu button.cv-action-item-danger:active,
.cv-pilot .cv-action-menu .acoes-menu-delete.cv-action-item-danger:hover,
.cv-pilot .cv-action-menu .acoes-menu-delete.cv-action-item-danger:focus,
.cv-pilot .cv-action-menu .acoes-menu-delete.cv-action-item-danger:active {
  background: var(--cv-danger-bg);
  color: var(--cv-danger-text);
}

.cv-pilot .cv-filter-panel,
.cv-pilot .filters-shell.cv-filter-panel {
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  background: var(--cv-color-bg-alt);
  box-shadow: var(--cv-shadow-sm);
  margin-bottom: var(--cv-space-lg);
}

.cv-pilot .filters-shell-header {
  padding: 11px 14px;
}

.cv-pilot .cv-filter-header-main {
  display: flex;
  align-items: center;
  gap: var(--cv-space-sm);
  min-width: 0;
}

.cv-pilot .filters-shell-title {
  flex: 0 0 auto;
  color: var(--cv-color-navy);
  font-size: 13px;
  font-weight: 800;
}

.cv-pilot .filters-shell-toggle {
  min-height: 30px;
  border-radius: var(--cv-radius-md);
  font-size: 11px;
  font-weight: 800;
}

.cv-pilot .filters-shell-body {
  padding: 14px;
}

.cv-pilot .cv-filter-panel-compact .form-group label {
  color: var(--cv-neutral-text);
  font-weight: 400;
}

.cv-pilot .cv-filter-panel label,
.cv-pilot .cv-form-card label {
  font-weight: 400;
}

.cv-pilot .cv-filter-panel label > span,
.cv-pilot .cv-form-card label > span {
  font-weight: 400;
}

.cv-pilot .cv-filter-panel input,
.cv-pilot .cv-filter-panel select,
.cv-pilot .cv-filter-panel textarea,
.cv-pilot .cv-table select,
.cv-pilot .cv-form-card input,
.cv-pilot .cv-form-card select,
.cv-pilot .cv-form-card textarea {
  border-color: var(--cv-color-border-strong);
}

.cv-pilot .cv-filter-panel input:focus,
.cv-pilot .cv-filter-panel select:focus,
.cv-pilot .cv-filter-panel textarea:focus,
.cv-pilot .cv-table select:focus,
.cv-pilot .cv-form-card input:focus,
.cv-pilot .cv-form-card select:focus,
.cv-pilot .cv-form-card textarea:focus {
  border-color: var(--cv-color-primary-border);
  box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.22);
}

.cv-pilot .cv-form-shell {
  width: min(860px, 100%);
}

.cv-pilot .cv-form-card,
.cv-pilot .form-card.cv-form-card {
  border-color: var(--cv-color-border);
  border-radius: var(--cv-radius-xl);
  box-shadow: var(--cv-shadow-md);
}

.cv-pilot .cv-form-section-title {
  display: flex;
  align-items: center;
  gap: var(--cv-space-sm);
  margin: 0 0 14px;
  color: var(--cv-color-navy);
  font-size: 15px;
  font-weight: 600;
}

.cv-pilot .cv-form-footer,
.cv-pilot .usuario-form-actions.cv-form-footer {
  justify-content: flex-end;
  gap: var(--cv-space-sm);
  border-top-color: var(--cv-color-border);
}

.cv-pilot .usuario-check-list-box {
  border-color: var(--cv-color-border-strong);
}

.cv-pilot .usuario-check-list-item:hover {
  background: var(--cv-info-bg);
  color: var(--cv-info-text);
}

.cv-pilot .crm-clientes-etiquetas {
  border-color: var(--cv-color-border);
  border-radius: var(--cv-radius-lg);
  background: #fff;
  box-shadow: var(--cv-shadow-sm);
  margin-bottom: var(--cv-space-lg);
}

.cv-pilot .crm-total {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-pill);
  background: #fff;
  color: var(--cv-color-muted);
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 700;
}

.cv-pilot .crm-start-message,
.cv-pilot .crm-query-status {
  border-color: var(--cv-info-border);
  border-radius: var(--cv-radius-lg);
  background: var(--cv-info-bg);
  color: var(--cv-info-text);
}

.cv-pilot .filters-shell-header .crm-query-status {
  min-width: 0;
  margin-top: 0;
}

.cv-pilot .crm-filter-actions {
  justify-content: flex-end;
  padding-top: 12px;
  border-top: 1px solid var(--cv-color-border);
}

.cv-pilot.cv-controle-insumos .controle-filter-actions .cv-btn,
.cv-pilot.cv-controle-processos .filters-actions .cv-btn {
  min-width: 92px;
}

.cv-pilot .crm-column-picker-menu,
.cv-pilot .crm-combo-menu {
  border-color: var(--cv-color-border-strong);
  box-shadow: var(--cv-shadow-popover);
}

.cv-pilot .crm-column-picker-menu label,
.cv-pilot .crm-column-picker-menu label > span {
  color: var(--cv-color-text);
  font-size: 13px;
  font-weight: 400;
}

.cv-pilot .crm-combo-item:hover,
.cv-pilot .crm-combo-item:focus {
  background: var(--cv-info-bg);
  color: var(--cv-info-text);
}

.cv-pilot .crm-pagination {
  gap: var(--cv-space-sm);
}

.cv-pilot .crm-pagination span {
  color: var(--cv-color-muted);
  font-weight: 700;
}

.cv-pilot .crm-sort-link {
  min-width: 22px;
  height: 22px;
  border-color: transparent;
  border-radius: var(--cv-radius-sm);
  background: transparent;
  box-shadow: none;
  font-weight: 900;
}

.cv-pilot .crm-sort-link:hover {
  background: var(--cv-info-bg);
  border-color: var(--cv-info-border);
  color: var(--cv-info-text);
}

@media (min-width: 981px) {
  .cv-pilot .crm-clientes-table .crm-col-id_erp,
  .cv-pilot .crm-clientes-table .crm-col-cliente,
  .cv-pilot .crm-clientes-table th:nth-child(1),
  .cv-pilot .crm-clientes-table td:nth-child(1),
  .cv-pilot .crm-clientes-table th:nth-child(2),
  .cv-pilot .crm-clientes-table td:nth-child(2) {
    position: sticky !important;
  }

  .cv-pilot.cv-crm-tipos-visita .table-wrap.cv-table-wrap,
  .cv-pilot.cv-tipos-visita .table-wrap.cv-table-wrap,
  .cv-pilot.cv-planejamento-visitas .table-wrap.cv-table-wrap {
    overflow: visible;
  }
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table th:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table td:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table th:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table td:last-child {
  position: sticky;
  right: 0;
  z-index: 5;
  width: 64px;
  min-width: 64px;
  max-width: 64px;
  padding-right: 8px;
  padding-left: 8px;
  text-align: center;
  background: #fff;
  box-shadow: -1px 0 0 var(--cv-color-border);
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table thead th:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table thead th:last-child {
  z-index: 8;
  background: var(--cv-color-bg-alt);
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .acoes-menu-wrap {
  display: inline-flex;
  justify-content: center;
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table tr:has([data-acoes-dropdown].open) td:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table tr:has([data-acoes-dropdown].open) td:last-child {
  z-index: 10060;
}

.cv-pilot.cv-planejamento-visitas .pv-visit-status.agendada,
.cv-pilot.cv-planejamento-visitas .pv-visit-status.finalizada {
  background: var(--cv-success-bg);
  border-color: var(--cv-success-border);
  color: var(--cv-success-text);
}

.cv-pilot.cv-planejamento-visitas .pv-visit-status.para_hoje {
  background: var(--cv-warning-bg);
  border-color: var(--cv-warning-border);
  color: var(--cv-warning-text);
}

.cv-pilot.cv-planejamento-visitas .pv-visit-status.atrasada,
.cv-pilot.cv-planejamento-visitas .pv-visit-status.nao_realizada,
.cv-pilot.cv-planejamento-visitas .pv-visit-status.cancelada {
  background: var(--cv-danger-bg);
  border-color: var(--cv-danger-border);
  color: var(--cv-danger-text);
}

.cv-pilot.cv-planejamento-visitas .pv-route-card,
.cv-pilot.cv-planejamento-visitas .pv-client-card {
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot.cv-planejamento-visitas {
  width: min(1180px, calc(100vw - 32px));
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
}

.cv-pilot.cv-planejamento-visitas .cv-form-card,
.cv-pilot.cv-planejamento-visitas .pv-form,
.cv-pilot.cv-planejamento-visitas .pv-builder,
.cv-pilot.cv-planejamento-visitas .pv-form-grid,
.cv-pilot.cv-planejamento-visitas .pv-client-filter,
.cv-pilot.cv-planejamento-visitas .pv-visit-editor,
.cv-pilot.cv-planejamento-visitas .pv-manual-panel {
  max-width: 100%;
  min-width: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-form label,
.cv-pilot.cv-planejamento-visitas .pv-client-filter label,
.cv-pilot.cv-planejamento-visitas .pv-route-edit-grid label {
  min-width: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-form input,
.cv-pilot.cv-planejamento-visitas .pv-form select,
.cv-pilot.cv-planejamento-visitas .pv-form textarea,
.cv-pilot.cv-planejamento-visitas .pv-client-filter input,
.cv-pilot.cv-planejamento-visitas .pv-client-filter select,
.cv-pilot.cv-planejamento-visitas .pv-route-edit-grid input,
.cv-pilot.cv-planejamento-visitas .pv-route-edit-grid select,
.cv-pilot.cv-planejamento-visitas .pv-route-edit-grid textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-client-results,
.cv-pilot.cv-planejamento-visitas .pv-route-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cv-pilot.cv-planejamento-visitas .pv-route-edit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cv-pilot.cv-planejamento-visitas .pv-route-edit-grid label:first-child {
  grid-column: 1 / -1;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-mini-label {
  font-weight: 400;
}

.cv-pilot.cv-planejamento-visitas .pv-route-grid-readonly {
  margin-top: var(--cv-space-lg);
}

.cv-pilot.cv-planejamento-visitas .pv-planning-danger-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--cv-space-sm);
  flex-wrap: wrap;
  margin-top: var(--cv-space-lg);
}

.cv-pilot.cv-planejamento-visitas .pv-planning-danger-actions .pv-danger-form {
  margin-top: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-visit-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--cv-space-sm);
  flex-wrap: wrap;
  justify-content: flex-end;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-box {
  display: grid;
  gap: var(--cv-space-md);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--cv-space-lg);
  margin-top: var(--cv-space-md);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-column {
  display: grid;
  align-content: start;
  gap: var(--cv-space-md);
  min-width: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-group-title {
  margin: 0;
  color: var(--cv-color-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: var(--cv-space-sm);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(22px, 1fr);
  align-items: start;
  justify-items: center;
  gap: 6px;
  min-width: 0;
  min-height: 66px;
  overflow: visible;
  border: 1px solid var(--cv-color-border);
  border-radius: var(--cv-radius-md);
  background: #fff;
  padding: 8px;
  box-shadow: var(--cv-shadow-sm);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card dt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 24px;
  color: var(--cv-color-muted);
  font-size: 9px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  min-width: 0;
  overflow-wrap: anywhere;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-list dt {
  color: var(--cv-color-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.25;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card dd {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  margin: 0;
  color: var(--cv-color-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  overflow-wrap: anywhere;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-list dd {
  margin: 0;
  color: var(--cv-color-text);
  font-size: 13px;
  min-width: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-positive {
  border-color: var(--cv-success-border);
  background: #F0FDF4;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-positive dd,
.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-positive .pv-commercial-value {
  color: var(--cv-success-text);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-negative {
  border-color: var(--cv-danger-border);
  background: #FEF2F2;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-negative dd,
.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-negative .pv-commercial-value {
  color: var(--cv-danger-text);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-neutral {
  border-color: var(--cv-color-border-strong);
  background: var(--cv-color-bg-alt);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-card.is-neutral dd {
  color: var(--cv-neutral-text);
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-list {
  display: grid;
  gap: 8px;
  margin: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(72px, auto);
  gap: var(--cv-space-sm);
  align-items: start;
  border-bottom: 1px solid var(--cv-color-border);
  padding-bottom: 8px;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-list dd {
  text-align: right;
  white-space: nowrap;
}

.cv-pilot.cv-planejamento-visitas .pv-commercial-list div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.cv-pilot.cv-planejamento-visitas .pv-section-head h2,
.cv-pilot.cv-planejamento-visitas .pv-builder h2,
.cv-pilot.cv-planejamento-visitas .pv-detail-card h2 {
  color: var(--cv-color-navy);
  font-weight: 600;
}

@media (max-width: 980px) {
  .cv-pilot.crm-visitas-shell .crm-visitas-cards,
  .cv-pilot.crm-visitas-shell .crm-visitas-etiquetas.crm-visitas-etiquetas-duplo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cv-pilot.crm-visitas-shell .crm-visitas-etiqueta-panel {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .cv-pilot.crm-visitas-shell .crm-visitas-pie,
  .cv-pilot.crm-visitas-shell .crm-visitas-pie svg {
    width: 104px;
    height: 104px;
    min-height: 104px;
    max-width: 104px;
  }

  .cv-pilot .cv-page-toolbar,
  .cv-pilot .page-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .cv-pilot .cv-page-toolbar > .cv-btn,
  .cv-pilot .cv-page-toolbar > div:last-child,
  .cv-pilot .page-toolbar > .cv-btn,
  .cv-pilot .page-toolbar > div:last-child {
    align-self: flex-start;
  }

  .cv-pilot .cv-filter-panel-compact .crm-filters-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }

  .cv-pilot .cv-filter-panel-compact .crm-filter-cliente,
  .cv-pilot .cv-filter-panel-compact .crm-filter-id,
  .cv-pilot .cv-filter-panel-compact .crm-filter-cnpj,
  .cv-pilot .cv-filter-panel-compact .crm-filter-cidade,
  .cv-pilot .cv-filter-panel-compact .crm-filter-vendedor,
  .cv-pilot .cv-filter-panel-compact .crm-filter-tipo,
  .cv-pilot .cv-filter-panel-compact .crm-filter-grupo,
  .cv-pilot .cv-filter-panel-compact .crm-filter-estado,
  .cv-pilot .cv-filter-panel-compact .crm-filter-tabela,
  .cv-pilot .cv-filter-panel-compact .crm-filter-data-inicio,
  .cv-pilot .cv-filter-panel-compact .crm-filter-data-fim,
  .cv-pilot .cv-filter-panel-compact .crm-filter-total,
  .cv-pilot .cv-filter-panel-compact .crm-filter-ordenar,
  .cv-pilot .cv-filter-panel-compact .crm-filter-mes,
  .cv-pilot .cv-filter-panel-compact .crm-filter-etiqueta,
  .cv-pilot .cv-filter-panel-compact .crm-filter-classificacao,
  .cv-pilot .cv-filter-panel-compact .crm-filter-colunas {
    grid-column: auto !important;
    grid-row: auto !important;
    justify-self: stretch;
    align-self: end;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .cv-pilot .cv-filter-panel-compact .crm-filters-grid .form-group input,
  .cv-pilot .cv-filter-panel-compact .crm-filters-grid .form-group select,
  .cv-pilot .cv-filter-panel-compact .crm-combo,
  .cv-pilot .cv-filter-panel-compact .crm-column-picker,
  .cv-pilot .cv-filter-panel-compact .crm-column-picker-button {
    width: 100%;
    max-width: 100%;
  }

  .cv-pilot .crm-clientes-table .crm-col-id_erp,
  .cv-pilot .crm-clientes-table .crm-col-cliente,
  .cv-pilot .crm-clientes-table th:nth-child(1),
  .cv-pilot .crm-clientes-table td:nth-child(1),
  .cv-pilot .crm-clientes-table th:nth-child(2),
  .cv-pilot .crm-clientes-table td:nth-child(2) {
    position: static !important;
    left: auto !important;
    z-index: auto !important;
    min-width: 0;
    background: inherit;
    box-shadow: none !important;
  }

  .cv-pilot .crm-clientes-table thead .crm-col-id_erp,
  .cv-pilot .crm-clientes-table thead .crm-col-cliente,
  .cv-pilot .crm-clientes-table thead th:nth-child(1),
  .cv-pilot .crm-clientes-table thead th:nth-child(2) {
    position: sticky !important;
    top: 0;
    z-index: 3 !important;
    background: var(--cv-color-bg-alt);
  }

  .cv-pilot .crm-clientes-table th:last-child,
  .cv-pilot .crm-clientes-table td:last-child {
    position: static;
    right: auto;
    z-index: auto;
    min-width: 0;
    background: inherit;
    box-shadow: none;
    padding-right: inherit;
    padding-left: inherit;
  }
}

@media (max-width: 1180px) {
  .cv-pilot.cv-planejamento-visitas .pv-client-results,
  .cv-pilot.cv-planejamento-visitas .pv-route-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cv-pilot.cv-planejamento-visitas .pv-header-grid.is-week,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .cv-pilot.cv-planejamento-visitas .pv-client-filter .pv-state-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter .pv-city-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter .pv-region-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter .pv-neighborhood-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter .pv-client-name-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter-secondary .pv-order-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter-secondary .pv-label-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter-secondary .pv-classification-field,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter > .btn-primary {
    grid-column: auto !important;
    max-width: none !important;
  }
}

@media (max-width: 820px) {
  .cv-pilot.cv-planejamento-visitas .pv-client-results,
  .cv-pilot.cv-planejamento-visitas .pv-route-grid,
  .cv-pilot.cv-planejamento-visitas .pv-commercial-layout,
  .cv-pilot.cv-planejamento-visitas .pv-commercial-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1080px) {
  .cv-pilot.cv-planejamento-visitas .pv-commercial-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .cv-pilot.cv-planejamento-visitas {
    width: min(100%, calc(100vw - 20px));
  }

  .cv-pilot.cv-planejamento-visitas .pv-header-grid.is-week,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter,
  .cv-pilot.cv-planejamento-visitas .pv-client-filter-secondary,
  .cv-pilot.cv-planejamento-visitas .pv-visit-editor .pv-form-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .cv-pilot.crm-visitas-shell {
    width: min(100%, calc(100vw - 20px));
  }

  .cv-pilot.crm-visitas-shell .crm-visitas-cards,
  .cv-pilot.crm-visitas-shell .crm-visitas-etiquetas.crm-visitas-etiquetas-duplo,
  .cv-pilot.crm-visitas-shell .crm-visitas-etiqueta-panel {
    grid-template-columns: 1fr;
  }

  .cv-pilot.crm-visitas-shell .crm-visitas-pie,
  .cv-pilot.crm-visitas-shell .crm-visitas-pie svg {
    justify-self: center;
  }

  .cv-pilot .cv-page-toolbar,
  .cv-pilot .page-toolbar {
    gap: var(--cv-space-md);
  }

  .cv-pilot .cv-btn,
  .cv-pilot .btn-primary.cv-btn,
  .cv-pilot .btn-secondary.cv-btn,
  .cv-pilot .btn-link.cv-btn,
  .cv-pilot .btn-danger.cv-btn {
    width: 100%;
  }

  .cv-pilot .crm-total {
    align-self: flex-start;
  }

  .cv-pilot .filters-shell-header {
    align-items: stretch;
    flex-direction: column;
  }

  .cv-pilot .cv-filter-header-main {
    align-items: flex-start;
    flex-direction: column;
  }

  .cv-pilot .filters-shell-toggle {
    width: 100%;
  }

  .cv-pilot .cv-form-footer,
  .cv-pilot .usuario-form-actions.cv-form-footer,
  .cv-pilot .crm-filter-actions,
  .cv-pilot .crm-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .cv-pilot .cv-filter-panel-compact .crm-filters-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)) !important;
  }

  .cv-pilot .cv-filter-panel-compact .crm-filter-cliente,
  .cv-pilot .cv-filter-panel-compact .crm-filter-id,
  .cv-pilot .cv-filter-panel-compact .crm-filter-cnpj,
  .cv-pilot .cv-filter-panel-compact .crm-filter-cidade,
  .cv-pilot .cv-filter-panel-compact .crm-filter-vendedor,
  .cv-pilot .cv-filter-panel-compact .crm-filter-tipo,
  .cv-pilot .cv-filter-panel-compact .crm-filter-grupo,
  .cv-pilot .cv-filter-panel-compact .crm-filter-estado,
  .cv-pilot .cv-filter-panel-compact .crm-filter-tabela,
  .cv-pilot .cv-filter-panel-compact .crm-filter-data-inicio,
  .cv-pilot .cv-filter-panel-compact .crm-filter-data-fim,
  .cv-pilot .cv-filter-panel-compact .crm-filter-total,
  .cv-pilot .cv-filter-panel-compact .crm-filter-ordenar,
  .cv-pilot .cv-filter-panel-compact .crm-filter-mes,
  .cv-pilot .cv-filter-panel-compact .crm-filter-etiqueta,
  .cv-pilot .cv-filter-panel-compact .crm-filter-classificacao,
  .cv-pilot .cv-filter-panel-compact .crm-filter-colunas {
    grid-column: auto !important;
    grid-row: auto !important;
    justify-self: stretch;
    align-self: end;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .cv-pilot .cv-filter-panel-compact .crm-filters-grid .form-group input,
  .cv-pilot .cv-filter-panel-compact .crm-filters-grid .form-group select,
  .cv-pilot .cv-filter-panel-compact .crm-combo,
  .cv-pilot .cv-filter-panel-compact .crm-column-picker,
  .cv-pilot .cv-filter-panel-compact .crm-column-picker-button {
    width: 100%;
    max-width: 100%;
  }

  .cv-pilot .crm-filter-colunas {
    justify-self: stretch;
    width: 100%;
  }

  .cv-pilot .crm-column-picker-menu {
    position: static;
    width: 100%;
    max-width: 100%;
    max-height: 240px;
    margin-top: var(--cv-space-sm);
  }

  .cv-pilot.cv-planejamento-visitas .pv-client-results,
  .cv-pilot.cv-planejamento-visitas .pv-route-grid,
  .cv-pilot.cv-planejamento-visitas .pv-commercial-layout,
  .cv-pilot.cv-planejamento-visitas .pv-commercial-card-grid {
    grid-template-columns: 1fr;
  }

  .cv-pilot.cv-planejamento-visitas .pv-commercial-list div {
    grid-template-columns: 1fr;
  }
}

/* Contrato oficial: acoes em tabela sempre visiveis e compactas. */
.cv-pilot .acoes-menu-btn.cv-icon-btn {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  padding: 0 !important;
  overflow: hidden;
  font-size: 0 !important;
  text-indent: 0;
}

.cv-pilot .acoes-menu-btn.cv-icon-btn::before {
  content: "\22EE";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 15px;
  line-height: 1;
  text-indent: 0;
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table th:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table td:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table th:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table td:last-child {
  position: sticky !important;
  right: 0 !important;
  z-index: 5;
  width: 64px !important;
  min-width: 64px !important;
  max-width: 64px !important;
  padding-right: 8px !important;
  padding-left: 8px !important;
  text-align: center !important;
  background: #fff;
  box-shadow: -1px 0 0 var(--cv-color-border);
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .cv-table thead th:last-child,
.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .app-table thead th:last-child {
  z-index: 8;
  background: var(--cv-color-bg-alt);
}

.cv-pilot .table-wrap.cv-table-wrap:has([data-acoes-btn]) .acoes-menu-wrap {
  display: inline-flex;
  justify-content: center;
}

.cv-pilot.cv-admin-avisos .avisos-row-actions .cv-btn {
  width: auto;
  white-space: nowrap;
}
