:root {
  /* Brand palette */
  --brand-green:    #22C55E;
  --brand-green-h:  #16a34a;
  --brand-navy:     #0B1220;

  /* Page structure — dark premium theme */
  --bg:             #0B1220;
  --panel:          #111827;
  --border:         #1F2937;
  --text:           #E5E7EB;
  --muted:          #9CA3AF;
  --error:          #EF4444;
  --warning:        #F59E0B;

  /* Accent */
  --accent:         #22C55E;
  --accent-strong:  #16a34a;

  /* Card tokens */
  --card:           #111827;
  --card-bg:        #111827;
  --surface:        #131f2e;
  --card-hover:     #1a2539;
  --text-muted:     #9CA3AF;
  --text-secondary: #9CA3AF;
  --danger:         #EF4444;

  /* Status colors */
  --color-green:  #22C55E;
  --color-red:    #EF4444;
  --color-yellow: #F59E0B;
  --color-blue:   #3B82F6;

  /* Sidebar */
  --sidebar-bg:            #0F172A;
  --sidebar-border:        rgba(255,255,255,0.06);
  --sidebar-text:          #6B7280;
  --sidebar-text-hover:    #E5E7EB;
  --sidebar-active-bg:     rgba(34,197,94,0.10);
  --sidebar-active-border: #22C55E;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
}

/* ── Login page ─────────────────────────────────────────────────────────── */
#login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: #0B1220;
}

.login-card {
  background: #111827;
  border: 1px solid #1F2937;
  border-radius: 16px;
  padding: 2.5rem 2.5rem;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.50);
}

.login-brand {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--brand-green);
  margin-bottom: 0.25rem;
  letter-spacing: 0.02em;
}

.login-card h2 {
  margin-top: 0;
  margin-bottom: 1.75rem;
  font-size: 1rem;
  font-weight: 400;
  color: var(--muted);
}

.login-hint {
  font-size: 0.85rem;
  color: var(--muted);
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

.login-divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 1.25rem 0;
}

/* ── App shell ──────────────────────────────────────────────────────────── */
#app-shell {
  display: flex;
  height: 100vh;
  overflow: hidden;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

#main-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

/* ── Top Header Bar ──────────────────────────────────────────────────────── */
#top-header {
  height: 56px;
  min-height: 56px;
  background: #0F172A;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 20px;
  gap: 12px;
  z-index: 100;
  flex-shrink: 0;
}

.top-header-club {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px 4px 4px;
  border-radius: 8px;
  border: 1px solid var(--border);
  cursor: pointer;
  flex-shrink: 0;
}
.top-header-club-shield {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e3a5f, #3B82F6);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #fff;
  font-weight: 700;
  flex-shrink: 0;
}
.top-header-club-info { display: flex; flex-direction: column; line-height: 1.2; }
.top-header-club-name { font-size: 0.8rem; font-weight: 600; color: var(--text); }
.top-header-club-season { font-size: 0.7rem; color: var(--muted); }

.top-header-comp {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  flex-shrink: 0;
}
.top-header-comp-icon { font-size: 16px; }
.top-header-comp-info { display: flex; flex-direction: column; line-height: 1.2; }
.top-header-comp-name { font-size: 0.75rem; font-weight: 600; color: var(--text); }
.top-header-comp-label { font-size: 0.65rem; color: var(--muted); }

.top-header-search {
  flex: 1;
  max-width: 340px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 6px 12px;
}
.top-header-search input {
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 0.82rem;
  width: 100%;
}
.top-header-search input::placeholder { color: var(--muted); }
.top-header-search-icon { color: var(--muted); width: 14px; height: 14px; flex-shrink: 0; }

.top-header-spacer { flex: 1; }

.top-header-notif {
  position: relative;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  cursor: pointer;
  color: var(--muted);
  flex-shrink: 0;
}
.top-header-notif:hover { color: var(--text); background: rgba(255,255,255,0.08); }
.top-header-notif .notif-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  background: #EF4444;
  color: #fff;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  font-size: 0.6rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top-header-user {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px 4px 4px;
  border-radius: 8px;
  border: 1px solid var(--border);
  cursor: pointer;
  flex-shrink: 0;
}
.top-header-user-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #374151, #6B7280);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.top-header-user-info { display: flex; flex-direction: column; line-height: 1.2; }
.top-header-user-name { font-size: 0.78rem; font-weight: 600; color: var(--text); }
.top-header-user-role { font-size: 0.65rem; color: var(--muted); }

.top-header-action-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: #22C55E;
  color: #0B1220;
  border: none;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s;
}
.top-header-action-btn:hover { background: #16a34a; }

/* ── Sidebar ────────────────────────────────────────────────────────────── */
#sidebar {
  width: 200px;
  min-width: 200px;
  background: var(--sidebar-bg);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 0 0 1rem;
}

.sidebar-brand {
  font-size: 1.15rem;
  font-weight: 800;
  color: #FFFFFF;
  padding: 1.25rem 1.25rem;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--sidebar-border);
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.sidebar-brand-logo {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #39FF14;
  box-shadow: 0 0 8px rgba(57,255,20,0.7);
  flex-shrink: 0;
}

.nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1;
}

.nav-list li {
  margin: 0;
}

.nav-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  padding: 0.65rem 1.25rem;
  background: none;
  border: none;
  border-left: 3px solid transparent;
  color: var(--sidebar-text);
  font-size: 0.875rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.nav-btn:hover {
  color: var(--sidebar-text-hover);
  background: rgba(255, 255, 255, 0.07);
}

.nav-btn.active {
  color: #FFFFFF;
  border-left-color: var(--sidebar-active-border);
  background: var(--sidebar-active-bg);
  font-weight: 600;
}

.sidebar-footer {
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--sidebar-border);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.sidebar-club-label {
  font-size: 0.72rem;
  color: var(--sidebar-text);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

#sidebar-club-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: #FFFFFF;
}

/* ── Content area ───────────────────────────────────────────────────────── */
#content {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem 1.75rem;
  min-width: 0;
}

.page-section { display: block; }
.page-section.hidden { display: none; }

.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 16px;
  flex-wrap: wrap;
}

.page-header h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #e2e8f0;
}

/* Section hero injection classes */
.ph-left { display: flex; align-items: center; gap: 16px; }

.ph-icon {
  width: 58px;
  height: 58px;
  border-radius: 15px;
  background: linear-gradient(135deg, #112240 0%, #1a3a5c 100%);
  border: 1.5px solid #1e4a7a;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #39FF14;
  flex-shrink: 0;
}

.ph-lucide-icon { width: 26px !important; height: 26px !important; }

.ph-title-group { display: flex; flex-direction: column; gap: 2px; }
.ph-title-group h2 { margin: 0; font-size: 1.5rem; font-weight: 700; color: #e2e8f0; line-height: 1.2; }
.ph-sub { font-size: 0.86rem; color: #8892B0; margin: 0; }

.ph-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Elevate action buttons inside page-header */
.ph-actions .btn-secondary, .ph-actions button.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 8px;
  border: none !important;
  background: #39FF14 !important;
  color: #0A192F !important;
  font-size: 0.86rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s;
}
.ph-actions .btn-secondary:hover, .ph-actions button.btn-secondary:hover { opacity: .88; }

.ph-actions .btn-export {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border-radius: 8px;
  border: 1.5px solid #2a3f5f !important;
  background: transparent !important;
  color: #c8d6e9 !important;
  font-size: 0.86rem;
  font-weight: 500;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.ph-actions .btn-export:hover { border-color: #39FF14 !important; color: #39FF14 !important; }

.ph-actions .btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 8px;
  border: none !important;
  background: #39FF14 !important;
  color: #0A192F !important;
  font-size: 0.86rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s;
}
.ph-actions .btn-primary:hover { opacity: .88; }

/* ── Legacy aliases ─────────────────────────────────────────────────────── */
main {
  padding: 0;
}

h2 {
  margin-top: 0;
  font-weight: 600;
}

h3 {
  margin: 1.5rem 0 0.5rem;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
}

#login-page form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 360px;
  background: #fff;
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
}

label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.85rem;
  color: var(--muted);
  font-weight: 500;
}

input,
select,
textarea {
  background: #FFFFFF;
  color: #0B1220;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 0.6rem 0.75rem;
  font-size: 0.95rem;
  outline: none;
  font-family: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
}

input::placeholder,
textarea::placeholder {
  color: #94a3b8;
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(26,93,43,0.12);
  color: #0B1220;
}

/* Chrome autofill fix — keep dark text */
input:-webkit-autofill,
input:-webkit-autofill:focus,
input:-webkit-autofill:hover,
select:-webkit-autofill,
textarea:-webkit-autofill {
  -webkit-text-fill-color: #0B1220 !important;
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
  box-shadow: 0 0 0 1000px #fff inset !important;
}

/* ── Primary button ── */
button, .btn-primary {
  background: var(--brand-green);
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  padding: 0.6rem 1.1rem;
  font-size: 0.9rem;
  cursor: pointer;
  font-weight: 600;
  transition: background 0.15s, transform 0.1s;
}

button:hover, .btn-primary:hover {
  background: var(--brand-green-h);
  transform: translateY(-1px);
}

article {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 4px rgba(44,62,80,0.06);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

th,
td {
  text-align: left;
  padding: 0.6rem 0.6rem;
  border-bottom: 1px solid var(--border);
}

th {
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.7rem;
  letter-spacing: 0.07em;
  background: var(--bg);
}

tbody tr:last-child td {
  border-bottom: none;
}

a {
  color: var(--accent);
  text-decoration: none;
  margin-right: 0.5rem;
}

a:hover {
  text-decoration: underline;
}

.error {
  color: var(--error);
  font-size: 0.85rem;
  min-height: 1.2em;
  margin: 0;
}

.empty {
  color: var(--muted);
  font-size: 0.9rem;
  font-style: italic;
}

.hidden {
  display: none !important;
}

.inline-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.85rem 1rem;
  align-items: end;
}

.inline-form .form-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 0.25rem;
}

.inline-form .form-actions button {
  width: auto;
  align-self: start;
}

.vertical-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  max-width: 400px;
  margin-top: 1rem;
}

.vertical-form .form-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.25rem;
  flex-wrap: wrap;
}

.vertical-form .form-actions button {
  width: auto;
}

.header-actions {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}

.btn-secondary {
  background: var(--brand-navy);
  color: #FFFFFF;
  border: none;
  padding: 0.45rem 1rem;
  font-size: 0.88rem;
  border-radius: 8px;
}

.btn-secondary:hover {
  background: var(--brand-navy-h);
  transform: translateY(-1px);
}

.btn-delete {
  background: transparent;
  color: #dc2626;
  border: 1px solid #dc2626;
  padding: 0.25rem 0.6rem;
  font-size: 0.8rem;
  border-radius: 6px;
  cursor: pointer;
  width: auto;
}

.btn-delete:hover {
  background: #dc2626;
  color: #fff;
}

.btn-edit {
  background: transparent;
  color: var(--accent);
  border: 1px solid var(--accent);
  padding: 0.25rem 0.6rem;
  font-size: 0.8rem;
  border-radius: 6px;
  cursor: pointer;
  width: auto;
}

.btn-edit:hover {
  background: var(--accent);
  color: #0f172a;
}

.row-actions {
  white-space: nowrap;
  display: flex;
  gap: 0.4rem;
  align-items: center;
}

.own-badge {
  display: inline-block;
  background: rgba(26,93,43,0.12);
  color: var(--brand-green);
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.1rem 0.45rem;
  border-radius: 10px;
  vertical-align: middle;
  margin-left: 0.35rem;
  letter-spacing: 0.03em;
  border: 1px solid rgba(26,93,43,0.22);
}

table {
  width: 100%;
}

thead th {
  position: sticky;
  top: 0;
  background: #F5F8FA;
  z-index: 1;
}

.divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 1rem 0;
}

.article-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}

.article-header h3 {
  margin: 0;
}

.filter {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: var(--muted);
  min-width: 180px;
}

.status-badge {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: capitalize;
  color: #fff;
  letter-spacing: 0.02em;
}

.status-badge.status-monitoring {
  background: #6b7280;
}

.status-badge.status-negotiating {
  background: #d97706;
  color: #1a1a1a;
}

.status-badge.status-signed {
  background: #16a34a;
}

.status-badge.status-rejected {
  background: #dc2626;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.summary-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.summary-value {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.1;
}

.summary-label {
  margin-top: 0.35rem;
  font-size: 0.85rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.bar-chart {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.bar-row {
  display: grid;
  grid-template-columns: 110px 1fr 40px;
  align-items: center;
  gap: 0.75rem;
}

.bar-label {
  font-size: 0.9rem;
  color: var(--text);
}

.bar-track {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 999px;
  height: 14px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 200ms ease-out;
}

.bar-fill.status-monitoring {
  background: #6b7280;
}

.bar-fill.status-negotiating {
  background: #d97706;
}

.bar-fill.status-signed {
  background: #16a34a;
}

.bar-fill.status-rejected {
  background: #dc2626;
}

.bar-fill.position-fill {
  background: var(--accent);
}

.bar-count {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
  text-align: right;
}

/* ── Section sub-heading ─────────────────────────────────────────────────── */
.section-sub-label {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin: 1.5rem 0 0.75rem;
}

/* ── Athlete status badges ───────────────────────────────────────────────── */
.status-badge {
  display: inline-block;
  padding: 0.2em 0.65em;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.athlete-status-monitorado {
  background: rgba(156, 163, 175, 0.18);
  color: #9ca3af;
}

.athlete-status-negociando {
  background: rgba(251, 191, 36, 0.18);
  color: #fbbf24;
}

.athlete-status-contratado {
  background: rgba(52, 211, 153, 0.18);
  color: #34d399;
}

.athlete-status-descartado {
  background: rgba(248, 113, 113, 0.18);
  color: #f87171;
}

/* ── Status summary cards (dashboard) ───────────────────────────────────── */
.status-card-monitorado {
  border-top: 3px solid #9ca3af;
}

.status-card-negociando {
  border-top: 3px solid #fbbf24;
}

.status-card-contratado {
  border-top: 3px solid #34d399;
}

.status-card-descartado {
  border-top: 3px solid #f87171;
}

/* ── Form grid 2 columns ─────────────────────────────────────────────────── */
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
}

.form-span-2 {
  grid-column: 1 / -1;
}

.age-badge {
  display: inline-block;
  background: rgba(57,255,20,0.15);
  color: var(--accent);
  border: 1px solid rgba(57,255,20,0.4);
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 2px 10px;
  white-space: nowrap;
  flex-shrink: 0;
}

.form-checkbox-row {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 0.6rem;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 500;
}
.form-checkbox-row input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
  flex-shrink: 0;
  cursor: pointer;
}

.form-sub-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
  background: rgba(57,255,20,0.04);
  border: 1px solid rgba(57,255,20,0.2);
  border-radius: 8px;
  padding: 1rem;
  margin-top: -0.25rem;
}

/* ── Squad grid ──────────────────────────────────────────────────────────── */
.position-group {
  margin-bottom: 2.5rem;
}

.position-group-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--muted);
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.player-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

/* ── Player card ─────────────────────────────────────────────────────────── */
.player-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 14px;
  width: 190px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.3);
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.15s, box-shadow 0.15s;
  text-align: center;
  position: relative;
  padding-top: 0;
}

.player-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.4);
  border-color: #39FF1440;
}

/* Card cover band */
.player-card::before {
  content: "";
  display: block;
  width: 100%;
  height: 72px;
  background: linear-gradient(135deg, #0d1f36 0%, #112240 60%, #0f3020 100%);
  border-radius: 14px 14px 0 0;
  position: absolute;
  top: 0;
  left: 0;
}

/* Circular avatar */
.player-photo {
  width: 86px;
  height: 86px;
  border-radius: 50%;
  border: 3px solid #39FF14;
  background: #0d1827;
  overflow: hidden;
  position: relative;
  margin: 28px auto 10px;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px #0a192f, 0 4px 12px rgba(0,0,0,0.4);
  z-index: 1;
}

.player-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.player-photo-placeholder {
  font-size: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1a3a5c 0%, #153322 100%);
}

.player-info {
  padding: 0 14px 8px;
  flex: 1;
  width: 100%;
}

.player-name {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--text);
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.3;
  margin-bottom: 2px;
}

.player-nickname {
  font-size: 0.76rem;
  color: #39FF14;
  font-style: italic;
  margin-bottom: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.player-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  font-size: 0.7rem;
  justify-content: center;
}

.player-meta span {
  background: rgba(255,255,255,0.06);
  border-radius: 4px;
  padding: 2px 6px;
  color: var(--muted);
}

/* ── Contract badge ──────────────────────────────────────────────────────── */
.contract-badge {
  font-weight: 600;
  border-radius: 4px;
  padding: 0.15em 0.5em;
}

.contractprofissional {
  background: rgba(59,130,246,0.18);
  color: #60a5fa;
}

.contractbase {
  background: rgba(52,211,153,0.18);
  color: #34d399;
}

.contratmprstimo,
.contractemprstimo {
  background: rgba(251,191,36,0.18);
  color: #fbbf24;
}

/* ── Card actions ────────────────────────────────────────────────────────── */
.card-actions {
  display: flex;
  gap: 6px;
  padding: 10px 12px;
  border-top: 1px solid var(--border);
  width: 100%;
}

.card-actions .btn-edit,
.card-actions .btn-delete {
  flex: 1;
  padding: 6px 0;
  font-size: 0.74rem;
  border-radius: 7px;
  cursor: pointer;
  border: none;
  font-weight: 600;
  transition: opacity 0.15s;
}

.card-actions .btn-edit {
  background: rgba(99,179,237,0.12);
  color: #63b3ed;
  border: 1px solid rgba(99,179,237,0.2);
}

.card-actions .btn-edit:hover { background: rgba(99,179,237,0.22); }

.card-actions .btn-delete {
  background: rgba(248,113,113,0.10);
  color: #f87171;
  border: 1px solid rgba(248,113,113,0.2);
}

.card-actions .btn-delete:hover { background: rgba(248,113,113,0.2); }

.card-actions .btn-secondary {
  padding: 6px 10px;
  font-size: 0.78rem;
  border-radius: 7px;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--border);
  color: var(--muted);
  cursor: pointer;
}
.card-actions .btn-secondary:hover { background: rgba(255,255,255,0.1); }

/* ── Photo upload 3×4 ────────────────────────────────────────────────────── */
.photo-upload-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.photo-upload-label {
  font-size: 0.85rem;
  color: var(--muted);
}

.photo-upload-row {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
}

.photo-upload-area {
  width: 120px;
  height: 160px;
  border: 2px dashed var(--border);
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  background: var(--bg);
  flex-shrink: 0;
  transition: border-color 0.2s, background 0.2s;
}

.photo-upload-area:hover {
  border-color: var(--accent);
  background: rgba(37, 99, 235, 0.06);
}

.photo-upload-area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#photo-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  pointer-events: none;
}

.photo-icon {
  font-size: 1.6rem;
  line-height: 1;
}

.photo-hint {
  font-size: 0.68rem;
  color: var(--muted);
  text-align: center;
  line-height: 1.3;
}

.photo-hint-sub {
  font-size: 0.6rem;
  color: var(--border);
  letter-spacing: 0.05em;
}

/* ── Staff card (Comissão Técnica) ───────────────────────────────────────── */
.staff-card {
  width: 220px;
}

.staff-card .player-meta span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Filter tabs ─────────────────────────────────────────────────────────── */
.filter-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.filter-tab { padding: 6px 16px; border-radius: 20px; border: 1px solid var(--border); background: var(--surface); color: var(--text-muted); font-size: 13px; cursor: pointer; transition: all .15s; }
.filter-tab.active, .filter-tab:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ── Treino cards ────────────────────────────────────────────────────────── */
.treino-date-group { margin-bottom: 28px; }
.treino-date-header { margin-bottom: 10px; }
.treino-date-label { font-size: 14px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.today-header .treino-date-label { color: var(--accent); }
.treino-cards-row { display: flex; flex-wrap: wrap; gap: 16px; }
.treino-card { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px; width: 280px; flex-shrink: 0; transition: box-shadow .15s; }
.treino-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.treino-today { border-color: var(--accent); }
.treino-modelo { border-style: dashed; }
.treino-card-top { display: flex; gap: 6px; align-items: center; margin-bottom: 8px; flex-wrap: wrap; }
.treino-categoria { font-size: 12px; color: var(--text-muted); margin-left: auto; }
.treino-titulo-h { font-size: 15px; font-weight: 600; color: var(--text); margin-bottom: 8px; }
.treino-meta-row { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--text-muted); margin-bottom: 12px; }
.treino-card-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.treino-card-actions button { font-size: 12px; padding: 4px 10px; }

