.lg-arte{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
/* Personalização da Vitrine: fundo único + zoom/posição independente por dispositivo + overlay */
.lg-arte-bg{position:absolute;inset:0;z-index:0;
  background-image:var(--lg-fundo);
  background-size:cover;
  background-position:var(--lg-x-d,50%) var(--lg-y-d,30%);
  background-repeat:no-repeat;
  opacity:calc(1 - var(--lg-transparencia,0));
  transform:scale(var(--lg-zoom-d,1));
  transform-origin:var(--lg-x-d,50%) var(--lg-y-d,30%)}
.lg-arte-overlay{position:absolute;inset:0;background:#000;z-index:1;opacity:var(--lg-overlay,0.4)}
@media (max-width:768px){
  .lg-arte-bg{
    background-size:cover;
    background-position:var(--lg-x-m,50%) var(--lg-y-m,50%);
    transform:scale(var(--lg-zoom-m,1));
    transform-origin:var(--lg-x-m,50%) var(--lg-y-m,50%)}
}
/* Editor visual da vitrine */
.vt-editor-wrap{position:relative;border-radius:var(--r-lg);overflow:hidden;margin-bottom:8px}
.vt-preview{position:relative;width:100%;border-radius:var(--r-lg);overflow:hidden;background:var(--bg2);margin-bottom:8px}
.vt-preview-16-9{aspect-ratio:16/9}
.vt-preview-9-16{aspect-ratio:9/16;max-width:220px;margin:0 auto}
.vt-preview .lg-arte-bg,.vt-preview .lg-arte-overlay{position:absolute;inset:0}
.vt-upload-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer}
.vt-drag-area{cursor:grab;user-select:none;-webkit-user-select:none}
.vt-controls{display:grid;gap:6px;margin-top:8px}
.vt-controls label{font-size:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}
.vt-controls input[type=range]{width:100%}
.lg-glow{position:absolute;top:-24%;left:50%;transform:translateX(-50%);
  width:min(820px,130vw);height:min(820px,130vw);border-radius:50%;
  background:radial-gradient(circle,var(--ac-soft),transparent 62%);animation:lgPulse 8s ease-in-out infinite}
.lg-glow2{top:auto;bottom:-30%;left:15%;width:min(560px,90vw);height:min(560px,90vw);
  background:radial-gradient(circle,rgba(120,140,255,.12),transparent 62%);animation-delay:-3s}
@keyframes lgPulse{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}

/* ============ ENTRAR — feed de boas-vindas ============ */
.lg{position:relative;min-height:100svh;overflow-x:hidden;overflow-y:auto;
  background:radial-gradient(1200px 700px at 50% -10%, var(--ac-soft), transparent 60%), var(--bg,var(--sf))}
.lg-arte{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.lg-glow{position:absolute;top:-24%;left:50%;transform:translateX(-50%);
  width:min(820px,130vw);height:min(820px,130vw);border-radius:50%;
  background:radial-gradient(circle,var(--ac-soft),transparent 62%);animation:lgPulse 8s ease-in-out infinite}
.lg-glow2{top:auto;bottom:-30%;left:15%;width:min(560px,90vw);height:min(560px,90vw);
  background:radial-gradient(circle,rgba(120,140,255,.12),transparent 62%);animation-delay:-3s}
@keyframes lgPulse{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}
.lg-ecg{position:absolute;top:38%;left:0;width:100%;height:200px;opacity:.08}
.lg-ecg path{fill:none;stroke:var(--ac);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:2600;stroke-dashoffset:2600;animation:lgTrace 3.4s var(--ease) .3s forwards}
@keyframes lgTrace{to{stroke-dashoffset:0}}

.lg-wrap{position:relative;z-index:2;max-width:980px;margin:0 auto;
  padding:clamp(18px,4vw,40px) clamp(16px,4vw,26px) 44px;
  display:flex;flex-direction:column;gap:clamp(26px,4vw,44px)}

/* entradas animadas */
.lg-pitch,.lg-card,.lg-sec{opacity:0;transform:translateY(22px);
  transition:opacity .6s var(--ease),transform .6s var(--ease)}
.lg-pitch.vis,.lg-card.vis,.lg-sec.vis{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.lg-pitch,.lg-card,.lg-sec{opacity:1;transform:none}
  .lg-glow,.lg-ecg path{animation:none}}

/* HERO */
.lg-hero{display:grid;grid-template-columns:1fr minmax(320px,380px);gap:clamp(20px,3vw,40px);align-items:center;
  padding-top:clamp(6px,2vw,18px);min-height:auto}
.lg-pitch{text-align:left}
.lg-logo{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;
  background:var(--sf2);border:1px solid var(--line);overflow:hidden;color:var(--ac);
  box-shadow:0 14px 40px var(--ac-soft);margin-bottom:18px;animation:lgFloat 5s ease-in-out infinite}
.lg-logo img{width:100%;height:100%;object-fit:cover}
.lg-logo svg{width:34px;height:34px}
@keyframes lgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.lg-pitch h1{font-size:clamp(28px,5.5vw,44px);line-height:1.05;letter-spacing:-.02em;margin-bottom:10px}
.lg-slogan{color:var(--ink3);font-size:clamp(15px,2.4vw,18px);line-height:1.5;max-width:34ch}
.lg-local{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;color:var(--ink4)}
.lg-local svg{width:15px;height:15px;stroke:currentColor;fill:none}
.lg-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.lg-cta .btn svg{width:18px;height:18px}

/* CARD de entrar */
.lg-card{background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(20px,3vw,30px);box-shadow:0 20px 60px rgba(0,0,0,.14);scroll-margin-top:20px}
.lg-card-cab{margin-bottom:18px}
.lg-card-cab h2{font-size:22px;letter-spacing:-.01em}
.lg-card-cab p{color:var(--ink3);font-size:14px;margin-top:4px}
.lg-senha-cx{position:relative}
.lg-senha-cx .inp{padding-right:48px}
.lg-senha-cx .icb{position:absolute;right:4px;top:50%;transform:translateY(-50%)}
.lg-card-nota{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;
  border-radius:var(--r);background:var(--ac-soft);font-size:13px;color:var(--ink2,var(--ink3))}
.lg-card-nota svg{width:18px;height:18px;stroke:var(--ac);fill:none;flex:none;margin-top:1px}
.lg-card-nota b{color:var(--ink)}
.lg-card-flash{animation:lgFlash 1s var(--ease)}
@keyframes lgFlash{0%{box-shadow:0 0 0 0 var(--ac-line),0 20px 60px rgba(0,0,0,.14)}
  40%{box-shadow:0 0 0 6px var(--ac-soft),0 20px 60px rgba(0,0,0,.14)}
  100%{box-shadow:0 20px 60px rgba(0,0,0,.14)}}

/* seções */
.lg-sec-cab{text-align:center;margin-bottom:20px}
.lg-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--ac);
  background:var(--ac-soft);padding:6px 12px;border-radius:var(--r-full)}
.lg-badge svg{width:14px;height:14px;stroke:currentColor;fill:currentColor}
.lg-sec-cab h3{font-size:clamp(19px,3.2vw,26px);letter-spacing:-.01em;margin-top:12px}

/* números */
.lg-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.lg-num{background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px 14px;text-align:center;transition:transform .2s var(--ease),border-color .2s}
.lg-num:hover{transform:translateY(-3px);border-color:var(--ac-line)}
.lg-num-ic{width:38px;height:38px;margin:0 auto 8px;border-radius:12px;display:grid;place-items:center;
  background:var(--ac-soft);color:var(--ac)}
.lg-num-ic svg{width:19px;height:19px;stroke:currentColor;fill:none}
.lg-num-v{display:block;font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1;
  font-variant-numeric:tabular-nums}
.lg-num-r{display:block;font-size:12.5px;color:var(--ink4);margin-top:5px}

/* desafios */
.lg-desafios{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.lg-desafio{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--sf2);text-decoration:none;color:inherit;
  transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}
.lg-desafio:hover{transform:translateY(-3px);border-color:var(--ac-line);box-shadow:0 12px 30px rgba(0,0,0,.12)}
.lg-desafio-capa{flex:none;width:56px;height:56px;border-radius:14px;background-size:cover;background-position:center;
  background-color:var(--sf3)}
.lg-desafio-capa-v{display:grid;place-items:center;color:var(--ac);background:var(--ac-soft)}
.lg-desafio-capa-v svg{width:26px;height:26px;stroke:currentColor;fill:currentColor}
.lg-desafio-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.lg-desafio-tx b{font-size:15px}
.lg-desafio-d{font-size:12.5px;color:var(--ink4);overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.lg-desafio-m{font-size:11.5px;color:var(--ac);font-weight:600}
.lg-desafio-go{flex:none;color:var(--ink4)}
.lg-desafio-go svg{width:18px;height:18px;stroke:currentColor;fill:none}

/* depoimentos — carrossel */
.lg-depos{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 2px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.lg-depos::-webkit-scrollbar{display:none}
.lg-depo{flex:0 0 300px;max-width:88vw;scroll-snap-align:center;margin:0;
  background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-md);padding:20px}
.lg-depo-estrelas{color:var(--warn);letter-spacing:2px;font-size:14px;margin-bottom:10px}
.lg-depo blockquote{margin:0 0 16px;font-size:15px;line-height:1.55;color:var(--ink)}
.lg-depo figcaption{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--ink3)}
.lg-depo-f{width:40px;height:40px;border-radius:50%;object-fit:cover}
.lg-depo-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;overflow:hidden;
  background:var(--sf3);font-size:14px;font-weight:700;color:var(--ink3)}
.lg-depo-av svg{width:100%;height:100%}
.lg-depos-pts{display:flex;justify-content:center;gap:6px;margin-top:6px}
.lg-depos-pts i{width:7px;height:7px;border-radius:50%;background:var(--line2);transition:all .2s}
.lg-depos-pts i.on{background:var(--ac);width:20px;border-radius:4px}

/* como é ser aluno */
.lg-feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.lg-feat{background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;
  transition:transform .2s var(--ease),border-color .2s}
.lg-feat:hover{transform:translateY(-3px);border-color:var(--ac-line)}
.lg-feat-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:12px;
  background:var(--ac-soft);color:var(--ac)}
.lg-feat-ic svg{width:21px;height:21px;stroke:currentColor;fill:none}
.lg-feat b{display:block;font-size:15px;margin-bottom:4px}
.lg-feat span{font-size:13px;color:var(--ink4);line-height:1.45}
.lg-feats-cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}

.lg-pe{text-align:center;font-size:12px;color:var(--ink4);padding-top:6px}
.lg-pe b{color:var(--ink3)}

@media(max-width:760px){
  .lg-hero{grid-template-columns:1fr;gap:26px}
  .lg-pitch{text-align:center}
  .lg-logo{margin-left:auto;margin-right:auto}
  .lg-slogan{margin-left:auto;margin-right:auto}
  .lg-cta{justify-content:center}
  .lg-slogan{max-width:none}
}

/* ===== PORTA 2 · login padrão (centralizado, sem marca de personal) ===== */
.lg-entrar{display:flex;align-items:center;justify-content:center;padding:clamp(20px,6vw,48px) 18px}
.lg-entrar-cx{position:relative;z-index:2;width:100%;max-width:400px;
  background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(24px,4vw,34px);box-shadow:0 24px 60px rgba(0,0,0,.16);
  animation:lgUp .5s var(--ease) both}
@keyframes lgUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.lg-entrar-top{text-align:center;margin-bottom:22px}
.lg-logo-plat{margin:0 auto 14px}
.lg-entrar-top h1{font-size:26px;margin-bottom:4px}
.lg-entrar-top p{color:var(--ink3);font-size:14px}
.lg-entrar-nota{margin-top:16px;text-align:center;font-size:13px;color:var(--ink4);line-height:1.5}
.lg-entrar-nota b{color:var(--ink3)}
.lg-entrar .lg-pe{margin-top:18px}

/* ============ PEÇAS COMPARTILHADAS ============ */
.pend-ic{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none}
.pend-ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hora{font-size:13px;font-weight:600;color:var(--ink3);width:44px;flex:none;font-variant-numeric:tabular-nums}
.aviso-cx{display:flex;gap:12px;align-items:flex-start;background:var(--warn-soft);
  border:1px solid rgba(245,158,11,.24);border-radius:var(--r-md);padding:14px 16px;font-size:14px}
.aviso-cx>svg{width:19px;height:19px;stroke:var(--warn);fill:none;stroke-width:2;flex:none;margin-top:2px}
.dl{display:grid;grid-template-columns:1fr;gap:0}
.dl>div{display:flex;justify-content:space-between;gap:var(--s4);padding:9px 0;border-bottom:1px solid var(--line)}
.dl>div:last-child{border:0}
.dl span{font-size:13.5px;color:var(--ink3)}
.dl b{font-size:14px;font-weight:600;text-align:right}
.qa{padding:11px 0;border-bottom:1px solid var(--line)}
.qa:last-child{border:0}
.qa .q{font-size:13px;color:var(--ink3);margin-bottom:3px}
.qa .r{font-size:15px;font-weight:500}
.ficha-topo{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap}
.fotos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.foto-vazia{aspect-ratio:3/4;background:var(--sf3);border:1px dashed var(--line2);border-radius:var(--r);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink4);font-size:12.5px}
.foto-vazia svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6}
.ex-play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.28)}
.ex-play svg{width:18px;height:18px;stroke:#fff;fill:#fff}
.ex-grande{aspect-ratio:9/12;max-height:250px;margin:0 auto var(--s4);background:var(--sf3);
  border-radius:var(--r-md);display:grid;place-items:center;position:relative;width:min(200px,60%)}
.ex-grande>svg{width:44px;height:44px;stroke:var(--ink4);fill:none;stroke-width:1.4}
.passos{padding-left:0;counter-reset:p;list-style:none;display:flex;flex-direction:column;gap:2px}
.passos li{counter-increment:p;position:relative;padding:9px 12px 9px 40px;margin:0;font-size:14.5px;
  line-height:1.55;color:var(--ink2);border-radius:var(--r);background:var(--sf3);
  border:1px solid transparent;transition:border-color .15s}
.passos li:hover{border-color:var(--line)}
.passos li::before{content:counter(p);position:absolute;left:10px;top:9px;width:21px;height:21px;border-radius:50%;
  background:var(--ac-soft);border:1px solid var(--ac-line);color:var(--ac);font-size:11.5px;font-weight:700;
  display:grid;place-items:center}
.msg-txt{background:var(--sf3);border-radius:var(--r);padding:12px 14px;font-size:14px;color:var(--ink2);line-height:1.6}

/* ============ MODELOS DE TREINO ============ */
.div-tag{width:28px;height:28px;border-radius:var(--r-sm);background:var(--ac);color:var(--ac-ink);
  display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.mod-ex{padding:var(--s3) var(--s4)}
.mod-li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink2);padding:4px 0}
.mod-li b{margin-left:auto;font-size:12.5px;color:var(--ink3);font-weight:600}
.mod-pt{width:5px;height:5px;border-radius:50%;background:var(--ac);flex:none}
.mod-pe{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-top:1px solid var(--line)}
.mod-pe .btn{margin-left:auto}

/* ============ BIBLIOTECA ============ */
.bib{display:flex;flex-direction:column}
.bib-i{display:flex;align-items:center;gap:11px;padding:9px var(--s4);cursor:pointer;
  border-bottom:1px solid var(--line);transition:background var(--t) var(--ease)}
.bib-i:hover{background:var(--sf3)}
.bib-i .tx{flex:1;min-width:0}
.bib-i .n{font-size:14px;font-weight:500}
.bib-i .s{font-size:12px;color:var(--ink4)}
.bib-add{width:28px;height:28px;border-radius:var(--r-full);background:var(--ac-soft);color:var(--ac);
  display:grid;place-items:center;flex:none;transition:background var(--t-fast)}
.bib-add svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4}
.bib-i.dentro{background:var(--ac-soft)}
.bib-i.dentro .bib-add{background:var(--ac);color:var(--ac-ink)}
.bib-i.dentro .n{color:var(--ac)}
html[data-tema="claro"] .bib-i.dentro .n{color:color-mix(in srgb,var(--ac) 62%,#000)}
.grid-ex{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3)}
@media(min-width:700px){.grid-ex{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.grid-ex{grid-template-columns:repeat(5,1fr)}}
.ex-card{padding:0;overflow:hidden}
.ex-card-v{aspect-ratio:4/3;background:var(--sf3);display:grid;place-items:center;position:relative}
.ex-card-v>svg{width:26px;height:26px;stroke:var(--ink4);fill:none;stroke-width:1.5}
.ex-card-t{padding:12px 12px 14px;text-align:center}
.ex-card-t .n{font-size:14px;font-weight:700;line-height:1.28;letter-spacing:-.01em}
.ex-card-t .s{font-size:11px;color:var(--ink3);margin-top:5px;text-transform:uppercase;letter-spacing:.4px}

/* ============ MONTADOR ============ */
.so-cel{display:inline-flex}
.so-pc{display:none}
@media(min-width:1000px){ .so-cel{display:none} .so-pc{display:block} }
.mnt-i{padding:12px var(--s4);border-bottom:1px solid var(--line)}
.mnt-i:last-child{border:0}
.mnt-topo{display:flex;align-items:center;gap:10px}
.mnt-ord{width:22px;height:22px;border-radius:var(--r-full);background:var(--ac-soft);color:var(--ac);
  display:grid;place-items:center;font-size:11.5px;font-weight:700;flex:none}
html[data-tema="claro"] .mnt-ord{color:color-mix(in srgb,var(--ac) 62%,#000)}
.mnt-nome{flex:1;min-width:0;font-size:14.5px;font-weight:600}
.mnt-cps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 8px;padding-left:32px}
.mnt-cps label{font-size:10.5px;color:var(--ink4);font-weight:600;text-transform:uppercase;letter-spacing:.3px;
  display:flex;flex-direction:column;gap:4px}
.inp-mini{width:100%;min-height:38px;padding:7px 9px;font-size:14px;text-align:center;font-weight:600}
.inp-obs{width:calc(100% - 32px);margin-left:32px;min-height:38px;padding:8px 11px;font-size:13px}
.mnt-aco{display:flex;gap:2px;flex:none}
.mnt-aco .icb{width:32px;height:32px}
.mnt-aco .icb svg{width:15px;height:15px}
.mnt-aco .icb[disabled]{opacity:.25;pointer-events:none}
.icb-del:hover svg{stroke:var(--bad)}
@media(min-width:1000px){ .mnt-cps{max-width:360px} }

/* ---- cartão de treino do aluno (ficha) ---- */
.trsel{width:100%;max-width:100%;overflow-x:auto}
.tc-cab{display:flex;align-items:center;gap:10px;padding:12px var(--s4);border-bottom:1px solid var(--line)}
.tc-div{width:30px;height:30px;padding:0;display:grid;place-items:center;font-size:13px;font-weight:800;flex:none;border-radius:var(--r-full)}
.tc-nome{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.tc-nome b{font-size:15px}
.tc-nome span{font-size:11.5px;color:var(--ink3)}
.tc-cab .btn{flex:none}
.tc-lista{display:flex;flex-direction:column}
.tc-ex{display:flex;align-items:center;gap:11px;padding:10px var(--s4);border-bottom:1px solid var(--line)}
.tc-ex:last-child{border:0}
.tc-ord{width:20px;text-align:center;font-size:12px;font-weight:700;color:var(--ink4);flex:none}
.tc-mini{width:46px!important;aspect-ratio:1/1;flex:none;border-radius:var(--r)}
.tc-info{flex:1;min-width:0}
.tc-exn{font-size:14px;font-weight:600}
.tc-exm{font-size:12px;color:var(--ink3);margin-top:2px}
.tc-obs{font-size:12px;color:var(--ink4);margin-top:2px;font-style:italic}
.mnt-aco .icb[disabled]{opacity:.25;pointer-events:none}

/* ============ SELEÇÃO MÚLTIPLA ============ */
.sel-item{cursor:pointer;position:relative}
.sel-item input{position:absolute;opacity:0;pointer-events:none}
.sel-mk{width:24px;height:24px;border-radius:var(--r-full);border:1.5px solid var(--line2);
  display:grid;place-items:center;flex:none;transition:all var(--t) var(--ease)}
.sel-mk svg{width:14px;height:14px;stroke:var(--ac-ink);fill:none;stroke-width:3;opacity:0;transition:opacity var(--t) var(--ease)}
.sel-item input:checked~.sel-mk{background:var(--ac);border-color:transparent}
.sel-item input:checked~.sel-mk svg{opacity:1}
.sel-item:has(input:checked){background:var(--ac-soft)}

/* ============ AGENDA ============ */
.agenda{display:flex;flex-direction:column;gap:var(--s3)}
.ag-dia{background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.ag-cab{display:flex;align-items:center;gap:var(--s3);padding:12px var(--s4);border-bottom:1px solid var(--line)}
.ag-cab>div:first-child{flex:1;text-transform:capitalize}
.ag-livre{padding:18px var(--s4);font-size:13.5px;color:var(--ink4)}

/* ============ CONFIGURAÇÕES ============ */
.paleta{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}
.cor{aspect-ratio:1;border-radius:var(--r-sm);border:2px solid transparent;cursor:pointer;
  transition:transform var(--t-fast) var(--ease)}
.cor:hover{transform:scale(1.09)}
.cor.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--sf)}
.cor-livre{width:52px;height:44px;border:1px solid var(--line);border-radius:var(--r);
  background:transparent;padding:3px;cursor:pointer;flex:none}
.up-cx{flex:1;min-width:120px;aspect-ratio:3/2;background:var(--sf3);border:1px dashed var(--line2);
  border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;color:var(--ink4);font-size:12.5px;cursor:pointer;transition:border-color var(--t) var(--ease)}
.up-cx:hover{border-color:var(--ac)}
.up-cx>svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6}
/* ---- ajuste de enquadramento da logo e da foto ----
   O palco é o recorte: o que está dentro do quadrado é exatamente o que será
   gravado. Fundo xadrez discreto para a transparência da logo ficar visível. */
.aj-palco{width:260px;height:260px;margin:0 auto;border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--line2);position:relative;
  background:var(--sf3) repeating-conic-gradient(var(--sf2) 0% 25%, transparent 0% 50%) 50%/16px 16px}
.aj-palco canvas{display:block;cursor:grab;touch-action:none}
.aj-palco canvas:active{cursor:grabbing}
.aj-zoom{display:flex;align-items:center;gap:10px;max-width:260px;margin:12px auto 0;color:var(--ink4)}
.aj-zoom>svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none}
.inp-range{flex:1;accent-color:var(--ac);height:22px;cursor:pointer}
.aj-previas{display:flex;gap:18px;justify-content:center;margin-top:16px}
.aj-pv{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11.5px;color:var(--ink4)}
.aj-pv canvas{width:64px;height:64px;background:var(--sf3);border:1px solid var(--line2)}
/* o mesmo raio que o Android usa nos ícones da tela inicial */
.aj-pv-app{border-radius:22%}
.aj-pv-topo{border-radius:50%}
.aj-acoes{display:flex;gap:8px;margin-top:18px}
.aj-acoes .btn{flex:1;justify-content:center}

.previa{position:sticky;top:calc(var(--topo-h) + var(--s4))}
.pv{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.pv-topo{display:flex;align-items:center;gap:9px;padding:11px 13px;border-bottom:1px solid var(--line);font-size:13.5px}
.pv-corpo{padding:13px;display:flex;flex-direction:column;gap:11px}
.pv-mt{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--ink3)}
.pv-mt b{font-size:24px;color:var(--ink);font-weight:700;letter-spacing:-.03em}
.pv-li{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink2)}

