/* ============================================================
   Fontes vendorizadas (local, sem CDN — CSP restrita)
   Body: Montserrat · Display: Cormorant Garamond
   (NewYork é personal-use; substituto comercial = Cormorant Garamond)
   ============================================================ */
@font-face{font-family:"Montserrat";src:url("/static/fonts/montserrat-300.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/montserrat-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/montserrat-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/montserrat-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/montserrat-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("/static/fonts/cormorant-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("/static/fonts/cormorant-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("/static/fonts/cormorant-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}


/* ============================================================================
   CONCILIO ID — Sistema de identidade white-label
   Tudo sai de tokens em :root. Cada cliente = um "brand pack" que só
   redefine estas variáveis. Troca de tema/marca = atributos no root:
       :root[data-brand="ac|concilio"][data-theme="light|dark"]
   FONTES: nomeamos a fonte real primeiro; sem CDN (CSP restrita) caímos
   para stacks do sistema. Produção: embutir Montserrat + Cormorant Garamond
   (marca AC) e Plus Jakarta Sans (marca Concilio).
   ========================================================================== */

/* ---- MARCA 1 · ABRAHÃO CAPRARO — CLARO (PADRÃO) ------------------------- */
:root{
  /* ---- MARCA 1 · ABRAHÃO CAPRARO ------------------------------------------
     Desde 2026-08-17 esta marca NÃO tem cor própria: cada token abaixo aponta
     para um token do design system (`ds-tokens.css`), que é cópia literal do
     Claude Design. Trocar uma cor aqui é trocar a marca no lugar errado — o
     lugar certo é o Claude Design, e de lá ela desce por `/design aplicar`.

     O ganho de apontar em vez de copiar: as 26 telas internas (login, 2FA,
     recuperação, convite, perfil, admin) já falam em `--bg`/`--ink`/`--accent-*`,
     então TODAS vestiram a marca nova de uma vez, sem reescrever tela por tela.

     Contraste: seis pares deste mapa ficam abaixo do piso AA. Foram medidos
     (`bin/contraste-design.py`) e o Lucas decidiu manter a cópia fiel — o
     porquê, a medida e o substituto de cada um estão em docs/design/DESVIOS.md.
     NÃO "conserte" um valor daqui sem mudar aquela decisão primeiro.
     -------------------------------------------------------------------------- */

  /* Famílias. `--font-display` e `--font-sans` vêm do design system; aqui fica
     só o apelido que as telas antigas usam e a mono, que o design não define. */
  --font-body: var(--font-sans);
  --font-mono: ui-monospace, "SF Mono", "SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;

  /* marca / ações */
  --primary: var(--action);              /* navy-700 — botão primário */
  --primary-ink: var(--white);
  --primary-hover: var(--action-hover);  /* navy-800 */
  --accent-line: var(--rule-gold);       /* ouro dos filetes e faixas */
  --accent-text: var(--text-accent);     /* ouro de texto: links, eyebrows */
  --accent-soft: var(--gold-400);        /* champanhe — ouro sobre campo escuro */
  --accent-fill: var(--gold-600);
  --accent-fill-ink: var(--white);
  --accent-fill-hover: var(--gold-700);

  /* superfícies. A ordem do design: a página é creme, os cartões são brancos,
     e `paper` é o off-white que fica entre os dois. */
  --bg: var(--surface-sunken);           /* cream */
  --auth-bg: var(--surface-sunken);
  --surface: var(--surface-card);        /* white */
  --surface-2: var(--paper);
  --surface-3: var(--cream);

  /* tinta */
  --ink: var(--text-strong);             /* navy-700 — títulos */
  --ink-soft: var(--navy-500);
  --text: var(--text-body);              /* ink-500 — corpo */
  --muted: var(--text-muted);            /* navy-300 */
  --faint: var(--text-muted);

  /* linhas e campos */
  --border: var(--border-default);       /* stone-300 */
  --hairline: var(--border-subtle);      /* stone-200 */
  --field-bg: var(--white);
  --field-border: var(--border-default);
  --field-ph: var(--text-muted);

  /* barra escura (hero, navbar, barra lateral do portal) */
  --navbar-bg: var(--surface-inverse);   /* navy-700 */
  --navbar-fg: var(--text-on-inverse);   /* cream */
  --navbar-muted: var(--text-on-inverse-muted);
  --navbar-line: var(--border-inverse);
  --navbar-accent: var(--text-accent-inverse);  /* gold-400 */

  /* status. O design chama de positive/attention/critical; as telas antigas
     falam ok/warn/danger. Mesmo par de cores, dois vocabulários. */
  --ok-bg: var(--positive-bg);   --ok-fg: var(--positive);   --ok-line: var(--positive);
  --warn-bg: var(--attention-bg); --warn-fg: var(--attention); --warn-line: var(--attention);
  --danger-bg: var(--critical-bg); --danger-fg: var(--critical); --danger-line: var(--critical);
  --danger-solid: var(--critical);
  /* `info` é o único papel que o design não nomeia — fica no azul da marca. */
  --info-bg: var(--navy-100); --info-fg: var(--navy-500); --info-line: var(--navy-500);

  --track: var(--border-default);        /* trilho de switch desligado */

  /* forma. `--radius-sm`, `--radius-lg` e as sombras vêm do design system e
     NÃO são redeclarados aqui de propósito: redeclarar seria sobrescrever o
     design com o valor antigo (o `--radius-lg` era 6px lá, é 8px no design). */
  --radius: var(--radius-md);            /* 4px */
  --pill: var(--radius-pill);

  --focus: var(--accent);                /* gold-500 */

  --ac-mark:url("data:image/png;base64,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");
}

/* ---- MARCA 1 · ABRAHÃO CAPRARO — ESCURO -------------------------------- */

/* ---- MARCA 2 · CONCILIO — CLARO ---------------------------------------- */
/* A marca Concilio NÃO mora mais aqui. Este bloco redefinia os APELIDOS
   (--primary, --bg, --ink…) com hexadecimais próprios, enquanto a marca AC
   logo acima aponta cada apelido para um token do design system. Duas
   gramáticas para a mesma coisa: o apelido da Concilio parava de acompanhar o
   design a cada mudança, e a folha nunca chegou a ser usada (nenhuma tela
   emitia data-brand="concilio" até 2026-08-21).

   Agora a Concilio redefine os TOKENS, em `css/concilio-tokens.css`, com os
   mesmos valores da marca no financeiro_pro — o mapa de apelidos abaixo serve
   as duas marcas sem alteração. Mesmo princípio da convergência v3.57.0 de lá:
   trocar a folha de tokens troca a marca inteira. */

/* ---- MARCA 2 · CONCILIO — ESCURO --------------------------------------- */

/* ============================ BASE / RESET ============================== */
*,*::before,*::after{box-sizing:border-box}
:root{-webkit-text-size-adjust:100%}
/* Tipografia em `rem` (base 16px), NÃO em px: com px o navegador ignora quem
   aumenta a letra pra enxergar (WCAG 1.4.4) — o texto simplesmente não cresce.
   A conversão é neutra no tamanho padrão (15px == 0.9375rem). Mesma política do
   kanban. Caixas/paddings seguem em px: o que precisa crescer é o TEXTO. */
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);
  font-size:0.9375rem;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4,p{margin:0}
a{color:var(--accent-text);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
::selection{background:var(--accent-soft);color:#1a1b38}

/* helpers de tipo */
.display{font-family:var(--font-display);font-weight:600;color:var(--ink);letter-spacing:-.02em;line-height:1.02}
.serif{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em}
.eyebrow{display:flex;align-items:center;gap:12px;font:600 0.6875rem/1 var(--font-body);
  letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text)}
.eyebrow .rule,.rule{display:inline-block;width:44px;height:1.5px;background:var(--accent-line);flex:none}
/* A eyebrow serve de trilha de navegação ("‹ Mural de avisos") e o link dentro
   dela media 11px de altura — a altura da própria letra. Alvo por pseudo: a
   linha de contexto não pode engordar sem desalinhar o título abaixo dela. */
.eyebrow a{position:relative}
.eyebrow a::before{content:"";position:absolute;inset:-17px 0}
.u-label{font:600 0.6875rem/1.3 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.mono{font-family:var(--font-mono);font-size:0.78125rem;letter-spacing:0}
.muted{color:var(--muted)}

/* ============================ TOPBAR ==================================== */
.stage-top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}
.stage-top__in{max-width:1240px;margin:0 auto;padding:12px 26px;display:flex;align-items:center;
  justify-content:space-between;gap:20px;flex-wrap:wrap}
.brandline{display:flex;align-items:center;gap:12px;min-width:0}
.brandline .wm{font-family:var(--font-display);font-weight:600;font-size:1.1875rem;color:var(--ink);letter-spacing:-.01em;white-space:nowrap}
.brandline .sub{font:600 0.6875rem/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);
  border-left:1px solid var(--border);padding-left:12px;white-space:nowrap}
.controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.seg-wrap{display:flex;align-items:center;gap:9px}
.seg-lab{font:600 0.6875rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.seg-set{display:flex;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--pill);padding:3px}
.seg{appearance:none;border:0;background:transparent;color:var(--muted);cursor:pointer;
  font:600 0.75rem/1 var(--font-body);letter-spacing:.02em;padding:8px 14px;border-radius:var(--pill);
  min-height:34px;transition:box-shadow .16s,transform .08s}
.seg:hover{color:var(--ink)}
.seg.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}
.seg.is-on::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-line);
  display:inline-block;margin-right:7px;vertical-align:1px}

