/* ═══════════════════════════════════════════════════════════
   COMPONENTS.CSS — Cards, Tabelas, Forms, Charts, Players
   Livro Secreto de Operações — Davi Azevedo
═══════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────
   STAT CARDS
───────────────────────────────────────── */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-xl);
}

.stat-card {
  border: 2.5px solid var(--ink);
  padding: var(--spacing-md);
  background: var(--parchment-light);
  position: relative;
  box-shadow: 3px 3px 0 var(--ink);
  transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.stat-card:hover {
  box-shadow: 5px 5px 0 var(--ink);
  transform: translate(-1px, -1px);
}

.stat-card::before {
  content: attr(data-chapter);
  position: absolute;
  top: 6px; right: 8px;
  font-family: var(--font-title);
  font-size: 0.5rem;
  color: var(--ink-faded);
  letter-spacing: 0.1em;
}

.stat-card__icon {
  font-size: 1.5rem;
  margin-bottom: var(--spacing-xs);
  display: block;
}

.stat-card__value {
  font-family: var(--font-body);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
  color: var(--ink);
  display: block;
}

.stat-card__label {
  font-family: var(--font-title);
  font-size: 0.62rem;
  color: var(--ink-faded);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: var(--spacing-xs);
  display: block;
}

.stat-card__delta {
  font-size: 0.7rem;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 2px;
  display: inline-block;
  margin-top: var(--spacing-xs);
}

.stat-card__delta--up {
  background: rgba(45, 107, 34, 0.12);
  color: var(--green-victory);
}

.stat-card__delta--down {
  background: rgba(139, 32, 32, 0.12);
  color: var(--red-defeat);
}

/* ─────────────────────────────────────────
   DATA TABLE (Operations)
───────────────────────────────────────── */
.data-table-wrapper {
  border: 3px solid var(--ink);
  background: var(--parchment-light);
  box-shadow: 4px 4px 0 var(--ink);
  overflow-x: auto;
  overflow-y: hidden; /* Remove rolagem vertical redundante e faz a tabela se expandir dinamicamente */
  position: relative;
  min-height: 180px; /* Altura mínima razoável para evitar esmagamento */
  transition: padding-bottom 0.2s ease;
}

/* Garante espaço adicional para exibir o dropdown sem cortar na borda inferior */
.data-table-wrapper:has(.actions-dropdown-menu.active) {
  padding-bottom: 110px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body);
  font-size: 0.85rem;
}

.data-table thead {
  background: var(--ink);
  color: var(--parchment-light);
}

.data-table thead th {
  padding: var(--spacing-sm) var(--spacing-md);
  font-family: var(--font-title);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: left;
  border-right: 1px solid rgba(255,255,255,0.1);
  color: var(--parchment-light);
}

.data-table tbody tr {
  border-bottom: 1px solid rgba(26, 18, 9, 0.12);
  transition: background var(--transition-fast);
}

.data-table tbody tr:hover {
  background: rgba(184, 132, 30, 0.06);
}

.data-table tbody td {
  padding: var(--spacing-sm) var(--spacing-md);
  vertical-align: middle;
  color: var(--ink) !important; /* Mantém a cor legível adequada ao tema atual (escuro no claro, claro no escuro) */
}

/* Corrigir especificidade de cores de lucro/prejuízo na tabela */
.data-table tbody td.number-display--positive,
.data-table .number-display--positive {
  color: var(--green-victory) !important;
}
.data-table tbody td.number-display--negative,
.data-table .number-display--negative {
  color: var(--red-defeat) !important;
}
.data-table tbody td.number-display--neutral,
.data-table .number-display--neutral {
  color: var(--ink-faded) !important;
}
.data-table tbody td.number-display--gold,
.data-table .number-display--gold {
  color: var(--ink-gold) !important;
}

