/* ============================================================================
   FBF — Sistema visual das superfícies de trabalho
   Painel administrativo FBF (.admin-workspace-body)
   FBF Clubes 360        (.club-portal-body)
   ----------------------------------------------------------------------------
   Carregada por ÚLTIMO, depois de fbf-workspace.css.

   SOBRE ESPECIFICIDADE — ler antes de editar.
   fbf-workspace.css declara quase tudo com `!important` sob o escopo
   `.admin-workspace-body`. Uma regra sem `!important` aqui NÃO tem efeito,
   por mais tarde que venha. Por isso este arquivo usa o MESMO escopo e
   `!important` sempre que precisa sobrescrever aquela folha — com igual
   especificidade e igual peso, vence a que carrega por último, que é esta.
   Remover o `!important` de uma regra abaixo faz ela sumir silenciosamente.

   DIAGNÓSTICO QUE ORIGINOU ESTE ARQUIVO (medido no código):
     22 valores distintos de border-radius (8 a 30px)
     26 tamanhos de fonte, incluindo 8px, 8.5px, 9px, 9.5px
     10+ verdes hardcoded, nenhum vindo de token
     6 componentes de "herói" e 6 de KPI fazendo a mesma coisa

   O painel cresceu por camadas (V60, V61, V70…) e cada módulo inventou a
   própria linguagem. Cada peça é plausível sozinha; nada compartilha
   gramática. Este arquivo não decora: reduz variação.
   ============================================================================ */

/* ============================================================
   A. FUNDAÇÃO
   ============================================================ */

.admin-workspace-body,
.club-portal-body {
  /* Raio: 5 valores, não 22 */
  --ad-r-xs: 10px;
  --ad-r-sm: 14px;
  --ad-r-md: 18px;
  --ad-r-lg: 24px;
  --ad-r-pill: 999px;

  /* Elevação: sombra de contato + ambiental. Uma sombra só sempre parece plana. */
  --ad-e1: 0 1px 2px rgba(6, 44, 31, .06), 0 2px 8px rgba(6, 44, 31, .05);
  --ad-e2: 0 2px 4px rgba(6, 44, 31, .07), 0 10px 24px rgba(6, 44, 31, .07);
  --ad-e3: 0 4px 8px rgba(6, 44, 31, .08), 0 20px 44px rgba(6, 44, 31, .10);
  --ad-e4: 0 8px 16px rgba(6, 44, 31, .10), 0 34px 72px rgba(6, 44, 31, .14);
  --ad-sheen: inset 0 1px 0 rgba(255, 255, 255, .72);

  /* Uma rampa de verde no lugar dos hexadecimais soltos */
  --ad-g-950: #04211a;
  --ad-g-900: #063a2a;
  --ad-g-800: #084a35;
  --ad-g-700: #0a5c3e;
  --ad-g-600: #0e7d52;
  --ad-g-500: #14a067;
  --ad-g-400: #2cc183;
  --ad-g-200: #b9e8d2;
  --ad-g-100: #e4f4ec;
  --ad-g-50:  #f2faf6;

  --ad-gold: #f2b705;
  --ad-gold-soft: #ffd23f;
  --ad-gold-ink: #8a6500;
  --ad-danger: #c62d38;
  --ad-danger-bg: #fce8ea;
  --ad-warn-bg: #fdf3d4;

  --ad-ink: #0b2b20;
  --ad-ink-2: #3a5548;
  --ad-ink-3: #556d61;

  /* Piso de legibilidade: versalete não desce de 10px, texto de 11.5px. */
  --ad-fs-micro: 10px;
  --ad-fs-label: 11px;
  --ad-fs-body: 12.5px;
  --ad-fs-lead: 13.5px;

  --ad-track-label: .09em;
  --ad-track-display: -.035em;

  --ad-ease: cubic-bezier(.22, 1, .36, 1);
  --ad-spring: cubic-bezier(.34, 1.35, .48, 1);
  --ad-dur: 220ms;
}

/* Fundo do painel: um verde pálido com luz vinda do alto à esquerda. */
.admin-workspace-body {
  background:
    radial-gradient(120% 70% at 6% -8%, rgba(20, 160, 103, .10), transparent 62%),
    radial-gradient(90% 50% at 98% 0%, rgba(242, 183, 5, .055), transparent 56%),
    #eef4f0 !important;
}

/* --- Tipografia display --- */
.admin-workspace-body h1,
.admin-workspace-body h2,
.admin-workspace-body h3,
.admin-workspace-body h4,
.admin-workspace-body .dash-section-title,
.club-portal-body h1,
.club-portal-body h2,
.club-portal-body h3,
.club-portal-body .card-head h3 {
  font-family: var(--font-display, 'Archivo', sans-serif) !important;
  letter-spacing: var(--ad-track-display) !important;
  text-wrap: balance;
}

/* --- Toda cifra em tabulares, com fonte display e tracking apertado --- */
.admin-workspace-body .metric-card .num,
.admin-workspace-body .admin-pulse-card strong,
.admin-workspace-body .admin-donut strong,
.admin-workspace-body .ops-metric strong,
.admin-workspace-body .sport-kpi strong,
.admin-workspace-body .report-kpi strong,
.admin-workspace-body .executive-kpi strong,
.admin-workspace-body .access-readiness-kpi strong,
.admin-workspace-body .leader-card .val,
.admin-workspace-body .inst-command-kpis strong,
.admin-workspace-body .executive-stat strong,
.admin-workspace-body .executive-money strong,
.club-portal-body .metric strong,
.club-portal-body .date-tile strong,
.club-portal-body .calendar-day strong,
.club-portal-body .rank-row .value {
  font-family: var(--font-display, 'Archivo', sans-serif) !important;
  font-weight: 800 !important;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1, 'lnum' 1;
  letter-spacing: -.05em !important;
  color: var(--ad-ink) !important;
}

