/* Camada visual (06/11/2026, 2ª versão). Vem depois de style.css e só troca aparência: cor, tipografia, formas e movimento.
   Ideia: o quadro de avaliação postural (simetrógrafo). Cada tela abre no quadro quadriculado com a personagem dos vídeos
   em pé sobre a linha do chão e o fio de prumo vermelho. Marca do site de cursos do Leo: carvão, vermelho de sinal, grade de 48 px.
   Etapas concluídas ficam em carvão (tinta), a etapa atual em vermelho. Uma família só (Archivo), sem caixa alta decorativa.
   (Os nomes --madeira* ficaram por compatibilidade: hoje guardam a cor de "concluído", carvão no claro e osso no escuro.) */

:root{
  --fonte-mono:var(--fonte-titulo);--raio:14px;
  --bg:#111315;--surface:#1a1d20;--surface-2:#24282c;--fg:#f1f0ec;--fg-2:#a9afb4;--line:#2d3236;--grid:transparent;
  --ok:#6fbf8a;--warn:#e0ae55;--alerta:#f07a72;--vermelho:#b0261d;--vermelho-sinal:#d8453a;--on-red:#fff;
  --madeira:#e6e4de;--madeira-t:#f07a72;--sobre-madeira:#111315;
  --quadro:#dcdfdf;--q-tinta:#16181b;--q-tinta-2:#43494f;--q-maior:rgba(22,24,27,.16);--q-menor:rgba(22,24,27,.065);color-scheme:dark}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){
  --bg:#e8eaea;--surface:#fff;--surface-2:#f2f3f3;--fg:#16181b;--fg-2:#4a5056;--line:#d4d8d9;--grid:transparent;
  --ok:#27704a;--warn:#855806;--alerta:#a82a22;--vermelho:#b0261d;--vermelho-sinal:#b92a20;--on-red:#fff;
  --madeira:#16181b;--madeira-t:#a82a22;--sobre-madeira:#fff;
  --quadro:#f8f8f6;--q-tinta:#16181b;--q-tinta-2:#4a5056;--q-maior:rgba(22,24,27,.13);--q-menor:rgba(22,24,27,.05);color-scheme:light}}
:root[data-theme="light"]{
  --bg:#e8eaea;--surface:#fff;--surface-2:#f2f3f3;--fg:#16181b;--fg-2:#4a5056;--line:#d4d8d9;--grid:transparent;
  --ok:#27704a;--warn:#855806;--alerta:#a82a22;--vermelho:#b0261d;--vermelho-sinal:#b92a20;--on-red:#fff;
  --madeira:#16181b;--madeira-t:#a82a22;--sobre-madeira:#fff;
  --quadro:#f8f8f6;--q-tinta:#16181b;--q-tinta-2:#4a5056;--q-maior:rgba(22,24,27,.13);--q-menor:rgba(22,24,27,.05);color-scheme:light}
:root[data-theme="dark"]{
  --bg:#111315;--surface:#1a1d20;--surface-2:#24282c;--fg:#f1f0ec;--fg-2:#a9afb4;--line:#2d3236;--grid:transparent;
  --ok:#6fbf8a;--warn:#e0ae55;--alerta:#f07a72;--vermelho:#b0261d;--vermelho-sinal:#d8453a;--on-red:#fff;
  --madeira:#e6e4de;--madeira-t:#f07a72;--sobre-madeira:#111315;
  --quadro:#dcdfdf;--q-tinta:#16181b;--q-tinta-2:#43494f;--q-maior:rgba(22,24,27,.16);--q-menor:rgba(22,24,27,.065);color-scheme:dark}
::selection{background:color-mix(in srgb,var(--vermelho-sinal) 26%,transparent);color:inherit}
html{accent-color:var(--vermelho);caret-color:var(--vermelho-sinal)}
:focus-visible{outline:2.5px solid var(--vermelho-sinal);outline-offset:3px}

body{background-image:none;background-color:var(--bg)}

/* ---------- topo ---------- */
header.top{background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:0;backdrop-filter:saturate(1.3) blur(12px);-webkit-backdrop-filter:saturate(1.3) blur(12px);view-transition-name:topo}
.logo small{font-size:.8125rem;letter-spacing:.02em;text-transform:none;color:var(--fg-2);font-weight:500}
.logo b{font-stretch:125%;font-weight:800;font-size:1.2rem;letter-spacing:-.025em;text-transform:none}
.logo b i{color:var(--madeira-t)}

/* ---------- tipografia ---------- */
h1,h2,h3{text-transform:none;text-wrap:balance}
h1{font-stretch:125%;font-weight:800;font-size:clamp(1.9rem,8.4vw,2.7rem);line-height:1.04;letter-spacing:-.028em;margin:0 0 8px}
h2{font-stretch:112%;font-weight:800;font-size:clamp(1.3rem,5vw,1.75rem);line-height:1.1;letter-spacing:-.02em}
h3{font-stretch:100%;font-weight:700;font-size:1.0625rem;line-height:1.25;letter-spacing:-.005em}
.h-card{font-stretch:112%;font-size:1.25rem}
.eyebrow{color:var(--fg-2);font-weight:600;font-size:.9375rem}

/* ---------- o quadro de avaliação (simetrógrafo) com a personagem ---------- */
.stage{--chao:22px;position:relative;display:block;margin:12px 0 18px;min-height:318px;border-radius:16px;overflow:hidden;color:var(--q-tinta);
  background-color:var(--quadro);
  background-image:linear-gradient(var(--q-maior) 1px,transparent 1px),linear-gradient(90deg,var(--q-maior) 1px,transparent 1px),
    linear-gradient(var(--q-menor) 1px,transparent 1px),linear-gradient(90deg,var(--q-menor) 1px,transparent 1px);
  background-size:48px 48px,48px 48px,12px 12px,12px 12px;background-position:-1px calc(100% - var(--chao)),-1px 0,-1px calc(100% - var(--chao)),-1px 0;
  box-shadow:0 1px 2px rgba(16,18,20,.06),0 10px 28px -14px rgba(16,18,20,.22)}
.stage::after{content:'';position:absolute;left:0;right:0;bottom:var(--chao);height:2px;background:var(--q-tinta);opacity:.55}
.stage-t{position:relative;z-index:2;max-width:58%;padding:24px 0 24px 22px}
.stage-t h1{margin:0;color:var(--q-tinta)}
.stage-s{margin:12px 0 0;font-size:1rem;line-height:1.4;color:var(--q-tinta-2);max-width:24ch}
.stage-f{position:absolute;z-index:1;right:7%;top:0;bottom:var(--chao);width:38%;display:flex;justify-content:center;align-items:flex-end;pointer-events:none;user-select:none}
.prumo{position:absolute;left:50%;top:0;bottom:-8px;width:2px;margin-left:-1px;background:var(--vermelho-sinal);opacity:.7}
.prumo::before{content:'';position:absolute;left:50%;top:10px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--vermelho-sinal)}
.stage-i{position:relative;display:block;height:min(88%,272px);width:auto;max-width:none;filter:drop-shadow(0 6px 4px rgba(16,18,20,.18));view-transition-name:figura}
.stage-avanco .stage-f{width:46%;right:2%}
@media (min-width:640px){.stage{min-height:360px;margin-top:20px}.stage-t{padding:40px 0 40px 44px;max-width:54%}.stage-f{right:9%;width:32%}.stage-i{height:min(88%,312px)}.stage-avanco .stage-f{right:5%;width:40%}}
@media (prefers-reduced-motion:no-preference){
  .stage-i{animation:entra-fig .7s cubic-bezier(.16,1,.3,1) both}
  .prumo{transform-origin:top;animation:desce-prumo .9s cubic-bezier(.16,1,.3,1) both}
}
@keyframes entra-fig{from{opacity:.001;transform:translateY(10px)}}
@keyframes desce-prumo{from{transform:scaleY(0)}}

/* ---------- blocos ---------- */
.card{background:var(--surface);border:0;border-radius:16px;padding:22px;margin-bottom:12px;box-shadow:none}
.card.hero{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--fg)}
.card .eyebrow{margin:0 0 4px}
.card.intro{border-left:0;background:var(--surface)}
.gravar{background:color-mix(in srgb,var(--ok) 9%,var(--surface))}
.note{color:var(--fg-2)}

/* ---------- trilha da jornada ---------- */
.check{display:block;margin:4px 0 0;padding:0;list-style:none}
.check li{position:relative;display:flex;gap:14px;align-items:flex-start;padding:12px 0;margin:0;background:none;border-radius:0;color:var(--fg-2);font-size:1.0625rem;min-height:56px}
.check li .b{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:0;background:var(--surface-2);color:var(--fg-2);font-weight:800;font-size:.9375rem;position:relative;z-index:1}
.jornada .check li:not(:last-child)::before{content:'';position:absolute;left:16px;top:46px;bottom:-14px;width:2px;background:var(--line)}
.check li.ok{color:var(--fg-2)}
.check li.ok .b{background:var(--madeira);color:var(--sobre-madeira)}
.jornada .check li.ok::before{background:var(--madeira)}
.check li.now{color:var(--fg);font-weight:700;font-size:1.1875rem;background:none;margin:0;padding:12px 0}
.check li.now .b{background:var(--vermelho);color:#fff;box-shadow:0 0 0 5px color-mix(in srgb,var(--vermelho-sinal) 22%,transparent)}
.check li > span:nth-child(2){padding-top:5px}
.check li > .stack{position:relative;z-index:2;flex:0 0 calc(100% - 48px);margin:10px 0 4px 48px}
.prog{height:10px;border-radius:6px;background:var(--surface-2)}
.prog i{background:var(--madeira);border-radius:6px}

/* ---------- botões ---------- */
.btn{min-height:56px;padding:0 30px;border-radius:999px;font-size:1rem;font-weight:700;letter-spacing:0;text-transform:none;background:var(--vermelho);color:var(--on-red);transition:transform .14s ease,background-color .2s ease,box-shadow .2s ease}
.btn:hover{background:color-mix(in srgb,var(--vermelho) 86%,#fff)}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--fg);border:0;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--fg) 35%,transparent)}
.btn.ghost:hover{background:color-mix(in srgb,var(--fg) 7%,transparent)}
.btn.sm{min-height:46px;padding:0 20px;font-size:.9375rem}
.btn.block{width:100%}
.seg{border:0;border-radius:999px;background:var(--surface-2);padding:3px}
.seg button{border-radius:999px;text-transform:none;letter-spacing:0;font-family:var(--fonte-titulo);font-weight:600;font-size:.9375rem}
.seg button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.chip{text-transform:none;letter-spacing:0;font-size:.8125rem;font-weight:700;border-radius:999px;padding:4px 11px}

/* ---------- campos ---------- */
input[type=text],input[type=url],input[type=tel],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],select,textarea{border:1.5px solid transparent;border-radius:14px;background:var(--surface-2);min-height:54px;font-size:1.0625rem;padding:0 16px;transition:border-color .2s ease,background-color .2s ease}
textarea{padding:14px 16px;min-height:104px}
input:focus,select:focus,textarea:focus{border-color:var(--fg-2);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--vermelho-sinal) 30%,transparent)}
.f .l{font-weight:600;font-size:.9375rem;margin-bottom:6px}
.drop{border:2px dashed color-mix(in srgb,var(--madeira) 70%,transparent);border-radius:18px;background:color-mix(in srgb,var(--madeira) 8%,var(--surface));font-weight:700;min-height:64px}
.drop:hover{background:color-mix(in srgb,var(--madeira) 16%,var(--surface))}

/* ---------- etapas do cadastro ---------- */
.steps li{border-top:0;position:relative;padding-top:0;font-family:var(--fonte-titulo);font-size:.8125rem;letter-spacing:0;text-transform:none;font-weight:600}
.steps li::before{content:'';display:block;height:5px;border-radius:3px;background:var(--line);margin-bottom:9px}
.steps li.done::before{background:var(--madeira)}
.steps li.now::before{background:var(--vermelho-sinal)}
.steps li b{font-size:1rem}

/* ---------- vídeos ---------- */
.gvid{border-radius:20px;border:0;background:#0f1113}
.gv-chip{border:0;background:var(--surface-2);border-radius:50%;min-width:46px;min-height:46px;font-weight:800;transition:background-color .2s ease,transform .14s ease}
.gv-chip:active{transform:scale(.94)}
.gv-chip.ok{background:var(--madeira);color:var(--sobre-madeira)}
.gv-chip.now{background:var(--fg);color:var(--bg)}
.gv-chip.bad{box-shadow:inset 0 0 0 2px var(--vermelho-sinal)}

/* ---------- menu ---------- */
.fab{border-radius:999px;text-transform:none;letter-spacing:0;font-size:.9375rem;font-weight:700;box-shadow:0 2px 4px rgba(16,18,20,.12),0 10px 22px -8px rgba(16,18,20,.4)}
.nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.nav-i{width:22px;height:22px;flex:0 0 auto}
@media (max-width:759px){
  .nav{left:0;right:0;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-template-columns:none;border:0;border-radius:0;padding:4px 4px env(safe-area-inset-bottom,0px);gap:0;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -1px 0 var(--line);view-transition-name:nav}
  .nav button{border:0;border-radius:0;min-height:60px;padding:6px 0 4px;font-family:var(--fonte-titulo);font-weight:600;font-size:.75rem;color:var(--fg-2);transition:color .2s ease}
  .nav button::before{content:'';position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--vermelho-sinal);transform:scaleX(0);transition:transform .3s cubic-bezier(.16,1,.3,1)}
  .nav button[aria-current="page"]{color:var(--fg);font-weight:700}
  .nav button[aria-current="page"]::before{transform:none}
  .nav .dot{position:absolute;top:6px;left:calc(50% + 6px)}
  .fab{right:14px;bottom:calc(78px + env(safe-area-inset-bottom,0px))}
  main{padding-bottom:170px}
}
@media (min-width:760px){
  .nav{border:0;display:flex;gap:6px;padding:6px 0 14px}
  .nav button{flex-direction:row;gap:8px;border:0;border-radius:999px;min-height:46px;padding:0 18px 0 14px;font-family:var(--fonte-titulo);font-weight:600;flex:0 0 auto}
  .nav button[aria-current="page"]{background:var(--fg);color:var(--bg)}
  .nav-i{width:20px;height:20px}
}

/* ---------- painel da equipe: mesmos tokens, mais denso ---------- */
.tabs{border-bottom:0;gap:6px;padding-bottom:6px}
.tabs button{border:0;border-radius:999px;text-transform:none;letter-spacing:0;font-family:var(--fonte-titulo);font-weight:600;font-size:.9375rem;min-height:44px;padding:0 18px}
.tabs button[aria-current="page"]{background:var(--fg);color:var(--bg)}
.tabs .n{color:inherit;opacity:.8}
th{text-transform:none;letter-spacing:0;font-family:var(--fonte-titulo);font-weight:700;font-size:.875rem}
.mc{border:0;border-radius:20px;background:var(--surface)}
.kv dt{text-transform:none;letter-spacing:0;font-family:var(--fonte-titulo);font-weight:600}
.fl button{text-transform:none;letter-spacing:0;font-family:var(--fonte-titulo);font-weight:600;border-radius:999px;border:0;background:var(--surface-2)}
.fl button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.dlg{border-radius:28px 28px 0 0;border:0}
@media (min-width:768px){.dlg{border-radius:28px}}

/* ---------- movimento: só a troca de tela (a figura muda de pose, o conteúdo entra suave) ---------- */
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vt-sai .16s ease both}
  ::view-transition-new(root){animation:vt-entra .34s cubic-bezier(.2,.7,.2,1) both}
  ::view-transition-group(figura){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
}
@keyframes vt-sai{to{opacity:0}}
@keyframes vt-entra{from{opacity:0;transform:translateY(12px)}}