/* ============================ LAYOUT / BANDAS =========================== */
.band{width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 26px}
.hero{padding:64px 0 30px}
.hero .display{font-size:clamp(3rem,7vw,5.75rem);margin:20px 0 0}
.hero .lede{max-width:640px;margin:22px 0 0;font-size:1.0625rem;color:var(--ink-soft);line-height:1.6}
.hero .chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.hero .chip{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--pill);padding:8px 15px;font-size:0.78125rem;color:var(--ink-soft);box-shadow:var(--shadow-xs)}
.hero .chip .dot{width:9px;height:9px;border-radius:2px}

.toc-band{padding:14px 0 60px}
.toc{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.toc__col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 22px 12px;box-shadow:var(--shadow-xs)}
.toc__col h4{font:600 0.6875rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-text);margin-bottom:6px}
.toc__col .cap{font-family:var(--font-display);font-size:1.1875rem;color:var(--ink);margin-bottom:14px}
.toc a{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-top:1px solid var(--hairline);color:var(--text);font-size:0.875rem}
.toc a:hover{color:var(--accent-text);text-decoration:none}
.toc a .n{font-family:var(--font-mono);font-size:0.75rem;color:var(--faint);min-width:22px}

/* rótulo de tela + palco */
.screen{padding:38px 0}
.screen:nth-of-type(even){background:var(--surface-2)}
.screen__head{max-width:1240px;margin:0 auto 20px;padding:0 26px;display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.screen__num{font-family:var(--font-mono);font-size:0.75rem;color:var(--primary-ink);background:var(--ink);
  padding:5px 9px;border-radius:var(--radius-sm);letter-spacing:.04em}
.screen__t{font-family:var(--font-display);font-size:1.625rem;color:var(--ink);line-height:1}
.screen__note{color:var(--muted);font-size:0.84375rem;margin-left:auto;max-width:440px;text-align:right}
.viewport{max-width:1240px;margin:0 auto;padding:0 26px}
.viewport__inner{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}

/* palco de autenticação (card centrado sobre campo com marca-d'água) */
.authstage{position:relative;background:var(--auth-bg);padding:56px 22px;display:flex;justify-content:center;overflow:hidden}
.authstage::before{content:"";position:absolute;right:-60px;bottom:-90px;width:420px;height:420px;
  background:var(--ink);opacity:.06;-webkit-mask:var(--ac-mark) center/contain no-repeat;
  mask:var(--ac-mark) center/contain no-repeat;pointer-events:none}
:root[data-brand="concilio"] .authstage::before{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><text x='32' y='49' font-family='Arial,sans-serif' font-size='56' font-weight='800' text-anchor='middle'>C</text></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><text x='32' y='49' font-family='Arial,sans-serif' font-size='56' font-weight='800' text-anchor='middle'>C</text></svg>")}

/* palco de app (admin) */
.appstage{background:var(--bg)}

/* ============================ SELO / MARCA ============================== */
.seal{display:inline-flex;width:52px;height:52px}
.seal svg{width:100%;height:100%;display:block}
.seal .m-co{display:none}
:root[data-brand="concilio"] .seal .m-ac{display:none}
:root[data-brand="concilio"] .seal .m-co{display:block}
.seal--sm{width:34px;height:34px}
/* monograma OFICIAL Abrahão Capraro (símbolo real embutido, recolorido por máscara conforme o tema) */
.acmark{display:block;width:100%;height:100%;background-color:var(--ink);-webkit-mask:var(--ac-mark) center/contain no-repeat;mask:var(--ac-mark) center/contain no-repeat}
.navbar__brand .acmark{background-color:var(--accent-line)}
.on-navy .acmark{background-color:var(--accent-line)}
/* wordmark do produto: na marca AC segue o lockup oficial (NewYork, caixa alta, tracking) */
.wm-id{font-style:normal;color:var(--accent-text)}
.navbar__brand .wm-id{color:var(--navbar-accent)}
:root[data-brand="ac"] .ac-caps{text-transform:uppercase;letter-spacing:.075em;font-weight:400}
:root[data-brand="ac"] .brandline .wm{font-size:1.0625rem}
:root[data-brand="ac"] .navbar__brand .wm{font-size:0.96875rem}

/* ============================ AUTH CARD ================================= */
.auth{width:100%;max-width:428px;position:relative;z-index:1}
.auth__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md);overflow:hidden}
.auth__band{height:5px;background:var(--accent-line)}
.auth__body{padding:38px 40px 40px}
.auth__mark{display:flex;justify-content:center;margin-bottom:22px}
.auth__title{font-family:var(--font-display);font-size:1.8125rem;color:var(--ink);text-align:center;line-height:1.06;letter-spacing:-.01em}
.auth__sub{text-align:center;color:var(--muted);font-size:0.875rem;margin-top:10px;line-height:1.55}
.auth__form{margin-top:28px;display:flex;flex-direction:column;gap:17px}
.auth__foot{margin-top:22px;text-align:center;font-size:0.8125rem;color:var(--muted)}
.auth__meta{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:26px;color:var(--faint);font-size:0.71875rem;letter-spacing:.02em}
.auth__meta .ic{width:14px;height:14px}
.auth__switch{position:absolute;top:0;right:0}
.auth__logo-tag{text-align:center;font:600 0.6875rem/1 var(--font-body);letter-spacing:.34em;text-transform:uppercase;color:var(--accent-text);margin-top:9px}
/* Marca SEM logotipo em imagem (o card não mostra selo): a marca vira a barra
   na cor de acento + a palavra, em corpo maior porque agora ela é a marca, e
   não a legenda de um selo. Par do `.ac-auth-title--sem-logo` do financeiro_pro
   (ac.css), mesmo desenho: filete de 3px, 30px de altura, 11px de respiro. */