.admin-workspace-body table td,
.admin-workspace-body .chart-bar-row .pts,
.admin-workspace-body .agenda-row .when,
.club-portal-body table td {
  font-variant-numeric: tabular-nums;
}

/* --- Piso tipográfico --- */
.admin-workspace-body .metric-card .lbl,
.admin-workspace-body .admin-pulse-card span,
.admin-workspace-body .admin-competition-switcher span,
.admin-workspace-body .ops-metric span,
.admin-workspace-body .ops-chip,
.admin-workspace-body .sport-kpi span,
.admin-workspace-body .report-kpi span,
.admin-workspace-body .executive-kpi small,
.admin-workspace-body .executive-stat span,
.admin-workspace-body .executive-source span,
.admin-workspace-body .executive-money span,
.admin-workspace-body .access-readiness-kpi span,
.admin-workspace-body .readiness-pill,
.admin-workspace-body .status-pill,
.admin-workspace-body .user-role-meta em,
.admin-workspace-body .executive-section-kicker,
.admin-workspace-body .ops-kicker,
.admin-workspace-body .enterprise-kicker,
.admin-workspace-body .role-badge,
.admin-workspace-body th,
.club-portal-body .metric .metric-label,
.club-portal-body .status-pill,
.club-portal-body .eyebrow,
.club-portal-body th,
.club-portal-body .club-brand span,
.club-portal-body .club-identity span,
.club-portal-body .date-tile span,
.club-portal-body .calendar-day span,
.club-portal-body .staff-portal-card span {
  font-size: var(--ad-fs-micro) !important;
  letter-spacing: var(--ad-track-label) !important;
  font-weight: 800 !important;
}

.admin-workspace-body .metric-card .sub,
.admin-workspace-body .admin-pulse-card small,
.admin-workspace-body .admin-donut-copy div,
.admin-workspace-body .ops-record p,
.admin-workspace-body .ops-help,
.admin-workspace-body .executive-kpi p,
.admin-workspace-body .executive-stat small,
.admin-workspace-body .executive-list-row small,
.admin-workspace-body .executive-issue p,
.admin-workspace-body .executive-action small,
.admin-workspace-body .staff-readiness-card p,
.admin-workspace-body .store-product-card p,
.admin-workspace-body .agenda-row .where,
.club-portal-body .metric small,
.club-portal-body .rank-row small,
.club-portal-body .activity-row small,
.club-portal-body .list-content p,
.club-portal-body .player-cell small,
.club-portal-body .staff-portal-card small {
  font-size: 11.5px !important;
  line-height: 1.5;
}

/* fbf-workspace.css força --fbf-muted (#6b8378) nesses textos de apoio, que
   mede 4.08:1 sobre branco e reprova no mínimo AA de 4.5. A rampa deste
   arquivo já está calibrada; aqui só se garante que ela prevaleça. */
.admin-workspace-body .metric-card .sub,
.admin-workspace-body .admin-pulse-card small,
.admin-workspace-body .admin-pulse-card span,
.admin-workspace-body .admin-donut-copy div,
.admin-workspace-body .agenda-row .where,
.admin-workspace-body .module-card small,
.club-portal-body .metric small { color: var(--ad-ink-3) !important; }

/* --- Foco e rolagem --- */
.admin-workspace-body :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.club-portal-body :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--ad-g-600) !important;
  outline-offset: 2px !important;
}

.admin-workspace-body *, .club-portal-body * { scrollbar-width: thin; scrollbar-color: rgba(6, 44, 31, .22) transparent; }
.admin-workspace-body *::-webkit-scrollbar, .club-portal-body *::-webkit-scrollbar { width: 10px; height: 10px; }
.admin-workspace-body *::-webkit-scrollbar-thumb, .club-portal-body *::-webkit-scrollbar-thumb {
  border: 3px solid transparent; border-radius: var(--ad-r-pill);
  background: rgba(6, 44, 31, .20); background-clip: content-box;
}

/* ============================================================
   B. CABEÇALHO E BARRA LATERAL DO PAINEL
   ============================================================ */

.admin-workspace-body .app-header {
  border-radius: 0 0 var(--ad-r-lg) var(--ad-r-lg) !important;
  background: rgba(255, 255, 255, .82) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .9), 0 12px 40px rgba(6, 44, 31, .09) !important;
}

