/* ═══════════════════════════════════════════════════════════════════════════
   RAVVO — V10 FITCORE THEME  (2026-06)
   Dashboard premium (modelo FitCore) + sidebar recolhível + busca global.
   Usa as variáveis existentes do global.css / premium-theme.css — funciona
   nos temas dark e light sem ajuste extra.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─────────── Saudação ─────────── */
.fc-hello { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:22px; flex-wrap:wrap; }
.fc-hello h1 { font-size:1.45rem; font-weight:800; letter-spacing:-.02em; }
.fc-hello h1 [data-gym-name] { color:var(--text-primary); }
.fc-hello p { color:var(--text-secondary); font-size:.92rem; margin-top:4px; }
.fc-date { background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:9px 14px; font-size:.85rem; color:var(--text-secondary); white-space:nowrap; }

/* ─────────── KPIs ─────────── */
.fc-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:14px; }
.fc-kpi { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; padding:16px 16px 8px; transition:transform .18s, border-color .18s; }
.fc-kpi:hover { transform:translateY(-2px); border-color:var(--accent-dim); }
.fc-kpi-top { display:flex; gap:12px; align-items:flex-start; }
.fc-kpi-ic { width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:1.15rem; flex-shrink:0; }
.t-purple { background:rgba(139,63,232,.18); }
.t-blue   { background:rgba(59,130,246,.18); }
.t-green  { background:rgba(34,197,94,.18); }
.t-orange { background:rgba(245,158,11,.18); }
.t-pink   { background:rgba(236,72,153,.18); }
.t-gray   { background:rgba(148,163,184,.18); }
.fc-kpi-label { font-size:.78rem; color:var(--text-secondary); font-weight:600; }
.fc-kpi-val { font-size:1.45rem; font-weight:800; letter-spacing:-.02em; margin-top:2px; }
.fc-kpi-sub { display:flex; align-items:center; gap:6px; margin-top:3px; flex-wrap:wrap; }
.fc-trend { font-size:.76rem; font-weight:700; padding:1px 7px; border-radius:99px; }
.fc-trend.up   { color:#22C55E; background:rgba(34,197,94,.12); }
.fc-trend.down { color:#EF4444; background:rgba(239,68,68,.12); }
.fc-trend.flat { color:var(--text-secondary); background:rgba(148,163,184,.12); }
.fc-trend-vs { font-size:.72rem; color:var(--text-secondary); }
.fc-spark { height:38px; margin-top:8px; }
.fc-spark-empty { background:linear-gradient(90deg, var(--accent-dim), transparent); border-radius:4px; height:3px; margin-top:24px; margin-bottom:19px; opacity:.5; }

/* ─────────── Linhas 2 e 3 ─────────── */
.fc-row2 { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:14px; margin-bottom:14px; }
.fc-row3 { display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:14px; margin-bottom:14px; }
.fc-card { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; padding:18px; }
.fc-card-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:12px; gap:8px; }
.fc-card-head h3 { font-size:.95rem; font-weight:700; }
.fc-dim { color:var(--text-secondary); font-weight:500; font-size:.85rem; }
.fc-big { font-size:1.55rem; font-weight:800; letter-spacing:-.02em; margin-top:4px; }
.fc-chart { height:230px; margin-top:6px; }

/* donut */
.fc-donut-wrap { display:flex; flex-direction:column; align-items:center; gap:14px; }
.fc-donut { position:relative; width:170px; height:170px; }
.fc-donut-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; pointer-events:none; }
.fc-donut-center span { font-size:.72rem; color:var(--text-secondary); }
.fc-donut-center b { font-size:1.3rem; font-weight:800; }
.fc-legend { width:100%; display:flex; flex-direction:column; gap:7px; font-size:.82rem; color:var(--text-secondary); }
.fc-legend > div { display:flex; align-items:center; gap:8px; }
.fc-legend b { margin-left:auto; color:var(--text-primary); font-weight:600; font-size:.8rem; }
.fc-legend i { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.d-green{background:#22C55E}.d-orange{background:#F59E0B}.d-blue{background:#3B82F6}.d-red{background:#EF4444}

/* check-ins recentes */
.fc-checkin { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border); }
.fc-checkin:last-of-type { border-bottom:none; }
.fc-checkin .m b { font-size:.86rem; font-weight:600; }
.fc-checkin .t { margin-left:auto; font-size:.76rem; color:var(--text-secondary); }
.fc-checkin .ok { color:#22C55E; font-weight:800; }
.fc-av { width:32px; height:32px; border-radius:50%; background:var(--accent-dim); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:800; flex-shrink:0; }
.fc-av.big { width:54px; height:54px; font-size:1rem; }

/* financeiro */
.fc-fin { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--border); font-size:.86rem; }
.fc-fin:last-of-type { border-bottom:none; }
.fc-fin span:first-child { color:var(--text-secondary); }
.fc-fin b { margin-left:auto; font-weight:700; }
.fc-fin.warn b { color:#F59E0B; }
.fc-warn { font-size:.72rem; color:#F59E0B; }

/* top planos */
.fc-plan { display:grid; grid-template-columns:20px 1fr auto 70px 38px; align-items:center; gap:8px; padding:8px 0; font-size:.84rem; }
.fc-plan .n { color:var(--text-secondary); font-weight:700; }
.fc-plan .nm { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fc-plan .ct { color:var(--text-secondary); font-size:.76rem; }
.fc-plan .bar { height:6px; background:var(--bg-input); border-radius:99px; overflow:hidden; }
.fc-plan .bar i { display:block; height:100%; background:var(--accent); border-radius:99px; }
.fc-plan .pc { text-align:right; color:var(--text-secondary); font-size:.76rem; }

/* executivos */
.fc-exec { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fc-exec > div { background:var(--bg-input); border-radius:10px; padding:10px 12px; }
.fc-exec span { display:block; font-size:.72rem; color:var(--text-secondary); margin-bottom:3px; }
.fc-exec b { font-size:1.02rem; font-weight:800; }
.fc-exec b.risk { color:#F59E0B; }

/* pessoas (novos alunos) */
.fc-people-row { display:flex; gap:18px; flex-wrap:wrap; }
.fc-person { display:flex; flex-direction:column; align-items:center; gap:5px; width:86px; text-align:center; }
.fc-person b { font-size:.78rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:86px; }
.fc-person span { font-size:.7rem; color:var(--text-secondary); }

/* ações rápidas */
.fc-actions-row { display:flex; gap:10px; flex-wrap:wrap; }
.fc-actions-row button { display:flex; align-items:center; gap:8px; background:var(--bg-input); border:1px solid var(--border); color:var(--text-primary); border-radius:11px; padding:11px 16px; font-size:.85rem; font-weight:600; cursor:pointer; transition:all .18s; }
.fc-actions-row button:hover { border-color:var(--accent); transform:translateY(-1px); }
.fc-actions-row i { font-style:normal; width:28px; height:28px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:.9rem; }

/* links */
.fc-link { display:block; width:100%; margin-top:12px; background:var(--bg-input); border:1px solid var(--border); color:var(--accent); border-radius:9px; padding:9px; font-size:.82rem; font-weight:600; cursor:pointer; transition:all .18s; text-align:center; }
.fc-link:hover { border-color:var(--accent); }
.fc-link.inline { width:auto; margin:0; padding:5px 12px; }
.fc-empty { color:var(--text-secondary); font-size:.84rem; padding:14px 0; }

/* skeleton */
@keyframes fcPulse { 0%,100%{opacity:.45} 50%{opacity:.9} }
.fc-skel { background:var(--bg-card); border-radius:14px; animation:fcPulse 1.3s infinite; }
.fc-skel-head { height:52px; width:50%; background:var(--bg-card); border-radius:12px; margin-bottom:18px; animation:fcPulse 1.3s infinite; }
.fc-skel-row { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:14px; }
.fc-skel-kpi { height:118px; }
.fc-skel-row2 { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:14px; }
.fc-skel-lg, .fc-skel-md { height:320px; }

/* ─────────── Sidebar recolhível ─────────── */
.sidebar { transition:width .22s ease; }
.sidebar-collapse-btn { width:calc(100% - 24px); margin:6px 12px; display:flex; align-items:center; justify-content:center; gap:8px; background:transparent; border:1px solid var(--border); color:var(--text-secondary); border-radius:9px; padding:7px; font-size:.78rem; cursor:pointer; transition:all .18s; }
.sidebar-collapse-btn:hover { color:var(--accent); border-color:var(--accent); }
@media (min-width:769px) {
  body.sb-collapsed .sidebar { width:74px; }
  body.sb-collapsed .sidebar .nav-item { justify-content:center; padding-left:0; padding-right:0; }
  body.sb-collapsed .sidebar .nav-item svg { margin:0; }
  body.sb-collapsed .sidebar .nav-section-title,
  body.sb-collapsed .sidebar .sidebar-user-info,
  body.sb-collapsed .sidebar .nav-item .nav-badge,
  body.sb-collapsed .sidebar .nav-label-text { display:none; }
  body.sb-collapsed .sidebar-collapse-btn .lbl { display:none; }
  body.sb-collapsed .sidebar .nav-item { font-size:0; }
  body.sb-collapsed .sidebar .nav-item svg { width:20px; height:20px; font-size:initial; }
}

/* ─────────── Busca global (Ctrl/⌘+K) ─────────── */
.gsearch-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(3px); z-index:9000; display:flex; align-items:flex-start; justify-content:center; padding-top:12vh; }
.gsearch { width:min(560px, 92vw); background:var(--bg-modal); border:1px solid var(--border); border-radius:16px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.5); }
.gsearch input { width:100%; padding:16px 18px; background:transparent; border:none; outline:none; color:var(--text-primary); font-size:1rem; border-bottom:1px solid var(--border); }
.gsearch-list { max-height:46vh; overflow-y:auto; padding:8px; }
.gsearch-item { display:flex; align-items:center; gap:11px; width:100%; padding:10px 12px; border-radius:10px; background:transparent; border:none; color:var(--text-primary); font-size:.9rem; cursor:pointer; text-align:left; }
.gsearch-item:hover, .gsearch-item.sel { background:var(--accent-dim); }
.gsearch-item .ic { width:30px; height:30px; border-radius:8px; background:var(--bg-input); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.gsearch-item .sub { margin-left:auto; font-size:.72rem; color:var(--text-secondary); }
.gsearch-hint { padding:9px 16px; font-size:.72rem; color:var(--text-secondary); border-top:1px solid var(--border); display:flex; gap:14px; }
.gsearch-hint kbd { background:var(--bg-input); border:1px solid var(--border); border-radius:5px; padding:1px 6px; font-size:.7rem; }
.gsearch-group { padding:8px 12px 3px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--text-secondary); }

/* botão de busca na sidebar */
.gsearch-trigger { width:calc(100% - 24px); margin:8px 12px 2px; display:flex; align-items:center; gap:9px; background:var(--bg-input); border:1px solid var(--border); color:var(--text-secondary); border-radius:10px; padding:9px 12px; font-size:.82rem; cursor:pointer; transition:all .18s; }
.gsearch-trigger:hover { border-color:var(--accent); color:var(--text-primary); }
.gsearch-trigger kbd { margin-left:auto; background:var(--bg-card); border:1px solid var(--border); border-radius:5px; padding:1px 6px; font-size:.68rem; }
body.sb-collapsed .gsearch-trigger span, body.sb-collapsed .gsearch-trigger kbd { display:none; }

/* favoritos */
.nav-fav-star { margin-left:auto; opacity:0; font-size:.8rem; cursor:pointer; transition:opacity .15s; background:none; border:none; color:var(--text-secondary); }
.nav-item:hover .nav-fav-star { opacity:.7; }
.nav-fav-star.on { opacity:1 !important; color:#F59E0B; }
body.sb-collapsed .nav-fav-star { display:none; }

/* ─────────── Central de personalização ─────────── */
.brand-color-row { display:flex; align-items:center; gap:12px; }
.brand-color-row input[type=color] { width:46px; height:36px; border:1px solid var(--border); border-radius:8px; background:var(--bg-input); cursor:pointer; padding:2px; }

/* ─────────── Responsivo ─────────── */
@media (max-width:1200px) {
  .fc-kpis { grid-template-columns:repeat(2,1fr); }
  .fc-row2, .fc-row3, .fc-skel-row2 { grid-template-columns:1fr; }
  .fc-skel-row { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px) {
  .fc-kpis, .fc-skel-row { grid-template-columns:1fr; }
  .fc-hello h1 { font-size:1.2rem; }
  .fc-exec { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .fc-kpi, .fc-actions-row button, .sidebar { transition:none; }
  .fc-skel, .fc-skel-head { animation:none; }
}

/* ─────────── V10: Aniversariantes + Em risco ─────────── */
.fc-row-2col { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.bday-today { color:#22C55E !important; font-weight:700; }
.fc-av.big.pulse { box-shadow:0 0 0 0 rgba(34,197,94,.5); animation:bdayPulse 1.8s infinite; }
@keyframes bdayPulse { 0%{box-shadow:0 0 0 0 rgba(34,197,94,.45)} 70%{box-shadow:0 0 0 10px rgba(34,197,94,0)} 100%{box-shadow:0 0 0 0 rgba(34,197,94,0)} }
.risk-row { display:flex; align-items:center; gap:11px; padding:9px 0; border-bottom:1px solid var(--border); }
.risk-row:last-of-type { border-bottom:none; }
.risk-info { display:flex; flex-direction:column; line-height:1.2; }
.risk-info b { font-size:.86rem; font-weight:600; }
.risk-info span { font-size:.74rem; color:var(--text-secondary); }
.risk-badge { margin-left:auto; font-size:.72rem; font-weight:700; padding:3px 9px; border-radius:99px; white-space:nowrap; }
.risk-badge.risk-7  { background:rgba(245,158,11,.15); color:#F59E0B; }
.risk-badge.risk-15 { background:rgba(245,108,30,.18); color:#F5601E; }
.risk-badge.risk-30 { background:rgba(239,68,68,.18); color:#EF4444; }
@media (max-width:1200px){ .fc-row-2col{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ .fc-av.big.pulse{ animation:none; } }

/* ─────────── V10: Card de consumo de aulas (aluno) ─────────── */
.quota-card {
  background: var(--bg-card, #16161D);
  border: 1px solid var(--border, #222);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 18px;
}
.quota-top { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:.84rem; color:var(--text-secondary); margin-bottom:8px; }
.quota-top strong { font-size:1.05rem; }
.quota-bar { height:8px; border-radius:99px; background:var(--bg-input, #0B0B0F); overflow:hidden; }
.quota-bar-fill { height:100%; border-radius:99px; transition:width .4s ease; }
.quota-sub { font-size:.76rem; margin-top:7px; }