.auth__logo-tag--sem-logo{display:flex;justify-content:center;align-items:center;gap:11px;
  font-size:1.0625rem;letter-spacing:.02em;text-transform:none;color:var(--ink);
  margin:0 0 22px;font-family:var(--font-display);font-weight:700}
.auth__logo-tag--sem-logo::before{content:"";width:3px;height:30px;flex:none;background:var(--accent-line)}

/* ============================ BOTÕES =================================== */
.btn{--h:44px;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:var(--h);padding:0 20px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;
  font:600 0.875rem/1 var(--font-body);letter-spacing:.02em;transition:box-shadow .16s,transform .08s;
  white-space:nowrap;text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn .ic{width:17px;height:17px}
.btn--block{width:100%}
/* Desenho de 36px, alvo de 44: o botão pequeno existe para caber em linha de
   tabela sem inchá-la, então crescê-lo de verdade mudaria o desenho de todas as
   listas do admin. O pseudo cresce só na vertical — botões lado a lado não se
   sobrepõem, e a linha continua com a mesma altura. */
.btn--sm{--h:36px;padding:0 13px;font-size:0.78125rem;border-radius:var(--radius-sm);position:relative}
.btn--sm::before{content:"";position:absolute;inset:-4px 0}
.btn--sm .ic{width:15px;height:15px}
.btn--lg{--h:52px;padding:0 26px;font-size:0.9375rem}

.btn--primary{background:var(--primary);color:var(--primary-ink);box-shadow:var(--shadow-xs)}
.btn--primary:hover{background:var(--primary-hover)}
.btn--accent{background:var(--accent-fill);color:var(--accent-fill-ink);box-shadow:var(--shadow-xs)}
.btn--accent:hover{background:var(--accent-fill-hover)}
.btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}
.btn--secondary:hover{border-color:var(--accent-line);color:var(--accent-text)}
.btn--ghost{background:transparent;color:var(--ink-soft)}
.btn--ghost:hover{background:var(--surface-3);color:var(--ink)}
.btn--danger{background:var(--danger-solid);color:#fff}
.btn--danger:hover{filter:brightness(.92)}
.btn--danger-outline{background:transparent;color:var(--danger-fg);border-color:color-mix(in srgb,var(--danger-line) 45%,transparent)}
.btn--danger-outline:hover{background:var(--danger-bg);border-color:var(--danger-line)}
.btn[disabled],.btn.is-disabled{opacity:.5;cursor:not-allowed;pointer-events:none;box-shadow:none}
.btn.is-done{background:var(--ok-line);color:#fff;border-color:transparent}

/* ============================ CAMPOS =================================== */
.field{display:flex;flex-direction:column;gap:7px}
.field__label{font:600 0.6875rem/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field__label .opt{color:var(--faint);letter-spacing:.02em;text-transform:none;font-weight:500}
.control{width:100%;background:var(--field-bg);border:1px solid var(--field-border);border-radius:var(--radius);
  color:var(--text);font:400 0.9375rem/1.4 var(--font-body);padding:12px 14px;min-height:44px;transition:box-shadow .16s;-webkit-appearance:none}
/* `width:100%` sozinho não segura campo de DATA/HORA: o widget nativo do Chrome
   tem largura INTRÍNSECA (`min-width:auto`) que ignora o 100% e empurra o
   container. Com a fonte a 200% num celular de 375px, os dois campos do mural
   esticavam a página para 495px — o texto de ajuda saía pela direita e o form
   ficava sem borda. Pego OLHANDO a captura: nenhum seletor acusa, porque todos
   os elementos estão lá, visíveis e com o estilo certo. */
.control{max-width:100%;min-width:0}
/* O seletor por TIPO é necessário: `.control` sozinho perde para a folha do
   navegador no campo de data, que traz largura própria. Com `box-sizing`
   explícito, o padding entra na conta e o campo para de crescer além do pai. */
input[type="date"].control,
input[type="datetime-local"].control,
input[type="time"].control{max-width:100%;min-width:0;box-sizing:border-box}
.control::placeholder{color:var(--field-ph)}
.control:hover{border-color:var(--border-strong)}
.control:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-line) 22%,transparent)}
textarea.control{min-height:104px;resize:vertical;line-height:1.6}
.control--sm{width:auto;font-size:0.84375rem;padding:9px 12px;min-height:40px}
select.control{cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%236a6b81' stroke-width='1.6'><path d='M1 1l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.field__hint{font-size:0.78125rem;color:var(--muted)}
.field--error .control{border-color:var(--danger-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger-line) 18%,transparent)}
.field__err{display:flex;align-items:center;gap:6px;font-size:0.78125rem;color:var(--danger-fg)}
.field__err .ic{width:14px;height:14px}
.input-wrap{position:relative;display:flex;align-items:center}
.input-wrap .control{padding-right:46px}
.icon-btn{position:absolute;right:6px;height:32px;width:32px;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm)}
/* O desenho é de 32px (cabe DENTRO do input, e crescê-lo empurraria o campo),
   mas o alvo tem de ser 44. O pseudo invisível estende a área clicável sem tocar
   no desenho — mesma receita do .navbar__theme. Vivia só na media query do
   celular: o dedo no tablet e o mouse trêmulo no desktop têm o mesmo direito. */
.icon-btn::before{content:"";position:absolute;inset:-6px}
.icon-btn:hover{color:var(--ink);background:var(--surface-3)}

/* ============================ PILLS / SELOS ============================= */
.pill{display:inline-flex;align-items:center;gap:6px;font:600 0.6875rem/1 var(--font-body);letter-spacing:.06em;
  text-transform:uppercase;padding:5px 10px;border-radius:var(--pill);border:1px solid transparent;white-space:nowrap}
