/**
 * GCT — Querity Fertilizantes · tema visual de alto impacto
 * (Classes wash-* mantidas para compatibilidade com templates.)
 * Tipografia: Plus Jakarta Sans (títulos e corpo legíveis, sem “esticado”.)
 */

:root {
  --wash-font: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  --gct-display: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;

  --bs-primary: #2d9f5f;
  --bs-primary-rgb: 6, 182, 212;
  --bs-link-color: #1a6b42;
  --bs-link-hover-color: #14532d;

  --wash-bg0: #021208;
  --wash-bg1: #0a1a12;
  --wash-bg2: #0f2e1c;
  --wash-surface: rgba(255, 255, 255, 0.97);
  --wash-surface-2: rgba(255, 255, 255, 0.78);
  --wash-ink: #0f172a;
  --wash-ink-muted: #64748b;
  --wash-ink-soft: #94a3b8;

  --wash-primary: #2d9f5f;
  --wash-primary-deep: #1a6b42;
  --wash-primary-hover: #5ed08a;
  --wash-primary-soft: rgba(45, 159, 95, 0.15);
  --wash-accent: #10b981;
  --wash-accent-soft: rgba(16, 185, 129, 0.12);
  --wash-success: #10b981;

  --wash-border: rgba(15, 23, 42, 0.12);
  --wash-border-strong: rgba(71, 85, 105, 0.26);
  --wash-border-field: rgba(100, 116, 139, 0.34);
  --wash-field-bg: rgba(255, 255, 255, 0.98);
  --wash-glow: 0 0 40px rgba(45, 159, 95, 0.12);
  --wash-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --wash-shadow: 0 8px 32px rgba(15, 23, 42, 0.08);
  --wash-shadow-lg: 0 20px 50px rgba(15, 23, 42, 0.12);
  --wash-radius: 18px;
  --wash-radius-sm: 12px;
  --wash-radius-pill: 9999px;
  --wash-transition: 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  scroll-behavior: smooth;
}

body.wash-app {
  font-family: var(--wash-font);
  color: var(--wash-ink);
  font-size: 0.9375rem;
  line-height: 1.55;
  min-height: 100vh;
  letter-spacing: 0;
  position: relative;
  background-color: #020617;
  background-image:
    radial-gradient(ellipse 120% 80% at 50% -40%, rgba(45, 159, 95, 0.35), transparent 50%),
    radial-gradient(ellipse 90% 60% at 100% 0%, rgba(16, 185, 129, 0.2), transparent 45%),
    radial-gradient(ellipse 70% 50% at 0% 100%, rgba(26, 107, 66, 0.18), transparent 45%),
    linear-gradient(165deg, #020617 0%, #0f172a 38%, #0f2e1c 72%, #14532d 100%);
  background-attachment: fixed;
}

body.wash-app::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.03'%3E%3Cpath d='M0 40h80M40 0v80'/%3E%3C/g%3E%3C/svg%3E");
  opacity: 0.9;
}

/* Escurece o conteúdo quando um menu da navbar está aberto */
body.wash-app::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1025;
  background: rgba(15, 23, 42, 0.28);
  opacity: 0;
  transition: opacity 0.18s ease;
}

body.wash-app:has(.navbar-wash .dropdown-menu.show)::after {
  opacity: 1;
}

/* main sem z-index: senão o backdrop do Bootstrap (1050) cobre todo o <main>,
   incluindo o modal, e os campos ficam inacessíveis. Nav/footer acima do fundo
   decorativo (body::before) e do conteúdo rolável. */
body.wash-app > nav {
  position: relative;
  z-index: 1030;
}

body.wash-app > footer {
  position: relative;
  z-index: 1;
}

body.wash-app > main {
  position: relative;
}

/* ——— Navbar ——— */
.navbar-wash {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.92) 0%,
    rgba(248, 250, 252, 0.88) 100%
  ) !important;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06), 0 1px 0 rgba(45, 159, 95, 0.08) inset;
  padding: 0.65rem 0;
}

.navbar-wash .navbar-brand {
  transition: transform var(--wash-transition), filter var(--wash-transition);
  color: var(--wash-ink) !important;
}

.navbar-wash .navbar-brand:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.navbar-wash .navbar-brand:hover .gct-brand-text {
  filter: brightness(1.08);
}

/* Logo Querity — identidade da empresa na interface */
.gct-logo-querity {
  display: block;
  flex-shrink: 0;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: left center;
}

.gct-logo-querity--navbar {
  max-height: 2rem;
  max-width: 8.5rem;
}

.gct-logo-querity--auth {
  max-height: 4.25rem;
  max-width: min(17.5rem, 88vw);
  margin-left: auto;
  margin-right: auto;
}

.gct-logo-querity--modal {
  max-height: 2.35rem;
  max-width: 9.5rem;
  margin-top: 0.1rem;
}

.gct-logo-querity--doc {
  max-height: 2rem;
  max-width: 9rem;
}

.gct-auth-brand {
  margin-bottom: 0.35rem;
}

.gct-auth-system-name {
  font-family: var(--gct-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #fff;
}

.gct-read-modal-brand {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  font-weight: 700;
  color: #64748b !important;
}

.navbar-wash .nav-link {
  color: var(--wash-ink-muted) !important;
  font-weight: 600;
  font-size: 0.84rem;
  padding: 0.5rem 0.9rem !important;
  border-radius: var(--wash-radius-sm);
  transition: color var(--wash-transition), background var(--wash-transition), box-shadow var(--wash-transition);
}

.navbar-wash .nav-link:hover {
  color: var(--wash-ink) !important;
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.1), rgba(139, 92, 246, 0.08));
  box-shadow: 0 0 0 1px rgba(45, 159, 95, 0.15);
}

.navbar-wash .nav-link i {
  opacity: 0.88;
}

.navbar-wash .navbar-toggler {
  border-color: var(--wash-border-strong);
  border-radius: var(--wash-radius-sm);
}

.wash-main {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1rem, 3vw, 2rem) !important;
  padding-right: clamp(1rem, 3vw, 2rem) !important;
  padding-bottom: 3rem !important;
}

/* ——— Page header ——— */
.wash-page-head {
  margin-bottom: 1.85rem;
  padding-bottom: 1.25rem;
  border-bottom: none;
  position: relative;
}

.wash-page-head::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(100%, 12rem);
  height: 4px;
  border-radius: 4px;
  background: linear-gradient(90deg, #2d9f5f, #8b5cf6, transparent);
  opacity: 0.95;
}

.wash-page-head h1,
.wash-page-head .wash-title {
  font-family: var(--gct-display);
  font-size: clamp(1.5rem, 3vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.3;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.wash-page-head .text-secondary,
.wash-page-head .text-muted {
  color: rgba(255, 255, 255, 0.72) !important;
}

/* Hero do dashboard: fundo claro — título escuro */
.gct-dashboard-hero .wash-page-head h1,
.gct-dashboard-hero .wash-page-head .wash-title {
  color: #0f172a;
  text-shadow: none;
}

/* ——— Cards ——— */
.wash-card,
.card.wash-card,
.card {
  background: var(--wash-surface);
  border: 1px solid rgba(203, 213, 225, 0.88) !important;
  border-radius: var(--wash-radius) !important;
  box-shadow: var(--wash-shadow), 0 0 0 1px rgba(71, 85, 105, 0.1) !important;
  transition: box-shadow var(--wash-transition), border-color var(--wash-transition), transform var(--wash-transition);
  overflow: hidden;
}

.wash-card:hover,
.card:hover {
  box-shadow: var(--wash-shadow-lg), var(--wash-glow) !important;
  border-color: rgba(45, 159, 95, 0.18) !important;
  transform: translateY(-2px);
}

.card.overflow-hidden:hover,
.wash-card--raised:hover,
.wash-card-panel:hover {
  transform: none;
}

/* Painel de conteúdo elevado (listas, formulários, portal) */
.wash-card--raised,
.wash-card-panel {
  background: var(--wash-surface);
  border: 1px solid rgba(203, 213, 225, 0.9) !important;
  border-radius: var(--wash-radius) !important;
  box-shadow: var(--wash-shadow-lg), 0 0 0 1px rgba(71, 85, 105, 0.11) !important;
}

.wash-card-panel {
  padding: 1.5rem 1.65rem;
}

/* Formulários estreitos (alterar senha, etc.) */
.gct-form-card-narrow {
  max-width: 480px;
}

.card .card-body {
  padding: 1.4rem 1.55rem;
}

.card-title,
h5.card-title {
  font-family: var(--gct-display);
  font-weight: 700;
  color: var(--wash-ink);
  letter-spacing: -0.03em;
}

/* ——— Stat cards (dashboard) ——— */
.wash-stat-card {
  border: 1px solid rgba(203, 213, 225, 0.88);
  border-radius: var(--wash-radius);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
  box-shadow: var(--wash-shadow);
  padding: 1.4rem 1.45rem;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.1rem;
  transition: transform var(--wash-transition), box-shadow var(--wash-transition), border-color var(--wash-transition);
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
}

.wash-stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(45, 159, 95, 0.12), transparent 70%);
  pointer-events: none;
}

a.wash-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--wash-shadow-lg), 0 0 32px rgba(45, 159, 95, 0.15);
  border-color: rgba(45, 159, 95, 0.25);
  color: inherit;
}

.wash-stat-card .wash-stat-icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.wash-stat-card .wash-stat-icon.c1 {
  background: linear-gradient(145deg, rgba(45, 159, 95, 0.2), rgba(26, 107, 66, 0.12));
  color: #1a6b42;
}

.wash-stat-card .wash-stat-icon.c2 {
  background: linear-gradient(145deg, rgba(16, 185, 129, 0.2), rgba(5, 150, 105, 0.1));
  color: #059669;
}

.wash-stat-card .wash-stat-icon.c3 {
  background: linear-gradient(145deg, rgba(139, 92, 246, 0.22), rgba(45, 159, 95, 0.12));
  color: #10b981;
}

.wash-stat-card .wash-stat-value {
  font-family: var(--gct-display);
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--wash-ink);
  line-height: 1.15;
}

.wash-stat-card .wash-stat-label {
  font-size: 0.8rem;
  color: var(--wash-ink-muted);
  font-weight: 600;
  margin-top: 0.2rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.wash-stat-card .wash-stat-link {
  font-size: 0.8rem;
  font-weight: 700;
  color: #1a6b42;
  margin-top: 0.4rem;
  display: inline-block;
}

.wash-stat-card .wash-stat-link:hover {
  text-decoration: underline;
  color: #2d9f5f;
}
.wash-stat-card--clients {
  justify-content: space-between;
  gap: 0.85rem;
}

.wash-stat-card--clients .wash-stat-main {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  min-width: 0;
  color: inherit;
  position: relative;
  z-index: 1;
}

.wash-stat-card--clients .wash-stat-main:hover {
  color: inherit;
}

.wash-stat-card--clients .wash-stat-main:hover .wash-stat-link {
  text-decoration: underline;
  color: #2d9f5f;
}

.wash-stat-status-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-left: auto;
  padding-left: 0.75rem;
  border-left: 1px solid rgba(148, 163, 184, 0.35);
  position: relative;
  z-index: 1;
  min-width: 3.6rem;
}

.wash-stat-status-item {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  text-decoration: none;
  color: var(--wash-ink);
  border-radius: 999px;
  padding: 0.12rem 0.2rem;
  transition: background-color var(--wash-transition), transform var(--wash-transition);
}

.wash-stat-status-item:hover {
  background: rgba(45, 159, 95, 0.08);
  color: var(--wash-ink);
  transform: translateX(-1px);
}

.wash-stat-status-count {
  font-family: var(--gct-display);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.01em;
  min-width: 1.4rem;
  text-align: right;
}

.wash-stat-status-dot {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 1px 3px rgba(15, 23, 42, 0.18);
}

.wash-stat-status-dot.is-active {
  background: #22c55e;
}

.wash-stat-status-dot.is-validate {
  background: #f59e0b;
}

.wash-stat-status-dot.is-blocked {
  background: #94a3b8;
}
.wash-stat-card--contracts {
  justify-content: space-between;
  gap: 0.85rem;
}

.wash-stat-card--contracts .wash-stat-main {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  min-width: 0;
  color: inherit;
  position: relative;
  z-index: 1;
}

.wash-stat-card--contracts .wash-stat-main:hover {
  color: inherit;
}

.wash-stat-card--contracts .wash-stat-main:hover .wash-stat-link {
  text-decoration: underline;
  color: #2d9f5f;
}

.wash-stat-situacao-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.2rem 0.3rem;
  margin-left: auto;
  padding-left: 0.65rem;
  border-left: 1px solid rgba(148, 163, 184, 0.35);
  position: relative;
  z-index: 1;
  min-width: 4.2rem;
  max-width: 4.8rem;
  align-content: center;
}

.wash-stat-situacao-item {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.28rem;
  text-decoration: none;
  color: var(--wash-ink);
  border-radius: 999px;
  padding: 0.06rem 0.12rem;
  line-height: 1;
  transition: background-color var(--wash-transition), transform var(--wash-transition);
}

.wash-stat-situacao-item:hover {
  background: rgba(45, 159, 95, 0.08);
  color: var(--wash-ink);
  transform: translateX(-1px);
}