/* Garante que os selos de status mantenham suas cores com alto contraste */
.data-table tbody td .seal--green {
  color: var(--green-victory) !important;
  border-color: var(--green-victory) !important;
}
.data-table tbody td .seal--red {
  color: var(--red-defeat) !important;
  border-color: var(--red-defeat) !important;
}
.data-table tbody td .seal--gold {
  color: var(--ink-gold) !important;
  border-color: var(--ink-gold) !important;
}

.data-table .result-cell {
  text-align: center;
}

/* ─────────────────────────────────────────
   OPERATION FORM
───────────────────────────────────────── */
.op-form {
  border: 3px solid var(--ink);
  padding: var(--spacing-xl);
  background: var(--parchment-light);
  box-shadow: 4px 4px 0 var(--ink);
  margin-bottom: var(--spacing-xl);
  position: relative;
}

.op-form__title {
  font-family: var(--font-title);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: var(--spacing-lg);
  padding-bottom: var(--spacing-sm);
  border-bottom: 2px solid var(--ink);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-field label {
  font-family: var(--font-title);
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--ink-faded);
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.form-field input,
.form-field select,
.form-field textarea {
  border: 2px solid var(--ink);
  background: var(--parchment-light);
  padding: 8px 12px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--ink);
  border-radius: 2px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  appearance: none;
  -webkit-appearance: none;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  outline: none;
  border-color: var(--ink-gold);
  box-shadow: 2px 2px 0 var(--ink-gold);
}

.form-field textarea {
  resize: vertical;
  min-height: 80px;
}

/* ─────────────────────────────────────────
   BUTTONS
───────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: 10px 20px;
  border: 2.5px solid var(--ink);
  background: var(--ink);
  color: var(--parchment-light);
  font-family: var(--font-title);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all var(--transition-fast);
  box-shadow: 3px 3px 0 var(--ink-gold);
  border-radius: 2px;
  text-transform: uppercase;
}

.btn:hover {
  background: var(--ink-mid);
  box-shadow: 5px 5px 0 var(--ink-gold);
  transform: translate(-1px, -1px);
}

.btn:active {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--ink-gold);
}

.btn--gold {
  background: var(--ink-gold);
  color: var(--ink);
  border-color: var(--ink-gold);
  box-shadow: 3px 3px 0 var(--ink);
}

.btn--gold:hover {
  background: var(--ink-gold-bright);
  box-shadow: 5px 5px 0 var(--ink);
}

.btn--outline {
  background: transparent;
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink-faded);
}

.btn--outline:hover {
  background: rgba(26,18,9,0.06);
  box-shadow: 5px 5px 0 var(--ink-faded);
}

.btn--sm {
  padding: 6px 12px;
  font-size: 0.7rem;
}

.btn--danger {
  background: var(--ink-red);
  border-color: var(--ink-red);
  box-shadow: 3px 3px 0 var(--ink);
}

/* ─────────────────────────────────────────
   CHART CONTAINERS
───────────────────────────────────────── */
.chart-container {
  border: 3px solid var(--ink);
  background: var(--parchment-light);
  padding: var(--spacing-lg);
  box-shadow: 4px 4px 0 var(--ink);
  position: relative;
}

.chart-container__title {
  font-family: var(--font-title);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: var(--spacing-md);
  padding-bottom: var(--spacing-sm);
  border-bottom: 2px solid var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.chart-canvas-wrapper {
  position: relative;
  width: 100%;
}

/* ─────────────────────────────────────────
   VIDEO PLAYER
───────────────────────────────────────── */
.video-player {
  border: 3px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
  background: var(--ink);
  position: relative;
  overflow: hidden;
}

.video-player iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  border: none;
}

.video-player__label {
  position: absolute;
  top: var(--spacing-sm);
  left: var(--spacing-sm);
  background: var(--ink-red);
  color: var(--parchment-light);
  font-family: var(--font-title);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  padding: 3px 8px;
  z-index: 10;
}

