/* ═══════════════════════════════════════════════════════════════════
   ROSTER — Design tokens do produto · v2 ("o papel vira bancada")

   instrumento: LEI
   contexto: produto (dashboard da igreja, dashboard do parceiro, sandbox, auth)
   governada_por: TRADUCAO.md (ao lado — o critério; ler antes de aplicar)
   medida_de_origem: ../comunicacao-interna/ds-tela.css (paleta, tipografia, chips)
                     + ../produto/MEDIDA.md (o que o produto pratica hoje)
   herda_de: ../comunicacao-interna/ds-tela.css v1.1
   versao: 0.2 · data: 2026-09-08 (direção D promovida a :root; .dir-a/b/c removidas)

   Marcadores de origem, na linha:
     ← lei-doc   valor idêntico ao ds-tela.css (o papel)
     ← U-nn      valor decidido no TRADUCAO.md
     ← www       valor do churches-v2.css (escala do acento)
     ← v1        nome de papel mantido do tokens.css do DS v1 (hospitais), para o
                 CSS de shell da empresa mudar o mínimo; o valor muda por baixo
     novo        valor que nem o papel nem o v1 tinham

   Regra que não muda: nada fora de :root escreve valor visual.
   Nome diz papel, nunca tom. Portão de máquina: verificar-ui.py.
   ═══════════════════════════════════════════════════════════════════ */