.pill .d{width:6px;height:6px;border-radius:50%}
.pill--ativa{background:var(--ok-bg);color:var(--ok-fg);border-color:color-mix(in srgb,var(--ok-line) 30%,transparent)}
.pill--ativa .d{background:var(--ok-line)}
.pill--inativa{background:var(--surface-3);color:var(--muted);border-color:var(--border)}
.pill--inativa .d{background:var(--faint)}
.pill--pendente{background:var(--warn-bg);color:var(--warn-fg);border-color:color-mix(in srgb,var(--warn-line) 30%,transparent)}
.pill--pendente .d{background:var(--warn-line)}
.pill--trancada{background:var(--danger-bg);color:var(--danger-fg);border-color:color-mix(in srgb,var(--danger-line) 30%,transparent)}
.pill--trancada .d{background:var(--danger-line)}
.pill--twofa{background:var(--info-bg);color:var(--info-fg);border-color:color-mix(in srgb,var(--info-line) 30%,transparent)}
.pill--twofa .ic{width:12px;height:12px}
.pill--admin{background:color-mix(in srgb,var(--accent-line) 16%,var(--surface));color:var(--accent-text);
  border-color:color-mix(in srgb,var(--accent-line) 40%,transparent)}
.pill--admin .ic{width:12px;height:12px}
.pill--solid{background:var(--ink);color:var(--primary-ink);border-color:transparent}

/* ============================ CARTÃO DE SEÇÃO ========================== */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);
  transition:box-shadow .18s,transform .18s}
.card__head{display:flex;align-items:center;gap:13px;padding:20px 24px;border-bottom:1px solid var(--hairline)}
/* Bloco de título do card (nome do app / do chamado). Era um `style="flex:1;min-width:0"`
   INLINE nos templates — e inline não se sobrescreve por media query, então no celular
   o título encolhia a 54px e a pílula "N com acesso" caía por cima do nome. Virando
   classe, o mobile pode dar um piso e empurrar a pílula pra linha de baixo. */
.card__headmain{flex:1;min-width:0}
.card__icon{width:38px;height:38px;flex:none;border-radius:var(--radius);display:grid;place-items:center;
  background:var(--surface-3);color:var(--accent-text);border:1px solid var(--border)}
.card__icon .ic{width:19px;height:19px}
.card__eyebrow{font:600 0.6875rem/1.2 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text)}
.card__title{font-family:var(--font-display);font-size:1.25rem;color:var(--ink);line-height:1.1;margin-top:2px}
.card__title.top{margin-top:0}
.card__body{padding:22px 24px;min-width:0;overflow-wrap:anywhere}
.card__foot{padding:16px 24px;border-top:1px solid var(--hairline);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.card--hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card--inverse{background:var(--ink);border-color:transparent;color:#e9e8f2}
.card--inverse .card__title{color:#fff}
.card--inverse .card__eyebrow{color:var(--accent-soft)}

/* ============================ TABELA =================================== */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;min-width:640px}
/* 0.65625rem = 10,5px, abaixo do piso de 11px e responsável por 58 ❌ da matriz
   (todo cabeçalho de toda tabela do admin, em todo viewport). 0.6875rem = 11px
   exatos — o menor valor que passa, escolhido para mexer o mínimo no desenho.
   Como a navbar acima: tela sem mock, correção de acessibilidade, não redesenho. */
.table th{font:600 0.6875rem/1 var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
  text-align:left;padding:14px 18px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface-2)}
.table td{padding:15px 18px;border-bottom:1px solid var(--hairline);font-size:0.875rem;vertical-align:middle;white-space:nowrap}
.table tbody tr{transition:none}
.table tbody tr:hover{background:var(--surface-2)}
.table tbody tr:last-child td{border-bottom:0}
.table .primary-cell{color:var(--ink);font-weight:600}
.table .mono{color:var(--ink-soft)}
.cellstack{display:flex;flex-direction:column;gap:2px}
.cellstack small{color:var(--muted);font-size:0.75rem}

/* ============================ NAVBAR ADMIN ============================= */
/* A navbar do painel é uma flex-row nowrap: sem `min-width:0` os filhos NUNCA
   encolhem, então cada item novo (ou um e-mail longo) empurra o conteúdo pra fora
   da PÁGINA — scroll horizontal no admin inteiro. Já estourava o próprio contêiner
   (1102px num box de 1080) antes do link "Mural"; o 5º item só levou o estouro pra
   viewport. Correção em duas camadas:
     1. largura: o painel adota o 1240px que o resto do design system já usa (.wrap),
        o que dá folga real pros 5 itens e ar pras tabelas de Contas/Logs;
     2. rede de segurança: o `nav` encolhe (min-width:0) e rola dentro de si, e o
        e-mail trunca — assim o 6º item, ou um e-mail gigante, degrada em vez de
        vazar. Sem isto voltamos ao whack-a-mole de tirar 6px de padding a cada link
        novo. */
.navbar{background:var(--navbar-bg);border-bottom:1px solid var(--navbar-line)}
/* `min-width:0` nos filhos e `height:auto` a partir de um piso: sem os dois, a
   navbar do admin ESTOURA a janela quando a fonte vai a 200% — a média query de
   900px olha o viewport, não o tamanho do texto, então em 1280px ela nem
   dispara. O resultado media 1285px numa tela de 1280 e o item "Mural" saía
   cortado como "Mura". Pego OLHANDO a captura a 200%: o teste de scroll lateral
   não acusa, porque quem estoura é o conteúdo dentro de uma barra que não rola. */
.navbar__in{max-width:1240px;margin:0 auto;padding:0 26px;min-height:66px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.navbar__in>*{min-width:0}
/* Sem `flex:none` aqui de propósito: no mobile (375px) a marca PRECISA encolher até
   o min-content (o texto quebra em duas linhas) — travá-la joga a navbar pra fora da
   tela. Quem segura o desktop é o min-width:0 do .navbar__nav, logo abaixo. */
/* `min-width` junto do `min-height`: abaixo de 900px o `.wm` (o nome escrito)
   some e sobra só o monograma, que media 34px de largura. Alvo é área, não só
   altura — corrigir um eixo e esquecer o outro foi o que fez a régua continuar
   acusando esta mesma linha depois do primeiro conserto. */
.navbar__brand{display:flex;align-items:center;gap:11px;color:var(--navbar-fg);min-height:44px;min-width:44px;justify-content:center}
.navbar__brand .wm{font-family:var(--font-display);font-weight:600;font-size:1.125rem;letter-spacing:-.01em}
.navbar__nav{display:flex;align-items:center;gap:4px;margin-left:8px;min-width:0;overflow-x:auto;scrollbar-width:none}
.navbar__nav::-webkit-scrollbar{display:none}
/* `min-height:44px` e não mais padding maior: o alvo de toque tem de bater o piso
   do WCAG 2.5.8 sem empurrar o texto para baixo. Media 39px e respondia sozinho
   por 61 dos ❌ da matriz — em TODA tela do admin, em TODO viewport. Esta tela
   não tem mock no design "Portal ACA", então subir o alvo não fere fidelidade
   nenhuma; é correção de acessibilidade em tela que o design não desenhou. */
.navbar__link{display:inline-flex;align-items:center;gap:8px;color:var(--navbar-muted);padding:9px 12px;border-radius:var(--radius);
  flex:none;white-space:nowrap;min-height:44px;box-sizing:border-box;
  font-size:0.84375rem;font-weight:500;text-decoration:none;transition:box-shadow .14s}
.navbar__link .ic{width:16px;height:16px}
.navbar__link:hover{color:var(--navbar-fg);background:color-mix(in srgb,var(--navbar-fg) 10%,transparent);text-decoration:none}
.navbar__link.is-active{color:var(--navbar-fg);background:color-mix(in srgb,var(--navbar-fg) 13%,transparent)}
.navbar__badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:var(--danger-solid);color:#fff;font-size:0.6875rem;font-weight:700;line-height:1}
.navbar__right{margin-left:auto;display:flex;align-items:center;gap:14px}
/* `.navbar__theme` (o par sol/lua da navbar do admin) saiu junto com o tema escuro. */
.navbar__acct{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--navbar-line)}
.navbar__acct .who{text-align:right;line-height:1.25}
.navbar__acct .who b{color:var(--navbar-fg);font-size:0.8125rem;font-weight:600;display:block;
  max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navbar__acct .who span{color:var(--navbar-muted);font-size:0.6875rem}

/* avatar */
/* A tinta é --surface (o PAR invertido de --ink), não #fff fixo: no tema escuro o --ink é
   claro (#f2efe8) e a inicial branca sumia — 1.15:1, invisível na lista de "entrar como".
   Como --ink e --surface se invertem juntos nos 4 temas, o par fica legível em todos. */
.avatar{width:38px;height:38px;border-radius:var(--pill);background:var(--ink);color:var(--surface);display:grid;place-items:center;
  font:600 0.8125rem/1 var(--font-body);flex:none;border:1px solid color-mix(in srgb,#fff 18%,transparent)}
/* A tinta vem do token, não do #fff do `.avatar` base: no tema ESCURO o --accent-fill é
   ouro CLARO (#c8b08c) e a inicial branca ficava em 2.09:1 — ilegível. O sistema já tinha
   a resposta (--accent-fill-ink é #1a1b38 no escuro, e é o que o .btn--accent usa); só o
   avatar não a usava. Agora: 7.99:1 no escuro; no claro o token é #ffffff, nada muda. */
.avatar--accent{background:var(--accent-fill);color:var(--accent-fill-ink)}
.avatar--lg{width:48px;height:48px;font-size:1rem}

/* ============================ BANNERS / ALERTAS ======================== */
.banner{display:flex;gap:13px;padding:15px 18px;border-radius:var(--radius);border:1px solid;align-items:flex-start}
.banner .ic{width:19px;height:19px;flex:none;margin-top:1px}
.banner__t{font-weight:600;color:var(--ink);font-size:0.875rem}
.banner__x{margin-top:3px;font-size:0.84375rem;line-height:1.5;min-width:0;overflow-wrap:anywhere}
.banner__act{margin-left:auto;display:flex;gap:8px;align-items:center;flex:none}
.banner--info{background:var(--info-bg);border-color:color-mix(in srgb,var(--info-line) 32%,transparent);color:var(--info-fg)}
.banner--info .ic{color:var(--info-line)}
.banner--success{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok-line) 32%,transparent);color:var(--ok-fg)}
.banner--success .ic{color:var(--ok-line)}
.banner--warning{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn-line) 38%,transparent);color:var(--warn-fg)}
.banner--warning .ic{color:var(--warn-line)}
.banner--danger{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger-line) 38%,transparent);color:var(--danger-fg)}
.banner--danger .ic{color:var(--danger-line)}
.banner--danger .banner__t,.banner--warning .banner__t{color:inherit}