/* ─────────────────────────────────────────
   VIDEO CARD (Videoteca)
───────────────────────────────────────── */
.video-card {
  border: 3px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  background: var(--parchment-light);
  cursor: pointer;
  transition: all var(--transition-fast);
  overflow: hidden;
  position: relative;
}

.video-card:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--ink);
}

.video-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: var(--parchment-light);
  position: relative;
  overflow: hidden;
}

.video-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(0.3) contrast(1.1);
}

.video-card__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(26,18,9,0.5);
  opacity: 0;
  transition: opacity var(--transition-fast);
  font-size: 2.5rem;
  color: var(--parchment-light);
}

.video-card:hover .video-card__play { opacity: 1; }

.video-card__info {
  padding: var(--spacing-md);
  border-top: 2px solid var(--ink);
}

.video-card__title {
  font-family: var(--font-title);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
  line-height: 1.3;
}

.video-card__meta {
  font-size: 0.7rem;
  color: var(--ink-faded);
  font-family: var(--font-body);
}

.video-card__tag {
  display: inline-block;
  padding: 2px 8px;
  background: var(--ink);
  color: var(--parchment-light);
  font-family: var(--font-title);
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-right: 4px;
  margin-top: 4px;
}

/* ─────────────────────────────────────────
   PLANNING CARDS
───────────────────────────────────────── */
.planning-card {
  border: 2.5px solid var(--ink);
  background: var(--parchment-light);
  padding: var(--spacing-lg);
  box-shadow: 3px 3px 0 var(--ink-faded);
  position: relative;
  transition: all var(--transition-fast);
}

.planning-card:hover {
  box-shadow: 5px 5px 0 var(--ink-faded);
  transform: translate(-1px, -1px);
}

.planning-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 4px;
  height: 100%;
  background: var(--ink-gold);
}

.planning-card__delete {
  position: absolute;
  top: 8px;
  right: 8px;
  background: transparent;
  border: none;
  font-size: 1.1rem;
  line-height: 1;
  color: var(--ink-faded);
  cursor: pointer;
  transition: color var(--transition-fast), transform var(--transition-fast);
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.planning-card__delete:hover {
  color: var(--ink-red-bright);
  transform: scale(1.2);
}

.planning-card__sport {
  font-family: var(--font-title);
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--ink-red);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: var(--spacing-sm);
}

.planning-card__event {
  font-family: var(--font-title);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: var(--spacing-xs);
}

.planning-card__notes {
  font-size: 0.82rem;
  color: var(--ink-faded);
  line-height: 1.6;
  margin-top: var(--spacing-sm);
  padding-top: var(--spacing-sm);
  border-top: 1px solid rgba(26,18,9,0.1);
}

/* ─────────────────────────────────────────
   MINDSET SCROLL
───────────────────────────────────────── */
.scroll-paper {
  background: linear-gradient(180deg,
    rgba(214, 194, 140, 0.4) 0%,
    var(--parchment-light) 5%,
    var(--parchment-light) 95%,
    rgba(214, 194, 140, 0.4) 100%
  );
  border: 3px solid var(--ink);
  border-radius: 2px;
  padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-xl) calc(var(--spacing-xl) + 16px);
  position: relative;
  box-shadow: 4px 4px 0 var(--ink);
}

.scroll-paper::before {
  content: '';
  position: absolute;
  left: 24px; top: 0; bottom: 0;
  width: 1px;
  background: rgba(184, 100, 100, 0.3);
}

.scroll-paper::after {
  content: '';
  position: absolute;
  left: 25px; top: 0; bottom: 0;
  width: 1px;
  background: rgba(184, 100, 100, 0.15);
}

.mindset-rule {
  display: flex;
  gap: var(--spacing-md);
  align-items: flex-start;
  padding: var(--spacing-md) 0;
  border-bottom: 1px dashed rgba(26,18,9,0.12);
}

.mindset-rule:last-child { border-bottom: none; }

