/* Fontes hospedadas no próprio site (licença OFL, ver pasta fonts) */
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/sora-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-tight-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-tight-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-tight-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/bricolage-grotesque-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/bricolage-grotesque-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/bricolage-grotesque-latin-700-normal.woff2) format('woff2')}
:root{
  --fundo:#F4F2EC; --superficie:#FFFFFF; --tinta:#12312E; --suave:#3F4F4A; --mudo:#5A6863;
  --linha:#DDD8CC; --linha-forte:#C9C3B5; --acento:#0F766E; --acento-escuro:#0A504B; --acento-claro:#DBEFEC;
  --ambar:#F28C4B; --alerta:#9A3412; --alerta-claro:#FCEBDD; --ok:#166534;
  --raio:12px; --sombra:0 1px 0 var(--linha);
  --fonte:'Inter Tight',system-ui,-apple-system,sans-serif; --titulo:'Bricolage Grotesque',var(--fonte);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--fundo);color:var(--tinta);font-family:var(--fonte);font-size:16px;line-height:1.5}
a{color:var(--acento)}a:hover{color:var(--acento-escuro)}
h1,h2,h3{font-family:var(--titulo);letter-spacing:-.02em;line-height:1.15;margin:0}
h1{font-size:28px}h2{font-size:21px}h3{font-size:17px}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ambar);outline-offset:2px}
.carregando{padding:48px;text-align:center;color:var(--mudo)}