.wash-stat-situacao-count {
  font-family: var(--gct-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  min-width: 0.95rem;
  text-align: right;
}

.wash-stat-situacao-swatch {
  width: 0.52rem;
  height: 0.52rem;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 0 0 1.5px rgba(255, 255, 255, 0.92), 0 1px 2px rgba(15, 23, 42, 0.16);
}

@media (max-width: 575.98px) {
  .wash-stat-card--contracts {
    flex-wrap: wrap;
  }

  .wash-stat-situacao-grid {
    width: 100%;
    max-width: none;
    margin-left: 0;
    padding-left: 0;
    padding-top: 0.55rem;
    border-left: 0;
    border-top: 1px solid rgba(148, 163, 184, 0.35);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: end;
  }
}


@media (max-width: 575.98px) {
  .wash-stat-card--clients {
    flex-wrap: wrap;
  }

  .wash-stat-status-list {
    width: 100%;
    margin-left: 0;
    padding-left: 0;
    padding-top: 0.55rem;
    border-left: 0;
    border-top: 1px solid rgba(148, 163, 184, 0.35);
    flex-direction: row;
    justify-content: flex-end;
    gap: 0.75rem;
  }
}


/* ——— Filter bar ——— */
.wash-filter-bar {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(248, 250, 252, 0.92));
  border: 1px solid var(--wash-border-strong);
  border-radius: var(--wash-radius);
  padding: 1.2rem 1.4rem;
  margin-bottom: 1.4rem;
  box-shadow: var(--wash-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(8px);
}

.gct-contratos-filtro .gct-filtro-tipo {
  width: auto;
  min-width: 11.5rem;
  flex: 0 0 auto;
}

.gct-contratos-filtro .gct-filtro-valor-wrap {
  min-width: 12rem;
}

/* Searchable select (filtro ao digitar) */
.gct-searchable-wrap {
  position: relative;
  width: 100%;
}

.gct-searchable-wrap .gct-searchable-native {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
  pointer-events: none;
}

.gct-searchable-list {
  position: absolute;
  z-index: 1080;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  max-height: 16rem;
  overflow: auto;
  margin: 0;
  padding: 0.25rem 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--wash-border-strong, #cbd5e1);
  border-radius: var(--wash-radius-sm, 0.4rem);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
}

.gct-searchable-item {
  padding: 0.4rem 0.75rem;
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1.3;
}

.gct-searchable-item:hover,
.gct-searchable-item.is-active {
  background: rgba(22, 101, 52, 0.08);
}

.gct-searchable-item.is-selected {
  font-weight: 600;
}

.gct-searchable-empty {
  padding: 0.5rem 0.75rem;
  color: #94a3b8;
  font-size: 0.8125rem;
}

.gct-searchable-wrap.is-disabled .gct-searchable-input {
  background-color: var(--wash-field-bg, #f8fafc);
  opacity: 0.7;
}

/* ——— Forms ——— */
.form-control,
.form-select,
textarea.form-control {
  border-radius: var(--wash-radius-sm);
  border: 1px solid var(--wash-border-field);
  background-color: var(--wash-field-bg);
  padding: 0.55rem 0.95rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color var(--wash-transition), box-shadow var(--wash-transition), background-color var(--wash-transition);
}

.form-control-sm,
.form-select-sm {
  border: 1px solid var(--wash-border-field);
  background-color: var(--wash-field-bg);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.035);
}

.form-control:hover:not(:focus):not(:disabled):not([readonly]),
.form-select:hover:not(:focus):not(:disabled) {
  border-color: rgba(71, 85, 105, 0.42);
}

.form-control:focus,
.form-select:focus {
  border-color: #2d9f5f;
  background-color: #fff;
  box-shadow: 0 0 0 3px rgba(45, 159, 95, 0.2), 0 1px 2px rgba(15, 23, 42, 0.05);
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
  border-color: var(--wash-border-strong);
  background-color: rgba(248, 250, 252, 0.92);
}

.form-check-input {
  border: 1px solid var(--wash-border-field);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.form-check-input:focus {
  border-color: #2d9f5f;
  box-shadow: 0 0 0 3px rgba(45, 159, 95, 0.18);
}

.form-label {
  font-weight: 500;
  font-size: 0.875rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--wash-ink);
  margin-bottom: 0.4rem;
}

/* Agrupamento de campos (planilhas CA02–CA05) */
.gct-fieldset {
  border: 1px solid var(--wash-border-field);
  border-radius: var(--wash-radius-sm);
  padding: 1rem 1rem 0.5rem;
  background: rgba(248, 250, 252, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.gct-fieldset-legend {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--wash-ink-muted);
  padding: 0 0.35rem;
  float: none;
  width: auto;
}

/* Obrigatório — asterisco vermelho (padrão GCT) */
.gct-req {
  color: #dc2626;
  font-weight: 700;
  margin-left: 0.12em;
}

/* Cadastro CA05: digitação visual em maiúsculas (valor real via JS + backend) */
.gct-upper {
  text-transform: uppercase;
}

/* Seções expansíveis (ex.: cliente após Identificação) */
.gct-fieldset-collapse {
  border: 1px solid var(--wash-border-field);
  border-radius: var(--wash-radius-sm);
  background: rgba(248, 250, 252, 0.72);
  overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.gct-fieldset-collapse-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border: none;
  background: rgba(255, 255, 255, 0.72);
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--wash-ink);
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease;
}

.gct-fieldset-collapse-toggle:hover {
  background: rgba(255, 255, 255, 0.95);
}

.gct-fieldset-collapse-icon {
  flex-shrink: 0;
  font-size: 1rem;
  color: var(--wash-ink-muted);
  transition: transform 0.2s ease;
}

.gct-fieldset-collapse-toggle[aria-expanded="true"] .gct-fieldset-collapse-icon {
  transform: rotate(180deg);
}

.gct-fieldset-collapse-body {
  padding: 0.75rem 1rem 0.85rem;
  border-top: 1px solid var(--wash-border-strong);
}

/* Colunas em slots (bancos no cliente; prazos no produto) */
.gct-bancos-cols .gct-banco-slot,
.gct-prazos-cols .gct-prazo-slot {
  padding: 0.65rem 0.75rem 0.75rem;
  border: 1px solid var(--wash-border);
  border-radius: var(--wash-radius-sm);
  background: rgba(15, 23, 42, 0.015);
}

.gct-banco-slot-title,
.gct-prazo-slot-title {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--wash-ink);
  margin-bottom: 0.55rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--wash-border);
}

.gct-prazo-slot.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.gct-ctr-bank-list .list-group-item {
  cursor: pointer;
}

.gct-ctr-bank-list .form-check-input {
  cursor: pointer;
}

/* Status e comissão — alinhamento dos campos */
.gct-status-comm-row .form-label {
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--wash-ink-muted);
}

.gct-field-check-box {
  display: flex;
  align-items: center;
  min-height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.65rem;
  border: 1px solid var(--wash-border);
  border-radius: var(--wash-radius-sm);
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

.gct-field-check-box .form-check-input {
  margin-top: 0;
}

.gct-field-check-box .form-check-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--wash-ink);
}

.gct-status-comm-row .form-text {
  font-size: 0.75rem;
  line-height: 1.35;
  margin-top: 0.35rem;
  color: var(--wash-ink-soft);
}

.gct-fieldset-invalid {
  box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.35);
  border-radius: var(--wash-radius-sm, 0.375rem);
}


/* ——— Buttons ——— */
.btn-primary {
  background: linear-gradient(135deg, #2d9f5f 0%, #1a6b42 45%, #14532d 100%);
  border: none;
  font-weight: 700;
  border-radius: var(--wash-radius-pill);
  padding: 0.55rem 1.45rem;
  box-shadow: 0 4px 16px rgba(45, 159, 95, 0.35), 0 1px 0 rgba(255, 255, 255, 0.2) inset;
  transition: transform 0.15s ease, box-shadow var(--wash-transition), filter var(--wash-transition);
}

.btn-primary:hover {
  background: linear-gradient(135deg, #5ed08a 0%, #2d9f5f 50%, #1a6b42 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(45, 159, 95, 0.4);
  filter: brightness(1.02);
}

.btn-success {
  border-radius: var(--wash-radius-pill);
  font-weight: 600;
}

.btn-outline-secondary {
  border-radius: var(--wash-radius-pill);
  border-color: var(--wash-border-strong);
  color: var(--wash-ink-muted);
  font-weight: 600;
}

.btn-outline-secondary:hover {
  background: rgba(15, 23, 42, 0.04);
  border-color: var(--wash-ink-soft);
  color: var(--wash-ink);
}

.btn-sm {
  border-radius: var(--wash-radius-sm);
  font-weight: 600;
}

.btn-outline-primary {
  border-color: rgba(45, 159, 95, 0.45);
  color: #1a6b42;
}

.btn-outline-primary:hover {
  background: rgba(45, 159, 95, 0.1);
  border-color: #2d9f5f;
  color: #14532d;
}

/* ——— Tables ——— */
.table-responsive {
  border: 1px solid var(--wash-border-strong);
  border-radius: var(--wash-radius-sm);
  box-shadow: var(--wash-shadow-sm);
}

.table {
  --bs-table-border-color: var(--wash-border-strong);
}

.table thead th {
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: none;
  letter-spacing: 0.01em;
  color: #64748b;
  border-bottom: 2px solid rgba(45, 159, 95, 0.2);
  padding: 0.9rem 1rem;
  background: linear-gradient(180deg, rgba(248, 250, 252, 1), rgba(241, 245, 249, 0.95));
}

.table tbody td {
  padding: 0.85rem 1rem;
  vertical-align: middle;
  border-bottom-color: var(--wash-border-strong);
}

.table-hover tbody tr {
  transition: background var(--wash-transition), transform var(--wash-transition);
}

.table-hover tbody tr:hover {
  background: linear-gradient(90deg, rgba(45, 159, 95, 0.06), rgba(139, 92, 246, 0.04)) !important;
}

.table-light thead th {
  background: linear-gradient(180deg, rgba(248, 250, 252, 1), rgba(241, 245, 249, 0.98));
}

/* ——— Alerts (alto contraste, identidade Querity Fertilizantes) ——— */
.alert {
  border-radius: var(--wash-radius-sm);
  border: 1px solid transparent;
  box-shadow: var(--wash-shadow-sm);
  border-left-width: 4px;
  font-weight: 500;
  line-height: 1.5;
}

.alert-success {
  border-color: rgba(26, 107, 66, 0.35);
  border-left-color: #1a6b42;
  background: #ecfdf5;
  color: #14532d;
}

.alert-danger,
.alert-error {
  border-color: rgba(220, 38, 38, 0.3);
  border-left-color: #dc2626;
  background: #fef2f2;
  color: #991b1b;
}

.alert-info {
  border-color: rgba(45, 159, 95, 0.35);
  border-left-color: #2d9f5f;
  background: #f0fdf4;
  color: #14532d;
}

.alert-warning {
  border-color: rgba(217, 119, 6, 0.35);
  border-left-color: #d97706;
  background: #fffbeb;
  color: #92400e;
}

.alert .btn-close {
  filter: none;
  opacity: 0.55;
}

.alert-success .btn-close,
.alert-info .btn-close {
  filter: brightness(0.4);
}

.alert-warning .btn-close,
.alert-danger .btn-close,
.alert-error .btn-close {
  filter: brightness(0.35);
}

/* ——— Footer ——— */
.footer-wash {
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.95), #020617);
  backdrop-filter: blur(16px);
  border-top: 1px solid rgba(45, 159, 95, 0.15);
  padding: 1.35rem 1.5rem;
  font-size: 0.78rem;
  color: #fff;
  margin-top: auto;
  letter-spacing: 0.02em;
}

.footer-wash::before {
  content: "";
  display: block;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(45, 159, 95, 0.35), transparent);
  margin: -1.35rem -1.5rem 1rem;
}

.gct-footer-legal-block {
  flex: 1 1 14rem;
  min-width: 0;
  max-width: 36rem;
  margin: 0;
  text-align: left;
}

.gct-footer-inner {
  width: min(100%, 54rem);
  margin: 0 auto;
}

.gct-footer-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.15rem 1.65rem;
  flex-wrap: wrap;
}

.gct-footer-inner--help .gct-footer-row {
  justify-content: center;
}

.gct-footer-inner:not(.gct-footer-inner--help) .gct-footer-row {
  justify-content: center;
}

.gct-footer-inner:not(.gct-footer-inner--help) .gct-footer-legal-block {
  text-align: center;
  flex: 0 1 auto;
}

/* Ajuda — pílula com ícone em gradiente ciano Dataryon */
.footer-wash a.gct-footer-help,
.footer-wash a.gct-footer-help:link,
.footer-wash a.gct-footer-help:visited,
.wash-auth-footer a.gct-footer-help,
.wash-auth-footer a.gct-footer-help:link,
.wash-auth-footer a.gct-footer-help:visited {
  text-decoration: none !important;
  color: #ecfdf5 !important;
}