.mindset-rule__number {
  font-family: var(--font-title);
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--ink-red);
  flex-shrink: 0;
  width: 40px;
  line-height: 1;
}

.mindset-rule__text {
  font-size: 0.9rem;
  color: var(--ink);
  line-height: 1.7;
}

.mindset-rule__title {
  font-family: var(--font-title);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--ink);
  display: block;
  margin-bottom: 4px;
}

/* ─────────────────────────────────────────
   TROPHY GRID
───────────────────────────────────────── */
.trophy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: var(--spacing-xl);
  justify-items: center;
}

.trophy-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-sm);
  text-align: center;
}

.trophy-item__badge {
  width: 90px;
  height: 90px;
  border: 3px solid var(--ink-gold);
  background: linear-gradient(135deg, var(--parchment-light), var(--parchment-dark));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  clip-path: polygon(
    50% 0%, 65% 25%, 95% 25%, 75% 50%,
    85% 80%, 50% 65%, 15% 80%, 25% 50%,
    5% 25%, 35% 25%
  );
  transition: transform var(--transition-fast), filter var(--transition-fast);
  box-shadow: 2px 2px 8px rgba(184,132,30,0.3);
}

.trophy-item:hover .trophy-item__badge {
  transform: scale(1.1) rotate(5deg);
  filter: brightness(1.1);
}

.trophy-item.locked .trophy-item__badge {
  filter: grayscale(1) opacity(0.4);
  border-color: var(--ink-faded);
}

.trophy-item__name {
  font-family: var(--font-title);
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
}

.trophy-item__desc {
  font-size: 0.6rem;
  color: var(--ink-faded);
  line-height: 1.4;
}

.trophy-item.locked .trophy-item__name {
  color: var(--ink-faded);
}

/* ─────────────────────────────────────────
   BIOGRAPHY TIMELINE
───────────────────────────────────────── */
.timeline {
  position: relative;
  padding-left: 40px;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 12px; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--ink-gold), var(--ink), var(--ink-red));
}

.timeline-item {
  position: relative;
  margin-bottom: var(--spacing-xl);
}

.timeline-item::before {
  content: attr(data-year);
  position: absolute;
  left: -40px;
  top: 0;
  width: 28px;
  height: 28px;
  background: var(--ink);
  color: var(--parchment-light);
  border: 2px solid var(--ink-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-title);
  font-size: 0.5rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.1;
  box-shadow: 0 0 0 4px var(--paper-bg);
  z-index: 1;
}

.timeline-item__content {
  border: 2px solid var(--ink);
  background: var(--parchment-light);
  padding: var(--spacing-md) var(--spacing-lg);
  box-shadow: 3px 3px 0 var(--ink-faded);
}

.timeline-item__year {
  font-family: var(--font-title);
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--ink-red);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: var(--spacing-xs);
}

.timeline-item__title {
  font-family: var(--font-title);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink);
  margin-bottom: var(--spacing-sm);
}

.timeline-item__text {
  font-size: 0.85rem;
  color: var(--ink-faded);
  line-height: 1.7;
}

/* ─────────────────────────────────────────
   INDEX / TABLE OF CONTENTS
───────────────────────────────────────── */
.toc-list {
  list-style: none;
  counter-reset: toc-counter;
}

.toc-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md) 0;
  border-bottom: 1px dashed rgba(26,18,9,0.15);
  cursor: pointer;
  transition: background var(--transition-fast);
  border-radius: 2px;
  padding-left: var(--spacing-sm);
  counter-increment: toc-counter;
}

.toc-item:hover {
  background: rgba(184, 132, 30, 0.08);
  padding-left: var(--spacing-md);
}

.toc-item__number {
  font-family: var(--font-title);
  font-size: 1.8rem;
  font-weight: 900;
  color: rgba(26, 18, 9, 0.15);
  min-width: 48px;
  line-height: 1;
}

.toc-item__content { flex: 1; }