/* Tipo pills */
.tipo-pill { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 10px; text-transform: capitalize; }
.tipo-técnico { background: #1e3a5f; color: #60a5fa; }
.tipo-físico  { background: #14532d; color: #4ade80; }
.tipo-tático  { background: #2e1065; color: #c084fc; }
.tipo-misto   { background: #451a03; color: #fb923c; }
.modelo-pill  { font-size: 11px; background: #1c2a1e; color: #86efac; padding: 2px 8px; border-radius: 10px; }

/* ── Treino detail ───────────────────────────────────────────────────────── */
.treino-detail-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px; margin-bottom: 24px; }
.treino-detail-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 20px; }
.treino-detail-header h3 { font-size: 20px; margin: 0 0 8px; }
.treino-detail-meta { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; font-size: 13px; color: var(--text-muted); }
.treino-descricao { margin-top: 10px; font-size: 14px; color: var(--text-muted); font-style: italic; }
.treino-detail-section { margin-top: 20px; border-top: 1px solid var(--border); padding-top: 16px; }
.treino-detail-section h4 { font-size: 15px; margin-bottom: 12px; }
.treino-detail-footer { display: flex; gap: 10px; margin-top: 20px; border-top: 1px solid var(--border); padding-top: 16px; flex-wrap: wrap; }
.atividades-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.atividades-table th { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--border); color: var(--text-muted); font-weight: 500; }
.atividades-table td { padding: 7px 10px; border-bottom: 1px solid var(--border); }
.atividades-table .btn-delete-atividade { background: transparent; border: none; color: var(--danger); cursor: pointer; font-size: 14px; }
.add-atividade-details { margin-top: 12px; }
.add-atividade-details summary { cursor: pointer; color: var(--accent); font-size: 13px; }
.atividade-form-inline { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.atividade-form-inline input, .atividade-form-inline select { padding: 6px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: 13px; }
.atividade-form-inline button { padding: 6px 14px; }
.atleta-checklist { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; max-height: 240px; overflow-y: auto; padding: 4px; }
.atleta-check { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.atleta-check input { accent-color: var(--accent); }
.checkbox-label { display: flex; align-items: center; gap: 8px; }

/* ── Medico filters ──────────────────────────────────────────────────────── */
/* ── Medical quick-action bar ─────────────────────────────────────────────── */
.med-quick-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.med-quick-btn {
  background: var(--surface);
  color: var(--text);
  border: 1.5px solid var(--border);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
  white-space: nowrap;
}
.med-quick-btn:hover {
  border-color: var(--accent);
  background: rgba(34,197,94,0.1);
  color: var(--accent);
  transform: none;
}

.medico-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }
.medico-filters input, .medico-filters select { padding: 8px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; color: var(--text); font-size: 13px; }
.medico-filters input { flex: 1; min-width: 160px; }

/* ── Medical timeline ────────────────────────────────────────────────────── */
.medico-timeline-container { position: relative; padding-left: 28px; }
.medico-timeline-container::before { content: ''; position: absolute; left: 10px; top: 0; bottom: 0; width: 2px; background: var(--border); }
.medico-entry { position: relative; margin-bottom: 20px; }
.medico-timeline-dot { position: absolute; left: -23px; top: 18px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--border); background: var(--bg); }
.medico-entry.status-em-tratamento .medico-timeline-dot { background: #f59e0b; border-color: #f59e0b; }
.medico-entry.status-afastado      .medico-timeline-dot { background: #ef4444; border-color: #ef4444; }
.medico-entry.status-liberado      .medico-timeline-dot { background: #22c55e; border-color: #22c55e; }
.medico-entry-content { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px; border-left: 4px solid var(--border); }
.medico-entry.status-em-tratamento .medico-entry-content { border-left-color: #f59e0b; }
.medico-entry.status-afastado      .medico-entry-content { border-left-color: #ef4444; }
.medico-entry.status-liberado      .medico-entry-content { border-left-color: #22c55e; }
.medico-entry-header { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.medico-atleta-info { display: flex; align-items: center; gap: 8px; }
.medico-atleta-photo { width: 36px; height: 48px; object-fit: cover; border-radius: 4px; }
.medico-atleta-photo-placeholder { width: 36px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--bg); border-radius: 4px; font-size: 18px; }
.medico-atleta-nome { font-size: 14px; font-weight: 600; }
.medico-atleta-nome em { font-weight: 400; color: var(--text-muted); font-style: normal; }
.medico-entry-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.medico-data { margin-left: auto; font-size: 12px; color: var(--text-muted); }
.medico-entry-body { margin-bottom: 10px; }
.medico-local { font-size: 13px; color: var(--text-muted); margin-bottom: 4px; }
.medico-descricao { font-size: 14px; }
.medico-entry-footer { display: flex; gap: 8px; flex-wrap: wrap; }
.medico-entry-footer button { font-size: 12px; padding: 4px 10px; }

/* ── Med KPI Cards ─────────────────────────────────────────────────────── */
.med-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
@media (max-width: 768px) { .med-kpi-row { grid-template-columns: repeat(2, 1fr); } }
.med-kpi-card { display: flex; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; }
.med-kpi-card-danger { border-left: 4px solid #ef4444; }
.med-kpi-card-warn   { border-left: 4px solid #f59e0b; }
.med-kpi-card-ok     { border-left: 4px solid #22c55e; }
.med-kpi-icon { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; flex-shrink: 0; }
.med-kpi-icon-total   { background: rgba(99,102,241,.15); color: #6366f1; }
.med-kpi-icon-afastado { background: rgba(239,68,68,.15);  color: #ef4444; }
.med-kpi-icon-trat    { background: rgba(245,158,11,.15); color: #f59e0b; }
.med-kpi-icon-lib     { background: rgba(34,197,94,.15);  color: #22c55e; }
.med-kpi-info { display: flex; flex-direction: column; }
.med-kpi-val   { font-size: 22px; font-weight: 700; line-height: 1.1; color: var(--text); }
.med-kpi-label { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* ── Med Hoje Panel (Atendimentos de Hoje) ───────────────────────────── */
.med-hoje-panel { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; margin-bottom: 20px; overflow: hidden; }
.med-hoje-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--border); font-size: 14px; font-weight: 700; color: var(--text); }
.btn-sm-outline { padding: 5px 12px; font-size: 12px; font-weight: 600; border: 1px solid var(--border); border-radius: 7px; background: var(--bg); color: var(--text); cursor: pointer; transition: all .15s; }
.btn-sm-outline:hover { background: var(--surface-hover, var(--surface)); border-color: var(--primary); color: var(--primary); }
.med-hoje-row { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--border); }
.med-hoje-row:last-child { border-bottom: none; }
.med-hoje-atleta-info { flex: 1; min-width: 0; }
.med-hoje-atleta-nome { font-size: 14px; font-weight: 600; }
.med-hoje-atleta-sub { font-size: 12px; color: var(--text-muted); }
.med-hoje-badges { display: flex; gap: 6px; align-items: center; flex-shrink: 0; }
.badge-sem-evo { background: #fef2f2; color: #dc2626; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 12px; }
.badge-com-evo { background: #f0fdf4; color: #16a34a; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 12px; }
.badge-finalizado { background: #eff6ff; color: #2563eb; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 12px; }
.med-hoje-actions { display: flex; gap: 6px; flex-shrink: 0; }
.med-hoje-empty { padding: 24px 16px; text-align: center; color: var(--text-muted); font-size: 13px; }
.med-hoje-atleta-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--bg); display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; overflow: hidden; }
.med-hoje-atleta-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* ── Dashboard Médico Alert ──────────────────────────────────────────── */
.dash-medico-alert { display: flex; align-items: center; gap: 10px; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 10px; padding: 12px 16px; margin-bottom: 16px; font-size: 13px; color: #9a3412; cursor: pointer; transition: all .15s; }
.dash-medico-alert:hover { background: #ffedd5; }
.dash-medico-alert-icon { font-size: 20px; flex-shrink: 0; }
.dash-medico-alert strong { font-weight: 700; }

/* ── Med Charts ───────────────────────────────────────────────────────── */
.med-charts-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 20px; }
@media (max-width: 900px) { .med-charts-row { grid-template-columns: 1fr; } }
.med-chart-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; }
.med-chart-title { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: 10px; }
.med-chart-body { min-height: 100px; }

/* ── Med Toolbar (tabs + filters) ────────────────────────────────────── */
.med-toolbar { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.med-tabs { display: flex; gap: 4px; background: var(--bg); border-radius: 10px; padding: 3px; border: 1px solid var(--border); flex-shrink: 0; }
.med-tab { background: transparent; border: none; color: var(--text-muted); font-size: 13px; font-weight: 500; padding: 7px 14px; border-radius: 7px; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: all .15s; }
.med-tab.active { background: var(--surface); color: var(--text); box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.med-toolbar .medico-filters { margin-bottom: 0; }

/* ── Med Por Atleta view ─────────────────────────────────────────────── */
.med-atleta-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 16px; margin-bottom: 14px; }
.med-atleta-card-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.med-atleta-card-id { display: flex; align-items: center; gap: 10px; }
.med-atleta-card-name strong { display: block; font-size: 15px; font-weight: 600; }
.med-atleta-card-name em { font-size: 12px; color: var(--text-muted); font-style: normal; }
.med-atleta-card-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.med-atleta-card-count { font-size: 12px; color: var(--text-muted); }
.btn-prontuario { font-size: 12px; padding: 5px 12px; white-space: nowrap; }
.med-pront-history { display: flex; flex-direction: column; gap: 6px; }
.med-pront-hist-item { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; padding: 6px 10px; background: var(--bg); border-radius: 6px; }
.med-pront-hist-data { color: var(--text-muted); flex-shrink: 0; }
.med-pront-hist-desc { flex: 1; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.med-pront-more { font-size: 12px; color: var(--text-muted); margin: 4px 0 0; }

/* Tipo pills medico */
.tipo-pill.tipo-medico-lesão               { background: rgba(231,76,60,.12);   color: #c0392b; border: 1px solid rgba(231,76,60,.25); }
.tipo-pill.tipo-medico-avaliação           { background: rgba(44,62,80,.10);    color: #2C3E50; border: 1px solid rgba(44,62,80,.20); }
.tipo-pill.tipo-medico-tratamento          { background: rgba(241,196,15,.15);  color: #8a6c00; border: 1px solid rgba(241,196,15,.30); }
.tipo-pill.tipo-medico-liberação           { background: rgba(26,93,43,.12);    color: #1A5D2B; border: 1px solid rgba(26,93,43,.25); }
.tipo-pill.tipo-medico-anamnese            { background: rgba(99,102,241,.12);  color: #4338ca; border: 1px solid rgba(99,102,241,.25); }
.tipo-pill.tipo-medico-avaliação-ortopédica { background: rgba(139,92,246,.12); color: #6d28d9; border: 1px solid rgba(139,92,246,.25); }

/* Status pills */
.status-pill { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 10px; }
.status-pill.status-em-tratamento { background: rgba(241,196,15,.15); color: #8a6c00; border: 1px solid rgba(241,196,15,.30); }
.status-pill.status-afastado      { background: rgba(231,76,60,.12);  color: #c0392b; border: 1px solid rgba(231,76,60,.25); }
.status-pill.status-liberado      { background: rgba(26,93,43,.12);   color: #1A5D2B; border: 1px solid rgba(26,93,43,.25); }

/* Gravidade pills */
.gravidade-pill { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 10px; }
.gravidade-pill.gravidade-leve     { background: rgba(26,93,43,.12);   color: #1A5D2B; border: 1px solid rgba(26,93,43,.25); }
.gravidade-pill.gravidade-moderada { background: rgba(241,196,15,.15); color: #8a6c00; border: 1px solid rgba(241,196,15,.30); }
.gravidade-pill.gravidade-grave    { background: rgba(231,76,60,.12);  color: #c0392b; border: 1px solid rgba(231,76,60,.25); }

/* Evolução panel */
.evolucao-panel { margin-top: 12px; border-top: 1px solid var(--border); padding-top: 12px; }
.evolucao-panel-content h5 { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); margin-bottom: 10px; }
.evolucao-item { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; font-size: 13px; }
.evolucao-data { flex-shrink: 0; color: var(--text-muted); width: 80px; }
.evolucao-desc { flex: 1; }
.btn-delete-evolucao { background: transparent; border: none; color: var(--danger); cursor: pointer; padding: 0 4px; }
.add-evolucao-form { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--border); }
.add-evolucao-form input[type="date"] { padding: 6px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: 13px; }
.add-evolucao-form textarea { flex: 1; min-width: 200px; padding: 6px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: 13px; resize: vertical; }
.add-evolucao-form button { padding: 6px 14px; align-self: flex-end; }

/* Medical alert badge on athlete cards */
.medical-badge { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 8px; }
.medical-afastado  { background: #450a0a; color: #fca5a5; }
.medical-tratamento { background: #451a03; color: #fbbf24; }

/* ═══════════════════════════════════════════════════════════════════
   CAMPOGRAMA
═══════════════════════════════════════════════════════════════════ */
.badge-pill { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: .75rem; font-weight: 700; background: var(--accent); color: white; text-transform: uppercase; letter-spacing: .04em; }
.cg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 16px; }
.cg-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.cg-card-header { display: flex; gap: 8px; align-items: center; }
.cg-card-name { font-size: 1.1rem; font-weight: 700; margin: 0; }
.cg-card-stats { display: flex; justify-content: space-between; color: var(--text-muted); font-size: .85rem; }
.cg-card-bar-wrap { background: var(--border); border-radius: 4px; height: 6px; }
.cg-card-bar { height: 6px; border-radius: 4px; background: var(--accent); transition: width .3s; }
.cg-card-bar.over { background: var(--danger); }
.cg-over-text { color: var(--danger); font-size: .8rem; margin: 0; }
.cg-card-actions { display: flex; gap: 8px; margin-top: 4px; }
.cg-card-actions button { flex: 1; }
.alert-banner { background: #450a0a; color: #fca5a5; border: 1px solid #7f1d1d; border-radius: 8px; padding: 10px 16px; margin-bottom: 12px; font-weight: 600; }

/* field layout */
.cg-field-layout { display: flex; gap: 20px; align-items: flex-start; margin-top: 16px; flex-wrap: wrap; }
.campo-wrapper { flex: 1; min-width: 280px; max-width: 480px; }
.campo-field {
  position: relative;
  width: 100%;
  background: linear-gradient(180deg, #14532d 0%, #166534 40%, #166534 60%, #14532d 100%);
  border: 3px solid #15803d;
  border-radius: 12px;
  padding: 24px 12px;
  min-height: 480px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  gap: 8px;
  overflow: hidden;
}
/* field markings */
.campo-markings { position: absolute; inset: 0; pointer-events: none; }
.campo-center-line { position: absolute; top: 50%; left: 8%; right: 8%; height: 2px; background: rgba(255,255,255,.3); transform: translateY(-50%); }
.campo-center-circle { position: absolute; top: 50%; left: 50%; width: 80px; height: 80px; border: 2px solid rgba(255,255,255,.3); border-radius: 50%; transform: translate(-50%, -50%); }
.campo-penalty-top { position: absolute; top: 8%; left: 25%; right: 25%; height: 60px; border: 2px solid rgba(255,255,255,.25); border-top: none; border-radius: 0 0 8px 8px; }
.campo-penalty-bot { position: absolute; bottom: 8%; left: 25%; right: 25%; height: 60px; border: 2px solid rgba(255,255,255,.25); border-bottom: none; border-radius: 8px 8px 0 0; }
.campo-goal-top { position: absolute; top: 4%; left: 38%; right: 38%; height: 18px; border: 2px solid rgba(255,255,255,.2); border-top: none; }
.campo-goal-bot { position: absolute; bottom: 4%; left: 38%; right: 38%; height: 18px; border: 2px solid rgba(255,255,255,.2); border-bottom: none; }

.campo-row { display: flex; justify-content: center; gap: 10px; position: relative; z-index: 1; }
.campo-slot {
  width: 72px; min-height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  border: 2px solid rgba(255,255,255,.4);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  cursor: pointer; transition: all .15s;
  padding: 4px;
  text-align: center;
}
.campo-slot:hover { background: rgba(255,255,255,.2); transform: scale(1.05); }
.campo-slot.empty { border-style: dashed; border-color: rgba(255, 100, 100, .7); background: rgba(255,50,50,.08); }
.campo-slot.selected { border-color: #fbbf24; box-shadow: 0 0 0 3px rgba(251,191,36,.4); }
.campo-slot.slot-titular { border-color: #60a5fa; background: rgba(96,165,250,.15); }
.campo-slot.slot-reserva { border-color: #fbbf24; background: rgba(251,191,36,.12); }
.campo-slot.slot-opcao  { border-color: #9ca3af; background: rgba(156,163,175,.12); }
.slot-initials { font-size: .8rem; font-weight: 700; color: white; line-height: 1; }
.slot-name { font-size: .6rem; color: rgba(255,255,255,.85); line-height: 1.2; max-width: 64px; word-break: break-word; }
.slot-salary { font-size: .55rem; color: #86efac; font-weight: 600; }

/* sidebar */
.cg-sidebar { flex: 0 0 260px; display: flex; flex-direction: column; gap: 12px; }
.cg-summary-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; }
.cg-summary-card h4 { margin: 0 0 10px; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.cg-summary-row { display: flex; justify-content: space-between; font-size: .88rem; padding: 4px 0; }
.cg-summary-row.highlight-row strong { font-size: 1.05rem; }
.cg-budget-bar-wrap { background: var(--border); border-radius: 4px; height: 8px; margin: 6px 0; }
.cg-budget-bar { height: 8px; border-radius: 4px; background: var(--accent); transition: width .3s; }
.cg-budget-bar.over { background: var(--danger); }
.cg-pos-label { font-weight: 700; margin: 0 0 10px; color: var(--accent); font-size: .95rem; }
.cg-pos-editor label { display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px; font-size: .85rem; color: var(--text-muted); }
.cg-pos-editor select, .cg-pos-editor input { padding: 7px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: .85rem; }

/* ═══════════════════════════════════════════════════════════════════
   FINANCEIRO
═══════════════════════════════════════════════════════════════════ */
.fin-summary-bar { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 20px; }
.fin-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; }
.fin-card.green { border-left: 4px solid #22c55e; }
.fin-card.red   { border-left: 4px solid var(--danger); }
.fin-card.blue  { border-left: 4px solid var(--accent); }
.fin-card-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: 6px; }
.fin-card-value { font-size: 1.35rem; font-weight: 700; }
.tab-bar { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
.tab-btn { background: transparent; border: none; border-bottom: 2px solid transparent; color: var(--text-muted); padding: 10px 16px; cursor: pointer; font-size: .9rem; transition: all .15s; }
.tab-btn:hover { color: var(--text); }
.tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }
.fin-tab-content { }
.fin-filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.fin-filters input, .fin-filters select { padding: 7px 10px; background: var(--card); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: .85rem; }
.fin-list, .sal-list { display: flex; flex-direction: column; gap: 8px; }
.fin-item { display: flex; justify-content: space-between; align-items: center; background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; gap: 12px; }
.fin-item-left { display: flex; gap: 12px; align-items: center; flex: 1; min-width: 0; }
.fin-item-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.fin-item-tipo { font-size: 1.2rem; font-weight: 800; width: 24px; text-align: center; }
.fin-item-tipo.receita { color: #22c55e; }
.fin-item-tipo.despesa { color: var(--danger); }
.fin-item-desc { font-weight: 600; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 300px; }
.fin-item-meta { font-size: .78rem; color: var(--text-muted); margin-top: 2px; }
.fin-item-valor { font-weight: 700; font-size: .95rem; }
.fin-item-valor.receita { color: #22c55e; }
.fin-item-valor.despesa { color: var(--danger); }
.btn-fin-delete, .btn-sal-delete { background: transparent; border: 1px solid var(--border); color: var(--danger); border-radius: 6px; padding: 4px 8px; cursor: pointer; font-size: .8rem; }
.fin-chart-wrap { padding: 16px; }
.fin-chart-wrap .bar-row { align-items: center; }
.fin-chart-wrap .bar-label { min-width: 100px; font-size: .85rem; }

/* ── Disciplinar ──────────────────────────────────────────────────── */
.disc-filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.disc-filters select { padding: 7px 10px; background: var(--card); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: .85rem; min-width: 200px; }
.disc-tab-btn { padding: 8px 18px; border: none; background: transparent; color: var(--text-muted); cursor: pointer; font-size: .88rem; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.disc-tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }
.disc-tab-content { }
.disc-table-wrap { overflow-x: auto; }
.disc-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.disc-table th { text-align: left; padding: 10px 12px; background: var(--card-hover); color: var(--text-muted); font-weight: 600; border-bottom: 1px solid var(--border); }
.disc-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.disc-table tbody tr:last-child td { border-bottom: none; }
.disc-table tbody tr:hover { background: var(--card-hover); }
.card-icon { display: inline-block; width: 14px; height: 18px; border-radius: 2px; vertical-align: middle; margin-right: 2px; box-shadow: 0 1px 3px rgba(0,0,0,.4); }
.card-amarelo { background: #facc15; }
.card-vermelho { background: #ef4444; }
.disc-status { display: inline-block; padding: 3px 8px; border-radius: 12px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.disc-status.suspenso { background: rgba(239,68,68,.15); color: #ef4444; border: 1px solid rgba(239,68,68,.3); }
.disc-status.pendurado { background: rgba(250,204,21,.15); color: #ca8a04; border: 1px solid rgba(250,204,21,.3); }
.disc-status.ok { background: rgba(34,197,94,.12); color: #22c55e; border: 1px solid rgba(34,197,94,.25); }
.row-suspenso { background: rgba(239,68,68,.05); }
.row-pendurado { background: rgba(250,204,21,.05); }
.row-cumprido td { opacity: .55; }
.btn-cumprir { font-size: .78rem; padding: 4px 10px; }
.btn-disc-delete { background: transparent; border: 1px solid var(--border); color: var(--danger); border-radius: 6px; padding: 4px 8px; cursor: pointer; font-size: .8rem; }
.btn-disc-delete:hover { background: rgba(239,68,68,.1); }

/* ── Dashboard Executivo ─────────────────────────────────────────── */
.dash-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }
.dash-header-left h2 { margin: 0 0 4px; font-size: 1.5rem; font-weight: 700; color: var(--text); }
.dash-header-left p { margin: 0; font-size: .85rem; color: var(--muted); }

/* Premium KPI cards — 6 col row */
.dash-kpi-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 16px; }
@media (max-width: 1100px) { .dash-kpi-grid { grid-template-columns: repeat(3, 1fr); } }

.kpi-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 14px 12px;
  transition: box-shadow .2s, border-color .2s;
  cursor: default;
}
.kpi-card:hover { box-shadow: 0 0 0 1px var(--border), 0 4px 16px rgba(0,0,0,.3); }

.kpi-icon {
  width: 36px; height: 36px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
  font-size: 17px;
}
.kpi-icon svg { width: 17px; height: 17px; }
.kpi-icon-green  { background: rgba(34,197,94,.15); color: #22C55E; }
.kpi-icon-red    { background: rgba(239,68,68,.15);  color: #EF4444; }
.kpi-icon-yellow { background: rgba(245,158,11,.15); color: #F59E0B; }
.kpi-icon-orange { background: rgba(249,115,22,.15); color: #F97316; }
.kpi-icon-blue   { background: rgba(59,130,246,.15); color: #3B82F6; }
.kpi-icon-gold   { background: rgba(234,179,8,.15);  color: #CA8A04; }

.kpi-value { font-size: 1.8rem; font-weight: 800; line-height: 1.1; color: var(--text); margin-bottom: 2px; }
.kpi-label { font-size: .75rem; color: var(--muted); font-weight: 500; margin-bottom: 4px; }
.kpi-trend { font-size: .72rem; font-weight: 600; }
.kpi-trend-up   { color: #22C55E; }
.kpi-trend-down { color: #EF4444; }
.kpi-trend-warn { color: #F59E0B; }
.kpi-trend-info { color: #3B82F6; }
.kpi-trend-neutral { color: var(--muted); }

/* Legacy colour classes for non-dashboard sections */
.kpi-alert { border-left: 3px solid #ef4444; } .kpi-alert .kpi-value { color: #ef4444; }
.kpi-warn  { border-left: 3px solid #f59e0b; } .kpi-warn  .kpi-value { color: #f59e0b; }
.kpi-positive { border-left: 3px solid #22c55e; } .kpi-positive .kpi-value { color: #22c55e; }
.kpi-accent   { border-left: 3px solid #22C55E; } .kpi-accent   .kpi-value { color: #22C55E; }
.kpi-blue   { border-left: 3px solid #3b82f6; } .kpi-blue   .kpi-value { color: #3b82f6; }
.kpi-teal   { border-left: 3px solid #06b6d4; } .kpi-teal   .kpi-value { color: #06b6d4; }
.kpi-red    { border-left: 3px solid #ef4444; } .kpi-red    .kpi-value { color: #ef4444; }
.kpi-yellow { border-left: 3px solid #f59e0b; } .kpi-yellow .kpi-value { color: #f59e0b; }
.kpi-green  { border-left: 3px solid #22c55e; } .kpi-green  .kpi-value { color: #22c55e; }
.kpi-purple { border-left: 3px solid #a855f7; } .kpi-purple .kpi-value { color: #a855f7; }
.kpi-orange { border-left: 3px solid #f97316; } .kpi-orange .kpi-value { color: #f97316; }
.kpi-gray   { border-left: 3px solid var(--text-muted); } .kpi-gray .kpi-value { color: var(--text-muted); }

/* Premium Dashboard Middle Row */
.dash-mid-row { display: grid; grid-template-columns: 5fr 3fr 3fr; gap: 12px; margin-bottom: 12px; }
@media (max-width: 1100px) { .dash-mid-row { grid-template-columns: 1fr; } }

.dash-bottom-row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px; margin-bottom: 12px; }
@media (max-width: 1100px) { .dash-bottom-row { grid-template-columns: 1fr 1fr; } }

/* Forma badges row */
.dash-forma-row { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.dash-res-badge { font-size: .72rem; font-weight: 800; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dash-res-v { background: rgba(34,197,94,.2); color: #22c55e; }
.dash-res-e { background: rgba(250,204,21,.15); color: #ca8a04; }
.dash-res-d { background: rgba(239,68,68,.15); color: #ef4444; }
.dash-res-prox { background: rgba(59,130,246,.15); color: #3b82f6; font-size: .9rem; }

/* Stats row under forma badges */
.dash-stats-row { display: flex; gap: 20px; border-top: 1px solid var(--border); padding-top: 12px; margin-top: 4px; }
.dash-stat-item { display: flex; flex-direction: column; gap: 2px; }
.dash-stat-val { font-size: 1.2rem; font-weight: 800; color: var(--text); }
.dash-stat-lbl { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.dash-stat-pct { color: #22C55E; }

/* Donut / Gauge containers */
.dash-donut-wrap { display: flex; align-items: center; justify-content: center; padding: 8px 0; }
.dash-donut-legend { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.dash-legend-item { display: flex; align-items: center; gap: 8px; font-size: .78rem; color: var(--muted); }
.dash-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.dash-legend-val { margin-left: auto; font-weight: 600; color: var(--text); }
.dash-center-pct { font-size: 1.3rem; font-weight: 800; color: var(--text); }

/* Gauge */
.dash-gauge-wrap { display: flex; align-items: center; justify-content: center; padding: 4px 0 0; }
.dash-gauge-val { font-size: 2rem; font-weight: 800; color: var(--text); text-align: center; }
.dash-gauge-sub { font-size: .75rem; color: var(--muted); text-align: center; }
.dash-gauge-label { font-size: .78rem; color: #22C55E; font-weight: 600; text-align: center; }

/* Mini charts */
.dash-mini-chart { margin-top: 8px; }
.dash-mini-val { font-size: 1.6rem; font-weight: 800; color: #22C55E; margin-bottom: 2px; }
.dash-mini-sub { font-size: .75rem; color: var(--muted); }

/* Bar chart rows for custo por posição */
.dash-bar-row { display: flex; align-items: center; gap: 8px; font-size: .78rem; margin-bottom: 8px; }
.dash-bar-row-label { width: 90px; color: var(--muted); flex-shrink: 0; font-size: .72rem; }
.dash-bar-track { flex: 1; height: 6px; background: rgba(255,255,255,.08); border-radius: 3px; overflow: hidden; }
.dash-bar-fill { height: 100%; background: #22C55E; border-radius: 3px; transition: width .4s; }
.dash-bar-val { color: var(--text); font-weight: 600; width: 70px; text-align: right; font-size: .72rem; }

/* Scouting card */
.dash-scouting-num { font-size: 2.5rem; font-weight: 800; color: #22C55E; line-height: 1; margin-bottom: 4px; }
.dash-scouting-sub { font-size: .78rem; color: var(--muted); margin-bottom: 12px; }

.dash-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 768px) { .dash-two-col { grid-template-columns: 1fr; } }
.dash-jogo-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: .875rem; }
.dash-jogo-row:last-child { border-bottom: none; }
.dash-res-badge { font-size: .72rem; font-weight: 800; padding: 3px 7px; border-radius: 6px; min-width: 26px; text-align: center; }
.dash-res-v { background: rgba(34,197,94,.2); color: #22c55e; }
.dash-res-e { background: rgba(250,204,21,.15); color: #ca8a04; }
.dash-res-d { background: rgba(239,68,68,.15); color: #ef4444; }
.dash-res-prox { background: rgba(59,130,246,.15); color: #3b82f6; font-size: .9rem; }
.dash-jog-adv { flex: 1; font-weight: 600; }
.dash-jog-placar { font-weight: 700; font-size: .9rem; }
.dash-jog-meta { color: var(--text-muted); font-size: .78rem; }
.dash-top-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .875rem; }
.dash-top-row:last-child { border-bottom: none; }
.dash-top-rank { font-weight: 800; width: 20px; color: var(--text-muted); }
.dash-top-name { flex: 1; font-weight: 600; }
.dash-top-pos { color: var(--text-muted); font-size: .78rem; }
.dash-top-val { font-weight: 700; color: #22c55e; }

/* ── Jogos Module ────────────────────────────────────────────────── */
.jog-tab-btn { padding: 8px 16px; border: none; background: transparent; color: var(--text-muted); cursor: pointer; font-size: .88rem; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.jog-tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }
.jog-tab-content { padding-top: 4px; }
.jog-sub-title { font-size: .9rem; font-weight: 700; color: var(--text-muted); margin: 18px 0 8px; text-transform: uppercase; letter-spacing: .04em; }
.jog-card { display: flex; justify-content: space-between; align-items: center; background: var(--card); border: 1px solid var(--border); border-left: 4px solid var(--border); border-radius: 10px; padding: 14px 16px; margin-bottom: 8px; cursor: pointer; gap: 12px; transition: border-color .15s, box-shadow .15s; }
.jog-card:hover { box-shadow: 0 2px 12px rgba(0,0,0,.2); }
.jog-vitoria { border-left-color: #22c55e; }
.jog-empate { border-left-color: #f59e0b; }
.jog-derrota { border-left-color: #ef4444; }
.jog-card-left { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.jog-card-mando { font-size: 1.4rem; }
.jog-card-adversario { font-weight: 700; font-size: 1rem; }
.jog-card-meta { font-size: .78rem; color: var(--text-muted); margin-top: 2px; }
.jog-card-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.jog-placar { font-size: 1.4rem; font-weight: 800; letter-spacing: .04em; }
.jog-x { color: var(--text-muted); font-weight: 400; }
.jog-placar-pending { font-size: .85rem; color: var(--text-muted); }
.btn-jog-delete { background: transparent; border: 1px solid var(--border); color: var(--danger); border-radius: 6px; padding: 4px 8px; cursor: pointer; font-size: .8rem; }
.btn-jog-delete:hover { background: rgba(239,68,68,.1); }
.jog-stats-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-bottom: 20px; }
.jog-stat-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 12px; text-align: center; }
.jog-stat-num { font-size: 1.8rem; font-weight: 800; line-height: 1; margin-bottom: 4px; }
.jog-stat-label { font-size: .72rem; color: var(--text-muted); font-weight: 500; }
.jog-stat-v { color: #22c55e; }
.jog-stat-e { color: #f59e0b; }
.jog-stat-d { color: #ef4444; }

/* ── Súmula ──────────────────────────────────────────────────────── */
#jog-sumula { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 20px; margin-top: 16px; }
.sumula-header { margin-bottom: 12px; }
.sumula-title { font-size: 1.3rem; font-weight: 800; }
.sumula-meta { font-size: .82rem; color: var(--text-muted); margin-top: 2px; }
.sumula-placar-row { display: flex; align-items: center; gap: 16px; margin: 12px 0; flex-wrap: wrap; }
.sumula-placar-display { font-size: 2.4rem; font-weight: 900; letter-spacing: .05em; min-width: 80px; }
.sumula-placar-edit { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sumula-placar-edit input { background: var(--card-hover); border: 1px solid var(--border); border-radius: 6px; color: var(--text); padding: 6px 8px; font-size: 1.1rem; font-weight: 700; }
.sumula-tab-btn { padding: 8px 16px; border: none; background: transparent; color: var(--text-muted); cursor: pointer; font-size: .88rem; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.sumula-tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }
.sumula-tab-content { padding-top: 12px; }
.sumula-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .sumula-two-col { grid-template-columns: 1fr; } }
.sumula-two-col h4 { font-size: .85rem; font-weight: 700; color: var(--text-muted); margin-bottom: 8px; text-transform: uppercase; }
.sumula-atleta-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .85rem; }
.sumula-atleta-row:last-child { border-bottom: none; }
.sumula-atleta-name { flex: 1; font-weight: 600; }
.sumula-atleta-pos { color: var(--text-muted); font-size: .78rem; }
.sumula-atleta-min { color: var(--text-muted); font-size: .78rem; }
.btn-sumula-rm { background: transparent; border: 1px solid var(--border); color: var(--danger); border-radius: 4px; padding: 2px 6px; cursor: pointer; font-size: .75rem; }
.sumula-add-atleta, .sumula-add-evento { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.sumula-add-atleta select, .sumula-add-atleta input, .sumula-add-evento select, .sumula-add-evento input { background: var(--card-hover); border: 1px solid var(--border); border-radius: 6px; color: var(--text); padding: 6px 10px; font-size: .82rem; }
.sumula-evento-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .85rem; }
.sumula-evento-row:last-child { border-bottom: none; }
.sumula-evt-min { font-weight: 700; min-width: 32px; }
.sumula-evt-icone { font-size: 1rem; }
.sumula-evt-tipo { color: var(--text-muted); font-size: .78rem; min-width: 100px; }
.sumula-evt-atleta { flex: 1; font-weight: 600; }
.btn-sumula-del-evt { background: transparent; border: 1px solid var(--border); color: var(--danger); border-radius: 4px; padding: 2px 6px; cursor: pointer; font-size: .75rem; }

/* ── Timeline ────────────────────────────────────────────────────── */
.timeline { position: relative; padding-left: 60px; }
.tl-item { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; position: relative; border-bottom: 1px solid var(--border); }
.tl-item:last-child { border-bottom: none; }
.tl-min { position: absolute; left: -56px; width: 44px; text-align: right; font-weight: 700; font-size: .82rem; color: var(--text-muted); }
.tl-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); flex-shrink: 0; margin-top: 3px; }
.tl-info { font-size: .88rem; }
.tl-gol .tl-dot { background: #22c55e; }
.tl-assist .tl-dot { background: #3b82f6; }
.tl-amarelo .tl-dot { background: #facc15; }
.tl-vermelho .tl-dot { background: #ef4444; }
.tl-sub .tl-dot { background: #a855f7; }

/* ── Dashboard KPI grid expanded ─────────────────────────────────── */
.dash-kpi-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
.dash-three-col { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-bottom: 16px; }
@media (max-width: 900px) { .dash-three-col { grid-template-columns: 1fr; } }

/* ── Forma da equipe ─────────────────────────────────────────────── */
.dash-forma-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 4px 0; }
.forma-badge { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .85rem; cursor: default; }
.forma-v { background: rgba(34,197,94,.25); color: #22c55e; border: 2px solid #22c55e; }
.forma-e { background: rgba(250,204,21,.2); color: #ca8a04; border: 2px solid #ca8a04; }
.forma-d { background: rgba(239,68,68,.2); color: #ef4444; border: 2px solid #ef4444; }
.forma-legenda { font-size: .72rem; color: var(--text-muted); margin-left: 6px; }

/* ── Destaques ───────────────────────────────────────────────────── */
.destaque-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border); }
.destaque-row:last-child { border-bottom: none; }
.destaque-icon { font-size: 1.2rem; }
.destaque-info { flex: 1; }
.destaque-label { font-size: .72rem; color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.destaque-nome { font-size: .92rem; font-weight: 700; margin-top: 1px; }
.destaque-valor { font-weight: 800; color: var(--accent); font-size: .95rem; }

/* ── Performance Rankings ────────────────────────────────────────── */
.dash-rank-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .85rem; }
.dash-rank-row:last-child { border-bottom: none; }
.dash-rank-num { font-weight: 800; color: var(--text-muted); min-width: 18px; font-size: .78rem; }
.dash-rank-info { flex: 1; min-width: 0; }
.dash-rank-nome { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-rank-pos { font-size: .72rem; color: var(--text-muted); }
.dash-rank-val { font-weight: 800; font-size: .88rem; flex-shrink: 0; }

/* ── Status Físico / ACWR ────────────────────────────────────────── */
.acwr-row { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: .84rem; }
.acwr-row:last-child { border-bottom: none; }
.acwr-badge { font-size: .7rem; font-weight: 700; padding: 3px 7px; border-radius: 6px; white-space: nowrap; }
.acwr-alto { background: rgba(239,68,68,.2); color: #ef4444; }
.acwr-atencao { background: rgba(249,115,22,.15); color: #f97316; }
.acwr-ideal { background: rgba(34,197,94,.18); color: #22c55e; }
.acwr-sub { background: rgba(99,102,241,.15); color: #818cf8; }
.acwr-sem { background: rgba(148,163,184,.15); color: var(--text-muted); }
.acwr-nome { flex: 1; font-weight: 600; }
.acwr-pos { color: var(--text-muted); font-size: .78rem; }
.acwr-val { font-weight: 700; font-size: .8rem; color: var(--text-muted); }
.fitness-bar-wrap { }
.fitness-label { font-size: .8rem; color: var(--text-muted); margin-bottom: 6px; }
.fitness-bar-track { height: 10px; background: var(--card-hover); border-radius: 6px; overflow: hidden; }
.fitness-bar-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #4ade80); border-radius: 6px; transition: width .5s ease; }

/* ── Custo por Posição ───────────────────────────────────────────── */
.dash-custo-total { font-size: .85rem; color: var(--text-muted); text-align: right; }
.dash-custo-linha strong { color: var(--text); font-size: .9rem; }
.bar-count { font-size: .75rem; white-space: nowrap; }

/* ── Scouting ────────────────────────────────────────────────────── */
.scouting-filters { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.scouting-section-title { font-size: .85rem; font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: .05em; padding: 8px 0 4px; border-bottom: 1px solid var(--border); margin-bottom: 4px; }
.scout-toggle-wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.scout-toggle-wrap span { font-size: .9rem; font-weight: 500; }
.scouting-empresario-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Card de scouting */
#scouting-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.scouting-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.sc-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.sc-info { flex: 1; min-width: 0; }
.sc-name { font-size: 1rem; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-nick { font-weight: 400; color: var(--text-muted); }
.sc-meta { font-size: .8rem; color: var(--text-muted); margin-top: 2px; }
.sc-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.btn-sc-status { font-size: .75rem; padding: 4px 6px; border-radius: 6px; background: var(--card-hover); border: 1px solid var(--border); color: var(--text); cursor: pointer; }
.btn-sc-edit, .btn-sc-delete { padding: 4px 8px; font-size: .8rem; border-radius: 6px; background: var(--card-hover); border: 1px solid var(--border); cursor: pointer; color: var(--text); }
.sc-contacts { font-size: .82rem; color: var(--text-muted); }
.sc-contacts a { color: var(--accent); text-decoration: none; }
.sc-contacts a:hover { text-decoration: underline; }
.sc-empresario { font-size: .82rem; padding: 5px 10px; border-radius: 6px; background: rgba(99,102,241,.08); border: 1px solid rgba(99,102,241,.18); }
.sc-empresario a { color: var(--accent); text-decoration: none; }
.sc-sem-emp { background: var(--card-hover); border-color: var(--border); color: var(--text-muted); }
.sc-emp-label { font-weight: 500; }
.sc-notas { font-size: .8rem; color: var(--text-muted); border-top: 1px solid var(--border); padding-top: 6px; font-style: italic; }
.sc-links { display: flex; gap: 8px; flex-wrap: wrap; }
.sc-link { font-size: .78rem; padding: 3px 10px; border-radius: 20px; background: var(--card-hover); border: 1px solid var(--border); color: var(--text-muted); text-decoration: none; }
.sc-link:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ── Nota final barra (scouting card) ───────────────────────────── */
.sc-nota-wrap { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.sc-nota-label { font-size: .7rem; color: var(--text-muted); white-space: nowrap; }
.sc-nota-track { flex: 1; height: 5px; background: var(--card-hover); border-radius: 4px; overflow: hidden; }
.sc-nota-fill { height: 100%; background: linear-gradient(90deg, #6366f1, #22c55e); border-radius: 4px; transition: width .4s ease; }
.sc-nota-val { font-size: .75rem; font-weight: 700; color: var(--text); white-space: nowrap; }

/* ── Mercado / Demandas ─────────────────────────────────────────── */
.mercado-filters { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }

/* Demanda card */
#demandas-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.demanda-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; }
.demanda-card.demanda-fechada { opacity: .65; }
.demanda-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.demanda-info { flex: 1; min-width: 0; }
.demanda-pos { font-size: 1rem; font-weight: 700; color: var(--text); }
.demanda-prio { font-size: .8rem; color: #f59e0b; letter-spacing: .1em; }
.demanda-meta { font-size: .8rem; color: var(--text-muted); margin-top: 3px; }
.demanda-obs { font-size: .78rem; color: var(--text-muted); font-style: italic; margin-top: 4px; }
.demanda-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.btn-demanda-status { font-size: .75rem; padding: 4px 6px; border-radius: 6px; background: var(--card-hover); border: 1px solid var(--border); color: var(--text); cursor: pointer; }
.btn-demanda-edit, .btn-demanda-delete { padding: 4px 8px; font-size: .8rem; border-radius: 6px; background: var(--card-hover); border: 1px solid var(--border); cursor: pointer; color: var(--text); }
.demanda-footer { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.demanda-badge { font-size: .8rem; color: var(--text-muted); flex: 1; }
.demanda-badge strong { color: #22c55e; }
.demanda-badge-empty { font-size: .8rem; color: var(--text-muted); flex: 1; font-style: italic; }
.demanda-alerta { font-size: .78rem; color: #f59e0b; font-weight: 600; }
.btn-demanda-match { font-size: .78rem; padding: 5px 12px; border-radius: 6px; background: var(--accent); border: 1px solid var(--accent); color: #fff; cursor: pointer; font-weight: 600; }
.btn-demanda-match:disabled { opacity: .6; cursor: wait; }

/* Mercado resultado cards */
#mercado-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.mercado-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px; display: flex; gap: 12px; align-items: flex-start; }
.mc-score-ring { flex-shrink: 0; width: 52px; height: 52px; position: relative; }
.mc-score-ring svg { width: 52px; height: 52px; transform: rotate(-90deg); }
.mc-score-val { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: .85rem; font-weight: 800; color: var(--text); }
.mc-info { flex: 1; min-width: 0; }
.mc-name { font-size: .95rem; font-weight: 700; color: var(--text); }
.mc-meta { font-size: .78rem; color: var(--text-muted); margin-top: 2px; }
.mc-demanda { font-size: .78rem; color: var(--text-muted); margin-top: 2px; }
.mc-rec { display: inline-block; font-size: .72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; border: 1px solid; margin-top: 5px; text-transform: uppercase; letter-spacing: .04em; }
.mc-actions { display: flex; flex-direction: column; gap: 5px; flex-shrink: 0; align-items: flex-end; }
.btn-mercado-scouting { font-size: .73rem; padding: 4px 8px; border-radius: 6px; }

/* ═══════════════════════════════════════════════════════════════════
   SCOUT DRAWER
═══════════════════════════════════════════════════════════════════ */

/* Overlay */
.scout-drawer-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:200; backdrop-filter:blur(2px); }

/* Drawer panel */
.scout-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(480px, 100vw);
  background: var(--card);
  border-left: 1px solid var(--border);
  z-index: 201;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: -4px 0 32px rgba(0,0,0,.4);
}

/* Drawer header */
.scout-drawer-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 16px 18px;
  background: var(--sidebar);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.drawer-player-name { font-size: 1.05rem; font-weight: 800; color: var(--text); }
.drawer-player-info { font-size: .82rem; color: var(--text-muted); margin-top: 3px; }

/* Tabs */
.scout-drawer-tabs {
  display: flex; gap: 0;
  background: var(--sidebar);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.scout-tab-btn {
  flex: 1; padding: 10px 6px; background: none; border: none;
  font-size: .8rem; font-weight: 600; color: var(--text-muted);
  cursor: pointer; border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
}
.scout-tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); }
.scout-tab-btn:hover { color: var(--text); }

/* Tab content area */
.scout-tab-content {
  flex: 1; overflow-y: auto; padding: 18px;
  display: flex; flex-direction: column; gap: 12px;
}

/* Avaliação sliders */
.avaliacao-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.av-item { display: flex; flex-direction: column; gap: 4px; }
.av-header { display: flex; justify-content: space-between; align-items: center; }
.av-label { font-size: .8rem; font-weight: 600; color: var(--text-muted); }
.av-val { font-size: .9rem; font-weight: 800; color: var(--accent); }
.av-slider {
  width: 100%; accent-color: var(--accent);
  height: 4px; cursor: pointer;
}
.av-nota-final {
  text-align: center; font-size: .95rem; font-weight: 700;
  padding: 8px 12px; border-radius: 8px;
  background: var(--card-hover); border: 1px solid var(--border);
  color: var(--text); margin: 4px 0;
}
#avaliacao-historico { margin-top: 4px; border-top: 1px solid var(--border); padding-top: 10px; }
.av-hist-title { font-size: .75rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }
.av-hist-row { display: flex; align-items: center; gap: 8px; font-size: .78rem; padding: 4px 0; border-bottom: 1px solid var(--border); }
.av-hist-date { color: var(--text-muted); min-width: 60px; }
.av-hist-scores { flex: 1; color: var(--text); }
.av-hist-avg { color: var(--accent); font-weight: 600; }

/* Relatório action bar */
.relatorio-action-bar { display: flex; gap: 8px; flex-shrink: 0; padding-bottom: 12px; border-bottom: 1px solid var(--border); margin-bottom: 12px; }
#btn-baixar-pdf { background: var(--accent); color: #fff; border: none; padding: 8px 18px; border-radius: 8px; cursor: pointer; font-size: .85rem; font-weight: 700; }
#btn-baixar-pdf:hover { opacity: .9; }

/* Relatório preview */
.relatorio-preview { flex: 1; overflow-y: auto; }

/* ─ Relatório preview styles ─────────────────────────────────────── */
.rp-root { font-size: .85rem; color: var(--text); }
.rp-header { background: #1e293b; color: #fff; padding: 16px 18px; border-radius: 8px 8px 0 0; display: flex; justify-content: space-between; align-items: center; margin-bottom: 2px; }
.rp-title { font-size: 1.1rem; font-weight: 800; }
.rp-subtitle { font-size: .75rem; opacity: .75; margin-top: 2px; }
.rp-nota-circle { width: 54px; height: 54px; border-radius: 50%; border: 3px solid; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; }
.rp-nota-val { font-size: 1.1rem; font-weight: 900; line-height: 1; }
.rp-nota-lab { font-size: 7pt; font-weight: 600; opacity: .7; }
.rp-section { border: 1px solid var(--border); border-radius: 6px; overflow: hidden; margin: 8px 0; }
.rp-section-title { font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: #6366f1; background: var(--sidebar); padding: 6px 12px; border-bottom: 2px solid #6366f1; }
.rp-section-body { padding: 10px 12px; }
.rp-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; }
.rp-field { display: flex; flex-direction: column; }
.rp-label { font-size: .68rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; }
.rp-val { font-size: .88rem; font-weight: 500; color: var(--text); margin-top: 1px; }
.rp-bar-row { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.rp-bar-label { width: 54px; font-size: .75rem; font-weight: 600; color: var(--text-muted); }
.rp-bar-track { flex: 1; height: 7px; background: var(--card-hover); border-radius: 4px; overflow: hidden; }
.rp-bar-fill { height: 100%; border-radius: 4px; transition: width .4s ease; }
.rp-bar-val { width: 28px; font-size: .78rem; font-weight: 700; text-align: right; }
.rp-nota-destaque { background: rgba(99,102,241,.08); border: 2px solid; border-radius: 8px; padding: 10px 14px; display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.rp-analysis-block { margin-bottom: 8px; }
.rp-text-block { font-size: .82rem; line-height: 1.65; color: var(--text); white-space: pre-wrap; margin-top: 4px; }
.rp-conclusao { background: var(--sidebar); border-left: 4px solid #6366f1; padding: 10px 14px; border-radius: 0 6px 6px 0; font-style: italic; color: var(--text); line-height: 1.6; }

/* ═══════════════════════════════════════════════════════════════════
   CONTRATOS
═══════════════════════════════════════════════════════════════════ */

/* KPIs */
.contratos-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.ck-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; text-align: center; }
.ck-card.ck-warn { border-color: #f59e0b; background: rgba(245,158,11,.08); }
.ck-card.ck-money { border-color: #22c55e; background: rgba(34,197,94,.08); }
.ck-val { font-size: 1.6rem; font-weight: 900; color: var(--accent); margin-bottom: 4px; }
.ck-card.ck-warn .ck-val { color: #f59e0b; }
.ck-card.ck-money .ck-val { color: #22c55e; }
.ck-label { font-size: .75rem; color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }

/* Alert banners */
.cont-alert-banner { border-radius: 8px; padding: 12px 16px; margin-bottom: 8px; display: flex; align-items: flex-start; gap: 10px; }
.cont-alert-danger { background: rgba(239,68,68,.12); border: 1px solid #ef4444; }
.cont-alert-warning { background: rgba(245,158,11,.12); border: 1px solid #f59e0b; }
.cont-alert-info { background: rgba(99,102,241,.1); border: 1px solid #6366f1; }
.cont-alert-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }
.cont-alert-content { flex: 1; }
.cont-alert-title { font-size: .85rem; font-weight: 700; margin-bottom: 4px; }
.cont-alert-danger .cont-alert-title { color: #ef4444; }
.cont-alert-warning .cont-alert-title { color: #f59e0b; }
.cont-alert-info .cont-alert-title { color: #6366f1; }
.cont-alert-list { font-size: .78rem; color: var(--text); line-height: 1.6; }

/* Filters */
.contratos-filters { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; align-items: flex-end; }

/* Contract cards */
.contratos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.contrato-card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; transition: box-shadow .2s; }
.contrato-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.3); }
.contrato-card.cc-vencendo-30 { border-color: #ef4444; }
.contrato-card.cc-vencendo-60 { border-color: #f59e0b; }
.contrato-card.cc-vencendo-90 { border-color: #6366f1; }
.contrato-card.cc-encerrado { opacity: .65; }

.cc-header { padding: 12px 14px; background: var(--sidebar); display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); }
.cc-atleta-name { font-weight: 800; font-size: .95rem; color: var(--text); }
.cc-atleta-pos { font-size: .75rem; color: var(--text-muted); margin-top: 2px; }
.cc-status-badge { font-size: .7rem; font-weight: 700; padding: 3px 9px; border-radius: 10px; text-transform: uppercase; letter-spacing: .05em; }
.cc-status-ativo { background: rgba(34,197,94,.15); color: #22c55e; }
.cc-status-encerrado { background: rgba(239,68,68,.15); color: #ef4444; }
.cc-status-renovado { background: rgba(99,102,241,.15); color: #818cf8; }

.cc-body { padding: 12px 14px; }
.cc-row { display: flex; justify-content: space-between; align-items: center; font-size: .8rem; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.cc-row:last-child { border-bottom: none; }
.cc-row-label { color: var(--text-muted); font-weight: 600; }
.cc-row-val { color: var(--text); font-weight: 500; }
.cc-dias-badge { font-size: .72rem; font-weight: 700; padding: 2px 8px; border-radius: 8px; }
.cc-dias-danger { background: rgba(239,68,68,.2); color: #ef4444; }
.cc-dias-warning { background: rgba(245,158,11,.2); color: #f59e0b; }
.cc-dias-ok { background: rgba(34,197,94,.15); color: #22c55e; }
.cc-dias-encerrado { background: rgba(100,116,139,.15); color: #64748b; }

.cc-actions { display: flex; gap: 6px; padding: 10px 14px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.cc-actions button { font-size: .75rem; padding: 5px 12px; border-radius: 6px; cursor: pointer; border: 1px solid var(--border); background: var(--card-hover); color: var(--text); transition: background .15s; }
.cc-actions button:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.cc-actions .btn-danger:hover { background: #ef4444; border-color: #ef4444; }
.cc-actions .btn-success:hover { background: #22c55e; border-color: #22c55e; }

/* Historico inline */
.cc-historico { padding: 8px 14px 12px; border-top: 1px dashed var(--border); }
.cc-hist-title { font-size: .7rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }
.cc-hist-row { font-size: .73rem; display: flex; gap: 8px; padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,.04); color: var(--text-muted); }
.cc-hist-row:last-child { border-bottom: none; }
.cc-hist-tipo { font-weight: 700; min-width: 80px; }
.cc-hist-tipo-renovacao { color: #6366f1; }
.cc-hist-tipo-ajuste { color: #f59e0b; }
.cc-hist-tipo-encerramento { color: #ef4444; }

/* Atleta card contract badge */
.atleta-contrato-badge { display: inline-block; font-size: .65rem; font-weight: 700; padding: 2px 7px; border-radius: 8px; margin-top: 4px; }
.acb-ok { background: rgba(34,197,94,.15); color: #22c55e; }
.acb-warn90 { background: rgba(99,102,241,.15); color: #818cf8; }
.acb-warn60 { background: rgba(245,158,11,.15); color: #f59e0b; }
.acb-warn30 { background: rgba(239,68,68,.15); color: #ef4444; }
.acb-vencido { background: rgba(100,116,139,.15); color: #64748b; }

/* Dashboard contratos widget */
.dash-contratos-widget { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 14px; margin-top: 16px; }
.dash-contratos-widget h4 { font-size: .85rem; font-weight: 700; color: var(--text); margin-bottom: 10px; }
.dcw-row { display: flex; justify-content: space-between; align-items: center; padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: .8rem; }
.dcw-row:last-child { border-bottom: none; }
.dcw-atleta { color: var(--text); font-weight: 600; }
.dcw-dias { font-weight: 700; }

/* Modal */
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 300; backdrop-filter: blur(2px); }
.modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(--card); border: 1px solid var(--border); border-radius: 12px; width: min(500px, 95vw); max-height: 90vh; overflow-y: auto; z-index: 301; box-shadow: 0 8px 40px rgba(0,0,0,.5); }
.modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); background: var(--sidebar); }
.modal-header h3 { font-size: 1rem; font-weight: 700; color: var(--text); }
.modal form { padding: 20px; }

@media (max-width: 640px) {
  .contratos-kpis { grid-template-columns: 1fr; }
  .contratos-grid { grid-template-columns: 1fr; }
}

/* ── Agenda ──────────────────────────────────────────────────────────────── */
.ag-alerta { padding: .6rem 1rem; border-radius: 8px; margin-bottom: .5rem; font-size: .85rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.ag-alerta-hoje { background: #fef9c3; border: 1px solid #fde047; color: #713f12; }
.ag-alerta-prox { background: #f0f9ff; border: 1px solid #bae6fd; color: #0c4a6e; }
.ag-badge { display: inline-flex; align-items: center; gap: .25rem; padding: .15rem .55rem; border-radius: 999px; color: #fff; font-size: .75rem; font-weight: 600; white-space: nowrap; }
.ag-badge-outline { display: inline-flex; align-items: center; gap: .2rem; padding: .15rem .5rem; border-radius: 999px; background: transparent; border: 1px solid #cbd5e1; color: #475569; font-size: .78rem; white-space: nowrap; }

.agenda-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding: .75rem 0; margin-bottom: .5rem; border-bottom: 1px solid var(--border); }
.agenda-nav { display: flex; align-items: center; gap: .4rem; }
.ag-nav-btn { font-size: 1.2rem; padding: .2rem .6rem; min-width: 2rem; }
.ag-today-btn { font-size: .82rem; padding: .3rem .8rem; }
.ag-periodo-label { font-weight: 700; font-size: 1rem; color: var(--text-primary); min-width: 12rem; }
.agenda-view-tabs { display: flex; gap: .25rem; }
.ag-view-btn { padding: .3rem .85rem; border-radius: 999px; border: 1px solid var(--border); background: transparent; color: var(--text-secondary); font-size: .82rem; cursor: pointer; transition: background .15s; }
.ag-view-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }

/* Month view */
.ag-mes-grid { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.ag-mes-header { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--bg-card); border-bottom: 1px solid var(--border); }
.ag-mes-dow { text-align: center; font-size: .75rem; font-weight: 600; color: var(--text-secondary); padding: .4rem; text-transform: uppercase; }
.ag-mes-cells { display: grid; grid-template-columns: repeat(7, 1fr); }
.ag-mes-cell { border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: .35rem; min-height: 90px; background: var(--bg-main); }
.ag-mes-cell:nth-child(7n) { border-right: none; }
.ag-mes-other { background: var(--bg-card); opacity: .5; }
.ag-mes-today { background: #eff6ff; }
.ag-mes-day { font-size: .8rem; font-weight: 600; color: var(--text-secondary); display: block; margin-bottom: .2rem; }
.ag-today-dot { color: var(--accent); background: var(--accent); color: #fff; border-radius: 999px; padding: .05rem .35rem; }
.ag-mes-events { display: flex; flex-direction: column; gap: 2px; }
.ag-ev-chip { font-size: .7rem; padding: .1rem .35rem; border-radius: 4px; color: #fff; font-weight: 600; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: opacity .15s; }
.ag-ev-chip:hover { opacity: .85; }
.ag-ev-more { font-size: .7rem; color: var(--text-secondary); padding: .1rem .2rem; }

/* Week view */
.ag-semana-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .5rem; }
.ag-semana-col { background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; padding: .5rem; min-height: 150px; }
.ag-semana-today { border-color: var(--accent); background: #eff6ff; }
.ag-semana-dow { font-size: .72rem; font-weight: 600; color: var(--text-secondary); text-transform: uppercase; text-align: center; }
.ag-semana-date { font-size: 1.1rem; font-weight: 700; text-align: center; margin-bottom: .4rem; }
.ag-today-dot-sm { color: var(--accent); }
.ag-semana-evs { display: flex; flex-direction: column; gap: .25rem; }
.ag-ev-chip-v { background: var(--bg-main); border-radius: 6px; padding: .3rem .4rem; cursor: pointer; transition: background .15s; display: flex; flex-direction: column; gap: 2px; }
.ag-ev-chip-v:hover { background: var(--bg-hover); }
.ag-ev-icon { font-size: .9rem; }
.ag-ev-title { font-size: .78rem; font-weight: 600; color: var(--text-primary); }
.ag-ev-hora { font-size: .72rem; color: var(--text-secondary); }
.ag-empty-day { font-size: .78rem; color: var(--text-secondary); text-align: center; margin-top: .75rem; }

/* Lista view */
.ag-lista-date { padding: .5rem 0 .25rem; font-size: .8rem; font-weight: 700; color: var(--accent); text-transform: uppercase; border-bottom: 1px solid var(--border); margin-bottom: .25rem; }
.ag-lista-row { display: flex; align-items: center; gap: .75rem; padding: .6rem .5rem; border-radius: 8px; cursor: pointer; transition: background .15s; }
.ag-lista-row:hover { background: var(--bg-card); }
.ag-lista-icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; color: #fff; }
.ag-lista-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.ag-lista-info strong { font-size: .88rem; color: var(--text-primary); }
.ag-lista-hora, .ag-lista-local, .ag-lista-cat { font-size: .77rem; color: var(--text-secondary); }
.ag-lista-tipo { }

/* Detail panel */
#agenda-detail-panel { margin-top: 1rem; }
.ag-detail { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.ag-detail-header { padding: 1rem 1.25rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.ag-detail-tipo { margin-bottom: .25rem; display: block; }
.ag-detail-titulo { margin: 0; font-size: 1.15rem; color: var(--text-primary); }
.ag-detail-actions { display: flex; gap: .4rem; flex-shrink: 0; }
.ag-detail-body { padding: 1rem 1.25rem; display: flex; flex-direction: column; gap: .75rem; }
.ag-detail-meta { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .5rem; }
.ag-meta-item { display: flex; flex-direction: column; gap: 2px; }
.ag-meta-lbl { font-size: .72rem; color: var(--text-secondary); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.ag-detail-desc { background: var(--bg-main); border-radius: 8px; padding: .75rem; font-size: .85rem; }
.ag-detail-desc strong { display: block; margin-bottom: .25rem; font-size: .78rem; color: var(--text-secondary); }

/* Viagem detail */
.ag-detail-viagem { background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: .75rem; }
.ag-detail-viagem strong { display: block; margin-bottom: .4rem; color: #92400e; }
.ag-viagem-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .4rem; }
.ag-viagem-form-wrap { border: 1px solid var(--border); border-radius: 8px; padding: .75rem; }
.ag-viagem-form-wrap summary { cursor: pointer; font-size: .85rem; font-weight: 600; color: var(--accent); }

/* Participantes */
.ag-detail-participantes { }
.ag-detail-participantes strong { display: block; margin-bottom: .5rem; font-size: .85rem; }
.ag-part-list { display: flex; flex-wrap: wrap; gap: .35rem; }
.ag-part-chip { display: inline-flex; align-items: center; gap: .25rem; padding: .25rem .6rem; border-radius: 999px; background: var(--bg-main); border: 1px solid var(--border); font-size: .78rem; }
.ag-part-pos { color: var(--text-secondary); font-size: .72rem; }
.ag-part-rm { cursor: pointer; color: #ef4444; }

@media (max-width: 640px) {
  .ag-semana-grid { grid-template-columns: repeat(2, 1fr); }
  .ag-mes-cell { min-height: 60px; }
}

/* ── Avaliações Individuais ────────────────────────────────────────────────── */
.aval-filters { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.aval-filters select { min-width: 160px; }

.aval-layout { display: grid; grid-template-columns: 280px 1fr; gap: 1.25rem; align-items: start; }

/* Ranking Panel */
.aval-ranking-panel { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; padding: .75rem; position: sticky; top: 1rem; }
.aval-panel-title { margin: 0 0 .6rem; font-size: .9rem; color: var(--text-secondary); }
.aval-rank-row { display: flex; align-items: center; gap: .55rem; padding: .5rem .4rem; border-radius: 8px; cursor: pointer; transition: background .15s; }
.aval-rank-row:hover { background: var(--bg-hover); }
.aval-rank-selected { background: var(--accent-soft, #eff6ff) !important; border: 1px solid var(--accent); }
.aval-rank-pos { font-size: .75rem; font-weight: 700; color: var(--text-secondary); min-width: 18px; text-align: center; }
.aval-rank-info { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.aval-rank-info strong { font-size: .82rem; color: var(--text-primary); }
.aval-rank-pos-badge { font-size: .72rem; color: var(--text-secondary); }
.aval-rank-right { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.aval-tend { font-size: .9rem; }
.aval-rank-total { font-size: .7rem; color: var(--text-secondary); }

/* Detail Panel */
.aval-detail-panel { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; padding: 1rem; min-height: 300px; }
.aval-detail-empty { display: flex; align-items: center; justify-content: center; height: 200px; color: var(--text-secondary); font-size: .9rem; }

/* Athlete detail */
.aval-detalhe {}
.aval-detalhe-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border); padding-bottom: 1rem; flex-wrap: wrap; }
.aval-detalhe-foto { width: 64px; height: 85px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.aval-detalhe-foto-placeholder { width: 64px; height: 64px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1.5rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.aval-detalhe-nome { margin: 0; font-size: 1.1rem; }
.aval-detalhe-pos { font-size: .8rem; color: var(--text-secondary); display: block; }
.aval-detalhe-total { font-size: .78rem; color: var(--text-secondary); display: block; }
.aval-detalhe-nota-geral { margin-left: auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.aval-detalhe-label { font-size: .78rem; font-weight: 700; }

/* Scout compare */
.aval-scout-compare { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: .5rem .75rem; font-size: .82rem; color: #1e40af; margin-bottom: .75rem; }

/* Dimensions grid */
.aval-dims-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-bottom: 1rem; }
.aval-dim-card { background: var(--bg-main); border: 1px solid var(--border); border-radius: 10px; padding: .65rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: .35rem; }
.aval-dim-lbl { font-size: .75rem; color: var(--text-secondary); }
.aval-dim-bar { width: 100%; height: 5px; background: var(--border); border-radius: 999px; overflow: hidden; }
.aval-dim-fill { height: 100%; border-radius: 999px; transition: width .4s; }

/* Evolution chart */
.aval-evol { margin-bottom: 1rem; }
.aval-evol h4 { margin: 0 0 .4rem; font-size: .88rem; color: var(--text-secondary); }
.aval-sparkline { display: block; width: 100%; max-width: 100%; border-radius: 8px; }
.aval-no-data { color: var(--text-secondary); font-size: .82rem; }

/* Actions */
.aval-detalhe-actions { margin-bottom: .75rem; }

/* History */
.aval-historico { }
.aval-historico h4 { margin: 0 0 .5rem; font-size: .88rem; color: var(--text-secondary); border-top: 1px solid var(--border); padding-top: .75rem; }
.aval-hist-row { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; padding: .55rem 0; border-bottom: 1px solid var(--border); }
.aval-hist-left { display: flex; align-items: flex-start; gap: .6rem; flex: 1; }
.aval-hist-info { display: flex; flex-direction: column; gap: 2px; }
.aval-hist-info strong { font-size: .83rem; color: var(--text-primary); }
.aval-hist-obs { font-size: .78rem; color: var(--text-secondary); font-style: italic; }
.aval-hist-dims { display: flex; gap: .6rem; font-size: .75rem; color: var(--text-secondary); margin-top: 2px; }
.aval-hist-right { display: flex; gap: .3rem; }

/* Form Sliders */
.aval-sliders-grid { display: flex; flex-direction: column; gap: .6rem; background: var(--bg-main); border: 1px solid var(--border); border-radius: 10px; padding: .85rem; }
.aval-slider-row { display: grid; grid-template-columns: 130px 1fr 40px; align-items: center; gap: .6rem; }
.aval-slider-lbl { font-size: .82rem; font-weight: 600; color: var(--text-secondary); }
.aval-slider { width: 100%; accent-color: var(--accent); }
.aval-slider-val { font-size: .88rem; font-weight: 700; color: var(--accent); text-align: right; }
.aval-media-preview { text-align: center; padding: .35rem; font-size: .88rem; color: var(--text-secondary); border-top: 1px solid var(--border); margin-top: .2rem; }
.aval-media-preview strong { font-size: 1.2rem; color: var(--accent); }

@media (max-width: 900px) {
  .aval-layout { grid-template-columns: 1fr; }
  .aval-ranking-panel { position: static; }
  .aval-dims-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .aval-dims-grid { grid-template-columns: repeat(2, 1fr); }
  .aval-slider-row { grid-template-columns: 90px 1fr 36px; }
}

/* ═══════════════════════════════════════════════════════════
   FINANCEIRO PROFISSIONAL
════════════════════════════════════════════════════════════ */
.fin-mes-wrap { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.fin-kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 20px; }
@media (max-width: 900px) { .fin-kpi-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .fin-kpi-grid { grid-template-columns: 1fr 1fr; } }

.fin-kpi { background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; position: relative; overflow: hidden; transition: box-shadow .2s; }
.fin-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 4px 0 0 4px; }
.fin-kpi.green::before { background: #22c55e; }
.fin-kpi.red::before { background: #ef4444; }
.fin-kpi.blue::before { background: #3b82f6; }
.fin-kpi.orange::before { background: #f59e0b; }
.fin-kpi.danger::before { background: #ef4444; }
.fin-kpi-label { font-size: .75rem; color: var(--text-secondary); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.fin-kpi-value { font-size: 1.35rem; font-weight: 700; color: var(--text-primary); }
.fin-kpi-sub { font-size: .72rem; color: var(--text-secondary); margin-top: 2px; }

.fin-status-badge { display: inline-block; padding: 2px 8px; border-radius: 20px; font-size: .7rem; font-weight: 600; text-transform: uppercase; white-space: nowrap; }
.fin-item-obs { font-size: .74rem; color: var(--text-secondary); font-style: italic; margin-top: 2px; }

.sal-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.sal-breakdown { font-size: .74rem; color: var(--text-secondary); margin-top: 3px; }
.sal-total-preview { display: flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--text-secondary); padding: 8px 0; }

.fin-orc-table { width: 100%; border-collapse: collapse; margin-top: 12px; }
.fin-orc-table th { font-size: .78rem; color: var(--text-secondary); font-weight: 600; text-align: left; padding: 8px 12px; border-bottom: 2px solid var(--border); text-transform: uppercase; letter-spacing: .04em; }
.fin-orc-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: .88rem; color: var(--text-primary); }
.fin-orc-table tr:hover td { background: var(--bg-main); }
.orc-input { background: var(--bg-main); border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; color: var(--text-primary); font-size: .85rem; }

/* ═══════════════════════════════════════════════════════════
   NOTIFICAÇÕES
════════════════════════════════════════════════════════════ */
.notif-bell-btn { background: transparent; border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px; color: var(--text-primary); cursor: pointer; font-size: .9rem; display: flex; align-items: center; gap: 6px; position: relative; width: 100%; margin-bottom: 10px; transition: background .15s; }
.notif-bell-btn:hover { background: var(--bg-hover, #333); }
.notif-badge { background: #ef4444; color: #fff; font-size: .65rem; font-weight: 700; padding: 1px 5px; border-radius: 10px; min-width: 16px; text-align: center; }

.notif-panel { position: fixed; right: 0; top: 0; bottom: 0; width: 360px; max-width: 95vw; background: var(--bg-card); border-left: 1px solid var(--border); z-index: 300; display: flex; flex-direction: column; box-shadow: -4px 0 24px rgba(0,0,0,.3); }
.notif-panel-header { display: flex; align-items: center; gap: 8px; padding: 16px; border-bottom: 1px solid var(--border); font-weight: 700; font-size: .95rem; }
.notif-panel-header span { flex: 1; }
.btn-link { background: transparent; border: none; color: var(--accent); cursor: pointer; font-size: .78rem; padding: 0; text-decoration: underline; }
.btn-notif-close { background: transparent; border: none; color: var(--text-secondary); cursor: pointer; font-size: 1rem; padding: 4px 8px; border-radius: 6px; }
.btn-notif-close:hover { background: var(--bg-main); }

.notif-list { flex: 1; overflow-y: auto; }
.notif-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border); transition: background .15s; }
.notif-item:hover { background: var(--bg-main); }
.notif-lida { opacity: .6; }
.notif-icon { font-size: 1.3rem; flex-shrink: 0; margin-top: 2px; }
.notif-body { flex: 1; min-width: 0; }
.notif-titulo { font-size: .88rem; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notif-msg { font-size: .78rem; color: var(--text-secondary); margin-top: 2px; }
.notif-meta { display: flex; align-items: center; gap: 6px; font-size: .72rem; color: var(--text-secondary); margin-top: 4px; text-transform: capitalize; }
.notif-prio-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.notif-actions { display: flex; flex-direction: column; gap: 4px; flex-shrink: 0; }
.notif-actions .btn-secondary { font-size: .7rem; padding: 2px 6px; }

.notif-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 299; }

/* ── DOCUMENTOS ────────────────────────────────────────────────────────── */
.doc-kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }
.doc-kpi-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 10px; padding: 16px 20px; display: flex; flex-direction: column; gap: 6px; }
.doc-kpi-vencido { border-left: 4px solid #ef4444; }
.doc-kpi-proximo { border-left: 4px solid #f59e0b; }
.doc-kpi-label { font-size: .8rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; }
.doc-kpi-value { font-size: 2rem; font-weight: 700; color: var(--text); }

.doc-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }
.doc-filters input[type="text"] { flex: 1; min-width: 180px; padding: 8px 12px; background: var(--input-bg, #1e293b); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: .9rem; }
.doc-filters select { padding: 8px 12px; background: var(--input-bg, #1e293b); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: .9rem; }

.doc-tab-bar { display: flex; gap: 4px; margin-bottom: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--border); padding-bottom: 8px; }
.doc-tab { padding: 7px 14px; background: transparent; border: 1px solid var(--border); border-radius: 6px; color: var(--text-muted); font-size: .85rem; cursor: pointer; transition: all .2s; }
.doc-tab:hover { border-color: var(--accent); color: var(--accent); }
.doc-tab.active { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600; }

.doc-list { display: flex; flex-direction: column; gap: 10px; }

.doc-card { display: flex; align-items: flex-start; gap: 14px; background: var(--card-bg); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; transition: border-color .2s; }
.doc-card:hover { border-color: var(--accent); }
.doc-alerta-vencido { border-left: 4px solid #ef4444; }
.doc-alerta-proximo { border-left: 4px solid #f59e0b; }

.doc-card-icon { font-size: 1.8rem; flex-shrink: 0; margin-top: 2px; }

.doc-card-body { flex: 1; min-width: 0; }
.doc-card-titulo { font-size: 1rem; font-weight: 600; color: var(--text); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.doc-card-meta { display: flex; gap: 12px; font-size: .8rem; color: var(--text-muted); flex-wrap: wrap; align-items: center; }
.doc-tipo-tag { background: rgba(99,102,241,.15); color: #818cf8; padding: 2px 8px; border-radius: 10px; font-size: .75rem; font-weight: 600; }
.doc-obs { margin-top: 6px; font-size: .82rem; color: var(--text-muted); font-style: italic; white-space: pre-line; }

.doc-badge { font-size: .7rem; padding: 2px 7px; border-radius: 10px; font-weight: 700; }
.doc-badge-vencido { background: rgba(239,68,68,.15); color: #ef4444; }
.doc-badge-proximo { background: rgba(245,158,11,.15); color: #f59e0b; }

.doc-card-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.doc-card-actions button { font-size: .78rem; padding: 4px 10px; }

.doc-file-hint { display: block; margin-top: 4px; font-size: .78rem; color: var(--text-muted); }

.doc-athlete-badge { background: rgba(99,102,241,.12); color: #818cf8; padding: 2px 7px; border-radius: 10px; font-size: .72rem; font-weight: 600; cursor: default; }

@media (max-width: 768px) {
  .doc-kpi-grid { grid-template-columns: 1fr 1fr; }
  .doc-card { flex-wrap: wrap; }
  .doc-card-actions { flex-direction: row; }
}

/* ══════════════════════════════════════════════════════════════════
   REESTRUTURAÇÃO UX — Sidebar Agrupada + Novos Módulos
   ══════════════════════════════════════════════════════════════════ */

/* ── Sidebar redesign ─────────────────────────────────────────────── */
#sidebar {
  width: 240px;
  min-width: 240px;
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: .02em;
}

.sidebar-logo {
  font-size: 1.4rem;
}

.sidebar-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0 16px;
  display: flex;
  flex-direction: column;
}

.sidebar-scroll::-webkit-scrollbar { width: 4px; }
.sidebar-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.20); border-radius: 2px; }

/* standalone nav-btn (Dashboard, Relatórios) */
.sidebar-scroll > .nav-btn {
  padding: 9px 20px;
  font-size: .875rem;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 0;
}

/* ── Nav Group ──────────────────────────────────────────────────────── */
.nav-group {
  margin: 2px 0;
}

.nav-group-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 9px 20px;
  background: none;
  border: none;
  color: rgba(255,255,255,0.55);
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  cursor: pointer;
  transition: color .15s;
}

.nav-group-toggle:hover {
  color: rgba(255,255,255,0.90);
  transform: none;
}

.nav-group-arrow {
  margin-left: auto;
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0;
  transition: transform .2s;
}

.nav-group-toggle.open .nav-group-arrow {
  transform: rotate(0deg);
}

.nav-group-toggle:not(.open) .nav-group-arrow {
  transform: rotate(-90deg);
}

.nav-group-items {
  overflow: hidden;
}

.nav-group-items.collapsed {
  display: none;
}

.nav-group-items .nav-btn {
  padding: 8px 20px 8px 30px;
  font-size: .875rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  display: inline-block;
  vertical-align: middle;
  stroke-width: 2;
}

/* ── Sidebar footer redesign ──────────────────────────────────────── */
.sidebar-footer {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 16px;
}

.sidebar-club-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

/* ── Content area wider ───────────────────────────────────────────── */
#content {
  max-width: 1100px;
  padding: 1.75rem 2rem;
}

/* ── WELLNESS ─────────────────────────────────────────────────────── */
.wellness-kpi-row {
  display: flex;
  gap: 12px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.wellness-kpi {
  background: var(--card-bg, #1e293b);
  border: 1px solid var(--border);
  border-left: 4px solid var(--border);
  border-radius: 10px;
  padding: 14px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 160px;
}

.wkpi-label { font-size: .75rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.wkpi-val { font-size: 2rem; font-weight: 700; color: var(--text); }
.wkpi-sub { font-size: .78rem; color: var(--muted); }

.wellness-no-kpi {
  background: rgba(99,102,241,.08);
  border: 1px dashed var(--border);
  border-radius: 8px;
  padding: 12px 18px;
  color: var(--muted);
  font-size: .875rem;
  width: 100%;
}

.wellness-filters {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.wellness-filters select,
.wellness-filters input[type="date"] {
  padding: 8px 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  font-size: .9rem;
}

.wellness-sliders { display: flex; flex-direction: column; gap: 14px; padding: 16px 0; }
.wellness-metric { display: flex; align-items: center; gap: 12px; }
.wellness-metric-label { width: 160px; font-size: .85rem; color: var(--text); flex-shrink: 0; }
.wellness-scale { display: flex; align-items: center; gap: 8px; flex: 1; }
.ws-low, .ws-high { font-size: .7rem; color: var(--muted); white-space: nowrap; }
.wellness-slider { flex: 1; }
.wellness-val { width: 28px; text-align: center; font-weight: 700; color: var(--accent); }
.wellness-nivel-preview { background: rgba(56,189,248,.06); border: 1px solid var(--border); border-radius: 8px; padding: 10px 16px; font-size: .9rem; text-align: center; }

.wellness-list { display: flex; flex-direction: column; gap: 12px; }

.wellness-card {
  background: var(--card-bg, #1e293b);
  border: 1px solid var(--border);
  border-left: 4px solid var(--border);
  border-radius: 10px;
  padding: 16px;
}

.wellness-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.wellness-card-atleta { font-weight: 700; font-size: .95rem; }
.wellness-card-date { color: var(--muted); font-size: .82rem; }
.wellness-nivel-badge { font-size: .78rem; font-weight: 700; padding: 3px 10px; border-radius: 12px; }

.wellness-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}

.wm-item { display: flex; align-items: center; gap: 8px; }
.wm-label { font-size: .75rem; color: var(--muted); width: 70px; flex-shrink: 0; }
.wm-bar { flex: 1; height: 6px; background: rgba(255,255,255,.08); border-radius: 3px; overflow: hidden; }
.wm-fill { height: 100%; border-radius: 3px; transition: width .3s; }
.wm-val { font-size: .75rem; font-weight: 600; color: var(--text); width: 28px; text-align: right; }

.wellness-obs { font-size: .82rem; color: var(--muted); font-style: italic; margin: 6px 0; }
.wellness-card-actions { display: flex; gap: 8px; margin-top: 8px; }

/* ── Wellness v2: New professional module ────────────────────────── */
.wkpi-danger { border-color: #ef4444 !important; }
.wkpi-danger .wkpi-val { color: #ef4444; }
.wkpi-warn { border-color: #f59e0b !important; }
.wkpi-warn .wkpi-val { color: #f59e0b; }

.wellness-alertas {
  background: rgba(239,68,68,.08);
  border: 1px solid rgba(239,68,68,.35);
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.wf-alertas-title { font-weight: 700; font-size: .85rem; color: #f87171; }
.wf-alerta-item { font-size: .82rem; color: var(--text); border-left: 3px solid #ef4444; padding-left: 10px; }

.wf-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.wf-tab {
  padding: 7px 18px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: .85rem;
  transition: all .15s;
}
.wf-tab.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  font-weight: 600;
}

/* Card v2 */
.wellness-card-v2 {
  background: var(--card-bg, #1e293b);
  border: 1px solid var(--border);
  border-left: 4px solid var(--accent);
  border-radius: 10px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.wc-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.wc-atleta { display: flex; flex-direction: column; gap: 2px; }
.wc-name { font-weight: 700; font-size: 1rem; }
.wc-pos { font-size: .75rem; color: var(--muted); }
.wc-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.wc-date { font-size: .78rem; color: var(--muted); }
.wc-score-badge { font-size: .8rem; font-weight: 700; padding: 3px 10px; border-radius: 12px; }
.wc-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.wc-metric-group { display: flex; flex-direction: column; gap: 6px; }
.wcm-title { font-size: .72rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.wcm-rows { display: flex; flex-direction: column; gap: 5px; }
.wcm-row { display: flex; align-items: center; gap: 8px; font-size: .78rem; }
.wcm-row > span:first-child { width: 80px; flex-shrink: 0; color: var(--muted); }
.wcm-v { width: 36px; text-align: right; font-weight: 600; font-size: .75rem; flex-shrink: 0; }
.wcm-peso { font-weight: 600; font-size: .8rem; display: flex; align-items: center; gap: 4px; }
.wcm-perda { font-size: .72rem; color: #f59e0b; font-weight: 700; }
.wcm-dor-loc > span:last-child { font-weight: 600; font-size: .78rem; }
.wcm-urina { font-size: .72rem; font-weight: 700; }

.wf-mini-bar { flex: 1; height: 5px; background: rgba(255,255,255,.08); border-radius: 3px; overflow: hidden; min-width: 40px; }
.wf-mini-fill { height: 100%; border-radius: 3px; transition: width .3s; }
.wf-score-dot { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; font-size: .72rem; font-weight: 800; color: #fff; }

/* Urine colors */
.urina-ok { color: #38bdf8; }
.urina-atencao { color: #f59e0b; }
.urina-alerta { color: #ef4444; }
.wf-urina-status { font-size: .78rem; font-weight: 700; margin-left: 8px; }

/* Semanal view */
.wellness-semanal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.wf-semanal-card { padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; }
.wf-sem-header { display: flex; justify-content: space-between; align-items: flex-start; }
.wf-sem-nome { font-weight: 700; font-size: .95rem; }
.wf-sem-pos { font-size: .72rem; color: var(--muted); display: block; }
.wf-sem-score { font-size: 1.4rem; font-weight: 800; display: block; }
.wf-sem-n { font-size: .72rem; color: var(--muted); display: block; text-align: right; }
.wf-sem-metrics { display: flex; flex-direction: column; gap: 5px; }
.wf-sem-row { display: flex; align-items: center; gap: 8px; font-size: .78rem; }
.wf-sem-row > span:first-child { width: 80px; flex-shrink: 0; color: var(--muted); }
.wf-sem-row > span:last-child { width: 32px; text-align: right; font-size: .72rem; font-weight: 600; flex-shrink: 0; }

/* WF form sliders */
.wf-sliders-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-bottom: 12px; }
.wf-slider-item { display: flex; flex-direction: column; gap: 6px; }
.wf-slider-header { display: flex; justify-content: space-between; align-items: center; font-size: .82rem; }
.wf-slider-val { font-weight: 800; font-size: 1rem; color: var(--accent); }
.wf-slider-row { display: flex; align-items: center; gap: 8px; font-size: .7rem; color: var(--muted); }
.wf-slider { flex: 1; accent-color: var(--accent); }
.wf-urina-slider { accent-color: #38bdf8; }
.wf-section-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); margin: 10px 0 4px; }
.wf-score-preview {
  background: rgba(56,189,248,.07);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: .9rem;
}
.wf-score-preview strong { font-size: 1.6rem; font-weight: 800; }
.wf-score-label { padding: 3px 12px; border-radius: 12px; font-size: .78rem; font-weight: 700; }
.wf-urina-preview { display: flex; align-items: center; gap: 8px; margin-top: 4px; }

@media (max-width: 768px) {
  .wc-metrics { grid-template-columns: 1fr; }
  .wellness-semanal-grid { grid-template-columns: 1fr; }
  .wf-sliders-grid { grid-template-columns: 1fr; }
}

/* ── RELATÓRIOS ───────────────────────────────────────────────────── */
.relatorio-bloco {
  background: var(--card-bg, #1e293b);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px 24px;
  margin-bottom: 16px;
}

.relatorio-titulo {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  margin: 0 0 16px 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.relatorio-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}

.rel-kpi {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: rgba(255,255,255,.03);
  border-radius: 8px;
  padding: 12px 14px;
}

.rel-kpi-label { font-size: .75rem; color: var(--muted); }
.rel-kpi-val { font-size: 1.5rem; font-weight: 700; }

/* ── Responsive: collapse sidebar on mobile ───────────────────────── */
@media (max-width: 768px) {
  #content { padding: 1rem; max-width: 100%; }
  .wellness-metric { flex-wrap: wrap; }
  .wellness-metric-label { width: 100%; }
  .relatorio-kpis { grid-template-columns: 1fr 1fr; }
}

@media print {
  #sidebar, .page-header button, .sidebar-footer { display: none !important; }
  #content { max-width: 100%; padding: 0; }
  .relatorio-bloco { break-inside: avoid; border: 1px solid #ccc; }
}

/* ══════════════════════════════════════════════════════════════════
   PROGRAMAÇÃO DE TREINOS
   ══════════════════════════════════════════════════════════════════ */

/* KPI strip */
.prog-kpi-row {
  display: flex;
  gap: 12px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.prog-kpi {
  background: var(--card-bg, #1e293b);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 140px;
}

.pkpi-label { font-size: .73rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.pkpi-val { font-size: 2rem; font-weight: 700; color: var(--text); }
.pkpi-sub { font-size: .75rem; color: var(--muted); }

/* Filters */
.prog-filters {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
  align-items: center;
}

.prog-filters select,
.prog-filters input[type="date"] {
  padding: 7px 11px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  font-size: .875rem;
}

/* Date group header */
.prog-date-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0 6px;
  margin-top: 8px;
  border-bottom: 1px solid var(--border);
}

.prog-date-label {
  font-weight: 700;
  font-size: .95rem;
  color: var(--text);
  text-transform: capitalize;
}

.prog-date-badge {
  font-size: .72rem;
  background: rgba(56,189,248,.12);
  color: #38bdf8;
  border-radius: 10px;
  padding: 2px 8px;
  margin-left: auto;
}

/* Card */
.prog-card {
  background: var(--card-bg, #1e293b);
  border: 1px solid var(--border);
  border-left: 4px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  margin-top: 8px;
  transition: box-shadow .15s;
}

.prog-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.2); }

.prog-card-main {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.prog-card-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  flex-wrap: wrap;
}

.prog-badge-tipo {
  font-size: .78rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 12px;
}

.prog-badge-cat {
  font-size: .8rem;
  background: rgba(255,255,255,.06);
  padding: 3px 10px;
  border-radius: 10px;
  color: var(--text);
}

.prog-turno {
  font-size: .82rem;
  color: var(--muted);
}

.prog-local {
  font-size: .82rem;
  color: var(--muted);
}

.prog-card-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.prog-card-obs {
  margin-top: 8px;
  font-size: .82rem;
  color: var(--muted);
  font-style: italic;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}

/* Detail modal */
.prog-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 16px 0;
}

.prog-detail-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: rgba(255,255,255,.03);
  border-radius: 8px;
  padding: 10px 14px;
}

.pdl { font-size: .72rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.pdv { font-size: 1rem; font-weight: 600; color: var(--text); }

.prog-detail-obs {
  background: rgba(56,189,248,.04);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: .875rem;
  color: var(--text);
  margin-bottom: 16px;
  line-height: 1.6;
}

.prog-detail-obs-empty { color: var(--muted); font-style: italic; }

.prog-detail-actions {
  display: flex;
  gap: 8px;
}

@media (max-width: 768px) {
  .prog-card-main { flex-direction: column; align-items: flex-start; }
  .prog-detail-grid { grid-template-columns: 1fr; }
  .prog-filters { flex-direction: column; }
  .prog-kpi-row { gap: 8px; }
  .prog-kpi { min-width: 120px; }
}

/* btn-sm utility */
.btn-sm {
  font-size: .78rem !important;
  padding: 4px 10px !important;
}

/* ── Programação — Visão Semanal ─────────────────────────────────────── */
.prog-week-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0 14px;
  margin-bottom: 4px;
}

.prog-week-label {
  font-size: .92rem;
  font-weight: 700;
  color: var(--text);
  text-align: center;
  flex: 1;
}

.prog-week-table {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

/* Header row */
.prog-week-head-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: rgba(56,189,248,.06);
  border-bottom: 1px solid var(--border);
}

.prog-week-head-cell {
  padding: 10px 8px 8px;
  text-align: center;
  border-right: 1px solid var(--border);
  position: relative;
}
.prog-week-head-cell:last-child { border-right: none; }

.prog-week-today {
  background: rgba(56,189,248,.14);
}

.pwh-weekday {
  display: block;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
}

.pwh-date {
  display: block;
  font-size: .95rem;
  font-weight: 700;
  color: var(--text);
  margin: 2px 0 6px;
}

.prog-add-day {
  background: transparent;
  border: 1px dashed var(--border);
  border-radius: 50%;
  width: 24px;
  height: 24px;
  cursor: pointer;
  font-size: 1.1rem;
  color: var(--muted);
  line-height: 1;
  padding: 0;
  transition: all .15s;
}
.prog-add-day:hover {
  background: rgba(56,189,248,.12);
  border-color: #38bdf8;
  color: #38bdf8;
}

/* Body row */
.prog-week-body-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  min-height: 180px;
}

.prog-week-cell {
  padding: 8px 6px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 160px;
}
.prog-week-cell:last-child { border-right: none; }

.prog-week-today-cell {
  background: rgba(56,189,248,.04);
}

.prog-cell-empty {
  color: var(--muted);
  font-size: .72rem;
  font-style: italic;
  text-align: center;
  padding: 20px 4px;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Cell training item */
.prog-cell-item {
  background: var(--card-bg, #1e293b);
  border-top: 3px solid #94a3b8;
  border-radius: 8px;
  padding: 6px 8px;
  font-size: .75rem;
}

.pci-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 2px;
}

.pci-turno {
  font-size: .7rem;
  color: var(--muted);
}

.pci-tipo {
  font-size: .7rem;
  font-weight: 700;
}

.pci-cat {
  font-size: .7rem;
  font-weight: 600;
  color: var(--text);
  background: rgba(255,255,255,.06);
  border-radius: 6px;
  padding: 1px 6px;
  display: inline-block;
  margin-bottom: 3px;
}

.pci-local {
  font-size: .68rem;
  color: var(--muted);
  margin-bottom: 2px;
}

.pci-obs {
  font-size: .68rem;
  color: var(--muted);
  font-style: italic;
  margin-bottom: 3px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.pci-actions {
  display: flex;
  gap: 4px;
  margin-top: 4px;
}

.pci-actions button {
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 1px 5px;
  font-size: .72rem;
  cursor: pointer;
  color: var(--muted);
  transition: all .12s;
  line-height: 1.4;
}
.pci-actions button:hover {
  background: rgba(255,255,255,.07);
  color: var(--text);
}

@media (max-width: 900px) {
  .prog-week-head-row,
  .prog-week-body-row { grid-template-columns: repeat(3, 1fr); }
  .prog-week-head-cell:nth-child(n+4),
  .prog-week-cell:nth-child(n+4) { border-top: 1px solid var(--border); }
}

@media (max-width: 600px) {
  .prog-week-head-row,
  .prog-week-body-row { grid-template-columns: 1fr 1fr; }
}

/* ─── Requisições Financeiras ──────────────────────────────────────────────── */
.req-dashboard {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.req-stat-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: relative;
  overflow: hidden;
}

.req-stat-card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  border-radius: 10px 0 0 10px;
}

.req-stat-total::before   { background: #4a90d9; }
.req-stat-pendente::before { background: #e8a838; }
.req-stat-aprovada::before { background: #2ecc71; }
.req-stat-rejeitada::before { background: #e74c3c; }

.req-stat-label {
  font-size: .75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.req-stat-value {
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1;
}

.req-stat-valor {
  font-size: .8rem;
  color: var(--muted);
  margin-top: 2px;
}

.req-filtros {
  margin-bottom: 16px;
  padding: 14px 18px;
}

.req-filtros-inner {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
}

.req-filtros-inner .form-group {
  margin: 0;
  min-width: 140px;
}

.req-filtros-inner .form-group label {
  font-size: .78rem;
  margin-bottom: 4px;
  display: block;
}

.req-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.req-card {
  padding: 16px 20px;
  border-radius: 10px;
  transition: box-shadow .15s;
}

.req-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.25);
}

.req-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}

.req-card-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.req-card-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.req-tipo-badge {
  background: rgba(74, 144, 217, .15);
  color: #4a90d9;
  border: 1px solid rgba(74, 144, 217, .3);
  border-radius: 5px;
  padding: 2px 8px;
  font-size: .72rem;
  font-weight: 600;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.req-card-desc {
  font-size: .95rem;
  color: var(--text);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.req-valor {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
}

.req-card-meta {
  display: flex;
  gap: 16px;
  font-size: .8rem;
  color: var(--muted);
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.req-card-resolucao {
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: .82rem;
}

.req-aprovada-info {
  color: #2ecc71;
}

.req-rejeitada-info {
  color: #e74c3c;
}

.req-card-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.btn-success {
  background: rgba(46, 204, 113, .15);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, .3);
  border-radius: 6px;
  padding: 6px 14px;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}

.btn-success:hover:not(:disabled) {
  background: rgba(46, 204, 113, .28);
  border-color: #2ecc71;
}

.btn-danger {
  background: rgba(231, 76, 60, .15);
  color: #e74c3c;
  border: 1px solid rgba(231, 76, 60, .3);
  border-radius: 6px;
  padding: 6px 14px;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}

.btn-danger:hover:not(:disabled) {
  background: rgba(231, 76, 60, .28);
  border-color: #e74c3c;
}

.badge {
  display: inline-block;
  border-radius: 12px;
  padding: 2px 9px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
}

.badge-warning {
  background: rgba(232, 168, 56, .18);
  color: #e8a838;
  border: 1px solid rgba(232, 168, 56, .3);
}

.badge-success {
  background: rgba(46, 204, 113, .18);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, .3);
}

.badge-danger {
  background: rgba(231, 76, 60, .18);
  color: #e74c3c;
  border: 1px solid rgba(231, 76, 60, .3);
}

/* ── Utility: form-card, section-header, btn-icon ── */
.form-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 4px rgba(44,62,80,0.06);
}

.section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.section-header h2 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
}

.btn-icon {
  background: none;
  border: none;
  padding: 0.3rem 0.5rem;
  font-size: 1rem;
  cursor: pointer;
  border-radius: 6px;
  color: var(--muted);
  transition: color 0.15s, background 0.15s;
  transform: none;
}

.btn-icon:hover {
  color: var(--brand-green);
  background: rgba(26,93,43,0.08);
  transform: none;
}

.badge-info {
  background: rgba(44,62,80,0.12);
  color: var(--brand-navy);
  border: 1px solid rgba(44,62,80,0.20);
}

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.65);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.modal-overlay.hidden {
  display: none;
}

.modal-box {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px 28px;
  max-width: 440px;
  width: 90%;
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
}

.modal-box h3 {
  margin: 0 0 8px;
  font-size: 1.1rem;
}

.modal-box p {
  color: var(--muted);
  font-size: .9rem;
  margin-bottom: 4px;
}

.modal-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .req-dashboard {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .req-dashboard {
    grid-template-columns: 1fr;
  }
  .req-card-header {
    flex-direction: column;
  }
}

/* ── ALOJAMENTO ──────────────────────────────────────────────────────────── */

.aloj-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.aloj-kpi-card {
  background: var(--card-bg, #1e2533);
  border: 1px solid var(--border, #2d3748);
  border-radius: 10px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.aloj-kpi-card.aloj-kpi-ok { border-color: #22c55e44; }
.aloj-kpi-card.aloj-kpi-warn { border-color: #ef444466; background: #ef444411; }
.aloj-kpi-label { font-size: 0.78rem; color: var(--muted, #8a9bb0); text-transform: uppercase; letter-spacing: .04em; }
.aloj-kpi-val { font-size: 1.7rem; font-weight: 700; color: var(--text, #e2e8f0); }

.aloj-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-top: 8px;
}

.aloj-card { padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.aloj-card-header { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.aloj-card-nome { font-size: 1.05rem; font-weight: 700; margin: 0; color: var(--primary, #38bdf8); }
.aloj-card-endereco { font-size: 0.83rem; color: var(--muted, #8a9bb0); }
.aloj-card-stats { display: flex; gap: 14px; font-size: 0.88rem; color: var(--muted, #8a9bb0); }
.aloj-card-obs { font-size: 0.8rem; color: var(--muted, #8a9bb0); font-style: italic; }
.aloj-card-actions { display: flex; gap: 8px; margin-top: 4px; }

.aloj-ocu-bar { width: 100%; height: 7px; background: #2d3748; border-radius: 99px; overflow: hidden; }
.aloj-ocu-bar-sm { height: 5px; }
.aloj-ocu-fill { height: 100%; background: #22c55e; border-radius: 99px; transition: width .3s; }
.aloj-ocu-fill.aloj-ocu-high { background: #f59e0b; }
.aloj-ocu-fill.aloj-ocu-full { background: #ef4444; }
.aloj-ocu-label { font-size: 0.75rem; color: var(--muted, #8a9bb0); text-align: right; }

/* Detail view */
.aloj-breadcrumb { display: flex; align-items: center; gap: 10px; }
.aloj-detail-nome { font-size: 1.1rem; font-weight: 700; color: var(--primary, #38bdf8); }

.aloj-info-bar {
  display: flex; flex-wrap: wrap; gap: 16px; align-items: center;
  background: var(--card-bg, #1e2533); border: 1px solid var(--border, #2d3748);
  border-radius: 10px; padding: 12px 16px; margin-bottom: 16px;
}
.aloj-info-item { font-size: 0.88rem; color: var(--muted, #8a9bb0); }
.aloj-info-item strong { color: var(--text, #e2e8f0); }
.aloj-info-item.aloj-alert { color: #ef4444; font-weight: 600; }
.aloj-ocu-inline { font-size: 0.88rem; }

/* Quartos grid */
.aloj-quartos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.aloj-quarto-card { padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.aloj-quarto-card.aloj-quarto-cheio { border-color: #ef444455; background: #ef444408; }
.aloj-quarto-header { display: flex; justify-content: space-between; align-items: center; }
.aloj-quarto-nome { font-weight: 700; font-size: 0.95rem; color: var(--text, #e2e8f0); }
.aloj-quarto-meta { display: flex; gap: 6px; align-items: center; }
.aloj-quarto-cap { font-size: 0.82rem; color: var(--muted, #8a9bb0); }
.aloj-quarto-cap.aloj-cap-full { color: #ef4444; font-weight: 600; }
.aloj-quarto-obs { font-size: 0.78rem; color: var(--muted, #8a9bb0); font-style: italic; }
.aloj-quarto-vazio { font-size: 0.82rem; color: var(--muted, #8a9bb0); text-align: center; padding: 10px 0; }
.aloj-quarto-aviso { font-size: 0.8rem; color: #f59e0b; }

.aloj-atletas-list { display: flex; flex-direction: column; gap: 6px; min-height: 32px; }
.aloj-atleta-row {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px;
  background: #0d111a44; border-radius: 7px; font-size: 0.85rem;
}
.aloj-atleta-nome { flex: 1; color: var(--text, #e2e8f0); font-weight: 500; }
.aloj-atleta-pos { font-size: 0.72rem; padding: 2px 7px; border-radius: 99px; background: #2d374899; color: var(--muted); }
.aloj-atleta-actions { display: flex; gap: 4px; }
.aloj-atleta-actions .btn-ghost { padding: 2px 6px; font-size: 0.78rem; }

.aloj-quarto-footer { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.aloj-quarto-footer .btn-sm { font-size: 0.8rem; padding: 5px 10px; }

/* Assign modal */
.aloj-assign-body { display: flex; flex-direction: column; gap: 14px; padding-top: 10px; }
.aloj-mover-info { font-size: 0.9rem; color: var(--muted, #8a9bb0); margin: 0; }

@media (max-width: 900px) {
  .aloj-kpi-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .aloj-kpi-row { grid-template-columns: 1fr 1fr; }
  .aloj-grid { grid-template-columns: 1fr; }
  .aloj-quartos-grid { grid-template-columns: 1fr; }
}

/* alojamento badge in athlete cards */
.aloj-athlete-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: #1e3a5f;
  color: #93c5fd;
  border: 1px solid #2563eb44;
  border-radius: 99px;
  padding: 2px 8px;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: default;
}

/* ── PREPARAÇÃO FÍSICA ────────────────────────────────────────────────────── */

/* ── Preparação Física — redesign ─────────────────────────────────────── */

/* Hero Header */
.pf-hero { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.pf-hero-left { display: flex; align-items: center; gap: 16px; }
.pf-hero-icon { width: 64px; height: 64px; border-radius: 16px; background: linear-gradient(135deg, #112240 0%, #1a3a5c 100%); border: 1.5px solid #1e4a7a; display: flex; align-items: center; justify-content: center; color: #39FF14; flex-shrink: 0; }
.pf-hero-title { font-size: 1.65rem; font-weight: 700; color: #e2e8f0; margin: 0 0 2px; line-height: 1.2; }
.pf-hero-sub { font-size: 0.88rem; color: #8892B0; margin: 0; }
.pf-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Hero buttons */
.pf-btn-export { display: inline-flex; align-items: center; gap: 7px; padding: 9px 18px; border-radius: 8px; border: 1.5px solid #2a3f5f; background: transparent; color: #c8d6e9; font-size: 0.86rem; font-weight: 500; cursor: pointer; transition: border-color .2s, color .2s; }
.pf-btn-export:hover { border-color: #39FF14; color: #39FF14; }
.pf-btn-nova { display: inline-flex; align-items: center; gap: 7px; padding: 9px 20px; border-radius: 8px; border: none; background: #39FF14; color: #0A192F; font-size: 0.86rem; font-weight: 700; cursor: pointer; transition: opacity .15s; }
.pf-btn-nova:hover { opacity: .88; }

/* KPI Row */
.pf-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 20px; }
.pf-kpi-card { display: flex; align-items: center; gap: 16px; background: #0d1827; border: 1px solid #1e2e44; border-radius: 12px; padding: 18px 20px; }
.pf-kpi-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pf-kpi-icon--blue  { background: #1e3a5f22; border: 1px solid #2563eb44; color: #60a5fa; }
.pf-kpi-icon--green { background: #39FF1411; border: 1px solid #39FF1430; color: #39FF14; }
.pf-kpi-icon--teal  { background: #0d948818; border: 1px solid #0d948840; color: #2dd4bf; }
.pf-kpi-icon--purple{ background: #7c3aed18; border: 1px solid #7c3aed44; color: #a78bfa; }
.pf-kpi-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pf-kpi-label { font-size: 0.68rem; font-weight: 600; color: #8892B0; text-transform: uppercase; letter-spacing: .07em; }
.pf-kpi-val { font-size: 1.7rem; font-weight: 700; color: #e2e8f0; line-height: 1.15; }
.pf-kpi-desc { font-size: 0.73rem; color: #8892B0; margin-top: 1px; }

/* Filter bar */
.pf-filterbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #0d1827; border: 1px solid #1e2e44; border-radius: 12px; padding: 14px 18px; margin-bottom: 20px; flex-wrap: wrap; }
.pf-filterbar-group { display: flex; gap: 12px; flex-wrap: wrap; flex: 1; }
.pf-select-wrap { position: relative; }
.pf-select-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: #8892B0; pointer-events: none; }
.pf-select { padding: 8px 12px 8px 34px; border-radius: 8px; border: 1px solid #2a3a52; background: #111c2e; color: #c8d6e9; font-size: 0.84rem; min-width: 180px; appearance: none; cursor: pointer; }
.pf-select:focus { outline: none; border-color: #39FF14; }
.pf-btn-limpar { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 8px; border: 1.5px solid #2a3f5f; background: transparent; color: #8892B0; font-size: 0.84rem; cursor: pointer; transition: border-color .2s, color .2s; white-space: nowrap; }
.pf-btn-limpar:hover { border-color: #ef4444; color: #f87171; }

/* Resumo grid */
.pf-resumo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 16px; }

/* Athlete cards */
.pf-atleta-card { padding: 16px; }
.pf-atleta-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
.pf-atleta-nome { font-size: 1rem; font-weight: 600; color: #e2e8f0; }
.pf-atleta-pos { font-size: 0.78rem; color: #8892B0; margin-left: 6px; }
.pf-atleta-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.pf-atleta-data { font-size: 0.75rem; color: #8892B0; }
.pf-aval-count { font-size: 0.72rem; color: #60a5fa; background: #1e3a5f; border-radius: 99px; padding: 2px 8px; }
.pf-tipo-badge { display: inline-block; font-size: 0.73rem; background: #1a2a42; color: #93c5fd; border: 1px solid #2563eb44; border-radius: 99px; padding: 2px 8px; }
.pf-metrics-row { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.pf-metric { display: flex; flex-direction: column; gap: 2px; min-width: 90px; }
.pf-metric-label { font-size: 0.7rem; color: #8892B0; text-transform: uppercase; letter-spacing: .03em; }
.pf-metric-val { font-size: 0.95rem; font-weight: 600; color: #e2e8f0; }
.pf-metrics-hist { gap: 10px; }
.pf-val-ok { color: #4ade80 !important; }
.pf-val-mid { color: #facc15 !important; }
.pf-val-warn { color: #f87171 !important; }
.pf-delta-up { color: #f87171; font-size: 0.75rem; margin-left: 4px; }
.pf-delta-down { color: #4ade80; font-size: 0.75rem; margin-left: 4px; }
.pf-delta-eq { color: #8892B0; font-size: 0.75rem; margin-left: 4px; }
.pf-atleta-actions { display: flex; gap: 8px; flex-wrap: wrap; border-top: 1px solid #1e2e44; padding-top: 10px; margin-top: 4px; }

/* Empty state */
.pf-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; text-align: center; gap: 12px; }
.pf-empty-illo { margin-bottom: 8px; opacity: .9; }
.pf-empty-title { font-size: 1.1rem; font-weight: 600; color: #c8d6e9; margin: 0; }
.pf-empty-sub { font-size: 0.85rem; color: #8892B0; margin: 0; max-width: 340px; }

/* Tip bar */
.pf-tip { display: flex; align-items: center; gap: 10px; margin-top: 24px; padding: 12px 18px; background: #0d1827; border: 1px solid #1e3a2a; border-radius: 10px; font-size: 0.82rem; color: #94a3b8; }
.pf-tip svg { flex-shrink: 0; }
.pf-tip strong { color: #39FF14; }

/* Back button */
.pf-back-btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 8px; border: 1px solid #2a3a52; background: transparent; color: #c8d6e9; font-size: 0.84rem; cursor: pointer; transition: border-color .2s; }
.pf-back-btn:hover { border-color: #39FF14; color: #39FF14; }

/* Histórico */
.pf-hist-header { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.pf-hist-header h3 { font-size: 1.1rem; font-weight: 600; color: #e2e8f0; margin: 0; }
.pf-charts-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
.pf-chart-card { background: #0d1827; border: 1px solid #1e2e44; border-radius: 12px; padding: 16px; }
.pf-chart-title { font-size: 0.82rem; font-weight: 600; color: #60a5fa; margin-bottom: 10px; text-transform: uppercase; letter-spacing: .05em; }
.pf-chart-empty { color: #8892B0; font-size: 0.8rem; padding: 12px 0; }
.pf-svg-chart { display: block; overflow: visible; }
.pf-svg-tick { font-size: 8px; fill: #8892B0; }
.pf-svg-minmax { font-size: 8px; fill: #8892B0; }
.pf-svg-unit { font-size: 8px; fill: #8892B0; }
.pf-hist-list { display: flex; flex-direction: column; gap: 12px; }
.pf-hist-card { padding: 14px 16px; }
.pf-hist-latest { border-color: #2563eb44; }
.pf-latest-badge { background: #1e40af; color: #93c5fd; padding: 2px 8px; border-radius: 99px; font-size: 0.72rem; margin-right: 8px; }
.pf-hist-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.pf-hist-data { font-size: 0.82rem; color: #93c5fd; margin-right: 8px; }
.pf-hist-obs { font-size: 0.8rem; color: #8892B0; font-style: italic; margin-top: 8px; border-top: 1px solid #1e2e44; padding-top: 6px; }
.pf-antro-detail { font-size: 0.78rem; color: #94a3b8; margin-top: 6px; }

/* Form card */
.pf-form-card { background: #0d1827; border: 1px solid #1e2e44; border-radius: 14px; padding: 24px; margin-bottom: 20px; }
.pf-form-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.pf-form-header h3 { margin: 0; font-size: 1.05rem; font-weight: 600; color: #e2e8f0; }
.pf-btn-close { background: transparent; border: 1px solid #2a3a52; border-radius: 6px; color: #8892B0; width: 28px; height: 28px; cursor: pointer; font-size: 0.85rem; display: flex; align-items: center; justify-content: center; }
.pf-btn-close:hover { color: #f87171; border-color: #f8717166; }
.pf-form-section { font-size: 0.78rem; font-weight: 600; color: #60a5fa; text-transform: uppercase; letter-spacing: .07em; padding: 10px 0 2px; border-top: 1px solid #1e2e44; margin-top: 4px; }
.pf-form-section-icon { margin-right: 4px; }
.pf-antro-group { margin-bottom: 4px; }
.pf-antro-label { font-size: 0.8rem; color: #94a3b8; margin: 0 0 6px; font-weight: 500; }
.pf-antro-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pf-antro-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pf-antro-grid label { font-size: 0.78rem; color: #94a3b8; display: flex; flex-direction: column; gap: 3px; }
.pf-antro-grid input { padding: 5px 8px; font-size: 0.82rem; border-radius: 5px; border: 1px solid #2a3a52; background: #111c2e; color: #e2e8f0; }

/* Badge on athlete card */
.pf-gordura-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: #3b0000;
  color: #fca5a5;
  border: 1px solid #ef444444;
  border-radius: 99px;
  padding: 2px 8px;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: default;
}

@media (max-width: 900px) {
  .pf-kpi-row { grid-template-columns: 1fr 1fr; }
  .pf-charts-row { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .pf-resumo-grid { grid-template-columns: 1fr; }
  .pf-antro-grid { grid-template-columns: 1fr 1fr; }
}

/* ── Análise de Desempenho ──────────────────────────────────────────────── */
.analise-card { background: #0d1a2d; border-left: 4px solid #38bdf8; border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.analise-card-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 6px; }
.analise-card-name { font-size: 1rem; font-weight: 700; color: #e2e8f0; }
.analise-card-pos { background: #1e2e44; color: #94a3b8; font-size: 0.72rem; padding: 2px 7px; border-radius: 99px; margin-left: 6px; }
.analise-card-date { font-size: 0.78rem; color: #64748b; margin-right: 6px; }
.analise-card-jogo { background: #1e3a5f; color: #60a5fa; font-size: 0.72rem; padding: 2px 8px; border-radius: 5px; }
.analise-stats-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ast-item { background: #1a2a3f; border-radius: 7px; padding: 7px 10px; display: flex; flex-direction: column; gap: 2px; min-width: 70px; }
.ast-label { font-size: 0.7rem; color: #64748b; }
.ast-val { font-size: 0.9rem; font-weight: 700; color: #e2e8f0; }
.analise-av-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; align-items: center; }
.analise-av-item { display: flex; align-items: center; gap: 6px; font-size: 0.8rem; color: #94a3b8; }
.analise-av-item > span:first-child { width: 60px; }
.analise-av-bar { flex: 1; height: 6px; background: #1e2e44; border-radius: 3px; overflow: hidden; }
.analise-av-fill { height: 100%; border-radius: 3px; transition: width 0.3s; }
.analise-av-item > span:last-child { font-size: 0.78rem; font-weight: 600; color: #e2e8f0; width: 26px; text-align: right; }
.analise-nota-final { grid-column: 1 / -1; font-size: 1.05rem; font-weight: 800; text-align: right; }
.analise-slider-row { display: flex; flex-direction: column; gap: 3px; }
.analise-slider-row label { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; color: #94a3b8; }
.analise-slider-row input[type=range] { flex: 1; }
.analise-slider-row .sv { min-width: 24px; font-weight: 700; color: #60a5fa; text-align: right; }
.analise-nota-preview { font-size: 1rem; font-weight: 700; color: #22c55e; margin-top: 4px; }

/* Tabs shared style */
.module-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 14px; }
.analise-tab, .psico-tab, .goleiros-tab { padding: 6px 14px; border-radius: 6px; background: #1a2a3f; color: #94a3b8; border: 1px solid #2a3a52; cursor: pointer; font-size: 0.82rem; font-weight: 500; }
.analise-tab.active, .psico-tab.active, .goleiros-tab.active { background: #1e3a5f; color: #60a5fa; border-color: #3b82f6; }

/* Ranking & Historico */
.rank-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 8px; background: #0d1a2d; border-left: 4px solid #38bdf8; }
.rank-pos { font-size: 1.1rem; font-weight: 800; color: #60a5fa; min-width: 28px; }
.rank-info { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.rank-name { font-size: 0.9rem; font-weight: 700; color: #e2e8f0; }
.rank-subinfo { font-size: 0.72rem; color: #64748b; }
.rank-vals { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.rank-val { font-size: 1.05rem; font-weight: 800; }
.rank-sub { font-size: 0.72rem; color: #64748b; }
.historico-jogos { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
.hj-dot { width: 14px; height: 14px; border-radius: 50%; cursor: help; }

/* ── Nutrição ──────────────────────────────────────────────────────────── */
.nutricao-card { background: #0d1a2d; border-left: 4px solid #22c55e; border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.nutricao-obj-badge { padding: 2px 9px; border-radius: 99px; font-size: 0.72rem; font-weight: 600; margin-left: 6px; }
.nutricao-imc-display { font-size: 0.88rem; font-weight: 600; margin-top: 4px; padding: 6px 10px; background: #1a2a3f; border-radius: 6px; }

/* ── Odontologia ───────────────────────────────────────────────────────── */
.odonto-card { background: #0d1a2d; border-left: 4px solid #38bdf8; border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.odonto-status-badge { padding: 2px 9px; border-radius: 99px; font-size: 0.72rem; font-weight: 600; margin-left: 6px; }

/* ── Psicologia ────────────────────────────────────────────────────────── */
.psico-card { background: #0d1a2d; border-left: 4px solid #a78bfa; border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.psico-tipo-badge { padding: 2px 9px; border-radius: 99px; font-size: 0.72rem; background: #2d1a4a; color: #a78bfa; margin-left: 6px; }
.psico-slider { accent-color: #a78bfa; }

/* ── Goleiros ──────────────────────────────────────────────────────────── */
.goleiros-card { background: #0d1a2d; border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.goleiros-av-card { background: #0d1a2d; border-left: 4px solid #38bdf8; border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.goleiros-ex-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.goleiros-ex-tag { background: #1a2a3f; color: #60a5fa; border: 1px solid #2a4a6f; border-radius: 99px; padding: 3px 10px; font-size: 0.72rem; font-weight: 500; }
.goleiros-objetivo { background: #1a3a2f; color: #22c55e; border-radius: 5px; padding: 2px 8px; font-size: 0.78rem; }
.goleiros-ranking-grid { display: flex; flex-direction: column; gap: 8px; }
.goleiros-ex-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.goleiros-ex-check-grid label { display: flex; align-items: center; gap: 6px; font-size: 0.82rem; color: #94a3b8; cursor: pointer; }

/* Goleiros avaliação modal */
.goleiros-av-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.75); z-index: 999; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.2s; }
.goleiros-av-overlay.active { opacity: 1; pointer-events: all; }
.goleiros-av-modal { background: #0a1628; border: 1px solid #1e2e44; border-radius: 14px; max-width: 640px; width: 96vw; max-height: 85vh; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.goleiros-av-header { display: flex; justify-content: space-between; align-items: center; }
.goleiros-av-header h3 { font-size: 1rem; font-weight: 700; color: #e2e8f0; margin: 0; }
.goleiros-av-body { display: flex; flex-direction: column; gap: 16px; }
.goleiros-av-athlete { background: #0d1a2d; border-radius: 9px; padding: 12px 14px; }
.goleiros-av-name { font-weight: 700; color: #e2e8f0; margin-bottom: 10px; font-size: 0.95rem; }
.goleiros-av-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.goleiros-av-grid label { display: flex; flex-direction: column; gap: 3px; font-size: 0.78rem; color: #94a3b8; }
.goleiros-av-grid input[type=number] { padding: 5px 8px; font-size: 0.85rem; border-radius: 5px; border: 1px solid #2a3a52; background: #111c2e; color: #e2e8f0; }

/* Module section container shared */
.module-section-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.module-kpi-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.module-filter-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.module-filter-row select { padding: 6px 10px; border-radius: 6px; border: 1px solid #2a3a52; background: #0d1a2d; color: #e2e8f0; font-size: 0.82rem; }
.module-list { display: flex; flex-direction: column; gap: 10px; }
.module-form-wrapper { background: #091422; border: 1px solid #1e2e44; border-radius: 10px; padding: 18px; margin-bottom: 16px; }

/* ── Shared form helpers ─────────────────────────────────────────────────── */
.form-section-label { font-size: 0.78rem; font-weight: 700; color: #60a5fa; text-transform: uppercase; letter-spacing: .07em; margin: 12px 0 6px; }

/* ── Analise sliders ─────────────────────────────────────────────────────── */
.analise-sliders, .psico-sliders { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.analise-slider-item, .psico-slider-item { display: flex; flex-direction: column; gap: 3px; }
.analise-sl-hd, .psico-sl-hd { display: flex; justify-content: space-between; font-size: 0.8rem; color: #94a3b8; }
.analise-sl-val, .psico-sl-val { font-weight: 700; color: #60a5fa; }
.analise-sliders input[type=range], .psico-sliders input[type=range] { width: 100%; accent-color: #3b82f6; }
.analise-nota-preview, .psico-media-preview { font-size: 0.88rem; color: #94a3b8; margin: 6px 0 10px; }
.analise-nota-preview strong, .psico-media-preview strong { color: #22c55e; font-size: 1rem; }

/* ── Filter rows ─────────────────────────────────────────────────────────── */
.analise-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.analise-filters select { padding: 6px 10px; border-radius: 6px; border: 1px solid #2a3a52; background: #0d1a2d; color: #e2e8f0; font-size: 0.82rem; }

/* ── Tabs ────────────────────────────────────────────────────────────────── */
.analise-tabs, .psico-tabs, .goleiros-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }

/* ── Lists ───────────────────────────────────────────────────────────────── */
.analise-list, .psico-list, .goleiros-list { display: flex; flex-direction: column; gap: 10px; }
.analise-ranking-grid { display: flex; flex-direction: column; gap: 8px; }

/* ── Goleiros exercise grid ──────────────────────────────────────────────── */
.goleiros-exercicios-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0 12px; }
.goleiros-ex-check { display: flex; align-items: center; gap: 6px; font-size: 0.82rem; color: #94a3b8; cursor: pointer; }
.goleiros-ex-check input { accent-color: #3b82f6; }

/* ── Nutricao IMC ────────────────────────────────────────────────────────── */
.nutricao-imc-val { font-weight: 700; }
.nutricao-filter-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.nutricao-filter-row select { padding: 6px 10px; border-radius: 6px; border: 1px solid #2a3a52; background: #0d1a2d; color: #e2e8f0; font-size: 0.82rem; }
.odonto-filter-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.odonto-filter-row select { padding: 6px 10px; border-radius: 6px; border: 1px solid #2a3a52; background: #0d1a2d; color: #e2e8f0; font-size: 0.82rem; }

@media (max-width: 700px) {
  .analise-av-grid { grid-template-columns: 1fr; }
  .goleiros-exercicios-grid { grid-template-columns: 1fr 1fr; }
  .goleiros-av-grid { grid-template-columns: 1fr; }
}

/* ── Nutricao / IMC preview ──────────────────────────────────────────────── */
.nutricao-imc-preview { font-size: 0.88rem; color: #94a3b8; margin: 6px 0 10px; }
.nutricao-imc-preview strong { font-size: 1rem; }
.nutricao-list { display: flex; flex-direction: column; gap: 10px; }
.odonto-list { display: flex; flex-direction: column; gap: 10px; }
.wkpi-warn { border-color: #f59e0b !important; }
.wkpi-warn .wkpi-val { color: #f59e0b !important; }

/* ── GPS / Carga de Treino ───────────────────────────────────────────────── */
.gps-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 16px 0; }
.gps-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 0.82rem; color: var(--muted); font-weight: 500; }
.gps-filters select, .gps-filters input { background: #FFFFFF; border: 1.5px solid var(--border); color: #0B1220; border-radius: 8px; padding: 6px 10px; font-size: 0.85rem; }
.gps-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.gps-table th { background: #F5F8FA; color: var(--brand-navy); padding: 10px 12px; text-align: left; font-weight: 700; border-bottom: 1px solid var(--border); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.07em; }
.gps-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); color: var(--text); }
.gps-table tr:hover td { background: var(--card-hover); }
#gps-table-wrapper { overflow-x: auto; }

/* ── Testes Físicos ──────────────────────────────────────────────────────── */
.testes-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 16px 0; }
.testes-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 0.82rem; color: var(--muted); font-weight: 500; }
.testes-filters select { background: #FFFFFF; border: 1.5px solid var(--border); color: #0B1220; border-radius: 8px; padding: 6px 10px; font-size: 0.85rem; }

/* ── Intelligence Dashboard ──────────────────────────────────────────────── */
.intel-summary-pills { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.intel-pill { padding: 6px 16px; border-radius: 20px; font-size: 0.85rem; font-weight: 600; }
.intel-pill--green  { background: rgba(26,93,43,0.10); color: #1A5D2B; border: 1px solid rgba(26,93,43,0.28); }
.intel-pill--yellow { background: rgba(241,196,15,0.12); color: #8a6c00; border: 1px solid rgba(241,196,15,0.35); }
.intel-pill--red    { background: rgba(231,76,60,0.10); color: #c0392b; border: 1px solid rgba(231,76,60,0.28); }

.intel-alerts-banner { background: rgba(241,196,15,0.10); border: 1px solid rgba(241,196,15,0.35); border-radius: 8px; padding: 12px 16px; margin-bottom: 16px; font-size: 0.85rem; color: #8a6c00; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.intel-alert-chip { background: rgba(231,76,60,0.08); border-radius: 14px; padding: 3px 10px; font-size: 0.78rem; color: #c0392b; }
.intel-alert-chip--alto { border-left: 3px solid #E74C3C; }
.intel-alert-chip--medio { border-left: 3px solid #d97706; }
.intel-alert-chip--info { border-left: 3px solid var(--brand-navy); }

.intel-empty { text-align: center; padding: 48px; color: var(--muted); }

.intel-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }

.intel-card { background: var(--panel); border-radius: 12px; padding: 16px; border: 1.5px solid var(--border); transition: border-color .2s, box-shadow .2s; box-shadow: 0 1px 4px rgba(44,62,80,0.06); }
.intel-card:hover { border-color: rgba(26,93,43,0.35); box-shadow: 0 4px 12px rgba(26,93,43,0.10); }
.intel-card--green  { border-color: rgba(26,93,43,0.35); border-left: 4px solid var(--brand-green); }
.intel-card--yellow { border-color: rgba(241,196,15,0.5); border-left: 4px solid #d97706; }
.intel-card--red    { border-color: rgba(231,76,60,0.4); border-left: 4px solid #E74C3C; }

.intel-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 4px; }
.intel-card-name { font-weight: 700; font-size: 0.95rem; color: var(--text); }
.intel-card-pos { font-size: 0.78rem; color: var(--muted); margin-bottom: 6px; }
.intel-card-motivo { font-size: 0.78rem; color: #c2610a; margin-bottom: 8px; font-weight: 500; }

.intel-indices { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.intel-idx { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; }
.idx-label { width: 44px; color: var(--muted); flex-shrink: 0; }
.idx-val { width: 40px; text-align: right; font-weight: 600; flex-shrink: 0; color: var(--text); }
.intel-bar-bg { flex: 1; height: 6px; background: var(--border); border-radius: 3px; overflow: hidden; }
.intel-bar-fill { height: 100%; border-radius: 3px; transition: width .4s; }
.bar-danger  { background: linear-gradient(90deg, #E74C3C, #e57368); }
.bar-success { background: linear-gradient(90deg, #1A5D2B, #2ecc71); }
.bar-warning { background: linear-gradient(90deg, #d97706, #f59e0b); }

.intel-card-footer { display: flex; gap: 12px; font-size: 0.78rem; color: var(--muted); margin: 8px 0; flex-wrap: wrap; }
.intel-alert-dot { color: #d97706; }

.intel-detail-btn { width: 100%; margin-top: 10px; font-size: 0.82rem; padding: 6px; }

/* Intelligence detail panel */
.intel-detail-panel { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 20px; margin-top: 20px; box-shadow: 0 2px 8px rgba(44,62,80,0.08); }
.intel-detail-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; font-weight: 700; font-size: 1rem; color: var(--text); }
.intel-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.intel-detail-section { background: #F5F8FA; border-radius: 8px; padding: 14px; border: 1px solid var(--border); }
.intel-detail-section.full-col { grid-column: 1 / -1; }
.intel-detail-section h4 { margin: 0 0 10px; font-size: 0.88rem; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.intel-detail-table { width: 100%; font-size: 0.83rem; border-collapse: collapse; }
.intel-detail-table td, .intel-detail-table th { padding: 6px 10px; border-bottom: 1px solid var(--border); }
.intel-detail-table th { color: var(--muted); font-weight: 600; text-align: left; background: transparent; }
.intel-motivo-text { font-size: 0.82rem; color: #c2610a; margin-top: 6px; font-weight: 500; }

.intel-alert-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.intel-alert-item { padding: 8px 12px; border-radius: 6px; font-size: 0.83rem; background: #F5F8FA; border-left: 3px solid var(--border); color: var(--text); }
.intel-alert-item--alto   { border-left-color: #E74C3C; background: rgba(231,76,60,0.06); }
.intel-alert-item--medio  { border-left-color: #d97706; background: rgba(217,119,6,0.06); }
.intel-alert-item--info   { border-left-color: var(--brand-navy); background: rgba(44,62,80,0.06); }

@media (max-width: 768px) {
  .intel-cards-grid { grid-template-columns: 1fr; }
  .intel-detail-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PRANCHETA TÁTICA — DARK PREMIUM
   ═══════════════════════════════════════════════════════════════════════════ */

.pt-layout {
  display: grid;
  grid-template-columns: 240px 1fr 230px;
  gap: 0;
  height: calc(100vh - 56px);
  overflow: hidden;
  background: #0B1220;
}

/* ── Painéis laterais ── */
.pt-tools-panel,
.pt-plays-panel {
  background: #111827;
  border-right: 1px solid #1F2937;
  overflow-y: auto;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 0;
  scrollbar-width: thin;
  scrollbar-color: #374151 transparent;
}
.pt-plays-panel {
  border-right: none;
  border-left: 1px solid #1F2937;
}

/* ── Grupos de ferramentas ── */
.pt-tool-group {
  border-bottom: 1px solid #1F2937;
  padding: 10px 4px;
  margin-bottom: 0;
}
.pt-tool-group:last-child { border-bottom: none; }

.pt-tool-label {
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: #6B7280;
  margin-bottom: 8px;
}

/* ── Select estilizado ── */
.pt-select-wrap {
  position: relative;
  width: 100%;
}
.pt-select {
  width: 100%;
  padding: 7px 30px 7px 10px;
  border: 1px solid #374151;
  border-radius: 7px;
  font-size: 12.5px;
  background: #1F2937;
  color: #E5E7EB;
  box-sizing: border-box;
  appearance: none;
  cursor: pointer;
  transition: border-color .15s;
}
.pt-select:focus { outline: none; border-color: #22C55E; box-shadow: 0 0 0 2px rgba(34,197,94,.15); }
.pt-select-icon {
  position: absolute;
  right: 9px;
  top: 50%;
  transform: translateY(-50%);
  width: 13px;
  height: 13px;
  color: #6B7280;
  pointer-events: none;
}

/* ── Inputs ── */
.pt-input {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #374151;
  border-radius: 7px;
  font-size: 12.5px;
  background: #1F2937;
  color: #E5E7EB;
  box-sizing: border-box;
  resize: vertical;
  font-family: inherit;
  transition: border-color .15s;
}
.pt-input:focus { outline: none; border-color: #22C55E; box-shadow: 0 0 0 2px rgba(34,197,94,.15); }
.pt-input::placeholder { color: #4B5563; }
.pt-input-sm { width: calc(50% - 3px); }

/* ── Formações ── */
.pt-formation-btns { display: flex; flex-wrap: wrap; gap: 5px; }
.pt-form-btn {
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid #374151;
  border-radius: 20px;
  background: #1F2937;
  color: #9CA3AF;
  cursor: pointer;
  transition: all .15s;
  letter-spacing: .2px;
}
.pt-form-btn:hover { border-color: #22C55E; color: #22C55E; }
.pt-form-btn.active { background: #22C55E; color: #0B1220; border-color: #22C55E; font-weight: 700; }

/* ── Toggle time ── */
.pt-team-toggle {
  display: flex;
  gap: 0;
  background: #0B1220;
  border: 1px solid #374151;
  border-radius: 8px;
  padding: 2px;
}
.pt-team-btn {
  flex: 1;
  padding: 6px;
  font-size: 12px;
  font-weight: 600;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #6B7280;
  cursor: pointer;
  transition: all .2s;
}
.pt-team-btn[data-team="A"].active { background: #22C55E; color: #0B1220; }
.pt-team-btn[data-team="B"].active { background: #EF4444; color: #fff; }
.pt-team-btn:hover:not(.active) { color: #E5E7EB; }

/* ── Ferramentas de desenho ── */
.pt-draw-tools {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  margin-bottom: 10px;
}
.pt-draw-btn {
  aspect-ratio: 1;
  padding: 0;
  border: 1px solid #374151;
  border-radius: 7px;
  background: #1F2937;
  color: #9CA3AF;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .15s;
}
.pt-draw-btn svg { width: 15px; height: 15px; }
.pt-draw-btn:hover { border-color: #22C55E; color: #22C55E; background: rgba(34,197,94,.08); }
.pt-draw-btn.active { background: #22C55E; color: #0B1220; border-color: #22C55E; }
.pt-draw-btn.active svg { stroke: #0B1220; }

/* ── Cor e espessura ── */
.pt-color-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
}
.pt-mini-label {
  font-size: 10px;
  color: #6B7280;
  white-space: nowrap;
  flex-shrink: 0;
}
.pt-color-swatches {
  display: flex;
  gap: 4px;
  flex: 1;
}
.pt-swatch {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  padding: 0;
  transition: transform .15s, border-color .15s;
}
.pt-swatch:hover { transform: scale(1.2); }
.pt-swatch.active { border-color: #E5E7EB; transform: scale(1.15); }
.pt-color-input {
  width: 24px;
  height: 24px;
  border: 1px solid #374151;
  border-radius: 5px;
  padding: 1px;
  cursor: pointer;
  background: #1F2937;
  flex-shrink: 0;
}
.pt-thickness-row {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 9px;
}
.pt-range {
  flex: 1;
  accent-color: #22C55E;
  height: 3px;
  cursor: pointer;
}
.pt-thickness-val {
  font-size: 10px;
  color: #9CA3AF;
  min-width: 22px;
  text-align: right;
}

/* ── Botão perigo full width ── */
.pt-btn-danger-full {
  width: 100%;
  padding: 7px 10px;
  font-size: 11.5px;
  font-weight: 600;
  border: 1px solid #3F1313;
  border-radius: 7px;
  background: rgba(239,68,68,.08);
  color: #F87171;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all .15s;
}
.pt-btn-danger-full:hover { background: #EF4444; color: #fff; border-color: #EF4444; }
.pt-btn-danger-full svg { stroke: currentColor; }

/* ── Jogador: formulário ── */
.pt-player-form { display: flex; flex-direction: column; gap: 5px; }
.pt-player-manual { display: flex; gap: 4px; }

/* ── Botão adicionar ── */
.pt-btn-add {
  width: 100%;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 600;
  border: 1px dashed #374151;
  border-radius: 7px;
  background: transparent;
  color: #9CA3AF;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all .15s;
}
.pt-btn-add:hover { border-color: #22C55E; color: #22C55E; background: rgba(34,197,94,.06); }

/* ── Botões exportar ── */
.pt-export-btns { display: flex; flex-direction: column; gap: 5px; }
.pt-btn-export-green,
.pt-btn-export-ghost {
  width: 100%;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 7px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all .15s;
}
.pt-btn-export-green {
  background: rgba(34,197,94,.12);
  border: 1px solid rgba(34,197,94,.3);
  color: #22C55E;
}
.pt-btn-export-green:hover { background: #22C55E; color: #0B1220; border-color: #22C55E; }
.pt-btn-export-ghost {
  background: transparent;
  border: 1px solid #374151;
  color: #9CA3AF;
}
.pt-btn-export-ghost:hover { border-color: #6B7280; color: #E5E7EB; }

/* ── Botão primário ── */
.pt-btn-primary {
  width: 100%;
  padding: 9px;
  background: #22C55E;
  color: #0B1220;
  border: none;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all .15s;
}
.pt-btn-primary:hover { background: #16A34A; }
.pt-btn-primary:disabled { opacity: .5; cursor: not-allowed; }

/* ── Centro: área do canvas ── */
.pt-canvas-area {
  display: flex;
  flex-direction: column;
  background: #0B1220;
  overflow: hidden;
}

/* ── Header do canvas ── */
.pt-canvas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  background: #111827;
  border-bottom: 1px solid #1F2937;
  height: 64px;
  flex-shrink: 0;
}
.pt-jogada-info {
  display: flex;
  align-items: center;
  gap: 12px;
}
.pt-jogada-icon-wrap {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(34,197,94,.12);
  border: 1px solid rgba(34,197,94,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #22C55E;
  flex-shrink: 0;
}
.pt-jogada-texts { display: flex; flex-direction: column; gap: 2px; }
.pt-jogada-title {
  font-size: 15px;
  font-weight: 700;
  color: #F3F4F6;
  line-height: 1.2;
}
.pt-jogada-sub {
  font-size: 11px;
  color: #6B7280;
  line-height: 1;
}
.pt-unsaved-badge {
  font-size: 10.5px;
  font-weight: 600;
  color: #F59E0B;
  background: rgba(245,158,11,.1);
  border: 1px solid rgba(245,158,11,.25);
  padding: 2px 8px;
  border-radius: 10px;
}
.pt-btn-undo {
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid #374151;
  border-radius: 7px;
  background: #1F2937;
  color: #9CA3AF;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: all .15s;
  white-space: nowrap;
}
.pt-btn-undo:hover { border-color: #6B7280; color: #E5E7EB; }

/* ── Canvas wrapper ── */
.pt-canvas-wrapper {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow: auto;
  position: relative;
}
#pt-field-canvas {
  display: block;
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
  box-shadow: 0 8px 40px rgba(0,0,0,.6);
  cursor: default;
}
.pt-players-overlay {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

/* ── Footer do canvas ── */
.pt-canvas-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  background: #111827;
  border-top: 1px solid #1F2937;
  font-size: 11.5px;
  color: #4B5563;
  flex-shrink: 0;
}
.pt-canvas-footer svg { flex-shrink: 0; }

/* ── Tokens de jogadores ── */
.pt-token {
  position: absolute;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: grab;
  pointer-events: all;
  user-select: none;
  box-shadow: 0 3px 12px rgba(0,0,0,.5);
  border: 2.5px solid rgba(255,255,255,.8);
  transition: box-shadow .1s, transform .1s;
  overflow: visible;
}
.pt-token:hover { box-shadow: 0 6px 20px rgba(0,0,0,.6); transform: scale(1.1); }
.pt-token:active { cursor: grabbing; }
.pt-token-num { font-size: 13px; font-weight: 800; line-height: 1; color: #fff; }
.pt-token-pos { font-size: 7.5px; font-weight: 700; color: rgba(255,255,255,.8); line-height: 1; }
.pt-token-name {
  font-size: 8px;
  color: #fff;
  position: absolute;
  bottom: -17px;
  white-space: nowrap;
  background: rgba(0,0,0,.75);
  padding: 2px 5px;
  border-radius: 4px;
  pointer-events: none;
  font-weight: 600;
}
.pt-token-del {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: #EF4444;
  color: #fff;
  border: 1.5px solid #0B1220;
  font-size: 10px;
  line-height: 14px;
  text-align: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity .15s;
  pointer-events: all;
  padding: 0;
}
.pt-token:hover .pt-token-del { opacity: 1; }

/* ── Painel direito: jogadas ── */
.pt-plays-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  padding: 0 4px;
}
.pt-plays-title {
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: #6B7280;
}
.pt-btn-nova {
  padding: 5px 10px;
  font-size: 11.5px;
  font-weight: 600;
  border: 1px solid #374151;
  border-radius: 7px;
  background: #1F2937;
  color: #E5E7EB;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all .15s;
}
.pt-btn-nova:hover { background: #22C55E; color: #0B1220; border-color: #22C55E; }

.pt-jogada-save-bar {
  background: #0B1220;
  border: 1px solid #1F2937;
  border-radius: 9px;
  padding: 10px;
  margin-bottom: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pt-save-field {
  display: flex;
  align-items: center;
  gap: 6px;
}
.pt-save-field .pt-input { margin: 0; }
.pt-save-field-icon { color: #4B5563; flex-shrink: 0; }

.pt-jogadas-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #374151 transparent;
}

.pt-jogada-item {
  background: #1F2937;
  border: 1px solid #374151;
  border-radius: 9px;
  padding: 10px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pt-jogada-item:hover { border-color: #22C55E; background: rgba(34,197,94,.05); }
.pt-jogada-item--active { border-color: #22C55E; background: rgba(34,197,94,.08); }

.pt-ji-name { font-weight: 700; font-size: 13px; color: #E5E7EB; margin-bottom: 2px; }
.pt-ji-meta { font-size: 10.5px; color: #6B7280; margin-bottom: 3px; }
.pt-ji-desc { font-size: 11px; color: #4B5563; margin-bottom: 6px; font-style: italic; }
.pt-ji-btns { display: flex; gap: 4px; flex-wrap: wrap; }
.pt-ji-btn {
  padding: 3px 8px;
  font-size: 10.5px;
  font-weight: 600;
  border: 1px solid #374151;
  border-radius: 5px;
  background: #0B1220;
  color: #9CA3AF;
  cursor: pointer;
  transition: all .15s;
}
.pt-ji-btn:hover { border-color: #6B7280; color: #E5E7EB; }
.pt-ji-btn--del { color: #F87171; border-color: #3F1313; }
.pt-ji-btn--del:hover { background: #EF4444; color: #fff; border-color: #EF4444; }

/* ── Empty state ── */
.pt-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 16px;
  gap: 8px;
}
.pt-empty-state p {
  font-size: 13px;
  font-weight: 600;
  color: #6B7280;
  margin: 0;
}
.pt-empty-state span {
  font-size: 11.5px;
  color: #374151;
  line-height: 1.5;
}

.pt-empty { font-size: 13px; color: #6B7280; text-align: center; padding: 20px 0; }

@media (max-width: 900px) {
  .pt-layout { grid-template-columns: 200px 1fr; }
  .pt-plays-panel { display: none; }
}

/* ── SaaS: Login / Register improvements ──────────────────────────────────── */
.login-subtitle {
  font-size: 0.85rem;
  color: var(--muted);
  margin-top: -0.25rem;
  margin-bottom: 1rem;
}
.btn-primary-full {
  display: block;
  width: 100%;
  padding: 0.75rem;
  background: var(--brand-green);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 0.5rem;
  transition: background .15s;
}
.btn-primary-full:hover { background: #145221; }
.btn-secondary-full {
  display: block;
  width: 100%;
  padding: 0.7rem;
  background: transparent;
  color: var(--brand-green);
  border: 2px solid var(--brand-green);
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  margin-top: 0.75rem;
  transition: background .15s, color .15s;
}
.btn-secondary-full:hover { background: var(--brand-green); color: #fff; }
.btn-link {
  background: none;
  border: none;
  color: var(--brand-green);
  cursor: pointer;
  font-size: 0.9rem;
  padding: 0.5rem 0;
  text-decoration: underline;
  display: block;
  text-align: center;
  margin-top: 0.5rem;
}
.login-divider-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 1.25rem 0 0;
  color: var(--muted);
  font-size: 0.82rem;
}
.login-divider-row::before,
.login-divider-row::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

/* ── Planos page ───────────────────────────────────────────────────────────── */
#planos-page {
  position: fixed;
  inset: 0;
  background: linear-gradient(135deg, #2C3E50 0%, #1A2D3D 60%, #0e1a24 100%);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  z-index: 1000;
  padding: 2rem 1rem;
}
.planos-overlay {
  width: 100%;
  max-width: 1000px;
  text-align: center;
}
.planos-header {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin-bottom: 1rem;
}
.planos-overlay h2 {
  color: #fff;
  font-size: 2rem;
  margin: 0.5rem 0 0.25rem;
}
.planos-sub {
  color: #94A3B8;
  font-size: 0.95rem;
  margin: 0 0 2rem;
}
.planos-aviso-warn {
  background: #FEF3C7;
  color: #92400E;
  border-radius: 8px;
  padding: 0.6rem 1.2rem;
  font-size: 0.9rem;
  font-weight: 600;
  margin-top: 0.5rem;
}
.planos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
  margin-bottom: 1rem;
}
.plano-card {
  background: #fff;
  border-radius: 16px;
  padding: 2rem 1.5rem;
  text-align: left;
  position: relative;
  transition: transform .2s, box-shadow .2s;
}
.plano-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.2); }
.plano-card--destaque {
  border: 3px solid var(--brand-green);
  box-shadow: 0 8px 32px rgba(26,93,43,.25);
}
.plano-badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--brand-green);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 14px;
  border-radius: 99px;
}
.plano-nome {
  font-size: 1.25rem;
  font-weight: 800;
  color: #1E293B;
  margin-bottom: 0.5rem;
}
.plano-preco {
  font-size: 2rem;
  font-weight: 800;
  color: var(--brand-green);
  margin-bottom: 0.5rem;
}
.plano-preco span {
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--muted);
}
.plano-desc {
  font-size: 0.85rem;
  color: var(--muted);
  margin-bottom: 1rem;
}
.plano-modulos {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 200px;
  overflow-y: auto;
}
.plano-modulos li {
  font-size: 0.82rem;
  color: #334155;
  padding: 3px 0;
}
.plano-modulos li::before { content: "✓ "; color: var(--brand-green); font-weight: 700; }
.btn-assinar {
  display: block;
  width: 100%;
  padding: 0.75rem;
  background: var(--brand-green);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s;
}
.btn-assinar:hover { background: #145221; }
.btn-assinar:disabled { background: #94A3B8; cursor: not-allowed; }

/* ── Sidebar status chip ─────────────────────────────────────────────────── */
.sidebar-status-chip {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  width: 100%;
  text-align: center;
  margin-bottom: 4px;
}
.chip--trial {
  background: rgba(57,255,20,0.12);
  color: #39FF14;
  border: 1px solid rgba(57,255,20,0.35);
}
.chip--ativo {
  background: rgba(34,197,94,0.12);
  color: #22c55e;
  border: 1px solid rgba(34,197,94,0.35);
}
.chip--warn {
  background: rgba(249,115,22,0.15);
  color: #f97316;
  border: 1px solid rgba(249,115,22,0.35);
}
.chip--blocked {
  background: rgba(239,68,68,0.15);
  color: #ef4444;
  border: 1px solid rgba(239,68,68,0.35);
}

/* ── Meu plano btn ────────────────────────────────────────────────────────── */
.btn-meu-plano {
  width: 100%;
  padding: 0.45rem 0.75rem;
  margin-bottom: 0.35rem;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.85);
  border-radius: 6px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: background .15s;
}
.btn-meu-plano:hover { background: rgba(255,255,255,0.1); }

/* ── Nav locked ───────────────────────────────────────────────────────────── */
.nav-locked {
  opacity: 0.45;
  pointer-events: none;
}
.nav-locked::after {
  content: " 🔒";
  font-size: 0.7em;
}

/* ── Admin panel ──────────────────────────────────────────────────────────── */
.admin-stats {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.admin-stat {
  flex: 1;
  background: #fff;
  border-radius: 10px;
  padding: 1.2rem;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.admin-stat span { display: block; font-size: 2rem; font-weight: 800; color: #1E293B; }
.admin-stat label { font-size: 0.8rem; color: var(--muted); }
.admin-stat--green span { color: #16a34a; }
.admin-stat--orange span { color: #d97706; }
.admin-stat--red span { color: #dc2626; }

.admin-status-select {
  font-size: 0.8rem;
  padding: 3px 6px;
  border-radius: 4px;
  border: 1px solid var(--border);
  cursor: pointer;
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 99px;
  font-size: 0.75rem;
  font-weight: 600;
}
.badge-blue { background: #EFF6FF; color: #1d4ed8; }
.badge-green { background: #DCFCE7; color: #166534; }
.badge-orange { background: #FEF3C7; color: #92400E; }
.badge-red { background: #FEE2E2; color: #991b1b; }

/* ── Configurações do Clube ──────────────────────────────────────────────── */
.config-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}
@media (max-width: 900px) {
  .config-grid { grid-template-columns: 1fr; }
}
.config-identity {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.config-logo-area {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 16px;
  background: rgba(255,255,255,0.04);
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
}
.cfg-logo-preview {
  width: 100px;
  height: 100px;
  border-radius: 10px;
  border: 2px dashed #8892B0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.04);
  flex-shrink: 0;
  overflow: hidden;
}
.cfg-logo-preview img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.config-logo-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}
.cfg-upload-label {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 0.85rem;
}
.cfg-filename {
  font-size: 0.78rem;
  color: #8892B0;
}
.color-picker-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}
.color-picker-row input[type="color"] {
  width: 44px;
  height: 36px;
  padding: 2px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.15);
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
}
.color-hex-input {
  width: 100px;
  font-family: monospace;
  font-size: 0.9rem;
}
.color-preview-bar {
  width: 100%;
  height: 28px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.1);
  margin-top: 4px;
  background: linear-gradient(90deg, #39FF14 50%, #0A192F 50%);
}
.cfg-msg {
  font-size: 0.82rem;
  margin-left: 12px;
  transition: opacity 0.3s;
}
.cfg-ok { color: #39FF14; }
.cfg-err { color: #f87171; }

/* Botão Exportar PDF */
.btn-export {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  background: transparent;
  border: 1.5px solid #8892B0;
  color: #8892B0;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.18s;
  white-space: nowrap;
}
.btn-export:hover {
  border-color: #39FF14;
  color: #39FF14;
}
.btn-export .nav-icon {
  width: 14px;
  height: 14px;
}

/* Sidebar club logo */
.sidebar-club-logo {
  width: 28px;
  height: 28px;
  object-fit: contain;
  border-radius: 4px;
  margin-right: 4px;
}

/* ═══════════════════════════════════════════════════════════
   FULL OVERLAY (Ficha do Atleta + Programação)
   ═══════════════════════════════════════════════════════════ */
.full-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(0,0,0,.7);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 24px 16px;
}
.full-overlay.hidden { display: none; }
.full-overlay-inner {
  background: #0A192F;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  width: 100%;
  max-width: 960px;
  padding: 28px;
  position: relative;
}
.overlay-close {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.2);
  color: #ccd6f6;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  cursor: pointer;
  transition: all .18s;
  flex-shrink: 0;
}
.overlay-close:hover { border-color: #f87171; color: #f87171; }

/* Ficha header */
.ficha-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.ficha-header-left {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.ficha-avatar { flex-shrink: 0; }
.ficha-nome {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 4px;
  color: #e6f1ff;
}
.ficha-sub {
  margin: 0;
  opacity: .7;
  font-size: .9rem;
}

/* KPI row */
.ficha-kpi-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}
.ficha-kpi {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 12px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 80px;
}
.ficha-kpi-val {
  font-size: 1.6rem;
  font-weight: 700;
  color: #39FF14;
  line-height: 1;
}
.ficha-kpi-label {
  font-size: .72rem;
  opacity: .65;
  margin-top: 4px;
  text-align: center;
}

/* Ficha tabs */
.ficha-tab-content { padding-top: 16px; }
.ficha-table-wrap { overflow-x: auto; margin-bottom: 20px; }
.ficha-table-wrap table { width: 100%; }

/* Ficha relatório */
.ficha-relatorio-controls {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.ficha-relatorio-controls label {
  display: flex;
  flex-direction: column;
  font-size: .82rem;
  gap: 4px;
}

/* Competições */
.comp-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}
.comp-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 10px;
}
.comp-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.comp-card-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.comp-badge {
  display: inline-block;
  font-size: .72rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: 6px;
}
.comp-tipo-campeonato { background: #1e3a2f; color: #39FF14; }
.comp-tipo-copa       { background: #1e2a4a; color: #64B5F6; }
.comp-tipo-torneio    { background: #3a1e2f; color: #F48FB1; }
.comp-tipo-amistoso   { background: #2a2a1e; color: #FFF176; }
.comp-status-emandamento { background: #1e3a2f; color: #39FF14; }
.comp-status-encerrado   { background: rgba(255,255,255,.07); color: #8892B0; }
.comp-status-planejado   { background: #2a2a1e; color: #FFF176; }

/* Programação overlay */
/* ── Programação overlay tabs ──────────────────────────────────────────── */
.prog-tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--border); margin-bottom: 18px; }
.prog-tab-btn {
  background: none; border: none; color: var(--text-muted); font-size: .88rem; font-weight: 600;
  padding: 8px 18px; border-radius: 8px 8px 0 0; cursor: pointer; transition: color .15s, background .15s;
}
.prog-tab-btn.active { color: var(--accent); border-bottom: 2px solid var(--accent); margin-bottom: -2px; background: rgba(34,197,94,0.06); }
.prog-tab-btn:hover:not(.active) { color: var(--text); background: rgba(255,255,255,.04); }
.prog-tab-content { animation: fadeIn .15s ease; }

/* ── Convocação list ───────────────────────────────────────────────────── */
.prog-hint { font-size:.8rem; opacity:.6; margin: 0 0 10px; }
.prog-atletas-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px,1fr));
  gap: 4px;
  max-height: 460px;
  overflow-y: auto;
  padding-right: 4px;
}
.prog-atleta-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 7px;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  font-size: .88rem;
}
.prog-atleta-item:hover { background: rgba(255,255,255,.05); }
.prog-atleta-item.prog-conv-selected { background: rgba(34,197,94,0.1); border-color: rgba(34,197,94,0.35); }
.prog-atleta-item input[type=checkbox] { accent-color: #39FF14; flex-shrink:0; }
.prog-atleta-pos { font-size: .72rem; opacity: .5; }
.prog-atleta-num { margin-left:auto; font-size:.72rem; font-weight:700; color:var(--accent); opacity:.7; }

/* ── Escalação ──────────────────────────────────────────────────────────── */
.prog-esc-section { background: rgba(255,255,255,.02); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.prog-esc-header { font-size:.83rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.prog-esc-count { font-size:.75rem; font-weight:800; padding:2px 8px; border-radius:20px; }
.prog-esc-count.ok   { background:rgba(34,197,94,.18); color:#22c55e; }
.prog-esc-count.warn { background:rgba(245,158,11,.18); color:#f59e0b; }
.prog-esc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 6px;
  border-radius: 7px;
  border-bottom: 1px solid var(--border);
  font-size: .86rem;
  flex-wrap: wrap;
}
.prog-esc-row:last-child { border-bottom: none; }
.prog-esc-name { font-weight: 600; min-width: 130px; flex: 1; color: var(--text); }
.prog-esc-pos  { font-size: .75rem; color: var(--text-muted); min-width: 50px; }
.prog-esc-tipo { padding: 4px 8px; font-size: .82rem; min-width:90px; }
.prog-esc-mins { font-size: .82rem; font-weight: 700; min-width: 36px; text-align:right; }
.prog-mins-ok   { color: #22c55e; }
.prog-mins-zero { color: var(--text-muted); }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.prog-footer { display:flex; align-items:center; gap:14px; padding-top:16px; margin-top:16px; border-top:1px solid var(--border); }

.prog-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 24px; margin-top: 20px; }
@media (max-width: 680px) { .prog-grid { grid-template-columns: 1fr; } }
.prog-col h4 { margin: 0 0 10px; color: #e6f1ff; }
.form-grid-1 { display: flex; flex-direction: column; gap: 10px; }

/* ── Programação — Section Cards ────────────────────────────────────────── */
.prog-section-card {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
}
.prog-section-title {
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--text-muted);
  margin-bottom: 12px;
}

/* ── Convocação — Cabeçalho toggles ─────────────────────────────────────── */
.prog-toggle-group {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.prog-toggle-btn {
  padding: 6px 14px;
  border-radius: 8px;
  border: 1.5px solid var(--border);
  background: transparent;
  color: var(--text-muted);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
.prog-toggle-btn:hover { background: rgba(255,255,255,.06); color: var(--text); }
.prog-toggle-btn.active {
  background: rgba(57,255,20,.14);
  border-color: rgba(57,255,20,.5);
  color: #39FF14;
}

/* ── Convocação — Counter badge ─────────────────────────────────────────── */
.prog-conv-counter {
  font-weight: 800;
  font-size: .88rem;
  color: var(--accent);
  background: rgba(57,255,20,.1);
  padding: 3px 12px;
  border-radius: 20px;
  border: 1px solid rgba(57,255,20,.25);
}
.prog-conv-counter.prog-conv-full { color: #ef4444; background: rgba(239,68,68,.1); border-color: rgba(239,68,68,.25); }

.prog-atleta-nome { flex: 1; font-size: .88rem; color: var(--text); }

/* ── Logística — Programação por dia ───────────────────────────────────── */
.prog-dia-card {
  background: rgba(255,255,255,.025);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.prog-dia-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.prog-dia-num {
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--accent);
  background: rgba(57,255,20,.1);
  border: 1px solid rgba(57,255,20,.2);
  padding: 2px 10px;
  border-radius: 20px;
  white-space: nowrap;
}
.prog-dia-remove {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 1rem;
  padding: 2px 6px;
  border-radius: 5px;
  transition: color .15s, background .15s;
  flex-shrink: 0;
}
.prog-dia-remove:hover { color: #ef4444; background: rgba(239,68,68,.1); }

.prog-dia-atividades { display: flex; flex-direction: column; gap: 8px; }

.prog-atividade-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.prog-at-remove {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: .85rem;
  padding: 2px 5px;
  border-radius: 5px;
  flex-shrink: 0;
  transition: color .15s;
}
.prog-at-remove:hover { color: #ef4444; }

/* ══════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — Sidebar drawer + layout fixes
   ══════════════════════════════════════════════════════════════════ */

/* Hamburger toggle — hidden on desktop */
.sidebar-toggle-btn {
  display: none;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: #e5e7eb;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 6px;
  flex-shrink: 0;
  margin-right: 4px;
}
.sidebar-toggle-btn:hover { background: rgba(255,255,255,.08); }

/* Sidebar overlay — hidden on desktop */
#sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 999;
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events: none;
}
#sidebar-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

@media (max-width: 768px) {
  /* ── Show hamburger ─────────────────────────────────────────── */
  .sidebar-toggle-btn { display: flex; }

  /* ── Sidebar becomes a drawer ──────────────────────────────── */
  #sidebar {
    position: fixed !important;
    top: 0;
    left: 0;
    height: 100vh;
    width: 260px !important;
    min-width: 260px !important;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform .25s ease;
    box-shadow: 4px 0 24px rgba(0,0,0,.4);
  }
  #sidebar.open { transform: translateX(0); }

  /* ── Overlay ────────────────────────────────────────────────── */
  #sidebar-overlay { display: block; }

  /* ── Content takes full width ──────────────────────────────── */
  #app-shell { flex-direction: row; }
  #main-wrapper { width: 100%; min-width: 0; }
  #content { padding: 12px; }

  /* ── Top header tweaks ─────────────────────────────────────── */
  .top-header-comp  { display: none; }
  .top-header-search { display: none; }
  .top-header-user-info { display: none; }
  .top-header-action-btn span,
  #header-nova-acao > svg + * { display: none; }

  /* ── Section headers ───────────────────────────────────────── */
  .section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .section-header-actions {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  /* ── Athlete cards in elenco ───────────────────────────────── */
  .athlete-card {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }
  #elenco-grid {
    grid-template-columns: 1fr !important;
  }

  /* ── KPI grids ─────────────────────────────────────────────── */
  .dash-kpi-grid        { grid-template-columns: 1fr 1fr !important; }
  .dash-mid-row         { grid-template-columns: 1fr !important; }
  .dash-bottom-row      { grid-template-columns: 1fr !important; }
  .fin-kpi-grid         { grid-template-columns: 1fr 1fr !important; }
  .med-kpi-row          { grid-template-columns: 1fr 1fr !important; }
  .disc-kpi-row         { grid-template-columns: 1fr 1fr !important; }

  /* ── Tables — make them scroll horizontally ────────────────── */
  .page-section table { display: block; overflow-x: auto; white-space: nowrap; }

  /* ── Form grids → single column ────────────────────────────── */
  .form-card form[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  /* ── Utilizador form ────────────────────────────────────────── */
  #utilizador-form {
    grid-template-columns: 1fr !important;
  }

  /* ── Rank / alert panels ────────────────────────────────────── */
  .disc-alertas-list > div { flex-wrap: wrap; }
}

/* Very small screens (< 400px) */
@media (max-width: 400px) {
  .dash-kpi-grid { grid-template-columns: 1fr !important; }
  .med-kpi-row   { grid-template-columns: 1fr !important; }
}