.gct-footer-help {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  flex-shrink: 0;
  margin-bottom: 0;
  padding: 0.4rem 1.05rem 0.4rem 0.45rem;
  border-radius: var(--wash-radius-pill);
  text-decoration: none !important;
  color: #ecfdf5 !important;
  background: linear-gradient(
    135deg,
    rgba(45, 159, 95, 0.24) 0%,
    rgba(26, 107, 66, 0.14) 100%
  );
  border: 1px solid rgba(94, 208, 138, 0.4);
  box-shadow:
    0 4px 22px rgba(45, 159, 95, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transition:
    transform var(--wash-transition),
    border-color var(--wash-transition),
    box-shadow var(--wash-transition),
    background var(--wash-transition);
}

.gct-footer-help:hover,
.gct-footer-help:focus-visible {
  color: #fff !important;
  text-decoration: none !important;
  transform: translateY(-2px);
  border-color: rgba(94, 208, 138, 0.7);
  background: linear-gradient(
    135deg,
    rgba(45, 159, 95, 0.34) 0%,
    rgba(26, 107, 66, 0.22) 100%
  );
  box-shadow:
    0 8px 28px rgba(45, 159, 95, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.gct-footer-help:focus-visible {
  outline: 2px solid rgba(94, 208, 138, 0.75);
  outline-offset: 3px;
}

.gct-footer-help__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 50%;
  font-size: 1.15rem;
  line-height: 1;
  color: #fff;
  background: linear-gradient(145deg, #5ed08a 0%, #2d9f5f 42%, #1a6b42 100%);
  box-shadow:
    0 3px 12px rgba(45, 159, 95, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.gct-footer-help__icon i {
  font-weight: 700;
  -webkit-text-stroke: 0.35px rgba(255, 255, 255, 0.25);
}

.gct-footer-help__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  line-height: 1.25;
}

.gct-footer-help__title {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
}

.gct-footer-help__hint {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(165, 243, 252, 0.92);
  letter-spacing: 0.01em;
}

@media (max-width: 575.98px) {
  .gct-footer-inner--help .gct-footer-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .gct-footer-inner--help .gct-footer-legal-block {
    text-align: center;
  }
}

.gct-footer-has-help.footer-wash,
.gct-footer-has-help.wash-auth-footer {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.footer-wash .gct-footer-legal-primary {
  font-weight: 600;
  font-size: 0.85rem;
  color: #fff;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.footer-wash .gct-footer-brand-link,
.wash-auth-footer .gct-footer-brand-link {
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  transition: color 0.15s ease, border-color 0.15s ease;
}

.footer-wash .gct-footer-brand-link:hover,
.footer-wash .gct-footer-brand-link:focus-visible,
.wash-auth-footer .gct-footer-brand-link:hover,
.wash-auth-footer .gct-footer-brand-link:focus-visible {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.85);
}

.footer-wash .gct-footer-legal-secondary {
  font-size: 0.74rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.65;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.wash-auth-footer .gct-footer-legal-primary {
  font-weight: 600;
  font-size: 0.85rem;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

.wash-auth-footer .gct-footer-legal-secondary {
  font-size: 0.74rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.65;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

/* ——— Utilities ——— */
h1.h4,
.h4 {
  font-family: var(--gct-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--wash-ink);
}

.text-muted {
  color: var(--wash-ink-muted) !important;
}

.badge {
  font-weight: 700;
  border-radius: 8px;
  padding: 0.4em 0.7em;
  letter-spacing: 0.02em;
}

/* Situações de contrato — uma cor por etapa */
.gct-situacao-negociacao {
  background: linear-gradient(135deg, #8b5cf6, #10b981) !important;
  color: #fff !important;
}

.gct-situacao-proposta {
  background: linear-gradient(135deg, #2d9f5f, #1a6b42) !important;
  color: #fff !important;
}

.gct-situacao-deposito {
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
  color: #1e293b !important;
}

.gct-portal-deposito-aguardando {
  background: linear-gradient(135deg, #fef3c7, #fde68a) !important;
  color: #78350f !important;
  border-left: 4px solid #d97706 !important;
}

.gct-situacao-aguardando {
  background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
  color: #1e293b !important;
}

.gct-situacao-vigente {
  background: linear-gradient(135deg, #10b981, #059669) !important;
  color: #fff !important;
}

.gct-situacao-encerrado {
  background: linear-gradient(135deg, #64748b, #475569) !important;
  color: #fff !important;
}

.gct-situacao-rescindo {
  background: linear-gradient(135deg, #f87171, #ef4444) !important;
  color: #fff !important;
}

.gct-situacao-cancelado {
  background: linear-gradient(135deg, #94a3b8, #64748b) !important;
  color: #1e293b !important;
}

.gct-situacao-default {
  background: linear-gradient(135deg, #cbd5e1, #94a3b8) !important;
  color: #1e293b !important;
}

/* Legado Bootstrap — comissões/parcelas que ainda usam bg-* genérico */
.bg-success {
  background: linear-gradient(135deg, #10b981, #059669) !important;
}

.bg-warning.text-dark {
  background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
}

.bg-danger {
  background: linear-gradient(135deg, #f87171, #ef4444) !important;
}

/* ——— Modals ——— */
.modal-content {
  border: 1px solid rgba(203, 213, 225, 0.92);
  border-radius: var(--wash-radius) !important;
  box-shadow: var(--wash-shadow-lg), 0 0 0 1px rgba(71, 85, 105, 0.12), 0 0 60px rgba(45, 159, 95, 0.08);
  overflow: hidden;
}

.modal-header {
  background: linear-gradient(135deg, rgba(248, 250, 252, 1), rgba(241, 245, 249, 0.95));
  border-bottom: 1px solid var(--wash-border-strong);
}

.modal-title {
  font-family: var(--gct-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.modal-backdrop.show {
  backdrop-filter: blur(6px);
}

.gct-blocked-action-modal .modal-content {
  border-top: 3px solid #f59e0b;
  box-shadow: var(--wash-shadow-lg), 0 0 0 1px rgba(245, 158, 11, 0.12), 0 12px 40px rgba(245, 158, 11, 0.1);
}

.gct-blocked-action-modal .modal-body p {
  line-height: 1.55;
  font-size: 0.9375rem;
}

/* ——— Relatórios: modal de leitura (tipografia limpa) ——— */
.gct-btn-read {
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #f1f5f9 !important;
  background: rgba(255, 255, 255, 0.08);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.gct-btn-read:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.5);
}

.gct-report-modal-read {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  box-shadow: var(--wash-shadow-lg) !important;
}

.gct-report-read {
  font-size: 1rem;
  line-height: 1.65;
  color: #0f172a;
}

.gct-read-lead {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #334155;
  margin-bottom: 0;
}

.gct-read-sheet {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: var(--wash-radius-sm);
  overflow: hidden;
  background: #fff;
}

.gct-read-table {
  margin-bottom: 0;
  --bs-table-bg: transparent;
}
.gct-read-table thead th {
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  border-bottom: 2px solid rgba(15, 23, 42, 0.08);
  padding-top: 0.75rem;
  padding-bottom: 0.5rem;
  background: rgba(248, 250, 252, 0.95);
}
.gct-read-table tbody td,
.gct-read-table tbody th {
  padding: 0.65rem 0.75rem;
  vertical-align: middle;
  border-color: rgba(15, 23, 42, 0.06);
}
.gct-read-table tbody tr:last-child td {
  border-bottom: none;
}

.gct-read-index li a {
  color: #14532d;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(14, 116, 144, 0.25);
}
.gct-read-index li a:hover {
  color: #155e75;
  border-bottom-color: rgba(21, 94, 117, 0.45);
}

.nav-select-empresa {
  min-width: 160px;
  max-width: 220px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--wash-ink);
  cursor: pointer;
  border: 1px solid var(--wash-border);
  border-radius: var(--wash-radius-sm);
  background: var(--wash-surface);
  padding: 0.35rem 2rem 0.35rem 0.65rem;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 0.85rem;
}

.nav-select-empresa:focus {
  outline: none;
  border-color: #2d9f5f;
  box-shadow: 0 0 0 3px var(--wash-primary-soft);
}

/* ========== Auth pages ========== */
body.wash-auth {
  font-family: var(--wash-font);
  min-height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  position: relative;
  overflow-x: hidden;
  background-color: #020617;
  background-image:
    radial-gradient(ellipse 100% 70% at 50% -20%, rgba(45, 159, 95, 0.45), transparent 55%),
    radial-gradient(ellipse 80% 60% at 110% 50%, rgba(139, 92, 246, 0.35), transparent 50%),
    radial-gradient(ellipse 60% 50% at -10% 80%, rgba(26, 107, 66, 0.3), transparent 50%),
    linear-gradient(165deg, #020617 0%, #0f172a 40%, #0f2e1c 100%);
  color: var(--wash-ink);
}

body.wash-auth::before {
  content: "";
  position: fixed;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='1' fill='%23ffffff' fill-opacity='0.06'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 0;
}

body.wash-auth > * {
  position: relative;
  z-index: 1;
}

.wash-auth-card {
  width: 100%;
  max-width: 440px;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.92) 100%);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border-radius: 24px;
  border: 1px solid rgba(203, 213, 225, 0.92);
  box-shadow:
    0 32px 64px rgba(15, 23, 42, 0.2),
    0 0 0 1px rgba(71, 85, 105, 0.1),
    0 -1px 0 rgba(45, 159, 95, 0.15) inset;
  padding: 2.5rem 2.25rem;
  animation: gct-fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes gct-fade-up {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.wash-auth-card .wash-auth-logo {
  font-family: var(--gct-display);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-align: center;
  margin-bottom: 0.5rem;
  color: #14532d;
}

.wash-auth-card .wash-auth-logo span {
  line-height: 1;
}

.wash-auth-card .wash-auth-sub {
  font-size: 0.92rem;
  color: var(--wash-ink-muted);
  line-height: 1.5;
  margin-bottom: 1.85rem;
  font-weight: 500;
}

.wash-auth-card .form-control,
.wash-auth-card .form-select {
  padding: 0.7rem 1.05rem;
  border-radius: 14px;
  border: 1px solid var(--wash-border-field);
  background-color: var(--wash-field-bg);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.wash-auth-card .form-label {
  font-weight: 700;
  color: var(--wash-ink);
  text-transform: none;
  letter-spacing: 0;
}

.wash-auth-card .btn-wash-submit {
  width: 100%;
  padding: 0.85rem 1.25rem;
  font-weight: 800;
  font-size: 1rem;
  border-radius: var(--wash-radius-pill);
  border: none;
  background: linear-gradient(135deg, #2d9f5f 0%, #1a6b42 50%, #14532d 100%);
  color: #fff;
  box-shadow: 0 8px 28px rgba(45, 159, 95, 0.45);
  margin-top: 0.5rem;
  transition: transform 0.15s ease, box-shadow var(--wash-transition);
  letter-spacing: 0.02em;
}

.wash-auth-card .btn-wash-submit:hover {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(45, 159, 95, 0.55);
}

.wash-auth-card .btn-wash-outline {
  display: block;
  width: 100%;
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  line-height: 1.4;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: center;
  border-radius: var(--wash-radius-pill);
  border: 2px solid #2d9f5f;
  background: transparent;
  color: #1a6b42;
  text-decoration: none;
  transition: background var(--wash-transition), color var(--wash-transition);
}

.wash-auth-card .btn-wash-outline:hover {
  background: rgba(45, 159, 95, 0.12);
  color: #14532d;
}

.wash-auth-footer {
  margin-top: 2.75rem;
  text-align: center;
  font-size: 0.74rem;
  color: #fff;
  max-width: 440px;
  line-height: 1.6;
}

.wash-auth-footer p {
  margin: 0.35rem 0;
}

.wash-link-muted {
  font-size: 0.9rem;
  color: #5ed08a;
  font-weight: 700;
  text-decoration: none;
  transition: color var(--wash-transition);
}

.wash-link-muted:hover {
  color: #bbf7d0;
  text-decoration: underline;
}

/* Chart card */
.wash-chart-card {
  border: 1px solid rgba(203, 213, 225, 0.88) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.95)) !important;
  position: relative;
  overflow: visible;
}

.gct-chart-canvas-wrap {
  overflow: visible;
}

.wash-chart-card::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: var(--wash-radius) var(--wash-radius) 0 0;
  background: linear-gradient(90deg, #2d9f5f, #8b5cf6, #2d9f5f);
  opacity: 0.65;
  pointer-events: none;
}

.wash-chart-card .card-body {
  padding: 1.55rem 1.6rem;
}

.wash-chart-card .card-title {
  font-family: var(--gct-display);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.gct-dash-venc-card::after {
  background: linear-gradient(90deg, #8b5cf6, #06b6d4, #8b5cf6);
  opacity: 0.75;
}

.gct-period-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.22rem;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(241, 245, 249, 0.95));
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.gct-period-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 0.42rem 0.9rem;
  border-radius: 999px;
  line-height: 1.2;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.gct-period-btn:hover {
  color: #0f172a;
  background: rgba(255, 255, 255, 0.7);
}

.gct-period-btn.is-active {
  color: #fff;
  background: linear-gradient(135deg, #8b5cf6, #06b6d4);
  box-shadow: 0 6px 14px rgba(139, 92, 246, 0.28);
}

.gct-period-btn:focus-visible {
  outline: 2px solid rgba(139, 92, 246, 0.55);
  outline-offset: 2px;
}

.gct-dash-venc-modal .modal-content {
  border: 1px solid rgba(139, 92, 246, 0.22);
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.18);
}

.gct-dash-venc-modal .modal-header {
  background: linear-gradient(180deg, rgba(139, 92, 246, 0.08), transparent);
}

.gct-dash-venc-modal .table thead th {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

@media (max-width: 991.98px) {
  .navbar-wash .navbar-collapse {
    padding-top: 0.85rem;
    border-top: 1px solid var(--wash-border);
    margin-top: 0.5rem;
  }
}

/* Agendamento público — compatibilidade Lava_jato */
.wash-auth-card--agendar {
  max-width: 460px;
}

.agendar-bloco-datahora {
  border-radius: 14px;
  border: 1px solid var(--wash-border);
  background: rgba(45, 159, 95, 0.06);
  padding: 1rem 1rem 0.35rem;
}

.agendar-datahora-row > [class*="col-"] {
  min-width: 0;
}

.agendar-input-datahora {
  width: 100%;
}

@media (max-width: 767.98px) {
  .wash-auth-card--agendar {
    padding: 1.65rem 1.25rem;
    max-width: 100%;
  }
  .agendar-datahora-titulo {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--wash-ink-muted);
    margin-bottom: 0.5rem !important;
  }
  .agendar-bloco-datahora {
    padding: 0.85rem 0.75rem 0.65rem;
    background: rgba(45, 159, 95, 0.08);
    border-color: rgba(45, 159, 95, 0.18);
  }
  .agendar-datahora-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--wash-ink-muted);
    margin-bottom: 0.3rem !important;
    display: block;
  }
  .agendar-input-datahora {
    min-height: 3rem;
    padding: 0.55rem 0.5rem;
    font-size: 16px;
    line-height: 1.35;
  }
}

@media (min-width: 768px) {
  .agendar-datahora-titulo {
    display: none;
  }
  .agendar-bloco-datahora {
    background: transparent;
    border: none;
    padding: 0;
  }
  .agendar-datahora-label {
    font-size: inherit;
    text-transform: none;
    letter-spacing: normal;
    color: inherit;
    margin-bottom: 0.375rem !important;
  }
  .agendar-input-datahora {
    min-height: unset;
    font-size: inherit;
    padding: 0.375rem 0.75rem;
  }
}

@media (max-width: 767.98px) {
  .agenda-mob-datahora-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--wash-ink-muted, #6c757d);
    margin-bottom: 0.3rem !important;
  }
  .agenda-input-datahora {
    min-height: 3rem;
    font-size: 16px;
    padding: 0.55rem 0.5rem;
  }
  .agenda-col-datahora {
    min-width: 0;
  }
}

/* Seleção de texto — detalhe premium */
::selection {
  background: rgba(45, 159, 95, 0.25);
  color: inherit;
}

/* ——— Marca GCT na navbar ——— */
.gct-brand-text {
  font-family: var(--gct-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  font-size: 1.35rem;
  color: #14532d;
}

.gct-brand-badge {
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding: 0.28rem 0.55rem;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.14), rgba(139, 92, 246, 0.1));
  color: #14532d;
  border: 1px solid rgba(45, 159, 95, 0.28);
  line-height: 1;
}

@media (max-width: 575.98px) {
  .gct-brand-badge {
    display: none;
  }
}

.gct-user-pill {
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.05), rgba(45, 159, 95, 0.06)) !important;
  border-radius: 999px !important;
  border: 1px solid rgba(45, 159, 95, 0.12);
  font-weight: 600 !important;
  color: var(--wash-ink) !important;
}

/* Login — eyebrow e cartão */
.gct-login-card {
  max-width: 460px;
}

.gct-login-card .wash-auth-logo {
  color: #0f172a;
}

.gct-login-card .wash-auth-logo span {
  color: #14532d;
}

.gct-login-card .btn-outline-primary {
  border-radius: var(--wash-radius-pill);
  border-width: 2px;
  font-weight: 700;
  padding: 0.65rem 1.25rem;
  color: #1a6b42;
  border-color: rgba(45, 159, 95, 0.55);
}

.gct-login-card .btn-outline-primary:hover {
  background: rgba(45, 159, 95, 0.1);
  border-color: #2d9f5f;
  color: #14532d;
}

.gct-login-eyebrow {
  font-family: var(--gct-display);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1a6b42;
}

/* Portal — marca na navbar */
.gct-portal-brand .gct-brand-text {
  color: #2d9f5f;
}

/* KPI compacto (portal e painéis) */
.gct-kpi-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
  border: 1px solid rgba(203, 213, 225, 0.88);
  border-radius: var(--wash-radius-sm);
  box-shadow: var(--wash-shadow-sm);
  padding: 1.25rem 1.35rem;
  height: 100%;
}

.gct-kpi-card .gct-kpi-label {
  font-size: 0.8rem;
  color: var(--wash-ink-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gct-kpi-card .gct-kpi-value {
  font-family: var(--gct-display);
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--wash-ink);
  line-height: 1.15;
  margin-top: 0.15rem;
}

/* Botão de ação principal em destaque (portal) */
.gct-btn-action-pill {
  border-radius: var(--wash-radius-pill) !important;
  padding: 1rem 1.5rem !important;
  font-weight: 700 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 100%;
  width: 100%;
}

.gct-btn-action-pill i {
  font-size: 1.15rem;
}

/* Título de secção dentro de cartões */
.gct-section-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--wash-ink-muted);
  margin-bottom: 1rem;
}

/* Lista de relatórios */
.gct-report-list {
  border-radius: var(--wash-radius) !important;
  overflow: hidden;
  border: 1px solid var(--wash-border-strong) !important;
  box-shadow: var(--wash-shadow) !important;
  background: var(--wash-surface);
}

.gct-report-list .list-group-item {
  border-color: var(--wash-border-strong);
  padding: 1rem 1.25rem;
  font-weight: 600;
  color: var(--wash-ink);
  transition: background var(--wash-transition);
}

.gct-report-list .list-group-item:hover {
  background: linear-gradient(90deg, rgba(45, 159, 95, 0.06), rgba(139, 92, 246, 0.04));
  color: var(--wash-ink);
}

.gct-report-list .list-group-item i.bi-chevron-right {
  opacity: 0.45;
}

.gct-report-index-card {
  border-radius: var(--wash-radius) !important;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.92) 100%);
  border: 1px solid var(--wash-border-strong) !important;
}

.gct-report-index-card .gct-report-screen-head {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

.gct-report-list-item--featured {
  background: linear-gradient(90deg, rgba(45, 159, 95, 0.08), rgba(45, 159, 95, 0.02));
  border-left: 3px solid var(--wash-primary, #2d9f5f);
}

.gct-report-list-item--featured:hover {
  background: linear-gradient(90deg, rgba(45, 159, 95, 0.12), rgba(45, 159, 95, 0.04)) !important;
}

.gct-report-list-item--featured i.bi-cash-stack {
  color: var(--wash-primary, #2d9f5f);
}

.gct-report-list-badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(45, 159, 95, 0.12) !important;
  color: #1a7a47 !important;
}

.gct-section-title--modal {
  margin-top: 1.25rem;
  margin-bottom: 0.75rem;
}

.gct-report-kpi-grid .wash-stat-card {
  border: 1px solid rgba(203, 213, 225, 0.75);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.gct-read-kpi-sheet {
  padding: 0.25rem 0;
}

.gct-read-kpi {
  background: rgba(248, 250, 252, 0.9);
  border: 1px solid rgba(203, 213, 225, 0.65);
  border-radius: 0.5rem;
  padding: 0.65rem 0.75rem;
  height: 100%;
}

.gct-read-kpi-label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  margin-bottom: 0.25rem;
}

.gct-read-kpi-value {
  font-size: 1rem;
  font-weight: 700;
  color: var(--wash-ink, #0f172a);
  line-height: 1.25;
}

.gct-report-page .gct-section-title:first-of-type {
  margin-top: 0.15rem;
}


/* Modais de formulário e colunas de tabela */
.gct-modal-form .modal-body {
  max-height: calc(100vh - 200px);
  overflow-y: auto;
}

.gct-table-id {
  width: 3.5rem;
}

/* Dashboard — faixa de boas-vindas */
.gct-dashboard-hero {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.88) 100%);
  border: 1px solid rgba(203, 213, 225, 0.9);
  border-radius: var(--wash-radius);
  padding: 1.35rem 1.6rem 1.5rem;
  margin-bottom: 1.75rem;
  box-shadow: var(--wash-shadow), 0 0 40px rgba(45, 159, 95, 0.06);
  backdrop-filter: blur(12px);
}

.gct-dashboard-hero .wash-page-head {
  margin-bottom: 0;
  padding-bottom: 0;
}

.gct-dashboard-hero .wash-page-head::after {
  display: none;
}

/* ——— Seletor de idioma — estilo OwMae (flagcdn + flutter) ——— */
@keyframes gct-flag-flutter {
  0%, 100% { transform: rotate(-6deg) skewX(-3deg) scale(1); }
  25% { transform: rotate(5deg) skewX(4deg) scale(1.02); }
  50% { transform: rotate(-3deg) skewX(-2deg) scale(1); }
  75% { transform: rotate(7deg) skewX(3deg) scale(1.02); }
}

.gct-lang-flags {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.gct-lang-flags--inline {
  justify-content: center;
  margin-bottom: 1rem;
}

.gct-lang-flags--stacked {
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  width: 100%;
  max-width: min(15.5rem, 92vw);
  margin: 0 auto 1rem;
}

.gct-lang-flag-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.2rem;
  border: 2px solid transparent;
  border-radius: 10px;
  background: transparent;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.gct-lang-flags--stacked .gct-lang-flag-btn {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--wash-shadow-sm);
}

.gct-lang-flag-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
}

.gct-lang-flags--stacked .gct-lang-flag-btn:hover {
  background: #fff;
  border-color: rgba(45, 159, 95, 0.28);
}

.gct-lang-flag-btn--active {
  border-color: rgba(45, 159, 95, 0.85);
  box-shadow: 0 0 0 1px rgba(45, 159, 95, 0.35);
}

.gct-lang-flags--stacked .gct-lang-flag-btn--active {
  border-color: rgba(45, 159, 95, 0.45);
  background: #fff;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06), 0 0 0 2px rgba(45, 159, 95, 0.2);
}

.gct-lang-flag-fi {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 1.35rem;
  transform-origin: 12% 88%;
  animation: gct-flag-flutter 2.4s ease-in-out infinite;
}

.gct-lang-flag-fi--delay-1 {
  animation-delay: 0.15s;
}

.gct-lang-flag-fi--delay-2 {
  animation-delay: 0.3s;
}

.gct-lang-flag-img {
  display: block;
  width: auto;
  height: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  pointer-events: none;
}

.gct-lang-flag-emoji {
  display: none;
  font-size: 1.1rem;
  line-height: 1;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
}

.gct-lang-flag-fi--fallback .gct-lang-flag-img {
  display: none;
}

.gct-lang-flag-fi--fallback .gct-lang-flag-emoji {
  display: block;
}

.gct-lang-flag-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.06rem;
  min-width: 0;
  flex: 1 1 auto;
}

.gct-lang-flag-btn:has(.gct-lang-flag-fi:not(.gct-lang-flag-fi--fallback)) .gct-lang-flag-code {
  display: none;
}

.gct-lang-flag-code {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1.1;
  color: var(--wash-ink-muted);
}

.gct-lang-flag-lbl {
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--wash-ink);
  line-height: 1.22;
}

.navbar .gct-lang-flags--inline {
  margin-bottom: 0;
  gap: 0.3rem;
}

.navbar .gct-lang-flag-fi {
  width: 1.75rem;
  height: 1.1rem;
}

.navbar .gct-lang-flag-btn {
  padding: 0.1rem;
}

@media (prefers-reduced-motion: reduce) {
  .gct-lang-flag-fi {
    animation: none;
  }
}

/* ——— Impressão: relatório em modal de leitura ——— */
@media print {
  body.wash-app > nav.navbar,
  body.wash-app > footer {
    display: none !important;
  }
  .wash-main > *:not(.modal) {
    display: none !important;
  }
  .modal-backdrop {
    display: none !important;
  }
  .modal.gct-report-read-modal {
    position: static !important;
    display: block !important;
    overflow: visible !important;
    height: auto !important;
  }
  .modal.gct-report-read-modal .modal-dialog {
    margin: 0 !important;
    max-width: 100% !important;
  }
  .modal.gct-report-read-modal .modal-content {
    border: none !important;
    box-shadow: none !important;
  }
  .modal.gct-report-read-modal .modal-header .btn-close,
  .modal.gct-report-read-modal .modal-footer {
    display: none !important;
  }
  body.wash-app {
    background: #fff !important;
  }
}

/* Tabelas de dados — listagens e colaboradores */
.gct-data-card,
.gct-users-card {
  border: 1px solid rgba(203, 213, 225, 0.85);
  box-shadow: var(--wash-shadow);
  border-radius: var(--wash-radius-sm);
  overflow: hidden;
  background: #fff;
}

.gct-data-table,
.gct-users-table,
.card.overflow-hidden .table-responsive > .table:not(.gct-read-table) {
  font-size: 0.8125rem;
  line-height: 1.35;
  margin-bottom: 0;
}

.gct-data-table thead th,
.gct-users-table thead th,
.card.overflow-hidden .table-responsive > .table thead th {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  padding: 0.55rem 0.75rem;
  border-bottom-width: 1px;
  white-space: nowrap;
  background: rgba(248, 250, 252, 0.95);
}

.gct-data-table tbody td,
.gct-users-table tbody td,
.card.overflow-hidden .table-responsive > .table tbody td {
  padding: 0.5rem 0.75rem;
  vertical-align: middle;
}

.gct-data-table tbody tr:hover,
.gct-users-table tbody tr:hover,
.card.overflow-hidden .table-responsive > .table tbody tr:hover {
  background: var(--wash-primary-soft);
}

.gct-users-id {
  color: #94a3b8;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
}

.gct-users-name-primary {
  font-weight: 600;
  font-size: 0.8125rem;
  color: #0f172a;
  line-height: 1.3;
}

.gct-users-name-secondary {
  margin-top: 0.15rem;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #64748b;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

.gct-users-muted {
  color: #64748b;
  font-size: 0.75rem;
}

.gct-users-email {
  font-size: 0.75rem;
  color: #334155;
  word-break: break-all;
}

.gct-users-role {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--wash-primary);
  background: var(--wash-primary-soft);
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  white-space: nowrap;
}

.gct-data-table .badge {
  font-size: 0.625rem;
  font-weight: 600;
  padding: 0.25em 0.5em;
}

.gct-users-actions .btn {
  font-size: 0.6875rem;
  padding: 0.2rem 0.55rem;
}

.gct-users-actions .btn + .btn,
.gct-users-actions form {
  margin-left: 0.25rem;
}

.gct-users-action-muted {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.6875rem;
  color: #94a3b8;
  cursor: help;
}

/* Tabelas de dados — listagens, relatórios e impressão */
.gct-data-card,
.gct-users-card {
  border: 1px solid rgba(203, 213, 225, 0.85);
  box-shadow: var(--wash-shadow);
  border-radius: var(--wash-radius-sm);
  overflow: hidden;
  background: #fff;
}

.gct-data-card.wash-chart-card,
.table-responsive.gct-data-card.wash-chart-card {
  margin-bottom: 0;
}

.gct-data-table,
.gct-users-table,
.gct-report-table,
.card.overflow-hidden .table-responsive > .table:not(.gct-read-table),
.gct-data-card > .table:not(.gct-read-table) {
  font-size: 0.8125rem;
  line-height: 1.35;
  margin-bottom: 0;
}

.gct-data-table thead th,
.gct-users-table thead th,
.gct-report-table thead th,
.card.overflow-hidden .table-responsive > .table thead th {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  padding: 0.55rem 0.75rem;
  border-bottom-width: 1px;
  white-space: nowrap;
  background: rgba(248, 250, 252, 0.95);
}

.gct-data-table tbody td,
.gct-users-table tbody td,
.gct-report-table tbody td,
.card.overflow-hidden .table-responsive > .table tbody td {
  padding: 0.5rem 0.75rem;
  vertical-align: middle;
}

.gct-data-table tbody tr:hover,
.gct-users-table tbody tr:hover,
.gct-report-table tbody tr:hover,
.card.overflow-hidden .table-responsive > .table tbody tr:hover {
  background: rgba(45, 159, 95, 0.04);
}

.gct-data-table tfoot td,
.gct-data-table tfoot th,
.gct-report-table tfoot td,
.gct-report-table tfoot th {
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  background: rgba(248, 250, 252, 0.95);
  border-top: 1px solid rgba(203, 213, 225, 0.6);
}

.gct-cell-id,
.gct-users-id {
  color: #94a3b8;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  width: 3.5rem;
}

.gct-cell-primary,
.gct-users-name-primary {
  font-weight: 600;
  font-size: 0.8125rem;
  color: #0f172a;
  line-height: 1.3;
}

.gct-cell-secondary,
.gct-users-name-secondary {
  margin-top: 0.15rem;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #64748b;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

.gct-cell-muted,
.gct-users-muted {
  color: #64748b;
  font-size: 0.75rem;
}

.gct-cell-text,
.gct-users-email {
  font-size: 0.75rem;
  color: #334155;
  word-break: break-word;
}

.gct-cell-pill,
.gct-users-role {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--wash-primary, #2d9f5f);
  background: rgba(45, 159, 95, 0.08);
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  white-space: nowrap;
}

.gct-data-table .badge,
.gct-report-table .badge {
  font-size: 0.625rem;
  font-weight: 600;
  padding: 0.25em 0.5em;
}

.gct-cell-actions,
.gct-users-actions {
  white-space: nowrap;
}

.gct-cell-actions .btn,
.gct-users-actions .btn {
  font-size: 0.6875rem;
  padding: 0.2rem 0.55rem;
}

.gct-cell-actions .btn + .btn,
.gct-cell-actions form,
.gct-users-actions .btn + .btn,
.gct-users-actions form {
  margin-left: 0.25rem;
}

.gct-action-icons {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.2rem;
  padding-left: 0;
}

.gct-action-icons .list-inline-item {
  margin: 0;
}

.gct-action-icons .btn {
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.gct-action-icons .btn .bi {
  font-size: 0.9rem;
}

.gct-action-muted,
.gct-users-action-muted {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.6875rem;
  color: #94a3b8;
  cursor: help;
}

/* Impressão de relatórios */
.gct-report-print-page {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 0.6875rem;
  line-height: 1.35;
  color: #0f172a;
  background: #fff;
  padding: 0.85rem 1rem 1.25rem;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.gct-print-main {
  margin-top: 0.35rem;
}

.gct-print-head {
  border-bottom: 2px solid var(--wash-primary, #2d9f5f);
  padding-bottom: 0.55rem;
  margin-bottom: 0.65rem;
}

.gct-print-head-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.gct-print-brand {
  flex-shrink: 0;
}

.gct-print-logo {
  display: block;
  height: 38px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
}

.gct-print-head-text {
  min-width: 0;
  flex: 1;
}

.gct-print-system {
  font-size: 0.5625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #94a3b8;
}

.gct-print-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.25;
}

.gct-print-meta {
  font-size: 0.625rem;
  color: #64748b;
  margin-top: 0.1rem;
}

.gct-print-head .gct-print-meta li {
  font-size: 0.625rem;
  line-height: 1.35;
}

.gct-print-section-title {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #475569;
  margin: 0.75rem 0 0.35rem;
}

.gct-print-foot {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.85rem;
  padding-top: 0.45rem;
  border-top: 1px solid #e2e8f0;
  font-size: 0.5625rem;
  color: #94a3b8;
}

.gct-report-screen-head {
  min-height: 2rem;
}

.gct-report-screen-logo {
  display: block;
  height: 28px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
}

.gct-report-screen-tag {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.gct-read-modal-logo {
  display: block;
  height: 28px;
  width: auto;
  max-width: 110px;
  object-fit: contain;
  flex-shrink: 0;
  margin-top: 0.15rem;
}

.gct-report-table--dense thead th {
  font-size: 0.5625rem;
  padding: 0.35rem 0.45rem;
}

.gct-report-table--dense tbody td,
.gct-report-table--dense tfoot td,
.gct-report-table--dense tfoot th {
  font-size: 0.625rem;
  padding: 0.3rem 0.45rem;
}

.gct-cell-truncate {
  max-width: 9rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gct-data-card--print {
  border: 1px solid #e2e8f0;
  box-shadow: none;
  border-radius: 4px;
}

.gct-report-print-page .gct-data-table,
.gct-report-print-page .gct-report-table,
.gct-report-print-page .gct-read-table {
  font-size: 0.625rem;
}

.gct-report-print-page .gct-data-table thead th,
.gct-report-print-page .gct-report-table thead th,
.gct-report-print-page .gct-read-table thead th {
  font-size: 0.5625rem;
  padding: 0.3rem 0.45rem;
}

.gct-report-print-page .gct-data-table tbody td,
.gct-report-print-page .gct-report-table tbody td,
.gct-report-print-page .gct-read-table tbody td,
.gct-report-print-page .gct-read-table tbody th {
  padding: 0.28rem 0.45rem;
  font-size: 0.625rem;
}

.gct-report-print-page .gct-read-lead,
.gct-report-print-page .gct-read-sheet p.small {
  font-size: 0.625rem;
  margin-bottom: 0.45rem;
}

.gct-report-print-page .gct-data-card,
.gct-report-print-page .wash-chart-card,
.gct-report-print-page .gct-read-sheet {
  border: 1px solid #e2e8f0;
  box-shadow: none;
  border-radius: 4px;
  margin-bottom: 0.55rem;
  page-break-inside: avoid;
}

@media print {
  .gct-report-print-page {
    font-size: 8pt;
    padding: 0;
  }
  .gct-print-logo {
    height: 34px;
    max-width: 140px;
  }
  .gct-print-foot {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
  }
  .gct-report-print-page .gct-data-table tbody tr:hover,
  .gct-report-print-page .gct-report-table tbody tr:hover {
    background: transparent !important;
  }
  .gct-report-print-page .badge {
    border: 1px solid #cbd5e1;
    color: #334155 !important;
    background: #f8fafc !important;
    font-size: 7pt;
    font-weight: 600;
  }
  .gct-cell-truncate {
    max-width: none;
    white-space: normal;
  }
}

/* ——— Navbar dropdowns (Contratos / Relatórios / Financeiro / Configurações) ——— */
.navbar-wash .dropdown-menu.gct-nav-dropdown {
  --bs-dropdown-bg: #ffffff;
  background: #ffffff !important;
  background-color: #ffffff !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  isolation: isolate;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--wash-radius-md);
  box-shadow:
    0 8px 20px rgba(15, 23, 42, 0.08),
    0 24px 56px rgba(15, 23, 42, 0.18),
    0 0 0 1px rgba(255, 255, 255, 0.9) inset;
  padding: 0.45rem;
  min-width: 13rem;
  margin-top: 0.35rem;
  z-index: 1040;
}

.navbar-wash .dropdown-menu.gct-nav-dropdown.show {
  animation: gct-nav-dropdown-in 0.16s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .navbar-wash .dropdown-menu.gct-nav-dropdown.show {
    animation: none;
  }

  body.wash-app::after {
    transition: none;
  }
}

@keyframes gct-nav-dropdown-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.navbar-wash .dropdown-menu.gct-nav-dropdown .dropdown-item {
  border-radius: var(--wash-radius-sm);
  font-weight: 600;
  font-size: 0.84rem;
  padding: 0.45rem 0.75rem;
  color: var(--wash-ink-muted);
  background-color: transparent;
  transition: background var(--wash-transition), color var(--wash-transition);
}

.navbar-wash .dropdown-menu.gct-nav-dropdown .dropdown-item:hover,
.navbar-wash .dropdown-menu.gct-nav-dropdown .dropdown-item:focus {
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.12), rgba(139, 92, 246, 0.08));
  color: var(--wash-ink);
}

.navbar-wash .dropdown-menu.gct-nav-dropdown .dropdown-item.active {
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.18), rgba(139, 92, 246, 0.12));
  color: var(--wash-ink);
  box-shadow: 0 0 0 1px rgba(45, 159, 95, 0.22);
}

.navbar-wash .nav-item.dropdown.show > .nav-link.dropdown-toggle,
.navbar-wash .nav-item.dropdown > .nav-link.dropdown-toggle[aria-expanded="true"] {
  color: var(--wash-ink) !important;
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.14), rgba(139, 92, 246, 0.1));
  box-shadow: 0 0 0 1px rgba(45, 159, 95, 0.22);
}

.navbar-wash .nav-link.active {
  color: var(--wash-ink) !important;
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.12), rgba(139, 92, 246, 0.08));
  box-shadow: 0 0 0 1px rgba(45, 159, 95, 0.18);
}

/* ——— Financeiro — parcelas FI01/FI02 ——— */
.gct-fin-table-card {
  border: none;
  box-shadow: var(--wash-shadow-card);
  border-radius: var(--wash-radius-md);
}

.gct-config-table-card {
  border: none;
  box-shadow: var(--wash-shadow-card);
  border-radius: var(--wash-radius-md);
}

.gct-config-table-card .gct-seg-prazo-group {
  border-bottom: 0;
  padding-bottom: 0.15rem;
  vertical-align: bottom;
}

.gct-config-table-card .gct-seg-prazo-sub {
  border-top: 0;
  padding-top: 0.15rem;
  font-weight: 500;
}

.gct-fin-filter-bar {
  border-radius: var(--wash-radius-md);
}

.gct-fin-totals {
  justify-content: flex-end;
}

.gct-fin-total-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem 1rem 0.55rem 0.85rem;
  border-radius: var(--wash-radius-sm);
  border: 1px solid rgba(203, 213, 225, 0.88);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
  box-shadow: var(--wash-shadow-sm);
  min-width: 11.5rem;
  transition: transform var(--wash-transition), box-shadow var(--wash-transition);
}

.gct-fin-total-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--wash-shadow);
}

.gct-fin-total-card--pending {
  border-left: 3px solid #f59e0b;
}

.gct-fin-total-card--pending .gct-fin-total-icon {
  background: linear-gradient(145deg, rgba(245, 158, 11, 0.22), rgba(217, 119, 6, 0.12));
  color: #d97706;
}

.gct-fin-total-card--paid {
  border-left: 3px solid #10b981;
}

.gct-fin-total-card--paid .gct-fin-total-icon {
  background: linear-gradient(145deg, rgba(16, 185, 129, 0.22), rgba(5, 150, 105, 0.12));
  color: #059669;
}

.gct-fin-total-icon {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.gct-fin-total-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--wash-ink-muted);
  line-height: 1.2;
}

.gct-fin-total-value {
  font-family: var(--gct-display);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--wash-ink);
  line-height: 1.2;
  margin-top: 0.1rem;
}