.toc-item__title {
  font-family: var(--font-title);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
}

.toc-item__subtitle {
  font-size: 0.75rem;
  color: var(--ink-faded);
  font-family: var(--font-body);
}

.toc-item__dots {
  flex: 1;
  border-bottom: 2px dotted rgba(26,18,9,0.2);
  margin: 0 var(--spacing-sm);
  height: 1px;
  align-self: flex-end;
  margin-bottom: 4px;
}

.toc-item__page {
  font-family: var(--font-title);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--ink-faded);
  min-width: 32px;
  text-align: right;
}

.toc-item__icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}

/* ─────────────────────────────────────────
   SPORT CARDS
───────────────────────────────────────── */
.sport-tab {
  display: flex;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-xl);
  border-bottom: 3px solid var(--ink);
}

.sport-tab__btn {
  padding: var(--spacing-sm) var(--spacing-lg);
  border: 2px solid var(--ink);
  border-bottom: none;
  background: var(--parchment-dark);
  font-family: var(--font-title);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ink-faded);
  cursor: pointer;
  transition: all var(--transition-fast);
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  border-radius: 4px 4px 0 0;
  position: relative;
  top: 3px;
}

.sport-tab__btn.active {
  background: var(--ink);
  color: var(--parchment-light);
  border-color: var(--ink);
}

.sport-tab__btn:hover:not(.active) {
  background: rgba(26,18,9,0.08);
  color: var(--ink);
}

/* ─────────────────────────────────────────
   ALERTS / NOTICES
───────────────────────────────────────── */
.alert {
  padding: var(--spacing-md) var(--spacing-lg);
  border-left: 4px solid var(--ink-gold);
  background: rgba(184, 132, 30, 0.08);
  margin-bottom: var(--spacing-lg);
  font-size: 0.85rem;
  color: var(--ink);
  border-radius: 0 4px 4px 0;
}

.alert--red {
  border-left-color: var(--ink-red);
  background: rgba(122, 24, 24, 0.06);
}

.alert--green {
  border-left-color: var(--green-victory);
  background: rgba(45, 107, 34, 0.06);
}

/* ─────────────────────────────────────────
   LOADING STATE
───────────────────────────────────────── */
@keyframes inkDrop {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.6; }
}

.loading-dots span {
  display: inline-block;
  animation: inkDrop 1.2s ease infinite;
  font-size: 1.5rem;
}
.loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.loading-dots span:nth-child(3) { animation-delay: 0.4s; }

/* ─────────────────────────────────────────
   TAG / PILL
───────────────────────────────────────── */
.tag {
  display: inline-block;
  padding: 3px 8px;
  border: 1.5px solid currentColor;
  font-family: var(--font-title);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 2px;
}

.tag--sport-football { color: #2a5f1a; border-color: #2a5f1a; background: rgba(42,95,26,0.08); }
.tag--sport-mma      { color: #6b1a1a; border-color: #6b1a1a; background: rgba(107,26,26,0.08); }
.tag--sport-f1       { color: #1a2a6b; border-color: #1a2a6b; background: rgba(26,42,107,0.08); }

/* ─────────────────────────────────────────
   ACTIONS DROPDOWN
   ───────────────────────────────────────── */
.actions-dropdown {
  position: relative;
  display: inline-block;
  z-index: 10;
}

/* Eleva a linha e célula ativa acima das outras quando o dropdown estiver ativo */
tr:has(.actions-dropdown-menu.active) {
  position: relative;
  z-index: 1000;
}

td:has(.actions-dropdown-menu.active) {
  position: relative;
  z-index: 1000;
}

.actions-dropdown:has(.actions-dropdown-menu.active) {
  z-index: 1001;
}

.actions-dropdown-menu {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  background: var(--parchment-light);
  border: 2px solid var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  z-index: 1002;
  min-width: 140px;
  border-radius: 2px;
}

.actions-dropdown-menu.active {
  display: block;
}

.actions-dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  width: 100%;
  padding: 8px 12px;
  border: none;
  background: transparent;
  color: var(--ink);
  font-family: var(--font-title);
  font-size: 0.72rem;
  text-align: left;
  cursor: pointer;
  text-transform: uppercase;
  font-weight: 700;
  transition: background var(--transition-fast);
}

.actions-dropdown-item:hover {
  background: rgba(184, 132, 30, 0.08);
}

.actions-dropdown-item--green {
  color: var(--green-victory) !important;
}

.actions-dropdown-item--red {
  color: var(--red-defeat) !important;
}

.actions-dropdown-item--danger {
  color: var(--ink-red-bright) !important;
  border-top: 1.5px dashed rgba(26, 18, 9, 0.15);
}

/* ─────────────────────────────────────────
   PROFILE PAGE COMPONENTS
   ───────────────────────────────────────── */
.profile-avatar-container {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 4px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink-gold);
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--parchment-light);
}

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