@font-face{font-family:'Inter';src:url('fonts/Inter-Variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Inter';src:url('fonts/Inter-Italic-Variable.ttf') format('truetype');font-weight:100 900;font-style:italic;font-display:swap;}

:root{
  --sample-blur:3px;
  --flow-preview-height:680px;
  --flow-preview-min-width:674px; /* ← 01/10 · 640 (teto de modal_width, apps/flow/src/customization.ts) + 2×16 (padding de .donor-surface, apps/flow/public/donor.css) + 2×1 (a borda --rule do iframe, que o border-box tira da janela) */
  --flow-map-height:320px;
  /* ── Tipografia ────────────────────────────────────────────── */
  --sans:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif; /* ← lei-doc · U-11 */
  /* ← U-03, U-11 · decisão Victor 11/09/2026: NENHUMA família monoespaçada no produto.
        A liderança leu o mono em caixa alta como "tech" (reunião de 10/09), e o Victor
        promoveu a troca da variante calma para a lei. `--mono` sobrevive como APELIDO de
        `--sans` de propósito: as 49 regras que o pedem (rótulo, th, chip, código, dado,
        identificador) continuam declarando a INTENÇÃO de "isto é dado", e o dia em que uma
        família própria voltar é uma linha aqui. O `tabular-nums` do body mantém a coluna de
        número alinhada em Inter. */
  --mono:var(--sans);
  --font-sans:var(--sans); --font-mono:var(--mono);                                 /* ← v1 */

  --text-page:28px;     --weight-page:700;   --lead-page:1.1;  --track-page:-.022em;    /* ← U-04, U-24 · doctitle no piso do clamp */
  --text-section:21px;  --weight-section:700;--lead-section:1.2;--track-section:-.012em;/* ← lei-doc h2 · U-25 */
  --text-sub:15px;      --weight-sub:700;    --lead-sub:1.3;   --track-sub:-.006em;     /* ← lei-doc h3 */
  --text-body:13.5px;   --weight-body:400;   --lead-body:1.5;                            /* ← U-32 · corpo de bancada (o papel usa 15) */
  --text-small:12.5px;  --weight-small:400;  --lead-small:1.45;                          /* ← lei-doc .meta .v, hint */
  --text-label:10px;    --weight-label:650;  --lead-label:1.4;  --track-label:.1em;      /* ← lei-doc .k · U-08 */
  --text-th:10px;       --weight-th:600;     --track-th:.09em;                           /* ← lei-doc th */
  --text-chip:10px;     --weight-chip:700;   --track-chip:.05em;                         /* ← lei-doc .chip */
  --text-kpi:40px;      --weight-kpi:500;    --lead-kpi:1;      --track-kpi:-.02em;      --text-kpi-sm:28px; /* ← 20/09 · o KPI menor e o número de agora dos gráficos */      /* ← U-31 · S-73: peso desce quando tamanho sobe */
  --text-code:12.5px;   --lead-code:1.75;                                                /* ← lei-doc pre */
  --text-standfirst:15px;                                                                /* ← U-24 */
  --weight-strong:650;                                                                   /* ← lei-doc */

  /* ── Cor: papel ← lei-doc ──────────────────────────────────── */
  --canvas:#fff;      /* ← U-16 · decisão Victor 03/09 (direção A): tudo é folha; o chrome se separa por hairline, não por cor */
  --side-hover:var(--flat); /* ← U-37 */
  --paper:#fff;       /* ← lei-doc · superfície de trabalho */
  --flat:#f4f4f2;     /* ← lei-doc · pouso pequeno: código, campo desabilitado, chip, hover */
  --ink:#111;         /* ← lei-doc */
  --ink-2:#333; --ink-3:#555; --ink-4:#666; --ink-5:#8a8a8a; /* ← lei-doc */
  --line:#e6e6e3; --line-mid:#d9d9d5; --line-soft:#999;     /* decisão Victor 2026-09-03 (tarde): linhas leves, ref. Midday; o papel usa #ddd/#ccc */

  /* ── Cor: acento ← lei-doc + www ───────────────────────────── */
  --acc:#4f3fd8;                  /* ← lei-doc · variante Roster · U-19 */
  --acc-hi:#7e6ff3;               /* ← www · hover do próprio elemento de atenção */
  --acc-deep:#3b2eb3;             /* ← www · texto sobre --acc-soft */
  --acc-soft:#eae8f8;             /* ← www · fundo da tarja de sandbox */
  --acc-tint:rgba(79,63,216,.11); /* ← lei-doc · célula/aviso */
  --scrim:rgba(17,17,17,.6);      /* ← U-28 · tinta a 60% (novo) */
  --paper-a55:rgba(255,255,255,.55); /* ← papel translúcido sobre tinta: rótulo do callout.hard */
  --paper-a12:rgba(255,255,255,.12); /* ← idem: hover do secundário dentro do callout.hard */
  --paper-a40:rgba(255,255,255,.4);  /* ← idem: borda da tag da barra de protótipo */

  /* ── Papéis (nomes do v1 mantidos ← v1; valores do papel) ──── */
  --surface:var(--paper); /* ← v1 · valor do papel */
  --surface-raised:var(--paper); /* ← v1 · valor do papel */
  --surface-sunken:var(--flat); /* ← v1 · valor do papel */
  --surface-sidebar:var(--canvas); /* ← v1 · valor do papel */
  --ink-strong:var(--ink); /* ← v1 · valor do papel */
  --ink-secondary:var(--ink-3); /* ← v1 · valor do papel */
  --ink-key:var(--ink-4); /* ← v1 · valor do papel */
  --ink-muted:var(--ink-5); /* ← v1 · valor do papel */
  --border-strong:var(--ink);      /* régua estrutural */
  --border:var(--line-mid);        /* controle, card */
  --border-soft:var(--line);       /* fio entre linhas */
  --primary:var(--paper);          /* ← U-18 · decisão Victor 2026-09-03 (noite): primário em CONTORNO roxo profundo sobre papel — tema padrão */
  --primary-hover:var(--acc-soft); /* ← U-18 */
  --primary-ink:var(--acc-deep);   /* ← U-18 */
  --primary-border:var(--acc-deep);/* ← U-18 · mesma espessura do secundário (--btn2-border); disabled preenche com esta cor */
  --sel:var(--acc);                /* seleção, foco, controle ligado, barra atual, item ativo */
  --sel-deep:var(--acc-deep);      /* texto sobre --sel-soft */
  --sel-soft:var(--acc-soft);      /* fundo de item ativo, chip de filtro pressionado */
  --accent:var(--acc); /* ← v1 · valor do papel */
  --accent-tint:var(--acc-tint); /* ← v1 · valor do papel */
  --bg:var(--canvas); --fg:var(--ink); --card:var(--paper); --muted-fg:var(--ink-5); /* compat v1 */

  /* ── Semânticos ← U-20 · decisão Victor 2026-09-03: cor por significado, derivada em OKLCH
        (mesma família de luminosidade/croma do acento; texto ≥4.5:1, ponto ≥3:1 sobre papel — contraste.py) ── */
  --success:#35734a;      --success-dot:#2ea957;   --success-soft:#e3f6e7;   /* conectado, ativo, aprovado, live, verificado */
  --warning:#8e5a07;      --warning-dot:#cd8518;   --warning-soft:#fbeedb;   /* não conectado, requer ação, pausado, em análise */
  --danger:#b6362f;       --danger-dot:#d9463c;    --danger-soft:#fbe6e4;    /* rejeitado, falha, inválido, destrutivo */
  --info:var(--acc);      --info-dot:var(--acc-hi);--info-soft:var(--acc-soft); /* simulado, sugestão, novo — a família do acento */
  --neutral:var(--ink-4); --neutral-dot:var(--ink-5); --neutral-soft:var(--flat); /* pendente, rascunho, agendado */

  /* ── Estados (lista fechada ← U-20; cada um aponta para um semântico) ── */
  --status-connected:var(--success); --status-active:var(--success); --status-approved:var(--success); /* ← U-20 */
  --status-live:var(--success);      --status-verified:var(--success); /* ← U-20 */
  --status-pending:var(--neutral);   --status-draft:var(--neutral);   --status-scheduled:var(--neutral); --status-invited:var(--neutral); /* ← U-20 */
  --status-disconnected:var(--warning); --status-action:var(--warning); --status-paused:var(--warning); --status-review:var(--warning); /* ← U-20 */
  --status-invalid:var(--danger);    --status-rejected:var(--danger); --status-failed:var(--danger); /* ← U-20 */
  --status-locked:var(--line-mid);   --status-simulated:var(--info); /* ← U-20 */

  /* ── Forma ← U-17, U-15 ────────────────────────────────────── */
  /* ← U-17 · a direção D nasceu com 3px (Victor, 04/09; :root em 08/09) e subiu para 4px
        em 11/09/2026, por decisão dele. O chip saiu desta linha: virou pílula. */
  --radius-surface:4px;    /* card, tabela, painel, drawer, janela, tarja */
  --radius-control:4px;    /* botão, input, aba */
  --radius-modal:8px;      /* ← U-28b · só o modal do doador: a moldura da Socure e da Pinwheel tem raio 8 */
  --radius-pill:999px;     /* ← U-20 · o chip de estado, que é pílula de fato: o raio satura na metade da altura */
  --radius-full:50%;       /* avatar, ponto */
  --rule:1px;              --rule-color:var(--line-mid);     /* régua sob o cabeçalho — decisão Victor 03/09: zero tinta em linha (variante C) */
  --sec-rule:1px;          --sec-rule-color:var(--line-mid); /* abre seção */
  --th-rule:1px;           --th-rule-color:var(--line-mid);  /* fecha cabeçalho de tabela */
  --kpi-rule:1px;          --kpi-rule-color:var(--line-mid); /* topo do stat tile */
  --btn2-border:1px;       --btn2-color:var(--line-mid);     /* botão secundário: borda clara, texto tinta */
  --window-border:1px;     --window-color:var(--line-mid);   /* janela, drawer, toast (o scrim separa) */
  --control-bg:var(--flat);                                   /* campo chapado, sem borda (ref. Midday) */
  --hair:1px;              /* fio */

  /* ── Espaço ← U-32 ─────────────────────────────────────────── */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; /* ← U-32 */
  --space-5:24px; --space-6:32px; --space-7:48px; --space-8:72px; /* ← U-32 */

  /* ── Layout ← U-02, U-23, U-24, U-28 ───────────────────────── */
  --sidebar-width:240px; /* ← U-02 */
  --topbar-height:56px; /* ← U-02 */
  --env-banner-height:32px;        /* a tarja, quando existe: roxa na sandbox, verde na produção do parceiro (20/09) */
  --content-max:1200px; /* ← U-02 */
  --content-padding:var(--space-6); /* ← U-02 */
  --grid-gap:16px; /* ← U-02 */
  --drawer-width:720px; /* ← U-02 */
  --window-width-sm:400px; --window-width-md:480px; --window-width-lg:640px; /* ← U-02 */
  --modal-width:350px; --modal-height:683px; --modal-foot:47px; --modal-ring:130px; /* ← U-28b · o modal do doador, medidas do Figma 53:149 (Victor, 14/09/2026) */
  --form-width:640px;              /* 6 colunas + gutters a 1200 */
  --kv-key-width:160px;            /* ← U-26 */
  --icon:16px; /* ← U-02 */

  /* ── Controles ← U-21, U-22, U-42 ──────────────────────────── */
  --control-border:transparent;    /* ← U-22 · campo identificado pelo preenchimento + rótulo; borda só em foco (primária) e erro (danger) */
  --control-height:36px; /* ← U-21 · CAMPO: input, select, textarea, promo da topbar */
  --btn-height:30px;     /* ← U-21 · decisão Victor 11/09/2026: o botão baixa de 36 para 30, que é
                                a caixa interna de 28 que ele pediu (a borda de 1px de cada lado come 2).
                                Saiu de --control-height para não encolher campo junto. */
  --control-height-touch:48px; /* ← U-21 */
  --control-padding-x:var(--space-4); /* ← U-21 */
  --row-height:44px;               /* ← U-32 */
  --chip-height:20px; /* ← U-21 */
  --ico-size:20px;       /* ← U-10 · ícone de navegação e de ação */
  --ico-size-lg:24px;    /* ← U-10 · pictograma de ator do conector */
  --ico-size-sm:16px;    /* ← U-10 · ícone dentro de botão, célula e resumo */
  --toggle-w:36px; --toggle-h:20px; /* ← U-21 */

  /* ── Tabela ← U-14 ─────────────────────────────────────────── */
  --table-header-bg:transparent;   /* ← v1 nome · sem banda */
  --table-header-ink:var(--ink-4); /* ← U-14 */
  --table-row-border:var(--line); /* ← U-14 */
  --table-row-hover:var(--flat); /* ← U-14 */

  /* ── KPI e gráfico ← U-31 ──────────────────────────────────── */
  --kpi-label-ink:var(--ink-4);      /* 10px: 4.5:1 (contraste.py) */
  --kpi-delta-ink:var(--ink-4); /* ← U-31 */
  --kpi-delta-up:var(--success);   --kpi-delta-down:var(--danger); /* ← U-31 */
  --chart-partial:.45; /* ← 20/09 · a coluna em curso, mais clara */
  --chart-bar:var(--line-soft); /* ← U-31 · um degrau mais claro que --ink-5 (nota do Victor, 08/09, ig-live): a barra é área, não texto; a atual continua em --sel */
  --chart-bar-current:var(--sel);   /* ← U-31 */
  --chart-grid:var(--line); /* ← U-31 */
  --chart-height:160px; /* ← U-31 */

  /* ── Código ← U-30 ─────────────────────────────────────────── */
  --code-bg:var(--flat); /* ← U-30 */
  --code-ink:var(--ink-2); /* ← U-30 */
  --code-comment:#999;             /* ← lei-doc pre .c */

  /* ── Ambiente ← U-29 ───────────────────────────────────────── */
  --env-banner-bg:var(--acc-soft); /* ← U-29 */
  --env-banner-ink:var(--acc-deep); /* ← U-29 */

  /* ── Foco, desabilitado, motion ← U-36, U-33 ───────────────── */
  --focus-ring:var(--sel);          /* ← U-36 */
  --focus-ring-width:1.5px; /* ← U-36 */
  --focus-ring-offset:2px; /* ← U-36 */
  --disabled-opacity:.35;          /* ← lei-doc (heatmap "não se aplica") */
  --dur:140ms; /* ← U-36 */
  --ease:cubic-bezier(.2,0,0,1); /* ← U-36 */
}

/* Produção: a tarja só existe quando a moldura a emite (`.env.live`, parceiro). [data-env] no <html>. ← U-29 */

/* ── Direção do produto: D, em :root desde 08/09 (Victor, 04/09). A, B e C saíram da lei;
      o histórico está em TRADUCAO.md U-17 e SOUL.md I-14. A classe .dir-d fica vazia enquanto a
      bancada e a biblioteca ainda a emitirem na raiz; some quando deixarem de emitir. ── */
.dir-d{ } /* = :root desde 08/09 */
/* ── Temas do botão primário (Victor, 03/09): o padrão é o contorno roxo profundo; estes dois ficam como opção ── */
.theme-carvao{ --primary:var(--ink-2); --primary-hover:var(--ink); --primary-ink:var(--paper); --primary-border:var(--ink-2); }   /* carvão chapado */
.theme-contorno{ --primary:var(--paper); --primary-hover:var(--flat); --primary-ink:var(--ink); --primary-border:var(--ink); }     /* contorno tinta */