.admin-workspace-body .role-badge {
  border: 1px solid rgba(242, 183, 5, .34) !important;
  border-radius: var(--ad-r-pill) !important;
  background: linear-gradient(135deg, #fff6d8, #fffdf4) !important;
  color: var(--ad-gold-ink) !important;
}

.admin-workspace-body .icon-btn {
  border-radius: var(--ad-r-sm) !important;
  border-color: rgba(6, 44, 31, .12) !important;
  box-shadow: var(--ad-e1), var(--ad-sheen) !important;
  transition: transform var(--ad-dur) var(--ad-spring), background var(--ad-dur) var(--ad-ease);
}
.admin-workspace-body .icon-btn:hover { transform: translateY(-2px); background: var(--ad-g-50) !important; }

/* --- Barra lateral ---
   O item ativo era um retângulo dourado sólido: o elemento de maior peso
   visual da tela, competindo com o conteúdo, e o dourado sobre escuro força
   texto escuro de baixo contraste. Vira superfície de vidro clara com trilho
   dourado e ícone dourado — a marca continua presente, sem gritar. */
.admin-workspace-body .dash-sidebar {
  border: 1px solid rgba(255, 255, 255, .07) !important;
  border-radius: var(--ad-r-lg) !important;
  background: linear-gradient(168deg, var(--ad-g-950) 0%, #052318 58%, #04150f 100%) !important;
  box-shadow: 0 10px 24px rgba(3, 30, 20, .16), 0 34px 72px rgba(3, 30, 20, .22) !important;
}

.admin-workspace-body .dash-sidebar a {
  position: relative;
  padding: 11px 13px 11px 16px !important;
  border-radius: var(--ad-r-sm) !important;
  font-size: var(--ad-fs-body) !important;
  font-weight: 700 !important;
  color: rgba(255, 255, 255, .66) !important;
  transition: background var(--ad-dur) var(--ad-ease), color var(--ad-dur) var(--ad-ease) !important;
}

.admin-workspace-body .dash-sidebar a::before {
  content: '';
  position: absolute;
  top: 50%; left: 5px;
  width: 3px; height: 0;
  border-radius: var(--ad-r-pill);
  background: var(--ad-gold);
  transform: translateY(-50%);
  transition: height var(--ad-dur) var(--ad-spring);
}

.admin-workspace-body .dash-sidebar a:hover {
  background: rgba(255, 255, 255, .07) !important;
  color: #fff !important;
  transform: none !important;
}
.admin-workspace-body .dash-sidebar a:hover::before { height: 14px; }

.admin-workspace-body .dash-sidebar a.active {
  background: rgba(255, 255, 255, .11) !important;
  color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14) !important;
}
.admin-workspace-body .dash-sidebar a.active::before { height: 22px; }
.admin-workspace-body .dash-sidebar a.active svg { color: var(--ad-gold) !important; }

.admin-workspace-body .dash-sidebar .side-label {
  padding: 16px 13px 5px !important;
  font-size: var(--ad-fs-micro) !important;
  letter-spacing: var(--ad-track-label) !important;
  color: rgba(255, 255, 255, .42) !important;
}

/* Dock móvel: mesma gramática do item ativo da barra lateral. */
.admin-workspace-body .admin-mobile-dock {
  border-radius: var(--ad-r-lg) !important;
  background: rgba(4, 27, 19, .93) !important;
  box-shadow: 0 20px 55px rgba(0, 25, 17, .34) !important;
}
.admin-workspace-body .admin-mobile-dock button { border-radius: var(--ad-r-sm) !important; font-size: 9px !important; }
.admin-workspace-body .admin-mobile-dock button.active {
  background: rgba(255, 255, 255, .13) !important;
  color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16) !important;
}
.admin-workspace-body .admin-mobile-dock button.active svg { color: var(--ad-gold) !important; }

/* ============================================================
   C. CARTÕES DE INDICADOR — um componente, seis classes
   .metric-card · .admin-pulse-card · .ops-metric · .sport-kpi
   .report-kpi  · .executive-kpi    · .access-readiness-kpi
   ============================================================ */

.admin-workspace-body .metric-card,
.admin-workspace-body .admin-pulse-card,
.admin-workspace-body .admin-panel-card,
.admin-workspace-body .ops-metric,
.admin-workspace-body .sport-kpi,
.admin-workspace-body .report-kpi,
.admin-workspace-body .executive-kpi,
.admin-workspace-body .access-readiness-kpi {
  padding: 20px !important;
  border: 1px solid rgba(6, 44, 31, .09) !important;
  border-radius: var(--ad-r-md) !important;
  background: #fff !important;
  box-shadow: var(--ad-e2), var(--ad-sheen) !important;
  transition: transform var(--ad-dur) var(--ad-ease), box-shadow var(--ad-dur) var(--ad-ease), border-color var(--ad-dur) var(--ad-ease) !important;
}

@media (hover: hover) {
  .admin-workspace-body .metric-card:hover,
  .admin-workspace-body .admin-pulse-card:hover,
  .admin-workspace-body .ops-metric:hover,
  .admin-workspace-body .sport-kpi:hover,
  .admin-workspace-body .report-kpi:hover,
  .admin-workspace-body .executive-kpi:hover {
    transform: translateY(-3px);
    border-color: rgba(20, 160, 103, .30) !important;
    box-shadow: var(--ad-e3), var(--ad-sheen) !important;
  }
}

/* A barra de acento aparecia ora no topo, ora à esquerda, em quatro cores
   arbitrárias. Padronizada: filete superior, verde por padrão, cor semântica
   só quando o estado realmente significa alguma coisa. */
.admin-workspace-body .metric-card::after,
.admin-workspace-body .executive-kpi::after {
  inset: 0 0 auto 0 !important;
  width: auto !important;
  height: 3px !important;
  /* O acento vinha inline em quatro cores (#087a4d, #f5bd16, #5369e8,
     #e0393f) que não codificam nada — são variedade, não informação. E o azul
     está fora da bandeira boliviana, que é a paleta da instituição. Unificado
     no verde: quando toda cor significa algo, nenhuma cor significa nada. */
  background: var(--ad-g-500) !important;
  opacity: 1 !important;
}
.admin-workspace-body .report-kpi::before {
  inset: 0 0 auto 0 !important;
  width: auto !important;
  height: 3px !important;
  background: var(--ad-g-500) !important;
}
.admin-workspace-body .report-kpi.warn::before { background: var(--ad-gold) !important; }
.admin-workspace-body .report-kpi.danger::before { background: var(--ad-danger) !important; }