/* flash / toast */
.toast{display:flex;align-items:center;gap:11px;background:var(--ink);color:#fff;padding:13px 16px;border-radius:var(--radius);
  box-shadow:var(--shadow-lg);font-size:0.84375rem;max-width:420px;border:1px solid color-mix(in srgb,#fff 12%,transparent)}
.toast .ic{width:18px;height:18px;flex:none}
.toast--ok .ic{color:#8fd6a4}
.toast--danger{background:var(--danger-line)}
.toast .x{margin-left:auto;color:rgba(255,255,255,.6);cursor:pointer;display:grid;place-items:center}
.toast .x .ic{width:15px;height:15px}

/* ============================ MEDIDOR DE SENHA ========================= */
.pwmeter{margin-top:2px}
.pwmeter__bars{display:flex;gap:5px}
.pwmeter__bars i{height:5px;flex:1;background:var(--surface-3);border-radius:var(--pill);transition:none}
.pwmeter__row{display:flex;justify-content:space-between;align-items:center;margin-top:7px}
.pwmeter__label{font:600 0.6875rem/1 var(--font-body);letter-spacing:.06em;color:var(--muted)}
.pwmeter[data-level="1"] .pwmeter__bars i:nth-child(-n+1),
.pwmeter[data-level="2"] .pwmeter__bars i:nth-child(-n+2),
.pwmeter[data-level="3"] .pwmeter__bars i:nth-child(-n+3),
.pwmeter[data-level="4"] .pwmeter__bars i:nth-child(-n+4){background:var(--pw-c)}
.pwmeter[data-level="1"]{--pw-c:var(--danger-line)}
.pwmeter[data-level="2"]{--pw-c:var(--warn-line)}
.pwmeter[data-level="3"]{--pw-c:#3f8f6b}
.pwmeter[data-level="4"]{--pw-c:var(--ok-line)}
.pwmeter[data-level="1"] .pwmeter__label{color:var(--danger-fg)}
.pwmeter[data-level="4"] .pwmeter__label{color:var(--ok-fg)}
.pwrules{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px}
.pwrules li{display:flex;align-items:center;gap:8px;font-size:0.78125rem;color:var(--muted)}
.pwrules li .ic{width:14px;height:14px;color:var(--faint)}
.pwrules li.ok{color:var(--ok-fg)}
.pwrules li.ok .ic{color:var(--ok-line)}

/* ============================ SEGREDO / CÓDIGO ========================= */
.secret{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);padding:4px 4px 4px 16px;
  display:flex;align-items:center;gap:12px}
.secret code{font-family:var(--font-mono);font-size:0.84375rem;color:var(--ink);word-break:break-all;flex:1;letter-spacing:.01em}
.secret .btn{flex:none}
.codes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.codes .code{font-family:var(--font-mono);font-size:0.875rem;letter-spacing:.08em;color:var(--ink);background:var(--surface-2);
  border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;text-align:center}
.codes .code.used{color:var(--faint);text-decoration:line-through;background:var(--surface-3)}

/* ============================ QR ====================================== */
.qr{width:172px;height:172px;border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:#fff;flex:none}
.qr svg{width:100%;height:100%;display:block}

/* ============================ MODAL =================================== */
.modal-scrim{position:relative;background:color-mix(in srgb,var(--ink) 55%,transparent);padding:44px 22px;display:flex;justify-content:center}
.modal{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);overflow:hidden}
.modal__head{display:flex;gap:14px;align-items:flex-start;padding:24px 26px 0}
.modal__ic{width:44px;height:44px;flex:none;border-radius:var(--radius);display:grid;place-items:center;background:var(--danger-bg);color:var(--danger-line)}
.modal__ic .ic{width:22px;height:22px}
.modal__title{font-family:var(--font-display);font-size:1.375rem;color:var(--ink);line-height:1.1}
.modal__body{padding:14px 26px 4px;color:var(--text);font-size:0.875rem;line-height:1.6}
.modal__body strong{color:var(--ink)}
.modal__confirm{margin:16px 0 2px;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}
.modal__foot{padding:20px 26px 24px;display:flex;gap:10px;justify-content:flex-end}

/* ============================ EMPTY STATE ============================= */
.empty{text-align:center;padding:56px 24px;display:flex;flex-direction:column;align-items:center;gap:6px}
.empty__ic{width:60px;height:60px;border-radius:var(--pill);display:grid;place-items:center;background:var(--surface-3);
  color:var(--faint);border:1px solid var(--border);margin-bottom:12px}
.empty__ic .ic{width:26px;height:26px}
.empty h4{font-family:var(--font-display);font-size:1.3125rem;color:var(--ink)}
.empty p{color:var(--muted);font-size:0.875rem;max-width:360px}
.empty .btn{margin-top:12px}

/* ============================ ZONA DE PERIGO ========================== */
.dz{border:1px solid color-mix(in srgb,var(--danger-line) 40%,transparent);border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--danger-bg) 55%,var(--surface));overflow:hidden}
.dz__head{display:flex;align-items:center;gap:11px;padding:16px 22px;border-bottom:1px solid color-mix(in srgb,var(--danger-line) 25%,transparent);
  background:color-mix(in srgb,var(--danger-bg) 70%,transparent)}
.dz__head .ic{width:19px;height:19px;color:var(--danger-line)}
.dz__head h4{font:600 0.75rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--danger-fg)}
.dz__row{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid color-mix(in srgb,var(--danger-line) 15%,transparent);flex-wrap:wrap}
.dz__row:last-child{border-bottom:0}
.dz__row .txt{flex:1;min-width:200px}
.dz__row .txt b{color:var(--ink);font-weight:600;font-size:0.875rem}
.dz__row .txt p{color:var(--muted);font-size:0.78125rem;margin-top:2px}