.gct-fin-total-sub {
  font-size: 0.72rem;
  color: var(--wash-ink-muted);
  margin-top: 0.15rem;
}

.gct-fin-form-card .form-label {
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--wash-ink-muted);
}

.gct-fin-meta-card {
  border-radius: var(--wash-radius-md);
  background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
}

.gct-fin-dl dt {
  color: var(--wash-ink-muted);
  font-weight: 600;
}

.gct-fin-dl dd {
  color: var(--wash-ink);
  margin-bottom: 0.5rem;
}

.letter-spacing-sm {
  letter-spacing: 0.06em;
}

/* Monitor do sistema */
.gct-monitor-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  padding: 0.75rem 1rem;
  border-radius: var(--wash-radius-md, 0.5rem);
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.06), rgba(139, 92, 246, 0.04));
  border: 1px solid rgba(45, 159, 95, 0.12);
  height: 100%;
}

.gct-monitor-stat-value {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--wash-ink);
  line-height: 1.2;
}

.gct-monitor-stat-label {
  font-size: 0.75rem;
  color: var(--wash-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gct-monitor-progress {
  height: 0.65rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
}

.gct-monitor-progress .progress-bar {
  border-radius: 999px;
  transition: width 0.4s ease;
}

.gct-monitor-refresh-pulse {
  animation: gct-monitor-pulse 0.6s ease;
}

@keyframes gct-monitor-pulse {
  0% { opacity: 1; }
  50% { opacity: 0.55; }
  100% { opacity: 1; }
}

.gct-monitor-conexoes-table {
  table-layout: fixed;
  width: 100%;
}

.gct-monitor-conexoes-table th,
.gct-monitor-conexoes-table td {
  vertical-align: middle;
  padding: 0.65rem 0.85rem;
}

.gct-monitor-conexoes-table .gct-monitor-col-pessoa {
  width: 28%;
}

.gct-monitor-conexoes-table .gct-monitor-col-horarios {
  width: 32%;
}

.gct-monitor-conexoes-table .gct-monitor-col-local {
  width: 28%;
}

.gct-monitor-conexoes-table .gct-monitor-col-acao {
  width: 12%;
  white-space: nowrap;
}

.gct-monitor-horarios {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.gct-monitor-horario-linha {
  line-height: 1.35;
}

.gct-monitor-horario-label {
  display: inline-block;
  min-width: 4.5rem;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--wash-muted, #64748b);
}

.gct-monitor-horario-valor {
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px) {
  .gct-monitor-conexoes-table .gct-monitor-col-pessoa {
    width: 34%;
  }
  .gct-monitor-conexoes-table .gct-monitor-col-horarios {
    width: 38%;
  }
  .gct-monitor-conexoes-table .gct-monitor-col-local {
    width: 28%;
  }
  .gct-monitor-horario-label {
    display: block;
    min-width: 0;
    margin-bottom: 0.05rem;
  }
}

.gct-monitor-tabela-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.gct-monitor-tabela-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.55rem;
  background: linear-gradient(135deg, rgba(45, 159, 95, 0.12), rgba(139, 92, 246, 0.08));
  border: 1px solid rgba(45, 159, 95, 0.15);
  color: var(--wash-primary, #1a6b42);
  font-size: 1rem;
}

.gct-monitor-tabela-texto {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.gct-monitor-tabela-label {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--wash-ink);
  line-height: 1.25;
}

.gct-monitor-tabela-codigo {
  font-size: 0.68rem;
  color: var(--wash-muted, #64748b);
  background: transparent;
  padding: 0;
  border: none;
  opacity: 0.85;
}

.gct-monitor-tabela-count {
  display: inline-block;
  min-width: 2.5rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  background: rgba(15, 23, 42, 0.06);
  color: var(--wash-ink);
}

.gct-monitor-municipio {
  font-size: 0.8125rem;
  line-height: 1.35;
  color: var(--wash-ink);
}

/* —— Paginação global (listagens) —— */
.gct-pagination-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding: 0.9rem 1.25rem;
  border-top: 1px solid rgba(45, 159, 95, 0.14);
  background: linear-gradient(
    180deg,
    rgba(45, 159, 95, 0.05) 0%,
    rgba(255, 255, 255, 0.98) 55%
  );
}

.gct-data-card > .gct-pagination-bar,
.card.overflow-hidden > .gct-pagination-bar {
  border-radius: 0 0 var(--wash-radius-sm) var(--wash-radius-sm);
}

.gct-pagination-meta {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.gct-pagination-meta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: var(--wash-radius-pill);
  background: var(--wash-primary-soft);
  color: var(--wash-primary-deep);
  font-size: 0.95rem;
  flex-shrink: 0;
}

.gct-pagination-meta-text {
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--wash-ink-muted);
}

.gct-pagination-meta-count,
.gct-pagination-meta-page strong {
  color: var(--wash-ink);
  font-weight: 600;
}

.gct-pagination-meta-sep {
  margin: 0 0.35rem;
  opacity: 0.45;
}

.gct-pagination-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem 1.25rem;
  margin-left: auto;
}

.gct-pagination-perpage {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.gct-pagination-perpage-label {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--wash-ink-muted);
  white-space: nowrap;
}

.gct-pagination-perpage-group {
  display: inline-flex;
  align-items: stretch;
  padding: 3px;
  border-radius: var(--wash-radius-pill);
  background: rgba(15, 23, 42, 0.05);
  border: 1px solid var(--wash-border);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

.gct-pagination-perpage-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.35rem;
  padding: 0.3rem 0.65rem;
  border-radius: var(--wash-radius-pill);
  font-size: 0.8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--wash-ink-muted);
  text-decoration: none;
  transition:
    background var(--wash-transition),
    color var(--wash-transition),
    box-shadow var(--wash-transition),
    transform 0.15s ease;
}