/* ============ APP DO ALUNO ============ */
.al-ord{width:26px;height:26px;border-radius:var(--r-full);background:var(--ac-soft);color:var(--ac);
  display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
html[data-tema="claro"] .al-ord{color:color-mix(in srgb,var(--ac) 60%,#000)}
.al-ult{display:flex;gap:11px;align-items:center;background:var(--ac-soft);border:1px solid var(--ac-line);
  border-radius:var(--r);padding:12px 14px}
.al-ult>svg{width:18px;height:18px;stroke:var(--ac);fill:none;stroke-width:2.2;flex:none}
.al-ult b{font-size:12.5px;color:var(--ink3);font-weight:500;display:block}
.al-ex{align-items:flex-start}

/* ============ MENSAGENS ============ */
.modelos{display:flex;flex-direction:column;gap:7px}
.modelo{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:var(--r);
  border:1px solid var(--line);background:var(--sf3);cursor:pointer;text-align:left;width:100%;
  transition:border-color var(--t) var(--ease),background var(--t) var(--ease),transform var(--t-fast) var(--ease)}
.modelo:hover{border-color:var(--line2)}
.modelo:active{transform:scale(.99)}
.modelo.on{border-color:var(--ac);background:var(--ac-soft)}
.modelo-ic{width:34px;height:34px;border-radius:var(--r-sm);background:var(--sf);color:var(--ink3);
  display:grid;place-items:center;flex:none}
.modelo.on .modelo-ic{background:var(--ac);color:var(--ac-ink)}
.modelo-ic svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.modelo .tx{flex:1;min-width:0}
.modelo b{display:block;font-size:14px;font-weight:600}
.modelo span{font-size:12px;color:var(--ink4)}
.zap-bolha{background:#1F5C3D;color:#EAF7EF;border-radius:14px 14px 14px 4px;padding:12px 15px;
  font-size:14.5px;line-height:1.55;white-space:pre-wrap;position:relative;max-width:100%}
html[data-tema="claro"] .zap-bolha{background:#DCF8C6;color:#111B21}
.previa-vazia{background:var(--sf3);border:1px dashed var(--line2);border-radius:var(--r);
  padding:26px 18px;text-align:center;font-size:13.5px;color:var(--ink4)}
.fila-ok{width:64px;height:64px;border-radius:50%;background:var(--ok-soft);color:var(--ok);
  display:grid;place-items:center;margin:0 auto}
.fila-ok svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* chip que o professor pode remover */
.chip-ed{display:inline-flex;align-items:center;gap:6px;padding-right:6px;cursor:default}
.chip-x{width:20px;height:20px;border-radius:50%;border:0;background:transparent;color:var(--ink4);
  display:grid;place-items:center;cursor:pointer;flex:none;transition:all var(--t) var(--ease)}
.chip-x:hover{background:var(--bad-soft);color:var(--bad)}
.chip-x svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:3}

/* ============ AVALIAÇÃO ============ */
.grid-mini{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
@media(min-width:620px){.grid-mini{grid-template-columns:repeat(3,1fr)}}
.f-mini label{display:block;font-size:12px;color:var(--ink3);margin-bottom:5px;font-weight:500}
.inp-uni{position:relative}
.inp-uni .inp{padding-right:38px;min-height:42px;font-size:15px}
.inp-uni span{position:absolute;right:12px;top:50%;transform:translateY(-50%);
  font-size:11.5px;color:var(--ink4);pointer-events:none}
.inp[type=number]::-webkit-outer-spin-button,.inp[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.inp[type=number]{-moz-appearance:textfield}
.res{display:flex;flex-direction:column;gap:2px}
.res-i{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.res-i:last-child{border:0}
.res-l{flex:1;font-size:13.5px;color:var(--ink3)}
.res-v{font-size:21px;font-weight:700;letter-spacing:-.02em}
.res-v span{font-size:12px;font-weight:500;color:var(--ink4);margin-left:2px}
.comp{display:flex;flex-direction:column;gap:2px}
.comp-i{display:flex;justify-content:space-between;align-items:center;padding:8px 0;
  border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink3)}
.comp-i:last-child{border:0}
.comp-i b{font-size:14.5px;font-weight:700}
.fotos-3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.foto-g{display:grid;place-items:center}
.foto-g svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6}

/* ============ ANAMNESE ============ */
.an-prog{max-width:520px}
.an-p{padding:14px 0;border-bottom:1px solid var(--line)}
.an-p:last-child{border:0;padding-bottom:0}
.an-t{font-size:14.5px;color:var(--ink);margin-bottom:10px;line-height:1.45}
.seg-full{display:flex;width:100%;max-width:340px}
/* flex:1 (base 0) espremia rótulos longos para fora da pílula ("Não repetir"); base auto reparte o
   espaço a partir do conteúdo e min-width:0 mantém a linha dentro do container */
.seg-full button{flex:1 1 auto;min-width:0;padding-left:10px;padding-right:10px}
#ag-rep.seg-full{max-width:420px}
.card-extra{border-color:var(--info-soft);background:linear-gradient(180deg,var(--info-soft),transparent 42%)}
.escala{padding:2px 0}
.esc-top{display:flex;justify-content:space-between;align-items:baseline;font-size:11.5px;color:var(--ink4);margin-bottom:6px}
.esc-top b{font-size:22px;color:var(--ac);font-weight:700}
html[data-tema="claro"] .esc-top b{color:color-mix(in srgb,var(--ac) 66%,#000)}
.escala input[type=range]{width:100%;max-width:420px;height:30px;background:none;appearance:none;cursor:pointer}
.escala input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:6px;background:var(--sf3);border:1px solid var(--line)}
.escala input[type=range]::-webkit-slider-thumb{appearance:none;width:24px;height:24px;border-radius:50%;
  background:var(--ac);margin-top:-10px;border:3px solid var(--bg);cursor:grab}
.escala input[type=range]::-moz-range-track{height:6px;border-radius:6px;background:var(--sf3)}
.escala input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--ac);border:3px solid var(--bg)}

/* semáforo e alertas */
.semaforo{display:flex;gap:14px;align-items:center;border:1px solid var(--c);
  background:color-mix(in srgb,var(--c) 10%,transparent);border-radius:var(--r-md);
  padding:16px 18px;margin-bottom:var(--s5)}
.sem-ic{width:42px;height:42px;border-radius:50%;background:var(--c);color:#fff;
  display:grid;place-items:center;flex:none}
.sem-ic svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sem-t{font-size:16px;font-weight:600}
.sem-x{font-size:13px;color:var(--ink3);margin-top:2px}
.alerta{border-left:3px solid var(--c);padding:2px 0 2px 13px;margin-bottom:13px}
.alerta:last-child{margin:0}
.alerta-t{font-size:14.5px;font-weight:600;margin-bottom:3px}
.alerta-x{font-size:13.5px;color:var(--ink2);line-height:1.55}

/* ============ TREINO DO ALUNO ============ */
.lista-ex{display:flex;flex-direction:column;gap:9px}
.ex-linha{background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  transition:border-color var(--t) var(--ease),opacity var(--t) var(--ease)}
.ex-linha.pronto{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 7%,var(--sf))}
.ex-cab{display:flex;align-items:center;gap:11px;padding:11px 13px;cursor:pointer}
.ex-cab:active{transform:scale(.995)}
.ex-num{width:26px;height:26px;border-radius:50%;background:var(--sf3);color:var(--ink3);flex:none;
  display:grid;place-items:center;font-size:12.5px;font-weight:700}
.ex-linha.pronto .ex-num{background:var(--ok);color:#fff}
.ex-linha.pronto .ex-num svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:3}
.ex-cab .tx{flex:1;min-width:0}
.ex-cab .n{font-size:14.5px;font-weight:600;line-height:1.3}
.ex-cab .s{font-size:12.5px;color:var(--ink3);margin-top:2px}
.ex-cont{font-size:12.5px;font-weight:700;color:var(--ink3);flex:none;
  background:var(--sf3);border-radius:var(--r-full);padding:4px 10px}
.ex-linha.pronto .ex-cont{background:var(--ok-soft);color:var(--ok)}

/* séries */
.series{display:flex;flex-direction:column;gap:8px}
.serie{display:flex;align-items:flex-end;gap:10px;padding:10px;border-radius:var(--r);
  background:var(--sf3);border:1px solid var(--line);transition:all var(--t) var(--ease)}
.serie.feita{background:color-mix(in srgb,var(--ok) 10%,transparent);border-color:rgba(34,197,94,.35)}
.serie-n{width:24px;height:24px;border-radius:50%;background:var(--sf);color:var(--ink3);flex:none;
  display:grid;place-items:center;font-size:12px;font-weight:700;margin-bottom:9px}
.serie-c{flex:1;display:flex;gap:9px;min-width:0}
.serie-c label{flex:1;font-size:11px;color:var(--ink4);display:block}
.serie-c .inp{min-height:40px;margin-top:4px;font-size:15px;text-align:center;padding:8px}
.serie-ok{width:44px;height:44px;flex:none;border-radius:var(--r);border:1px solid var(--line2);
  background:transparent;color:var(--ink4);display:grid;place-items:center;cursor:pointer;
  transition:all var(--t) var(--ease)}
.serie-ok svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.serie-ok:active{transform:scale(.9)}
.serie-ok.on{background:var(--ok);border-color:transparent;color:#fff}

/* cronômetro fixo */
.cron{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:12px 16px calc(14px + env(safe-area-inset-bottom,0));
  background:color-mix(in srgb,var(--sf) 96%,transparent);backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);border-top:1px solid var(--ac-line);
  animation:sobe var(--t) var(--ease) both}
.cron-in{max-width:520px;margin:0 auto;display:flex;align-items:center;gap:11px}
.cron-l{font-size:12px;color:var(--ink3);font-weight:500}
.cron-in b{font-size:30px;font-weight:700;letter-spacing:-.03em;color:var(--ac);flex:1;
  font-variant-numeric:tabular-nums}
html[data-tema="claro"] .cron-in b{color:color-mix(in srgb,var(--ac) 66%,#000)}

/* conclusão */
.borgc{padding:2px 0}
.borgc .w100{width:100%}
.estrelas{display:flex;gap:6px;justify-content:center}
.estrelas button{background:none;border:0;font-size:32px;line-height:1;color:var(--line2);
  cursor:pointer;transition:color var(--t) var(--ease),transform var(--t-fast) var(--ease)}
.estrelas button:active{transform:scale(.88)}
.estrelas button.on{color:var(--warn)}
.resumo-cx{background:var(--sf3);border-radius:var(--r);padding:13px 15px;display:flex;flex-direction:column;gap:9px}
.resumo-cx>div{display:flex;justify-content:space-between;align-items:baseline}
.resumo-cx span{font-size:13px;color:var(--ink3)}
.resumo-cx b{font-size:15px;font-weight:700}
.anilha-cx{background:var(--ac-soft);border:1px solid var(--ac-line);border-radius:var(--r);
  padding:16px;font-size:15px;line-height:1.6;text-align:center}

/* ============ FINANCEIRO ============ */
.pix-cx{background:var(--sf3);border:1px solid var(--line);border-radius:var(--r-md);padding:15px}
.pix-topo{display:flex;justify-content:space-between;gap:14px;margin-bottom:13px}
.pix-topo b{font-size:15px}
.pix-code{font-family:var(--mono);font-size:11px;line-height:1.55;color:var(--ink2);
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px;
  word-break:break-all;max-height:120px;overflow-y:auto}

/* ============ AGENDA ============ */
.ag-hoje{border-color:var(--ac-line)}
.ag-cab .icb{width:32px;height:32px}
.ag-cab .icb svg{width:16px;height:16px}
.ag-livre a{color:var(--ac);text-decoration:underline;text-underline-offset:3px}
html[data-tema="claro"] .ag-livre a{color:color-mix(in srgb,var(--ac) 66%,#000)}

/* ============ IMAGENS DA BIBLIOTECA ============ */
.ex-card-v img,.ex-v img,.ex-grande img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ex-card-v,.ex-v,.ex-grande{position:relative;overflow:hidden}
.ex-card-v img.fb,.ex-v img.fb,.ex-grande img.fb{opacity:0;transition:opacity .2s ease}
body.anima-ex .ex-card-v img.fb,body.anima-ex .ex-v img.fb,body.anima-ex .ex-grande img.fb{opacity:1}
.rev-tag{position:absolute;top:7px;right:7px;background:rgba(245,158,11,.92);color:#241500;
  font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  border-radius:100px;padding:2px 7px;z-index:2}
.more{display:block;margin:var(--s6) auto 0;background:var(--sf);border:1px solid var(--line);
  color:var(--ink2);border-radius:var(--r-full);padding:13px 30px;font-family:var(--sans);
  font-size:14px;cursor:pointer;transition:all var(--t) var(--ease)}
.more:hover{border-color:var(--line2);color:var(--ink)}
.bib-mini{width:44px!important;aspect-ratio:9/16;flex:none}
.mnt-mini{width:50px!important;aspect-ratio:9/16;flex:none}
.ex-mini{width:52px!important;aspect-ratio:9/16;flex:none}

/* ============ TREINO: FEITO APAGA, PENDENTE ACENDE ============ */
.ex-linha{animation:sobe var(--t-slow) var(--ease) both;animation-delay:var(--d,0s)}
.ex-linha.pronto{opacity:.42;filter:saturate(.55)}
.ex-linha.pronto:hover{opacity:.72}
.ex-linha.pronto .ex-p{display:none}
.ex-linha.andando{border-color:var(--ac-line);
  box-shadow:0 0 0 1px var(--ac-soft)}
.ja-fiz{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;
  color:var(--ok);background:var(--ok-soft);border-radius:var(--r-full);padding:4px 9px;flex:none;
  text-transform:uppercase;letter-spacing:.04em}
.ja-fiz svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:3.2}
.marcar-tudo{width:32px;height:32px;border-radius:var(--r-full);flex:none;
  border:1.5px solid var(--line2);background:transparent;color:var(--ink4);
  display:grid;place-items:center;cursor:pointer;transition:all var(--t) var(--ease)}
.marcar-tudo svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:3}
.marcar-tudo:hover{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}
.marcar-tudo:active{transform:scale(.88)}
.mini-barra{height:3px;background:var(--sf3);border-radius:3px;overflow:hidden;max-width:150px}
.mini-barra i{display:block;height:100%;background:var(--ac);transform-origin:left;
  transition:transform var(--t-slow) var(--ease)}

/* ============ FUNDO VIVO ============ */
.fundo-vivo{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fundo-vivo span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.16}
.fundo-vivo span:nth-child(1){width:60vw;height:60vw;max-width:520px;max-height:520px;
  background:var(--ac);top:-18%;left:-14%;animation:flutua1 22s ease-in-out infinite}
.fundo-vivo span:nth-child(2){width:48vw;height:48vw;max-width:420px;max-height:420px;
  background:var(--info);bottom:-14%;right:-12%;animation:flutua2 27s ease-in-out infinite}
.fundo-vivo span:nth-child(3){width:36vw;height:36vw;max-width:320px;max-height:320px;
  background:var(--ac);top:38%;right:-16%;opacity:.09;animation:flutua1 33s ease-in-out infinite reverse}
@keyframes flutua1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,8%) scale(1.12)}}
@keyframes flutua2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7%,-6%) scale(1.1)}}
.casca{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.fundo-vivo span{animation:none}}

/* ============ DESAFIOS ============ */
.desafio{cursor:pointer;transition:transform var(--t) var(--ease),border-color var(--t) var(--ease)}
.desafio:hover{transform:translateY(-3px);border-color:var(--line2)}
.des-capa{padding:18px;background:linear-gradient(140deg,var(--ac-soft),transparent 70%);
  border-bottom:1px solid var(--line)}
.des-capa.alunos{background:linear-gradient(140deg,var(--info-soft),transparent 70%)}
.des-capa h3{margin:9px 0 4px;font-size:18px}
.des-sub{font-size:12.5px;color:var(--ink3)}
.des-corpo{padding:16px 18px}
.des-nums{display:flex;gap:18px}
.des-nums>div{display:flex;flex-direction:column}
.des-nums b{font-size:20px;font-weight:700;letter-spacing:-.02em}
.des-nums span{font-size:11.5px;color:var(--ink4)}
.des-alerta{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ac);
  background:var(--ac-soft);border-radius:var(--r);padding:9px 12px}