/* O número é o conteúdo do cartão. Precisa dominar. */
.admin-workspace-body .metric-card .num,
.admin-workspace-body .admin-pulse-card strong,
.admin-workspace-body .ops-metric strong,
.admin-workspace-body .sport-kpi strong,
.admin-workspace-body .report-kpi strong,
.admin-workspace-body .executive-kpi strong,
.admin-workspace-body .access-readiness-kpi strong {
  font-size: 30px !important;
  line-height: 1 !important;
}

/* Caixa de ícone: mesma forma, mesmo tamanho, mesma cor em todo o painel. */
.admin-workspace-body .metric-card .icon-circle,
.admin-workspace-body .admin-pulse-card .pulse-icon,
.admin-workspace-body .ops-metric-icon,
.admin-workspace-body .executive-kpi-icon,
.admin-workspace-body .executive-focus-icon {
  width: 38px !important;
  height: 38px !important;
  border-radius: var(--ad-r-sm) !important;
  background: var(--ad-g-100) !important;
  color: var(--ad-g-600) !important;
}

/* ============================================================
   D. SUPERFÍCIES E PAINÉIS
   ============================================================ */

.admin-workspace-body .chart-card,
.admin-workspace-body .leader-card,
.admin-workspace-body .agenda-row,
.admin-workspace-body .executive-card,
.admin-workspace-body .executive-focus-card,
.admin-workspace-body .report-card,
.admin-workspace-body .drive-folders,
.admin-workspace-body .drive-library,
.admin-workspace-body .ops-form-card,
.admin-workspace-body .store-admin-form,
.admin-workspace-body .store-product-card,
.admin-workspace-body .store-order-row,
.admin-workspace-body .staff-readiness-card,
.admin-workspace-body .ops-record,
.admin-workspace-body .settlement-row,
.admin-workspace-body .module-card,
.admin-workspace-body #competition-form,
.admin-workspace-body #match-form,
.admin-workspace-body #staff-form,
.admin-workspace-body #player-form {
  border: 1px solid rgba(6, 44, 31, .09) !important;
  border-radius: var(--ad-r-md) !important;
  background: #fff !important;
  box-shadow: var(--ad-e2), var(--ad-sheen) !important;
}

.admin-workspace-body .executive-stat,
.admin-workspace-body .executive-money,
.admin-workspace-body .executive-list-row,
.admin-workspace-body .executive-source,
.admin-workspace-body .executive-chart-summary div,
.admin-workspace-body .ops-check,
.admin-workspace-body .stadium-health span {
  border-radius: var(--ad-r-sm) !important;
  background: var(--ad-g-50) !important;
  border: 1px solid rgba(6, 44, 31, .07) !important;
}

.admin-workspace-body .module-card:not(.locked):hover {
  transform: translateY(-3px);
  border-color: rgba(20, 160, 103, .30) !important;
  box-shadow: var(--ad-e3), var(--ad-sheen) !important;
}

/* Seletor de competição: era o único bloco escuro solto no meio da página.
   Ganha a mesma linguagem dos heróis, com o campo legível sobre o escuro. */