.profile-upload-zone {
  border: 2.5px dashed var(--ink-faded);
  border-radius: 4px;
  padding: var(--spacing-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-sm);
  cursor: pointer;
  background: rgba(90, 74, 50, 0.02);
  transition: border-color var(--transition-fast), background var(--transition-fast);
}

.profile-upload-zone:hover {
  border-color: var(--ink-gold);
  background: rgba(184, 132, 30, 0.04);
}

#edit-avatar-preview {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 2.5px solid var(--ink);
  object-fit: cover;
}

/* ─────────────────────────────────────────
   MOBILE RESPONSIVE COMPONENTS & TOUCH ERGONOMICS
   ───────────────────────────────────────── */
@media (max-width: 768px) {
  /* Stat Cards Grid */
  .stat-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--spacing-sm) !important;
  }

  .stat-card {
    padding: var(--spacing-sm);
  }

  .stat-card__value {
    font-size: 1.35rem;
  }

  .stat-card__label {
    font-size: 0.55rem;
  }

  /* Form Controls Ergonomics */
  .form-grid {
    grid-template-columns: 1fr !important;
    gap: var(--spacing-md);
  }

  .form-grid .form-field[style*="grid-column"] {
    grid-column: span 1 !important;
  }

  .op-form {
    padding: var(--spacing-md);
  }

  .form-input, select.form-input, .btn, button {
    min-height: 44px;
    font-size: 0.9rem;
  }

  /* Tables Touch Ergonomics */
  .data-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: var(--spacing-lg);
  }

  .data-table {
    font-size: 0.8rem;
    min-width: 600px; /* Garante scroll suave sem espremer colunas */
  }

  .data-table thead th, .data-table tbody td {
    padding: 10px 12px;
  }

  .actions-dropdown-btn {
    min-height: 38px;
    padding: 6px 10px;
    font-size: 0.75rem;
  }

  .actions-dropdown-item {
    min-height: 44px;
    font-size: 0.8rem;
  }

  /* Video Filter Pills & Player */
  .video-filters {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
    padding-bottom: var(--spacing-xs);
    -webkit-overflow-scrolling: touch;
  }

  .video-filter-pill {
    min-height: 38px;
    padding: 8px 16px;
    font-size: 0.8rem;
    flex-shrink: 0;
  }

  .video-modal-content {
    width: 95vw !important;
    max-height: 90vh !important;
    padding: var(--spacing-md) !important;
  }

  /* Chart Canvas Wrappers */
  .chart-container, .chart-wrapper {
    position: relative;
    max-height: 260px;
  }

  /* Betfair Odds Cards on Mobile */
  .betfair-event-card {
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-sm);
  }

  .betfair-odds-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-sm);
    width: 100%;
  }

  .betfair-odd-btn {
    min-height: 48px;
    font-size: 0.95rem;
  }
}

@media (max-width: 400px) {
  .stat-grid {
    grid-template-columns: 1fr;
  }
}