.gct-pagination-perpage-btn:hover {
  color: var(--wash-primary-deep);
  background: rgba(255, 255, 255, 0.85);
}

.gct-pagination-perpage-btn.is-active {
  color: #fff;
  background: linear-gradient(135deg, var(--wash-primary) 0%, var(--wash-primary-deep) 100%);
  box-shadow: 0 2px 8px rgba(45, 159, 95, 0.35);
}

.gct-pagination-nav-group {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 3px;
  border-radius: var(--wash-radius-pill);
  background: #fff;
  border: 1px solid var(--wash-border);
  box-shadow: var(--wash-shadow-sm);
}

.gct-pagination-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: var(--wash-radius-pill);
  color: var(--wash-primary-deep);
  text-decoration: none;
  font-size: 0.9rem;
  transition:
    background var(--wash-transition),
    color var(--wash-transition),
    transform 0.15s ease,
    box-shadow var(--wash-transition);
}

.gct-pagination-nav-btn:hover:not(.is-disabled) {
  background: var(--wash-primary-soft);
  color: var(--wash-primary-deep);
  transform: translateY(-1px);
}

.gct-pagination-nav-btn.is-disabled {
  color: var(--wash-ink-soft);
  opacity: 0.45;
  cursor: default;
  pointer-events: none;
}