/* ============================ DIVERSOS ================================ */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
/* Item de grid tem `min-width:auto`: não encolhe abaixo do próprio conteúdo.
   Por isso o `max-width:100%` do campo de data não valia nada — o pai crescia
   junto. Com `min-width:0` o item pode encolher, e aí o campo obedece. */
.grid-2>*,.grid-3>*{min-width:0}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.stack{display:flex;flex-direction:column;gap:16px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.divide{height:1px;background:var(--hairline);margin:2px 0}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.access-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--hairline)}
.access-row:first-child{border-top:0}
.access-row .app-ic{width:40px;height:40px;border-radius:var(--radius);background:var(--surface-3);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink-soft);font-family:var(--font-display);font-weight:600;font-size:1rem;flex:none}
.access-row .app-meta{flex:1;min-width:0}
.access-row .app-meta b{color:var(--ink);font-size:0.875rem;font-weight:600;display:block}
.access-row .app-meta span{color:var(--muted);font-size:0.78125rem}

/* switch (liga/desliga) */
.switch{position:relative;width:46px;height:26px;flex:none;display:inline-block}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.switch .tr{position:absolute;inset:0;background:var(--track);border-radius:var(--pill);transition:none}
.switch .kn{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .18s}
.switch input:checked + .tr{background:var(--ok-line)}
.switch input:checked + .tr + .kn{transform:translateX(20px)}
.switch input:focus-visible + .tr{outline:2px solid var(--focus);outline-offset:2px}

/* checklist de apps (criar conta) */
.checklist{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.checkrow{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);cursor:pointer;transition:none}
.checkrow + .checkrow{border-top:1px solid var(--hairline)}
.checkrow:hover{background:var(--surface-2)}
/* A caixinha continua com 19px de desenho; quem recebe o toque é a .checkrow
   inteira (é um <label>, então clicar na linha já marca). O pseudo apenas faz a
   régua enxergar o alvo que o usuário de fato tem. */
.checkrow input{width:19px;height:19px;accent-color:var(--accent-line);flex:none;position:relative}
.checkrow input::before{content:"";position:absolute;inset:-13px}
/* O "lembrar de mim" do login tem 17px cravados em `style` inline pelo
   Flask-Security (templates/security/login_user.html) — o pseudo é o único
   jeito de dar 44px de alvo sem brigar com a especificidade do inline. */
#remember{position:relative}
#remember::before{content:"";position:absolute;inset:-14px}
.checkrow .nm{font-size:0.875rem;color:var(--ink);font-weight:500}
.checkrow .cid{font-family:var(--font-mono);font-size:0.71875rem;color:var(--faint);margin-left:auto}

/* especímen de token */
.tokrow{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--hairline)}
.tokrow:first-child{border-top:0}
.swatch{width:40px;height:40px;border-radius:var(--radius);border:1px solid var(--border);flex:none;box-shadow:var(--shadow-xs)}
.tokrow .tk{font-family:var(--font-mono);font-size:0.75rem;color:var(--ink)}
.tokrow .tv{font-family:var(--font-mono);font-size:0.71875rem;color:var(--muted);margin-left:auto}
.typespec > *{margin:0}
.typespec .row-sp{display:flex;align-items:baseline;gap:14px;padding:11px 0;border-top:1px solid var(--hairline)}
.typespec .row-sp small{font-family:var(--font-mono);font-size:0.6875rem;color:var(--faint);width:74px;flex:none}

.libgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.lib-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-xs)}
.lib-tile h5{font:600 0.6875rem/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);margin-bottom:16px}
.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}

/* footer */
.foot{padding:50px 0 70px;color:var(--muted);font-size:0.78125rem}
.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}

/* ============================ RESPONSIVO ============================== */
/* ---- painel admin ---- */
/* Alinhado com .navbar__in (1240px) — o brand da navbar tem de nascer na mesma
   coluna que o título da página. Ver a nota em .navbar__in. */
.appbody{max-width:1240px;margin:0 auto;padding:30px 26px 46px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-head .ttl{font-family:var(--font-display);font-size:1.875rem;color:var(--ink);line-height:1.05}
.page-head .sub{color:var(--muted);font-size:0.84375rem;margin-top:7px;max-width:520px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.searchbox{position:relative;flex:1;min-width:190px;max-width:330px}
.searchbox > .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--faint);width:16px;height:16px;pointer-events:none}
.searchbox input{padding-left:38px}
.kpi{display:flex;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);margin-bottom:22px;box-shadow:var(--shadow-xs)}
.kpi > div{flex:1;padding:16px 20px;border-right:1px solid var(--hairline);min-width:0}
.kpi > div:last-child{border-right:0}
.kpi .v{font-family:var(--font-display);font-size:1.6875rem;color:var(--ink);line-height:1}
.kpi .l{font-size:0.6875rem;color:var(--muted);letter-spacing:.06em;margin-top:7px;text-transform:uppercase;font-weight:600}
/* `min-width:0` nos filhos: item de grid não encolhe abaixo do próprio
   `min-content`, e com a fonte a 200% o cartão "Registrar novo app" ficava 5px
   mais largo que a janela — sem gerar barra de rolagem, então o teste de scroll
   lateral não via. Mesma correção do `.navbar__in>*`, pela mesma razão.
   A média query de 820px olha o VIEWPORT, não o tamanho do texto: em 1280px com
   fonte dobrada ela nem dispara. */
.appgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.appgrid>*{min-width:0}
.detail-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px;align-items:start}
.mono-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.mono-list li{font-family:var(--font-mono);font-size:0.75rem;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:8px 11px;word-break:break-all}
.person{display:flex;align-items:center;gap:14px;min-width:0}
.person .who{min-width:0}
.person .who b{color:var(--ink);font-size:1.125rem;font-family:var(--font-display);display:block;line-height:1.1;overflow-wrap:anywhere}
.person .who span{color:var(--muted);font-size:0.8125rem;overflow-wrap:anywhere}
/* Alvo de 44px pelo pseudo, e não por padding: o .linkbtn mora na célula da
   tabela ("Gerenciar") e engordá-lo de verdade esticaria toda linha da lista de
   Contas. O pseudo cresce só na vertical, para não cobrir a célula vizinha. */
.linkbtn{display:inline-flex;align-items:center;gap:7px;background:none;border:0;color:var(--accent-text);font:600 0.8125rem/1 var(--font-body);cursor:pointer;padding:0;position:relative}
.linkbtn::before{content:"";position:absolute;inset:-14px 0}
.linkbtn:hover{text-decoration:underline}
.linkbtn .ic{width:16px;height:16px}
.crumb{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:0.78125rem;margin-bottom:14px}
.crumb a{color:var(--muted)}.crumb .ic{width:13px;height:13px}
.rot-secret{background:color-mix(in srgb,var(--warn-bg) 55%,var(--surface));border:1px solid color-mix(in srgb,var(--warn-line) 40%,transparent);border-radius:var(--radius);padding:16px 18px}
.applogo{width:44px;height:44px;border-radius:var(--radius);background:var(--surface-3);border:1px solid var(--border);display:grid;place-items:center;color:var(--ink);font-family:var(--font-display);font-weight:600;font-size:1.125rem;flex:none}
@media(max-width:820px){.appgrid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}

/* Utilitários de tema: REMOVIDOS em 2026-08-17.
   O design da marca é só claro, e o Lucas decidiu não derivar um escuro — daí
   não existe mais `[data-theme="dark"]`, nem `.only-dark`/`.only-light`, nem o
   botão `.theme-mini`. Se um dia o escuro voltar, ele nasce no Claude Design e
   desce por `/design aplicar`; não se remonta um tema à mão aqui. */
/* OTP */
.otp{display:flex;gap:10px;justify-content:center}
.otp input{width:52px;height:62px;text-align:center;font-size:1.5rem;font-weight:600;padding:0;font-family:var(--font-mono);color:var(--ink)}
.otp input.f{border-color:var(--accent-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-line) 22%,transparent)}
/* método 2FA selecionável */
.pick{display:flex;flex-direction:column;gap:12px}
.pick__opt{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:box-shadow .14s;text-align:left;width:100%;font-family:inherit}
.pick__opt:hover{border-color:var(--accent-line)}
.pick__opt.is-sel{border-color:var(--accent-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-line) 18%,transparent)}
.pick__opt .pico{width:42px;height:42px;flex:none;border-radius:var(--radius);display:grid;place-items:center;background:var(--surface-3);color:var(--accent-text);border:1px solid var(--border)}
.pick__opt .pico .ic{width:21px;height:21px}
.pick__opt .lead{flex:1}
.pick__opt .lead b{display:block;color:var(--ink);font-size:0.9375rem}
.pick__opt .lead span{color:var(--muted);font-size:0.78125rem}
.pick__opt .rad{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-strong);flex:none;display:grid;place-items:center}
.pick__opt.is-sel .rad{border-color:var(--accent-line)}
.pick__opt.is-sel .rad::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent-line)}
/* selo grande p/ estados de sucesso */
.bigmark{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto;flex:none}
.bigmark .ic{width:34px;height:34px}
.bigmark--ok{background:var(--ok-bg);color:var(--ok-line)}
.bigmark--warn{background:var(--warn-bg);color:var(--warn-line)}
.bigmark--danger{background:var(--danger-bg);color:var(--danger-line)}
.bigmark--info{background:var(--info-bg);color:var(--info-line)}

@media (max-width:900px){
  .toc{grid-template-columns:1fr}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .col-4,.col-5,.col-6,.col-7,.col-8{grid-column:span 12}
  .navbar__nav{display:none}
  .screen__note{margin-left:0;text-align:left}
  .hero{padding:44px 0 24px}
}
@media (max-width:560px){
  .wrap,.screen__head,.viewport{padding-left:16px;padding-right:16px}
  .auth__body{padding:30px 24px 32px}
  .stage-top__in{padding:10px 16px}
  .controls{gap:12px}
  .codes{grid-template-columns:1fr}
}

/* ============================================================================
   Ajustes responsivos do app concilio-id (redesenho 2026-07-05)
   O e-mail real da conta é longo e estourava a navbar no mobile; some com o
   texto da conta (mantém o avatar) e aperta os espaçamentos em telas estreitas.
   ========================================================================== */
@media (max-width:640px){
  .navbar__in{gap:12px;padding:0 14px}
  .navbar__acct{padding-left:10px}
  .navbar__acct .who{display:none}
  .page-head .ttl{font-size:1.5625rem}
  .kpi{flex-wrap:wrap}
  .kpi > div{flex:1 1 45%}
  /* cards não podem forçar largura mínima (pill/título nowrap) no mobile */
  .card,.card__head,.card__body,.card__foot{min-width:0}
  .card__head{flex-wrap:wrap}
  /* `flex-wrap` sozinho não bastava: o bloco do título é `flex:1` (base 0%), então ele
     ENCOLHIA (a 54px numa tela de 375px) em vez de empurrar a pílula pra linha de baixo
     — e o nome do app ficava atropelado pela pílula "N com acesso". Com um piso, o que
     não couber quebra. */
  .card__headmain{flex-basis:60%;min-width:160px}
  /* Alvo de toque (WCAG 2.5.5/2.5.8): no mobile vários botões/ícones ficavam
     abaixo do piso de 44x44 CSS px. Onde dá, cresce a própria caixa (não muda
     o ícone, só a área clicável ao redor); onde a caixa é fixa por layout
     (icon-btn dentro do input, botões de tema colados um no outro), estende
     via pseudo-elemento invisível — a área de toque cresce sem mexer no
     desenho aprovado no redesign. */
  .btn--sm{--h:44px}
  .navbar__theme button{position:relative}
  .navbar__theme button::before{content:"";position:absolute;inset:-7px -6px}
}
/* Reflow a 320px (WCAG 1.4.10 — é a largura efetiva de um zoom de 400%). Abaixo de
   380px o wordmark não cabe junto do bloco da conta e a navbar vazava ~25px pra fora
   da tela. Fica só o selo (que segue sendo o link pra home) e os espaçamentos apertam. */
