/* =====================================================================================================
   Design system — base comum de todas as páginas.

   Ordem: 1) tokens básicos · 2) tokens de uso · 3) componentes .ds-* · 4) utilitários.
   As cores do CLUBE (--brand-primary/secondary/accent e variações, --on-*, --club*) não estão aqui:
   vêm do bloco que o servidor gera por clube (templates/layouts/_brand_head.html, arganda/core/brand.py).

   Regra: este arquivo NÃO estiliza elementos (body, .card, .btn…). Isso fica nos layouts até a migração
   das telas (subprojeto 3); assim, carregá-lo não muda a aparência de nenhuma página existente.
   ===================================================================================================== */

/* 1) Tokens básicos -------------------------------------------------------------------------------- */
:root {
  /* cinzas (os de sempre do app) */
  --gray-900: #0f172a; --gray-700: #334155; --gray-500: #64748b; --gray-400: #94a3b8; --gray-300: #cbd5e1;
  --gray-200: #e2e8f0; --gray-100: #f1f5f9; --gray-50: #f4f6f9; --white: #ffffff;
  /* estados */
  --green-700: #15803d; --green-50: #ecfdf3;
  --amber-700: #b45309; --amber-50: #fffbeb;
  --red-700: #b42318;   --red-50: #fef3f2;
  --blue-700: #0369a1;  --blue-50: #f0f9ff;
  /* espaçamento */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px; --space-6: 32px; --space-7: 48px;
  /* raios e sombras */
  --radius-sm: 8px; --radius: 12px; --radius-lg: 16px; --radius-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.04);
  --shadow-md: 0 4px 12px rgba(15,23,42,.08);
  /* tipografia */
  --font-head: 'Lexend', system-ui, sans-serif;
  --font-body: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --fs-xs: .75rem; --fs-sm: .875rem; --fs-md: 1rem; --fs-lg: 1.125rem; --fs-xl: 1.375rem; --fs-2xl: 1.75rem; --fs-3xl: 2rem;
}

/* 2) Tokens de uso (as telas usam estes nomes, nunca valores soltos) --------------------------------- */
:root {
  --surface: var(--white);
  --canvas: var(--gray-50);
  --border: var(--gray-200);
  --border-strong: var(--gray-300);
  --text: var(--gray-900);
  --text-2: var(--gray-700);
  --text-muted: var(--gray-500);
  --success: var(--green-700); --success-soft: var(--green-50);
  --warning: var(--amber-700); --warning-soft: var(--amber-50);
  --danger: var(--red-700);    --danger-soft: var(--red-50);
  --info: var(--blue-700);     --info-soft: var(--blue-50);
  /* nomes antigos, usados pelas telas ainda não migradas (mesmos valores de antes) */
  --ink: var(--text); --ink-2: var(--text-2); --muted: var(--text-muted); --line: var(--border);
}

/* 3) Componentes ----------------------------------------------------------------------------------- */
.btn-brand { background: var(--brand-primary); border-color: var(--brand-primary); color: var(--on-primary);
             font-weight: 600; border-radius: var(--radius); min-height: 44px; }
.btn-brand:hover, .btn-brand:focus { background: var(--brand-primary-strong); border-color: var(--brand-primary-strong);
                                     color: var(--on-primary); }

.ds-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
           box-shadow: var(--shadow-sm); padding: var(--space-4); }

.ds-chip { display: inline-flex; align-items: center; gap: var(--space-1); border-radius: var(--radius-pill);
           padding: 2px 10px; font-size: var(--fs-sm); font-weight: 600;
           background: var(--brand-primary-soft); color: var(--brand-primary-soft-ink); }
.ds-chip-accent { background: var(--brand-accent); color: var(--on-accent); }
.ds-chip-success { background: var(--success-soft); color: var(--success); }
.ds-chip-warning { background: var(--warning-soft); color: var(--warning); }
.ds-chip-danger { background: var(--danger-soft); color: var(--danger); }

.ds-opt { min-height: 44px; padding: var(--space-2) var(--space-4); border: 2px solid var(--border-strong);
          border-radius: var(--radius); background: var(--surface); color: var(--text-2); font-weight: 600;
          display: inline-flex; align-items: center; gap: var(--space-2); cursor: pointer; }
.btn-check:checked + .ds-opt { border-color: var(--brand-primary); background: var(--brand-primary-soft);
                               color: var(--brand-primary-soft-ink); }

.ds-page-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); }
.ds-page-head h1 { font-family: var(--font-head); font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); margin: 0; }
.ds-page-head .ds-actions { margin-left: auto; display: flex; flex-wrap: wrap; gap: var(--space-2); }

.ds-empty { text-align: center; color: var(--text-muted); padding: var(--space-7) var(--space-4);
            border: 1px dashed var(--border-strong); border-radius: var(--radius); background: var(--surface); }
.ds-empty .bi { font-size: 2rem; color: var(--gray-400); display: block; margin-bottom: var(--space-2); }

.ds-stat { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-2xl); line-height: 1.1; color: var(--text); }
.ds-stat-label { font-size: var(--fs-sm); font-weight: 600; color: var(--text-muted); }
.ds-stat-accent { color: var(--brand-accent-ink); }

.ds-steps { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.ds-steps .s { flex: 1 0 auto; display: flex; align-items: center; gap: 6px; padding: 6px 10px 6px 6px;
               border-radius: var(--radius-pill); background: var(--gray-200); color: var(--text-muted);
               font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; text-decoration: none; }
.ds-steps .s.done { background: var(--brand-primary-soft); color: var(--brand-primary-soft-ink); }
.ds-steps .s.cur { background: var(--brand-primary); color: var(--on-primary); }

.ds-actionbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; background: rgba(255,255,255,.96);
                backdrop-filter: blur(6px); border-top: 1px solid var(--border);
                padding: 10px var(--space-4) calc(10px + env(safe-area-inset-bottom)); }

/* 4) Utilitários ----------------------------------------------------------------------------------- */
.text-on-brand { color: var(--on-primary) !important; }
.bg-brand { background: var(--brand-primary) !important; color: var(--on-primary) !important; }
.bg-brand-soft { background: var(--brand-primary-soft) !important; }
.text-accent { color: var(--brand-accent-ink) !important; }
.ds-focus:focus-visible { outline: 3px solid var(--brand-primary-ink); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .ds-steps .s, .ds-opt, .btn-brand { transition: none !important; }
}
