:root{
  --teal:#006373;--teal-d:#00222d;--teal-m:#036f80;--cyan:#12a0b6;--ink:#231f20;--mut:#5d676d;
  --bg:#eef1f3;--line:#dce2e6;
  --c-ruim:#d0473f;--c-regular:#eaa12f;--c-bom:#8fb339;--c-otimo:#12a0b6;--c-exc:#006373;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}
.hide{display:none!important}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:560px;color:#fff;overflow:hidden;background:var(--teal-d)}
.hero .foto{position:absolute;inset:0;background:url(https://www.jmendes.com.br/jmn/wp-content/uploads/banner-minerio.jpg) center/cover}
.hero .veu{position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,24,32,.86) 0%,rgba(0,60,72,.62) 55%,rgba(0,99,115,.35) 100%)}
.hero .topo{position:absolute;inset:0;background:url(contornos-claro.svg) center/cover;opacity:.7}
.hero .forma{position:absolute;left:0;top:0;width:min(440px,60vw);height:190px;z-index:2}
.hero .forma svg{display:block;width:100%;height:100%}
.hero .logo{position:absolute;z-index:3;left:clamp(20px,4vw,56px);top:30px}
.hero .logo img{height:46px;display:block}
.nav{position:absolute;z-index:3;right:clamp(20px,4vw,56px);top:34px;display:flex;gap:30px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.nav a{color:#fff;text-decoration:none;padding-bottom:6px;border-bottom:3px solid transparent}
.nav a.on,.nav a:hover{border-color:#fff}
.hero .txt{position:relative;z-index:3;max-width:1080px;margin:0 auto;padding:190px clamp(20px,4vw,56px) 150px}
.hero h1{margin:0;font-weight:800;font-size:clamp(34px,6.4vw,72px);line-height:1.12;text-transform:uppercase;letter-spacing:-.01em}
.hero h1 span{display:inline-block;position:relative;z-index:0}
.hero h1 span::after{content:"";position:absolute;left:-4px;right:-14px;bottom:-4px;height:42%;background:var(--cyan);z-index:-1;transform:skewX(-8deg)}
.hero h2{margin:26px 0 0;font-weight:600;font-size:clamp(16px,2.4vw,26px);line-height:1.3;text-transform:uppercase;max-width:640px;letter-spacing:.01em}
.hero .onda{position:absolute;left:0;right:0;bottom:-1px;z-index:3;line-height:0}
.hero .onda svg{width:100%;height:clamp(60px,9vw,120px);display:block}

/* ---------- SEÇÃO ---------- */
.sec{position:relative;background:var(--bg) url(contornos-escuro.svg) center top/cover;padding:10px 0 90px}
.wrap{max-width:900px;margin:0 auto;padding:0 clamp(16px,4vw,32px)}
.titulo{text-align:center;margin:0 0 44px;font-size:clamp(24px,3.4vw,38px);font-weight:300;text-transform:uppercase;letter-spacing:.02em;color:var(--teal)}
.titulo b{font-weight:800}
.sub{max-width:620px;margin:-26px auto 44px;text-align:center;color:var(--mut);font-size:15px}

.bloco{position:relative;background:#fff;border-radius:18px;padding:34px clamp(20px,4vw,44px) 38px;margin-bottom:22px;box-shadow:0 1px 2px rgba(0,34,45,.06),0 14px 40px -12px rgba(0,34,45,.16);border:1px solid rgba(0,99,115,.08)}
.bloco::before{content:"";position:absolute;left:0;top:34px;height:40px;width:5px;border-radius:0 4px 4px 0;background:var(--cyan)}
.q{display:flex;gap:16px;align-items:flex-start;margin:0 0 26px}
.q .n{flex:none;width:40px;height:40px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px}
.q h3{margin:0;font-size:clamp(17px,2.2vw,21px);font-weight:700;line-height:1.3;color:var(--teal-d)}
.q p{margin:4px 0 0;font-size:13px;color:var(--mut)}

/* escala */
.escala{display:grid;grid-template-columns:repeat(11,1fr);gap:8px}
.escala button{position:relative;aspect-ratio:1/1.08;border:1.5px solid var(--line);background:#fff;border-radius:12px;font:700 clamp(15px,2vw,20px) Montserrat;color:var(--teal-d);cursor:pointer;padding:0;transition:transform .15s,box-shadow .15s,background .15s,color .15s,border-color .15s}
.escala button::after{content:"";position:absolute;left:18%;right:18%;bottom:7px;height:4px;border-radius:2px;background:var(--cat);opacity:.9}
.escala button:hover{transform:translateY(-3px);border-color:var(--cat);box-shadow:0 8px 18px -8px var(--cat)}
.escala button.sel{background:var(--cat);border-color:var(--cat);color:#fff;transform:translateY(-3px);box-shadow:0 10px 22px -8px var(--cat)}
.escala button.sel::after{background:rgba(255,255,255,.7)}
.escala button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.faixas{display:grid;grid-template-columns:repeat(11,1fr);gap:8px;margin-top:12px}
.faixas div{grid-column:span 2;text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cat);padding-top:8px;border-top:3px solid var(--cat)}
.faixas div:first-child{grid-column:span 3}
.faixas small{display:block;font-weight:500;color:var(--mut);letter-spacing:0;text-transform:none;font-size:11px}
.sua-nota:empty{display:none}.sua-nota{margin-top:20px;display:flex;align-items:center;gap:14px;font-weight:600;color:var(--mut)}
.sua-nota .chip{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:99px;color:#fff;font-weight:700;font-size:14px}
.sua-nota .chip b{font-size:20px}

/* palestras */
.lista{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lista label{position:relative;display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;background:#fff;transition:.15s}
.lista label:hover{border-color:var(--cyan);background:#f7fcfd}
.lista input{position:absolute;opacity:0}
.lista .box{flex:none;width:24px;height:24px;border-radius:7px;border:2px solid #b8c3c9;display:grid;place-items:center;transition:.15s;margin-top:2px}
.lista .box svg{width:14px;height:14px;stroke:#fff;stroke-width:3;fill:none;opacity:0;transform:scale(.6);transition:.15s}
.lista label:has(input:checked){border-color:var(--teal);background:#effafb;box-shadow:0 0 0 1px var(--teal) inset}
.lista label:has(input:checked) .box{background:var(--teal);border-color:var(--teal)}
.lista label:has(input:checked) .box svg{opacity:1;transform:none}
.lista label:has(input:focus-visible){outline:3px solid var(--cyan);outline-offset:2px}
.lista .dt{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--teal);border-radius:6px;padding:2px 8px;margin-bottom:6px}
.lista .tt{display:block;font-weight:700;font-size:14px;line-height:1.3;text-transform:uppercase;color:var(--teal-d)}
.lista .pl{display:block;font-size:13px;color:var(--mut);margin-top:3px}

/* palavra */
.palavra{width:100%;border:0;border-bottom:3px solid var(--line);background:transparent;font:700 clamp(26px,5vw,44px) Montserrat;text-align:center;color:var(--teal);padding:10px 4px 12px;text-transform:uppercase;letter-spacing:.04em;transition:border-color .2s}
.palavra::placeholder{color:#c3ccd1;font-weight:600}
.palavra:focus{outline:none;border-color:var(--cyan)}
.dica{margin:14px 0 0;text-align:center;font-size:12.5px;color:var(--mut)}

/* enviar */
.acao{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:12px;background:var(--teal);color:#fff;border:0;border-radius:99px;padding:18px 46px;font:800 14px Montserrat;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.2s;box-shadow:0 12px 26px -10px rgba(0,99,115,.7)}
.btn:hover{background:var(--cyan);transform:translateY(-2px)}
.btn:disabled{opacity:.5;cursor:wait;transform:none}
.btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.5;fill:none}
.btn.ghost{background:#fff;color:var(--teal);box-shadow:none;border:2px solid var(--teal);padding:12px 26px;letter-spacing:.06em}
.btn.ghost:hover{background:var(--teal);color:#fff}
.erro{color:var(--c-ruim);font-weight:600;font-size:14px;text-align:center}
.seguro{font-size:12px;color:var(--mut);display:flex;align-items:center;gap:6px}

.prog{position:fixed;left:0;top:0;height:5px;width:0;background:linear-gradient(90deg,var(--cyan),#6fd3e0);z-index:50;transition:width .4s}

/* obrigado */
.ok{background:#fff;border-radius:18px;padding:56px 24px;text-align:center;box-shadow:0 14px 40px -12px rgba(0,34,45,.16)}
.ok .ic{width:84px;height:84px;margin:0 auto 20px;border-radius:50%;background:var(--teal);display:grid;place-items:center;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
.ok .ic svg{width:42px;height:42px;stroke:#fff;stroke-width:3.2;fill:none}
.ok h3{margin:0 0 10px;font-size:clamp(22px,3vw,30px);font-weight:800;text-transform:uppercase;color:var(--teal)}
.ok p{margin:0 auto;max-width:460px;color:var(--mut)}
@keyframes pop{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}

/* rodapé */
footer{position:relative;background:var(--teal-d) url(contornos-claro.svg) center/cover;color:#cfe3e7;padding:56px 0 30px}
footer .wrap{max-width:1080px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px;align-items:start}
footer img.lg{height:44px;filter:brightness(0) invert(1);margin-bottom:16px;display:block}
footer h4{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff}
footer p{margin:0;font-size:13px;line-height:1.7}
footer .esg{height:72px;filter:brightness(0) invert(1);opacity:.9}
footer .fim{max-width:1080px;margin:36px auto 0;padding:20px clamp(16px,4vw,32px) 0;border-top:1px solid rgba(255,255,255,.15);font-size:12px;opacity:.75}

@media(max-width:760px){
  .hero{min-height:480px}.hero .txt{padding:150px 20px 120px}.hero .forma{height:130px;width:78vw}.hero .logo{top:22px}.hero .logo img{height:36px}
  .nav{display:none}
  .lista{grid-template-columns:1fr}
  .escala{grid-template-columns:repeat(6,1fr);gap:8px}.escala button{aspect-ratio:1/1}
  .faixas{display:none}
  footer .wrap{grid-template-columns:1fr}
}

/* ---------- ADMIN ---------- */
.adm-top{background:#fff;border-bottom:4px solid var(--cyan);padding:14px clamp(16px,4vw,40px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
.adm-top img{height:40px}.adm-top span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.adm-hero{background:linear-gradient(110deg,var(--teal-d),var(--teal) 70%,var(--cyan));color:#fff;padding:44px 0 90px;position:relative;overflow:hidden}
.adm-hero::before{content:"";position:absolute;inset:0;background:url(contornos-claro.svg) center/cover}
.adm-hero .wrap{position:relative}
.adm-hero h1{margin:0;font-size:clamp(26px,4vw,42px);font-weight:300;text-transform:uppercase}.adm-hero h1 b{font-weight:800}
.adm-hero p{margin:6px 0 0;opacity:.85;font-size:14px}
.adm .wrap{max-width:1100px}
.painel{margin-top:-56px;position:relative;padding-bottom:60px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:22px}
.kpi{background:#fff;border-radius:16px;padding:22px 22px 20px;box-shadow:0 14px 40px -14px rgba(0,34,45,.25);border-top:4px solid var(--cyan)}
.kpi.main{background:linear-gradient(135deg,var(--teal),var(--teal-m));color:#fff;border-top-color:#6fd3e0}
.kpi b{display:block;font-size:clamp(34px,4vw,46px);font-weight:800;line-height:1.05;color:var(--teal)}.kpi.main b{color:#fff}
.kpi span{display:block;margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}.kpi.main span{color:rgba(255,255,255,.85)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 14px 40px -14px rgba(0,34,45,.2);margin-bottom:22px;border:1px solid rgba(0,99,115,.06)}
.card h3{margin:0 0 20px;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);display:flex;justify-content:space-between;align-items:center;gap:10px}
.empilhada{display:flex;height:34px;border-radius:10px;overflow:hidden;background:#eef1f3;margin-bottom:18px}
.empilhada i{display:block;height:100%;transition:width .6s}
.leg{display:grid;gap:10px}
.leg div{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}.leg em{width:12px;height:12px;border-radius:4px;flex:none}.leg span{margin-left:auto;color:var(--mut);font-weight:600}
.rank{display:grid;gap:16px}
.rank .it{font-size:13px;font-weight:600}
.rank .it div{display:flex;justify-content:space-between;gap:10px}
.rank .tr{height:10px;border-radius:6px;background:#eef1f3;margin-top:7px;overflow:hidden}.rank .tr i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--cyan));border-radius:6px}
.nuvem-card{background:var(--teal-d) url(contornos-claro.svg) center/cover;color:#fff}
.nuvem-card h3{color:#fff}
.cloud{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 26px;padding:30px 10px;min-height:260px;line-height:1.05}
.cloud span{font-weight:800;text-transform:uppercase;transition:transform .2s;cursor:default}.cloud span:hover{transform:scale(1.08)}
.nuvem-card:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0;padding:40px}
.nuvem-card:fullscreen .cloud{min-height:0;flex:1;align-content:center}
.btn.sm{padding:9px 18px;font-size:11px;letter-spacing:.08em;box-shadow:none}
.btn.sm.w{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);color:#fff}.btn.sm.w:hover{background:#fff;color:var(--teal)}
.tab-wrap{overflow:auto;max-height:520px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);text-align:left;padding:10px 12px;border-bottom:2px solid var(--line);position:sticky;top:0;background:#fff}
td{padding:12px;border-bottom:1px solid #eef1f3;vertical-align:top}
.pill{display:inline-block;white-space:nowrap;color:#fff;border-radius:99px;padding:3px 12px;font-weight:700;font-size:12px}
.login{max-width:420px;margin:-50px auto 80px;position:relative}
.login input{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:14px;font:600 16px Montserrat;margin:8px 0 18px}
.login input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(18,160,182,.2)}
.vazio{color:var(--mut);font-size:14px;text-align:center;padding:20px}
@media(max-width:820px){.grid2{grid-template-columns:1fr}}

/* identificação */
.ident-row{display:flex;gap:12px}
.mat{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:12px;padding:16px 20px;font:700 clamp(20px,3vw,26px) Montserrat;color:var(--teal-d);letter-spacing:.08em}
.mat::placeholder{color:#b4bfc5;font-weight:600;letter-spacing:0}
.mat:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(18,160,182,.2)}
.ident-row .btn{border-radius:12px;padding:0 34px}
.empresas{margin-top:18px}.empresas p{margin:0 0 10px;font-size:14px;color:var(--mut)}
.empresas button{display:block;width:100%;text-align:left;margin-bottom:8px;padding:14px 18px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:600 14px Montserrat;color:var(--teal-d);cursor:pointer;transition:.15s}
.empresas button:hover{border-color:var(--teal);background:#effafb}
.pessoa{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:14px;background:#effafb;border:1.5px solid rgba(0,99,115,.25)}
.pessoa .av{flex:none;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--cyan));color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px}
.pessoa .info{flex:1;min-width:0}.pessoa small{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.pessoa b{display:block;font-size:clamp(17px,2.4vw,21px);color:var(--teal-d);line-height:1.25}.pessoa span{font-size:13px;color:var(--mut)}
.pessoa .troca{border:0;background:none;color:var(--teal);font:700 13px Montserrat;text-decoration:underline;cursor:pointer;padding:6px}
@media(max-width:560px){.ident-row{flex-direction:column}.ident-row .btn{padding:16px;justify-content:center}.pessoa{flex-wrap:wrap}}

.part-top{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}.part-top b{font-size:clamp(32px,4vw,44px);font-weight:800;color:var(--teal)}.part-top span{color:var(--mut);font-weight:600;font-size:14px}