@media (max-width:380px){
  .navbar__in{gap:8px;padding:0 12px}
  .navbar__brand .wm{display:none}
  .navbar__right{gap:8px}
  .navbar__theme button{width:28px}
  .navbar__theme button::before{inset:-7px -8px} /* largura encolheu p/ 28px; mantém 44px de toque */
  /* Botão de rótulo longo ("Registrar (gera client_secret)") não cabe numa linha de
     320px e empurrava a página. Deixa quebrar em vez de vazar. */
  /* `min-height:44px` e não 38: o que resolve o rótulo longo é `white-space:normal`
     + `height:auto` (deixa quebrar em duas linhas em vez de vazar), não encolher o
     alvo. O 38px aqui contrariava o próprio comentário abaixo, que já dizia que o
     piso é 44 — e derrubava TODO botão do app no celular pequeno. */
  .btn{max-width:100%;white-space:normal;height:auto;min-height:44px;text-align:center}
  /* .btn--sm herdaria a altura de cima (mesma especificidade, essa regra vem depois) —
     alvo de toque (WCAG 2.5.5) exige 44px mesmo no botão pequeno. */
  .btn--sm{min-height:44px}
}
.mono-list li,.secret code,code.uri{overflow-wrap:anywhere;word-break:break-word}
/* o <input> do switch precisa ficar por cima do trilho/botão pra receber o clique
   (o .kn absoluto sobrepunha o input e barrava o toggle — clicável em qualquer ponto). */
.switch input{z-index:2}

/* ============================================================================
   Banner de impersonação ("entrar como") — fixo no topo, alto contraste.
   Âmbar sobre marinho: impossível de ignorar (é o único aviso de que a
   identidade ativa não é o admin). rem pra respeitar fonte grande (1.4.4).
   ========================================================================== */
.imp-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--navbar-bg);color:var(--navbar-fg);
  border-bottom:2px solid var(--accent-line);
  padding:10px 22px;position:sticky;top:0;z-index:50}
.imp-banner__ic{display:inline-flex;flex:none;width:34px;height:34px;border-radius:50%;
  align-items:center;justify-content:center;background:var(--accent-line);color:var(--navbar-bg)}
.imp-banner__ic .ic{width:18px;height:18px}
.imp-banner__txt{flex:1;min-width:200px;font-size:0.8125rem;line-height:1.35}
.imp-banner__txt b{color:var(--navbar-accent)}
.imp-banner__sub{display:block;font-size:0.6875rem;color:var(--navbar-muted);margin-top:1px}
.imp-banner__form{flex:none;margin:0}
.imp-banner__btn{display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  font-family:var(--font-body);font-size:0.75rem;font-weight:600;
  padding:8px 15px;border-radius:var(--pill);
  background:var(--accent-line);color:var(--navbar-bg);border:1px solid var(--accent-line);
  transition:filter .14s}
.imp-banner__btn:hover{filter:brightness(1.08)}
.imp-banner__btn .ic{width:15px;height:15px}
@media (max-width:560px){.imp-banner{padding:10px 16px}.imp-banner__form{width:100%}
  .imp-banner__btn{width:100%;justify-content:center}}

/* ================== MENU DA PRÓPRIA CONTA (canto superior) ==============
   O clique no PRÓPRIO NOME abre este menu, em toda tela: Portal, Meu perfil,
   Trocar senha, Entrar como (admin) e Sair. Vive sobre fundo marinho (navbar do
   admin e hero do portal), daí as cores de navbar no gatilho e as de superfície
   no balão. Base: <details> nativo (o [open] faz o trabalho). */
.mc{position:relative}
.mc__btn{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 14px;cursor:pointer;
  border:1px solid var(--navbar-line);border-radius:var(--pill);list-style:none;user-select:none}
.mc__btn::-webkit-details-marker{display:none}
.mc__btn:hover{background:color-mix(in srgb,var(--navbar-fg) 10%,transparent)}
.mc__btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mc__txt{text-align:right;line-height:1.2;min-width:0}
.mc__name{display:block;font-size:0.8125rem;font-weight:600;color:var(--navbar-fg);
  max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc__role{display:block;margin-top:2px;font-size:0.5625rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--navbar-accent)}
.mc .avatar{width:34px;height:34px}
.mc__chev{display:grid;place-items:center;color:var(--navbar-muted);flex:none;transform:rotate(90deg)}
.mc__chev .ic{width:14px;height:14px}
.mc[open] .mc__chev{transform:rotate(-90deg)}
.mc__pop{position:absolute;top:calc(100% + 9px);right:0;z-index:60;min-width:264px;padding:6px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md)}
.mc__head{padding:10px 12px 12px;border-bottom:1px solid var(--hairline);margin-bottom:6px}
.mc__head b{display:block;color:var(--ink);font-size:0.875rem;line-height:1.3}
.mc__head span{display:block;color:var(--muted);font-size:0.75rem;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc__item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);
  color:var(--text);font-size:0.875rem;text-decoration:none;white-space:nowrap}
.mc__item:hover{background:var(--surface-3);text-decoration:none;color:var(--ink)}
.mc__item .ic{width:16px;height:16px;color:var(--muted);flex:none}
.mc__hint{margin-left:auto;color:var(--faint);font-size:0.6875rem}
.mc__sep{border:0;border-top:1px solid var(--hairline);margin:6px 4px}
.mc__item--sair,.mc__item--sair .ic{color:var(--danger-fg)}
.avatar--img{padding:0;object-fit:cover;background:var(--surface-3)}
@media (max-width:720px){
  .mc__txt{display:none}
  .mc__btn{padding:5px 8px 5px 10px}
  .mc__pop{min-width:240px}
}

/* =================== ENTRAR COMO (seletor de impersonação) ============== */
.ec-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ec-item{display:flex;align-items:center;gap:14px;padding:12px 10px;border-radius:var(--radius)}
.ec-item:hover{background:var(--surface-2)}
.ec-item + .ec-item{border-top:1px solid var(--hairline)}
.ec-item__quem{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.ec-item__txt{min-width:0}
.ec-item__txt b{display:block;color:var(--ink);font-size:0.9375rem;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ec-item__txt span{display:block;color:var(--muted);font-size:0.8125rem;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ec-item form{flex:none}
.ec-vazio{margin:8px 0 0;color:var(--muted);font-size:0.875rem}

/* ---- Widget de feedback (lib concilio-feedback) ------------------------- */
/* O widget vem com paleta neutra própria e lê variáveis `--cfb-*`. Aqui elas
   apontam para os tokens do app, então ele acompanha sozinho as DUAS marcas
   (ac/concilio) e os DOIS temas (claro/escuro) — sem cor repetida à mão.
   A folha da lib vive numa @layer, então este bloco vence mesmo carregando antes. */
:root{
  --cfb-primaria:var(--primary);
  --cfb-primaria-txt:var(--primary-ink);
  --cfb-fundo:var(--surface);
  --cfb-fundo-2:var(--surface-2);
  --cfb-texto:var(--text);
  --cfb-texto-2:var(--muted);
  --cfb-borda:var(--border);
  --cfb-perigo:var(--danger-fg);
  --cfb-raio:var(--radius);
  --cfb-sombra:var(--shadow-md, 0 10px 30px rgba(18,20,28,.18));
}