/* Layout */
.shell{display:flex;min-height:100vh}
.lateral{flex:0 0 232px;background:var(--menu,#12312E);color:var(--menu-forte,#F4F2EC);border-right:1px solid var(--menu-borda,transparent);padding:20px 14px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh}
.marca{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-family:var(--titulo);font-weight:700;font-size:22px;color:#F4F2EC;text-decoration:none}
.lateral a.nav{display:flex;align-items:center;gap:10px;color:var(--menu-texto,#C9D3CF);text-decoration:none;padding:10px 12px;border-radius:10px;min-height:44px}
.lateral a.nav:hover{background:var(--menu-hover,#1F332E);color:var(--menu-forte,#fff)}
.lateral a.nav.ativo{background:var(--menu-ativo,#24403A);color:var(--menu-forte,#fff);font-weight:600}
.lateral .rodape-nav{margin-top:auto;font-size:13px;color:var(--menu-mudo,#93A39D);padding:8px 10px;display:flex;align-items:center;gap:10px;text-decoration:none;border-radius:10px;line-height:1.35}
.lateral .rodape-nav:hover{background:var(--menu-hover,#1F332E)}
.lateral .rodape-nav span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.lateral .rodape-nav small{font-size:12px;opacity:.85}
.conteudo{flex:1 1 auto;min-width:0;padding:28px clamp(16px,3vw,40px) 96px;max-width:1180px}
.topo{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:22px}
.topo .sub{color:var(--mudo);margin-top:4px}
.barra-inferior{display:none}
@media (max-width:820px){
  .lateral{display:none}
  .barra-inferior{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--menu,#12312E);border-top:1px solid var(--menu-borda,transparent);padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:20;justify-content:space-around}
  .barra-inferior a{color:var(--menu-texto,#C9D3CF);text-decoration:none;font-size:12px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;min-width:56px;min-height:44px;border-radius:10px}
  .barra-inferior a.ativo{color:var(--menu-forte,#fff);background:var(--menu-ativo,#24403A)}
  h1{font-size:24px}
}

/* Componentes */
.cartao{background:var(--superficie);border:1px solid var(--linha);border-radius:16px;padding:20px}
.cartao + .cartao{margin-top:16px}
.cartao-titulo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.grade{display:flex;flex-wrap:wrap;gap:16px}
.grade > *{flex:1 1 300px;min-width:0}
.pilha{display:flex;flex-direction:column;gap:12px}
.linha{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.entre{justify-content:space-between}
.mudo{color:var(--mudo)}.pequeno{font-size:14px}.forte{font-weight:600}
.vazio{color:var(--mudo);padding:18px;text-align:center;border:1px dashed var(--linha-forte);border-radius:12px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--linha-forte);background:var(--superficie);color:var(--tinta);font-weight:600;font-size:15px;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:var(--tinta);color:var(--tinta)}
.btn.primario{background:var(--acento);border-color:var(--acento);color:#fff}
.btn.primario:hover{background:var(--acento-escuro)}
.btn.escuro{background:var(--tinta);border-color:var(--tinta);color:#F4F2EC}
.btn.perigo{color:var(--alerta);border-color:#E6B9A0}
.btn.fantasma{border-color:transparent;background:transparent}
.btn.mini{min-height:36px;padding:0 12px;font-size:14px}
.btn[disabled]{opacity:.55;cursor:not-allowed}

label.campo{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--suave);flex:1 1 220px;min-width:0}
label.campo.largo{flex-basis:100%}
.campo input,.campo select,.campo textarea{font-weight:400;font-size:16px;color:var(--tinta);background:#fff;border:1px solid var(--linha-forte);border-radius:10px;padding:10px 12px;min-height:44px;width:100%}
.campo textarea{min-height:88px;resize:vertical}
.campo .ajuda{font-weight:400;color:var(--mudo);font-size:13px}
fieldset{border:1px solid var(--linha);border-radius:14px;padding:16px;margin:0}
legend{font-weight:600;padding:0 6px}
.form{display:flex;flex-wrap:wrap;gap:14px}
.acoes{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:8px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.check input{width:20px;height:20px;margin-top:2px}

.selo{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:#ECE8DE;color:var(--suave);white-space:nowrap}
.selo.verde{background:var(--acento-claro);color:var(--acento-escuro)}
.selo.alerta{background:var(--alerta-claro);color:var(--alerta)}
.selo.ambar{background:#F7E6C4;color:#6B4A0E}

.lista{display:flex;flex-direction:column}
.item{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:14px 4px;border-bottom:1px solid #EAE6DC}
.item:last-child{border-bottom:0}
.item a.titulo{font-weight:600;color:var(--tinta);text-decoration:none}
.item a.titulo:hover{text-decoration:underline}

.abas{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--linha);margin:18px 0 18px;scrollbar-width:thin}
.abas a{padding:10px 14px;color:var(--suave);text-decoration:none;font-weight:600;font-size:15px;white-space:nowrap;border-bottom:3px solid transparent;min-height:44px;display:inline-flex;align-items:center}
.abas a.ativo{color:var(--tinta);border-color:var(--acento)}

.metricas{display:flex;flex-wrap:wrap;gap:14px}
.metrica{flex:1 1 180px;background:var(--superficie);border:1px solid var(--linha);border-radius:14px;padding:16px}
.metrica .valor{font-family:var(--titulo);font-size:28px;font-weight:700}
.metrica .rotulo{color:var(--mudo);font-size:14px}

.tabela-box{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid #EAE6DC;vertical-align:top}
th{font-size:13px;color:var(--mudo);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

.escala-item{border-bottom:1px solid #EAE6DC;padding:12px 0}
.opcoes{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.opcoes label{display:inline-flex;position:relative}
.opcoes input{position:absolute;opacity:0;pointer-events:none}
.opcoes span{display:inline-flex;align-items:center;min-height:40px;padding:6px 12px;border:1px solid var(--linha-forte);border-radius:10px;background:#fff;cursor:pointer;font-size:14px}
.opcoes input:checked + span{background:var(--acento);border-color:var(--acento);color:#fff;font-weight:600}
.opcoes input:focus-visible + span{outline:3px solid var(--ambar);outline-offset:2px}
.placar{position:sticky;bottom:0;background:var(--tinta);color:#F4F2EC;border-radius:14px;padding:14px 18px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:16px;z-index:5}
.placar .valor{font-family:var(--titulo);font-size:26px;font-weight:700}
@media (max-width:820px){.placar{bottom:72px}}

.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--linha-forte);background:#fff;border-radius:999px;padding:6px 12px;font-size:14px;cursor:pointer;min-height:36px}
.chip:hover{border-color:var(--acento);color:var(--acento-escuro)}

.grafico{max-width:560px}
.grafico svg{width:100%;height:auto;display:block}
.texto-pre{white-space:pre-wrap}
.soap dt{font-weight:600;color:var(--suave);font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin-top:10px}
.soap dd{margin:2px 0 0;white-space:pre-wrap}
.assinatura{font-size:13px;color:var(--mudo);margin-top:10px}
.adendo{background:#F7F5EF;border-left:3px solid var(--ambar);padding:8px 12px;border-radius:6px;margin-top:8px;font-size:14px}

#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--tinta);color:#F4F2EC;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:calc(100vw - 32px)}
#toast.visivel{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.erro{background:var(--alerta)}
@media (max-width:820px){#toast{bottom:88px}}

dialog{border:0;border-radius:18px;padding:0;max-width:min(560px,calc(100vw - 24px));width:100%;box-shadow:0 20px 60px rgba(20,36,32,.25)}
dialog::backdrop{background:rgba(20,36,32,.45)}
#modal-conteudo{padding:22px}

/* Login */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.auth .cartao{max-width:440px;width:100%;padding:28px}
.auth .marca{color:var(--tinta);padding:0 0 16px}

/* Laudo para impressão */
.laudo-folha{background:#fff;border:1px solid var(--linha);border-radius:8px;padding:48px clamp(20px,5vw,56px);max-width:820px;margin:0 auto;font-size:15px}
.laudo-folha h1{font-size:22px;margin-bottom:4px}
.laudo-folha .cab{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--tinta);padding-bottom:14px;margin-bottom:18px}
.laudo-folha section{margin-top:18px}
.laudo-folha h2{font-size:15px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.laudo-folha .assina{margin-top:64px;text-align:center}
.laudo-folha .assina .traco{border-top:1px solid var(--tinta);width:280px;margin:0 auto 6px}
@media print{
  body{background:#fff}
  .lateral,.barra-inferior,.nao-imprimir,#toast{display:none!important}
  .conteudo{padding:0;max-width:none}
  .laudo-folha{border:0;padding:0;max-width:none}
}

/* ---------- Modal largo ---------- */
dialog.largo{max-width:min(1000px,calc(100vw - 24px))}
.erro-texto{color:var(--alerta)}

/* ---------- Agenda em grade ---------- */
.segmentado{display:inline-flex;border:1px solid var(--linha-forte);border-radius:10px;overflow:hidden;background:#fff}
.segmentado a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;text-decoration:none;color:var(--suave);font-weight:600;font-size:14px;border-right:1px solid var(--linha)}
.segmentado a:last-child{border-right:0}
.segmentado a.ativo{background:var(--tinta);color:#fff}
.ag-grade-box{overflow:auto;max-height:calc(100vh - 230px);min-height:420px;background:#fff;border:1px solid var(--linha);border-radius:16px;-webkit-overflow-scrolling:touch}
.ag-grade{display:grid;grid-template-columns:52px repeat(var(--dias),minmax(0,1fr))}
.ag-grade.semana{min-width:760px}
.ag-canto,.ag-cab{position:sticky;top:0;z-index:4;background:#fff;border-bottom:1px solid var(--linha)}
.ag-canto{left:0;z-index:5}
.ag-cab{border-left:1px solid var(--linha);padding:6px 2px;text-align:center}
.ag-cab-btn{display:inline-flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;border-radius:12px;padding:4px 10px;min-height:44px;cursor:pointer;color:var(--suave);font:inherit}
.ag-cab-btn span{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.ag-cab-btn strong{font:700 20px/1 var(--titulo);color:var(--tinta);min-width:32px;padding:4px 6px;border-radius:999px}
.ag-cab.hoje .ag-cab-btn strong{background:var(--acento);color:#fff}
.ag-cab-btn:hover{background:var(--fundo)}
.ag-horas{position:sticky;left:0;z-index:3;background:#fff}
.ag-hora{font-size:11.5px;color:var(--mudo);text-align:right;padding-right:8px;font-variant-numeric:tabular-nums}
.ag-hora span{position:relative;top:-8px}
.ag-coluna{position:relative;border-left:1px solid var(--linha);cursor:copy;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hora) - 1px),#ECE8DE calc(var(--hora) - 1px),#ECE8DE var(--hora))}
.ag-coluna.hoje{background-color:#F7FBF9}
.ag-evento{position:absolute;z-index:1;display:flex;flex-direction:column;gap:1px;overflow:hidden;text-align:left;border:0;border-left:3px solid var(--acento);border-radius:8px;padding:3px 6px;background:var(--acento-claro);color:var(--acento-escuro);font:500 12px/1.25 var(--fonte);cursor:pointer}
.ag-evento:hover{z-index:2;box-shadow:0 4px 12px -4px rgba(20,36,32,.35)}
.ag-ev-nome{font-weight:600;color:var(--tinta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-ev-hora{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-evento.st-realizado{background:var(--acento);border-left-color:var(--acento-escuro);color:var(--acento-claro)}
.ag-evento.st-realizado .ag-ev-nome{color:#fff}
.ag-evento.st-falta{background:var(--alerta-claro);border-left-color:var(--alerta);color:var(--alerta)}
.ag-evento.st-cancelado{background:#EFEDE7;border-left-color:#B8B0A0;color:var(--mudo);text-decoration:line-through}
.ag-evento.st-cancelado .ag-ev-nome{color:var(--mudo)}
.ag-agora{position:absolute;left:0;right:0;height:2px;background:#C2410C;z-index:3;pointer-events:none}
.ag-agora::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#C2410C}
@media (max-width:820px){.ag-grade-box{max-height:calc(100vh - 290px)}}

/* Mês */
.mes{background:#fff;border:1px solid var(--linha);border-radius:16px;overflow:hidden}
.mes-cab,.mes-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mes-cab{border-bottom:1px solid var(--linha)}
.mes-cab span{padding:8px 4px;text-align:center;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mudo)}
.mes-cel{display:flex;flex-direction:column;gap:3px;min-width:0;min-height:112px;padding:4px;border-right:1px solid var(--linha);border-bottom:1px solid var(--linha)}
.mes-cel:nth-child(7n){border-right:0}
.mes-cel.fora{background:#FAF9F6}
.mes-cel.fora .mes-num{color:#9C968A}
.mes-num{align-self:flex-start;min-width:30px;min-height:30px;border:0;border-radius:999px;background:none;font:600 13px/1 var(--fonte);color:var(--tinta);cursor:pointer}
.mes-num:hover{background:var(--fundo)}
.mes-cel.hoje .mes-num{background:var(--acento);color:#fff}
.mes-ev{border:0;border-radius:6px;padding:3px 6px;background:var(--acento-claro);color:var(--acento-escuro);font:500 12px/1.3 var(--fonte);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.mes-ev.st-realizado{background:var(--acento);color:#fff}
.mes-ev.st-falta{background:var(--alerta-claro);color:var(--alerta)}
.mes-ev.st-cancelado{background:#EFEDE7;color:var(--mudo);text-decoration:line-through}
.mes-mais{border:0;background:none;padding:2px 6px;text-align:left;font-size:12px;color:var(--suave);cursor:pointer}
.mes-qtd{display:none}
@media (max-width:640px){
  .mes-cel{min-height:64px;align-items:center}
  .mes-ev,.mes-mais{display:none}
  .mes-qtd{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;border:0;border-radius:999px;background:var(--acento-claro);color:var(--acento-escuro);font:600 12px/1 var(--fonte);cursor:pointer}
  .mes-num{align-self:center}
}

/* ---------- Documentos ---------- */
.docs-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.doc{margin:0;display:flex;flex-direction:column;min-width:0;border:1px solid var(--linha);border-radius:14px;overflow:hidden;background:#fff}
.doc-thumb{display:block;width:100%;aspect-ratio:4/3;max-width:100%;border:0;padding:0;background:#EFEDE7;overflow:hidden;cursor:zoom-in}
.doc-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.doc-arq{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--suave);font-weight:600;text-decoration:none;cursor:pointer}
.doc figcaption{display:flex;flex-direction:column;gap:6px;min-width:0;padding:10px 12px 12px}
.doc figcaption strong{font-size:14.5px;overflow-wrap:anywhere}
.chip.ativo{background:var(--tinta);border-color:var(--tinta);color:#fff}
a.chip{text-decoration:none;color:var(--tinta);display:inline-flex;align-items:center}

/* ---------- CBDF-1 ---------- */
.ajuda-cbdf summary{cursor:pointer;font-weight:600;font-size:17px}
.ajuda-cbdf ol{margin:12px 0 10px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.partes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.parte{position:relative;display:block}
.parte input{position:absolute;opacity:0;pointer-events:none}
.parte>span{display:flex;flex-direction:column;gap:4px;height:100%;padding:10px 12px;border:1px solid var(--linha-forte);border-radius:12px;background:#fff;cursor:pointer}
.parte strong{font-size:14.5px}
.parte small{font-size:13px;line-height:1.35;color:var(--mudo)}
.parte em{font-size:12px;font-style:normal;color:var(--suave)}
.parte input:checked+span{border-color:var(--acento);box-shadow:inset 0 0 0 1px var(--acento);background:var(--acento-suave,#F4FAF7)}
.parte input:focus-visible+span{outline:3px solid var(--ambar);outline-offset:2px}
@media (max-width:560px){.partes{grid-template-columns:minmax(0,1fr)}}
.codigo{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:6px;background:#ECE8DE;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
label.campo.curto{flex:0 1 96px}
label.campo.curto-largo{flex:0 1 170px}

/* ---------- Escalas ---------- */
.grade-escalas{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.grade-escalas .cartao+.cartao{margin-top:0}
.cartao-escala{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;text-align:left;font:inherit}
.cartao-escala:hover{border-color:var(--acento);color:inherit}
.cartao-criar{border-style:dashed;background:transparent;cursor:pointer}

/* CBDF: montar e buscar na lista oficial */
.ok-texto{color:var(--ok);font-weight:600}
.alerta-texto{color:var(--alerta)}
.cbdf-res{max-height:340px;overflow:auto;border:1px solid var(--linha);border-radius:var(--raio);padding:0 10px}
.cbdf-res p{margin:10px 2px}
button.item{width:100%;background:none;border:0;border-bottom:1px solid #EAE6DC;font:inherit;color:inherit;text-align:left;cursor:pointer}
button.item:hover{background:#F7F5EF}
.cbdf-final{background:#F7F5EF;border:1px solid var(--linha);border-radius:var(--raio);padding:14px}
.cbdf-final textarea{min-height:72px}
.item-cbdf > span:first-child{flex:1 1 360px;min-width:0}
.codigo{white-space:nowrap}

/* Contratos */
.texto-contrato{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.55;min-height:320px}
.contrato-folha{line-height:1.6;text-align:justify}
.contrato-folha .contrato-titulo{text-align:center;font-size:19px;margin-bottom:22px}
.contrato-folha h2{font-size:14px;margin:22px 0 6px;text-transform:none;letter-spacing:0}
.contrato-folha p{margin:0 0 10px}
.assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:56px;text-align:center;break-inside:avoid}
.assinaturas .assina{margin-top:0}
.assinaturas .traco{border-top:1px solid var(--tinta);margin:0 auto 6px;width:90%}
.grade-contrato{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.campos-contrato{display:flex;flex-wrap:wrap;gap:6px}
.campos-contrato .btn{font-family:ui-monospace,Menlo,monospace;font-size:12px}
@media (max-width:900px){.grade-contrato{grid-template-columns:1fr}.assinaturas{grid-template-columns:1fr;gap:48px}}
#cbdf-quals .form{display:grid;grid-template-columns:1fr 1fr;gap:12px}#cbdf-quals .campo{min-width:0}@media (max-width:700px){#cbdf-quals .form{grid-template-columns:1fr}}
.pilha > .campo{flex:0 0 auto}

/* Administração */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kpis-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{display:flex;flex-direction:column;gap:2px}
.kpi-v{font-family:var(--titulo);font-size:32px;font-weight:700;line-height:1.1}
.kpi-v.pequeno-v{font-size:22px}
.barras-semana{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:18px}
.bs{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;min-width:0}
.bs-b{width:100%;max-width:28px;background:var(--acento);border-radius:4px 4px 0 0;min-height:2px}
.bs-n{font-size:12px;font-weight:600}
.bs-d{font-size:11px;color:var(--mudo)}
.uso{display:flex;flex-direction:column;gap:6px}
.uso-trilho{height:10px;background:#EAE6DC;border-radius:99px;overflow:hidden}
.uso-barra{height:100%;background:var(--acento);border-radius:99px}
.uso-barra.alto{background:var(--ambar)}
.busca-adm{border:1px solid var(--linha-forte);border-radius:10px;padding:8px 12px;font:inherit;min-width:0;width:260px;max-width:100%}
@media (max-width:900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.bs-d{font-size:9px}}
.kpis .cartao+.cartao,.grade > .cartao+.cartao{margin-top:0}

/* Aparência */
.marca-logo{height:34px;width:auto;max-width:110px;object-fit:contain;border-radius:8px;background:#fff;padding:2px;flex:0 0 auto}
.lateral .marca span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lateral .marca{color:var(--menu-forte,#F4F2EC)}
.avatar{border-radius:50%;object-fit:cover;flex:0 0 auto;display:inline-block;background:#EAE6DC}
.avatar-ini{display:inline-flex;align-items:center;justify-content:center;background:var(--acento-claro);color:var(--acento-escuro);font-weight:700;font-family:var(--titulo)}
.topo h1{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.foto-pac{position:relative;border:0;padding:0;background:none;cursor:pointer;border-radius:50%;line-height:0}
.foto-pac-mais{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:50%;background:var(--acento);color:#fff;font:600 14px/22px var(--fonte);text-align:center;border:2px solid var(--fundo)}
.img-perfil{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.img-prev{width:96px;height:96px;border:1px dashed var(--linha-forte);border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden;flex:0 0 auto}
.img-prev img{max-width:100%;max-height:100%;object-fit:contain}
.foto-prev{border:0;background:none}
.cores{display:flex;flex-wrap:wrap;gap:10px}
.cor{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;width:64px;text-align:center}
.cor input{position:absolute;opacity:0;pointer-events:none}
.cor > span{width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 2px var(--fundo),0 0 0 3px var(--linha-forte);display:block;position:relative}
.cor input:checked + span{box-shadow:0 0 0 3px var(--fundo),0 0 0 5px var(--tinta)}
.cor input:focus-visible + span{outline:3px solid var(--ambar);outline-offset:4px}
.cor small{font-size:11.5px;color:var(--mudo);line-height:1.2}
.cor-outra{background:conic-gradient(#e33,#e9e33a,#3e3,#3ee,#33e,#e3e,#e33);overflow:hidden}
.cor-outra input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;pointer-events:auto}
.previa-tema{display:flex;border:1px solid var(--linha);border-radius:12px;overflow:hidden;height:110px;background:var(--fundo)}
.pt-menu{width:90px;background:var(--menu);padding:10px 8px;display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--menu-borda)}
.pt-marca{height:10px;width:50px;border-radius:4px;background:var(--menu-forte);opacity:.8;margin-bottom:4px}
.pt-item{height:14px;border-radius:5px;background:var(--menu-texto);opacity:.25}
.pt-item.ativo{background:var(--menu-ativo);opacity:1}
.pt-corpo{flex:1;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:10px}
.amostra-cor{width:28px;height:28px;border-radius:50%;display:inline-block;flex:0 0 auto}
.doc-marca{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--linha)}
.doc-marca img{max-height:88px;max-width:260px;object-fit:contain}
.doc-marca strong{font-family:var(--titulo);font-size:17px}
html.texto-grande .conteudo,html.texto-grande dialog{zoom:1.12}
@media print{.doc-marca{border-color:#ccc}}

/* Marca Progredi */
.wordmark{font-family:'Sora',var(--titulo);font-weight:600;letter-spacing:-.03em;text-transform:lowercase}
.auth .marca .simbolo{color:var(--acento)}
.marca .simbolo{flex:0 0 auto}

/* Login com Google */
.btn-google{width:100%;background:#fff;border-color:#C9C3B5;color:#1F1F1F;gap:10px}
.btn-google:hover{border-color:#12312E;color:#1F1F1F;background:#FAFAF8}
.ou{display:flex;align-items:center;gap:12px;color:var(--mudo);font-size:13px;margin:14px 0 4px}
.ou::before,.ou::after{content:"";flex:1;height:1px;background:var(--linha)}

.aviso-versao{background:var(--alerta-claro);border:1px solid #F3C9A8;color:var(--tinta);border-radius:12px;padding:12px 16px;margin:0 0 16px;font-size:15px}
.aviso-versao.info{background:var(--acento-suave,#EEF7F5);border-color:var(--acento-claro)}

/* Ditado por voz */
.voz{border:1px solid var(--linha);background:var(--acento-suave,#EEF7F5);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.voz.gravando{border-color:#E86A6A;background:#FFF5F3}
.voz #voz-btn svg{flex:0 0 auto}
.voz.gravando #voz-btn{background:#B42318;border-color:#B42318}
.voz-dica{flex:1 1 280px;min-width:0}
.ponto-rec{width:10px;height:10px;border-radius:50%;background:#fff;animation:pulsar 1s ease-in-out infinite}
@keyframes pulsar{50%{opacity:.3}}
.voz .chip[aria-pressed=true]{background:var(--tinta);border-color:var(--tinta);color:#fff}
.rot-voz{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--linha-forte);background:#fff;color:var(--suave);cursor:pointer;flex:0 0 auto}
.mic:hover{border-color:var(--acento);color:var(--acento)}
.mic.ativo{background:#B42318;border-color:#B42318;color:#fff}
textarea.ditando{border-color:#E86A6A!important;box-shadow:0 0 0 3px #FDE2DE}
@media (prefers-reduced-motion:reduce){.ponto-rec{animation:none}}

/* Exercícios domiciliares */
.ex-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.ex-card{border:1px solid var(--linha);border-radius:14px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:10px}
.ex-card h3{font-size:16px;margin:0}
.ex-midia{border-radius:10px;overflow:hidden;background:#111;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.ex-midia img{width:100%;height:100%;object-fit:contain;background:#fff}
.ex-midia video,.ex-midia iframe{width:100%;height:100%;border:0;display:block}
.ex-midia.ex-sem{background:#F2EFE8;color:var(--mudo);font-size:13px}
.ex-passos{padding-left:20px}.ex-passos li{margin:4px 0}
.ex-lista-prog{display:flex;flex-direction:column;gap:10px}
.ex-item{display:grid;grid-template-columns:28px 160px minmax(0,1fr);gap:12px;align-items:center;border-bottom:1px solid #EAE6DC;padding-bottom:10px}
.ex-num{width:28px;height:28px;border-radius:50%;background:var(--acento-claro);color:var(--acento-escuro);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.adesao{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;margin:8px 0 4px;max-width:560px}
.ad-dia{aspect-ratio:1;border-radius:6px;background:#EAE6DC;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px}
.ad-dia small{font-size:10px;color:var(--mudo)}
.ad-dia.n1{background:#C9E5E0}.ad-dia.n2{background:#7FC1B6}.ad-dia.n3{background:var(--acento)}
.ad-dia.n2 small,.ad-dia.n3 small{color:#fff}
.pr-item{border:1px solid var(--linha);border-radius:14px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:10px}
.pr-item-corpo{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}
.pk-lista{max-height:52vh;overflow:auto;border:1px solid var(--linha);border-radius:12px;padding:0 10px}
.pk-item{cursor:pointer}
.pk-item input{width:20px;height:20px;flex:0 0 auto}
.grade-midia{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.opcao-midia{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;font:inherit;color:inherit;margin:0!important}
.opcao-midia:hover{border-color:var(--acento)}
.envio-grade{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:16px;align-items:start}
.qr{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.qr svg{width:160px;height:160px}
.prog-folha .cab{align-items:flex-start}
.qr-folha{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--mudo)}
.qr-folha svg{width:96px;height:96px}
.prog-ex{border-top:1px solid var(--linha);padding-top:12px;margin-top:14px;break-inside:avoid}
.prog-ex-cab{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.prog-ex h2{text-transform:none;letter-spacing:0;font-size:16px;margin:0}
.prog-dose{font-weight:600;color:var(--acento-escuro)}
.prog-ex-corpo{display:flex;gap:14px;align-items:flex-start}
.prog-ex-corpo img{width:160px;border-radius:8px;flex:0 0 auto}
.prog-ex ol{margin:6px 0;padding-left:20px}
@media (max-width:700px){.ex-item{grid-template-columns:28px minmax(0,1fr)}.ex-item .ex-midia{grid-column:1 / -1;order:3}.pr-item-corpo{grid-template-columns:1fr}.envio-grade{grid-template-columns:1fr}.grade-midia{grid-template-columns:1fr}.adesao{gap:3px}}

/* Assinatura */
.faixa-assinatura{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--acento-claro);color:var(--acento-escuro);border-radius:var(--raio);padding:10px 14px;margin-bottom:16px;font-size:15px}
.faixa-assinatura.alerta{background:var(--alerta-claro);color:var(--alerta)}
.faixa-assinatura .btn{flex:0 0 auto}
.planos-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.plano-op{position:relative;display:block;cursor:pointer}
.plano-op input{position:absolute;opacity:0;pointer-events:none}
.plano-op>span{display:flex;flex-direction:column;gap:4px;background:var(--superficie);border:2px solid var(--linha);border-radius:16px;padding:16px 18px;height:100%}
.plano-op input:checked+span{border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-claro)}
.plano-op input:focus-visible+span{outline:3px solid var(--ambar);outline-offset:2px}
.plano-op strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:16px}
.plano-op em{font-style:normal}
.plano-preco{font-family:var(--titulo);font-size:30px;letter-spacing:-.02em;line-height:1.1}
.plano-op small{color:var(--mudo);font-size:13.5px}
.incluso{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:6px 18px}
.incluso li{position:relative;padding-left:24px;font-size:15px}
.incluso li::before{content:'';position:absolute;left:2px;top:6px;width:12px;height:7px;border-left:2.5px solid var(--acento);border-bottom:2.5px solid var(--acento);transform:rotate(-45deg)}

.estado-erro{max-width:520px;margin:18vh auto 0;padding:24px;text-align:center;display:flex;flex-direction:column;gap:14px}
.estado-erro p{color:var(--mudo)}

/* Instalar app */
.lateral .instalar-nav{display:flex;align-items:center;gap:8px;margin:auto 0 6px;padding:9px 10px;border-radius:10px;border:1px dashed var(--menu-mudo,#93A39D);background:transparent;color:var(--menu-texto,#E8EFEC);font:inherit;font-size:13.5px;cursor:pointer;text-align:left}
.lateral .instalar-nav:hover{background:var(--menu-hover,#1F332E)}
.lateral .instalar-nav + .rodape-nav{margin-top:0}
.instalar-login{text-align:center;margin-top:18px;font-size:14.5px}
.instalar-login a{display:inline-flex;align-items:center;gap:6px;color:var(--acento-escuro,#0A504B)}
.passo-instalar{border:1px solid var(--linha);border-radius:14px;padding:14px 16px;background:var(--superficie,#fff)}
.passo-instalar.atual{border:2px solid var(--acento)}
.passo-instalar h3{font-size:16px;margin:0 0 6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.passo-instalar p{margin:0 0 4px}
.aviso-ok{margin:0;background:var(--acento-claro);color:var(--acento-escuro);border-radius:12px;padding:10px 14px}