html[data-tema="claro"] .des-alerta{color:color-mix(in srgb,var(--ac) 62%,#000)}
.des-alerta svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex:none}

/* T1 — GymRush encerrado: aviso sóbrio, sem cor de erro. Encerrar não é falha,
   é o fim natural do ciclo — e o histórico continua ali, visível. */
.des-fim-avi{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;
  border-radius:var(--r);background:var(--sf3);border:1px solid var(--line2)}
.des-fim-avi svg{width:17px;height:17px;stroke:var(--ink3);fill:none;stroke-width:2;flex:none;margin-top:1px}
.des-fim-avi b{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:2px}
.des-fim-avi span{display:block;font-size:12px;line-height:1.45;color:var(--ink4)}
.desafio.des-fim .des-capa{filter:saturate(.55)}

.rank{display:flex;flex-direction:column}
.rank-l{display:flex;align-items:center;gap:11px;padding:11px var(--s4);border-bottom:1px solid var(--line)}
.rank-l:last-child{border:0}
.rank-p{width:30px;text-align:center;font-size:15px;font-weight:700;color:var(--ink4);flex:none}
.rank-top .rank-p{font-size:19px}
.rank-l .tx{flex:1;min-width:0}
.rank-l .n{font-size:14.5px;font-weight:600}
.rank-l .s{font-size:12px;color:var(--ink4)}
.rank-n{font-size:17px;font-weight:700;color:var(--ac);flex:none}
html[data-tema="claro"] .rank-n{color:color-mix(in srgb,var(--ac) 62%,#000)}
.rank-eu{background:var(--ac-soft)}

/* ============ PÁGINA PÚBLICA ============ */
.pub{position:relative;z-index:1;max-width:560px;margin:0 auto;
  padding:var(--s5) var(--s4) var(--s9);min-height:100svh}
.pub-topo{display:flex;align-items:center;gap:11px;margin-bottom:var(--s7)}
.pub-topo b{display:block;font-size:15px;font-weight:600}
.pub-topo span{display:block;font-size:11px;color:var(--ink4)}
.pub-hero{text-align:center;margin-bottom:var(--s6)}
.pub-hero h1{font-size:clamp(25px,7vw,34px);margin:12px 0 8px;letter-spacing:-.025em}
.pub-hero p{color:var(--ink3);font-size:14.5px;max-width:420px;margin:0 auto}
.premio{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:13.5px;
  border:1px solid var(--ac-line);background:var(--ac-soft);border-radius:var(--r-full);padding:8px 16px}
.premio svg{width:16px;height:16px;stroke:var(--ac);fill:none;stroke-width:2}
.pub-nums{display:flex;justify-content:center;gap:var(--s7);margin-top:var(--s6)}
.pub-nums b{display:block;font-size:26px;font-weight:700;letter-spacing:-.03em}
.pub-nums span{font-size:11.5px;color:var(--ink4)}
.meu-cx{border-color:var(--ac-line)}
.feito-hoje{display:flex;align-items:center;justify-content:center;gap:9px;
  background:var(--ok-soft);color:var(--ok);border-radius:var(--r);padding:14px;
  font-size:14.5px;font-weight:600}
.feito-hoje svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:3}
.foto-pick{display:flex;align-items:center;gap:13px;background:var(--sf3);border:1px dashed var(--line2);
  border-radius:var(--r);padding:12px;cursor:pointer;transition:border-color var(--t) var(--ease)}
.foto-pick:hover{border-color:var(--ac)}
.foto-pick b{display:block;font-size:14px}
.foto-pick span{font-size:12px;color:var(--ink4)}
.foto-prev{width:52px;height:52px;border-radius:50%;background:var(--sf);flex:none;
  display:grid;place-items:center;overflow:hidden}
.foto-prev img{width:100%;height:100%;object-fit:cover}
.foto-prev svg{width:20px;height:20px;stroke:var(--ink4);fill:none;stroke-width:1.7}
.pub-pe{text-align:center;margin-top:var(--s8);color:var(--ink4);font-size:11.5px}
.pub-pe b{display:block;color:var(--ink3);font-size:13px;margin-bottom:3px}

/* app do aluno é conteúdo de celular: não estica no computador */
.tela-aluno{max-width:620px!important}

/* ============ BIBLIOTECA: FILTROS EM UMA LINHA ============ */
.bib-filtros{margin-bottom:var(--s5)}
.bib-linha1{display:flex;gap:9px;align-items:center;margin-bottom:11px}
.bib-sel{width:auto;min-width:132px;max-width:180px;flex:none;min-height:46px;font-size:14px}
.bib-meus{flex:none;padding-left:16px;padding-right:16px}
@media(max-width:640px){
  .bib-linha1{flex-wrap:wrap}
  .busca{width:100%;flex:1 1 100%!important}
  .bib-sel{flex:1;max-width:none}
  .bib-meus span{display:none}
  .bib-meus{width:46px;padding:0;justify-content:center}
}
/* rolo horizontal com desfoque nas pontas — nunca quebra linha */
.bib-rolo{position:relative;margin:0 calc(-1 * var(--s4));padding:0 var(--s4)}
.bib-rolo::before,.bib-rolo::after{content:'';position:absolute;top:0;bottom:0;width:26px;z-index:2;pointer-events:none}
.bib-rolo::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.bib-rolo::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.bib-chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:2px 0 4px;
  scroll-snap-type:x proximity}
.bib-chips::-webkit-scrollbar{display:none}
.bib-chips .chip{flex:none;scroll-snap-align:center;white-space:nowrap}
@media(min-width:1000px){
  .bib-rolo{margin:0;padding:0}
  .bib-chips{flex-wrap:wrap;justify-content:center;overflow:visible}
  .bib-rolo::before,.bib-rolo::after{display:none}
}
.ctr-chips{justify-content:center}

/* etiquetas do card */
.tag-meu,.tag-ed{position:absolute;top:7px;right:7px;font-size:9px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;border-radius:100px;padding:2px 8px;z-index:2}
.tag-meu{background:var(--ac);color:var(--ac-ink)}
.tag-ed{background:rgba(59,130,246,.92);color:#fff}
.ex-card-t .n{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:35px;font-size:13.5px;line-height:1.3}

/* editor de passos */
.ed-passo{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.ed-n{width:22px;height:22px;border-radius:50%;background:var(--sf3);color:var(--ac);flex:none;
  display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:11px}
.ed-passo textarea{min-height:56px;font-size:14px;padding:9px 11px;flex:1}
.ed-passo .icb{width:32px;height:32px;margin-top:8px;flex:none}
.ed-passo .icb svg{width:14px;height:14px}

/* duas fotos virando gif */
.duas-fotos{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.foto-slot{aspect-ratio:3/4;background:var(--sf3);border:1px dashed var(--line2);border-radius:var(--r);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;
  position:relative;overflow:hidden;transition:border-color var(--t) var(--ease)}
.foto-slot:hover{border-color:var(--ac)}
.foto-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.foto-slot span svg{width:26px;height:26px;stroke:var(--ink4);fill:none;stroke-width:1.6}
.foto-slot b{position:relative;z-index:2;font-size:11.5px;color:var(--ink3);
  background:rgba(0,0,0,.55);border-radius:100px;padding:3px 11px}
html[data-tema="claro"] .foto-slot b{background:rgba(255,255,255,.85);color:var(--ink2)}

/* título do exercício em destaque, centralizado */
.ex-titulo{text-align:center;font-size:clamp(19px,5vw,23px);font-weight:600;letter-spacing:-.02em;
  line-height:1.25;margin:var(--s4) 0 var(--s4);padding:0 var(--s2)}
.dica-rev{display:flex;gap:9px;align-items:center;background:var(--warn-soft);
  border:1px solid rgba(245,158,11,.24);border-radius:var(--r);padding:9px 11px;
  font-size:12px;color:var(--ink3);line-height:1.4;margin-top:var(--s4)}
.dica-rev svg{width:14px;height:14px;stroke:var(--warn);fill:none;stroke-width:2;flex:none}
.dica-rev span{flex:1}
.rev-x{background:none;border:0;cursor:pointer;color:var(--ink4);padding:2px;line-height:0;flex:none}
.rev-x svg{width:13px;height:13px;stroke:var(--ink4)}
.rev-x:hover svg{stroke:var(--ink2)}
.painel h3:empty{display:none}

/* ============ ÁREA DO ALUNO ============ */
.tela-aluno{padding-bottom:calc(var(--bnav-h) + var(--s7))!important}
.perfil-topo{text-align:center;padding:var(--s5) 0 var(--s6)}
.perfil-foto{position:relative;background:none;border:0;cursor:pointer;display:inline-block;padding:0}
.perfil-foto .av{margin:0 auto}
.perfil-cam{position:absolute;right:-2px;bottom:-2px;width:32px;height:32px;border-radius:50%;
  background:var(--ac);color:var(--ac-ink);display:grid;place-items:center;border:3px solid var(--bg)}
.perfil-cam svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.rank-mini .rank-l{padding:9px 0}
.rank-mini .rank-l:last-child{border:0}
.fotos-prog{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.resposta{background:var(--sf3);border-radius:var(--r);padding:15px;font-size:14.5px;line-height:1.65;color:var(--ink2)}
.como-fazer{background:var(--sf3);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.como-fazer summary{cursor:pointer;font-size:13.5px;font-weight:500;color:var(--ink2);
  display:flex;align-items:center;gap:8px;list-style:none}
.como-fazer summary::-webkit-details-marker{display:none}
.como-fazer summary svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.como-fazer[open] summary{color:var(--ac);margin-bottom:4px}
.como-fazer .passos li{font-size:13.5px}

/* ============ PAINEL DO ALUNO (Início) ============ */
.aluno-saud{padding:var(--s5) 0 var(--s5)}
.aluno-saud h1{font-size:clamp(26px,7vw,34px);letter-spacing:-.03em;line-height:1.1}
.aluno-saud p{font-size:14.5px;margin-top:6px}

/* hero: treino de hoje com anel */
.hero{display:flex;align-items:center;gap:var(--s4);padding:var(--s5);border-radius:var(--r-lg);
  background:linear-gradient(135deg,var(--ac-soft),transparent 75%);border:1px solid var(--ac-line);
  cursor:pointer;position:relative;overflow:hidden;margin-bottom:var(--s5);
  transition:transform var(--t) var(--ease),border-color var(--t) var(--ease)}
.hero::after{content:'';position:absolute;top:-40%;right:-20%;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle,var(--ac-soft),transparent 70%);pointer-events:none}
.hero:hover{transform:translateY(-2px)}
.hero:active{transform:scale(.99)}
.hero-on{border-color:var(--ac)}
.hero-anel{width:108px;height:108px;flex:none;position:relative}
.hero-anel svg{width:108px;height:108px;transform:rotate(-90deg)}
.anel-bg{fill:none;stroke:var(--sf3);stroke-width:9}
.anel-fg{fill:none;stroke:var(--ac);stroke-width:9;stroke-linecap:round;
  transition:stroke-dashoffset 1s var(--ease)}
.hero-anel-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero-anel-c b{font-size:24px;font-weight:700;letter-spacing:-.03em;line-height:1}
.hero-anel-c span{font-size:11px;color:var(--ink4);margin-top:2px}
.hero-anel-vazio{display:grid;place-items:center;background:var(--sf3);border-radius:50%}
.hero-anel-vazio svg{width:34px;height:34px;stroke:var(--ink4);fill:none;stroke-width:1.5;transform:none}
.hero-tx{flex:1;min-width:0;position:relative;z-index:1}
.hero-rot{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ac)}
html[data-tema="claro"] .hero-rot{color:color-mix(in srgb,var(--ac) 62%,#000)}
.hero-nome{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:3px 0;line-height:1.2}
.hero-sub{font-size:13px;color:var(--ink3)}
.hero-play{width:44px;height:44px;border-radius:50%;background:var(--ac);color:var(--ac-ink);flex:none;
  display:grid;place-items:center;z-index:1}
.hero-play svg{width:20px;height:20px;stroke:currentColor;fill:currentColor;stroke-width:1}

/* três cards de número */
.tri-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:var(--s5)}
.tri{background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 12px;text-align:center}
.tri-ic{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:var(--sf3);color:var(--ink3);margin-bottom:8px}
.tri-fogo .tri-ic{background:var(--warn-soft);color:var(--warn)}
.tri-ic svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.tri b{display:block;font-size:24px;font-weight:700;letter-spacing:-.03em;line-height:1}
.tri span{display:block;font-size:11px;color:var(--ink4);margin-top:4px;line-height:1.3}

/* cards do painel */
.painel-card{background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--s4);margin-bottom:var(--s4)}
.painel-card.desafio-mini,.painel-card.aviso-suave{cursor:pointer;
  transition:transform var(--t) var(--ease),border-color var(--t) var(--ease)}
.painel-card.desafio-mini:hover,.painel-card.aviso-suave:hover{border-color:var(--line2);transform:translateY(-2px)}
.pc-cab{display:flex;align-items:center;gap:12px}
.aviso-suave{display:flex;align-items:center;gap:12px}
.pc-ic{width:38px;height:38px;border-radius:var(--r-sm);display:grid;place-items:center;flex:none}
.pc-ic svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}
.pc-cab .tx,.aviso-suave .tx{flex:1;min-width:0}
.pc-t{font-size:15px;font-weight:600;letter-spacing:-.01em}
.pc-s{font-size:12.5px;color:var(--ink3);margin-top:1px}

/* frase do dia */
.frase-dia{display:flex;gap:11px;align-items:flex-start;padding:var(--s4);border-radius:var(--r-md);
  background:var(--sf3);margin-top:var(--s3);font-size:14px;line-height:1.6;color:var(--ink2)}
.frase-dia svg{width:18px;height:18px;stroke:var(--ac);fill:none;stroke-width:2;flex:none;margin-top:2px}

/* ============ ALUNO: menu no computador ============ */
.casca-aluno .corpo{display:flex;min-height:0}
.menu-aluno{display:none}
@media(min-width:1000px){
  .casca-aluno .bnav{display:none}
  .menu-aluno{display:flex;flex-direction:column;width:var(--menu-w);flex:none;
    border-right:1px solid var(--line);background:var(--sf);position:sticky;top:var(--topo-h);
    height:calc(100svh - var(--topo-h));padding:var(--s4) var(--s3);overflow-y:auto}
  .menu-aluno a,.menu-aluno button{display:flex;align-items:center;gap:var(--s3);padding:11px 13px;
    border-radius:var(--r);color:var(--ink3);font-size:14.5px;font-weight:500;border:0;background:none;
    cursor:pointer;width:100%;text-align:left;transition:color var(--t) var(--ease),background var(--t) var(--ease)}
  .menu-aluno a svg,.menu-aluno button svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.9;
    stroke-linecap:round;stroke-linejoin:round;flex:none}
  .menu-aluno .icb-whats svg,.menu-aluno button svg[viewBox]{}
  .menu-aluno a:hover,.menu-aluno button:hover{color:var(--ink);background:var(--sf3)}
  .menu-aluno a.on{background:var(--ac-soft);color:var(--ac);font-weight:600}
  html[data-tema="claro"] .menu-aluno a.on{color:color-mix(in srgb,var(--ac) 66%,#000)}
  .tela-aluno{padding-bottom:var(--s8)!important;max-width:760px!important}
}
/* foto do professor no topo, tamanho ícone */
.prof-icon{overflow:hidden;background:var(--sf3)}
.prof-icon img{width:100%;height:100%;object-fit:cover}
/* whatsapp — preenchido, verde */
.icb-whats{color:#25D366}
.icb-whats svg{width:22px;height:22px}
.menu-aluno button svg[stroke="none"],.icb-whats svg path{fill:currentColor}

/* ============ AVATAR svg ============ */
.av-svg{padding:0}
.av-svg svg{width:100%;height:100%}
.av-preview{display:grid;place-items:center;margin:0 auto var(--s5)}
.av-preview svg{border-radius:50%}

/* ============ NAVEGAÇÃO DE DIAS ============ */
.dias-rolo{margin:0 calc(-1 * var(--s4)) var(--s5);padding:var(--s4) var(--s4) 0}
.dias{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.dias::-webkit-scrollbar{display:none}
.dia{flex:none;width:62px;background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);
  padding:9px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;
  transition:all var(--t) var(--ease)}
.dia:hover{border-color:var(--line2)}
.dia.on{background:var(--ac);border-color:transparent}
.dia.on .dia-rot,.dia.on .dia-num,.dia.on .dia-tr{color:var(--ac-ink)}
.dia-rot{font-size:10.5px;color:var(--ink4);text-transform:capitalize}
.dia-num{font-size:18px;font-weight:700;letter-spacing:-.02em}
.dia-tr{font-size:11px;font-weight:700;color:var(--ac);background:var(--ac-soft);border-radius:100px;padding:1px 8px}
.dia.on .dia-tr{background:rgba(0,0,0,.15)}
.dia-tr.folga{color:var(--ink4);background:var(--sf3)}
.dia-passado{opacity:.7}
.dia-ok{position:absolute;top:5px;right:5px;color:var(--ok)}
.dia-ok svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:3}
.dia.on .dia-ok{color:var(--ac-ink)}
.treino-topo{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.treino-topo>div:first-child{flex:1;min-width:0}
.treino-nome{font-size:18px;font-weight:600;letter-spacing:-.02em}

/* ============ PERFIL rico ============ */
.perfil-hero{text-align:center;padding:var(--s5) 0 var(--s6)}
.perfil-foto-g{position:relative;background:none;border:0;cursor:pointer;padding:0;display:inline-block}
.perfil-foto-g .av{margin:0 auto;width:96px;height:96px}
.perfil-cam{position:absolute;right:0;bottom:0;width:32px;height:32px;border-radius:50%;background:var(--ac);
  color:var(--ac-ink);display:grid;place-items:center;border:3px solid var(--bg)}
.perfil-cam svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}
.perfil-hero h1{font-size:clamp(24px,6vw,30px);letter-spacing:-.03em;margin-top:var(--s3)}
.perfil-nums{display:flex;justify-content:center;gap:var(--s7)}
.perfil-nums b{display:block;font-size:22px;font-weight:700;letter-spacing:-.03em}
.perfil-nums span{font-size:11.5px;color:var(--ink4)}
.paleta-al{display:flex;flex-wrap:wrap;gap:9px}
.cor-al{width:34px;height:34px;border-radius:50%;border:2px solid transparent;cursor:pointer;
  transition:transform var(--t-fast) var(--ease)}
.cor-al:hover{transform:scale(1.12)}
.cor-al.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--bg)}
.oferece{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line)}
.oferece:last-child{border:0}
.of-ic{width:34px;height:34px;border-radius:var(--r-sm);background:var(--ac-soft);color:var(--ac);
  display:grid;place-items:center;flex:none}
html[data-tema="claro"] .of-ic{color:color-mix(in srgb,var(--ac) 62%,#000)}
.of-ic svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.of-ic svg[stroke="none"]{fill:currentColor}
.oferece b{display:block;font-size:14.5px;font-weight:600}
.oferece span{font-size:12.5px;color:var(--ink3);line-height:1.5}

/* ============ GIF/foto de exercício SEM CORTE ============ */
.ex-v,.ex-mini,.bib-mini,.mnt-mini,.ex-card-v,.ex-grande{background:var(--sf3)}
.ex-v img,.ex-mini img,.bib-mini img,.mnt-mini img,
.ex-card-v img,.ex-grande img,.ex-card-v > img{object-fit:contain!important}
.ex-grande{aspect-ratio:1/1;max-height:280px;width:min(280px,72%)}
.ex-card-v{aspect-ratio:1/1}

/* três números do aluno — ícone centralizado */
.tri{display:flex;flex-direction:column;align-items:center;justify-content:center}
.tri-ic{margin:0 auto 8px}

/* botão de WhatsApp no topo do aluno */
.btn-whats-topo{display:inline-flex;align-items:center;gap:8px;background:#25D366;color:#fff;
  border:0;border-radius:var(--r-full);padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;
  transition:transform var(--t-fast) var(--ease),opacity var(--t) var(--ease)}
.btn-whats-topo:hover{opacity:.92}
.btn-whats-topo:active{transform:scale(.96)}
.btn-whats-topo svg{width:18px;height:18px}
.btn-whats-topo svg path{fill:#fff}
@media(max-width:520px){ .btn-whats-topo span{display:none} .btn-whats-topo{padding:0;width:42px;height:42px;justify-content:center} }

/* exercício clicável em qualquer lugar */
.ex-cab{cursor:pointer}
.ex-linha{cursor:pointer}

/* níveis de esforço 1-5 */
.niveis{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.niveis button{border:1px solid var(--line);background:var(--sf3);border-radius:var(--r);padding:11px 4px;
  cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;
  transition:all var(--t) var(--ease);font-family:var(--sans)}
.niveis button .niv-p{font-size:20px;line-height:1;color:var(--ink3)}
.niveis button span:last-child{font-size:11px;color:var(--ink4)}
.niveis button.on{background:var(--ac);border-color:transparent}
.niveis button.on .niv-p,.niveis button.on span{color:var(--ac-ink)}

/* caixa de localização no check-in */
.ck-local-box{display:flex;gap:12px;align-items:center;background:var(--sf3);border:1px solid var(--line);
  border-radius:var(--r);padding:13px 15px;cursor:pointer;transition:border-color var(--t) var(--ease)}
.ck-local-box:hover{border-color:var(--line2)}
.ck-local-box.geo-ok{border-color:rgba(34,197,94,.5);background:var(--ok-soft)}
.ck-local-box.geo-erro{border-color:rgba(245,158,11,.4);background:var(--warn-soft)}
.ck-geo-ic{width:38px;height:38px;border-radius:50%;background:var(--sf);color:var(--ac);flex:none;display:grid;place-items:center}
.ck-local-box.geo-ok .ck-geo-ic{background:var(--ok);color:#fff}
.ck-geo-ic svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2.2}
.ck-local-box b{display:block;font-size:14px}
.ck-local-box span{font-size:12px;color:var(--ink3)}

/* ponto de online */
.av-wrap{position:relative;flex:none;display:inline-block}
.on-dot{position:absolute;right:0;bottom:0;width:12px;height:12px;border-radius:50%;
  background:var(--ok);border:2px solid var(--bg)}
.on-dot-lg{width:18px;height:18px;border-width:3px;right:2px;bottom:2px}

/* depoimentos na ficha */
.depo-item{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.depo-item:last-child{border:0}
.depo-foto{width:56px;height:56px;border-radius:var(--r);object-fit:cover;flex:none}
.depo-txt{font-size:14px;color:var(--ink2);line-height:1.55}
.depo-meta{font-size:12px;color:var(--ink4);margin-top:4px}

/* histórico do aluno */
.hist-i{display:flex;align-items:center;gap:13px;padding:12px var(--s5);border-bottom:1px solid var(--line)}
.hist-i:last-child{border:0}
.hist-dia{width:44px;flex:none;text-align:center;background:var(--sf3);border-radius:var(--r);padding:6px 0}
.hist-dia b{display:block;font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1}
.hist-dia span{font-size:10px;color:var(--ink4);text-transform:uppercase}
.hist-i .tx{flex:1;min-width:0}
.hist-i .n{font-size:14.5px;font-weight:600}
.hist-i .s{font-size:12.5px;color:var(--ink3)}
.hist-nota{text-align:right;flex:none}
.hist-esf{display:block;font-size:11px;color:var(--ac);letter-spacing:1px}
html[data-tema="claro"] .hist-esf{color:color-mix(in srgb,var(--ac) 62%,#000)}
.hist-est{font-size:12px;color:var(--warn)}

/* ============ ALUNOS — grade futurista ============ */
.alunos-grid{
  display:grid; gap:var(--s3);
  grid-template-columns:repeat(auto-fill,minmax(148px,1fr));
}
.al-card{
  position:relative; cursor:pointer; text-align:center;
  padding:var(--s5) var(--s3) var(--s4);
  border-radius:var(--r-md);
  background:
    radial-gradient(120% 80% at 50% -10%, color-mix(in srgb,var(--al-cor) 16%,transparent), transparent 60%),
    var(--sf2);
  border:1px solid var(--line);
  overflow:hidden; transition:transform .18s, border-color .18s, box-shadow .18s;
}
.al-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:3px;
  background:linear-gradient(90deg,transparent,var(--al-cor),transparent); opacity:.7;
}
.al-card:hover{ transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--al-cor) 55%,var(--line));
  box-shadow:0 10px 26px -14px color-mix(in srgb,var(--al-cor) 60%,transparent); }
.al-face{ position:relative; display:inline-flex; margin-bottom:var(--s3); }
.al-face .av{ box-shadow:0 0 0 3px var(--sf2), 0 0 0 4px color-mix(in srgb,var(--al-cor) 45%,transparent); }
.al-nome{ font-weight:700; font-size:15px; max-width:100%; }
.al-sub{ font-size:11.5px; color:var(--ink3); margin-top:2px; }
.al-modal{ font-size:10.5px; color:var(--ink4); text-transform:uppercase; letter-spacing:.4px; margin-top:2px; }
.al-badge{ position:absolute; top:8px; left:8px; transform:scale(.82); transform-origin:left top; }
.al-wa{
  margin-top:var(--s3); width:34px; height:34px; border-radius:50%;
  display:inline-grid; place-items:center; cursor:pointer;
  background:color-mix(in srgb,#25D366 16%,transparent);
  border:1px solid color-mix(in srgb,#25D366 40%,transparent);
  color:#25D366; transition:background .15s,transform .15s;
}
.al-wa:hover{ background:#25D366; color:#fff; transform:scale(1.08); }
.al-wa svg{ width:17px; height:17px; }

/* BLOCO 10B — botão "Redefinir acesso" no card do aluno (ao lado do WhatsApp) */
.al-key{
  margin-top:var(--s3); margin-left:6px; width:34px; height:34px; border-radius:50%;
  display:inline-grid; place-items:center; cursor:pointer; position:relative; vertical-align:top;
  background:color-mix(in srgb,var(--ink4) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--ink4) 32%,transparent);
  color:var(--ink3); transition:background .15s,transform .15s,color .15s;
}
.al-key:hover{ background:var(--warn); color:#fff; border-color:var(--warn); transform:scale(1.08); }
.al-key svg{ width:16px; height:16px; }
.al-key.pend{ color:var(--warn); border-color:color-mix(in srgb,var(--warn) 55%,transparent); background:var(--warn-soft); }
.al-key.pend::after{ content:''; position:absolute; top:-1px; right:-1px; width:9px; height:9px; border-radius:50%;
  background:var(--warn); box-shadow:0 0 0 2px var(--sf2); }
.mono{ font-variant-numeric:tabular-nums; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.5px; }

/* ============ DEPOIMENTOS — mural estilo comentário ============ */
.dp-mural{ display:flex; flex-direction:column; gap:var(--s4); max-width:640px; }
@media(min-width:1000px){ .dp-mural{ max-width:680px; } }
.dp-com{ display:flex; gap:var(--s3); align-items:flex-start; }
.dp-av{ flex:0 0 auto; padding-top:2px; }
.dp-corpo{ flex:1; min-width:0; }
/* a bolha do comentário */
.dp-bolha{
  background:var(--sf2); border:1px solid var(--line);
  border-radius:4px 16px 16px 16px; padding:10px 14px 12px;
}
.dp-cab{ display:flex; align-items:center; gap:var(--s2); flex-wrap:wrap; margin-bottom:3px; }
.dp-cab b{ font-size:14px; }
.dp-estrelas{ color:#f5b301; font-size:12.5px; letter-spacing:.5px; }
.dp-priv{ margin-left:auto; font-size:10.5px; color:var(--ink4); display:inline-flex; align-items:center; gap:3px; }
.dp-priv .ok{ color:var(--ok); display:inline-flex; align-items:center; gap:3px; }
.dp-priv svg{ width:12px; height:12px; }
.dp-fala{ font-size:14px; color:var(--ink); line-height:1.5; }
.dp-anexo{ margin-top:var(--s2); border-radius:var(--r); overflow:hidden; max-width:280px;
  border:1px solid var(--line); }
.dp-anexo img{ width:100%; display:block; }
/* barra de ações estilo rede social */
.dp-acoes{ display:flex; align-items:center; gap:var(--s4); padding:6px 6px 0; flex-wrap:wrap; }
.dp-a{ background:none; border:0; cursor:pointer; color:var(--ink3); font-size:12.5px; font-weight:700;
  display:inline-flex; align-items:center; gap:5px; padding:2px; transition:color var(--t-fast); }
.dp-a svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.dp-a:hover{ color:var(--ink); }
.dp-a.curtido{ color:#EF4444; }
.dp-a.curtido svg path{ fill:#EF4444; }
.dp-quando{ margin-left:auto; font-size:11px; color:var(--ink4); }
/* resposta do professor */
.dp-resposta{ display:flex; gap:var(--s2); margin:var(--s3) 0 0 var(--s5); align-items:flex-start; }
.dp-resp-av{ flex:0 0 auto; padding-top:2px; }
.dp-resp-bolha{ position:relative; background:var(--ac-soft); border:1px solid var(--ac-line);
  border-radius:4px 14px 14px 14px; padding:8px 30px 9px 12px; flex:1; min-width:0; }
.dp-resp-bolha b{ display:block; font-size:12.5px; color:var(--ac); margin-bottom:1px; }
html[data-tema="claro"] .dp-resp-bolha b{ color:color-mix(in srgb,var(--ac) 62%,#000); }
.dp-resp-bolha span{ font-size:13.5px; color:var(--ink); line-height:1.45; }
.dp-resp-x{ position:absolute; top:6px; right:6px; background:none; border:0; cursor:pointer;
  color:var(--ink4); padding:2px; line-height:0; }
.dp-resp-x svg{ width:13px; height:13px; }
.vazio-ic{ width:56px; height:56px; margin:0 auto var(--s3); color:var(--ink4);
  display:grid; place-items:center; }
.vazio-ic svg{ width:38px; height:38px; }

/* ============ bloco expansível (details) ============ */
.bloco-exp{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--sf3);
  margin:var(--s2) 0 var(--s4); overflow:hidden; }
.bloco-exp>summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:var(--s2);
  padding:12px 14px; font-weight:700; font-size:14px; }
.bloco-exp>summary::-webkit-details-marker{ display:none; }
.bloco-exp>summary svg{ width:18px; height:18px; stroke:var(--ac); fill:none; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round; flex:none; }
.bloco-exp>summary small{ color:var(--ink3); font-weight:500; font-size:11.5px; margin-left:2px; }
.bloco-exp>summary .exp-seta{ margin-left:auto; display:inline-flex; transition:transform .2s var(--ease); }
.bloco-exp>summary .exp-seta svg{ stroke:var(--ink3); }
.bloco-exp[open]>summary .exp-seta{ transform:rotate(180deg); }
.exp-corpo{ padding:0 14px 14px; border-top:1px solid var(--line); padding-top:var(--s4); }

/* ============ Dados do Personal (área do aluno) ============ */
.perf-personal{ }
.pp-topo{ display:flex; align-items:center; gap:var(--s3); }
.pp-nome b{ font-size:16px; }
.pp-nome span{ display:block; font-size:12px; color:var(--ink3); margin-top:1px; }
.pp-linha{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink2);
  padding:8px 0; border-top:1px solid var(--line); }
.pp-linha:first-of-type{ border-top:0; }
.pp-linha svg{ width:16px; height:16px; stroke:var(--ink3); fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; flex:none; }
.pp-linha b{ color:var(--ink); }
.pp-redes{ display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--s3); }
.pp-rede{ display:inline-flex; align-items:center; gap:6px; text-decoration:none;
  font-size:12.5px; font-weight:600; color:var(--ac);
  background:var(--ac-soft); border:1px solid var(--ac-line);
  padding:6px 12px; border-radius:var(--r-full); }
html[data-tema="claro"] .pp-rede{ color:color-mix(in srgb,var(--ac) 62%,#000); }

/* ============ notificações do aluno ============ */
.noti-lista{ display:flex; flex-direction:column; gap:var(--s2); }
.noti{ display:flex; gap:var(--s3); align-items:flex-start; padding:12px 14px;
  border:1px solid var(--line); border-radius:var(--r-md); background:var(--sf2); }
.noti.nova{ border-color:var(--ac-line); background:linear-gradient(90deg,var(--ac-soft),transparent 90%); }
.noti-ic{ width:34px; height:34px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:var(--ac-soft); color:var(--ac); }
.noti-ic svg{ width:18px; height:18px; }
.noti-tx{ font-size:13.5px; color:var(--ink); line-height:1.4; }
.noti-tx span{ display:block; font-size:11px; color:var(--ink4); margin-top:2px; }

/* ============ Reportes dos alunos (Relatórios) ============ */
.rep-lista{ display:flex; flex-direction:column; gap:var(--s2); }
.rep-item{ display:flex; gap:var(--s3); align-items:flex-start; padding:12px;
  border:1px solid var(--line); border-radius:var(--r-md); background:var(--sf2); }
.rep-item.ok{ opacity:.62; }
.rep-ic{ width:32px; height:32px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:var(--bad-soft); color:var(--bad); }
.rep-item.ok .rep-ic{ background:var(--ok-soft); color:var(--ok); }
.rep-ic svg{ width:17px; height:17px; }
.rep-tx{ flex:1; min-width:0; }
.rep-t{ font-size:14px; font-weight:700; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rep-tag{ font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.3px;
  color:var(--ink3); background:var(--sf3); border:1px solid var(--line); padding:2px 8px; border-radius:var(--r-full); }
.rep-msg{ font-size:13px; color:var(--ink2); font-style:italic; margin-top:3px; }
.rep-meta{ font-size:11.5px; color:var(--ink4); margin-top:3px; }
.rep-aco{ display:flex; flex-direction:column; gap:6px; align-items:flex-end; flex:none; }

/* ============ filtros de Alunos ============ */
.seg-f{ display:flex; gap:var(--s2); flex-wrap:wrap; }
.seg-f button{ display:inline-flex; align-items:center; gap:7px;
  padding:8px 14px; border-radius:var(--r-full); cursor:pointer;
  background:var(--sf3); border:1px solid var(--line); color:var(--ink2);
  font-size:13.5px; font-weight:600; transition:all var(--t-fast); }
.seg-f button b{ font-size:12px; font-weight:800; min-width:20px; text-align:center;
  background:var(--sf); border-radius:var(--r-full); padding:1px 7px; color:var(--ink); }
.seg-f button:hover{ border-color:var(--line2); }
.seg-f button.on{ background:var(--ac); border-color:var(--ac); color:var(--ac-ink); }
.seg-f button.on b{ background:rgba(0,0,0,.16); color:var(--ac-ink); }
/* botão "online agora" com destaque vivo */
.seg-on-live{ position:relative; }
.seg-on-live .live-dot{ width:8px; height:8px; border-radius:50%; background:var(--ok);
  box-shadow:0 0 0 0 rgba(34,197,94,.6); animation:pulseLive 1.8s infinite; flex:none; }
.seg-on-live.on{ background:var(--ok); border-color:var(--ok); color:#fff; }
.seg-on-live.on .live-dot{ background:#fff; box-shadow:0 0 0 0 rgba(255,255,255,.6); }
.seg-on-live.on b{ background:rgba(0,0,0,.18); color:#fff; }
@keyframes pulseLive{ 0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)} 70%{box-shadow:0 0 0 7px rgba(34,197,94,0)} 100%{box-shadow:0 0 0 0 rgba(34,197,94,0)} }
.bd .live-dot{ width:7px; height:7px; border-radius:50%; background:currentColor; display:inline-block;
  vertical-align:middle; margin-right:2px; animation:pulseLive 1.8s infinite; }

/* ============ resumo de auditoria ============ */
.aud-resumo{ display:flex; flex-direction:column; gap:4px; margin-top:var(--s2); }
.aud-l{ display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:var(--r);
  background:var(--sf3); font-size:13px; }
.aud-n{ width:22px; height:22px; border-radius:50%; background:var(--ac-soft); color:var(--ac);
  display:grid; place-items:center; font-size:11px; font-weight:800; flex:none; }
html[data-tema="claro"] .aud-n{ color:color-mix(in srgb,var(--ac) 62%,#000); }
.aud-k{ flex:1; color:var(--ink2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.aud-x{ color:var(--ink); font-variant-numeric:tabular-nums; }

/* ============ ficha do aluno — análise, antes/agora, alertas ============ */
.fala-card{ background:linear-gradient(180deg,var(--ac-soft),transparent); border:1px solid var(--ac-line); }
.fala-card .tit-sec{ display:flex; align-items:center; gap:6px; }
.fala-card .tit-sec svg{ width:16px; height:16px; stroke:var(--ac); fill:none; stroke-width:2; }
.fala-lista{ margin:0; padding-left:18px; display:flex; flex-direction:column; gap:6px; }
.fala-lista li{ font-size:14px; color:var(--ink); line-height:1.5; }

/* ---- Fotos de progresso (aba Avaliação) ---- */
.prog-vazio{ text-align:center; padding:var(--s5) var(--s3); color:var(--ink3); }
.prog-vazio-ic{ margin:0 auto var(--s3); width:40px; height:40px; border-radius:50%;
  background:var(--sf3); display:grid; place-items:center; color:var(--ink4); }
.prog-vazio-ic svg{ width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.6; }
.prog-vazio-tx{ font-size:13.5px; line-height:1.5; }

.prog-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.prog-mini{ position:relative; width:110px; flex:none; border-radius:var(--r);
  overflow:hidden; cursor:pointer; border:1px solid var(--line); background:var(--sf3);
  transition:border-color .15s, transform .12s var(--ease); }
.prog-mini:hover{ border-color:var(--ac); }
.prog-mini:active{ transform:scale(.97); }
.prog-mini img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
.prog-mini-dados{ padding:6px 8px; display:flex; flex-direction:column; gap:2px; }
.prog-mini-tag{ font-size:10.5px; font-weight:600; color:var(--ink3); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; }
.prog-mini-num{ font-size:12px; font-weight:700; color:var(--ink); }

/* Modal de comparação / foto ampliada */
.foto-modal-bg{ position:fixed; inset:0; z-index:900; background:rgba(0,0,0,.82);
  display:flex; align-items:center; justify-content:center; padding:var(--s4);
  animation:fadeIn .2s var(--ease); }
.foto-modal{ position:relative; max-width:min(92vw,820px); max-height:90vh;
  display:flex; flex-direction:column; gap:var(--s3); align-items:center; }
.foto-modal img{ max-width:100%; max-height:78vh; border-radius:var(--r-md);
  box-shadow:0 12px 40px rgba(0,0,0,.5); object-fit:contain; }
.foto-modal-legenda{ color:#fff; font-size:14px; font-weight:600; text-align:center;
  text-shadow:0 1px 4px rgba(0,0,0,.6); }
.foto-modal-x{ position:absolute; top:-38px; right:0; width:32px; height:32px;
  border-radius:50%; background:rgba(255,255,255,.15); border:none; cursor:pointer;
  display:grid; place-items:center; color:#fff; transition:background .15s; }
.foto-modal-x:hover{ background:rgba(255,255,255,.3); }
.foto-modal-x svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2.4; }

@media(max-width:600px){
  .prog-grid{ gap:8px; }
  .prog-mini{ width:calc(33.33% - 6px); }
  .prog-mini-dados{ padding:4px 6px; }
  .prog-mini-tag{ font-size:9.5px; }
  .prog-mini-num{ font-size:11px; }
}

.alerta-item{ display:flex; gap:var(--s3); align-items:flex-start; padding:14px;
  border:1px solid var(--line); border-radius:var(--r-md); background:var(--sf2); margin-bottom:var(--s2); }
.alerta-ic{ width:36px; height:36px; border-radius:50%; flex:none; display:grid; place-items:center; }
.alerta-ic.queixa,.alerta-ic.bug{ background:var(--bad-soft); color:var(--bad); }
.alerta-ic.nota{ background:var(--warn-soft); color:var(--warn); }
.alerta-ic svg{ width:18px; height:18px; }
.alerta-tx{ flex:1; min-width:0; }
.alerta-t{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--ink3); }
.alerta-m{ font-size:14px; color:var(--ink); line-height:1.45; margin-top:2px; }
.alerta-meta{ font-size:11.5px; color:var(--ink4); margin-top:3px; }
.alerta-aco{ display:flex; flex-direction:column; gap:6px; flex:none; }

/* ============ treinos: programas e ajuda ============ */
.prog-tag{background:var(--ac-soft)!important;color:var(--ac)!important}
.prog-tag svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.prog-letra{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;
  background:var(--ac-soft);color:var(--ac);font-size:11px;font-weight:800;margin-right:8px;flex:none}
html[data-tema="claro"] .prog-letra{color:color-mix(in srgb,var(--ac) 62%,#000)}
.ajuda-b{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.ajuda-b:last-of-type{border:0}
.ajuda-ic{width:40px;height:40px;border-radius:var(--r);background:var(--ac-soft);color:var(--ac);
  display:grid;place-items:center;flex:none}
.ajuda-ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
.ajuda-b b{font-size:15px}
.ajuda-b p{font-size:13px;color:var(--ink2);line-height:1.5;margin-top:2px}

/* histórico de alertas resolvidos */
.alerta-item.resolvido{ opacity:.72; }
.alerta-item.resolvido .alerta-ic.ok{ background:var(--ok-soft); color:var(--ok); }
.alerta-item.resolvido .alerta-m{ text-decoration:none; color:var(--ink2); }

/* opções do construtor de avatar */
.av-ops{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.av-op{width:40px;height:40px;border-radius:var(--r-full);cursor:pointer;
  border:2px solid var(--line);background:var(--sf3);color:var(--ink2);
  font-size:13px;font-weight:700;display:grid;place-items:center;transition:all var(--t-fast)}
.av-op:hover{border-color:var(--line2)}
.av-op.on{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-soft);color:var(--ac)}
.av-op-txt{width:auto;min-width:74px;padding:0 12px;height:36px;font-size:12px;font-weight:600;border-radius:var(--r-full)}
.seg-bloq svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.seg-bloq.on{background:var(--bad);border-color:var(--bad);color:#fff}
.seg-bloq.on b{background:rgba(0,0,0,.2);color:#fff}

/* ============================================================
   LEITURA FORTE — nada de texto "rabiscado"
   Campo preenchido tem que parecer preenchido: cor cheia e peso.
   ============================================================ */
.inp{ color:var(--ink); font-weight:600; }
.inp::placeholder{ color:var(--ink4); font-weight:400; opacity:1; }
.inp:focus{ border-color:var(--ac); box-shadow:0 0 0 3px var(--ac-soft); }
.inp-mini{ font-weight:800; font-size:15px; color:var(--ink); }
/* série já preenchida ganha destaque de verdade */
.serie .inp{ background:var(--sf); border-color:var(--line2); }
.serie .inp:not(:placeholder-shown){ color:var(--ink); font-weight:800; }
.serie.feita{ background:var(--ok-soft); border-color:color-mix(in srgb,var(--ok) 40%,transparent); }
.serie.feita .inp{ color:var(--ink); font-weight:800; }
.inp-uni span{ color:var(--ink3); font-weight:700; }

/* ---- nome do treino e do exercício: mais presença ---- */
.treino-nome{ font-size:clamp(22px,5.4vw,28px); font-weight:800; letter-spacing:-.02em; line-height:1.15; }
.hero-rot{ font-size:11.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--ac); }
html[data-tema="claro"] .hero-rot{ color:color-mix(in srgb,var(--ac) 60%,#000); }
.ex-linha .n{ font-size:16px; font-weight:700; letter-spacing:-.01em; line-height:1.25; }
.ex-linha .s{ font-size:13px; color:var(--ink2); font-weight:600; margin-top:3px; }
.ex-titulo{ font-size:clamp(21px,5.6vw,26px)!important; font-weight:800!important; }
.ex-num{ font-weight:800; }

/* ---- botões do rodapé com cara de clicável ---- */
.acoes-rodape{ display:grid; gap:10px; grid-template-columns:1fr; }
@media(min-width:640px){ .acoes-rodape{ grid-template-columns:1fr 1fr; } }
.acao-cx{ display:flex; align-items:center; gap:12px; width:100%; cursor:pointer; text-align:left;
  padding:14px; border-radius:var(--r-md); background:var(--sf2); border:1px solid var(--line2);
  box-shadow:var(--shadow-sm); transition:transform .15s, border-color .15s, box-shadow .15s; }
.acao-cx:hover{ transform:translateY(-2px); border-color:var(--ac); box-shadow:var(--shadow); }
.acao-cx:active{ transform:scale(.985); }
.acao-ic{ width:42px; height:42px; border-radius:var(--r); display:grid; place-items:center; flex:none; }
.acao-ic svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:2; }
.ac-pdf{ background:rgba(59,130,246,.16); color:#3B82F6; }
.ac-hist{ background:rgba(139,92,246,.16); color:#8B5CF6; }
.acao-tx{ display:flex; flex-direction:column; flex:1; min-width:0; }
.acao-tx b{ font-size:14.5px; color:var(--ink); }
.acao-tx span{ font-size:12px; color:var(--ink3); }
.acao-cx .ch svg{ width:16px; height:16px; stroke:var(--ink4); }

/* ---- reportar: amarelo, centralizado ---- */
.ex-acoes{ display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.ex-acoes .btn{ justify-content:center; }
.btn-reportar{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  margin-top:12px; padding:12px; border-radius:var(--r-full); cursor:pointer;
  background:var(--warn-soft); border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);
  color:var(--warn); font-size:14px; font-weight:700; transition:background .15s; }
.btn-reportar:hover{ background:color-mix(in srgb,var(--warn) 22%,transparent); }
.btn-reportar svg{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2; }

/* ---- menu do aluno com cor por seção (vida, não cinza) ---- */
.menu-aluno a[data-a="inicio"].on,   .bnav a[data-a="inicio"].on{ color:#3B82F6; }
.menu-aluno a[data-a="treino"].on,   .bnav a[data-a="treino"].on{ color:var(--ink); }
.menu-aluno a[data-a="desafios"].on, .bnav a[data-a="desafios"].on{ color:#F59E0B; }
.menu-aluno a[data-a="evolucao"].on, .bnav a[data-a="evolucao"].on{ color:#22C55E; }
.menu-aluno a[data-a="perfil"].on,   .bnav a[data-a="perfil"].on{ color:#8B5CF6; }
.menu-aluno a[data-a].on svg, .bnav a[data-a].on svg{ stroke-width:2.3; }
html[data-tema="escuro"] .menu-aluno a[data-a="treino"].on{ color:#F4F8FC; }
/* mesmo desligados, os ícones ficam legíveis */
.menu-aluno a, .bnav a{ color:var(--ink3); }
/* quem prefere tudo neutro desliga as cores por seção */
html.menu-neutro .menu-aluno a[data-a].on,
html.menu-neutro .bnav a[data-a].on{ color:var(--ac)!important; }

/* ---- faixa de estatísticas do treino (compacta, sem espaço vazio) ---- */
.treino-stats{ display:flex; align-items:stretch; background:var(--sf2); border:1px solid var(--line);
  border-radius:var(--r-md); padding:14px 6px; }
.ts-i{ flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; }
.ts-ic{ color:var(--ac); margin-bottom:2px; }
.ts-ic svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; }
html[data-tema="claro"] .ts-ic{ color:color-mix(in srgb,var(--ac) 62%,#000); }
.ts-i b{ font-size:22px; font-weight:800; line-height:1; }
.ts-i b i{ font-size:12px; font-weight:600; color:var(--ink3); font-style:normal; margin-left:1px; }
.ts-i span{ font-size:11px; color:var(--ink3); }
.ts-sep{ width:1px; background:var(--line); margin:4px 0; flex:none; }

/* ---- histórico 7 dias ---- */
.hist-lista2{ display:flex; flex-direction:column; gap:10px; }
.hist-c{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--sf2); padding:12px 14px; }
.hist-cab{ display:flex; align-items:center; gap:9px; }
.hist-badge{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.4px;
  color:var(--ac); background:var(--ac-soft); border-radius:var(--r-full); padding:3px 9px; flex:none; }
html[data-tema="claro"] .hist-badge{ color:color-mix(in srgb,var(--ac) 60%,#000); }
.hist-tt{ flex:1; min-width:0; font-size:14.5px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hist-hora{ display:inline-flex; align-items:center; gap:3px; font-size:11.5px; color:var(--ink4); flex:none; }
.hist-hora svg{ width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:2; }
.hist-meta{ font-size:12px; color:var(--ink3); margin-top:4px; }
.hist-parc{ background:var(--warn-soft); color:var(--warn); font-weight:700; font-size:10px;
  padding:1px 6px; border-radius:var(--r-full); text-transform:uppercase; letter-spacing:.3px; }
.hist-fez{ font-size:12.5px; color:var(--ink2); margin-top:6px; line-height:1.5; }
.hist-fez i{ color:var(--ink4); font-style:normal; }

/* ---- frase motivacional acolhedora, no topo (sob a saudação) ---- */
.frase-topo{ display:flex; align-items:center; gap:10px; margin-top:var(--s4);
  padding:12px 16px; border-radius:var(--r-full);
  background:linear-gradient(90deg, var(--ac-soft), transparent 90%);
  border:1px solid var(--ac-line); }
.frase-topo svg{ width:16px; height:16px; stroke:var(--ac); fill:none; stroke-width:2; flex:none; }
html[data-tema="claro"] .frase-topo svg{ stroke:color-mix(in srgb,var(--ac) 60%,#000); }
.frase-topo span{ font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.4; }

/* ---- bloco de depoimentos do aluno (interativo) ---- */
.depo-bloco{ background:var(--sf2); border:1px solid var(--line); border-radius:var(--r-md);
  padding:var(--s4); margin-top:var(--s4); }
.depo-cab{ display:flex; align-items:center; gap:11px; }
.depo-cab .pc-ic{ width:40px; height:40px; border-radius:var(--r); display:grid; place-items:center; flex:none; }
.depo-cab .pc-ic svg{ width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:2; }
.depo-cab .pc-t{ font-size:15px; font-weight:700; }
.depo-cab .pc-s{ font-size:12.5px; color:var(--ink3); margin-top:1px; }
.depo-meus{ display:flex; flex-direction:column; gap:8px; margin-top:var(--s3); }
.depo-meu{ display:flex; align-items:center; gap:10px; padding:10px 12px;
  background:var(--sf3); border:1px solid var(--line); border-radius:var(--r); }
.depo-meu-f{ width:40px; height:40px; border-radius:var(--r-sm); object-fit:cover; flex:none; }
.depo-meu-tx{ flex:1; min-width:0; }
.depo-meu-tx p{ font-size:13.5px; color:var(--ink); font-style:italic; line-height:1.4; }
.depo-meu-m{ font-size:11px; color:var(--ink4); }
.depo-x{ width:32px; height:32px; flex:none; }
.depo-x:hover svg{ stroke:var(--bad); }

/* ---- aprovação de autocadastro (painel do professor) ---- */
.aprovar-cx{ border:1px solid var(--ac-line); background:linear-gradient(180deg,var(--ac-soft),transparent); }
.aprovar-cx .tit-sec{ display:flex; align-items:center; gap:7px; }
.aprovar-cx .tit-sec svg{ width:17px; height:17px; stroke:var(--warn); fill:none; stroke-width:2; }
.aprovar-lista{ display:flex; flex-direction:column; gap:8px; }
.aprovar-i{ display:flex; align-items:center; gap:11px; padding:10px 12px; background:var(--sf2);
  border:1px solid var(--line); border-radius:var(--r-md); }
.aprovar-i .tx{ flex:1; min-width:0; }
.aprovar-i .n{ font-weight:700; font-size:14.5px; }
.aprovar-i .s{ font-size:12px; color:var(--ink3); margin-top:1px; }
.aprovar-aco{ display:flex; gap:6px; flex:none; flex-wrap:wrap; justify-content:flex-end; }

/* ---- página pública de autocadastro ---- */
.cad{ max-width:520px; margin:0 auto; padding:var(--s6) var(--s4) var(--s9); }
.cad-topo{ text-align:center; margin-bottom:var(--s5); }
.cad-topo .logo{ margin:0 auto var(--s3); display:grid; place-items:center; overflow:hidden; }
.cad-topo .logo svg{ width:30px; height:30px; stroke:var(--ac-ink); fill:none; stroke-width:2.2; }
.cad-topo .logo img{ width:100%; height:100%; object-fit:cover; }
.cad-topo h1{ font-size:26px; font-weight:800; letter-spacing:-.02em; }
.cad-slogan{ font-size:14px; color:var(--ink3); margin-top:4px; }
.cad-card{ background:var(--sf2); border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--s5); }
.cad-anam{ display:flex; flex-direction:column; }
.cad-anam:not(:empty){ margin:var(--s2) 0; }
.cad-status{ text-align:center; background:var(--sf2); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:var(--s7) var(--s5); }
.cad-st-ic{ width:64px; height:64px; border-radius:50%; margin:0 auto var(--s4); display:grid; place-items:center;
  background:var(--warn-soft); color:var(--warn); }
.cad-status.ok .cad-st-ic{ background:var(--ok-soft); color:var(--ok); }
.cad-st-ic svg{ width:30px; height:30px; stroke:currentColor; fill:none; stroke-width:2.2; }
.cad-status h2{ font-size:22px; font-weight:800; }
.cad-status p{ font-size:14px; color:var(--ink2); line-height:1.5; margin-top:8px; }
.cad-passos{ display:flex; flex-direction:column; gap:8px; text-align:left; margin:var(--s5) 0 0; }
.cad-pa{ display:flex; align-items:center; gap:9px; padding:11px 14px; border-radius:var(--r);
  background:var(--sf3); font-size:13.5px; color:var(--ink3); border:1px solid var(--line); }
.cad-pa svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; flex:none; }
.cad-pa.feito{ color:var(--ok); border-color:color-mix(in srgb,var(--ok) 35%,transparent); }
.cad-pa.agora{ color:var(--ink); font-weight:600; border-color:var(--ac-line); background:var(--ac-soft); }

/* ===== Recordes interativos ===== */
.recs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s3)}
.rec-card{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  padding:var(--s3);border:1px solid var(--bd);border-radius:var(--r3);background:var(--sf2);
  cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.rec-card:hover,.rec-card:active{transform:translateY(-2px);border-color:var(--ac);
  box-shadow:0 6px 18px rgba(0,0,0,.16)}
.rec-thumb{position:relative;flex:none;width:56px;height:56px;border-radius:var(--r2);
  overflow:hidden;background:var(--sf3)}
.rec-thumb .rec-mini{width:100%;height:100%}
.rec-thumb .rec-mini img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.rec-thumb-sm{width:44px;height:44px}
.rec-medal{position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;border-radius:50%;
  display:grid;place-items:center;background:var(--warn);color:#1a1200;border:2px solid var(--sf2)}
.rec-medal svg{width:12px;height:12px;stroke:currentColor;fill:currentColor}
.rec-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rec-n{font-weight:600;color:var(--ink);font-size:14px}
.rec-d{font-size:12px;color:var(--ink4)}
.rec-kg{flex:none;font-weight:800;font-size:20px;color:var(--ac);letter-spacing:-.02em}
.rec-kg i{font-style:normal;font-size:12px;font-weight:600;color:var(--ink4);margin-left:2px}
/* painel do recorde */
.rec-pr{display:flex;flex-direction:column;align-items:center;gap:2px}
.rec-pr-k{font-size:32px;font-weight:800;color:var(--ac);letter-spacing:-.02em}
.rec-pr-l{font-size:12px;color:var(--ink4);text-transform:uppercase;letter-spacing:.06em}
.rec-hist{display:flex;flex-direction:column;gap:8px}
.rec-h{display:flex;align-items:center;gap:10px}
.rec-h>span{flex:none;width:52px;font-size:12px;color:var(--ink4)}
.rec-h-bar{flex:1;background:var(--sf3);border-radius:999px;height:22px;overflow:hidden}
.rec-h-bar i{display:flex;align-items:center;justify-content:flex-end;height:100%;
  background:linear-gradient(90deg,var(--ac-2,var(--ac)),var(--ac));color:#0c1400;
  font-size:11px;font-weight:700;padding:0 8px;border-radius:999px;font-style:normal;
  min-width:34px;transition:width .5s cubic-bezier(.4,1.3,.5,1)}

/* ===== Check-in: lugares + foto ===== */
.ck-lugares{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ck-lugar{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;
  border:1px solid var(--bd);border-radius:var(--r2);background:var(--sf2);color:var(--ink4);
  cursor:pointer;font-size:12px;font-weight:600;transition:all .15s ease}
.ck-lugar svg{width:20px;height:20px;stroke:currentColor;fill:none}
.ck-lugar.on{border-color:var(--ac);background:var(--ac-soft,rgba(166,206,57,.14));color:var(--ink)}
.ck-lugar.on svg{stroke:var(--ac)}
.ck-foto-mini{flex:none;width:40px;height:40px;border-radius:var(--r2);overflow:hidden;
  border:1px solid var(--bd);padding:0;cursor:pointer;background:var(--sf3)}
.ck-foto-mini img{width:100%;height:100%;object-fit:cover;display:block}
.ck-foto-grande{border-radius:var(--r3);overflow:hidden;background:var(--sf3);max-height:60vh}
.ck-foto-grande img{width:100%;height:100%;object-fit:contain;display:block;max-height:60vh}
@media(max-width:380px){.ck-lugar span{font-size:11px}}

/* ===== Desafio na tela de login ===== */
.login-desafios{margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--bd)}
.login-des{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);margin-bottom:8px;
  border:1px solid var(--bd);border-radius:var(--r3);background:var(--sf2);
  text-decoration:none;color:inherit;transition:all .15s ease}
.login-des:hover{border-color:var(--ac);transform:translateY(-1px)}
.login-des-capa{flex:none;width:52px;height:52px;border-radius:var(--r2);overflow:hidden;background:var(--sf3)}
.login-des-capa img{width:100%;height:100%;object-fit:cover;display:block}
.login-des-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.login-des-tx b{font-size:14px;color:var(--ink)}
.login-des-tx span{font-size:12px;color:var(--ink4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login-des-tx i{font-size:11px;font-style:normal;color:var(--ac);font-weight:600}
.login-des-ir{flex:none;color:var(--ink4)}
.login-des-ir svg{width:18px;height:18px;stroke:currentColor;fill:none}
/* controles do card de desafio (professor) */
.des-ctrl{display:flex;gap:6px;flex-wrap:wrap}
.des-ctrl .btn{flex:1;min-width:80px;justify-content:center}
.des-off{opacity:.72}
.des-off .des-capa{filter:grayscale(.4)}

/* ===== Aviso suave de anamnese (soft-gate) ===== */
.anam-nudge{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);
  margin:var(--s3) 0 var(--s4);border-radius:var(--r3);cursor:pointer;
  background:linear-gradient(120deg,var(--warn-soft,rgba(245,158,11,.14)),transparent);
  border:1px solid var(--warn,#F59E0B);transition:transform .15s ease}
.anam-nudge:hover{transform:translateY(-1px)}
.anam-ic{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:var(--warn,#F59E0B);color:#1a1200}
.anam-ic svg{width:18px;height:18px;stroke:currentColor;fill:none}
.anam-nudge .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.anam-nudge .tx b{font-size:14px;color:var(--ink)}
.anam-nudge .tx span{font-size:12px;color:var(--ink4)}
.anam-nudge .btn{flex:none}

/* ===== Vitrine: identidade do professor ===== */
.lg-prof-foto{width:76px;height:76px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--ac-soft),var(--sf3));border:1px solid var(--ac-line);
  box-shadow:0 10px 28px var(--ac-soft);margin-bottom:16px}
.lg-prof-foto img{width:100%;height:100%;object-fit:cover}
.lg-prof-ini{font-size:26px;font-weight:800;color:var(--ac);letter-spacing:-.02em}
.lg-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.lg-eyebrow svg{width:13px;height:13px;stroke:currentColor;fill:none}
.lg-nome{font-size:clamp(26px,4.4vw,40px);font-weight:800;line-height:1.06;letter-spacing:-.025em;
  margin:8px 0 10px;color:var(--ink)}
.lg-pitch .lg-local{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink4);margin-bottom:12px}
.lg-pitch .lg-local svg{width:14px;height:14px;stroke:currentColor;fill:none}
@media(max-width:760px){.lg-prof-foto{margin-left:auto;margin-right:auto}}

/* card de desafio: rostos + pulso ao vivo */
.lg-desafio-capa{position:relative}
.lg-vivo{position:absolute;top:7px;right:7px;width:9px;height:9px;border-radius:50%;background:#ff4d4d;
  box-shadow:0 0 0 0 rgba(255,77,77,.6);animation:lgVivo 1.8s infinite}
@keyframes lgVivo{0%{box-shadow:0 0 0 0 rgba(255,77,77,.6)}70%{box-shadow:0 0 0 8px rgba(255,77,77,0)}100%{box-shadow:0 0 0 0 rgba(255,77,77,0)}}
.lg-desafio-baixo{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.lg-desafio-faces{display:inline-flex;align-items:center}
.lg-face{width:26px;height:26px;border-radius:50%;overflow:hidden;border:2px solid var(--sf2);
  margin-left:-8px;background:var(--sf3);display:grid;place-items:center;flex:none}
.lg-face:first-child{margin-left:0}
.lg-face img,.lg-face svg{width:100%;height:100%;object-fit:cover;display:block}
.lg-face-ini{font-size:10px;font-weight:700;color:var(--ink3)}
.lg-face-mais{font-size:10px;font-weight:700;color:var(--ac);background:var(--ac-soft)}
.lg-desafio-premio{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--warn)}
.lg-desafio{position:relative;overflow:hidden}
.lg-desafio::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.06) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .6s var(--ease)}
.lg-desafio:hover::after{transform:translateX(120%)}

/* cidade no rodapé do depoimento da vitrine */
.lg-depo-quem{display:flex;flex-direction:column;gap:1px;line-height:1.2}
.lg-depo-quem b{font-size:13.5px;color:var(--ink)}
.lg-depo-quem i{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-size:11.5px;color:var(--ink4)}
.lg-depo-quem i svg{width:12px;height:12px;stroke:currentColor;fill:none}

/* painel do professor: selo cidade + botão na-vitrine */
.dp-cidade{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--ink4);font-weight:500}
.dp-cidade svg{width:12px;height:12px;stroke:currentColor;fill:none}
.dp-a.na-vitrine{color:var(--ac);font-weight:600}
.dp-a.na-vitrine svg{stroke:var(--ac);fill:var(--ac)}

/* título dos recordes (ícone inline, não solto) */
.rec-tit{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}
.rec-tit-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:var(--warn-soft);color:var(--warn)}
.rec-tit-ic svg{width:18px;height:18px;stroke:currentColor;fill:currentColor}
.rec-tit>div{display:flex;flex-direction:column;gap:2px}
.rec-tit b{font-size:15px;color:var(--ink)}
.rec-tit span{font-size:12.5px;color:var(--ink4);line-height:1.4}

/* rede de segurança: ícone dentro de rótulo de seção nunca vira bloco gigante */
.tit-sec > svg{width:1em;height:1em;display:inline-block;vertical-align:-.14em}

/* voltar na tela de login padrão */
.lg-voltar{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink4);
  margin-bottom:14px;padding:4px 2px}
.lg-voltar svg{width:16px;height:16px;stroke:currentColor;fill:none}
.lg-voltar:hover{color:var(--ink)}

/* ===== Celebração: confete ===== */
.confete-cx{position:fixed;inset:0;pointer-events:none;z-index:120;overflow:hidden}
.confete-cx i{position:absolute;top:-14px;width:9px;height:13px;opacity:0;
  animation:confeteCai linear forwards}
@keyframes confeteCai{
  0%{opacity:1;transform:translate(0,-10px) rotate(0deg)}
  100%{opacity:.9;transform:translate(var(--desl,0),104vh) rotate(var(--gir,360deg))}
}

/* ===== Painel do aluno mais vivo ===== */
/* anel do treino pulsa de leve enquanto o treino não foi feito */
.hero:not(.hero-on) .hero-anel{animation:anelChama 3.2s ease-in-out infinite}
@keyframes anelChama{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
/* play convida ao toque */
.hero-play{transition:transform .2s var(--ease)}
.hero:hover .hero-play{transform:scale(1.12)}
/* cards de estatística ganham resposta ao toque */
.tri{transition:transform .18s var(--ease),border-color .18s}
.tri:hover{transform:translateY(-3px);border-color:var(--ac-line)}
.tri-fogo .tri-ic{animation:fogoVivo 2.4s ease-in-out infinite}
@keyframes fogoVivo{0%,100%{transform:scale(1)}50%{transform:scale(1.14) rotate(-4deg)}}
/* cartões do início respondem ao passar o dedo/mouse */
.painel-card{transition:transform .18s var(--ease),box-shadow .18s}
.painel-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.10)}
/* barras enchem ao aparecer */
@keyframes barraEnche{from{transform:scaleX(0)}}
.barra i{animation:barraEnche .9s var(--ease) both}
/* recordes: medalha balança de vez em quando */
.rec-medal{animation:medalha 5s ease-in-out infinite}
@keyframes medalha{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(-14deg)}94%{transform:rotate(10deg)}97%{transform:rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){
  .hero:not(.hero-on) .hero-anel,.tri-fogo .tri-ic,.rec-medal,.barra i{animation:none}
}

/* ============ PAPO — bate-papo ============ */
.papo{position:fixed;z-index:96;background:var(--sf);display:none;flex-direction:column;
  inset:0}
@media(min-width:760px){
  .papo{inset:auto 18px 18px auto;width:390px;height:min(640px,86vh);
    border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
}
.papo.on{display:flex;animation:papoSobe .25s var(--ease)}
@keyframes papoSobe{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.papo-cab{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}
.papo-cab>b{flex:1;display:flex;align-items:center;gap:8px;font-size:16px}
.papo-cab>b svg{width:19px;height:19px;stroke:var(--ac);fill:none}
.papo-cab .tx{flex:1;display:flex;flex-direction:column;line-height:1.2}
.papo-corpo{flex:1;overflow-y:auto}
.papo-sec{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink4);padding:14px 16px 6px}
.papo-lista{display:flex;flex-direction:column}
.papo-item{display:flex;align-items:center;gap:11px;padding:11px 14px;cursor:pointer;
  border-bottom:1px solid var(--line);transition:background .15s}
.papo-item:hover{background:var(--sf3)}
.papo-item .tx{flex:1;min-width:0}
.papo-item .n{font-size:14.5px;font-weight:600}
.papo-item .s{font-size:12.5px;color:var(--ink4)}
.papo-av{position:relative;flex:none;display:inline-block}
.papo-on{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:50%;
  background:var(--ok);border:2px solid var(--sf)}
.papo-fav-mini{color:var(--warn);font-size:12px}
.papo-badge-n{flex:none;min-width:20px;height:20px;border-radius:10px;background:var(--ac);
  color:var(--ac-ink);font-size:11.5px;font-weight:700;display:grid;place-items:center;padding:0 6px}
.papo-hora{flex:none;font-size:11px;color:var(--ink4)}
.papo-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.papo-oi{text-align:center;color:var(--ink4);font-size:13.5px;margin:auto}
.papo-b{max-width:82%;align-self:flex-start;background:var(--sf3);border-radius:14px 14px 14px 4px;
  padding:9px 12px;animation:papoMsg .2s var(--ease)}
.papo-b.minha{align-self:flex-end;background:var(--ac-soft);border-radius:14px 14px 4px 14px}
.papo-b p{font-size:14.5px;line-height:1.45;word-wrap:break-word}
.papo-quando{display:block;font-size:10.5px;color:var(--ink4);margin-top:3px;text-align:right}
@keyframes papoMsg{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.papo-chips{display:flex;gap:7px;flex-wrap:wrap;padding:0 14px 10px;flex:none}
.papo-chips button{border:1px solid var(--ac-line);background:var(--ac-soft);color:var(--ink);
  border-radius:var(--r-full);padding:7px 13px;font-size:13px;cursor:pointer}
.papo-chips button:active{transform:scale(.96)}
.papo-escreve{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);flex:none;
  padding-bottom:calc(10px + env(safe-area-inset-bottom,0))}
.papo-escreve .inp{flex:1;min-height:42px;border-radius:var(--r-full)}
.papo-envia{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;flex:none}
.papo-treino{display:flex;align-items:center;gap:10px;background:var(--sf2);border:1px solid var(--line);
  border-radius:var(--r);padding:10px 12px;cursor:pointer;margin-bottom:4px}
.papo-treino:hover{border-color:var(--ac-line)}
.papo-treino-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:var(--ac-soft);color:var(--ac)}
.papo-treino-ic svg{width:18px;height:18px;stroke:currentColor;fill:none}
.papo-treino .tx{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.papo-treino .tx b{font-size:13.5px}
.papo-treino .tx span{font-size:11.5px;color:var(--ink4)}
.papo-online-tx{color:var(--ok);font-weight:600}
.papo-perfil-av .av{margin:0 auto}
/* caixinha: mensagem nova sobe no canto */
#papo-caixinha{position:fixed;right:16px;bottom:calc(var(--bnav-h) + 16px);z-index:95;
  display:flex;align-items:center;gap:10px;max-width:min(340px,90vw);
  background:var(--sf2);border:1px solid var(--line2);border-radius:var(--r-md);
  padding:10px 12px;box-shadow:var(--shadow-lg);cursor:pointer;
  opacity:0;transform:translateY(16px);pointer-events:none;transition:all .25s var(--ease)}
@media(min-width:1000px){ #papo-caixinha{bottom:18px} }
#papo-caixinha.on{opacity:1;transform:none;pointer-events:auto}
#papo-caixinha .tx{min-width:0;display:flex;flex-direction:column;line-height:1.3}
#papo-caixinha .tx b{font-size:13.5px}
#papo-caixinha .tx span{font-size:12.5px;color:var(--ink3);max-width:220px}
/* botão do chat no topo (aluno) */
.papo-abrir{position:relative}
.papo-abrir .papo-badge{position:absolute;top:2px;right:2px;min-width:17px;height:17px;border-radius:9px;
  background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px}
/* botão flutuante de chat na página pública */
.papo-fab{position:fixed;right:16px;bottom:16px;z-index:70;width:54px;height:54px;border-radius:50%;
  border:0;background:var(--ac);color:var(--ac-ink);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.24);transition:transform .15s var(--ease)}
.papo-fab:active{transform:scale(.92)}
.papo-fab svg{width:24px;height:24px;stroke:currentColor;fill:none}
.papo-fab .papo-badge{position:absolute;top:-2px;right:-2px;min-width:19px;height:19px;border-radius:10px;
  background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px}

/* ============ Selo DatroMax — discreto ============ */
.selo-dm{display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:var(--r-full);border:1px solid var(--line);
  background:var(--sf2);text-decoration:none;cursor:pointer;
  transition:border-color .2s,transform .2s var(--ease)}
.selo-dm:hover{border-color:var(--line2);transform:translateY(-1px)}
.selo-dm>img{width:20px;height:20px;border-radius:6px;flex:none}
.selo-dm>span{font-size:12px;color:var(--ink4);white-space:nowrap;flex:1;text-align:center}
.selo-dm>span b{font-weight:700;background:linear-gradient(100deg,#2E7CF6,#22C55E);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.selo-dm>svg{width:15px;height:15px;flex:none;opacity:.85}

/* Centralização geométrica do texto no selo dentro do painel */
#painel .selo-dm{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%}
#painel .selo-dm>span{text-align:center}

/* botão flutuante de chat na página pública */
.papo-fab{position:fixed;right:16px;bottom:16px;z-index:70;width:54px;height:54px;border-radius:50%;
  border:0;background:var(--ac);color:var(--ac-ink);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.24);transition:transform .15s var(--ease)}
.papo-fab:active{transform:scale(.92)}
.papo-fab svg{width:24px;height:24px;stroke:currentColor;fill:none}
.papo-fab .papo-badge{position:absolute;top:-2px;right:-2px;min-width:19px;height:19px;border-radius:10px;
  background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px}

/* ============ Selo DatroMax — assinatura do desenvolvedor ============ */
.selo-dm{display:inline-flex;align-items:center;gap:12px;text-align:left;
  background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:10px 14px;max-width:100%;transition:border-color .2s,transform .2s var(--ease),box-shadow .2s}
.selo-dm:hover{border-color:var(--line2);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.selo-dm>img{width:40px;height:40px;border-radius:11px;flex:none;
  box-shadow:0 4px 14px rgba(20,120,220,.25)}
.selo-dm .tx{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.selo-dm-top{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink4)}
.selo-dm-nome{font-size:15.5px;font-weight:800;letter-spacing:-.01em;
  background:linear-gradient(100deg,#2E7CF6,#22C55E);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.selo-dm-sub{font-size:11px;color:var(--ink4)}
.selo-dm-zap{display:inline-flex;align-items:center;gap:7px;flex:none;margin-left:6px;
  border-left:1px solid var(--line);padding-left:12px;text-decoration:none;
  font-size:10.5px;line-height:1.25;color:var(--ink4)}
.selo-dm-zap b{color:var(--ink2);font-size:11.5px}
.selo-dm-zap svg{width:20px;height:20px;flex:none}
.selo-dm-zap:hover b{color:var(--ink)}
/* versão mini: uma linha, discreta */
.selo-dm-mini{gap:8px;padding:7px 12px;border-radius:var(--r-full);text-decoration:none;cursor:pointer}
.selo-dm-mini>img{width:22px;height:22px;border-radius:6px;box-shadow:none}
.selo-dm-mini>span{font-size:12px;color:var(--ink4)}
.selo-dm-mini>span b{background:linear-gradient(100deg,#2E7CF6,#22C55E);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700}
@media(max-width:480px){
  .selo-dm{flex-wrap:wrap;justify-content:center;text-align:center}
  .selo-dm .tx{align-items:center}
  .selo-dm-zap{border-left:0;padding-left:0;margin-left:0}
}

/* ===== Página do desafio: hero vivo ===== */
.pub-farol{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--ac);
  background:var(--ac-soft);border:1px solid var(--ac-line);padding:6px 14px;border-radius:var(--r-full)}
.pub-farol i{width:8px;height:8px;border-radius:50%;background:var(--ac);
  box-shadow:0 0 0 0 var(--ac-line);animation:farolPulsa 1.8s infinite}
.pub-farol.off{color:var(--ink4);background:var(--sf3);border-color:var(--line)}
.pub-farol.off i{background:var(--ink4);animation:none}
@keyframes farolPulsa{0%{box-shadow:0 0 0 0 var(--ac-line)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.pub-titulo{font-size:clamp(26px,6vw,40px);font-weight:800;letter-spacing:-.025em;line-height:1.08;
  margin:14px 0 8px;animation:sobe .5s var(--ease) both}
.pub-desc{color:var(--ink3);font-size:15px;line-height:1.55;max-width:52ch;margin:0 auto}

/* prêmio: dourado, em destaque, com brilho que passa */
.pub-premio{position:relative;display:inline-flex;align-items:center;gap:13px;margin-top:18px;
  padding:13px 22px 13px 15px;border-radius:var(--r-md);overflow:hidden;text-align:left;
  background:linear-gradient(120deg,rgba(245,158,11,.16),rgba(245,158,11,.06));
  border:1px solid rgba(245,158,11,.4);animation:sobe .5s var(--ease) .1s both}
.pub-premio-ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;flex:none;
  background:linear-gradient(140deg,#F5B60B,#E88A0B);color:#3a2400;
  box-shadow:0 8px 20px rgba(245,158,11,.35);animation:medalha 5s ease-in-out infinite}
.pub-premio-ic svg{width:22px;height:22px;stroke:currentColor;fill:currentColor}
.pub-premio .tx{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.pub-premio .tx span{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#c07908}
.pub-premio .tx b{font-size:16.5px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.pub-premio-brilho{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
  transform:translateX(-130%);animation:premioBrilha 4.5s ease-in-out infinite}
@keyframes premioBrilha{0%,55%{transform:translateX(-130%)}85%,100%{transform:translateX(130%)}}

/* cronômetro: termina em DD HH MM SS */
.pub-cron-rot{margin-top:20px;font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink4)}
.pub-cron{display:inline-flex;gap:8px;margin-top:8px}
.pub-cron span{display:flex;flex-direction:column;align-items:center;min-width:62px;
  background:var(--sf2);border:1px solid var(--line);border-radius:var(--r);
  padding:10px 8px 7px;box-shadow:var(--shadow-sm)}
.pub-cron b{font-size:24px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;color:var(--ink)}
.pub-cron span:last-child b{color:var(--ac)}
.pub-cron i{font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink4);margin-top:4px}
.pub-cron b.vira{animation:cronVira .4s var(--ease)}
@keyframes cronVira{0%{opacity:.2;transform:translateY(-6px)}100%{opacity:1;transform:none}}
@media(max-width:380px){.pub-cron span{min-width:52px}.pub-cron b{font-size:20px}}
@media(prefers-reduced-motion:reduce){
  .pub-farol i,.pub-premio-ic,.pub-premio-brilho,.pub-titulo,.pub-premio{animation:none}}

/* voltar + tema na página pública */
.pub-voltar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none;
  border:1px solid var(--line);background:var(--sf2);color:var(--ink3);text-decoration:none;
  transition:all .15s var(--ease)}
.pub-voltar:hover{color:var(--ink);border-color:var(--line2)}
.pub-voltar svg{width:18px;height:18px;stroke:currentColor;fill:none}
.pub-topo{gap:10px}

/* mini perfil do papo — organizado e centrado */
.papo-perfil{display:flex;flex-direction:column;align-items:center;text-align:center}
.papo-perfil .papo-perfil-av .av{margin:0 auto 10px}
.papo-perfil h2{font-size:21px;margin-bottom:2px}
.papo-perfil-sub{font-size:13px;color:var(--ink3);margin-bottom:10px}
.papo-perfil-tags{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}
.papo-perfil-tags span{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;
  color:var(--ink3);background:var(--sf3);border:1px solid var(--line);
  padding:5px 11px;border-radius:var(--r-full)}
.papo-perfil-tags span svg{width:13px;height:13px;stroke:currentColor;fill:none;flex:none}

/* ===== Papo: lista viva ===== */
/* professor: card exclusivo no topo, com a cor da marca */
.papo-prof{display:flex;align-items:center;gap:12px;margin:12px 14px 4px;padding:13px 14px;
  border-radius:var(--r-md);cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(120deg,var(--ac-soft),transparent 70%);
  border:1px solid var(--ac-line);transition:transform .15s var(--ease),box-shadow .15s}
.papo-prof:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.papo-prof::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.10) 50%,transparent 60%);
  transform:translateX(-130%);animation:premioBrilha 6s ease-in-out infinite}
.papo-prof .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.papo-prof-rot{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ac)}
.papo-prof-rot svg{width:11px;height:11px;stroke:currentColor;fill:none}
.papo-prof b{font-size:15px}
.papo-prof .s{font-size:12.5px;color:var(--ink4)}

/* seções */
.papo-sec{display:flex;align-items:center;gap:7px}
.papo-sec-on{width:7px;height:7px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 0 0 rgba(34,197,94,.5);animation:farolPulsa 1.8s infinite}

/* online agora: bolhas estilo stories, com anel na cor da pessoa */
.papo-online{display:flex;gap:12px;overflow-x:auto;padding:8px 16px 12px;scrollbar-width:none}
.papo-online::-webkit-scrollbar{display:none}
.papo-bolha{flex:none;display:flex;flex-direction:column;align-items:center;gap:5px;
  background:none;border:0;cursor:pointer;width:62px}
.papo-bolha-av{position:relative;width:56px;height:56px;border-radius:50%;padding:3px;
  background:conic-gradient(from 0deg,var(--cp,#22C55E),var(--ok),var(--cp,#22C55E));
  animation:bolhaGira 6s linear infinite}
.papo-bolha-av .av{width:100%;height:100%;border:2px solid var(--sf)}
.papo-bolha>span:last-child{font-size:11px;color:var(--ink3);max-width:62px}
.papo-bolha:active{transform:scale(.94)}
@keyframes bolhaGira{to{transform:rotate(0)}} /* estático, mas pronto p/ girar se quiser */
.papo-bolha-av::after{content:'';position:absolute;right:2px;bottom:2px;width:12px;height:12px;
  border-radius:50%;background:var(--ok);border:2px solid var(--sf)}

/* conversa com a cor da pessoa na borda do avatar */
.papo-av-cor .av{box-shadow:0 0 0 2px var(--sf),0 0 0 4px var(--cp,transparent)}

/* gente do seu mundo: grade de cartões com a cor de cada um */
.papo-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));
  gap:10px;padding:8px 16px 18px}
.papo-cartao{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 12px;
  border-radius:var(--r-md);border:1px solid var(--line);cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--cp,#888) 14%,var(--sf2)),var(--sf2) 65%);
  transition:transform .15s var(--ease),border-color .15s,box-shadow .15s}
.papo-cartao:hover{transform:translateY(-3px);border-color:var(--cp);box-shadow:0 8px 20px rgba(0,0,0,.10)}
.papo-cartao::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--cp,transparent);opacity:.85}
.papo-cartao .av{width:46px;height:46px}
.papo-cartao b{font-size:12.5px;max-width:100%;color:var(--ink)}
.papo-cartao>span{font-size:10.5px;color:var(--ink4);max-width:100%}

/* ===== passos "como funciona" ===== */
.passos-trilho{display:flex;gap:4px}
.passos-trilho .passo{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  padding:10px 4px;border-radius:var(--r);background:var(--sf3);border:1px solid var(--line)}
.passos-trilho .passo i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;
  font-style:normal;font-size:11.5px;font-weight:800;background:var(--sf2);color:var(--ink4);
  border:1px solid var(--line)}
.passos-trilho .passo span{font-size:10px;line-height:1.3;color:var(--ink4)}
.passos-trilho .passo.on{background:var(--ac-soft);border-color:var(--ac-line)}
.passos-trilho .passo.on i{background:var(--ac);color:var(--ac-ink);border-color:transparent}
.passos-trilho .passo.on span{color:var(--ink2);font-weight:600}

/* ===== botão Entrar com Google ===== */
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  min-height:48px;border-radius:var(--r-full);border:1px solid var(--line2);
  background:var(--sf);color:var(--ink);font-size:14.5px;font-weight:600;cursor:pointer;
  transition:border-color .2s,transform .12s var(--ease),box-shadow .2s}
.btn-google:hover{border-color:var(--ink4);box-shadow:var(--shadow-sm)}
.btn-google:active{transform:scale(.985)}
.lg-ou{display:flex;align-items:center;gap:10px;margin:14px 0}
.lg-ou i{flex:1;height:1px;background:var(--line)}
.lg-ou span{font-size:11.5px;color:var(--ink4)}

/* ===== Meu espaço (pré-aluno) ===== */
.pre-abas{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 8px;flex:none}
.pre-abas button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:9px 4px;border:0;background:none;color:var(--ink4);font-size:11px;font-weight:600;
  cursor:pointer;position:relative}
.pre-abas button svg{width:18px;height:18px;stroke:currentColor;fill:none}
.pre-abas button.on{color:var(--ac)}
.pre-abas button.on::after{content:'';position:absolute;left:20%;right:20%;bottom:-1px;height:2px;
  background:var(--ac);border-radius:2px}
/* faixa de presença: 14 dias que dá pra VER */
.pre-dias{display:flex;gap:4px}
.pre-dia{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:6px 2px;border-radius:9px;background:var(--sf3);border:1px solid var(--line)}
.pre-dia span{font-size:8.5px;font-weight:700;color:var(--ink4);text-transform:uppercase}
.pre-dia i{font-style:normal;font-size:11px;font-weight:700;color:var(--ink4)}
.pre-dia.fez{background:var(--ac-soft);border-color:var(--ac-line)}
.pre-dia.fez i{color:var(--ac)}
.pre-dia.hoje{outline:2px solid var(--ac);outline-offset:1px}
/* feats coloridos + card do pré-aluno na vitrine */
.lg-feat{background:linear-gradient(160deg,color-mix(in srgb,var(--cf,#888) 10%,var(--sf2)),var(--sf2) 60%)}
.lg-feat::before{content:'';display:block;position:absolute}
.lg-feat{position:relative;overflow:hidden}
.lg-feat .lg-feat-ic{background:color-mix(in srgb,var(--cf,#888) 18%,transparent);color:var(--cf,var(--ac))}
.lg-feat:hover{border-color:var(--cf,var(--ac-line))}
.lg-card-eu{display:flex;align-items:center;gap:12px}
.lg-card-eu .av{width:52px;height:52px}
.lg-card-eu h2{font-size:20px}

/* ===== Selos de identidade (Aluno / Desafio / Personal) ===== */
.papo-selo{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;padding:1px 7px;border-radius:var(--r-full);vertical-align:2px;opacity:.92}
.papo-selo::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}
.papo-selo-al{background:var(--ac-soft);color:var(--ac)}
html[data-tema="claro"] .papo-selo-al{color:color-mix(in srgb,var(--ac) 58%,#000)}
.papo-selo-pre{background:rgba(249,115,22,.12);color:#e8760f}
.papo-selo-prof{background:rgba(59,130,246,.12);color:#3B82F6}
/* na grade, o selo mora no rodapé do cartão — pequeno e no lugar */
.papo-cartao .papo-selo{position:static;margin-top:5px;font-size:8px;padding:1px 6px}

/* ===== Perfil público rico ===== */
.papo-perfil{position:relative;padding-top:26px}
.papo-perfil-capa{position:absolute;top:-18px;left:-20px;right:-20px;height:74px;
  background:linear-gradient(140deg,color-mix(in srgb,var(--cp,#888) 30%,transparent),transparent 75%);
  border-radius:var(--r-xl) var(--r-xl) 0 0;pointer-events:none}
.papo-perfil .papo-perfil-av{position:relative;display:inline-block}
.papo-on-g{position:absolute;right:4px;bottom:8px;width:15px;height:15px;border-radius:50%;
  background:var(--ok);border:3px solid var(--sf)}
.papo-perfil-bio{font-size:14px;color:var(--ink2);font-style:italic;margin:6px auto 10px;max-width:34ch;line-height:1.5}
.papo-perfil-tags a{text-decoration:none;color:var(--ink3)}
.pp-stats{display:flex;gap:8px;justify-content:center;margin-top:14px;width:100%}
.pp-stat{flex:1;max-width:110px;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 6px;border-radius:var(--r-md);border:1px solid var(--line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--cs,#888) 12%,var(--sf2)),var(--sf2))}
.pp-stat b{font-size:19px;font-weight:800;color:var(--ink)}
.pp-stat b i{font-style:normal;font-size:12px;color:var(--ink4);font-weight:600}
.pp-stat span{font-size:10.5px;color:var(--ink4);max-width:100%}

/* ===== Meu espaço vivo ===== */
.pe-hero{display:flex;align-items:center;gap:12px;padding:15px;border-radius:var(--r-md);
  background:linear-gradient(120deg,var(--warn-soft),transparent 75%);border:1px solid rgba(245,158,11,.35);
  animation:sobe .4s var(--ease) both}
.pe-hero.feito{background:linear-gradient(120deg,var(--ac-soft),transparent 75%);border-color:var(--ac-line)}
.pe-hero-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pe-hero-tx b{font-size:15.5px}
.pe-hero-tx span{font-size:12.5px;color:var(--ink3)}
.pe-hero-ok{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--ac);color:var(--ac-ink);animation:medalha 5s ease-in-out infinite}
.pe-hero-ok svg{width:19px;height:19px;stroke:currentColor;fill:none}
.pe-stats{display:flex;gap:8px}
.pe-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;
  border-radius:var(--r-md);border:1px solid var(--line);
  background:linear-gradient(160deg,color-mix(in srgb,var(--cs,#888) 13%,var(--sf2)),var(--sf2) 70%);
  animation:sobe .4s var(--ease) both}
.pe-stat b{font-size:21px;font-weight:800}
.pe-stat b i{font-style:normal;font-size:12px;color:var(--ink4);font-weight:600}
.pe-stat span{font-size:10.5px;color:var(--ink4);text-align:center}
.pe-acoes{display:flex;gap:8px}
.pe-acao{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:13px 8px;
  border-radius:var(--r-md);border:1px solid var(--line);cursor:pointer;
  background:linear-gradient(160deg,color-mix(in srgb,var(--ca,#888) 12%,var(--sf2)),var(--sf2) 70%);
  transition:transform .15s var(--ease),border-color .15s}
.pe-acao:hover{transform:translateY(-2px);border-color:var(--ca)}
.pe-acao svg{width:20px;height:20px;stroke:var(--ca);fill:none}
.pe-acao span{font-size:12px;font-weight:600;color:var(--ink2)}
.pe-pend{display:flex;gap:10px;align-items:flex-start;padding:13px;border-radius:var(--r-md);
  background:var(--ac-soft);border:1px solid var(--ac-line)}
.pe-pend>svg{width:19px;height:19px;stroke:var(--ac);fill:none;flex:none;margin-top:2px}
.pe-pend div{display:flex;flex-direction:column;gap:2px}
.pe-pend b{font-size:13.5px}
.pe-pend span{font-size:12px;color:var(--ink3);line-height:1.45}
.pe-perfil-topo{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px;
  border-radius:var(--r-md);background:var(--sf3)}
.pe-perfil-topo div{display:flex;flex-direction:column;gap:1px}
.pe-perfil-topo b{font-size:15px}
.pe-perfil-topo span{font-size:12px;color:var(--ink4)}
.pe-boneco-cx{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.pe-boneco{flex:none;animation:lgFloat 5s ease-in-out infinite}
.pe-boneco-aco{flex:1}
.pe-conta-cx{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r-md);
  background:linear-gradient(120deg,var(--ac-soft),transparent);border:1px solid var(--ac-line)}
.pe-conta-cx.espera{background:linear-gradient(120deg,var(--warn-soft),transparent);border-color:rgba(245,158,11,.35)}
.pe-conta-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:var(--sf2);color:var(--ac)}
.pe-conta-cx.espera .pe-conta-ic{color:var(--warn)}
.pe-conta-ic svg{width:19px;height:19px;stroke:currentColor;fill:none}
.pe-conta-cx div{display:flex;flex-direction:column;gap:1px;min-width:0}
.pe-conta-cx b{font-size:14px}
.pe-conta-cx span{font-size:12px;color:var(--ink4)}

/* ===== Movimento no Hoje ===== */
.mov-tx{font-weight:400;color:var(--ink3)}
/* leads no detalhe do desafio: nunca aperta nem quebra feio */
.lead-i{flex-wrap:wrap}
.lead-i .tx{min-width:140px}
.lead-aco{display:flex;gap:6px;flex:none;margin-left:auto}
@media(max-width:440px){.lead-aco{width:100%;justify-content:flex-end;margin-top:4px}}

/* ===== Vitrine: hero digno de print ===== */
.lg-prof-aura{width:96px;height:96px;position:relative;padding:4px;
  background:conic-gradient(from 20deg,var(--ac),#3B82F6,#8B5CF6,var(--ac));
  animation:auraGira 9s linear infinite}
.lg-prof-aura img,.lg-prof-aura .lg-prof-ini{border-radius:50%}
.lg-prof-aura::after{content:'';position:absolute;inset:-14px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,var(--ac-soft),transparent 65%);animation:lgPulse 5s ease-in-out infinite}
@keyframes auraGira{to{transform:rotate(360deg)}}
.lg-prof-aura>*{animation:auraGiraInv 9s linear infinite}
@keyframes auraGiraInv{to{transform:rotate(-360deg)}}
.lg-prof-aura .lg-prof-ini{width:100%;height:100%;display:grid;place-items:center;background:var(--sf2)}
.lg-nome{color:var(--ink)}
/* chips de comunidade no pitch */
.lg-vibes{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
@media(max-width:760px){.lg-vibes{justify-content:center}}
.lg-vibes span{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  color:var(--ink3);padding:6px 12px;border-radius:var(--r-full);
  border:1px solid var(--line);background:var(--sf2)}
.lg-vibes span svg{width:14px;height:14px;stroke:var(--ink4);fill:none}
/* títulos de seção sem quebra feia */
.lg-sec-cab h3{text-wrap:balance;max-width:24ch;margin-left:auto;margin-right:auto}
/* botões com vida (cor própria) */
.lg-btn-vivo{border:1px solid var(--line2);background:var(--sf3);color:var(--ink)}
.lg-btn-vivo svg{stroke:var(--ink3)}
.lg-btn-vivo:hover{border-color:var(--ink4);transform:translateY(-1px)}
/* nome do aluno no card: vivo */
.lg-eu-av .av{width:52px;height:52px;box-shadow:0 0 0 3px var(--ac-soft)}

.lg-eu-ok{color:var(--ok);font-weight:600}
html[data-tema="claro"] .lg-eu-ok{color:color-mix(in srgb,var(--ac) 60%,#000)}
/* sair do desafio: discreto, sem gritar */
.lk-sair-des{border:0;background:none;color:var(--ink4);font-size:12px;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;padding:4px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.lk-sair-des:hover{color:var(--bad)}

/* "treinou há X" no perfil — linha inteira acima dos números */
.pp-stats{flex-wrap:wrap}
.pp-treinou{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:6px;
  font-size:12.5px;color:var(--ink3);margin-bottom:4px}
.pp-treinou svg{width:14px;height:14px;stroke:var(--ink4);fill:none}
.pp-treinou b{color:var(--ink)}

/* cards da vitrine centralizados no celular */
@media(max-width:760px){
  .lg-feat{align-items:center;text-align:center}
  .lg-feat .lg-feat-ic{margin-left:auto;margin-right:auto}
  .lg-depo{text-align:center}
  .lg-depo figcaption{justify-content:center}
}

/* ===== FAQ da vitrine ===== */
.lg-faq{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.lg-faq-i{border:1px solid var(--line);border-radius:var(--r-md);background:var(--sf2);
  overflow:hidden;transition:border-color .2s}
.lg-faq-i[open]{border-color:var(--ac-line)}
.lg-faq-i summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;
  font-size:14.5px;font-weight:600;color:var(--ink);list-style:none}
.lg-faq-i summary::-webkit-details-marker{display:none}
.lg-faq-i summary span{flex:1}
.lg-faq-i summary i{font-style:normal;font-size:18px;font-weight:600;color:var(--ink4);
  transition:transform .2s var(--ease)}
.lg-faq-i[open] summary i{transform:rotate(45deg);color:var(--ac)}
.lg-faq-i p{padding:0 16px 15px;font-size:13.5px;line-height:1.6;color:var(--ink3)}
.lg-faq-i p b{color:var(--ink)}

/* nota do pré-cadastro sob o botão */
.lg-pre-nota{font-size:11.5px;color:var(--ink4);text-align:center;margin-top:7px;line-height:1.45}
/* "Já tenho conta" com presença */
.lg-ja-conta{border:1.5px solid var(--line2);font-weight:700}
.lg-ja-conta:hover{border-color:var(--ac);color:var(--ink)}
.lg-ja-conta svg{stroke:var(--ac)}

/* ===== Pódio colorido + lanterna ===== */
.rank-1{background:linear-gradient(90deg,rgba(245,182,11,.14),transparent 70%);
  border-left:3px solid #F5B60B}
.rank-2{background:linear-gradient(90deg,rgba(148,163,184,.16),transparent 70%);
  border-left:3px solid #94A3B8}
.rank-3{background:linear-gradient(90deg,rgba(205,127,50,.14),transparent 70%);
  border-left:3px solid #CD7F32}
.rank-1 .rank-n{color:#e9a80a;font-size:17px}
.rank-2 .rank-n{color:#8fa0b3}
.rank-3 .rank-n{color:#c0762e}
.rank-fim{background:linear-gradient(90deg,rgba(239,68,68,.08),transparent 70%);
  border-left:3px solid rgba(239,68,68,.45)}
.rank-fim .rank-p::after{content:'🔻';font-size:9px;margin-left:2px}

/* cidade + UF: sigla num bloquinho ao lado */
.cid-uf{display:flex;gap:8px}
.cid-uf .inp:first-child{flex:1}
.cid-uf-sel{flex:none;width:112px;font-weight:600}

/* ===== GymRush: curtir + legenda + clube ===== */
.ck-like{display:inline-flex;align-items:center;gap:4px;border:0;background:none;cursor:pointer;
  color:var(--ink4);padding:6px 8px;border-radius:var(--r-full);flex:none;
  transition:transform .12s var(--ease),color .15s}
.ck-like svg{width:17px;height:17px;stroke:currentColor;fill:none}
.ck-like i{font-style:normal;font-size:12px;font-weight:700;min-width:10px}
.ck-like:active{transform:scale(1.25)}
.ck-like.curtiu{color:#EC4899}
.ck-like.curtiu svg{fill:#EC4899;stroke:#EC4899}
.ck-like[disabled]{opacity:.4;cursor:default}
.ck-frase{font-size:12.5px;font-style:italic;color:var(--ink2);margin:1px 0}
.pub-clube{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font-size:12.5px;font-weight:700;
  color:var(--ac);background:var(--ac-soft);border:1px solid var(--ac-line);
  padding:8px 16px;border-radius:var(--r-full)}
.pub-clube svg{width:15px;height:15px;stroke:currentColor;fill:currentColor}
html[data-tema="claro"] .pub-clube{color:color-mix(in srgb,var(--ac) 58%,#000)}

/* botão de tema nas telas públicas (vitrine e login) */
.lg-tema{position:absolute;top:14px;right:14px;z-index:5;background:var(--sf2);
  border:1px solid var(--line)}
.lg-tema:hover{border-color:var(--line2)}

/* fotos da avaliação: miniatura compacta, com remover */
.fotos-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fotos-3 .foto-vazia{position:relative;aspect-ratio:3/4;max-height:180px;width:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border:1px dashed var(--line2);border-radius:var(--r);background:var(--sf3);
  cursor:pointer;overflow:hidden;padding:0;color:var(--ink4);font-size:12px;
  transition:border-color .15s,transform .12s var(--ease)}
.fotos-3 .foto-vazia:hover{border-color:var(--ac);color:var(--ink3)}
.fotos-3 .foto-vazia:active{transform:scale(.98)}
.fotos-3 .foto-vazia .foto-g svg{width:22px;height:22px;stroke:currentColor;fill:none}
.fotos-3 .foto-vazia.tem{border-style:solid;border-color:var(--ac-line)}
.fotos-3 .foto-vazia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.foto-rot{position:absolute;left:0;right:0;bottom:0;padding:5px 8px;font-size:11px;font-weight:600;
  color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.foto-x{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,.55);display:grid;place-items:center}
.foto-x svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2.4}
/* "antes e agora" do aluno: nunca ocupa a tela toda */
.fotos-prog .foto-vazia,.foto-prog{max-height:220px;aspect-ratio:3/4}

/* ---- Cards de seleção (desafios: aberto / só alunos) ---- */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cards .card{position:relative;cursor:pointer;border:2px solid var(--line);border-radius:var(--r-md);
  padding:14px 16px;transition:border-color .15s,background .15s;user-select:none}
.cards .card:hover{border-color:var(--ac-line);background:var(--sf)}
.cards .card.sel{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 8%,transparent)}
.cards .card .tick{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;
  border:2px solid var(--line2);display:grid;place-items:center;transition:all .15s}
.cards .card.sel .tick{border-color:var(--ac);background:var(--ac)}
.cards .card.sel .tick::after{content:'';width:6px;height:6px;border-radius:50%;background:#fff}
.cards .card .ct{font-size:14px;font-weight:700;margin-bottom:4px;color:var(--ink)}
.cards .card .cd{font-size:12.5px;line-height:1.4;color:var(--ink3)}
@media(max-width:600px){.cards{grid-template-columns:1fr}}

/* ---- Anamnese: fluxo por etapas (wizard) ---- */
.an-wizard-prog{ position:relative; }
.an-steps{ display:flex; gap:6px; margin-top:10px; justify-content:center; }
.an-dot{ width:8px; height:8px; border-radius:50%; background:var(--line2); transition:all .2s var(--ease); }
.an-dot.on{ background:var(--ac); transform:scale(1.3); }
.an-dot.done{ background:var(--ok); }

.an-step-card{ animation:anFadeIn .3s var(--ease); }
@keyframes anFadeIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }

.an-nav{ display:flex; gap:var(--s3); justify-content:space-between; align-items:center;
  padding:var(--s4) 0; border-top:1px solid var(--line); margin-top:var(--s4);
  position:sticky; bottom:0; background:var(--bg); z-index:10; }
.an-nav .btn{ min-width:140px; justify-content:center; }

/* Revisão final da anamnese */
.an-revisao-alerta{ display:flex; gap:var(--s3); align-items:flex-start;
  padding:var(--s4); border-radius:var(--r-md); background:color-mix(in srgb, var(--bad) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--bad) 30%, transparent); margin-bottom:var(--s4); }
.an-revisao-alerta b{ display:block; font-size:15px; margin-bottom:4px; color:var(--bad); }
.an-revisao-alerta p{ font-size:13.5px; line-height:1.5; color:var(--ink2); margin:0; }
.an-revisao-ic{ flex:none; width:36px; height:36px; border-radius:50%;
  background:color-mix(in srgb, var(--bad) 18%, transparent);
  display:grid; place-items:center; color:var(--bad); }
.an-revisao-ic svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; }

.an-revisao-stats{ display:flex; gap:var(--s4); flex-wrap:wrap; padding-top:var(--s3);
  border-top:1px solid var(--line); font-size:13px; color:var(--ink3); }

@media(max-width:600px){
  .an-nav{ gap:var(--s2); padding:var(--s3) 0; }
  .an-nav .btn{ min-width:0; flex:1; font-size:13px; }
  .an-revisao-alerta{ flex-direction:column; gap:var(--s2); }
}

/* ============================================================
   NOTIFICAÇÕES — Sino, Badge e Painel Deslizante
   ============================================================ */

/* Botão do Sino no Header */
.noti-sino-btn {
  position: relative;
  color: var(--tx);
  transition: color .2s, transform .1s;
}
.noti-sino-btn:active { transform: scale(.92); }
.noti-sino-btn svg { width: 22px; height: 22px; stroke-width: 2; }

/* Badge Vermelho (Contador) */
.noti-badge-count {
  position: absolute;
  top: -2px;
  right: -4px;
  background: #EF4444; /* Vermelho alerta */
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border: 2px solid var(--bg); /* Borda da cor de fundo para destacar */
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  pointer-events: none; /* Não bloquear cliques no botão */
  animation: notiPop .3s cubic-bezier(.17,.67,.83,.67);
}

@keyframes notiPop {
  0% { transform: scale(0); }
  80% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

/* Painel de Notificações (Dropdown) — BLOCO A UNIFICADO */
.noti-panel {
  position: fixed;
  top: 60px;
  right: 16px;
  left: 16px;
  max-width: 400px;
  margin-left: auto;
  background: var(--sf);
  border: 1px solid var(--line2);
  border-radius: 16px;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  z-index: 120;
  display: flex;
  flex-direction: column;
  height: min(calc(100svh - 80px), 600px);
  animation: notiSlideDown .2s ease-out;
}

@media (min-width: 768px) {
  .noti-panel {
    left: auto;
    right: 24px;
    width: 360px;
  }
}

@keyframes notiSlideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

.noti-panel-cab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line2);
  background: var(--sf);
  flex-shrink: 0;
}
.noti-panel-cab b { font-size: 14px; color: var(--tx); }

/* Área rolável da lista de notificações */
.noti-panel-lista {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* ============ MINI-CARDS V2 — Hierarquia visual por categoria ============ */

/* Área rolável com espaçamento entre cards */
.noti-panel-lista {
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Mini-card base */
.noti-panel .noti {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--sf);
  position: relative;
  transition: border-color .15s, background .15s;
}
.noti-panel .noti:last-child { border-bottom: 1px solid var(--line); }

/* Hover sólido e discreto — NUNCA transparente */
.noti-panel .noti:hover {
  background: var(--sf2);
  border-color: var(--line2);
}

/* ---- Acento lateral dinâmico via CSS variable --cat-cor ---- */
.noti-panel .noti::before {
  content: '';
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--cat-cor, var(--ink4));
}

/* Ícone herda cor da categoria via CSS variable */
.noti-panel .noti .noti-ic {
  color: var(--cat-cor, var(--ac));
}

/* ---- Etiqueta de categoria ---- */
.noti-cat-label {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cat-cor, var(--mut));
  margin-bottom: 2px;
  line-height: 1;
}

/* ---- Evento (ação principal) ---- */
.noti-evento {
  display: block;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--tx);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---- Pessoa / contexto ---- */
.noti-pessoa {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink2);
  line-height: 1.3;
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---- Tempo ---- */
.noti-tempo {
  display: block;
  font-size: 10.5px;
  color: var(--mut);
  margin-top: 2px;
  line-height: 1;
}

/* ---- NÃO LIDA: acento forte + evento bold + ponto indicador ---- */
.noti-panel .noti.nova {
  border-color: var(--line2);
}
.noti-panel .noti.nova .noti-evento {
  font-weight: 700;
}
.noti-panel .noti.nova .noti-cat-label {
  font-weight: 800;
}
/* Ponto indicador de não-lida */
.noti-panel .noti.nova::after {
  content: '';
  position: absolute;
  top: 10px; right: 10px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--cat-cor, var(--ac));
}

/* ---- LIDA: aparência normal ---- */
.noti-panel .noti.lida .noti-evento {
  font-weight: 500;
}
.noti-panel .noti.lida .noti-cat-label {
  opacity: .7;
}

/* ---- RESOLVIDA: texto atenuado, acento verde ---- */
.noti-panel .noti.resolvida {
  background: var(--sf);
  border-color: var(--line);
}
.noti-panel .noti.resolvida .noti-tx { color: var(--mut); }
.noti-panel .noti.resolvida .noti-evento { color: var(--mut); }
.noti-panel .noti.resolvida .noti-pessoa { color: var(--ink4); }
.noti-panel .noti.resolvida::before { background: var(--ok); }
.noti-panel .noti.resolvida .noti-ic { color: var(--ok); }
.noti-panel .noti.resolvida .noti-cat-label { color: var(--ok); }

/* ---- IGNORADA: texto riscado, acento cinza ---- */
.noti-panel .noti.ignorada {
  background: var(--sf);
  border-color: var(--line);
}
.noti-panel .noti.ignorada .noti-tx { color: var(--ink4); }
.noti-panel .noti.ignorada .noti-evento { text-decoration: line-through; color: var(--ink4); }
.noti-panel .noti.ignorada .noti-pessoa { color: var(--ink4); }
.noti-panel .noti.ignorada::before { background: var(--ink4); }
.noti-panel .noti.ignorada .noti-ic { color: var(--ink4); }
.noti-panel .noti.ignorada .noti-cat-label { color: var(--ink4); }

/* ---- Ícone circular compacto ---- */
.noti-panel .noti-ic {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--sf2);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.noti-panel .noti-ic svg { width: 14px; height: 14px; }

/* ---- Container de texto ---- */
.noti-panel .noti-tx {
  flex: 1;
  min-width: 0;
}

/* ---- Ações compactas ---- */
.noti-acoes { display:flex; gap:3px; margin-left:auto; flex-shrink:0; align-self:center; }
.btn-xs { padding:2px 5px !important; font-size:10px !important; min-width:22px; border-radius:4px; line-height:1.3; }

/* ---- Seta chevron discreta ---- */
.noti-panel .ch { color: var(--mut); opacity: .4; align-self: center; }
.noti-panel .ch svg { width: 12px; height: 12px; }

/* ---- Botão Ver Mais ---- */
.noti-ver-mais {
  width:100%; padding:7px; text-align:center; font-size:11px;
  color:var(--ac); cursor:pointer;
  border-top:1px solid var(--line); background:var(--sf);
  transition:background .15s; flex-shrink:0;
}
.noti-ver-mais:hover { background:var(--sf2); }

/* ---- Cabeçalho ---- */
.noti-panel-cab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--sf);
  flex-shrink: 0;
}
.noti-panel-cab b { font-size: 13px; color: var(--tx); }
.noti-panel-cab .noti-count {
  font-size: 11px; font-weight: 600;
  color: var(--ac); background: var(--ac-soft);
  padding: 2px 8px; border-radius: 10px;
}

/* ---- Mobile ---- */
@media (max-width:480px) {
  .noti-panel { height: min(calc(100svh - 70px), 600px); }
  .noti-panel .noti { padding: 8px 10px; gap: 8px; }
  .noti-panel .noti-ic { width: 26px; height: 26px; }
  .noti-panel .noti-ic svg { width: 13px; height: 13px; }
  .noti-cat-label { font-size: 9px; }
  .noti-evento { font-size: 12px; }
  .noti-pessoa { font-size: 11px; }
  .noti-acoes { gap:2px; }
  .btn-xs { padding:3px 6px !important; min-width:24px; }
}



/* ============ LEITURA FORTE — nada de texto "rabiscado" */
.inp{ color:var(--ink); font-weight:600; }
.inp::placeholder{ color:var(--ink4); font-weight:400; opacity:1; }
.inp:focus{ border-color:var(--ac); box-shadow:0 0 0 3px var(--ac-soft); }
.inp-mini{ font-weight:800; font-size:15px; color:var(--ink); }
.serie .inp{ background:var(--sf); border-color:var(--line2); }
.serie .inp:not(:placeholder-shown){ color:var(--ink); font-weight:800; }
.serie.feita{ background:var(--ok-soft); border-color:color-mix(in srgb,var(--ok) 40%,transparent); }
.serie.feita .inp{ color:var(--ink); font-weight:800; }
.inp-uni span{ color:var(--ink3); font-weight:700; }

.treino-nome{ font-size:clamp(22px,5.4vw,28px); font-weight:800; letter-spacing:-.02em; line-height:1.15; }
.hero-rot{ font-size:11.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--ac); }
html[data-tema="claro"] .hero-rot{ color:color-mix(in srgb,var(--ac) 60%,#000); }
.ex-linha .n{ font-size:16px; font-weight:700; letter-spacing:-.01em; line-height:1.25; }
.ex-linha .s{ font-size:13px; color:var(--ink2); font-weight:600; margin-top:3px; }
.ex-titulo{ font-size:clamp(21px,5.6vw,26px)!important; font-weight:800!important; }
.ex-num{ font-weight:800; }

.acoes-rodape{ display:grid; gap:10px; grid-template-columns:1fr; }
@media(min-width:640px){ .acoes-rodape{ grid-template-columns:1fr 1fr; } }
.acao-cx{ display:flex; align-items:center; gap:12px; width:100%; cursor:pointer; text-align:left;
  padding:14px; border-radius:var(--r-md); background:var(--sf2); border:1px solid var(--line2);
  box-shadow:var(--shadow-sm); transition:transform .15s, border-color .15s, box-shadow .15s; }
.acao-cx:hover{ transform:translateY(-2px); border-color:var(--ac); box-shadow:var(--shadow); }
.acao-cx:active{ transform:scale(.985); }
.acao-ic{ width:42px; height:42px; border-radius:var(--r); display:grid; place-items:center; flex:none; }
.acao-ic svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:2; }
.ac-pdf{ background:rgba(59,130,246,.16); color:#3B82F6; }
.ac-hist{ background:rgba(139,92,246,.16); color:#8B5CF6; }
.acao-tx{ display:flex; flex-direction:column; flex:1; min-width:0; }
.acao-tx b{ font-size:14.5px; color:var(--ink); }
.acao-tx span{ font-size:12px; color:var(--ink3); }
.acao-cx .ch svg{ width:16px; height:16px; stroke:var(--ink4); }

.ex-acoes{ display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.ex-acoes .btn{ justify-content:center; }
.btn-reportar{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  margin-top:12px; padding:12px; border-radius:var(--r-full); cursor:pointer;
  background:var(--warn-soft); border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);
  color:var(--warn); font-size:14px; font-weight:700; transition:background .15s; }
.btn-reportar:hover{ background:color-mix(in srgb,var(--warn) 22%,transparent); }
.btn-reportar svg{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2; }

.menu-aluno a[data-a="inicio"].on,   .bnav a[data-a="inicio"].on{ color:#3B82F6; }
.menu-aluno a[data-a="treino"].on,   .bnav a[data-a="treino"].on{ color:var(--ink); }
.menu-aluno a[data-a="desafios"].on, .bnav a[data-a="desafios"].on{ color:#F59E0B; }
.menu-aluno a[data-a="evolucao"].on, .bnav a[data-a="evolucao"].on{ color:#22C55E; }
.menu-aluno a[data-a="perfil"].on,   .bnav a[data-a="perfil"].on{ color:#8B5CF6; }
.menu-aluno a[data-a].on svg, .bnav a[data-a].on svg{ stroke-width:2.3; }
html[data-tema="escuro"] .menu-aluno a[data-a="treino"].on{ color:#F4F8FC; }
.menu-aluno a, .bnav a{ color:var(--ink3); }
html.menu-neutro .menu-aluno a[data-a].on,
html.menu-neutro .bnav a[data-a].on{ color:var(--ac)!important; }

.treino-stats{ display:flex; align-items:stretch; background:var(--sf2); border:1px solid var(--line);
  border-radius:var(--r-md); padding:14px 6px; }
.ts-i{ flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; }
.ts-ic{ color:var(--ac); margin-bottom:2px; }
.ts-ic svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; }
html[data-tema="claro"] .ts-ic{ color:color-mix(in srgb,var(--ac) 62%,#000); }
.ts-i b{ font-size:22px; font-weight:800; line-height:1; }
.ts-i b i{ font-size:12px; font-weight:600; color:var(--ink3); font-style:normal; margin-left:1px; }
.ts-i span{ font-size:11px; color:var(--ink3); }
.ts-sep{ width:1px; background:var(--line); margin:4px 0; flex:none; }

.hist-lista2{ display:flex; flex-direction:column; gap:10px; }
.hist-c{ border:1px solid var(--line); border-radius:var(--r-md); background:var(--sf2); padding:12px 14px; }
.hist-cab{ display:flex; align-items:center; gap:9px; }
.hist-badge{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.4px;
  color:var(--ac); background:var(--ac-soft); border-radius:var(--r-full); padding:3px 9px; flex:none; }
html[data-tema="claro"] .hist-badge{ color:color-mix(in srgb,var(--ac) 60%,#000); }
.hist-tt{ flex:1; min-width:0; font-size:14.5px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hist-hora{ display:inline-flex; align-items:center; gap:3px; font-size:11.5px; color:var(--ink4); flex:none; }
.hist-hora svg{ width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:2; }
.hist-meta{ font-size:12px; color:var(--ink3); margin-top:4px; }
.hist-parc{ background:var(--warn-soft); color:var(--warn); font-weight:700; font-size:10px;
  padding:1px 6px; border-radius:var(--r-full); text-transform:uppercase; letter-spacing:.3px; }
.hist-fez{ font-size:12.5px; color:var(--ink2); margin-top:6px; line-height:1.5; }
.hist-fez i{ color:var(--ink4); font-style:normal; }

.frase-topo{ display:flex; align-items:center; gap:10px; margin-top:var(--s4);
  padding:12px 16px; border-radius:var(--r-full);
  background:linear-gradient(90deg, var(--ac-soft), transparent 90%);
  border:1px solid var(--ac-line); }
.frase-topo svg{ width:16px; height:16px; stroke:var(--ac); fill:none; stroke-width:2; flex:none; }
html[data-tema="claro"] .frase-topo svg{ stroke:color-mix(in srgb,var(--ac) 60%,#000); }
.frase-topo span{ font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.4; }

.depo-bloco{ background:var(--sf2); border:1px solid var(--line); border-radius:var(--r-md);
  padding:var(--s4); margin-top:var(--s4); }
.depo-cab{ display:flex; align-items:center; gap:11px; }
.depo-cab .pc-ic{ width:40px; height:40px; border-radius:var(--r); display:grid; place-items:center; flex:none; }
.depo-cab .pc-ic svg{ width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:2; }
.depo-cab .pc-t{ font-size:15px; font-weight:700; }
.depo-cab .pc-s{ font-size:12.5px; color:var(--ink3); margin-top:1px; }
.depo-meus{ display:flex; flex-direction:column; gap:8px; margin-top:var(--s3); }
.depo-meu{ display:flex; align-items:center; gap:10px; padding:10px 12px;
  background:var(--sf3); border:1px solid var(--line); border-radius:var(--r); }
.depo-meu-f{ width:40px; height:40px; border-radius:var(--r-sm); object-fit:cover; flex:none; }
.depo-meu-tx{ flex:1; min-width:0; }
.depo-meu-tx p{ font-size:13.5px; color:var(--ink); font-style:italic; line-height:1.4; }
.depo-meu-m{ font-size:11px; color:var(--ink4); }
.depo-x{ width:32px; height:32px; flex:none; }
.depo-x:hover svg{ stroke:var(--bad); }

.aprovar-cx{ border:1px solid var(--ac-line); background:linear-gradient(180deg,var(--ac-soft),transparent); }
.aprovar-cx .tit-sec{ display:flex; align-items:center; gap:7px; }
.aprovar-cx .tit-sec svg{ width:17px; height:17px; stroke:var(--warn); fill:none; stroke-width:2; }
.aprovar-lista{ display:flex; flex-direction:column; gap:8px; }
.aprovar-i{ display:flex; align-items:center; gap:11px; padding:10px 12px; background:var(--sf2);
  border:1px solid var(--line); border-radius:var(--r-md); }
.aprovar-i .tx{ flex:1; min-width:0; }
.aprovar-i .n{ font-weight:700; font-size:14.5px; }
.aprovar-i .s{ font-size:12px; color:var(--ink3); margin-top:1px; }
.aprovar-aco{ display:flex; gap:6px; flex:none; flex-wrap:wrap; justify-content:flex-end; }

.cad{ max-width:520px; margin:0 auto; padding:var(--s6) var(--s4) var(--s9); }
.cad-topo{ text-align:center; margin-bottom:var(--s5); }
.cad-topo .logo{ margin:0 auto var(--s3); display:grid; place-items:center; overflow:hidden; }
.cad-topo .logo svg{ width:30px; height:30px; stroke:var(--ac-ink); fill:none; stroke-width:2.2; }
.cad-topo .logo img{ width:100%; height:100%; object-fit:cover; }
.cad-topo h1{ font-size:26px; font-weight:800; letter-spacing:-.02em; }
.cad-slogan{ font-size:14px; color:var(--ink3); margin-top:4px; }
.cad-card{ background:var(--sf2); border:1px solid var(--line); border-radius:var(--r-lg); padding:var(--s5); }
.cad-anam{ display:flex; flex-direction:column; }
.cad-anam:not(:empty){ margin:var(--s2) 0; }
.cad-status{ text-align:center; background:var(--sf2); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:var(--s7) var(--s5); }
.cad-st-ic{ width:64px; height:64px; border-radius:50%; margin:0 auto var(--s4); display:grid; place-items:center;
  background:var(--warn-soft); color:var(--warn); }
.cad-status.ok .cad-st-ic{ background:var(--ok-soft); color:var(--ok); }
.cad-st-ic svg{ width:30px; height:30px; stroke:currentColor; fill:none; stroke-width:2.2; }
.cad-status h2{ font-size:22px; font-weight:800; }
.cad-status p{ font-size:14px; color:var(--ink2); line-height:1.5; margin-top:8px; }
.cad-passos{ display:flex; flex-direction:column; gap:8px; text-align:left; margin:var(--s5) 0 0; }
.cad-pa{ display:flex; align-items:center; gap:9px; padding:11px 14px; border-radius:var(--r);
  background:var(--sf3); font-size:13.5px; color:var(--ink3); border:1px solid var(--line); }
.cad-pa svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; flex:none; }
.cad-pa.feito{ color:var(--ok); border-color:color-mix(in srgb,var(--ok) 35%,transparent); }
.cad-pa.agora{ color:var(--ink); font-weight:600; border-color:var(--ac-line); background:var(--ac-soft); }

.recs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s3)}
.rec-card{display:flex;align-items:center;gap:var(--s3);width:100%;text-align:left;
  padding:var(--s3);border:1px solid var(--bd);border-radius:var(--r3);background:var(--sf2);
  cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.rec-card:hover,.rec-card:active{transform:translateY(-2px);border-color:var(--ac);
  box-shadow:0 6px 18px rgba(0,0,0,.16)}
.rec-thumb{position:relative;flex:none;width:56px;height:56px;border-radius:var(--r2);
  overflow:hidden;background:var(--sf3)}
.rec-thumb .rec-mini{width:100%;height:100%}
.rec-thumb .rec-mini img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.rec-thumb-sm{width:44px;height:44px}
.rec-medal{position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;border-radius:50%;
  display:grid;place-items:center;background:var(--warn);color:#1a1200;border:2px solid var(--sf2)}
.rec-medal svg{width:12px;height:12px;stroke:currentColor;fill:currentColor}
.rec-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rec-n{font-weight:600;color:var(--ink);font-size:14px}
.rec-d{font-size:12px;color:var(--ink4)}
.rec-kg{flex:none;font-weight:800;font-size:20px;color:var(--ac);letter-spacing:-.02em}
.rec-kg i{font-style:normal;font-size:12px;font-weight:600;color:var(--ink4);margin-left:2px}
.rec-pr{display:flex;flex-direction:column;align-items:center;gap:2px}
.rec-pr-k{font-size:32px;font-weight:800;color:var(--ac);letter-spacing:-.02em}
.rec-pr-l{font-size:12px;color:var(--ink4);text-transform:uppercase;letter-spacing:.06em}
.rec-hist{display:flex;flex-direction:column;gap:8px}
.rec-h{display:flex;align-items:center;gap:10px}
.rec-h>span{flex:none;width:52px;font-size:12px;color:var(--ink4)}
.rec-h-bar{flex:1;background:var(--sf3);border-radius:999px;height:22px;overflow:hidden}
.rec-h-bar i{display:flex;align-items:center;justify-content:flex-end;height:100%;
  background:linear-gradient(90deg,var(--ac-2,var(--ac)),var(--ac));color:#0c1400;
  font-size:11px;font-weight:700;padding:0 8px;border-radius:999px;font-style:normal;
  min-width:34px;transition:width .5s cubic-bezier(.4,1.3,.5,1)}

.ck-lugares{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ck-lugar{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;
  border:1px solid var(--bd);border-radius:var(--r2);background:var(--sf2);color:var(--ink4);
  cursor:pointer;font-size:12px;font-weight:600;transition:all .15s ease}
.ck-lugar svg{width:20px;height:20px;stroke:currentColor;fill:none}
.ck-lugar.on{border-color:var(--ac);background:var(--ac-soft,rgba(166,206,57,.14));color:var(--ink)}
.ck-lugar.on svg{stroke:var(--ac)}
.ck-foto-mini{flex:none;width:40px;height:40px;border-radius:var(--r2);overflow:hidden;
  border:1px solid var(--bd);padding:0;cursor:pointer;background:var(--sf3)}
.ck-foto-mini img{width:100%;height:100%;object-fit:cover;display:block}
.ck-foto-grande{border-radius:var(--r3);overflow:hidden;background:var(--sf3);max-height:60vh}
.ck-foto-grande img{width:100%;height:100%;object-fit:contain;display:block;max-height:60vh}
@media(max-width:380px){.ck-lugar span{font-size:11px}}

.login-desafios{margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--bd)}
.login-des{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);margin-bottom:8px;
  border:1px solid var(--bd);border-radius:var(--r3);background:var(--sf2);
  text-decoration:none;color:inherit;transition:all .15s ease}
.login-des:hover{border-color:var(--ac);transform:translateY(-1px)}
.login-des-capa{flex:none;width:52px;height:52px;border-radius:var(--r2);overflow:hidden;background:var(--sf3)}
.login-des-capa img{width:100%;height:100%;object-fit:cover;display:block}
.login-des-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.login-des-tx b{font-size:14px;color:var(--ink)}
.login-des-tx span{font-size:12px;color:var(--ink4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login-des-tx i{font-size:11px;font-style:normal;color:var(--ac);font-weight:600}
.login-des-ir{flex:none;color:var(--ink4)}
.login-des-ir svg{width:18px;height:18px;stroke:currentColor;fill:none}
.des-ctrl{display:flex;gap:6px;flex-wrap:wrap}
.des-ctrl .btn{flex:1;min-width:80px;justify-content:center}
.des-off{opacity:.72}
.des-off .des-capa{filter:grayscale(.4)}

.anam-nudge{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);
  margin:var(--s3) 0 var(--s4);border-radius:var(--r3);cursor:pointer;
  background:linear-gradient(120deg,var(--warn-soft,rgba(245,158,11,.14)),transparent);
  border:1px solid var(--warn,#F59E0B);transition:transform .15s ease}
.anam-nudge:hover{transform:translateY(-1px)}
.anam-ic{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:var(--warn,#F59E0B);color:#1a1200}
.anam-ic svg{width:18px;height:18px;stroke:currentColor;fill:none}
.anam-nudge .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.anam-nudge .tx b{font-size:14px;color:var(--ink)}
.anam-nudge .tx span{font-size:12px;color:var(--ink4)}
.anam-nudge .btn{flex:none}

.lg-prof-foto{width:76px;height:76px;border-radius:50%;overflow:hidden;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--ac-soft),var(--sf3));border:1px solid var(--ac-line);
  box-shadow:0 10px 28px var(--ac-soft);margin-bottom:16px}
.lg-prof-foto img{width:100%;height:100%;object-fit:cover}
.lg-prof-ini{font-size:26px;font-weight:800;color:var(--ac);letter-spacing:-.02em}
.lg-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.lg-eyebrow svg{width:13px;height:13px;stroke:currentColor;fill:none}
.lg-nome{font-size:clamp(26px,4.4vw,40px);font-weight:800;line-height:1.06;letter-spacing:-.025em;
  margin:8px 0 10px;color:var(--ink)}
.lg-pitch .lg-local{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink4);margin-bottom:12px}
.lg-pitch .lg-local svg{width:14px;height:14px;stroke:currentColor;fill:none}
@media(max-width:760px){.lg-prof-foto{margin-left:auto;margin-right:auto}}

.lg-desafio-capa{position:relative}
.lg-vivo{position:absolute;top:7px;right:7px;width:9px;height:9px;border-radius:50%;background:#ff4d4d;
  box-shadow:0 0 0 0 rgba(255,77,77,.6);animation:lgVivo 1.8s infinite}
@keyframes lgVivo{0%{box-shadow:0 0 0 0 rgba(255,77,77,.6)}70%{box-shadow:0 0 0 8px rgba(255,77,77,0)}100%{box-shadow:0 0 0 0 rgba(255,77,77,0)}}
.lg-desafio-baixo{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.lg-desafio-faces{display:inline-flex;align-items:center}
.lg-face{width:26px;height:26px;border-radius:50%;overflow:hidden;border:2px solid var(--sf2);
  margin-left:-8px;background:var(--sf3);display:grid;place-items:center;flex:none}
.lg-face:first-child{margin-left:0}
.lg-face img,.lg-face svg{width:100%;height:100%;object-fit:cover;display:block}
.lg-face-ini{font-size:10px;font-weight:700;color:var(--ink3)}
.lg-face-mais{font-size:10px;font-weight:700;color:var(--ac);background:var(--ac-soft)}
.lg-desafio-premio{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:600;color:var(--warn)}
.lg-desafio{position:relative;overflow:hidden}
.lg-desafio::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.06) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .6s var(--ease)}
.lg-desafio:hover::after{transform:translateX(120%)}

.lg-depo-quem{display:flex;flex-direction:column;gap:1px;line-height:1.2}
.lg-depo-quem b{font-size:13.5px;color:var(--ink)}
.lg-depo-quem i{display:inline-flex;align-items:center;gap:3px;font-style:normal;font-size:11.5px;color:var(--ink4)}
.lg-depo-quem i svg{width:12px;height:12px;stroke:currentColor;fill:none}

.dp-cidade{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--ink4);font-weight:500}
.dp-cidade svg{width:12px;height:12px;stroke:currentColor;fill:none}
.dp-a.na-vitrine{color:var(--ac);font-weight:600}
.dp-a.na-vitrine svg{stroke:var(--ac);fill:var(--ac)}

.rec-tit{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}
.rec-tit-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:var(--warn-soft);color:var(--warn)}
.rec-tit-ic svg{width:18px;height:18px;stroke:currentColor;fill:currentColor}
.rec-tit>div{display:flex;flex-direction:column;gap:2px}
.rec-tit b{font-size:15px;color:var(--ink)}
.rec-tit span{font-size:12.5px;color:var(--ink4);line-height:1.4}

.tit-sec > svg{width:1em;height:1em;display:inline-block;vertical-align:-.14em}

.lg-voltar{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink4);
  margin-bottom:14px;padding:4px 2px}
.lg-voltar svg{width:16px;height:16px;stroke:currentColor;fill:none}
.lg-voltar:hover{color:var(--ink)}

.confete-cx{position:fixed;inset:0;pointer-events:none;z-index:120;overflow:hidden}
.confete-cx i{position:absolute;top:-14px;width:9px;height:13px;opacity:0;
  animation:confeteCai linear forwards}
@keyframes confeteCai{
  0%{opacity:1;transform:translate(0,-10px) rotate(0deg)}
  100%{opacity:.9;transform:translate(var(--desl,0),104vh) rotate(var(--gir,360deg))}
}

.hero:not(.hero-on) .hero-anel{animation:anelChama 3.2s ease-in-out infinite}
@keyframes anelChama{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.hero-play{transition:transform .2s var(--ease)}
.hero:hover .hero-play{transform:scale(1.12)}
.tri{transition:transform .18s var(--ease),border-color .18s}
.tri:hover{transform:translateY(-3px);border-color:var(--ac-line)}
.tri-fogo .tri-ic{animation:fogoVivo 2.4s ease-in-out infinite}
@keyframes fogoVivo{0%,100%{transform:scale(1)}50%{transform:scale(1.14) rotate(-4deg)}}
.painel-card{transition:transform .18s var(--ease),box-shadow .18s}
.painel-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.10)}
@keyframes barraEnche{from{transform:scaleX(0)}}
.barra i{animation:barraEnche .9s var(--ease) both}
.rec-medal{animation:medalha 5s ease-in-out infinite}
@keyframes medalha{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(-14deg)}94%{transform:rotate(10deg)}97%{transform:rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){
  .hero:not(.hero-on) .hero-anel,.tri-fogo .tri-ic,.rec-medal,.barra i{animation:none}
}

.papo{position:fixed;z-index:96;background:var(--sf);display:none;flex-direction:column;
  inset:0}
@media(min-width:760px){
  .papo{inset:auto 18px 18px auto;width:390px;height:min(640px,86vh);
    border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
}
.papo.on{display:flex;animation:papoSobe .25s var(--ease)}
@keyframes papoSobe{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.papo-cab{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}
.papo-cab>b{flex:1;display:flex;align-items:center;gap:8px;font-size:16px}
.papo-cab>b svg{width:19px;height:19px;stroke:var(--ac);fill:none}
.papo-cab .tx{flex:1;display:flex;flex-direction:column;line-height:1.2}
.papo-corpo{flex:1;overflow-y:auto}
.papo-sec{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink4);padding:14px 16px 6px}
.papo-lista{display:flex;flex-direction:column}
.papo-item{display:flex;align-items:center;gap:11px;padding:11px 14px;cursor:pointer;
  border-bottom:1px solid var(--line);transition:background .15s}
.papo-item:hover{background:var(--sf3)}
.papo-item .tx{flex:1;min-width:0}
.papo-item .n{font-size:14.5px;font-weight:600}
.papo-item .s{font-size:12.5px;color:var(--ink4)}
.papo-av{position:relative;flex:none;display:inline-block}
.papo-on{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:50%;
  background:var(--ok);border:2px solid var(--sf)}
.papo-fav-mini{color:var(--warn);font-size:12px}
.papo-badge-n{flex:none;min-width:20px;height:20px;border-radius:10px;background:var(--ac);
  color:var(--ac-ink);font-size:11.5px;font-weight:700;display:grid;place-items:center;padding:0 6px}
.papo-hora{flex:none;font-size:11px;color:var(--ink4)}
.papo-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.papo-oi{text-align:center;color:var(--ink4);font-size:13.5px;margin:auto}
.papo-b{max-width:82%;align-self:flex-start;background:var(--sf3);border-radius:14px 14px 14px 4px;
  padding:9px 12px;animation:papoMsg .2s var(--ease)}
.papo-b.minha{align-self:flex-end;background:var(--ac-soft);border-radius:14px 14px 4px 14px}
.papo-b p{font-size:14.5px;line-height:1.45;word-wrap:break-word}
.papo-quando{display:block;font-size:10.5px;color:var(--ink4);margin-top:3px;text-align:right}
@keyframes papoMsg{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.papo-chips{display:flex;gap:7px;flex-wrap:wrap;padding:0 14px 10px;flex:none}
.papo-chips button{border:1px solid var(--ac-line);background:var(--ac-soft);color:var(--ink);
  border-radius:var(--r-full);padding:7px 13px;font-size:13px;cursor:pointer}
.papo-chips button:active{transform:scale(.96)}
.papo-escreve{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);flex:none;
  padding-bottom:calc(10px + env(safe-area-inset-bottom,0))}
.papo-escreve .inp{flex:1;min-height:42px;border-radius:var(--r-full)}
.papo-envia{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;flex:none}
.papo-treino{display:flex;align-items:center;gap:10px;background:var(--sf2);border:1px solid var(--line);
  border-radius:var(--r);padding:10px 12px;cursor:pointer;margin-bottom:4px}
.papo-treino:hover{border-color:var(--ac-line)}
.papo-treino-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:var(--ac-soft);color:var(--ac)}
.papo-treino-ic svg{width:18px;height:18px;stroke:currentColor;fill:none}
.papo-treino .tx{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.papo-treino .tx b{font-size:13.5px}
.papo-treino .tx span{font-size:11.5px;color:var(--ink4)}
.papo-online-tx{color:var(--ok);font-weight:600}
.papo-perfil-av .av{margin:0 auto}
#papo-caixinha{position:fixed;right:16px;bottom:calc(var(--bnav-h) + 16px);z-index:95;
  display:flex;align-items:center;gap:10px;max-width:min(340px,90vw);
  background:var(--sf2);border:1px solid var(--line2);border-radius:var(--r-md);
  padding:10px 12px;box-shadow:var(--shadow-lg);cursor:pointer;
  opacity:0;transform:translateY(16px);pointer-events:none;transition:all .25s var(--ease)}
@media(min-width:1000px){ #papo-caixinha{bottom:18px} }
#papo-caixinha.on{opacity:1;transform:none;pointer-events:auto}
#papo-caixinha .tx{min-width:0;display:flex;flex-direction:column;line-height:1.3}
#papo-caixinha .tx b{font-size:13.5px}
#papo-caixinha .tx span{font-size:12.5px;color:var(--ink3);max-width:220px}
.papo-abrir{position:relative}
.papo-abrir .papo-badge{position:absolute;top:2px;right:2px;min-width:17px;height:17px;border-radius:9px;
  background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.papo-fab{position:fixed;right:16px;bottom:16px;z-index:70;width:54px;height:54px;border-radius:50%;
  border:0;background:var(--ac);color:var(--ac-ink);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.24);transition:transform .15s var(--ease)}
.papo-fab:active{transform:scale(.92)}
.papo-fab svg{width:24px;height:24px;stroke:currentColor;fill:none}
.papo-fab .papo-badge{position:absolute;top:-2px;right:-2px;min-width:19px;height:19px;border-radius:10px;
  background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px}

.selo-dm{display:inline-flex;align-items:center;gap:12px;text-align:left;
  background:var(--sf2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:10px 14px;max-width:100%;transition:border-color .2s,transform .2s var(--ease),box-shadow .2s}
.selo-dm:hover{border-color:var(--line2);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.selo-dm>img{width:40px;height:40px;border-radius:11px;flex:none;
  box-shadow:0 4px 14px rgba(20,120,220,.25)}
.selo-dm .tx{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.selo-dm-top{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink4)}
.selo-dm-nome{font-size:15.5px;font-weight:800;letter-spacing:-.01em;
  background:linear-gradient(100deg,#2E7CF6,#22C55E);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.selo-dm-sub{font-size:11px;color:var(--ink4)}
.selo-dm-zap{display:inline-flex;align-items:center;gap:7px;flex:none;margin-left:6px;
  border-left:1px solid var(--line);padding-left:12px;text-decoration:none;
  font-size:10.5px;line-height:1.25;color:var(--ink4)}
.selo-dm-zap b{color:var(--ink2);font-size:11.5px}
.selo-dm-zap svg{width:20px;height:20px;flex:none}
.selo-dm-zap:hover b{color:var(--ink)}
.selo-dm-mini{gap:8px;padding:7px 12px;border-radius:var(--r-full);text-decoration:none;cursor:pointer}
.selo-dm-mini>img{width:22px;height:22px;border-radius:6px;box-shadow:none}
.selo-dm-mini>span{font-size:12px;color:var(--ink4)}
.selo-dm-mini>span b{background:linear-gradient(100deg,#2E7CF6,#22C55E);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:700}
@media(max-width:480px){
  .selo-dm{flex-wrap:wrap;justify-content:center;text-align:center}
  .selo-dm .tx{align-items:center}
  .selo-dm-zap{border-left:0;padding-left:0;margin-left:0}
}

.pub-farol{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--ac);
  background:var(--ac-soft);border:1px solid var(--ac-line);padding:6px 14px;border-radius:var(--r-full)}
.pub-farol i{width:8px;height:8px;border-radius:50%;background:var(--ac);
  box-shadow:0 0 0 0 var(--ac-line);animation:farolPulsa 1.8s infinite}
.pub-farol.off{color:var(--ink4);background:var(--sf3);border-color:var(--line)}
.pub-farol.off i{background:var(--ink4);animation:none}
@keyframes farolPulsa{0%{box-shadow:0 0 0 0 var(--ac-line)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.pub-titulo{font-size:clamp(26px,6vw,40px);font-weight:800;letter-spacing:-.025em;line-height:1.08;
  margin:14px 0 8px;animation:sobe .5s var(--ease) both}
.pub-desc{color:var(--ink3);font-size:15px;line-height:1.55;max-width:52ch;margin:0 auto}

.pub-premio{position:relative;display:inline-flex;align-items:center;gap:13px;margin-top:18px;
  padding:13px 22px 13px 15px;border-radius:var(--r-md);overflow:hidden;text-align:left;
  background:linear-gradient(120deg,rgba(245,158,11,.16),rgba(245,158,11,.06));
  border:1px solid rgba(245,158,11,.4);animation:sobe .5s var(--ease) .1s both}
.pub-premio-ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;flex:none;
  background:linear-gradient(140deg,#F5B60B,#E88A0B);color:#3a2400;
  box-shadow:0 8px 20px rgba(245,158,11,.35);animation:medalha 5s ease-in-out infinite}
.pub-premio-ic svg{width:22px;height:22px;stroke:currentColor;fill:currentColor}
.pub-premio .tx{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.pub-premio .tx span{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#c07908}
.pub-premio .tx b{font-size:16.5px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.pub-premio-brilho{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
  transform:translateX(-130%);animation:premioBrilha 4.5s ease-in-out infinite}
@keyframes premioBrilha{0%,55%{transform:translateX(-130%)}85%,100%{transform:translateX(130%)}}

.pub-cron-rot{margin-top:20px;font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink4)}
.pub-cron{display:inline-flex;gap:8px;margin-top:8px}
.pub-cron span{display:flex;flex-direction:column;align-items:center;min-width:62px;
  background:var(--sf2);border:1px solid var(--line);border-radius:var(--r);
  padding:10px 8px 7px;box-shadow:var(--shadow-sm)}
.pub-cron b{font-size:24px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;color:var(--ink)}
.pub-cron span:last-child b{color:var(--ac)}
.pub-cron i{font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink4);margin-top:4px}

.cid-uf{display:flex;gap:8px}
.cid-uf .inp:first-child{flex:1}
.cid-uf-sel{flex:none;width:112px;font-weight:600}

.ck-like{display:inline-flex;align-items:center;gap:4px;border:0;background:none;cursor:pointer;
  color:var(--ink4);padding:6px 8px;border-radius:var(--r-full);flex:none;
  transition:transform .12s var(--ease),color .15s}
.ck-like svg{width:17px;height:17px;stroke:currentColor;fill:none}
.ck-like i{font-style:normal;font-size:12px;font-weight:700;min-width:10px}
.ck-like:active{transform:scale(1.25)}
.ck-like.curtiu{color:#EC4899}
.ck-like.curtiu svg{fill:#EC4899;stroke:#EC4899}
.ck-like[disabled]{opacity:.4;cursor:default}
.ck-frase{font-size:12.5px;font-style:italic;color:var(--ink2);margin:1px 0}
.pub-clube{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font-size:12.5px;font-weight:700;
  color:var(--ac);background:var(--ac-soft);border:1px solid var(--ac-line);
  padding:8px 16px;border-radius:var(--r-full)}
.pub-clube svg{width:15px;height:15px;stroke:currentColor;fill:currentColor}
html[data-tema="claro"] .pub-clube{color:color-mix(in srgb,var(--ac) 58%,#000)}

.lg-tema{position:absolute;top:14px;right:14px;z-index:5;background:var(--sf2);
  border:1px solid var(--line)}
.lg-tema:hover{border-color:var(--line2)}

.fotos-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.fotos-3 .foto-vazia{position:relative;aspect-ratio:3/4;max-height:180px;width:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border:1px dashed var(--line2);border-radius:var(--r);background:var(--sf3);
  cursor:pointer;overflow:hidden;padding:0;color:var(--ink4);font-size:12px;
  transition:border-color .15s,transform .12s var(--ease)}
.fotos-3 .foto-vazia:hover{border-color:var(--ac);color:var(--ink3)}
.fotos-3 .foto-vazia:active{transform:scale(.98)}
.fotos-3 .foto-vazia .foto-g svg{width:22px;height:22px;stroke:currentColor;fill:none}
.fotos-3 .foto-vazia.tem{border-style:solid;border-color:var(--ac-line)}
.fotos-3 .foto-vazia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.foto-rot{position:absolute;left:0;right:0;bottom:0;padding:5px 8px;font-size:11px;font-weight:600;
  color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.foto-x{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,.55);display:grid;place-items:center}
.foto-x svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2.4}
.fotos-prog .foto-vazia,.foto-prog{max-height:220px;aspect-ratio:3/4}

.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cards .card{position:relative;cursor:pointer;border:2px solid var(--line);border-radius:var(--r-md);
  padding:14px 16px;transition:border-color .15s,background .15s;user-select:none}
.cards .card:hover{border-color:var(--ac-line);background:var(--sf)}
.cards .card.sel{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 8%,transparent)}
.cards .card .tick{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;
  border:2px solid var(--line2);display:grid;place-items:center;transition:all .15s}
.cards .card.sel .tick{border-color:var(--ac);background:var(--ac)}
.cards .card.sel .tick::after{content:'';width:6px;height:6px;border-radius:50%;background:#fff}
.cards .card .ct{font-size:14px;font-weight:700;margin-bottom:4px;color:var(--ink)}
.cards .card .cd{font-size:12.5px;line-height:1.4;color:var(--ink3)}
@media(max-width:600px){.cards{grid-template-columns:1fr}}

.an-wizard-prog{ position:relative; }
.an-steps{ display:flex; gap:6px; margin-top:10px; justify-content:center; }
.an-dot{ width:8px; height:8px; border-radius:50%; background:var(--line2); transition:all .2s var(--ease); }
.an-dot.on{ background:var(--ac); transform:scale(1.3); }
.an-dot.done{ background:var(--ok); }

.an-step-card{ animation:anFadeIn .3s var(--ease); }
@keyframes anFadeIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }

.an-nav{ display:flex; gap:var(--s3); justify-content:space-between; align-items:center;
  padding:var(--s4) 0; border-top:1px solid var(--line); margin-top:var(--s4);
  position:sticky; bottom:0; background:var(--bg); z-index:10; }
.an-nav .btn{ min-width:140px; justify-content:center; }

.an-revisao-alerta{ display:flex; gap:var(--s3); align-items:flex-start;
  padding:var(--s4); border-radius:var(--r-md); background:color-mix(in srgb, var(--bad) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--bad) 30%, transparent); margin-bottom:var(--s4); }
.an-revisao-alerta b{ display:block; font-size:15px; margin-bottom:4px; color:var(--bad); }
.an-revisao-alerta p{ font-size:13.5px; line-height:1.5; color:var(--ink2); margin:0; }
.an-revisao-ic{ flex:none; width:36px; height:36px; border-radius:50%;
  background:color-mix(in srgb, var(--bad) 18%, transparent);
  display:grid; place-items:center; color:var(--bad); }
.an-revisao-ic svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; }

.an-revisao-stats{ display:flex; gap:var(--s4); flex-wrap:wrap; padding-top:var(--s3);
  border-top:1px solid var(--line); font-size:13px; color:var(--ink3); }

@media(max-width:600px){
  .an-nav{ gap:var(--s2); padding:var(--s3) 0; }
  .an-nav .btn{ min-width:0; flex:1; font-size:13px; }
  .an-revisao-alerta{ flex-direction:column; gap:var(--s2); }
}

.noti-sino-btn {
  position: relative;
  color: var(--tx);
  transition: color .2s, transform .1s;
}
.noti-sino-btn:active { transform: scale(.92); }
.noti-sino-btn svg { width: 22px; height: 22px; stroke-width: 2; }

.noti-badge-count {
  position: absolute;
  top: -2px;
  right: -4px;
  background: #EF4444;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border: 2px solid var(--bg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  pointer-events: none;
  animation: notiPop .3s cubic-bezier(.17,.67,.83,.67);
}

@keyframes notiPop {
  0% { transform: scale(0); }
  80% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

/* Segunda definição de .noti-panel REMOVIDA — unificada na primeira ocorrência (Bloco A) */

.mov-i{ align-items:flex-start; gap:12px; }
.mov-tx{ display:inline; color:var(--ink3); font-weight:400; margin-left:4px; }
.mov-i .pend-ic{ margin-top:2px; }

.mt.dn .mt-v{ color:var(--bad); }
.mt.dn .mt-d{ color:var(--bad); font-weight:600; }

.card-p0 .lista .item{ padding:14px var(--s5); border-bottom:1px solid var(--line); transition:background .15s; }
.card-p0 .lista .item:last-child{ border-bottom:0; }
.card-p0 .lista .item:hover{ background:var(--sf3); }
.card-p0 .lista .item .tx .n{ font-size:14.5px; font-weight:700; color:var(--ink); line-height:1.3; }
.card-p0 .lista .item .tx .s{ font-size:12.5px; color:var(--ink3); margin-top:2px; line-height:1.4; }
.card-p0 .lista .item .bd-ac{ background:var(--ac); color:var(--ac-ink); font-size:11px; font-weight:800;
  min-width:22px; height:22px; border-radius:11px; display:inline-grid; place-items:center; padding:0 7px; }

.pend-ic{ width:38px; height:38px; border-radius:12px; display:grid; place-items:center; flex-none; }
.pend-ic svg{ width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:2; }

.card-cab .fs12{ font-size:12px; }
.card-cab .mut{ color:var(--ink4); font-weight:500; }

.grid.g4{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
@media(max-width:900px){ .grid.g4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:380px){ .grid.g4{ grid-template-columns:1fr; } }

.mt.tap{ cursor:pointer; transition:transform .15s var(--ease), border-color .15s, box-shadow .15s; }
.mt.tap:hover{ transform:translateY(-2px); border-color:var(--ac-line); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.mt.tap:active{ transform:scale(.985); }

.duas{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:760px){ .duas{ grid-template-columns:1fr; } }

.row-w{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.row-w .btn-sm{ font-size:12px; padding:6px 12px; min-height:32px; border-radius:var(--r-full); }

.vazio h4{ font-size:16px; font-weight:700; color:var(--ink); margin-bottom:4px; }
.vazio p{ font-size:13.5px; color:var(--ink3); line-height:1.5; max-width:32ch; margin:0 auto; }
.vazio .ic{ width:48px; height:48px; border-radius:50%; background:var(--sf3); color:var(--ink4);
  display:grid; place-items:center; margin:0 auto 12px; }
.vazio .ic svg{ width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.8; }

.dot{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:4px; vertical-align:middle; }

/* ===== Utilitarios pos-backup ===== */
.mov-i{ align-items:flex-start; gap:12px; }
.mov-i .pend-ic{ margin-top:2px; }
.mt.dn .mt-v{ color:var(--bad); }
.mt.dn .mt-d{ color:var(--bad); font-weight:600; }
.card-p0 .lista .item{ padding:14px var(--s5); border-bottom:1px solid var(--line); transition:background .15s; }
.card-p0 .lista .item:last-child{ border-bottom:0; }
.card-p0 .lista .item:hover{ background:var(--sf3); }
.card-p0 .lista .item .tx .n{ font-size:14.5px; font-weight:700; color:var(--ink); line-height:1.3; }
.card-p0 .lista .item .tx .s{ font-size:12.5px; color:var(--ink3); margin-top:2px; line-height:1.4; }
.card-p0 .lista .item .bd-ac{ background:var(--ac); color:var(--ac-ink); font-size:11px; font-weight:800; }
.card-cab .fs12{ font-size:12px; }
.card-cab .mut{ color:var(--ink4); font-weight:500; }
.grid.g4{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
@media(max-width:900px){ .grid.g4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:380px){ .grid.g4{ grid-template-columns:1fr; } }
.mt.tap{ cursor:pointer; transition:transform .15s var(--ease), border-color .15s, box-shadow .15s; }
.mt.tap:hover{ transform:translateY(-2px); border-color:var(--ac-line); box-shadow:0 8px 24px rgba(0,0,0,.08); }
.mt.tap:active{ transform:scale(.985); }
.duas{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:760px){ .duas{ grid-template-columns:1fr; } }
.row-w{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.row-w .btn-sm{ font-size:12px; padding:6px 12px; min-height:32px; border-radius:var(--r-full); }
.vazio h4{ font-size:16px; font-weight:700; color:var(--ink); margin-bottom:4px; }
.vazio p{ font-size:13.5px; color:var(--ink3); line-height:1.5; max-width:32ch; margin:0 auto; }
.vazio .ic{ width:48px; height:48px; border-radius:50%; background:var(--sf3); color:var(--ink4);
  display:flex; align-items:center; justify-content:center; margin:0 auto var(--s3); }
.vazio .ic svg{ width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.8; }
.dot{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:4px; vertical-align:middle; }

/* ============ CENTRAL DE MENSAGENS — layout planejado ============ */
/* sininho do pré-aluno */
.pre-sino-btn{position:relative}
#pre-noti-panel{z-index:1300}

/* abas: três blocos iguais, ícone + rótulo + contador */
.ms-abas{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:var(--s4)}
.ms-abas button{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 8px;
  border:1px solid var(--line);border-radius:var(--r);background:var(--sf);color:var(--ink3);
  font-size:13.5px;font-weight:600;cursor:pointer;transition:all var(--t-fast)}
.ms-abas button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ms-abas button span{white-space:nowrap}
.ms-abas button i{font-style:normal;font-size:11px;font-weight:700;min-width:18px;height:18px;padding:0 5px;
  border-radius:999px;background:var(--ac-soft);color:var(--ac);display:inline-flex;align-items:center;justify-content:center}
.ms-abas button:hover{border-color:var(--line2);color:var(--ink)}
.ms-abas button.on{background:var(--ac);border-color:transparent;color:var(--ac-ink)}
.ms-abas button.on i{background:rgba(0,0,0,.22);color:var(--ac-ink)}
@media(max-width:420px){ .ms-abas button{flex-direction:column;gap:4px;padding:10px 4px;font-size:12px} }

/* filtros: grupo com rótulo em cima, chips embaixo — nada espremido na lateral */
.ms-filtros{display:flex;flex-direction:column;gap:var(--s4)}
.ms-grupo-t{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);margin-bottom:7px}
.ms-filtros .chips{gap:7px}

/* cabeçalho da lista */
.ms-lista-cab{display:flex;align-items:center;justify-content:space-between;margin:var(--s4) 2px var(--s3)}
.ms-lista-cab h3{font-size:14px;color:var(--ink2);font-weight:600}
.ms-lista-cab b{color:var(--ink)}

/* cartões: 1 coluna no celular, 2 no desktop; informação em linhas, ações embaixo */
.ms-lista{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:1000px){ .ms-lista{grid-template-columns:1fr 1fr} }
.ms-card{position:relative;background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);
  padding:var(--s4);display:flex;flex-direction:column;gap:12px;transition:border-color var(--t-fast)}
.ms-card:hover{border-color:var(--line2)}
.ms-card.sel{border-color:var(--ac);background:var(--ac-soft)}
.ms-topo{display:flex;align-items:center;gap:12px;min-width:0;padding-right:40px}
.ms-av{position:relative;flex:none}
.ms-av .papo-on{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;
  background:var(--ok);border:2px solid var(--sf)}
.ms-tx{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.ms-nome{font-size:15px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ms-selos{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ms-on{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ok)}
.ms-on i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:msPulsa 1.6s ease-in-out infinite}
@keyframes msPulsa{50%{opacity:.4}}
.ms-off{font-size:11.5px;color:var(--ink4)}
.ms-linha{font-size:12.5px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-acoes{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.ms-acoes .btn{flex:1;justify-content:center;min-width:0;white-space:nowrap}
.ms-sel{position:absolute;top:var(--s4);right:var(--s4);width:26px;height:26px;border-radius:50%;
  border:2px solid var(--line2);background:transparent;color:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all var(--t-fast)}
.ms-sel svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ms-sel:hover{border-color:var(--ac)}
.ms-card.sel .ms-sel{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}

/* barra fixa de envio quando há selecionados */
.ms-bar{position:sticky;bottom:calc(var(--bnav-h, 0px) + 10px);z-index:60;margin-top:var(--s4);
  display:flex;align-items:center;gap:12px;padding:10px 10px 10px var(--s4);
  background:var(--sf);border:1px solid var(--ac-line, var(--ac));border-radius:var(--r-full);box-shadow:var(--shadow-lg)}
.ms-bar b{flex:1;font-size:13.5px;color:var(--ink)}
.ms-bar .btn{border-radius:var(--r-full)}

/* ---- compositor ---- */
.cp-quem{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s4)}
.cp-quem span{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink2);
  background:var(--sf3);border:1px solid var(--line);border-radius:var(--r-full);padding:3px 10px 3px 4px}
.cp-mais{padding:3px 10px !important}
.cp-sec{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink4);
  margin:var(--s5) 0 8px;display:flex;align-items:baseline;gap:8px}
.cp-sec:first-child{margin-top:0}
.cp-sec small{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink4)}
.cp-canais{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cp-canais button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:12px 6px 10px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--sf2);
  color:var(--ink3);cursor:pointer;transition:all var(--t-fast)}
.cp-canais button b{font-size:12.5px;color:var(--ink2)}
.cp-canais button small{font-size:10px;color:var(--ink4);text-align:center;line-height:1.25}
.cp-canais button .cp-ic{width:30px;height:30px;border-radius:50%;background:var(--sf3);
  display:flex;align-items:center;justify-content:center}
.cp-canais button .cp-ic svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cp-canais button:disabled{opacity:.35;cursor:not-allowed}
.cp-canais button:not(:disabled):hover{border-color:var(--line2)}
.cp-canais button.on{border-color:var(--ac);background:var(--ac-soft)}
.cp-canais button.on b,.cp-canais button.on .cp-ic{color:var(--ac)}
.cp-canais button.on .cp-ic{background:var(--ac);color:var(--ac-ink)}
.cp-ok{position:absolute;top:-7px;right:-7px;width:18px;height:18px;border-radius:50%;
  background:var(--ac);color:var(--ac-ink);display:none;align-items:center;justify-content:center;font-style:normal}
.cp-ok svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.cp-canais button.on .cp-ok{display:flex}
.cp-modelos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cp-modelos button{position:relative;display:flex;align-items:center;gap:9px;padding:10px 11px;
  border:1.5px solid var(--line);border-radius:var(--r);background:var(--sf2);color:var(--ink2);
  cursor:pointer;text-align:left;transition:all var(--t-fast)}
.cp-modelos button b{font-size:12.5px;font-weight:600;flex:1;min-width:0}
.cp-modelos button small{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ac);flex:none}
.cp-modelos button .cp-ic{width:26px;height:26px;border-radius:var(--r-sm);background:var(--sf3);flex:none;
  display:flex;align-items:center;justify-content:center;color:var(--ink3)}
.cp-modelos button .cp-ic svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cp-modelos button:hover{border-color:var(--line2)}
.cp-modelos button.on{border-color:var(--ac);background:var(--ac-soft);color:var(--ink)}
.cp-modelos button.on .cp-ic{background:var(--ac);color:var(--ac-ink)}
.cp-texto{width:100%;resize:vertical;line-height:1.5}
.cp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cp-tags button{border:1px dashed var(--line2);background:none;color:var(--ink3);font-family:var(--mono);
  font-size:11px;padding:3px 8px;border-radius:var(--r-full);cursor:pointer;transition:all var(--t-fast)}
.cp-tags button:hover{border-color:var(--ac);color:var(--ac)}
.cp-bolha{background:var(--ok-soft);border:1px solid transparent;border-radius:14px 14px 14px 4px;
  padding:11px 14px;font-size:13.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap;word-break:break-word}
.cp-previa-rod{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;
  font-size:12px;color:var(--ink4);flex-wrap:wrap}

/* ---- automáticas + visto de envio ---- */
.ms-visto{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ac);margin-top:2px}
.ms-visto svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ma-master{padding:12px 14px;border:1.5px solid var(--ac);border-radius:var(--r);background:var(--ac-soft);margin-bottom:4px}
.ma-linha{padding:10px 4px;border-bottom:1px solid var(--line)}
.ma-linha:last-of-type{border-bottom:0}
.ma-master .tx,.ma-linha .tx{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.ma-master b,.ma-linha b{font-size:13.5px;color:var(--ink)}
.ma-master small,.ma-linha small{font-size:11.5px;color:var(--ink4)}
.ma-linha input:disabled~.tx{opacity:.45}
.tg.ma-linha,.tg.ma-master{display:flex;width:100%}
.tg.ma-linha i,.tg.ma-master i{flex:none}
.ms-passo{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink3);margin-top:2px}
.ms-passo b{color:var(--ink2);font-weight:600}
.ms-passo svg{width:11px;height:11px;stroke:var(--ac);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ============ BACKUP ============ */
.bk-status .bk-st-rotulo{font-weight:800;font-size:18px;margin-bottom:10px}
.bk-st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.bk-st-grid .bk-k{display:block;font-size:12px;color:var(--ink2);margin-bottom:2px}
.bk-acoes{display:flex;flex-wrap:wrap;gap:10px}
.bk-pacote{border:1px solid var(--linha,#2a2f3a);border-radius:12px;padding:14px}
.bk-pc-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.bk-selo{font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px}
.bk-selo.ok{background:rgba(34,197,94,.15);color:#22c55e}
.bk-selo.erro{background:rgba(239,68,68,.15);color:#ef4444}
.bk-problemas{background:rgba(239,68,68,.08);border-radius:10px;padding:10px 12px;font-size:13px}
.bk-chips{display:flex;flex-wrap:wrap;gap:6px}
.bk-chip{background:var(--sf3);border-radius:99px;padding:3px 10px;font-size:12px}
.bk-periodo{border-top:1px solid var(--linha,#2a2f3a);padding:12px 0}
.bk-periodo h4{margin:0 0 4px}
.bk-fotos{display:flex;flex-wrap:wrap;gap:8px}
.bk-foto{width:110px;height:110px;object-fit:cover;border-radius:10px}

/* ============ RELATÓRIO DE AGENDA (mural A4 / tela) ============ */
.agr{--p-ink:#0F1720;--p-ink2:#5B6772;--p-ink3:#94A3B8;--p-line:#E5EAE0;--p-soft:#F3F6F2;--p-ac:#A6CE39;--p-ac2:#5E8F1E;
  background:#fff;color:var(--p-ink);max-width:820px;margin:0 auto;padding:28px 30px 20px;border-radius:18px;
  box-shadow:0 12px 40px rgba(0,0,0,.35);font-family:Inter,system-ui,Arial,sans-serif}
.agr h1,.agr h3,.agr b{color:var(--p-ink)}
.agr-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--p-ink)}
.agr-marca{display:flex;align-items:center;gap:10px}
.agr-marca img{width:40px;height:40px;border-radius:10px;object-fit:cover}
.agr-marca b{display:block;font-size:15px}.agr-marca span{font-size:12px;color:var(--p-ink2)}
.agr-titulo{text-align:right}.agr-titulo small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--p-ink2)}
.agr-titulo h1{margin:0;font-size:30px;font-weight:900;letter-spacing:-.02em}
.agr-hero{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;margin:18px 0 14px;padding:18px 22px;border-radius:16px;
  background:linear-gradient(135deg,var(--p-soft),#fff);border:1px solid var(--p-line);border-left:8px solid var(--ritmo)}
.agr-hero-n{display:flex;align-items:baseline;gap:10px}.agr-hero-n b{font-size:64px;font-weight:900;line-height:1;letter-spacing:-.04em}
.agr-hero-n span{font-size:13px;color:var(--p-ink2);line-height:1.15}
.agr-ritmo{display:inline-block;padding:4px 12px;border-radius:99px;background:var(--ritmo);color:#fff;font-weight:800;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.agr-hero-tx p{margin:8px 0 4px;font-size:15px;font-weight:600}.agr-hero-meta{font-size:12px;color:var(--p-ink2)}
.agr-hero-mini{display:flex;flex-direction:column;gap:8px;text-align:right}
.agr-hero-mini b{display:block;font-size:22px;font-weight:800}.agr-hero-mini span{font-size:11px;color:var(--p-ink2)}
.agr-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.agr-kpi{border:1px solid var(--p-line);border-radius:12px;padding:10px 8px;text-align:center;border-top:4px solid var(--p-ink3)}
.agr-kpi b{display:block;font-size:26px;font-weight:900;line-height:1.1}.agr-kpi span{font-size:11px;color:var(--p-ink2)}
.agr-kpi.ok{border-top-color:#22C55E}.agr-kpi.bad{border-top-color:#EF4444}.agr-kpi.warn{border-top-color:#F59E0B}.agr-kpi.ac{border-top-color:var(--p-ac)}
.agr-alerta{margin-top:10px;font-size:12px;color:#92400E;background:#FEF3C7;border-radius:10px;padding:8px 12px}
.agr-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.agr-box{border:1px solid var(--p-line);border-radius:14px;padding:14px 16px;margin-top:12px;break-inside:avoid}
.agr-grid2 .agr-box{margin-top:0}
.agr-box h3{margin:0 0 8px;font-size:14px;font-weight:800}.agr-box h3 small{font-weight:500;color:var(--p-ink2);margin-left:6px;font-size:11px}
.agr-svg{width:100%;height:auto;display:block}
.agr-donut{display:flex;align-items:center;gap:16px}.agr-leg{font-size:13px;margin:4px 0;display:flex;align-items:center;gap:8px}
.agr-leg i{width:12px;height:12px;border-radius:4px;display:inline-block}.agr-leg b{margin-left:auto}
.agr-bh{display:grid;grid-template-columns:120px 1fr 28px;align-items:center;gap:8px;font-size:13px;margin:6px 0}
.agr-bh-k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agr-bh-bar{height:12px;background:var(--p-soft);border-radius:99px;overflow:hidden}.agr-bh-bar i{display:block;height:100%;background:var(--p-ac2);border-radius:99px}
.agr-bh b{text-align:right}
.agr-tab{width:100%;border-collapse:collapse;font-size:13px}.agr-tab td{padding:6px 4px;border-bottom:1px solid var(--p-line)}
.agr-tab td.n{text-align:right;font-weight:800;width:40px}.agr-tab td.s{text-align:right;width:90px;font-size:11px}
.agr-falta{color:#B91C1C}.agr-ok{color:#15803D}
.agr-mudo{font-size:13px;color:var(--p-ink3)}
.agr-prox-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.agr-prox-mes{border-radius:12px;padding:12px;background:var(--p-soft)}.agr-prox-mes.vazio{opacity:.6}
.agr-prox-mes>b{display:block;font-size:13px}.agr-prox-n{font-size:30px;font-weight:900;line-height:1.1}.agr-prox-n span{font-size:11px;font-weight:500;color:var(--p-ink2);margin-left:6px}
.agr-prox-l{font-size:11px;color:var(--p-ink2);margin-top:4px}.agr-prox-a{font-size:12px;margin-top:6px;font-weight:600}
.agr-sete-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.agr-sete-dia{border:1px solid var(--p-line);border-radius:10px;padding:8px 6px;min-height:70px;font-size:11px}
.agr-sete-dia.hoje{border-color:var(--p-ac);background:#F7FBEA}.agr-sete-dia>b{display:block;font-size:12px;margin-bottom:6px}
.agr-sete-it{margin:4px 0;line-height:1.2;padding-left:6px;border-left:3px solid var(--p-ac2)}.agr-sete-it.feito{border-left-color:#22C55E}.agr-sete-it.faltou{border-left-color:#EF4444}
.agr-sete-it span{display:block;font-weight:800;font-size:11px}.agr-sete-it small{display:block;color:var(--p-ink2);font-size:10px}
.agr-sete-livre{color:var(--p-ink3)}
.agr-rod{display:flex;justify-content:space-between;margin-top:16px;padding-top:10px;border-top:1px solid var(--p-line);font-size:11px;color:var(--p-ink3)}
@media (max-width:640px){
  .agr{padding:18px 14px;border-radius:12px}
  .agr-cab{flex-direction:column;align-items:flex-start}.agr-titulo{text-align:left}
  .agr-hero{grid-template-columns:1fr;gap:10px}.agr-hero-mini{flex-direction:row;text-align:left}
  .agr-kpis{grid-template-columns:repeat(3,1fr)}.agr-grid2{grid-template-columns:1fr}
  .agr-prox-grid{grid-template-columns:1fr}.agr-sete-grid{grid-template-columns:repeat(2,1fr)}
}
@media print{
  @page{size:A4 portrait;margin:8mm}
  body{background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body *{visibility:hidden}
  .agr,.agr *{visibility:visible}
  /* Relatório de avaliação do aluno (Ficha.imprimirRelatorio, aluno.js): tem CSS de impressão
     próprio por display; esta regra global de visibility o deixava invisível (4 páginas em branco).
     Libera explicitamente — o relatório segue controlando a própria impressão. */
  .rel-wrapper,.rel-wrapper *{visibility:visible}
  .agr{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;box-shadow:none;border-radius:0}
  .no-print{display:none!important}
  .agr-box,.agr-hero,.agr-kpis{break-inside:avoid}
}

/* ============ PROPOSTAS DA IA (rascunhos de treino) ============ */
.rasc-sec{border-left:4px solid var(--warn,#F59E0B)}
.rasc-card{border-color:rgba(245,158,11,.35)}
.rasc-meta{font-size:12px;color:var(--ink2);padding:0 var(--s4) 6px;line-height:1.4}
.rasc-just{font-size:12px;color:var(--ink3);padding:0 var(--s4) 8px;font-style:italic}
.rasc-card .mod-pe{justify-content:flex-end;gap:8px}

/* ============ CHAT DA IA (Bloco 5) — reaproveita o painel do Papo ============ */
.ia-chat .papo-cab .tx{flex:1;min-width:0}
.ia-chat .papo-cab .ia-nome{font-size:15px;font-weight:700}

/* ============ CHAT DA IA — topo premium e humano (independe do nome escolhido) ============ */
.ia-chat .ia-cab{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--line);flex:none;
  background:linear-gradient(180deg,color-mix(in srgb,var(--ac-soft) 60%,var(--sf)),var(--sf))}
.ia-chat .ia-cab-mark{width:38px;height:38px;border-radius:13px;flex:none;display:grid;place-items:center;
  background:var(--ac-soft);box-shadow:inset 0 0 0 1px var(--ac-line)}
.ia-chat .ia-cab-mark svg{width:20px;height:20px;stroke:var(--ac);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ia-chat .ia-cab-tit{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ia-chat .ia-cab-nome{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
.ia-chat .ia-cab-status{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink4);line-height:1}
.ia-chat .ia-cab-status .ia-dot{width:7px;height:7px;border-radius:50%;background:var(--ink4);flex:none}
.ia-chat .ia-cab-status.on{color:var(--ok)}
.ia-chat .ia-cab-status.on .ia-dot{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.ia-chat .ia-cab-aco{display:flex;gap:4px;flex:none}
.ia-chat .ia-cab-aco .icb{width:36px;height:36px}
/* acolhimento: estado inicial mais caloroso, sem poluir */
.ia-chat .papo-oi{max-width:280px;line-height:1.5}

/* ---- A1: cartões contextuais de recursos reais (discretos, humanos, mobile-first) ---- */
.ia-cards{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-width:100%}
.ia-card{display:block;width:100%;max-width:320px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;
  padding:11px 13px 10px;border-radius:14px;background:var(--sf);border:1px solid var(--line);
  box-shadow:0 1px 2px rgba(0,0,0,.06);transition:border-color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease)}
.ia-card:hover{border-color:var(--ac-line);transform:translateY(-1px);box-shadow:0 6px 18px -10px var(--ac-line)}
.ia-card:active{transform:translateY(0)}
.ia-card:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.ia-card.sem-acao{cursor:default;opacity:.92}
.ia-card.sem-acao:hover{transform:none;border-color:var(--line);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.ia-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.ia-card-tipo{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ac)}
.ia-card-id{font-size:10.5px;color:var(--ink4);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%}
.ia-card-nome{font-size:14.5px;font-weight:700;line-height:1.25;color:var(--ink);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ia-card-meta{font-size:12.5px;color:var(--ink3);margin-top:3px;line-height:1.35}
.ia-card-cta{margin-top:7px;font-size:12.5px;font-weight:600;color:var(--ac)}
.papo-b.minha .ia-cards{display:none}

/* ================= A2 — corpo do chat premium/humano (TUDO escopado em .ia-chat) ================= */
@media(min-width:760px){ .papo.ia-chat{width:420px} }
/* ritmo: sequências do mesmo remetente ficam juntas; troca de lado abre respiro */
.ia-chat .papo-msgs{gap:6px;padding:14px 14px 18px}
.ia-chat .papo-b.ia-primeira{margin-top:8px}
.ia-chat .papo-b:not(.minha){max-width:88%;border-radius:16px 16px 16px 6px;padding:11px 13px 9px}
.ia-chat .papo-b.minha{max-width:82%;border-radius:16px 16px 6px 16px;padding:10px 13px 8px}
.ia-chat .papo-b:not(.minha):not(.ia-primeira){border-top-left-radius:8px}
.ia-chat .papo-b:not(.minha) .papo-quando{text-align:left}
/* remetente discreto: mesma marca/nome do topo */
.ia-chat .ia-remetente{display:flex;align-items:center;gap:7px;margin:-2px 0 7px}
.ia-chat .ia-cab-mark.ia-mini{width:22px;height:22px;border-radius:8px}
.ia-chat .ia-cab-mark.ia-mini svg{width:13px;height:13px}
.ia-chat .ia-remetente-nome{font-size:12px;font-weight:700;color:var(--ink3);letter-spacing:.01em}
/* leitura: título, itens, destaque */
.ia-chat .ia-titulo{font-size:14.5px;font-weight:700;color:var(--ink);margin:0 0 5px;line-height:1.3}
.ia-chat .ia-lista.ia-itens{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ia-chat .ia-lista.ia-itens li{position:relative;padding-left:14px;font-size:14px;line-height:1.4;color:var(--ink2,var(--ink))}
.ia-chat .ia-lista.ia-itens li::before{content:'';position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--ac);opacity:.75}
.ia-chat .papo-b p+.ia-lista.ia-itens,.ia-chat .ia-lista.ia-itens+p{margin-top:6px}
.ia-chat .ia-alerta{font-weight:700;color:var(--warn)}
/* grupo compacto (>3 recursos do mesmo tipo) — mesmo contrato/clique dos cards A1 */
.ia-chat .ia-grupo{max-width:320px;border:1px solid var(--line);border-radius:14px;background:var(--sf);overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.ia-chat .ia-grupo-cab{display:flex;align-items:center;gap:4px;padding:9px 13px 7px;border-bottom:1px solid var(--line)}
.ia-chat .ia-grupo-n{font-size:10.5px;font-weight:700;color:var(--ink4)}
.ia-chat .ia-linha{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer;
  padding:9px 13px;background:transparent;border:0;border-top:1px solid var(--line);transition:background .15s var(--ease)}
.ia-chat .ia-linha:first-of-type{border-top:0}
.ia-chat .ia-linha:hover{background:var(--sf3)} .ia-chat .ia-linha:focus-visible{outline:2px solid var(--ac);outline-offset:-2px}
.ia-chat .ia-linha.sem-acao{cursor:default} .ia-chat .ia-linha.sem-acao:hover{background:transparent}
.ia-chat .ia-linha-tx{flex:1;min-width:0}
.ia-chat .ia-linha .ia-card-nome{font-size:13.5px;-webkit-line-clamp:1}
.ia-chat .ia-linha .ia-card-meta{font-size:12px;margin-top:1px}
.ia-chat .ia-linha .ia-card-id{max-width:30%}
.ia-chat .ia-linha-seta{color:var(--ac);font-weight:700;flex:none}
/* processando: uma única bolha humana */
.ia-chat .ia-digitando{align-items:center;gap:8px;padding:10px 13px;font-size:13px;color:var(--ink3)}
.ia-chat .ia-pontos{display:inline-flex;gap:4px}
/* erro mais suave + tentar de novo */
.ia-chat .papo-b.ia-erro{border-color:color-mix(in srgb,var(--bad) 35%,transparent);background:color-mix(in srgb,var(--bad) 6%,var(--sf3))}
.ia-chat .ia-retry{display:inline-flex;margin-top:8px}
/* rodapé de estado: só ocupa espaço quando tem algo a dizer */
.ia-chat .ia-estado{min-height:0;padding:0 14px}
.ia-chat .ia-estado:empty{display:none}
.ia-chat .ia-estado:not(:empty){padding:2px 14px 6px}
/* corpo + "↓ novas mensagens" */
.ia-chat .ia-corpo{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}
.ia-chat .ia-corpo .papo-msgs{flex:1}
.ia-chat .ia-novas{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:7px 13px;border-radius:var(--r-full);
  font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--sf);border:1px solid var(--ac-line);box-shadow:0 6px 18px -8px rgba(0,0,0,.5);cursor:pointer;
  animation:iaFabEntra .22s var(--ease) both}
.ia-chat .ia-novas[hidden]{display:none}
/* estado vazio acolhedor */
.ia-chat .ia-vazio{margin:auto;max-width:300px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px}
.ia-chat .ia-cab-mark.ia-vazio-mark{width:52px;height:52px;border-radius:17px;margin-bottom:4px}
.ia-chat .ia-cab-mark.ia-vazio-mark svg{width:26px;height:26px}
.ia-chat .ia-vazio-oi{font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.ia-chat .ia-vazio-sub{font-size:13.5px;color:var(--ink4);line-height:1.5}
.ia-chat .ia-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:8px}
.ia-chat .ia-chip{font:inherit;font-size:13px;color:var(--ink);padding:8px 13px;border-radius:var(--r-full);cursor:pointer;
  background:var(--sf3);border:1px solid var(--line);transition:border-color .15s var(--ease),background .15s var(--ease)}
.ia-chat .ia-chip:hover{border-color:var(--ac-line);background:var(--ac-soft)}
/* composição: textarea auto-crescente */
.ia-chat .ia-escreve{align-items:flex-end}
.ia-chat .ia-escreve textarea.inp{flex:1;min-height:42px;max-height:108px;height:42px;padding:10px 14px;border-radius:21px;resize:none;line-height:22px;overflow-y:auto;font:inherit}
.ia-chat .papo-envia:disabled{opacity:.45;cursor:default;transform:none}
.ia-chat .papo-cab>b svg{stroke:var(--ac)}
.ia-chat .papo-b p{white-space:pre-wrap}
.ia-chat .ia-lista{margin:4px 0 0 16px;font-size:14px;line-height:1.45}
.ia-chat .ia-sep{color:var(--ink4)}
.ia-chat .ia-tag{display:inline-block;margin-bottom:6px;font-size:10.5px}
.ia-chat .papo-b.ia-erro{border:1px solid var(--bad-line,rgba(220,60,60,.35))}
.ia-chat .papo-b.ia-bloqueio{border:1px dashed var(--line2)}
.ia-chat .papo-b.ia-confirmacao{border:1px solid var(--ac-line);background:var(--ac-soft)}
.ia-chat .papo-b.ia-rascunho{border:1px dashed var(--warn)}
.ia-chat .ia-conf{display:flex;gap:8px;margin-top:10px}
.ia-chat .ia-conf .btn{flex:1;justify-content:center}
.ia-chat .ia-estado{flex:none;min-height:16px;padding:0 14px 4px;text-align:center}
.ia-chat .ia-digitando{display:flex;gap:4px;padding:12px 14px}
.ia-chat .ia-digitando i{width:7px;height:7px;border-radius:50%;background:var(--ink4);animation:iaPonto 1s infinite}
.ia-chat .ia-digitando i:nth-child(2){animation-delay:.15s}.ia-chat .ia-digitando i:nth-child(3){animation-delay:.3s}
@keyframes iaPonto{0%,80%,100%{opacity:.3}40%{opacity:1}}
.ia-abrir svg{stroke:var(--ac)}

/* ================= BLOCO A3–A5 — identidade no chat (TUDO escopado em .ia-chat; não toca .papo* nem .id-chip) ================= */
/* A5: chip de ID (equivalente visual do .id-chip global; texto = ID real; rótulo "ID" via ::before) */
.ia-chat .ia-chip-id{display:inline-flex;align-items:center;gap:4px;padding:1px 7px 1px 6px;border-radius:var(--r-full);border:1px solid var(--line2);background:var(--sf3);
  color:var(--ink4);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;letter-spacing:.3px;cursor:pointer;max-width:46%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s,color .15s}
.ia-chat .ia-chip-id::before{content:'ID';font-family:inherit;font-size:8.5px;font-weight:800;letter-spacing:.06em;color:var(--ink4);opacity:.8}
.ia-chat .ia-chip-id:hover,.ia-chat .ia-chip-id:focus-visible{background:var(--ac-soft);color:var(--ink);outline:none}
.ia-chat .ia-linha .ia-chip-id{max-width:32%}
/* A5: selos de pessoa (mesma linguagem dos selos do Papo) */
.ia-chat .ia-selo{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:var(--r-full);opacity:.95;white-space:nowrap}
.ia-chat .ia-selo::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}
.ia-chat .ia-selo-al{background:var(--ac-soft);color:var(--ac)}
html[data-tema="claro"] .ia-chat .ia-selo-al{color:color-mix(in srgb,var(--ac) 58%,#000)}
.ia-chat .ia-selo-pre{background:rgba(249,115,22,.12);color:#e8760f}
.ia-chat .ia-card-pre{border-color:rgba(249,115,22,.35)}
/* A3: candidatos (botões reais) */
.ia-chat .ia-identidade{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.ia-chat .ia-identidade-tit{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink4)}
.ia-chat .ia-cand{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:9px 11px;border-radius:12px;border:1px solid var(--line);background:var(--sf2);color:var(--ink);font:inherit;cursor:pointer;
  transition:border-color .15s var(--ease),background .15s var(--ease),transform .12s var(--ease)}
.ia-chat .ia-cand:hover:not(:disabled),.ia-chat .ia-cand:focus-visible{border-color:var(--ac);background:var(--sf3);outline:none}
.ia-chat .ia-cand:active:not(:disabled){transform:scale(.99)}
.ia-chat .ia-cand:disabled,.ia-chat .ia-cand.sem-acao{cursor:default;opacity:.62}
.ia-chat .ia-cand-pre{border-color:rgba(249,115,22,.35)}
.ia-chat .ia-cand-nome{flex:1;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-chat .ia-cand .ia-chip-id{max-width:38%;flex:none}
.ia-chat .ia-identidade-dica{font-size:12.5px;color:var(--ink4);line-height:1.45;padding:6px 9px;border-radius:10px;background:var(--sf3)}
/* A3: "Falando de" — faixa fixa acima das mensagens */
.ia-chat .ia-ref{display:flex;align-items:center;gap:7px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--sf2);font-size:12.5px;color:var(--ink3);flex:none;min-width:0}
.ia-chat .ia-ref[hidden]{display:none}
.ia-chat .ia-ref-rot{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink4);flex:none}
.ia-chat .ia-ref-nome{flex:1;min-width:0;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-chat .ia-ref .ia-chip-id{max-width:30%;flex:none}
.ia-chat .ia-ref-ver{flex:none;font:inherit;font-size:12px;font-weight:700;color:var(--ac);background:none;border:0;padding:2px 4px;cursor:pointer;border-radius:8px}
.ia-chat .ia-ref-ver:hover{background:var(--ac-soft)}
/* ================= BLOCO B1–B6 — toggle/uso da IA (Config) e Uso da IA/Top 100 (Relatórios); estado desligado no chat ================= */
.cfg-ia-toggle{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--sf2)}
.cfg-ia-toggle .tg{flex:1;align-items:flex-start}
.cfg-ia-toggle .tg i{flex:none;margin-top:2px}
.cfg-ia-toggle .bd{flex:none;align-self:center}
.cfg-ia-uso{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--sf2)}
.rel-ia .bk-st-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rel-ia .bk-st-grid>div{padding:10px 12px;border-radius:12px;background:var(--sf2);border:1px solid var(--line);min-width:0}
.rel-ia .bk-k{display:block;font-size:11px;color:var(--ink4);margin-bottom:2px}
.rel-ia .bk-st-grid b{font-size:18px}
.rel-ia-perfis{font-size:13px;color:var(--ink3);line-height:2}
.rel-ia-lista{display:flex;flex-direction:column;gap:6px;max-height:520px;overflow:auto;padding-right:2px}
.rel-ia-linha{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--sf2);border:1px solid var(--line);min-width:0}
.rel-ia-pos{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;background:var(--sf3);color:var(--ink3);font-variant-numeric:tabular-nums}
.rel-ia-linha:nth-child(1) .rel-ia-pos{background:var(--ac);color:var(--ac-ink)}
.rel-ia-tx{flex:1;min-width:0}
.rel-ia-tx .n{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rel-ia-tx .s{font-size:12px;color:var(--ink4)}
.rel-ia-linha .id-chip{margin:0;flex:none}
.rel-ia-indisp{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--sf2);border:1px dashed var(--line2);color:var(--ink2)}
.rel-ia-indisp svg{width:20px;height:20px;flex:none;stroke:var(--ink4);fill:none;margin-top:2px}
@media(max-width:600px){ .rel-ia .bk-st-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .rel-ia-linha .id-chip code{max-width:70px} }
.ia-chat .ia-desligado .ia-vazio-oi{color:var(--ink2)}
.ia-chat .ia-desligado .ia-cab-mark{opacity:.55;filter:grayscale(1)}
/* ================= BLOCO C3/C4 — biblioteca (favoritos/nível/coleções, montador) · avaliação (guia de fotos, dobras) ================= */
.bib-colecoes{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 2px}
.bib-colecoes .chip svg{width:13px;height:13px;stroke:currentColor;fill:none;margin-right:4px;vertical-align:-2px}
.ex-titulo .ex-fav{display:inline-grid;place-items:center;width:32px;height:32px;margin-left:6px;border-radius:50%;border:1px solid var(--line);background:var(--sf3);color:var(--ink4);cursor:pointer;vertical-align:middle;transition:color .15s,border-color .15s,transform .12s}
.ex-titulo .ex-fav svg{width:16px;height:16px;stroke:currentColor;fill:none}
.ex-titulo .ex-fav.on{color:#F59E0B;border-color:#F59E0B;background:rgba(245,158,11,.12)}
.ex-titulo .ex-fav.on svg{fill:#F59E0B}
.ex-titulo .ex-fav:active{transform:scale(.92)}
.mnt-filtros{display:flex;gap:8px}
.mnt-filtros .bib-sel{flex:1;min-width:0}
.bib .bib-more{display:block;width:calc(100% - 16px);margin:8px auto}
.bib .bib-fim{text-align:center;font-size:11px;color:var(--ink4);padding:8px 0 10px}
/* guia de posição (silhueta) nos slots de foto — some quando a foto entra */
.fotos-3 .foto-vazia .foto-guia{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:6px 0 40px;pointer-events:none;color:var(--ink3);opacity:.6}
.fotos-3 .foto-vazia .foto-guia svg{width:auto;height:100%;max-width:70%;stroke:currentColor;fill:none;stroke-width:2.2}
.fotos-3 .foto-vazia .foto-guia em{position:absolute;left:0;right:0;bottom:40px;text-align:center;font-style:normal;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink4)}
.fotos-3 .foto-vazia:not(.tem) .foto-g{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center;z-index:1}
.fotos-3 .foto-vazia:not(.tem)>span:not(.foto-guia):not(.foto-g){position:absolute;left:0;right:0;bottom:5px;text-align:center;font-weight:700;color:var(--ink2);z-index:1}
.fotos-3 .foto-vazia.tem .foto-guia{display:none}
.fotos-3 .foto-vazia:hover .foto-guia{opacity:.8;color:var(--ac)}
.av-incompleto{grid-column:1/-1;display:flex;gap:8px;align-items:flex-start;color:#B45309;background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.35)}
.av-incompleto svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;margin-top:2px}
/* ============ FAB do Assistente — bolha flutuante rotulada (descoberta) ============ */
.ia-fab{position:fixed;right:16px;z-index:60;
  bottom:calc(var(--bnav-h) + 14px + env(safe-area-inset-bottom,0));
  display:inline-flex;align-items:center;gap:9px;padding:11px 16px 11px 13px;
  border:1px solid var(--ac-line);border-radius:var(--r-full);cursor:pointer;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ac) 20%,var(--sf)),var(--sf));
  color:var(--ink);font-size:14px;font-weight:600;line-height:1;
  box-shadow:0 6px 22px -6px var(--ac-line),0 2px 8px rgba(0,0,0,.18);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),padding .22s var(--ease),opacity .2s var(--ease);
  animation:iaFabEntra .32s var(--ease) both}
.ia-fab:hover{transform:translateY(-2px);box-shadow:0 10px 26px -6px var(--ac-line),0 3px 10px rgba(0,0,0,.22)}
.ia-fab:active{transform:translateY(0) scale(.97)}
.ia-fab .ia-fab-ic{display:inline-flex;align-items:center;justify-content:center;flex:none}
.ia-fab .ia-fab-ic svg{width:22px;height:22px;stroke:var(--ac);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 0 5px var(--ac-line))}
.ia-fab .ia-fab-rot{white-space:nowrap;max-width:120px;overflow:hidden;transition:max-width .22s var(--ease),opacity .18s var(--ease),margin .22s var(--ease)}
.ia-fab.mini{padding:11px;gap:0}
.ia-fab.mini .ia-fab-rot{max-width:0;opacity:0;margin:0}
.ia-fab.oculto{opacity:0;pointer-events:none;transform:translateY(8px) scale(.9)}
@media(min-width:1000px){ .ia-fab{bottom:24px;right:24px} }
@keyframes iaFabEntra{from{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:none}}

/* ---- Imagem personalizada da IA (marca do chat + ícone do FAB) ---- */
.ia-marca-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.ia-chat .ia-cab-mark.tem-foto{overflow:hidden;padding:0}
.ia-chat .ia-cab-mark.tem-foto svg{display:none}
.ia-fab .ia-fab-ic.tem-foto{width:26px;height:26px;border-radius:9px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--ac-line)}
.ia-fab .ia-fab-ic.tem-foto svg{display:none}
.ia-fab .ia-fab-ic.tem-foto .ia-marca-img{filter:none}

/* ---- Config › Assistente: caixa de imagem da IA ---- */
.as-img-row{display:flex;align-items:center;gap:14px}
.as-img-cx{width:56px;height:56px;border-radius:15px;flex:none;display:grid;place-items:center;cursor:pointer;overflow:hidden;
  background:var(--ac-soft);box-shadow:inset 0 0 0 1px var(--ac-line);transition:box-shadow .18s var(--ease)}
.as-img-cx:hover{box-shadow:inset 0 0 0 1px var(--ac)}
.as-img-cx .as-img-def{display:grid;place-items:center;width:100%;height:100%}
.as-img-cx .as-img-def svg{width:26px;height:26px;stroke:var(--ac);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.as-img-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.as-img-txt>b{font-size:14px;color:var(--ink)}
.as-img-aco{display:flex;flex-wrap:wrap;gap:8px}
@media(prefers-reduced-motion:reduce){.ia-fab,.ia-fab .ia-fab-rot{animation:none;transition:none}}

@media(prefers-reduced-motion:reduce){.ia-chat .ia-digitando i{animation:none}}

/* ============ IDENTIDADE VISUAL — ID do usuário (Bloco 8B) ============ */
.id-chip{display:inline-flex;align-items:center;gap:5px;margin:4px auto 0;padding:2px 8px;border-radius:var(--r-full);
  border:1px solid var(--line2);background:var(--sf3);color:var(--ink3);font-size:11px;cursor:pointer;max-width:100%;transition:background .15s,color .15s}
.id-chip:hover{background:var(--ac-soft);color:var(--ink)}
.id-chip svg{width:12px;height:12px;stroke:currentColor;fill:none;flex:none}
.id-chip code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.id-card{display:flex;flex-direction:column;align-items:center;gap:4px;margin:12px auto 2px;padding:12px 16px;
  border:1px dashed var(--ac-line);background:var(--ac-soft);border-radius:var(--r-lg);max-width:340px}
.id-card-rot{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ac)}
.id-card-val{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ac-line);background:var(--sf);
  color:var(--ink);border-radius:var(--r-full);padding:6px 14px;cursor:pointer;transition:transform .1s}
.id-card-val:active{transform:scale(.97)}
.id-card-val code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;font-weight:600;letter-spacing:.5px;word-break:break-all}
.id-card-val svg{width:15px;height:15px;stroke:var(--ac);fill:none;flex:none}
.id-card-dica{font-size:10.5px;color:var(--ink4)}

/* ============ ID: chip compacto mais legível (Bloco 8C) ============ */
.id-chip{gap:6px;padding:3px 9px 3px 7px}
.id-chip .id-chip-rot{font-size:9.5px;font-weight:800;letter-spacing:.6px;color:var(--ink4);text-transform:uppercase}
.id-chip:hover .id-chip-rot{color:var(--ac)}
.papo-perfil-id{margin:8px auto 2px;display:flex;justify-content:center}

/* ============ HERO da HOME do aluno (Bloco 8C) — pronto para Story ============ */
.aluno-hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:clamp(10px,2.6svh,18px) 16px clamp(12px,2.8svh,20px);margin:-4px -4px clamp(10px,2svh,14px);border-radius:var(--r-lg);overflow:hidden;isolation:isolate}
.aluno-hero::before{content:'';position:absolute;inset:0;z-index:-1;
  background:radial-gradient(120% 90% at 50% -10%, var(--ac-soft) 0%, transparent 62%);opacity:.9}
.aluno-hero::after{content:'';position:absolute;left:50%;top:2px;width:clamp(150px,52vw,210px);height:clamp(150px,52vw,210px);transform:translateX(-50%);z-index:-1;
  background:radial-gradient(circle, var(--ac-soft) 0%, transparent 70%);filter:blur(8px);opacity:.55}
.aluno-hero-data{font-size:clamp(10.5px,3vw,12px);font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink4);margin-bottom:clamp(6px,1.5svh,14px)}
/* avatar-herói: escala junto com a tela (largura E altura) — nunca "zoom" no celular pequeno */
.aluno-hero-av{position:relative;margin:0 auto clamp(8px,1.4svh,12px);width:clamp(84px,min(26vw,15svh),132px);height:clamp(84px,min(26vw,15svh),132px);border-radius:50%;padding:4px;
  background:conic-gradient(from 210deg, var(--ac), var(--ac-line), var(--ac));box-shadow:0 10px 30px -8px var(--ac-soft),0 0 0 6px var(--sf)}
.aluno-hero-av .av{width:100%;height:100%;border:3px solid var(--sf);box-shadow:none}
.aluno-hero-av::after{content:'';position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 -14px 26px -14px rgba(0,0,0,.5)}
.aluno-hero-nome{font-size:clamp(20px,6vw,28px);line-height:1.15;font-weight:800;letter-spacing:-.02em;margin:2px 0 4px}
.aluno-hero-sub{color:var(--ink3);font-size:clamp(13px,3.6vw,14.5px);margin:0 0 2px}
.aluno-hero .frase-topo{margin-top:clamp(6px,1.4svh,10px)}
@media(min-width:760px){ .aluno-hero-av{width:120px;height:120px} .aluno-hero-nome{font-size:24px} }
@media(prefers-reduced-motion:reduce){ .aluno-hero::after{filter:none} }

/* HOME do aluno — ritmo vertical adaptativo: em telas altas fica folgado (topo→"Seu recorde" num print),
   em telas menores comprime proporcionalmente para tudo caber sem virar zoom. Público principal: mobile. */
.tela-aluno{padding-top:clamp(8px,2.2svh,20px)!important}
.casca-aluno .hero{gap:clamp(12px,3.4vw,16px);padding:clamp(14px,3.6vw,20px);margin-bottom:clamp(10px,2svh,20px)}
.casca-aluno .hero-anel,.casca-aluno .hero-anel svg{width:clamp(78px,22vw,108px);height:clamp(78px,22vw,108px)}
.casca-aluno .hero-anel-c b{font-size:clamp(19px,5.4vw,24px)}
.casca-aluno .tri-cards{gap:clamp(8px,2.4vw,10px);margin-bottom:clamp(10px,2svh,20px)}
.casca-aluno .tri{padding:clamp(10px,2.8vw,14px) 10px}
.casca-aluno .tri b{font-size:clamp(20px,5.6vw,24px)}

/* ============ DEPOIMENTOS — estilo post de rede social (Bloco depoimentos) ============ */
.depo-meus{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.depo-post{background:var(--sf);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 14px 15px}
.depo-post-top{display:flex;align-items:center;gap:10px;margin-bottom:11px}
.depo-post-av{width:40px;height:40px;flex:none}
.depo-post-av .av{width:100%;height:100%;font-size:14px}
.depo-post-id{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.depo-post-quem{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.depo-post-quando{font-size:11.5px;color:var(--ink4);margin-top:1px}
.depo-post-acoes{display:flex;gap:2px;flex:none;margin:-4px -6px -4px 0}
.depo-post-acoes .icb{width:34px;height:34px}
.depo-post-acoes .icb svg{width:16px;height:16px}
.depo-post .depo-x:hover svg{stroke:var(--bad)}
.depo-post-foto{width:100%;border-radius:var(--r);margin-bottom:11px;display:block;max-height:300px;object-fit:cover}
.depo-post-txt{font-size:14.5px;color:var(--ink);line-height:1.5;word-wrap:break-word}
.depo-post-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.depo-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--r-full);
  background:var(--sf3);color:var(--ink3);border:1px solid var(--line2)}
.depo-tag svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.depo-tag-ac{background:var(--ac-soft);color:var(--ac);border-color:var(--ac-line)}
.depo-tag-ac svg{stroke:var(--ac);fill:var(--ac)}
html[data-tema="claro"] .depo-tag-ac{color:color-mix(in srgb,var(--ac) 60%,#000)}
.depo-tag-like{background:color-mix(in srgb,#ff5a7a 16%,var(--sf3));color:#ff6b86;border-color:color-mix(in srgb,#ff5a7a 32%,transparent)}
.depo-post-resp{display:flex;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.depo-post-resp-av{width:30px;height:30px;border-radius:50%;flex:none;overflow:hidden;display:grid;place-items:center;background:var(--ac-soft)}
.depo-post-resp-av img{width:100%;height:100%;object-fit:cover}
.depo-post-resp-av svg{width:15px;height:15px;stroke:var(--ac);fill:none;stroke-width:2}
.depo-post-resp-tx{flex:1;min-width:0}
.depo-post-resp-quem{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ac)}
html[data-tema="claro"] .depo-post-resp-quem{color:color-mix(in srgb,var(--ac) 60%,#000)}
.depo-post-resp-rot{font-weight:500;color:var(--ink4)}
.depo-post-resp-txt{font-size:13.5px;color:var(--ink2);line-height:1.45;margin-top:3px;word-wrap:break-word}

/* ============ SINO: ver todas + apagar (aluno / pré-aluno / personal) ============ */
.noti-cab-aco{display:flex;gap:12px;align-items:center;flex:none}
.lk-aco{background:none;border:0;padding:0;font-size:11.5px;font-weight:600;color:var(--ac);cursor:pointer;white-space:nowrap}
html[data-tema="claro"] .lk-aco{color:color-mix(in srgb,var(--ac) 60%,#000)}
.lk-aco:active{opacity:.6}
.lk-aco-del{color:var(--ink4)}
.lk-aco-del:hover{color:var(--bad)}
.noti-cont{font-size:11px;color:var(--ink4);font-weight:600}
.noti-panel .noti .noti-main{display:flex;gap:10px;align-items:flex-start;flex:1;min-width:0;cursor:pointer}
.noti-panel .noti .noti-del{flex:none;width:30px;height:30px;border-radius:8px;border:0;background:transparent;
  color:var(--ink4);cursor:pointer;display:grid;place-items:center;align-self:center;transition:background .15s,color .15s}
.noti-panel .noti .noti-del:hover{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.noti-panel .noti .noti-del:active{transform:scale(.9)}
.noti-panel .noti .noti-del svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}

/* ============ PAPO — cabeçalho da conversa (pré-aluno) mais limpo ============ */
.papo-cab .tx{min-width:0}
.papo-cab-nome{display:flex;align-items:center;gap:6px;min-width:0;font-size:15px;font-weight:700}
.papo-cab-nome-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.papo-cab .papo-selo{flex:none}
.papo-cab-sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* barra de conversão do pré-aluno: ação destacada, fora do cabeçalho lotado */
.papo-pre-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;flex:none;
  border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--ac-soft),transparent 90%)}
.papo-pre-bar-tx{flex:1;min-width:0;display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink3);font-weight:500}
.papo-pre-bar-tx>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.papo-pre-bar-tx svg{width:16px;height:16px;flex:none;stroke:var(--ac);fill:none;stroke-width:2}
html[data-tema="claro"] .papo-pre-bar-tx svg{stroke:color-mix(in srgb,var(--ac) 60%,#000)}
.papo-pre-btn{flex:none;white-space:nowrap}

/* ============ D2: voz nativa do assistente (🎤 ditado + 🔊 leitura) ============ */
.ia-chat .ia-mic{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center}
.ia-chat .ia-mic.gravando{color:var(--ac);border-color:var(--ac-line);background:var(--ac-soft);animation:iaMicPulso 1.2s ease-in-out infinite}
.ia-chat .ia-mic:disabled{opacity:.45;cursor:default;animation:none}
@keyframes iaMicPulso{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 6px var(--ac-soft)}}
@media (prefers-reduced-motion: reduce){.ia-chat .ia-mic.gravando{animation:none}}
.ia-chat .ia-ouvir{display:inline-flex;align-items:center;gap:6px;margin-top:8px;margin-right:6px}
.ia-chat .ia-voz.on{color:var(--ac)}
