/* Cathedral Gestão — VISUAL NOVO (preto + dourado).
   Só é carregado com o visual novo ligado (classe "v2" no <html>), depois do app.css. Não muda regras nem dados.
   1. Os tokens --v2-* definem a paleta; os tokens antigos (--fundo, --superficie, --acento…) passam a apontar
      para eles, por isso todos os componentes do app.css herdam as cores novas.
   2. Componentes: nada de cores soltas; tudo por tokens. Sem estilos inline (CSP).
   Ver "Visual novo" em docs/ESTADO-DO-SISTEMA.md. */

/* ---------- Letra (OFL, servida localmente) ---------- */
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('/public/fontes/PlusJakartaSans-latin.woff2') format('woff2-variations'), url('/public/fontes/PlusJakartaSans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('/public/fontes/PlusJakartaSans-latin-ext.woff2') format('woff2-variations'), url('/public/fontes/PlusJakartaSans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Outfit'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/public/fontes/Outfit-latin.woff2') format('woff2-variations'), url('/public/fontes/Outfit-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Outfit'; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url('/public/fontes/Outfit-latin-ext.woff2') format('woff2-variations'), url('/public/fontes/Outfit-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Tokens: tema escuro (omissão) ---------- */
:root.v2 {
  --v2-pagina: #0B0B0B;
  --v2-area: #131313;
  --v2-cartao: #1E1E1E;
  --v2-cartao-2: #272727;
  --v2-linha: #363636;
  --v2-texto: #FAF8F4;
  --v2-texto-2: #BDB6AB;
  --v2-dourado: #DDB55E;
  --v2-dourado-suave: rgba(221, 181, 94, .16);
  --v2-sobre-dourado: #17110A;
  --v2-lateral-1: #2A231B;
  --v2-lateral-2: #1E1913;
  --v2-lateral-linha: rgba(221, 181, 94, .22);
  --v2-lateral-texto: #F6F0E4;
  --v2-lateral-texto-2: #BFB29C;
  --v2-lateral-ativo-fundo: #DDB55E;
  --v2-lateral-ativo-texto: #17110A;
  --v2-lateral-hover: rgba(246, 240, 228, .06);
  --v2-verde: #86D3A1;
  --v2-verde-suave: rgba(134, 211, 161, .15);
  --v2-amarelo: #F0C566;
  --v2-amarelo-suave: rgba(240, 197, 102, .15);
  --v2-vermelho: #F29479;
  --v2-vermelho-suave: rgba(242, 148, 121, .15);
  --v2-azul: #AFC4EC;
  --v2-azul-suave: rgba(175, 196, 236, .15);
  --v2-cinza: #BDB6AB;
  --v2-cinza-suave: rgba(189, 182, 171, .14);
  --v2-hover: rgba(250, 248, 244, .04);
  --v2-sombra: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .18);
  --v2-sombra-forte: 0 16px 48px rgba(0, 0, 0, .55);
  --v2-destaque-1: #E2BF6F;
  --v2-destaque-2: #CDA54E;
  --v2-destaque-3: #A9822F;
  --v2-sobre-destaque: #17110A;
  --v2-separadores-fundo: #161616;
  --v2-fonte-titulos: 'Outfit', 'Plus Jakarta Sans', system-ui, sans-serif;
  --v2-fonte: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --v2-raio: 18px;
  --v2-raio-campo: 12px;
  --v2-lateral-largura: 232px;

  /* Tokens antigos → paleta nova (todos os componentes do app.css passam a usá-la). */
  --fundo: var(--v2-area);
  --superficie: var(--v2-cartao);
  --superficie-2: var(--v2-cartao-2);
  --linha: var(--v2-linha);
  --texto: var(--v2-texto);
  --texto-2: var(--v2-texto-2);
  --acento: var(--v2-dourado);
  --acento-forte: var(--v2-destaque-1);
  --sobre-acento: var(--v2-sobre-dourado);
  --degrade-1: var(--v2-dourado);
  --degrade-2: var(--v2-dourado);
  --sobre-degrade: var(--v2-sobre-dourado);
  --erro: var(--v2-vermelho);
  --erro-texto: var(--v2-vermelho);
  --ok: var(--v2-verde);
  --ok-texto: var(--v2-verde);
  --aviso: var(--v2-amarelo);
  --ocup-verde: var(--v2-verde);
  --ocup-amarelo: var(--v2-amarelo);
  --ocup-vermelho: var(--v2-vermelho);
  --ev-aguarda: var(--v2-amarelo);
  --ev-confirmada: var(--v2-dourado);
  --ev-concluida: var(--v2-verde);
  --serie-1: var(--v2-dourado);
  --serie-2: #7FA3E0;
  --serie-3: var(--v2-verde);
  --serie-4: var(--v2-vermelho);
  --serie-5: #B9A3F0;
  --serie-6: #E08FB5;
  --serie-outras: #6E6A64;
  --grafico-confirmadas: var(--v2-dourado);
  --grafico-aguarda: rgba(221, 181, 94, .45);
  --raio: 14px;
  --fonte: var(--v2-fonte);
}

/* ---------- Tokens: tema claro (branco e cinzento neutro; barra lateral preta) ---------- */
:root.v2[data-tema="claro"] {
  --v2-pagina: #EEEFF1;
  --v2-area: #FFFFFF;
  --v2-cartao: #FFFFFF;
  --v2-cartao-2: #F7F7F8;
  --v2-linha: #E6E6E9;
  --v2-texto: #141414;
  --v2-texto-2: #6B6B70;
  --v2-dourado: #9A6F1E;
  --v2-dourado-suave: rgba(154, 111, 30, .10);
  --v2-sobre-dourado: #FFFFFF;
  --v2-lateral-1: #0B0B0B;
  --v2-lateral-2: #0B0B0B;
  --v2-lateral-linha: rgba(233, 201, 126, .14);
  --v2-lateral-texto: #EDE6D8;
  --v2-lateral-texto-2: #8F887C;
  --v2-lateral-ativo-fundo: linear-gradient(90deg, rgba(221, 181, 94, .26), rgba(221, 181, 94, .08));
  --v2-lateral-ativo-texto: #E9C97E;
  --v2-lateral-hover: rgba(237, 230, 216, .07);
  --v2-verde: #2A8150;
  --v2-verde-suave: rgba(42, 129, 80, .10);
  --v2-amarelo: #9C6A0C;
  --v2-amarelo-suave: rgba(156, 106, 12, .10);
  --v2-vermelho: #B0482A;
  --v2-vermelho-suave: rgba(176, 72, 42, .10);
  --v2-azul: #365CA3;
  --v2-azul-suave: rgba(54, 92, 163, .10);
  --v2-cinza: #6B6B70;
  --v2-cinza-suave: rgba(107, 107, 112, .10);
  --v2-hover: rgba(20, 20, 20, .03);
  --v2-sombra: 0 1px 2px rgba(20, 20, 30, .05), 0 6px 20px rgba(20, 20, 30, .05);
  --v2-sombra-forte: 0 16px 48px rgba(20, 20, 30, .18);
  --v2-separadores-fundo: #FFFFFF;
  --grafico-aguarda: rgba(154, 111, 30, .35);
  --serie-2: #365CA3;
  --serie-5: #6A55C8;
  --serie-6: #B5487A;
  --serie-outras: #A0A0A6;
  color-scheme: light;
}

/* ---------- Base ---------- */
.v2 body {
  background: var(--v2-pagina); color: var(--v2-texto);
  font-family: var(--v2-fonte); font-size: 15px; line-height: 1.5; letter-spacing: normal; font-feature-settings: normal;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.v2 h1, .v2 h2, .v2 h3 { font-family: var(--v2-fonte-titulos); color: var(--v2-texto); letter-spacing: -0.01em; }
.v2 h1 { font-size: 1.75rem; font-weight: 600; }
.v2 h2 { font-size: 1.12rem; font-weight: 600; margin-top: 1.75rem; }
.v2 h3 { font-size: .98rem; font-weight: 600; }
.v2 .num, .v2 td.valor, .v2 th.valor, .v2 .kpi-num { font-variant-numeric: tabular-nums; }
.v2 .num { font-weight: 600; letter-spacing: normal; }
/* Texto corrido (botões, campos, tabelas, listas) sempre em Plus Jakarta Sans; a Outfit só em títulos e números grandes. */
.v2 button, .v2 input, .v2 select, .v2 textarea { font-family: var(--v2-fonte); }
/* Especificidade baixa (:where): os componentes com classe própria escolhem a sua cor. */
:where(.v2) a { color: var(--v2-dourado); text-underline-offset: 2px; }
:where(.v2) a:hover { color: var(--v2-dourado); }
.v2 .etiqueta { font-size: .7rem; font-weight: 600; letter-spacing: .1em; color: var(--v2-texto-2); }
.v2 .secundario, .v2 small { color: var(--v2-texto-2); }
.v2 :focus-visible { outline: 2px solid var(--v2-dourado); outline-offset: 2px; }
.v2 .so-leitor, .v2 .v2-area .cabecalho > h1, .v2 .v2-area .v2-conteudo > .estreito > h1:first-child {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.icone { width: 20px; height: 20px; flex: none; display: inline-block; vertical-align: middle; }

/* ---------- Casca: barra lateral + área de trabalho ---------- */
.v2-app { min-height: 100vh; }
.v2-lateral {
  display: none; flex-direction: column; gap: 4px;
  background: linear-gradient(180deg, var(--v2-lateral-1) 0%, var(--v2-lateral-2) 100%);
  border-right: 1px solid var(--v2-lateral-linha); color: var(--v2-lateral-texto);
}
.v2-marca { display: flex; align-items: center; gap: 12px; padding: 4px 10px 18px; text-decoration: none; color: var(--v2-lateral-texto); }
.v2-marca:hover { color: var(--v2-lateral-texto); }
.v2-marca img { width: 34px; height: auto; }
.v2-marca-texto { display: flex; flex-direction: column; line-height: 1.15; }
.v2-marca-texto strong { font-family: var(--v2-fonte-titulos); font-weight: 600; font-size: 1.15rem; letter-spacing: .01em; }
.v2-marca-texto small { color: var(--v2-lateral-texto-2); font-size: .62rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.v2-nav { flex: 1; overflow-y: auto; }
.v2-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.v2-grupo { margin: 16px 12px 6px; font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--v2-lateral-texto-2); }
.v2-grupo:first-child { margin-top: 4px; }
.v2-nav a {
  display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 0 12px; border-radius: 12px;
  color: var(--v2-lateral-texto); text-decoration: none; font-weight: 500; font-size: .92rem;
}
.v2-nav a .icone { color: var(--v2-lateral-texto-2); }
.v2-nav a:hover { background: var(--v2-lateral-hover); color: var(--v2-lateral-texto); }
.v2-nav a.ativo { background: var(--v2-lateral-ativo-fundo); color: var(--v2-lateral-ativo-texto); font-weight: 600; }
.v2-nav a.ativo .icone { color: inherit; }
.v2-nav-texto { flex: 1; }
.v2-nav a:focus-visible { outline: 2px solid var(--v2-lateral-texto); outline-offset: -2px; }
.v2 .menu-contador { background: var(--v2-dourado); color: var(--v2-sobre-dourado); font-weight: 700; line-height: 1.3rem; min-width: 1.3rem; }
.v2-nav a.ativo .menu-contador { background: var(--v2-sobre-dourado); color: var(--v2-dourado); }
:root.v2[data-tema="claro"] .v2-lateral .menu-contador { background: #DDB55E; color: #17110A; }

/* Cartão da pessoa (abre o menu da foto, para cima) */
.v2-pessoa { margin-top: 8px; }
.v2-pessoa > summary {
  list-style: none; display: flex; align-items: center; gap: 10px; padding: 10px; min-height: 56px;
  border: 1px solid var(--v2-lateral-linha); border-radius: 14px; color: var(--v2-lateral-texto); cursor: pointer;
}
.v2-pessoa > summary::-webkit-details-marker { display: none; }
.v2 .v2-pessoa > summary:hover, .v2 .v2-pessoa[open] > summary, .v2 .v2-pessoa > summary.ativo { background: var(--v2-lateral-hover); color: var(--v2-lateral-texto); }
.v2-pessoa .avatar { width: 36px; height: 36px; background: rgba(221, 181, 94, .14); color: #E9C97E; border-color: var(--v2-lateral-linha); }
.v2-pessoa-texto { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.25; }
.v2-pessoa-texto strong { font-weight: 600; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-pessoa-texto small { font-size: .75rem; color: var(--v2-lateral-texto-2); }
.v2-pessoa .seta { width: 16px; height: 16px; color: var(--v2-lateral-texto-2); transform: rotate(180deg); }
.v2 .v2-pessoa .menu-lista {
  position: absolute; top: auto; bottom: calc(100% + 8px); left: 0; right: 0; z-index: 30; min-width: 0; padding: 6px;
  background: var(--v2-cartao); border: 1px solid var(--v2-linha); border-radius: 14px; box-shadow: var(--v2-sombra-forte);
}
.v2-assinatura { justify-content: center; padding: 12px 0 2px; font-size: .72rem; color: var(--v2-lateral-texto-2); }

/* Área de trabalho e topo */
.v2-area { min-width: 0; background: var(--v2-area); display: flex; flex-direction: column; min-height: 100vh; }
.v2-topo {
  position: sticky; top: 0; z-index: 25; display: flex; align-items: center; gap: 12px;
  padding: calc(env(safe-area-inset-top) + 10px) 16px 10px; background: var(--v2-area); border-bottom: 1px solid var(--v2-linha);
}
.v2-topo-marca { display: flex; }
.v2-topo-marca img { width: 26px; height: auto; }
.v2-titulos { flex: 1; min-width: 0; }
.v2-titulo { margin: 0; font-family: var(--v2-fonte-titulos); font-weight: 600; font-size: 1.15rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-data { margin: 2px 0 0; font-size: .78rem; color: var(--v2-texto-2); display: none; }
.v2-data::first-letter { text-transform: uppercase; }
.v2-topo-acoes { display: flex; align-items: center; gap: 10px; }
.v2-nova { display: none; }
.v2 .v2-conteudo { max-width: none; margin: 0; padding: 16px 16px calc(104px + env(safe-area-inset-bottom)); }
.v2 .v2-sem-nav { padding-bottom: 2rem; }

/* Sino */
.v2 .sino > summary {
  width: 44px; height: 44px; min-height: 44px; padding: 0; justify-content: center; position: relative;
  border: 1px solid var(--v2-linha); border-radius: 14px; background: var(--v2-cartao); color: var(--v2-texto);
}
.v2 .sino > summary:hover, .v2 .sino[open] > summary { background: var(--v2-cartao-2); color: var(--v2-dourado); }
.v2 .sino-contador { position: absolute; top: -6px; right: -6px; min-width: 1.25rem; height: 1.25rem; font-size: .68rem; border: 2px solid var(--v2-area); box-sizing: content-box; }
.v2 .sino-contador.com-alerta { background: var(--v2-vermelho); color: var(--v2-sobre-dourado); }
:root.v2:not([data-tema="claro"]) .sino-contador.com-alerta { color: #17110A; }
.v2 .sino-lista {
  right: 0; left: auto; top: calc(100% + 8px); width: min(380px, calc(100vw - 32px)); border-radius: 16px; padding: 8px;
  background: var(--v2-cartao); border-color: var(--v2-linha); box-shadow: var(--v2-sombra-forte);
}
.v2 .notificacao { border-radius: 10px; border-left-width: 3px; background: var(--v2-cartao-2); font-size: .85rem; }
.v2 .notificacao.nivel-alerta { color: var(--v2-texto); border-left-color: var(--v2-vermelho); }

/* Separadores em baixo (telemóvel) */
.v2-separadores {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px;
  padding: 6px 8px calc(6px + env(safe-area-inset-bottom));
  background: var(--v2-separadores-fundo); border-top: 1px solid var(--v2-linha);
}
.v2-separadores > a, .v2-mais > summary {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 54px;
  border-radius: 14px; color: var(--v2-texto-2); text-decoration: none; font-size: .7rem; font-weight: 600; cursor: pointer;
  list-style: none; padding: 0; background: none;
}
.v2-mais > summary::-webkit-details-marker { display: none; }
.v2-sep-icone { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 30px; border-radius: 999px; }
.v2-sep-icone .icone { width: 22px; height: 22px; }
.v2-sep-icone .menu-contador { position: absolute; top: -4px; right: 4px; margin: 0; font-size: .64rem; line-height: 1.1rem; min-width: 1.1rem; }
.v2-separadores > a.ativo, .v2 .v2-mais > summary.ativo, .v2 .v2-mais[open] > summary { color: var(--v2-dourado); background: none; }
.v2-separadores > a.ativo .v2-sep-icone, .v2-mais > summary.ativo .v2-sep-icone, .v2-mais[open] > summary .v2-sep-icone { background: var(--v2-dourado-suave); }
.v2 .v2-mais > summary:hover { background: none; color: var(--v2-texto); }
/* "Mais": folha que sobe de baixo, com um fundo escurecido que fecha ao tocar. */
.v2-mais[open] > summary::before { content: ''; position: fixed; inset: 0; z-index: 1; background: rgba(0, 0, 0, .5); cursor: default; }
.v2-folha {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 2; max-height: 82vh; overflow-y: auto;
  padding: 10px 16px calc(16px + env(safe-area-inset-bottom));
  background: var(--v2-cartao); border-top: 1px solid var(--v2-linha); border-radius: 24px 24px 0 0; box-shadow: var(--v2-sombra-forte);
  display: flex; flex-direction: column; gap: 6px;
}
.v2-folha::before { content: ''; align-self: center; width: 40px; height: 4px; border-radius: 999px; background: var(--v2-linha); margin-bottom: 8px; }
.v2-folha-pessoa { display: flex; align-items: center; gap: 12px; padding: 6px 4px 12px; border-bottom: 1px solid var(--v2-linha); }
.v2-folha-pessoa .avatar { width: 40px; height: 40px; }
.v2-folha-pessoa .v2-pessoa-texto small { color: var(--v2-texto-2); }
.v2-folha-lista { display: flex; flex-direction: column; gap: 2px; }
.v2-folha-lista a, .v2-folha .menu-botao-item {
  display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 12px; border-radius: 12px;
  color: var(--v2-texto); text-decoration: none; font-weight: 500; font-size: .95rem;
}
.v2-folha-lista a .icone, .v2-folha .menu-botao-item .icone { color: var(--v2-texto-2); }
.v2-folha-lista a:hover, .v2 .v2-folha .menu-botao-item:hover { background: var(--v2-cartao-2); color: var(--v2-texto); }
.v2-folha-lista a.ativo { background: var(--v2-dourado-suave); color: var(--v2-dourado); font-weight: 600; }
.v2-folha-lista a.ativo .icone { color: inherit; }
.v2-folha-lista form { margin: 0; }
.v2-folha .assinatura { justify-content: center; padding: 10px 0 0; }

/* Botão flutuante "+" (Agenda, telemóvel) */
.v2-fab {
  position: fixed; right: 16px; bottom: calc(84px + env(safe-area-inset-bottom)); z-index: 35;
  width: 58px; height: 58px; border-radius: 20px; display: flex; align-items: center; justify-content: center;
  background: var(--v2-dourado); color: var(--v2-sobre-dourado); box-shadow: 0 10px 28px rgba(0, 0, 0, .35);
}
.v2-fab:hover { color: var(--v2-sobre-dourado); filter: brightness(1.05); }
.v2-fab .icone { width: 26px; height: 26px; }

/* Computador (≥ 1024 px): barra lateral fixa, sem separadores */
@media (min-width: 1024px) {
  .v2-app { display: grid; grid-template-columns: var(--v2-lateral-largura) minmax(0, 1fr); }
  .v2-lateral { display: flex; position: sticky; top: 0; align-self: start; height: 100vh; height: 100dvh; overflow-y: auto; overscroll-behavior: contain; padding: 20px 14px 14px; }
  .v2-nav { flex: 1 0 auto; overflow: visible; }
  .v2-area { margin: 10px 10px 10px 0; border: 1px solid var(--v2-linha); border-radius: 24px; min-height: calc(100vh - 20px); }
  :root.v2[data-tema="claro"] .v2-area { border-color: transparent; box-shadow: var(--v2-sombra); }
  .v2-topo { position: static; padding: 26px 36px 8px; border-bottom: 0; background: transparent; border-radius: 24px 24px 0 0; }
  .v2-topo-marca { display: none; }
  .v2-titulo { font-size: 1.75rem; }
  .v2-data { display: block; font-size: .88rem; }
  .v2-nova { display: inline-flex; }
  .v2 .v2-conteudo { padding: 18px 36px 44px; max-width: 1360px; }
  .v2-separadores, .v2-fab { display: none; }
}

/* ---------- Componentes ---------- */
/* Cabeçalho das páginas: o título está no topo da área; aqui ficam as ações. */
.v2 .cabecalho { justify-content: flex-end; margin-bottom: 16px; }
.v2 .cabecalho:has(> h1:only-child) { margin: 0; }
.v2 .cabecalho > h1 + .secundario { display: none; }
@media (min-width: 1024px) { .v2 .cabecalho .botao-principal[href^="/marcacoes/nova"] { display: none; } }

/* Cartões */
.v2 .cartao, .v2 details.acao, .v2 .semana-previsao, .v2 fieldset {
  background: var(--v2-cartao); border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); box-shadow: var(--v2-sombra);
}
.v2 .cartao { padding: 18px; }
.v2 fieldset { padding: 14px 16px 16px; box-shadow: none; background: transparent; }
.v2 legend { color: var(--v2-texto-2); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.v2 details.acao { padding: 12px 16px; }
.v2 details.acao summary, .v2 .semana-previsao summary { color: var(--v2-texto); font-weight: 600; }
.v2 details.acao summary::marker, .v2 .semana-previsao summary::marker { color: var(--v2-dourado); }
.v2 .grelha { gap: 16px; }

/* KPIs: rótulo com ícone, número grande e linha secundária. O primeiro do Início fica em destaque. */
.v2 .indicador, .v2 .kpi { gap: 4px; }
.v2 .indicador .num, .v2 .kpi-num { font-family: var(--v2-fonte-titulos); font-size: 1.85rem; font-weight: 600; line-height: 1.15; color: var(--v2-texto); letter-spacing: normal; }
.v2 .indicador.destaque .num { color: var(--v2-dourado); }
.v2 .kpis { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1200px) { .v2 .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.v2 .kpi { display: flex; flex-direction: column; text-decoration: none; color: var(--v2-texto); min-width: 0; }
a.kpi:hover { color: var(--v2-texto); border-color: color-mix(in srgb, var(--v2-dourado) 55%, var(--v2-linha)); }
.v2 .kpi-rotulo { display: flex; align-items: center; gap: 8px; font-size: .8rem; font-weight: 600; color: var(--v2-texto-2); }
.v2 .kpi-rotulo .icone { width: 30px; height: 30px; padding: 6px; border-radius: 10px; background: var(--v2-dourado-suave); color: var(--v2-dourado); }
.v2 .kpi-num { margin-top: 10px; }
.v2 .kpi-linha { font-size: .8rem; color: var(--v2-texto-2); }
.v2 .kpi-destaque, [data-atualizar="inicio-painel"] .grelha-4 > .indicador:first-child {
  background: linear-gradient(135deg, var(--v2-destaque-1) 0%, var(--v2-destaque-2) 52%, var(--v2-destaque-3) 100%);
  border-color: transparent; color: var(--v2-sobre-destaque);
}
.v2 .kpi-destaque .kpi-rotulo, .v2 .kpi-destaque .kpi-num, .v2 .kpi-destaque .kpi-linha, .v2 .kpi-destaque .texto-alerta,
.v2 [data-atualizar="inicio-painel"] .grelha-4 > .indicador:first-child :is(.etiqueta, .num, small) { color: var(--v2-sobre-destaque); }
.v2 .kpi-destaque .kpi-rotulo .icone { background: rgba(23, 17, 10, .12); color: var(--v2-sobre-destaque); }
.v2 a.kpi-destaque:hover { color: var(--v2-sobre-destaque); filter: brightness(1.04); }
.v2 .barra-progresso { accent-color: var(--v2-dourado); height: 8px; margin-top: 8px; }

/* Etiquetas de estado: fundo suave e ponto */
.v2 .estado, .v2 .etiqueta-sem-sinal {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border: 0; border-radius: 999px;
  font-size: .74rem; font-weight: 600; line-height: 1.4; white-space: nowrap; text-decoration: none;
  color: var(--v2-cinza); background: var(--v2-cinza-suave);
}
.v2 .estado::before, .v2 .etiqueta-sem-sinal::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.v2 .estado-concluida { color: var(--v2-verde); background: var(--v2-verde-suave); }
.v2 .estado-confirmada, .v2 .estado-confirmado { color: var(--v2-dourado); background: var(--v2-dourado-suave); }
.v2 .estado-aguarda_sinal, .v2 .estado-pendente { color: var(--v2-amarelo); background: var(--v2-amarelo-suave); }
.v2 .etiqueta-sem-sinal { color: var(--v2-azul); background: var(--v2-azul-suave); }
.v2 .estado-falta, .v2 .estado-cancelada, .v2 .estado-anulado { color: var(--v2-vermelho); background: var(--v2-vermelho-suave); }
.v2 .estado-remarcada { color: var(--v2-cinza); background: var(--v2-cinza-suave); }

/* Botões: principal dourado cheio; secundário com contorno dourado; perigo vermelho */
.v2 .botao {
  min-height: 44px; padding: 0 16px; border-radius: 12px; border: 1px solid var(--v2-dourado);
  background: transparent; color: var(--v2-dourado); font-weight: 600; font-size: .88rem;
}
.v2 .botao:hover { background: var(--v2-dourado-suave); color: var(--v2-dourado); }
.v2 .botao .icone { width: 18px; height: 18px; }
.v2 .botao-principal, .v2 .botao-principal:hover { background: var(--v2-dourado); border-color: var(--v2-dourado); color: var(--v2-sobre-dourado); }
.v2 .botao-principal:hover { filter: brightness(1.06); }
.v2 .botao-perigo { border-color: var(--v2-vermelho); color: var(--v2-vermelho); }
.v2 .botao-perigo:hover { background: var(--v2-vermelho-suave); color: var(--v2-vermelho); }
.v2 .botao-pequeno { min-height: 36px; padding: 0 12px; border-radius: 10px; font-size: .8rem; }
.v2 .botao-link { color: var(--v2-dourado); }

/* Formulários: campos de 44 px, cantos de 12 px, foco com anel dourado; rótulos por cima */
.v2 input, .v2 select, .v2 textarea {
  min-height: 44px; border-radius: var(--v2-raio-campo); border: 1px solid var(--v2-linha);
  background-color: var(--v2-cartao-2); color: var(--v2-texto); padding: 10px 12px; font-family: var(--v2-fonte);
}
:root.v2[data-tema="claro"] :is(input, select, textarea) { background-color: #FFFFFF; border-color: #D9D9DE; }
.v2 input:focus, .v2 select:focus, .v2 textarea:focus {
  outline: none; border-color: var(--v2-dourado); box-shadow: 0 0 0 3px color-mix(in srgb, var(--v2-dourado) 40%, transparent);
}
.v2 input[type="checkbox"], .v2 input[type="radio"] { min-height: 0; accent-color: var(--v2-dourado); box-shadow: none; }
.v2 .formulario { gap: 14px; }
.v2 .formulario label, .v2 .campo { font-size: .84rem; color: var(--v2-texto-2); font-weight: 600; gap: 6px; }
.v2 .checkbox { color: var(--v2-texto) !important; font-weight: 500 !important; }
.v2 .opcao span { border-radius: 12px; border-color: var(--v2-linha); background: var(--v2-cartao-2); font-weight: 600; }
.v2 .opcao input:checked + span { background: var(--v2-dourado); border-color: var(--v2-dourado); color: var(--v2-sobre-dourado); }
.v2 .opcao input:focus-visible + span { outline: 2px solid var(--v2-dourado); outline-offset: 2px; }

/* Alertas */
.v2 .alerta { border: 0; border-left: 3px solid var(--v2-dourado); background: var(--v2-dourado-suave); color: var(--v2-texto); border-radius: 12px; padding: 12px 14px; }
.v2 .alerta-erro { border-left-color: var(--v2-vermelho); background: var(--v2-vermelho-suave); color: var(--v2-texto); }
.v2 .alerta-ok { border-left-color: var(--v2-verde); background: var(--v2-verde-suave); color: var(--v2-texto); }
.v2 .texto-alerta, .v2 .negativo { color: var(--v2-vermelho); }
.v2 .atrasado { color: var(--v2-vermelho); }
.v2 .aviso-comissoes { border-left: 1px solid var(--v2-linha); }

/* Tabelas: cabeçalho pequeno em maiúsculas, linhas altas, hover suave. No telemóvel: scroll dentro do cartão. */
.v2 .tabela-envolvente { border-radius: var(--v2-raio); border: 1px solid var(--v2-linha); background: var(--v2-cartao); box-shadow: var(--v2-sombra); }
.v2 table { background: transparent; font-size: .9rem; }
.v2 th { background: transparent; font-size: .68rem; font-weight: 700; letter-spacing: .1em; color: var(--v2-texto-2); padding: 14px 16px 10px; border-bottom: 1px solid var(--v2-linha); }
.v2 td { padding: 13px 16px; border-bottom: 1px solid var(--v2-linha); vertical-align: middle; }
.v2 tbody tr:hover td { background: var(--v2-hover); }
.v2 .vazio { font-style: normal; color: var(--v2-texto-2); }
.v2 .sem-dados { border-radius: 14px; border-color: var(--v2-linha); font-style: normal; }

/* Seletores em pílula (agenda, relatórios) */
.v2 .seletor-vista { background: var(--v2-cartao-2); border-color: var(--v2-linha); padding: 4px; gap: 2px; }
.v2 .seletor-vista a { min-height: 34px; font-size: .85rem; color: var(--v2-texto-2); }
.v2 .seletor-vista a:hover { color: var(--v2-texto); }
.v2 .seletor-vista a.ativo { background: var(--v2-dourado); color: var(--v2-sobre-dourado); }

/* Menus e avatares */
.v2 .menu-lista { border-radius: 14px; }
.v2 .menu-botao-item { border-radius: 10px; font-weight: 500; }
.v2 .menu-botao-item .icone, .v2 .v2-pessoa-menu a .icone { width: 18px; height: 18px; color: var(--v2-texto-2); }
.v2 .v2-pessoa-menu a { display: flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 .75rem; border-radius: 10px; color: var(--v2-texto); text-decoration: none; font-weight: 500; }
.v2 .v2-pessoa-menu a:hover, .v2 .v2-pessoa-menu .menu-botao-item:hover { background: var(--v2-cartao-2); color: var(--v2-texto); }
.v2 .v2-pessoa-menu .menu-botao-item { color: var(--v2-texto); }
.v2 .avatar { background: var(--v2-dourado-suave); color: var(--v2-dourado); border-color: transparent; font-family: var(--v2-fonte-titulos); font-weight: 600; }

/* ---------- Agenda (computador): mesmos modos e vistas, com os componentes novos ---------- */
.v2 .barra-agenda { gap: 12px 16px; }
.v2 .dia, .v2 .mes-dia { border-radius: 14px; background: var(--v2-cartao); }
.v2 .dia.hoje, .v2 .mes-dia.hoje { border-color: var(--v2-dourado); box-shadow: inset 0 0 0 1px var(--v2-dourado); }
.v2 .dia-titulo strong, .v2 .dia-estande { color: var(--v2-texto); font-family: var(--v2-fonte-titulos); font-weight: 600; }
.v2 .m-aguarda_sinal { --ev-cor: var(--v2-amarelo); }
.v2 .m-confirmada { --ev-cor: var(--v2-dourado); }
.v2 .m-concluida { --ev-cor: var(--v2-verde); }
.v2 .m-falta, .v2 .m-cancelada { --ev-cor: var(--v2-vermelho); }
.v2 .m-remarcada { --ev-cor: var(--v2-cinza); }
.v2 .marcacao, .v2 .cartao-dia, .v2 .evento-cartao {
  border-radius: 12px; border: 1px solid var(--v2-linha); border-left: 4px solid var(--ev-cor, var(--v2-dourado));
  background: var(--v2-cartao-2); color: var(--v2-texto);
}
.v2 .marcacao.m-aguarda_sinal, .v2 .cartao-dia.m-aguarda_sinal { border-left-style: solid; }
.v2 .marcacao:hover, .v2 .cartao-dia:hover, .v2 .evento-cartao:hover { border-color: var(--ev-cor, var(--v2-dourado)); color: var(--v2-texto); }
.v2 .cartao-dia { padding: 12px 14px; gap: 6px; }
.v2 .cartao-cliente { font-family: var(--v2-fonte-titulos); font-weight: 600; }
.v2 .celula-vazia { border-radius: 12px; border-color: var(--v2-linha); }
.v2 .evento { border-radius: 6px; }
.v2 .disponibilidade span { border-radius: 999px; }

/* ---------- Agenda no telemóvel (visual novo) ---------- */
.ag-telemovel { display: none; }
@media (max-width: 1023px) {
  .ag-telemovel { display: block; }
  .v2 .ag-telemovel ~ * { display: none !important; }
  .v2 .conteudo:has(.ag-telemovel) > .cabecalho, .v2 .conteudo:has(.ag-telemovel) > .barra-agenda { display: none; }
}
.ag-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ag-mes { margin: 0; font-family: var(--v2-fonte-titulos); font-size: 1.15rem; font-weight: 600; white-space: nowrap; }
.ag-pilula { display: inline-flex; padding: 4px; gap: 2px; border-radius: 999px; background: var(--v2-cartao-2); border: 1px solid var(--v2-linha); }
.ag-pilula a { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border-radius: 999px; color: var(--v2-texto-2); text-decoration: none; font-weight: 600; font-size: .82rem; }
.ag-pilula a.ativo { background: var(--v2-dourado); color: var(--v2-sobre-dourado); }
.ag-dias {
  display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; padding: 2px 2px 10px; margin: 0 -16px 8px; padding-inline: 16px;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.ag-dias::-webkit-scrollbar { display: none; }
.ag-dia {
  flex: none; scroll-snap-align: center; width: 52px; min-height: 72px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  border-radius: 16px; background: var(--v2-cartao); border: 1px solid var(--v2-linha); color: var(--v2-texto); text-decoration: none;
}
.ag-dia:hover { color: var(--v2-texto); border-color: var(--v2-dourado); }
.ag-dia-semana { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--v2-texto-2); }
.ag-dia-num { font-family: var(--v2-fonte-titulos); font-size: 1.2rem; font-weight: 600; line-height: 1.1; }
.ag-ponto { width: 5px; height: 5px; border-radius: 50%; }
.ag-ponto.com { background: var(--v2-dourado); }
.ag-dia.domingo { opacity: .45; }
.ag-dia.hoje { border-color: var(--v2-dourado); }
.ag-dia.escolhido { background: var(--v2-dourado); border-color: var(--v2-dourado); color: var(--v2-sobre-dourado); opacity: 1; }
.ag-dia.escolhido .ag-dia-semana { color: var(--v2-sobre-dourado); }
.ag-dia.escolhido .ag-ponto.com { background: var(--v2-sobre-dourado); }
.ag-dia-titulo { margin: 4px 0 6px; font-size: .85rem; color: var(--v2-texto-2); font-weight: 600; }
.ag-periodo + .ag-periodo { margin-top: 18px; }
.v2 .ag-periodo-titulo { margin: 0 0 8px; font-family: var(--v2-fonte); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--v2-texto-2); }
.ag-cartao {
  display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; margin-bottom: 10px;
  border-radius: 18px; background: var(--v2-cartao); border: 1px solid var(--v2-linha); border-left: 4px solid var(--ev-cor, var(--v2-dourado));
  color: var(--v2-texto); text-decoration: none; box-shadow: var(--v2-sombra);
}
.ag-cartao:hover { color: var(--v2-texto); border-color: var(--ev-cor, var(--v2-dourado)); }
.ag-cartao-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-width: 0; }
.ag-cartao-nome { display: flex; flex-direction: column; min-width: 0; }
.ag-cartao-nome strong, .ag-cartao-topo > strong { font-family: var(--v2-fonte-titulos); font-size: 1.08rem; font-weight: 600; }
.ag-cartao-nome small { font-size: .82rem; }
.ag-etiquetas { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.ag-chips { display: flex; flex-wrap: wrap; gap: 6px; }
/* Estandes: o tatuador aparece uma vez por estande e meio-dia, com as marcações dele por baixo */
.ag-estande { margin: 0 0 10px; }
.ag-estande-topo { margin: 0 0 6px; }
.ag-estande .ag-cartao:last-child { margin-bottom: 0; }
.chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 999px; background: var(--v2-cartao-2); color: var(--v2-texto); font-size: .78rem; font-weight: 600; }
.chip .icone { width: 14px; height: 14px; color: var(--v2-texto-2); }
.ag-sinal { padding-top: 8px; border-top: 1px dashed var(--v2-linha); font-size: .8rem; color: var(--v2-texto-2); }
.ag-vazio, .ag-livre { padding: 14px 16px; margin: 0 0 10px; border-radius: 18px; border: 1px dashed var(--v2-linha); color: var(--v2-texto-2); font-size: .88rem; }
.ag-livre { display: flex; align-items: center; justify-content: space-between; gap: 10px; }

/* ---------- Início do admin ---------- */
.v2-colunas { display: grid; gap: 16px; grid-template-columns: 1fr; margin-top: 16px; }
@media (min-width: 1200px) { .v2-colunas { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } .v2-colunas-iguais { grid-template-columns: 1fr 1fr; } }
.v2 .bloco { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.bloco-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.v2 .bloco-topo h2 { margin: 0; }
.v2 .bloco > p { margin: 0; }
/* Linha do tempo */
.linha-tempo { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.linha-tempo li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; align-items: center; }
.lt-hora { font-size: .82rem; color: var(--v2-texto-2); text-align: right; }
.lt-cartao {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; min-width: 0;
  background: var(--v2-cartao-2); border: 1px solid var(--v2-linha); border-left: 4px solid var(--ev-cor, var(--v2-dourado));
  color: var(--v2-texto); text-decoration: none;
}
.lt-cartao:hover { color: var(--v2-texto); border-color: var(--ev-cor, var(--v2-dourado)); }
.lt-cartao .avatar { width: 38px; height: 38px; font-size: .8rem; }
.lt-texto { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.lt-texto small { font-size: .78rem; }
.lt-fim { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex: none; }
.lt-etiquetas { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
/* Estandes hoje (3 × manhã/tarde) */
.estandes-hoje { display: flex; flex-direction: column; gap: 8px; }
.eh-linha { display: grid; grid-template-columns: 52px repeat(3, minmax(0, 1fr)); gap: 8px; align-items: stretch; }
.eh-cabecalho span { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-2); text-align: center; }
.eh-periodo { align-self: center; font-size: .78rem; font-weight: 600; color: var(--v2-texto-2); }
.eh-celula {
  display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 64px; min-width: 0; padding: 10px 12px; border-radius: 12px;
  background: var(--v2-cartao-2); border: 1px solid var(--v2-linha); border-top: 3px solid var(--ev-cor, var(--v2-dourado)); color: var(--v2-texto); text-decoration: none; font-size: .85rem;
}
.eh-celula:hover { color: var(--v2-texto); border-color: var(--ev-cor, var(--v2-dourado)); }
.eh-celula small { font-size: .75rem; }
.eh-livre { align-items: center; background: transparent; border: 1px dashed var(--v2-linha); color: var(--v2-texto-2); }
/* Por confirmar */
.v2 .lista-v2 { font-size: .9rem; }
.v2 .lista-v2 td { padding: 12px 6px; }
.v2 .lista-v2 tr:first-child td { border-top: 0; }
.v2 .lista-v2 tr:last-child td { border-bottom: 0; }
.lv-principal { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.lv-principal a { color: var(--v2-texto); text-decoration: none; }
.lv-principal a:hover { color: var(--v2-dourado); }
.lv-tipo { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--v2-texto-2); }
.lv-principal small { font-size: .78rem; }
.lv-acao { text-align: right; white-space: nowrap; }
.lv-acao form { display: inline-flex; gap: 6px; align-items: center; }
/* Fecho de sábado e listas simples */
.lista-pessoas, .lista-simples { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.lista-pessoas { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.lista-pessoas a {
  display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; background: var(--v2-cartao-2);
  border: 1px solid var(--v2-linha); color: var(--v2-texto); text-decoration: none;
}
.lista-pessoas a:hover { color: var(--v2-texto); border-color: var(--v2-dourado); }
.lp-nome { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.lp-nome strong, .lp-nome small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-pessoas .estado, .lp-valor { flex: none; }
.lp-nome small { font-size: .76rem; }
.lp-valor { font-family: var(--v2-fonte-titulos); font-size: 1.05rem; }
.lista-simples li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--v2-linha); font-size: .9rem; }
.lista-simples li:last-child { border-bottom: 0; }

/* ---------- Detalhe, perfil, relatórios ---------- */
.v2 .dados dt { font-size: .8rem; }
.v2 .galeria-item img { border-radius: 12px; }
.v2 .ver-valores summary { color: var(--v2-dourado); }
.v2 .grafico { height: 280px; }
.v2 .calor-0 { background: var(--v2-cartao); }

/* ---------- Login (sempre escuro): mesma imagem e quadro "Área da Equipa", com o estilo novo ---------- */
.v2 .pagina-login { background: var(--v2-pagina); }
.v2 .pagina-login .login .cartao {
  border-radius: 24px; padding: 28px 24px; background: var(--v2-cartao); border: 1px solid rgba(221, 181, 94, .28); box-shadow: var(--v2-sombra-forte);
}
.v2 .pagina-login .login h1 { margin: 0 0 .25rem; font-size: 1.5rem; color: var(--v2-texto); }
.v2 .pagina-login .login-subtitulo { color: var(--v2-texto-2); }
.v2 .pagina-login .botao-principal { width: 100%; min-height: 48px; font-size: .95rem; }
.v2 .pagina-login .rodape { display: none; }
.v2 .rodape { border-top: 0; }

/* ---------- Animações curtas (só sem "reduzir movimento") ---------- */
@media (prefers-reduced-motion: no-preference) {
  .v2 a, .v2 .botao, .v2 summary, .v2 input, .v2 select, .v2 textarea, .ag-dia {
    transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, filter .15s ease;
  }
  .v2-mais[open] .v2-folha { animation: v2-subir .22s ease-out; }
  .v2 .menu[open] > .menu-lista, .v2 .sino[open] .sino-lista { animation: v2-aparecer .14s ease-out; }
}
@keyframes v2-subir { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes v2-aparecer { from { transform: translateY(-4px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Telemóvel: "Por confirmar" em duas linhas (dados em cima; valor e Confirmar em baixo). */
@media (max-width: 599px) {
  .v2 .lista-v2 tr { display: grid; grid-template-columns: 1fr auto; align-items: center; border-bottom: 1px solid var(--v2-linha); padding: 10px 0; }
  .v2 .lista-v2 tr:last-child { border-bottom: 0; }
  .v2 .lista-v2 td { border: 0; padding: 2px 0; }
  .v2 .lista-v2 .lv-principal { grid-column: 1 / -1; }
  .v2 .lista-v2 td.valor { text-align: left; font-size: 1rem; }
  .linha-tempo li { grid-template-columns: 44px minmax(0, 1fr); }
  .lt-cartao .avatar { display: none; }
  .eh-linha { grid-template-columns: 40px repeat(3, minmax(0, 1fr)); gap: 6px; }
  .eh-celula { padding: 8px; min-height: 56px; font-size: .78rem; }
}
.v2 .cartao > :is(h2, h3):first-child, .v2 .cartao > .bloco-topo:first-child h2 { margin-top: 0; }

/* ---------- Ajustes (2026-10-01, 2.ª ronda) ---------- */
/* Início: secções que abrem e fecham (fechadas no telemóvel, abertas no computador; a escolha fica no aparelho). */
.secoes { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; }
.secao { border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); background: var(--v2-cartao); box-shadow: var(--v2-sombra); }
.secao > summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer;
  min-height: 56px; padding: 0 18px; font-family: var(--v2-fonte-titulos); font-weight: 600; font-size: 1.05rem; color: var(--v2-texto);
}
.secao > summary::-webkit-details-marker { display: none; }
.secao > summary::after { content: ''; width: 9px; height: 9px; border-right: 2px solid var(--v2-texto-2); border-bottom: 2px solid var(--v2-texto-2); transform: rotate(45deg); margin-top: -4px; }
.secao[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.secao > summary:hover { color: var(--v2-dourado); }
.secao-corpo { padding: 0 18px 18px; display: flex; flex-direction: column; gap: 12px; }
.secao-corpo > .cartao { box-shadow: none; padding: 0; border: 0; background: transparent; }
.v2 [data-atualizar="inicio-proximas"] { margin-top: 16px; }
.v2 [data-atualizar="inicio-proximas"] .grelha { gap: 10px; }
@media (min-width: 720px) and (max-width: 1199px) { .v2 [data-atualizar="inicio-proximas"] .grelha-3 { grid-template-columns: repeat(2, 1fr); } }

/* Números em 2 colunas no telemóvel (Início do admin, do tatuador e da comercial). */
@media (max-width: 719px) {
  .v2 .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .v2 .kpi, .v2 .indicador { padding: 14px; }
  .v2 .kpi-num, .v2 .indicador .num { font-size: 1.35rem; }
  .v2 .kpi-rotulo { font-size: .74rem; gap: 6px; }
  .v2 .kpi-rotulo .icone { width: 26px; height: 26px; padding: 5px; }
  .v2 .kpi-linha { font-size: .74rem; }
  .v2 .grelha-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .v2 [data-atualizar="inicio-painel"] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .v2 [data-atualizar="inicio-painel"] > h2, .v2 [data-atualizar="inicio-painel"] > .grelha-4, .v2 [data-atualizar="inicio-painel"] > .previsto { grid-column: 1 / -1; }
  .v2 [data-atualizar="inicio-painel"] > .cartao.mt { margin-top: 0; }
}

/* Tabelas largas no telemóvel (< 768 px): cada linha passa a cartão; sem scroll horizontal. */
@media (max-width: 767px) {
  .v2 .cartoes-telemovel { border: 0; background: transparent; box-shadow: none; overflow: visible; border-radius: 0; }
  .v2 .cartoes-telemovel table, .v2 .cartoes-telemovel tbody, .v2 .cartoes-telemovel tr, .v2 .cartoes-telemovel td { display: block; width: auto; }
  .v2 .cartoes-telemovel thead { display: none; }
  .v2 .cartoes-telemovel tr {
    background: var(--v2-cartao); border: 1px solid var(--v2-linha); border-radius: 16px; box-shadow: var(--v2-sombra);
    padding: 12px 14px; margin-bottom: 10px;
  }
  .v2 .cartoes-telemovel tbody tr:hover td { background: transparent; }
  .v2 .cartoes-telemovel td { border: 0; padding: 2px 0; text-align: left; white-space: normal; font-size: .88rem; }
  .v2 .cartoes-telemovel td:empty { display: none; }
  .v2 .cartoes-telemovel td:first-child { font-weight: 600; font-size: .98rem; }
  .v2 .cartoes-telemovel td:first-child > a { color: var(--v2-dourado); text-decoration: none; }
  .v2 .cartoes-telemovel td[data-rotulo] { font-size: .8rem; color: var(--v2-texto-2); }
  .v2 .cartoes-telemovel td[data-rotulo]::before { content: attr(data-rotulo) ": "; }
  .v2 .cartoes-telemovel td.valor[data-rotulo], .v2 .cartoes-telemovel td.num[data-rotulo] { color: var(--v2-texto); }
  .v2 .cartoes-telemovel td.valor[data-rotulo]::before, .v2 .cartoes-telemovel td.num[data-rotulo]::before { color: var(--v2-texto-2); font-weight: 500; }
  .v2 .cartoes-telemovel td:last-child:not(:first-child) { padding-top: 8px; }
  .v2 .cartoes-telemovel td .estado { margin: 2px 0; }
  .v2 .cartoes-telemovel form.inline { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
  .v2 .cartoes-telemovel tr.riscado td { text-decoration: line-through; }
  .v2 .cartoes-telemovel .historico-campos { padding-left: 1rem; }
}

/* Agenda no telemóvel: seletores "Mês | Dia" e "Marcações | Estandes" lado a lado. */
.ag-seletores { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.ag-mes-nav { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.ag-mes-nav .ag-mes { flex: 1; text-align: center; }
.ag-seta { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--v2-linha); background: var(--v2-cartao); color: var(--v2-texto); }
.ag-seta:hover { color: var(--v2-dourado); border-color: var(--v2-dourado); }
.ag-hoje { margin-left: 4px; }
.ag-telemovel > .ag-mes { margin-bottom: 10px; }
/* Calendário do mês (7 colunas, Seg a Dom). */
.ag-calendario { display: flex; flex-direction: column; gap: 4px; padding: 10px; border-radius: var(--v2-raio); background: var(--v2-cartao); border: 1px solid var(--v2-linha); box-shadow: var(--v2-sombra); }
.ag-cal-linha { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.ag-cal-cabecalho { text-align: center; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--v2-texto-2); padding: 2px 0 4px; }
.ag-cal-dia {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 4px; min-height: 52px; padding: 6px 2px;
  border-radius: 12px; border: 1px solid transparent; color: var(--v2-texto); text-decoration: none; min-width: 0;
}
.ag-cal-dia:hover { color: var(--v2-texto); background: var(--v2-cartao-2); }
.ag-cal-num { font-size: .95rem; line-height: 1.2; }
.ag-cal-dia.fora-mes { opacity: .35; }
.ag-cal-dia.esbatido:not(.escolhido) { opacity: .5; }
.ag-cal-dia.fora-mes.esbatido { opacity: .25; }
.ag-cal-dia.hoje { border-color: var(--v2-dourado); }
.ag-cal-dia.escolhido { background: var(--v2-dourado); border-color: var(--v2-dourado); color: var(--v2-sobre-dourado); opacity: 1; }
.ag-cal-pontos { display: flex; align-items: center; justify-content: center; gap: 3px; min-height: 8px; flex-wrap: wrap; }
.ag-cal-mais { font-size: .62rem; font-weight: 700; line-height: 1; color: var(--v2-texto-2); }
.ag-cal-dia.escolhido .ag-cal-mais { color: var(--v2-sobre-dourado); }
.ag-ponto-estado { display: inline-block; width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--v2-cinza); }
.ag-ponto-estado.p-confirmada { background: var(--v2-dourado); }
.ag-ponto-estado.p-aguarda_sinal { background: transparent; box-shadow: inset 0 0 0 2px var(--v2-amarelo); } /* anel: menos certo e distinto do dourado */
.ag-ponto-estado.p-concluida { background: var(--v2-verde); }
.ag-ponto-estado.p-sem-sinal { background: var(--v2-azul); }
.ag-ponto-estado.p-cheio { background: var(--v2-vermelho); }
.ag-cal-dia.escolhido .ag-ponto-estado { box-shadow: 0 0 0 1.5px var(--v2-sobre-dourado); }
.ag-cal-dia.escolhido .ag-ponto-estado.p-confirmada { background: var(--v2-sobre-dourado); }
.ag-cal-dia.escolhido .ag-ponto-estado.p-aguarda_sinal { box-shadow: inset 0 0 0 2px var(--v2-sobre-dourado); }
.ag-cal-ocup { font-size: .66rem; color: var(--v2-texto-2); line-height: 1; }
.ag-cal-barra { width: 70%; height: 4px; border-radius: 999px; background: var(--v2-cartao-2); overflow: hidden; }
.ag-cal-barra > span { display: block; height: 100%; border-radius: inherit; background: var(--v2-verde); }
.ag-ocup-quase .ag-cal-barra > span { background: var(--v2-amarelo); }
.ag-ocup-cheio .ag-cal-barra > span { background: var(--v2-vermelho); }
.ag-cal-barra-0 { width: 0; } .ag-cal-barra-1 { width: 16.67%; } .ag-cal-barra-2 { width: 33.33%; } .ag-cal-barra-3 { width: 50%; }
.ag-cal-barra-4 { width: 66.67%; } .ag-cal-barra-5 { width: 83.33%; } .ag-cal-barra-6 { width: 100%; }
.ag-legenda { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 10px 2px 14px; font-size: .74rem; color: var(--v2-texto-2); }
.ag-legenda .ag-ponto-estado { margin-right: -6px; }
.ag-ocupado { border-style: solid; background: var(--v2-cartao-2); }

@media (max-width: 1023px) { .v2 .ag-pilula a { padding: 0 11px; font-size: .8rem; } }
.ag-ponto-estado.p-livre { background: var(--v2-verde); }
.ag-ponto-estado.p-quase { background: var(--v2-amarelo); }
/* Botões dos formulários com a largura do texto (não esticam até ao fim do cartão). */
.v2 .formulario > .botao, .v2 .formulario > button.botao { align-self: flex-start; }
/* Perfil por extenso: nunca cortado (passa à linha seguinte). */
.v2 .resumo-pessoa { padding: 4px 0; line-height: 1.35; }
.v2-pessoa-texto small { white-space: normal; overflow-wrap: anywhere; }
.v2 th .ordenar-coluna { color: var(--v2-texto-2); }
.v2 th .ordenar-coluna:hover, .v2 th .ordenar-coluna.ativa { color: var(--v2-dourado); }
@media (max-width: 767px) { .v2 .ordenar-por { width: 100%; justify-content: space-between; } .v2 .ordenar-por select { flex: 1; } }
/* Indisponibilidades (visual novo): cinzento tracejado; traço cinzento no calendário do mês. */
.v2 .indisponivel { border-color: var(--v2-cinza); color: var(--v2-texto-2); border-radius: 12px; }
.v2 .indisponivel-compacto { border-radius: 6px; }
.ag-cal-indisp { display: block; width: 16px; height: 0; border-top: 2px dashed var(--v2-cinza); margin-top: 1px; }
.ag-cal-dia.escolhido .ag-cal-indisp { border-top-color: var(--v2-sobre-dourado); }
/* Campos de data/hora: o padding à direita deixa espaço para o ícone (o v2 redefine o padding dos campos). */
.v2 input[type="date"], .v2 input[type="time"], .v2 input[type="datetime-local"], .v2 input[type="month"] { padding-right: 2.5rem; height: 44px; }