.admin-workspace-body .admin-competition-switcher {
  padding: 18px 20px !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  border-radius: var(--ad-r-lg) !important;
  background:
    radial-gradient(circle at 92% 0%, rgba(242, 183, 5, .16), transparent 18rem),
    linear-gradient(140deg, var(--ad-g-900), var(--ad-g-950)) !important;
  box-shadow: var(--ad-e3) !important;
}
.admin-workspace-body .admin-competition-switcher span { color: var(--ad-g-400) !important; }
.admin-workspace-body .admin-competition-switcher strong { font-size: var(--ad-fs-lead) !important; color: #fff; }
.admin-workspace-body .admin-competition-switcher select {
  min-height: 44px !important;
  border: 1px solid rgba(255, 255, 255, .16) !important;
  border-radius: var(--ad-r-sm) !important;
  background: rgba(255, 255, 255, .09) !important;
  color: #fff !important;
  font-size: var(--ad-fs-body) !important;
  font-weight: 700 !important;
}

/* Rosca de progresso: usa a rampa oficial. */
.admin-workspace-body .admin-donut {
  background: conic-gradient(var(--ad-g-500) calc(var(--value) * 1%), #e3ede8 0) !important;
}
.admin-workspace-body .admin-donut strong { font-size: 24px !important; }

/* Barras de ranking */
.admin-workspace-body .chart-bar-row .track { background: #e6efea !important; border-radius: var(--ad-r-pill) !important; }
.admin-workspace-body .chart-bar-row .fill { background: linear-gradient(90deg, var(--ad-g-600), var(--ad-g-400)) !important; border-radius: var(--ad-r-pill) !important; }
.admin-workspace-body .chart-bar-row .pts { color: var(--ad-g-600) !important; }
.admin-workspace-body .leader-card .rank-ic { background: linear-gradient(135deg, var(--ad-gold), var(--ad-gold-soft)) !important; }
.admin-workspace-body .leader-card .val { color: var(--ad-g-600) !important; }
.admin-workspace-body .agenda-row .when { color: var(--ad-gold-ink) !important; }

/* ============================================================
   E. HERÓIS — um componente, seis classes
   ============================================================ */

.admin-workspace-body .ops-hero,
.admin-workspace-body .management-hero,
.admin-workspace-body .inst-command,
.admin-workspace-body .sport-command,
.admin-workspace-body .enterprise-hero,
.admin-workspace-body .president-command {
  padding: clamp(22px, 3vw, 30px) !important;
  border-radius: var(--ad-r-lg) !important;
  background:
    radial-gradient(circle at 88% 6%, rgba(242, 183, 5, .17), transparent 22rem),
    linear-gradient(142deg, var(--ad-g-900) 0%, var(--ad-g-950) 68%, #13260f 100%) !important;
  box-shadow: var(--ad-e4) !important;
}

.admin-workspace-body .ops-hero::after,
.admin-workspace-body .president-command::after {
  right: -18px !important;
  bottom: -52px !important;
  font-size: clamp(112px, 15vw, 168px) !important;
  font-weight: 800 !important;
  letter-spacing: -.085em !important;
  color: rgba(255, 255, 255, .035) !important;
}

.admin-workspace-body .ops-hero h2,
.admin-workspace-body .management-hero h2,
.admin-workspace-body .inst-command h2,
.admin-workspace-body .sport-command h2,
.admin-workspace-body .enterprise-hero h2,
.admin-workspace-body .president-command h2 {
  font-size: clamp(24px, 3.1vw, 36px) !important;
  line-height: 1.04 !important;
  letter-spacing: -.05em !important;
  color: #fff !important;
}

.admin-workspace-body .ops-hero p,
.admin-workspace-body .management-hero p,
.admin-workspace-body .inst-command p,
.admin-workspace-body .sport-command p,
.admin-workspace-body .enterprise-hero p,
.admin-workspace-body .president-command p {
  color: rgba(255, 255, 255, .70) !important;
  font-size: var(--ad-fs-lead) !important;
  line-height: 1.6 !important;
}

.admin-workspace-body .ops-kicker,
.admin-workspace-body .enterprise-kicker,
.admin-workspace-body .management-hero small,
.admin-workspace-body .sport-command small,
.admin-workspace-body .executive-section-kicker { color: var(--ad-g-400) !important; }

/* ============================================================
   F. NAVEGAÇÃO SECUNDÁRIA E CONTROLES
   ============================================================ */

.admin-workspace-body .executive-command-nav {
  padding: 6px !important;
  border: 1px solid rgba(6, 44, 31, .09) !important;
  border-radius: var(--ad-r-md) !important;
  background: rgba(255, 255, 255, .90) !important;
  box-shadow: var(--ad-e2) !important;
}
.admin-workspace-body .executive-command-nav button {
  border-radius: var(--ad-r-sm) !important;
  font-size: var(--ad-fs-label) !important;
}
.admin-workspace-body .executive-command-nav button:hover {
  background: var(--ad-g-100) !important;
  color: var(--ad-g-700) !important;
  box-shadow: none !important;
}
.admin-workspace-body .executive-command-nav button.active {
  background: linear-gradient(135deg, var(--ad-g-800), var(--ad-g-950)) !important;
  color: #fff !important;
  box-shadow: var(--ad-e2) !important;
}

.admin-workspace-body .subtabs button {
  min-height: 40px !important;
  border-radius: var(--ad-r-pill) !important;
  border-color: rgba(6, 44, 31, .14) !important;
  font-size: var(--ad-fs-label) !important;
  transition: background var(--ad-dur) var(--ad-ease), color var(--ad-dur) var(--ad-ease), border-color var(--ad-dur) var(--ad-ease);
}
.admin-workspace-body .subtabs button:hover { background: var(--ad-g-50) !important; border-color: var(--ad-g-400) !important; }
.admin-workspace-body .subtabs button.active {
  background: linear-gradient(135deg, var(--ad-g-700), var(--ad-g-900)) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: var(--ad-e2) !important;
}

/* Campos */
.admin-workspace-body .form-field input,
.admin-workspace-body .form-field select,
.admin-workspace-body .form-field textarea,
.admin-workspace-body .ops-toolbar input,
.admin-workspace-body .ops-toolbar select,
.admin-workspace-body .record-toolbar input,
.admin-workspace-body .record-toolbar select,
.admin-workspace-body .store-order-controls select,
.admin-workspace-body .store-order-controls input {
  min-height: 44px !important;
  border-radius: var(--ad-r-sm) !important;
  border-color: rgba(6, 44, 31, .16) !important;
  background: #fff !important;
  transition: border-color var(--ad-dur) var(--ad-ease), box-shadow var(--ad-dur) var(--ad-ease) !important;
}
.admin-workspace-body .form-field input:focus,
.admin-workspace-body .form-field select:focus,
.admin-workspace-body .form-field textarea:focus {
  outline: none !important;
  border-color: var(--ad-g-500) !important;
  box-shadow: 0 0 0 4px rgba(20, 160, 103, .13) !important;
}
.admin-workspace-body .form-field label {
  font-size: var(--ad-fs-label) !important;
  letter-spacing: .05em !important;
  color: var(--ad-ink-2) !important;
}

/* Ação primária em verde. Dourado preenchido no botão de salvar competia com
   o dourado do estado ativo: dois "isto é importante" simultâneos se anulam.
   O dourado passa a ser exclusivamente acento. */
.admin-workspace-body .btn-save {
  min-height: 44px !important;
  border-radius: var(--ad-r-pill) !important;
  background: linear-gradient(135deg, var(--ad-g-600), var(--ad-g-500)) !important;
  color: #fff !important;
  font-size: var(--ad-fs-body) !important;
  box-shadow: var(--ad-e2), inset 0 1px 0 rgba(255, 255, 255, .28) !important;
  transition: transform var(--ad-dur) var(--ad-spring), box-shadow var(--ad-dur) var(--ad-ease), filter var(--ad-dur) var(--ad-ease) !important;
}
.admin-workspace-body .btn-save:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow: var(--ad-e3), inset 0 1px 0 rgba(255, 255, 255, .34) !important;
}
.admin-workspace-body .btn-save:active { transform: translateY(0) scale(.98); }

.admin-workspace-body .btn-mini,
.admin-workspace-body .ops-btn-secondary {
  min-height: 38px !important;
  border-radius: var(--ad-r-pill) !important;
  border-color: rgba(6, 44, 31, .16) !important;
  font-size: var(--ad-fs-label) !important;
}
.admin-workspace-body .btn-mini:hover { background: var(--ad-g-50) !important; border-color: var(--ad-g-400) !important; }

/* Pílulas de estado */
.admin-workspace-body .readiness-pill,
.admin-workspace-body .status-pill,
.admin-workspace-body .ops-chip { padding: 5px 10px !important; border-radius: var(--ad-r-pill) !important; }
.admin-workspace-body .readiness-pill.ready,
.admin-workspace-body .status-pill,
.admin-workspace-body .ops-chip.live { background: var(--ad-g-100) !important; color: var(--ad-g-700) !important; }
.admin-workspace-body .readiness-pill.warning,
.admin-workspace-body .status-pill.warn,
.admin-workspace-body .ops-chip.warn { background: var(--ad-warn-bg) !important; color: var(--ad-gold-ink) !important; }
.admin-workspace-body .readiness-pill.error,
.admin-workspace-body .status-pill.off,
.admin-workspace-body .ops-chip.danger { background: var(--ad-danger-bg) !important; color: var(--ad-danger) !important; }

/* Tabelas */
.admin-workspace-body table th { background: var(--ad-g-50) !important; color: var(--ad-ink-3) !important; }
.admin-workspace-body tbody tr { transition: background var(--ad-dur) var(--ad-ease); }
.admin-workspace-body tbody tr:hover { background: var(--ad-g-50) !important; }
.admin-workspace-body .list-row, .admin-workspace-body .audit-row { font-size: var(--ad-fs-body) !important; }

/* ============================================================
   G. FBF CLUBES 360
   ============================================================ */

.club-portal-body {
  --cp-green-600: var(--ad-g-600);
  --cp-green-500: var(--ad-g-500);
  --cp-border: rgba(6, 44, 31, .10);
  --cp-text: var(--ad-ink);
  --cp-muted: var(--ad-ink-3);
  --cp-radius: var(--ad-r-md);
  --cp-shadow: var(--ad-e2), var(--ad-sheen);
}

/* A retícula de 64px no fundo era grade de wireframe. Vira grão fino. */
.club-portal-body::before {
  background:
    radial-gradient(circle at 84% -2%, rgba(242, 183, 5, .07), transparent 26rem),
    radial-gradient(circle at 50% 50%, rgba(6, 44, 31, .028) 0.5px, transparent 0.5px) !important;
  background-size: auto, 4px 4px !important;
}

.club-portal-body .club-sidebar {
  padding: 20px 14px;
  background: linear-gradient(168deg, var(--ad-g-950) 0%, #052318 56%, #04150f 100%);
  box-shadow: 14px 0 46px rgba(2, 20, 13, .20);
}

.club-portal-body .club-nav button {
  position: relative;
  padding: 11px 13px 11px 16px;
  border-radius: var(--ad-r-sm);
  font-size: var(--ad-fs-body);
  color: rgba(255, 255, 255, .68);
  transition: background var(--ad-dur) var(--ad-ease), color var(--ad-dur) var(--ad-ease);
}
.club-portal-body .club-nav button::before {
  content: '';
  position: absolute;
  top: 50%; left: 5px;
  width: 3px; height: 0;
  border-radius: var(--ad-r-pill);
  background: var(--ad-gold);
  transform: translateY(-50%);
  transition: height var(--ad-dur) var(--ad-spring);
}
.club-portal-body .club-nav button:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.club-portal-body .club-nav button:hover::before { height: 14px; }
.club-portal-body .club-nav button.active {
  background: rgba(255, 255, 255, .11);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14);
}
.club-portal-body .club-nav button.active::before { height: 22px; }
.club-portal-body .club-nav button.active .nav-icon { background: var(--ad-gold); color: var(--ad-g-950); }
.club-portal-body .nav-icon {
  border-radius: var(--ad-r-xs);
  background: rgba(255, 255, 255, .08);
  transition: background var(--ad-dur) var(--ad-ease), color var(--ad-dur) var(--ad-ease);
}

.club-portal-body .club-identity,
.club-portal-body .club-sidebar-foot a,
.club-portal-body .club-sidebar-foot button { border-radius: var(--ad-r-sm); font-size: var(--ad-fs-label); }

.club-portal-body .welcome-card {
  border-radius: var(--ad-r-lg);
  background:
    radial-gradient(circle at 84% 34%, rgba(242, 183, 5, .19), transparent 20rem),
    linear-gradient(142deg, var(--ad-g-900), var(--ad-g-950) 72%);
  box-shadow: var(--ad-e4);
}
.club-portal-body .welcome-card h2 { letter-spacing: -.05em; }
.club-portal-body .welcome-card p { font-size: var(--ad-fs-lead); }

.club-portal-body .metric,
.club-portal-body .portal-card,
.club-portal-body .portal-list-card,
.club-portal-body .staff-portal-card,
.club-portal-body .calendar-day {
  border-radius: var(--ad-r-md);
  border-color: var(--cp-border);
  box-shadow: var(--ad-e2), var(--ad-sheen);
  transition: transform var(--ad-dur) var(--ad-ease), box-shadow var(--ad-dur) var(--ad-ease), border-color var(--ad-dur) var(--ad-ease);
}

@media (hover: hover) {
  .club-portal-body .metric:hover,
  .club-portal-body .portal-list-card:hover,
  .club-portal-body .staff-portal-card:hover {
    transform: translateY(-2px);
    border-color: rgba(20, 160, 103, .30);
    box-shadow: var(--ad-e3), var(--ad-sheen);
  }
}

.club-portal-body .metric strong { font-size: 28px; }
.club-portal-body .metric::after { background: var(--accent, var(--ad-g-500)); }

.club-portal-body .rank-row,
.club-portal-body .activity-row { border-radius: var(--ad-r-sm); background: var(--ad-g-50); border-color: rgba(6, 44, 31, .07); }
.club-portal-body .date-tile,
.club-portal-body .player-cell img,
.club-portal-body .rank-row img { border-radius: var(--ad-r-sm); }
.club-portal-body .date-tile,
.club-portal-body .calendar-day.has-event { background: linear-gradient(150deg, var(--ad-g-900), var(--ad-g-950)); }

.club-portal-body .btn-primary,
.club-portal-body .btn-ghost,
.club-portal-body .btn-danger {
  min-height: 44px;
  border-radius: var(--ad-r-pill);
  font-size: var(--ad-fs-body);
  transition: transform var(--ad-dur) var(--ad-spring), box-shadow var(--ad-dur) var(--ad-ease), filter var(--ad-dur) var(--ad-ease), background var(--ad-dur) var(--ad-ease);
}
.club-portal-body .btn-primary {
  background: linear-gradient(135deg, var(--ad-g-600), var(--ad-g-500));
  box-shadow: var(--ad-e2), inset 0 1px 0 rgba(255, 255, 255, .26);
}
.club-portal-body .btn-primary:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: var(--ad-e3), inset 0 1px 0 rgba(255, 255, 255, .32); }
.club-portal-body .btn-ghost:hover { background: var(--ad-g-50); border-color: var(--ad-g-400); transform: translateY(-2px); }
.club-portal-body .btn-primary:active, .club-portal-body .btn-ghost:active { transform: translateY(0) scale(.98); }

.club-portal-body .view-toolbar input,
.club-portal-body .view-toolbar select,
.club-portal-body .top-actions select,
.club-portal-body .portal-form input,
.club-portal-body .portal-form select,
.club-portal-body .portal-form textarea {
  min-height: 44px; border-radius: var(--ad-r-sm); font-size: var(--ad-fs-body);
}
.club-portal-body .portal-form input:focus,
.club-portal-body .portal-form select:focus,
.club-portal-body .portal-form textarea:focus {
  border-color: var(--ad-g-500); box-shadow: 0 0 0 4px rgba(20, 160, 103, .13);
}

.club-portal-body .top-icon { border-radius: var(--ad-r-pill); }
.club-portal-body .profile-chip { border-radius: var(--ad-r-pill); font-size: var(--ad-fs-label); }
.club-portal-body .club-tricolor { height: 3px; }
.club-portal-body .club-topbar {
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .8), 0 8px 28px rgba(6, 44, 31, .06);
}
.club-portal-body .status-pill { padding: 5px 10px; background: var(--ad-g-100); color: var(--ad-g-700); }
.club-portal-body .status-pill.lesionado,
.club-portal-body .status-pill.suspendido,
.club-portal-body .status-pill.atrasado { background: var(--ad-warn-bg); color: var(--ad-gold-ink); }
.club-portal-body .status-pill.inactivo { background: #eef1ef; color: var(--ad-ink-3); }
.club-portal-body th { background: var(--ad-g-50); color: var(--ad-ink-3); }
.club-portal-body tbody tr { transition: background var(--ad-dur) var(--ad-ease); }
.club-portal-body tbody tr:hover { background: var(--ad-g-50); }

/* ============================================================
   H. MOVIMENTO E IMPRESSÃO
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  .admin-workspace-body *, .club-portal-body * {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

@media print {
  .admin-workspace-body .metric-card,
  .admin-workspace-body .admin-pulse-card,
  .admin-workspace-body .admin-panel-card,
  .admin-workspace-body .executive-kpi,
  .admin-workspace-body .executive-card,
  .admin-workspace-body .report-card,
  .club-portal-body .portal-card,
  .club-portal-body .metric {
    box-shadow: none !important;
    border-color: #bbb !important;
  }
  .club-portal-body::before { display: none !important; }
}

/* ============================================================
   I. LABORATÓRIO DE DESEMPENHO (FBF Clubes 360)
   Radar de atributos e mapa de calor de zonas.
   ------------------------------------------------------------
   club-portal.css redeclara .heatmap-panel ONZE vezes, .pitch-heatmap
   sete, .radar-svg seis e .radar-label quatro — cada uma corrigindo a
   anterior. Esta seção é a declaração final única; as anteriores continuam
   no arquivo mas ficam sem efeito.
   ============================================================ */

/* --- Mapa de calor ---
   O BUG: a última regra de club-portal.css combina `width:auto` + `flex:1`
   dentro de `.heatmap-panel{display:flex;flex-direction:column}` com
   `aspect-ratio:68/105`. Em coluna flex a largura fica indeterminada e o
   campo COLAPSA para uma fatia de poucos pixels — o painel aparecia vazio
   com só a pílula "Ataque ↑" visível no centro.
   A CORREÇÃO: altura definida + aspect-ratio resolve a largura, e
   `flex:0 0 auto` impede o flex de espremer de novo. */
.club-portal-body .heatmap-panel {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px;
  min-height: 0 !important;
  padding: 18px !important;
  border-radius: var(--ad-r-md) !important;
}

.club-portal-body .pitch-heatmap {
  flex: 0 0 auto !important;
  height: clamp(190px, 30vh, 260px) !important;
  width: auto !important;
  max-height: none !important;
  aspect-ratio: 68 / 105;
  margin: 0 auto !important;
  padding: 8px !important;
  border-radius: var(--ad-r-xs) !important;
  border: 1px solid rgba(255, 255, 255, .30);
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 12px, transparent 12px 24px),
    linear-gradient(160deg, #0a5c3d, #084832) !important;
  overflow: hidden !important;
}

.club-portal-body .heat-zone {
  border-radius: var(--ad-r-xs);
  background: rgba(62, 224, 151, var(--heat, .05));
  box-shadow: 0 0 22px rgba(58, 224, 149, calc(var(--heat) * .45));
  transition: filter var(--ad-dur) var(--ad-ease), transform var(--ad-dur) var(--ad-ease);
}
@media (hover: hover) {
  .club-portal-body .heat-zone:hover { filter: brightness(1.25); transform: scale(1.03); }
}

.club-portal-body .pitch-direction { font-size: var(--ad-fs-micro) !important; }
.club-portal-body .heat-legend {
  justify-content: center;
  color: rgba(255, 255, 255, .62) !important;
  font-size: var(--ad-fs-micro) !important;
  letter-spacing: var(--ad-track-label);
  text-transform: uppercase;
  font-weight: 800;
}
.club-portal-body .heat-legend i {
  width: 96px; height: 7px; border-radius: var(--ad-r-pill);
  background: linear-gradient(90deg, rgba(62,224,151,.10), rgba(62,224,151,.95));
}

/* --- Radar de atributos --- */
.club-portal-body .radar-panel {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px;
  min-height: 0 !important;
  padding: 18px !important;
  border-radius: var(--ad-r-md) !important;
}
.club-portal-body .radar-svg {
  width: min(100%, 340px) !important;
  max-width: 340px !important;
  height: auto;
  margin: 0 auto;
  overflow: visible;
}
.club-portal-body .radar-grid { fill: none; stroke: rgba(255, 255, 255, .10); stroke-width: 1; }
.club-portal-body .radar-grid.is-outer { stroke: rgba(255, 255, 255, .26); }
.club-portal-body .radar-axis { stroke: rgba(255, 255, 255, .10); stroke-width: 1; }
.club-portal-body .radar-shape {
  fill: rgba(57, 218, 148, .20);
  stroke: #3cdb98;
  stroke-width: 2.2;
  stroke-linejoin: round;
}
.club-portal-body .radar-dot { fill: #eafff5; stroke: #0a5038; stroke-width: 2; }
/* La escala se dibuja SOBRE la forma verde. Sin separarla del eje vertical y
   sin un contorno que la despegue del relleno, los números chocaban con el
   polígono y con la línea del eje: era ilegible justo donde tiene que servir
   de referencia. Va a la izquierda del eje, alineada a la derecha, y con un
   trazo del color del panel por debajo del relleno (paint-order). */
.club-portal-body .radar-scale {
  fill: rgba(255, 255, 255, .52) !important;
  font: 700 9px/1 Manrope, Arial, sans-serif !important;
  text-anchor: end;
  paint-order: stroke fill;
  stroke: #0d2c21;
  stroke-width: 3px;
  stroke-linejoin: round;
}
.club-portal-body .radar-label {
  fill: rgba(255, 255, 255, .80) !important;
  font: 700 11px/1 Manrope, Arial, sans-serif !important;
  text-anchor: middle;
  text-transform: none !important;
  letter-spacing: -.01em !important;
}
.club-portal-body .radar-value {
  fill: #6fe9ae !important;
  font: 800 13px/1 Archivo, Manrope, Arial, sans-serif !important;
  font-variant-numeric: tabular-nums;
  text-anchor: middle;
  letter-spacing: -.03em;
}
.club-portal-body .radar-caption {
  fill: rgba(255, 255, 255, .46);
  font: 800 var(--ad-fs-micro)/1 Manrope, Arial, sans-serif;
  letter-spacing: var(--ad-track-label);
  text-anchor: middle;
  text-transform: uppercase;
}

.club-portal-body .radar-panel,
.club-portal-body .rating-panel,
.club-portal-body .heatmap-panel {
  border: 1px solid var(--cp-border) !important;
  background: linear-gradient(150deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .022)) !important;
  box-shadow: var(--ad-e2) !important;
}
.club-portal-body .analysis-panel-head { margin-bottom: 4px; }