.gct-pagination-nav-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-width: 3.25rem;
  padding: 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--wash-ink);
  user-select: none;
}

.gct-pagination-nav-current {
  color: var(--wash-primary-deep);
  font-size: 0.9rem;
}

.gct-pagination-nav-of {
  color: var(--wash-ink-soft);
  font-weight: 500;
}

.gct-pagination-nav-total {
  color: var(--wash-ink-muted);
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .gct-pagination-bar {
    flex-direction: column;
    align-items: stretch;
    padding: 0.85rem 1rem;
  }

  .gct-pagination-controls {
    flex-direction: column;
    align-items: stretch;
    margin-left: 0;
  }

  .gct-pagination-perpage {
    justify-content: space-between;
  }

  .gct-pagination-nav {
    display: flex;
    justify-content: center;
  }
}

/* —— Dashboard multi-tela: polish visual —— */
.gct-dashboard-hero--compact {
  margin-bottom: 0.85rem;
  padding: 1.15rem 1.35rem 1.05rem;
  border-radius: 1.15rem;
  background:
    radial-gradient(ellipse 90% 120% at 0% 0%, color-mix(in srgb, var(--wash-primary) 18%, transparent), transparent 55%),
    radial-gradient(ellipse 70% 100% at 100% 0%, color-mix(in srgb, #0ea5e9 12%, transparent), transparent 50%),
    linear-gradient(165deg, color-mix(in srgb, var(--wash-primary) 6%, #fff) 0%, #fff 55%, color-mix(in srgb, #f8fafc 80%, #fff) 100%);
  border: 1px solid color-mix(in srgb, var(--wash-primary) 14%, #e2e8f0);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 10px 28px -18px rgba(15, 23, 42, 0.18);
  position: relative;
  overflow: hidden;
}
.gct-dashboard-hero--compact::after {
  content: "";
  position: absolute;
  right: -8%;
  top: -40%;
  width: 42%;
  height: 180%;
  background: radial-gradient(circle, color-mix(in srgb, var(--wash-primary) 10%, transparent), transparent 70%);
  pointer-events: none;
}
.gct-dashboard-hero--compact .wash-page-head { margin-bottom: 0; position: relative; z-index: 1; }
.gct-dashboard-hero--compact .wash-title {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  letter-spacing: -0.03em;
  font-weight: 800;
  background: linear-gradient(120deg, #0f172a 20%, color-mix(in srgb, var(--wash-primary) 75%, #0f172a) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.gct-dash-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.35rem;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--wash-primary) 85%, #0f172a);
  background: color-mix(in srgb, var(--wash-primary) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--wash-primary) 22%, transparent);
}
.gct-dash-hero-sub {
  margin: 0.4rem 0 0;
  font-size: 0.88rem;
  color: #64748b;
  max-width: 42rem;
  line-height: 1.45;
}
.gct-dash-stats-row .wash-stat-card--compact {
  padding: 0.85rem 1rem;
  min-height: 0;
  border-radius: 1rem;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  border: 1px solid #e8eef5;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 8px 22px -16px rgba(15, 23, 42, 0.2);
}
.gct-dash-stats-row .wash-stat-card--compact:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px -18px rgba(15, 23, 42, 0.28);
  border-color: color-mix(in srgb, var(--wash-primary) 28%, #e2e8f0);
}
.gct-dash-stats-row .wash-stat-value {
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
}
.gct-dash-stats-row .wash-stat-label {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: #64748b;
}
.gct-dash-stats-row .wash-stat-icon {
  width: 2.55rem;
  height: 2.55rem;
  font-size: 1.15rem;
  border-radius: 0.85rem;
  box-shadow: 0 6px 14px -8px rgba(15, 23, 42, 0.35);
}
.gct-dash-panel-compact .card-body { padding: 1rem 1.1rem; }
.gct-dash-panel-compact {
  border-radius: 1.1rem !important;
  border: 1px solid #e8eef5 !important;
  box-shadow: 0 12px 28px -20px rgba(15, 23, 42, 0.22) !important;
  overflow: hidden;
  background: #fff;
}
.gct-dash-panel-compact .card-title {
  font-size: 1rem;
  font-weight: 750;
  letter-spacing: -0.02em;
}
.gct-dash-table-scroll {
  max-height: min(38vh, 320px);
  overflow: auto;
  border-radius: 0.65rem;
  border: 1px solid #f1f5f9;
}
.gct-dash-table-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f8fafc;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}
.gct-data-table--compact td,
.gct-data-table--compact th {
  padding: 0.45rem 0.65rem;
  font-size: 0.84rem;
}
.gct-dash-visao-split { align-items: stretch; }

/* Top 15 — faixa premium */
.gct-dash-top-panel {
  background:
    linear-gradient(135deg, color-mix(in srgb, #fef9c3 35%, #fff) 0%, #fff 42%, color-mix(in srgb, var(--wash-primary) 4%, #fff) 100%) !important;
}
.gct-top-clientes-wrap {
  position: relative;
  margin: 0 -0.15rem;
}
.gct-top-clientes-wrap::before,
.gct-top-clientes-wrap::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0.55rem;
  width: 1.75rem;
  z-index: 2;
  pointer-events: none;
}
.gct-top-clientes-wrap::before {
  left: 0;
  background: linear-gradient(90deg, #fff 15%, transparent);
}
.gct-top-clientes-wrap::after {
  right: 0;
  background: linear-gradient(270deg, #fff 15%, transparent);
}
.gct-top-clientes-strip {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding: 0.35rem 0.85rem 0.85rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--wash-primary) 45%, #cbd5e1) transparent;
}
.gct-top-clientes-strip::-webkit-scrollbar { height: 6px; }
.gct-top-clientes-strip::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--wash-primary) 40%, #94a3b8);
  border-radius: 999px;
}
.gct-top-cliente-card {
  flex: 0 0 min(210px, 72vw);
  scroll-snap-align: start;
  display: flex;
  gap: 0.65rem;
  padding: 0.85rem 0.9rem;
  border-radius: 1rem;
  border: 1px solid color-mix(in srgb, #e2e8f0 80%, #fde68a);
  background: linear-gradient(165deg, #fff 0%, #fffbeb 100%);
  color: inherit;
  box-shadow: 0 10px 24px -16px rgba(15, 23, 42, 0.28);
  transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.22s ease, border-color 0.22s ease;
  animation: gct-top-in 0.45s ease both;
  animation-delay: calc(var(--gct-top-i, 0) * 35ms);
}
@keyframes gct-top-in {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.gct-top-cliente-card:hover {
  transform: translateY(-4px) scale(1.015);
  border-color: color-mix(in srgb, #ca8a04 35%, #e2e8f0);
  box-shadow: 0 18px 36px -18px rgba(202, 138, 4, 0.35);
  color: inherit;
}
.gct-top-cliente-pos {
  flex: 0 0 1.85rem;
  height: 1.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.55rem;
  font-size: 0.78rem;
  font-weight: 800;
  color: #92400e;
  background: linear-gradient(145deg, #fde68a, #fbbf24);
  box-shadow: 0 4px 10px -4px rgba(202, 138, 4, 0.55);
}
.gct-top-cliente-card:nth-child(1) .gct-top-cliente-pos {
  color: #78350f;
  background: linear-gradient(145deg, #fef08a, #eab308);
}
.gct-top-cliente-card:nth-child(2) .gct-top-cliente-pos {
  color: #334155;
  background: linear-gradient(145deg, #e2e8f0, #94a3b8);
}
.gct-top-cliente-card:nth-child(3) .gct-top-cliente-pos {
  color: #7c2d12;
  background: linear-gradient(145deg, #fdba74, #ea580c);
}
.gct-top-cliente-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  flex: 1;
}
.gct-top-cliente-name {
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.25;
  color: #0f172a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gct-top-cliente-meta {
  font-size: 0.7rem;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gct-top-cliente-bar {
  display: block;
  height: 5px;
  border-radius: 999px;
  background: #f1f5f9;
  overflow: hidden;
  margin-top: 0.15rem;
}
.gct-top-cliente-bar > span {
  display: block;
  height: 100%;
  width: var(--gct-top-pct, 0%);
  border-radius: inherit;
  background: linear-gradient(90deg, #f59e0b, color-mix(in srgb, var(--wash-primary) 70%, #22c55e));
  box-shadow: 0 0 8px color-mix(in srgb, var(--wash-primary) 35%, transparent);
}
.gct-top-cliente-valor {
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: color-mix(in srgb, var(--wash-primary) 55%, #0f172a);
  font-variant-numeric: tabular-nums;
}

/* Navegação de telas — sticky premium */
.gct-dash-screens-bar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
  margin: 0 0 1rem;
  padding: 0.55rem 0.7rem;
  border-radius: 1rem;
  background: color-mix(in srgb, #fff 88%, transparent);
  border: 1px solid color-mix(in srgb, var(--wash-primary) 12%, #e2e8f0);
  box-shadow: 0 10px 28px -18px rgba(15, 23, 42, 0.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.gct-dash-screens-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  flex: 1;
  min-width: 0;
}
.gct-dash-screen-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.48rem 0.9rem;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 650;
  text-decoration: none;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.gct-dash-screen-tab:hover {
  background: color-mix(in srgb, var(--wash-primary) 8%, #f8fafc);
  color: #0f172a;
  transform: translateY(-1px);
}
.gct-dash-screen-tab.is-active {
  background: linear-gradient(135deg, var(--wash-primary), color-mix(in srgb, var(--wash-primary) 70%, #0ea5e9));
  color: #fff;
  box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--wash-primary) 65%, transparent);
}
.gct-dash-screen-tab.is-active:hover { color: #fff; }
.gct-dash-screen-tab i { font-size: 0.95rem; opacity: 0.9; }
.gct-dash-screens-hint {
  margin: 0;
  font-size: 0.72rem;
  color: #94a3b8;
  white-space: nowrap;
}
.gct-dash-screen-pane[hidden] { display: none !important; }
.gct-dash-screen-pane.is-loading {
  opacity: 0.55;
  pointer-events: none;
  filter: saturate(0.85);
}
.gct-dash-tela { animation: gct-dash-fade 0.28s ease; }

/* Tabs reais (gct-dash-screen-btn na barra sticky) */
.gct-dash-screens-bar.gct-pagination-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
}
.gct-dash-screens-bar .gct-pagination-meta {
  margin: 0;
  opacity: 0.85;
}
.gct-dash-screens-bar .gct-pagination-meta-icon {
  background: color-mix(in srgb, var(--wash-primary) 14%, #fff);
  color: var(--wash-primary);
  border-radius: 0.65rem;
}
.gct-dash-screens-bar .gct-pagination-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
  margin: 0;
}
.gct-dash-screens-bar .gct-dash-screen-switch,
.gct-dash-screens-bar .gct-pagination-perpage {
  margin: 0;
}
.gct-dash-screens-bar .gct-pagination-perpage-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.2rem;
  border-radius: 999px;
  background: color-mix(in srgb, #f1f5f9 80%, #fff);
  border: 1px solid #e8eef5;
}
.gct-dash-screens-bar .gct-dash-screen-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  flex: 0 1 auto;
  min-width: 0;
  padding: 0.48rem 0.95rem;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
  color: #64748b;
  font-size: 0.84rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.gct-dash-screens-bar .gct-dash-screen-btn:hover {
  background: #fff;
  color: #0f172a;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px -8px rgba(15, 23, 42, 0.25);
}
.gct-dash-screens-bar .gct-dash-screen-btn.is-active {
  background: linear-gradient(135deg, var(--wash-primary), color-mix(in srgb, var(--wash-primary) 70%, #0ea5e9));
  color: #fff !important;
  border-color: transparent;
  box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--wash-primary) 65%, transparent);
}
.gct-dash-screens-bar .gct-pagination-nav-group {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.15rem;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #e8eef5;
}
.gct-dash-screens-bar .gct-pagination-nav-btn {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  transition: background 0.15s ease, color 0.15s ease;
}
.gct-dash-screens-bar .gct-pagination-nav-btn:hover:not(.is-disabled) {
  background: color-mix(in srgb, var(--wash-primary) 12%, #fff);
  color: var(--wash-primary);
}
.gct-dash-screens-bar .gct-pagination-nav-current {
  font-weight: 800;
  color: #0f172a;
}
.gct-dash-root.is-loading .gct-dash-stage {
  opacity: 0.55;
  filter: saturate(0.85);
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.gct-dash-nav-busy {
  position: fixed;
  left: 50%;
  bottom: 1.25rem;
  transform: translateX(-50%);
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.88);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  box-shadow: 0 12px 28px -12px rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(8px);
}
.gct-dash-nav-busy[hidden] { display: none !important; }
.gct-dash-nav-busy-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--wash-primary-hover, #5ed08a);
  box-shadow: 0 0 0 0 rgba(94, 208, 138, 0.55);
  animation: gct-dash-pulse 1.1s ease infinite;
}
@keyframes gct-dash-pulse {
  0% { box-shadow: 0 0 0 0 rgba(94, 208, 138, 0.55); }
  70% { box-shadow: 0 0 0 8px rgba(94, 208, 138, 0); }
  100% { box-shadow: 0 0 0 0 rgba(94, 208, 138, 0); }
}


@keyframes gct-dash-fade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

/* Heroes das demais telas */
.gct-dash-charts-hero,
.gct-dash-venc-hero,
.gct-dash-ops-hero {
  margin-bottom: 0.85rem;
  padding: 1rem 1.2rem;
  border-radius: 1.05rem;
  border: 1px solid #e8eef5;
  background:
    radial-gradient(ellipse 80% 100% at 100% 0%, color-mix(in srgb, var(--wash-primary) 10%, transparent), transparent 55%),
    linear-gradient(165deg, #fff, #f8fafc);
  box-shadow: 0 8px 22px -18px rgba(15, 23, 42, 0.18);
}
.gct-dash-charts-hero .wash-title,
.gct-dash-venc-hero .wash-title,
.gct-dash-ops-hero .wash-title {
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}
.gct-dash-charts-row .wash-chart-card,
.gct-dash-venc-card {
  border-radius: 1.05rem !important;
  border: 1px solid #e8eef5 !important;
  box-shadow: 0 12px 28px -20px rgba(15, 23, 42, 0.2) !important;
}
.gct-dash-chart-canvas-wrap--compact {
  position: relative;
  height: min(38vh, 300px);
  min-height: 220px;
}
.gct-dash-chart-canvas-wrap--venc {
  height: min(42vh, 340px);
  min-height: 240px;
}
.gct-dash-chart-canvas-wrap--compact canvas,
.gct-dash-chart-canvas-wrap--venc canvas {
  width: 100% !important;
  height: 100% !important;
}


/* Operação */
.gct-dash-ops-grid { align-items: stretch; }
.gct-dash-ops-card {
  border-radius: 1.05rem !important;
  border: 1px solid #e8eef5 !important;
  box-shadow: 0 12px 28px -20px rgba(15, 23, 42, 0.2) !important;
  height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.gct-dash-ops-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -18px rgba(15, 23, 42, 0.26) !important;
}
.gct-dash-ops-card .card-body { padding: 1rem 1.1rem; }
.gct-dash-ops-card .card-title {
  font-size: 0.95rem;
  font-weight: 750;
}
.gct-ops-alert-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-height: min(36vh, 280px);
  overflow: auto;
}
.gct-ops-alert-item {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.75rem;
  border: 1px solid #f1f5f9;
  background: #fafbfc;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.gct-ops-alert-item:hover {
  background: color-mix(in srgb, var(--wash-primary) 6%, #fff);
  border-color: color-mix(in srgb, var(--wash-primary) 22%, #e2e8f0);
  color: inherit;
}
.gct-ops-alert-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  margin-top: 0.35rem;
  flex-shrink: 0;
  background: #94a3b8;
}
.gct-ops-alert-dot.is-crit { background: #ef4444; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2); }
.gct-ops-alert-dot.is-warn { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2); }
.gct-ops-alert-dot.is-info { background: #0ea5e9; box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.2); }
.gct-ops-funnel {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.gct-ops-funnel-step {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.25rem 0.75rem;
  align-items: center;
  padding: 0.55rem 0.7rem;
  border-radius: 0.75rem;
  background: linear-gradient(90deg, color-mix(in srgb, var(--wash-primary) 8%, #fff), #fff);
  border: 1px solid #eef2f7;
}
.gct-ops-funnel-label { font-size: 0.82rem; font-weight: 650; color: #334155; }
.gct-ops-funnel-value { font-size: 1.05rem; font-weight: 800; color: #0f172a; font-variant-numeric: tabular-nums; }
.gct-ops-radar-wrap {
  position: relative;
  height: min(32vh, 260px);
  min-height: 200px;
}
.gct-ops-rank-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  max-height: min(36vh, 280px);
  overflow: auto;
}
.gct-ops-rank-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.6rem;
  border-radius: 0.7rem;
  border: 1px solid #f1f5f9;
  background: #fff;
}
.gct-ops-rank-pos {
  flex: 0 0 1.6rem;
  height: 1.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.45rem;
  font-size: 0.72rem;
  font-weight: 800;
  background: #f1f5f9;
  color: #475569;
}
.gct-ops-rank-body { min-width: 0; flex: 1; }
.gct-ops-rank-name {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gct-ops-rank-meta { font-size: 0.7rem; color: #94a3b8; }
.gct-ops-rank-valor {
  font-size: 0.82rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--wash-primary) 50%, #0f172a);
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .gct-dash-screens-hint { display: none; }
  .gct-top-clientes-wrap::before,
  .gct-top-clientes-wrap::after { display: none; }
  .gct-dash-table-scroll { max-height: 260px; }
}
@media (prefers-reduced-motion: reduce) {
  .gct-top-cliente-card,
  .gct-dash-tela { animation: none; }
  .gct-dash-stats-row .wash-stat-card--compact,
  .gct-top-cliente-card,
  .gct-dash-ops-card,
  .gct-dash-screen-tab { transition: none; }
}

.gct-dash-panel {
  animation: gct-dash-panel-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.gct-dash-panel--delay-1 { animation-delay: 0.06s; }
.gct-dash-panel--delay-2 { animation-delay: 0.12s; }
.gct-dash-panel--delay-3 { animation-delay: 0.18s; }

@keyframes gct-dash-panel-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.gct-op-alerts .gct-op-alert-card {
  animation: gct-dash-panel-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.gct-op-alerts > :nth-child(1) .gct-op-alert-card { animation-delay: 0.04s; }
.gct-op-alerts > :nth-child(2) .gct-op-alert-card { animation-delay: 0.09s; }
.gct-op-alerts > :nth-child(3) .gct-op-alert-card { animation-delay: 0.14s; }
.gct-op-alerts > :nth-child(4) .gct-op-alert-card { animation-delay: 0.19s; }

.gct-op-alert-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  height: 100%;
  padding: 1.1rem 1.15rem 1.15rem;
  overflow: hidden;
  border-radius: calc(var(--wash-radius-sm) + 2px);
  border: 1px solid rgba(148, 163, 184, 0.28);
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.94) 100%);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.045);
  color: var(--wash-ink);
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    border-color 0.22s ease;
}

.gct-op-alert-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
  background: var(--wash-primary);
  opacity: 0.85;
}

.gct-op-alert-card--kyc::before { background: linear-gradient(180deg, #f59e0b, #fbbf24); }
.gct-op-alert-card--d15::before { background: linear-gradient(180deg, #ef4444, #f87171); }
.gct-op-alert-card--d30::before { background: linear-gradient(180deg, #f97316, #fdba74); }
.gct-op-alert-card--d90::before { background: linear-gradient(180deg, #8b5cf6, #a78bfa); }

.gct-op-alert-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.09);
  border-color: rgba(45, 159, 95, 0.32);
  color: var(--wash-ink);
}

.gct-op-alert-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  margin-bottom: 0.4rem;
  border-radius: 0.7rem;
  font-size: 1.05rem;
}

.gct-op-alert-card--kyc .gct-op-alert-icon {
  background: rgba(245, 158, 11, 0.14);
  color: #b45309;
}
.gct-op-alert-card--d15 .gct-op-alert-icon {
  background: rgba(239, 68, 68, 0.12);
  color: #b91c1c;
}
.gct-op-alert-card--d30 .gct-op-alert-icon {
  background: rgba(249, 115, 22, 0.12);
  color: #c2410c;
}
.gct-op-alert-card--d90 .gct-op-alert-icon {
  background: rgba(139, 92, 246, 0.12);
  color: #6d28d9;
}

.gct-op-alert-value {
  font-family: var(--gct-display);
  font-size: 1.85rem;
  font-weight: 800;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  color: var(--wash-ink);
}

.gct-op-alert-label {
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--wash-ink-muted);
  font-weight: 600;
}

.gct-op-funnel {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.gct-op-funnel-row {
  display: grid;
  grid-template-columns: 7.6rem 1fr auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.7rem 0.8rem;
  border-radius: var(--wash-radius-sm);
  border: 1px solid rgba(148, 163, 184, 0.2);
  background: rgba(248, 250, 252, 0.72);
  color: inherit;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.gct-op-funnel-row:hover {
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(45, 159, 95, 0.28);
  transform: translateX(2px);
  color: inherit;
}

.gct-op-funnel-name {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--wash-ink);
}

.gct-op-funnel-track {
  height: 0.78rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.05);
}

.gct-op-funnel-fill {
  display: block;
  height: 100%;
  width: var(--gct-funnel-pct, 0%);
  border-radius: inherit;
  transition: width 0.95s cubic-bezier(0.22, 1, 0.36, 1);
}

.gct-op-funnel-row--pre .gct-op-funnel-fill {
  background: linear-gradient(90deg, #d97706, #fbbf24);
}
.gct-op-funnel-row--vigente .gct-op-funnel-fill {
  background: linear-gradient(90deg, #047857, #34d399);
}
.gct-op-funnel-row--encerrado .gct-op-funnel-fill {
  background: linear-gradient(90deg, #475569, #94a3b8);
}

.gct-op-funnel-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  min-width: 5.75rem;
  font-size: 0.72rem;
  color: var(--wash-ink-muted);
  line-height: 1.3;
}

.gct-op-funnel-meta strong {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--wash-ink);
  font-variant-numeric: tabular-nums;
}

.gct-op-dias-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.55rem;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  background: rgba(15, 23, 42, 0.06);
  color: var(--wash-ink);
}

.gct-op-radar-row.is-urgent {
  background: rgba(239, 68, 68, 0.035);
}

.gct-op-radar-row.is-urgent .gct-op-dias-badge {
  background: rgba(239, 68, 68, 0.14);
  color: #b91c1c;
}

.gct-op-radar-row.is-warn {
  background: rgba(245, 158, 11, 0.04);
}

.gct-op-radar-row.is-warn .gct-op-dias-badge {
  background: rgba(245, 158, 11, 0.16);
  color: #b45309;
}

.gct-op-rank {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.gct-op-rank-row {
  display: grid;
  grid-template-columns: 1.85rem minmax(7rem, 13rem) 1fr auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border-radius: var(--wash-radius-sm);
  transition: background 0.15s ease;
}

.gct-op-rank-row:hover {
  background: rgba(248, 250, 252, 0.9);
}

.gct-op-rank-pos {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 800;
  background: rgba(148, 163, 184, 0.16);
  color: #475569;
}

.gct-op-rank-row:nth-child(1) .gct-op-rank-pos {
  background: linear-gradient(135deg, #f59e0b, #fbbf24);
  color: #78350f;
  box-shadow: 0 4px 10px rgba(245, 158, 11, 0.28);
}

.gct-op-rank-row:nth-child(2) .gct-op-rank-pos {
  background: linear-gradient(135deg, #94a3b8, #e2e8f0);
  color: #334155;
}

.gct-op-rank-row:nth-child(3) .gct-op-rank-pos {
  background: linear-gradient(135deg, #d97706, #fcd34d);
  color: #7c2d12;
  opacity: 0.92;
}

.gct-op-rank-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--wash-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gct-op-rank-track {
  height: 0.62rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

.gct-op-rank-fill {
  display: block;
  height: 100%;
  width: var(--gct-rank-pct, 0%);
  border-radius: inherit;
  background: linear-gradient(90deg, #0f766e, #2dd4bf);
  transition: width 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.gct-op-rank-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  min-width: 6.75rem;
  font-size: 0.72rem;
  color: var(--wash-ink-muted);
  line-height: 1.3;
}

.gct-op-rank-meta strong {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--wash-ink);
  font-variant-numeric: tabular-nums;
}

.gct-dashboard-hero + .row .wash-stat-card {
  animation: gct-dash-panel-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.gct-dashboard-hero + .row > :nth-child(1) .wash-stat-card { animation-delay: 0.04s; }
.gct-dashboard-hero + .row > :nth-child(2) .wash-stat-card { animation-delay: 0.1s; }
.gct-dashboard-hero + .row > :nth-child(3) .wash-stat-card { animation-delay: 0.16s; }

@media (max-width: 767.98px) {
  .gct-op-funnel-row,
  .gct-op-rank-row {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .gct-op-funnel-meta,
  .gct-op-rank-meta {
    align-items: flex-start;
  }

  .gct-dash-screen-btn {
    min-width: 0;
    flex: 1;
  }

  .gct-dash-screens-bar {
    padding: 0.9rem 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gct-op-alert-card,
  .gct-op-funnel-fill,
  .gct-op-rank-fill,
  .gct-dash-panel,
  .gct-op-alerts .gct-op-alert-card,
  .gct-dashboard-hero + .row .wash-stat-card {
    transition: none;
    animation: none;
  }
}

/* —— Dashboard tela 5: Pagamentos —— */
.gct-dash-pay-hero {
  margin-bottom: 0.35rem;
}

.gct-dash-pay-hero .wash-title {
  margin-bottom: 0.25rem;
}

.gct-dash-pay-period .form-select {
  min-width: 8.5rem;
}

.gct-pay-empty-hint {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.85rem;
  padding: 0.75rem 1rem;
  border-radius: var(--wash-radius, 0.75rem);
  border: 1px solid rgba(14, 165, 233, 0.28);
  background: linear-gradient(135deg, rgba(224, 242, 254, 0.85), rgba(240, 253, 250, 0.7));
  color: #0f172a;
  font-size: 0.92rem;
}

.gct-pay-empty-link {
  font-weight: 600;
  color: var(--wash-primary, #0d9488);
  text-decoration: none;
}

.gct-pay-empty-link:hover {
  text-decoration: underline;
}

.gct-pay-kpi {
  position: relative;
  height: 100%;
  padding: 1.15rem 1.25rem 1.2rem;
  border-radius: var(--wash-radius, 0.75rem);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94));
  border: 1px solid var(--wash-border-strong, #e2e8f0);
  box-shadow: var(--wash-shadow-sm, 0 1px 3px rgba(15, 23, 42, 0.06));
  overflow: hidden;
}

.gct-pay-kpi::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
}

.gct-pay-kpi--total::before {
  background: linear-gradient(180deg, #1a6b42, #2d9f5f);
}

.gct-pay-kpi--fi01::before {
  background: linear-gradient(180deg, #0369a1, #38bdf8);
}

.gct-pay-kpi--fi02::before {
  background: linear-gradient(180deg, #0f766e, #2dd4bf);
}

.gct-pay-kpi-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: #64748b;
  margin-bottom: 0.35rem;
}

.gct-pay-kpi-value {
  display: block;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
  line-height: 1.2;
}

.gct-pay-kpi-hint,
.gct-pay-kpi-meta {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.78rem;
  color: #94a3b8;
}

.gct-pay-kpi-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--wash-primary-deep, #1a6b42);
  text-decoration: none;
}

.gct-pay-kpi-link:hover {
  text-decoration: underline;
}

.gct-pay-deals-value {
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.gct-pay-links li {
  margin-bottom: 0.55rem;
}

.gct-pay-links a {
  font-size: 0.875rem;
  font-weight: 500;
  color: #334155;
  text-decoration: none;
}

.gct-pay-links a:hover {
  color: var(--wash-primary-deep, #1a6b42);
}

.gct-pay-rank-row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(4rem, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.45rem 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.gct-pay-rank-row:last-child {
  border-bottom: 0;
}

.gct-pay-rank-name {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gct-pay-rank-sub {
  display: block;
  font-size: 0.72rem;
  color: #94a3b8;
}

.gct-pay-rank-bar-wrap {
  height: 0.45rem;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.2);
  overflow: hidden;
}

.gct-pay-rank-bar {
  display: block;
  height: 100%;
  width: var(--gct-pay-pct, 0%);
  border-radius: inherit;
  max-width: 100%;
}

.gct-pay-rank-bar--fi01 {
  background: linear-gradient(90deg, #0284c7, #38bdf8);
}

.gct-pay-rank-bar--fi02 {
  background: linear-gradient(90deg, #0d9488, #2dd4bf);
}

.gct-pay-rank-valor {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  white-space: nowrap;
  text-align: right;
}

@media (max-width: 575.98px) {
  .gct-pay-rank-row {
    grid-template-columns: 1fr auto;
  }

  .gct-pay-rank-bar-wrap {
    display: none;
  }
}

/* ——— Reinvestimento (modal) ——— */
.gct-reinv-btn {
  color: #fff !important;
  background: linear-gradient(135deg, #1a7a4c, #2d9f5f) !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(45, 159, 95, 0.28);
  font-weight: 600;
  letter-spacing: 0.01em;
}
.gct-reinv-btn:hover,
.gct-reinv-btn:focus {
  background: linear-gradient(135deg, #166b42, #278a52) !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(45, 159, 95, 0.35);
}

.gct-reinv-modal .modal-content {
  border: none;
  border-top: 3px solid #2d9f5f;
}

.gct-reinv-modal__header {
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.95), rgba(248, 250, 252, 1));
  align-items: flex-start;
}

.gct-reinv-modal__eyebrow {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #2d9f5f;
  margin: 0;
}

.gct-reinv-modal__help {
  font-size: 0.875rem;
  line-height: 1.55;
  color: #475569;
  margin-bottom: 1rem;
}

.gct-reinv-modal__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.gct-reinv-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.gct-reinv-chip--accent {
  background: rgba(45, 159, 95, 0.1);
  color: #166b42;
  border-color: rgba(45, 159, 95, 0.28);
}

.gct-reinv-modal__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.75rem;
}

.gct-reinv-modal__count {
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}

.gct-reinv-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-height: min(48vh, 22rem);
  overflow-y: auto;
  padding: 0.15rem 0.15rem 0.35rem;
}

.gct-reinv-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 0.65rem 0.85rem;
  margin: 0;
  padding: 0.7rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.gct-reinv-row:hover {
  border-color: rgba(45, 159, 95, 0.45);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

.gct-reinv-row.is-selected {
  border-color: #2d9f5f;
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.85), #fff);
  box-shadow: 0 0 0 1px rgba(45, 159, 95, 0.2);
}

.gct-reinv-row__parc {
  font-weight: 600;
  color: #0f172a;
  font-size: 0.9rem;
}

.gct-reinv-row__date {
  font-size: 0.8125rem;
  color: #64748b;
  white-space: nowrap;
}

.gct-reinv-row__val {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #166b42;
  white-space: nowrap;
  min-width: 6.5rem;
  text-align: right;
}

.gct-reinv-modal__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}

.gct-reinv-modal__total {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.gct-reinv-modal__total-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}

.gct-reinv-modal__total-value {
  font-size: 1.2rem;
  font-weight: 700;
  color: #166b42;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.gct-reinv-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

@media (max-width: 575.98px) {
  .gct-reinv-row {
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "check parc"
      "check date"
      "check val";
  }
  .gct-reinv-check { grid-area: check; }
  .gct-reinv-row__parc { grid-area: parc; }
  .gct-reinv-row__date { grid-area: date; }
  .gct-reinv-row__val {
    grid-area: val;
    text-align: left;
    min-width: 0;
  }
  .gct-reinv-modal__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .gct-reinv-modal__actions {
    justify-content: stretch;
  }
  .gct-reinv-modal__actions .btn {
    flex: 1;
  }
}