/* fotos do registro corporal */
.foto{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:start}
.foto-i{width:96px;height:auto;border-radius:16px;background:color-mix(in srgb,var(--madeira) 14%,var(--surface-2));padding:8px 6px}
.foto-t h3{margin:0}
.fotos{display:grid;gap:12px;margin-bottom:14px}
@media (min-width:640px){.fotos{grid-template-columns:1fr 1fr}}

.foto-l{margin:8px 0 12px;font-size:.9375rem;color:var(--fg-2)}
.prep h3{margin:14px 0 4px}
.prep h3:first-child{margin-top:12px}
.lista{list-style:disc}

/* fotos de exemplo: a modelo do protocolo */
.foto-i{aspect-ratio:auto;height:auto;object-fit:contain;padding:0;background:var(--surface-2)}

.guia-anim{padding:14px}
.guia-anim .gvid{width:100%;max-height:72vh;aspect-ratio:4/5;object-fit:contain;background:#e9ecec;border-radius:18px}

/* ===== Cenas em rolagem (registro corporal): o conteúdo vai entrando conforme a página desce ===== */
.scrolly{position:relative;height:calc(var(--n) * 52vh + (100svh - 200px));margin:0 0 6px}
.scrolly-stage{position:sticky;top:84px;height:calc(100svh - 200px);min-height:430px;border-radius:30px;background:var(--surface);overflow:hidden;box-shadow:0 1px 0 color-mix(in srgb,var(--fg) 6%,transparent)}
.sc-top{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;font-weight:700;font-size:.9375rem;color:var(--madeira-t)}
.sc-dots{display:flex;gap:6px}.sc-dots i{width:8px;height:8px;border-radius:50%;background:var(--line);transition:background-color .3s ease,transform .3s ease}
.sc-dots i.ok{background:var(--madeira)}.sc-dots i.on{background:var(--vermelho-sinal);transform:scale(1.35)}
.sc{position:absolute;inset:0;display:flex;opacity:0;visibility:hidden;transform:translateY(34px);transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1),visibility 0s linear .5s;--loc:0}
.sc.past{transform:translateY(-34px)}
.sc.on{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.sc-in{margin:auto;width:100%;max-height:100%;padding:62px 24px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.sc-g{font-stretch:125%;font-weight:800;font-size:clamp(2rem,10vw,3rem);line-height:1;letter-spacing:-.03em;margin:0;white-space:nowrap}
.sc-s{margin:0;font-size:1.125rem;color:var(--fg-2)}
.sc-item{--a:clamp(0,calc(var(--loc) * 3.4 - var(--k,0)),1);opacity:var(--a);transform:translateY(calc((1 - var(--a)) * 16px))}
.sc-thumbs{display:flex;gap:7px;justify-content:center;margin-top:10px}
.sc-thumbs img{width:min(17vw,70px);height:auto;aspect-ratio:212/340;object-fit:cover;object-position:top;border-radius:12px;background:var(--surface-2)}
.sc-hint{margin:18px 0 0;font-size:.9375rem;color:var(--fg-2);font-weight:600}
.sc-hint::after{content:'';display:block;width:10px;height:10px;margin:8px auto 0;border-right:2.5px solid var(--fg-2);border-bottom:2.5px solid var(--fg-2);transform:rotate(45deg);animation:sc-seta 1.6s ease-in-out infinite}
@keyframes sc-seta{0%,100%{transform:translateY(0) rotate(45deg);opacity:.4}50%{transform:translateY(7px) rotate(45deg);opacity:1}}
.sc .sc-item[style*="--k"] b{display:block}
.sc-item{display:flex;align-items:center;gap:14px;text-align:left}
.sc-in > .sc-item{width:100%;max-width:340px;background:var(--surface-2);border-radius:22px;padding:14px 16px}
.sc-thumbs .sc-item{padding:0;background:none;width:auto;display:block}
.sc-item b{font-size:1.1875rem;line-height:1.2}.sc-item small{display:block;font-size:.9375rem;color:var(--fg-2);font-weight:500;margin-top:2px}
.sc-ico{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff}
.sc-ico.ok{background:var(--madeira);color:var(--sobre-madeira)}.sc-ico.no{background:var(--vermelho)}
.sc-fim{background:none!important;justify-content:center;text-align:center;flex-direction:column;gap:2px}
.sc-fim b{color:var(--madeira-t);font-size:1.375rem}
.sc-foto{gap:12px}
.sc-img{flex:1 1 auto;min-height:0;display:grid;place-items:center;width:100%}
.sc-img img{height:100%;max-height:min(46svh,380px);width:auto;max-width:78%;object-fit:contain;border-radius:20px;background:#fff;transform:scale(calc(1 + var(--loc) * .05));transition:transform .15s linear}
.sc-t{display:flex;align-items:center;gap:14px;text-align:left;width:100%;max-width:360px}
.sc-n{font-stretch:125%;font-weight:800;font-size:3.2rem;line-height:1;color:var(--vermelho-sinal)}
.sc-h{margin:0;font-stretch:112%;font-size:1.5rem;line-height:1.1}
.sc-c{margin:4px 0 0;font-size:1rem;color:var(--fg-2);line-height:1.35}
.sc-pular{margin:6px 0 18px;text-align:center}
@media (prefers-reduced-motion:reduce){
  .scrolly{height:auto}.scrolly-stage{position:static;height:auto;overflow:visible;background:none;box-shadow:none}
  .sc{position:relative;opacity:1;visibility:visible;transform:none;transition:none;margin-bottom:14px;background:var(--surface);border-radius:26px}
  .sc-in{padding:26px 20px}.sc-item{opacity:1;transform:none}.sc-top,.sc-hint,.sc-pular{display:none}.sc-img img{transform:none}
}

/* conta do paciente: linha discreta acima do quadro */
.who{margin:14px 0 0}.who .note{font-size:.875rem}
/* fio de prumo passando pelo eixo do corpo em cada pose */
.stage-parada .prumo{left:40%}.stage-bracos .prumo{left:50%}.stage-agacho .prumo{left:52%}.stage-avanco .prumo{left:56%}
/* barra da fase: trilho claro, dias corridos em vermelho */
.pbar{height:8px;border-radius:4px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.pbar i{display:block;height:100%;border-radius:4px;background:var(--vermelho-sinal)}
/* quadro compacto nas abas (Treinos, Evolução, Vídeos, Parceiros, Suporte) */
.stage-mini{min-height:188px;margin-bottom:16px}
.stage-mini .stage-t{padding:22px 0 22px 22px;max-width:62%}
.stage-mini h1{font-size:clamp(1.75rem,7.6vw,2.4rem)}
.stage-mini .stage-i{height:min(86%,150px)}
.stage-mini.stage-avanco .stage-f{width:40%}
@media (min-width:640px){.stage-mini{min-height:220px}.stage-mini .stage-t{padding:32px 0 32px 44px}.stage-mini .stage-i{height:min(86%,180px)}}
/* rótulo acima do título (ex.: "Etapa 1 de 4") continua para leitores de tela, sem aparecer: a trilha de etapas já mostra onde a pessoa está */
main:not(.wide) .eyebrow:has(+ h1){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* trilha de etapas no celular: só a barra e o número; o título logo abaixo diz qual é a etapa */
@media (max-width:520px){.steps li{font-size:0}.steps li b{font-size:.9375rem}.steps li.now b{color:var(--vermelho-sinal)}}
.check .btn.ghost{background:var(--surface)}

/* revisão: no Início, vermelho só na ação da etapa atual; as demais ações cheias ficam em carvão */
#screen:has(.jornada) .btn:not(.ghost){background:var(--fg);color:var(--bg)}
#screen:has(.jornada) .btn:not(.ghost):hover{background:color-mix(in srgb,var(--fg) 86%,var(--bg))}
#screen:has(.jornada) .check li.now .btn:not(.ghost){background:var(--vermelho);color:var(--on-red)}
/* blocos que abrem e fecham (Remarcar, Registrar medidas): seta mostrando que dá para abrir */
.remarcar summary,.gravar summary{list-style:none;justify-content:space-between;gap:12px}
.remarcar summary::-webkit-details-marker,.gravar summary::-webkit-details-marker{display:none}
.remarcar summary::after,.gravar summary::after{content:'';flex:0 0 auto;width:9px;height:9px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.remarcar[open] summary::after,.gravar[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.steps li.done{color:var(--fg)}

/* ===== Painel da equipe no computador (07/11/2026): menu lateral fixo, área larga, cards em duas colunas ===== */
tr.row{display:table-row}  /* .row (linha de campos) virava flex e desmontava a tabela de pacientes */
@media (min-width:1100px){
  body:has(main.wide) .bar,body:has(main.wide) .demo > div{max-width:1480px}
  main.wide{max-width:1480px;padding:28px 32px 64px}
  main.wide #screen{display:grid;grid-template-columns:208px repeat(2,minmax(0,1fr));column-gap:24px;align-items:start;grid-auto-flow:row dense}
  main.wide #screen > *{grid-column:2 / -1;min-width:0}
  main.wide #screen > .tabs{grid-column:1;grid-row:1 / span 80;position:sticky;top:92px;display:flex;flex-direction:column;gap:2px;overflow:visible;margin:0;padding:0}
  main.wide .tabs button{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:0 16px;text-align:left}
  main.wide .tabs button:not([aria-current="page"]):hover{background:var(--surface)}
  /* lista de pacientes: os dois avisos lado a lado, indicadores numa linha só */
  main.wide #screen:has(> .kpis) > .card{grid-column:auto}
  main.wide .kpis{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
  /* ficha do paciente: blocos em duas colunas; cabeçalho, evolução e gráficos na largura toda */
  main.wide #screen:has(> .row-b.mt) > .card,main.wide #screen:has(> .row-b.mt) > .dgrid{grid-column:auto}
  main.wide #screen:has(> .row-b.mt) > .dgrid{grid-template-columns:1fr}
  main.wide #screen:has(> .row-b.mt) > .mgrid ~ *{grid-column:2 / -1}
  main.wide #screen > .card{margin-bottom:16px}
  /* tabela: linhas mais compactas, cabeçalho visível ao rolar a área da tabela */
  main.wide .tw{max-height:calc(100svh - 150px);overflow:auto;border-radius:12px}
  main.wide thead th{position:sticky;top:0;z-index:1;background:var(--surface);box-shadow:0 1px 0 var(--line)}
  main.wide td{padding:9px 12px}
}
@media (min-width:1100px) and (max-width:1279px){main.wide #screen{grid-template-columns:184px repeat(2,minmax(0,1fr))}}

/* ===== Paciente no celular: a ação da etapa atual sobe para perto do topo ===== */
@media (max-width:520px){
  .stage:not(.stage-mini){min-height:256px}
  .stage:not(.stage-mini) .stage-i{height:min(86%,220px)}
  .stage:not(.stage-mini) .stage-t{padding:20px 0 20px 20px}
  .jornada .check li.ok{min-height:40px;padding:6px 0;font-size:.9375rem}
  .jornada .check li.ok .b{flex-basis:26px;width:26px;height:26px;font-size:.8125rem}
  .jornada .check li.ok > span:nth-child(2){padding-top:2px}
  .jornada .check li.ok:not(:last-child)::before{left:12px;top:32px}
  .who{margin:8px 0 0}
}
@media (min-width:1100px){main.wide th{white-space:nowrap}main.wide td.nm{min-width:180px}main.wide td.nm small{display:block}}

/* ===== Equipe: barra lateral convencional (altura toda, marca no topo, conteúdo à direita) a partir de 600 px ===== */
.tabs .nav-i{display:none}
@media (min-width:600px){
  body:has(main.wide .tabs){padding-left:var(--lat)}
  body:has(main.wide .tabs) header.top{background:color-mix(in srgb,var(--bg) 88%,transparent)}
  body:has(main.wide .tabs) .logo{position:fixed;z-index:32;top:22px;left:24px}
  body:has(main.wide .tabs) .bar{justify-content:flex-end;min-height:64px}
  main.wide #screen > .tabs{position:fixed;z-index:31;left:0;top:0;bottom:0;width:var(--lat);margin:0;padding:84px 14px 20px;overflow-y:auto;
    display:flex;flex-direction:column;gap:2px;background:var(--surface);box-shadow:1px 0 0 var(--line);border:0;border-radius:0}
  main.wide #screen > .tabs button{display:flex;flex-direction:row;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;border-radius:10px;text-align:left;color:var(--fg-2);flex:0 0 auto}
  main.wide #screen > .tabs button .tl{flex:1}
  main.wide #screen > .tabs .nav-i{display:block;width:20px;height:20px}
  main.wide #screen > .tabs button:not([aria-current="page"]):hover{background:var(--surface-2);color:var(--fg)}
  main.wide #screen > .tabs button[aria-current="page"]{background:var(--fg);color:var(--bg)}
  main.wide #screen > .tabs .n{min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;border-radius:11px;background:var(--vermelho);color:var(--on-red);font-size:.75rem;font-weight:700;opacity:1;margin:0}
  main.wide{max-width:1400px;padding:24px 32px 64px}
  main.wide #screen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;align-items:start;grid-auto-flow:row dense}
  main.wide #screen > *{grid-column:1 / -1;min-width:0}
  main.wide #screen:has(> .kpis) > .card,main.wide #screen:has(> .row-b.mt) > .card,main.wide #screen:has(> .row-b.mt) > .dgrid{grid-column:auto}
  main.wide #screen:has(> .row-b.mt) > .mgrid ~ *{grid-column:1 / -1}
}
@media (min-width:600px) and (max-width:1099px){main.wide #screen:has(> .row-b.mt) > .card,main.wide #screen:has(> .row-b.mt) > .dgrid,main.wide #screen:has(> .kpis) > .card{grid-column:1 / -1}}
/* o topo tem backdrop-filter (vira referência para position:fixed), então a marca fica no próprio topo, que cobre a faixa da barra lateral */
@media (min-width:600px){
  body:has(main.wide .tabs){padding-left:0}
  body:has(main.wide .tabs) .logo{position:static}
  body:has(main.wide .tabs) header.top{z-index:40;background:linear-gradient(90deg,var(--surface) 0 var(--lat),color-mix(in srgb,var(--bg) 92%,transparent) var(--lat));box-shadow:0 1px 0 var(--line)}
  body:has(main.wide .tabs) .bar{max-width:none;padding:10px 32px 10px 24px;justify-content:space-between}
  body:has(main.wide .tabs) .demo,body:has(main.wide .tabs) footer{margin-left:var(--lat)}
  main.wide:has(.tabs){margin-left:var(--lat);margin-right:0;max-width:none;padding:24px 32px 64px}
  main.wide #screen{max-width:1400px}
  main.wide #screen > .tabs{padding-top:90px}
}
@media (min-width:600px){main.wide #screen > details.card{grid-column:1 / -1}}

:root{--lat:248px}
@media (max-width:1099px){:root{--lat:204px}}

/* ---------- Conversas do WhatsApp: tela de atendimento (07/11/2026) ---------- */
.wa{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);height:calc(100dvh - 150px);min-height:520px;border:1px solid var(--line);border-radius:var(--raio);overflow:hidden;background:var(--surface)}
.wa-lista{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}
.wa-busca{padding:12px 12px 8px}.wa-busca input{width:100%;height:40px;border-radius:20px;padding:0 16px;background:var(--surface-2);border:1px solid transparent;color:var(--fg);font:inherit}
.wa-busca input:focus-visible{border-color:var(--fg-2);outline:none}
.wa-fil{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px}.wa-fil::-webkit-scrollbar{display:none}
.wa-fil button{flex:none;border:1px solid var(--line);background:transparent;color:var(--fg-2);border-radius:16px;padding:5px 11px;font:inherit;font-size:.8125rem;cursor:pointer;white-space:nowrap}
.wa-fil button[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.wa-fil button span{opacity:.7;margin-left:2px}
.wa-itens{flex:1;overflow-y:auto;min-height:0}
.wa-it{display:flex;gap:12px;width:100%;padding:11px 14px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--fg);font:inherit;text-align:left;cursor:pointer}
.wa-it:hover{background:var(--surface-2)}.wa-it.sel{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--vermelho-sinal)}
.wa-av{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--fg-2);font-weight:600;font-size:.875rem;border:1px solid var(--line)}
.wa-it.sel .wa-av,.wa-it:hover .wa-av{background:var(--surface)}
.wa-av.w{border-color:var(--warn);color:var(--warn)}
.wa-it-c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wa-l1,.wa-l2{display:flex;align-items:baseline;gap:8px;min-width:0}
.wa-l1 b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.wa-l1 time{flex:none;font-size:.75rem;color:var(--fg-2)}
.wa-pv{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:.875rem}
.wa-pi svg,.wa-falta svg{width:15px;height:15px;vertical-align:-3px;margin-right:4px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wa-n{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--vermelho-sinal);color:var(--on-red);font-size:.75rem;font-weight:600;display:grid;place-items:center}
.wa-l3{display:flex;gap:6px;align-items:center;min-width:0;margin-top:2px}
.wa-tag{flex:none;font-size:.75rem;padding:1px 8px;border-radius:10px;border:1px solid var(--line);color:var(--fg-2)}
.wa-tag.eq{color:var(--fg);border-color:var(--fg-2)}.wa-tag.w{color:var(--warn);border-color:var(--warn)}
.wa-mot{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;color:var(--fg-2)}
.wa-vazio{padding:24px 16px;color:var(--fg-2);font-size:.875rem;text-align:center}
.wa-erro{margin:0 12px 8px;color:var(--alerta);font-size:.875rem}
.wa-fio-w{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg)}
.wa-nada{align-items:center;justify-content:center;text-align:center;gap:6px;padding:24px;color:var(--fg-2)}.wa-nada p{margin:0;color:var(--fg);font-weight:600}
.wa-top{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
.wa-top-t{flex:1;min-width:0;display:flex;flex-direction:column}.wa-top-t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-top-t small{font-size:.75rem;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-voltar{display:none;border:0;background:transparent;color:var(--fg);padding:6px;margin-left:-6px;cursor:pointer}
.wa-voltar svg,.wa-env svg,.wa-clip svg,.wa-doc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wa-fio{flex:1;overflow-y:auto;padding:14px 6% 18px;display:flex;flex-direction:column;gap:3px}
.wa-dia{text-align:center;margin:12px 0 8px}.wa-dia span{font-size:.75rem;color:var(--fg-2);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px 10px}
.wa-b{position:relative;max-width:min(78%,560px);padding:6px 10px 18px;border-radius:12px;background:var(--surface);border:1px solid var(--line);align-self:flex-start;overflow-wrap:anywhere}
.wa-b.out{align-self:flex-end;background:var(--surface-2);border-color:var(--fg-2)}
.wa-b.auto{border-style:dashed;border-color:var(--line);background:var(--surface)}
.wa-b p{margin:0;white-space:pre-wrap;line-height:1.45}
.wa-q{display:block;font-size:.75rem;font-weight:600;color:var(--fg-2);margin-bottom:2px}
.wa-b.out:not(.auto) .wa-q{color:var(--vermelho-sinal)}
.wa-h{position:absolute;right:10px;bottom:3px;font-size:.6875rem;color:var(--fg-2);white-space:nowrap}
.wa-b p+.wa-h,.wa-b .wa-h{padding-left:12px}
.wa-st{margin-left:6px}.wa-st.falhou{color:var(--alerta);font-weight:600}.wa-st.lida{color:var(--ok)}
.wa-foto{display:block;margin:2px -4px 4px;border-radius:8px;overflow:hidden}.wa-foto img{display:block;max-width:100%;max-height:340px;object-fit:cover}
.wa-video{display:block;max-width:100%;max-height:360px;border-radius:8px;margin:2px 0 4px;background:#000}
.wa-audio{display:block;width:min(300px,62vw);height:40px;margin:2px 0 4px}
.wa-doc{display:flex;align-items:center;gap:10px;padding:10px;margin:2px 0 4px;border-radius:8px;background:var(--bg);color:var(--fg);text-decoration:none;border:1px solid var(--line)}
.wa-doc span{display:flex;flex-direction:column;min-width:0}.wa-doc b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-doc small{font-size:.75rem;color:var(--fg-2)}
.wa-falta{margin:2px 0 4px;font-size:.875rem;color:var(--fg-2);font-style:italic}
.wa-comp{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;background:var(--surface);border-top:1px solid var(--line)}
.wa-clip{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:var(--fg-2);cursor:pointer}
.wa-clip:hover{background:var(--surface-2);color:var(--fg)}.wa-clip:focus-within{outline:2px solid var(--fg-2);outline-offset:2px}
.wa-clip input{position:absolute;width:1px;height:1px;opacity:0}
.wa-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;background:var(--surface-2);border-radius:22px;padding:10px 16px;border:1px solid transparent}
.wa-txt:focus-within{border-color:var(--fg-2)}
.wa-txt textarea{border:0;background:transparent;color:var(--fg);font:inherit;resize:none;outline:none;padding:0;min-height:22px;max-height:160px;line-height:1.4}
.wa-anexo{font-size:.8125rem;color:var(--fg);display:flex;gap:8px;align-items:center}.wa-anexo[hidden]{display:none}
.wa-anexo button{border:0;background:var(--surface);color:var(--fg-2);border-radius:50%;width:20px;height:20px;line-height:1;cursor:pointer}
.wa-env{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--vermelho-sinal);color:var(--on-red);display:grid;place-items:center;cursor:pointer}
.wa-env:disabled{opacity:.5;cursor:wait}.wa-env:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.wa-fora{padding:14px 16px;background:var(--surface);border-top:1px solid var(--line);color:var(--fg-2);font-size:.875rem;text-align:center}
.wa-sim summary{cursor:pointer;font-weight:600}
@media (max-width:760px){
  .wa{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 190px);min-height:440px;border-radius:12px}.wa-lg{display:none}
  .wa.aberta .wa-lista{display:none}.wa:not(.aberta) .wa-fio-w{display:none}
  .wa-lista{border-right:0}.wa-voltar{display:block}
  .wa-fio{padding:12px 10px 14px}.wa-b{max-width:86%}
  .wa-top .btn.sm{padding:6px 10px}
}
.wa-busca{display:flex;gap:8px;align-items:center}
.wa-mais{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg);display:grid;place-items:center;cursor:pointer}
.wa-mais:hover,.wa-mais[aria-expanded=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.wa-mais svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.wa-novo{margin:0 12px 12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.wa-novo p{margin:0 0 10px;display:flex;flex-direction:column;gap:2px}.wa-novo small{color:var(--fg-2);font-size:.8125rem}
.wa-novo .f{margin-bottom:8px}
.wa-novo input{width:100%}
.wa-cfgb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);font-size:.75rem;color:var(--fg-2)}
.wa-cfgb button{border:1px solid var(--line);background:transparent;color:var(--fg-2);border-radius:12px;padding:3px 9px;font:inherit;cursor:pointer}
.wa-cfgb button[aria-pressed=true]{color:var(--fg);border-color:var(--fg-2)}
.wa-vivo{display:inline-flex;align-items:center;gap:6px}.wa-vivo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--fg-2)}
.wa-vivo.on{color:var(--ok)}.wa-vivo.on::before{background:var(--ok)}
