@font-face{font-family:"Viga";src:url("Viga.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Roboto";src:url("Roboto.ttf") format("truetype");font-weight:100 900;font-display:swap}
*{box-sizing:border-box}
body{margin:0;background:#f3f1ff;color:#1d1d2b;font-family:"Roboto","Helvetica Neue",Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:#150087}
.topo{background:#fff;border-bottom:1px solid #e2e2e8}
.topo-in{max-width:1040px;margin:0 auto;padding:18px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.topo img{display:block;height:34px;width:auto}
.topo .rot-topo{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#4a4a63;text-align:right}
main{max-width:880px;margin:0 auto;padding:40px 16px 56px}
.cartao{background:#fff;border:1px solid #e2e2e8;border-radius:16px;overflow:hidden;box-shadow:0 12px 40px rgba(21,0,135,.08)}
.faixa{height:8px;background:linear-gradient(90deg,#150087 0 70%,#00feff 70% 100%)}
.corpo{padding:40px 44px 36px}
.selo{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:999px;font-size:14px;font-weight:700;margin:0 0 28px}
.selo svg{width:20px;height:20px;flex:none}
.selo.valido{background:#00feff;color:#150087}
.selo.revogado{background:#1d1d2b;color:#fff}
.rotulo{font-size:15px;color:#4a4a63;margin:0 0 6px}
.cartao h1{font-family:"Viga",sans-serif;font-weight:400;font-size:44px;line-height:1.1;color:#150087;margin:0 0 22px;overflow-wrap:anywhere}
.curso{font-family:"Viga",sans-serif;font-weight:400;font-size:28px;line-height:1.2;color:#1d1d2b;margin:0 0 32px}
.nao-achou{font-family:"Viga",sans-serif;font-size:24px;margin:0 0 8px}
dl.dados{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-top:1px solid #e2e2e8}
dl.dados div{padding:18px 16px 4px 0}
dt{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#4a4a63;margin:0 0 4px}
dd{margin:0;font-size:17px;font-weight:500;color:#1d1d2b}
.id{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;letter-spacing:.04em}
.aviso{margin:28px 0 0;padding:16px 18px;border-radius:10px;background:#f3f1ff;font-size:15px}
.sobre{border-top:1px solid #e2e2e8;padding:24px 44px;background:#fbfaff;font-size:14.5px;color:#4a4a63}
.sobre p{margin:0}
.sobre strong{color:#1d1d2b}
.busca{margin:28px 0 0;background:#fff;border:1px solid #e2e2e8;border-radius:16px;padding:28px 32px}
.busca h2{font-family:"Viga",sans-serif;font-weight:400;font-size:22px;color:#150087;margin:0 0 6px}
.busca p{margin:0 0 16px;font-size:15px;color:#4a4a63}
.linha-form{display:flex;gap:10px;flex-wrap:wrap}
.oculto{position:absolute;left:-9999px}
input,textarea,select{font:inherit;font-size:16px;padding:11px 13px;border:1px solid #c9c4e6;border-radius:10px;color:#1d1d2b;background:#fff;width:100%}
input:focus,textarea:focus,select:focus{outline:2px solid #150087;outline-offset:1px;border-color:#150087}
.busca input{flex:1 1 240px;min-width:0;width:auto;text-transform:uppercase}
.btn{display:inline-block;font:inherit;font-size:15px;font-weight:700;padding:11px 20px;border:0;border-radius:10px;background:#150087;color:#fff;cursor:pointer;text-decoration:none;line-height:1.4}
.btn:hover{background:#3a1fc2}
.btn.sec{background:#fff;color:#150087;border:1px solid #c9c4e6}
.btn.sec:hover{background:#f3f1ff}
.btn.perigo{background:#1d1d2b}
.btn.peq{font-size:13px;padding:6px 12px;border-radius:8px}
footer{text-align:center;font-size:13px;color:#4a4a63;padding:0 16px 40px}

/* admin */
.adm main{max-width:1040px}
.menu{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.menu a{padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:500;font-size:15px;color:#1d1d2b}
.menu a.ativo,.menu a:hover{background:#f3f1ff;color:#150087}
.menu form{margin:0}
.menu button{background:none;border:0;font:inherit;font-size:15px;color:#4a4a63;cursor:pointer;padding:8px 12px}
.adm h1{font-family:"Viga",sans-serif;font-weight:400;font-size:32px;color:#150087;margin:0 0 6px}
.adm h2{font-family:"Viga",sans-serif;font-weight:400;font-size:22px;color:#150087;margin:0 0 14px}
.sub{color:#4a4a63;margin:0 0 28px}
.caixa{background:#fff;border:1px solid #e2e2e8;border-radius:14px;padding:24px 26px;margin:0 0 24px}
.numeros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}
.numero{background:#fff;border:1px solid #e2e2e8;border-radius:14px;padding:20px 22px}
.numero b{display:block;font-family:"Roboto",sans-serif;font-weight:900;font-size:40px;line-height:1;color:#150087;margin:0 0 8px}
.numero span{font-size:14px;color:#4a4a63}
.tabela{width:100%;border-collapse:collapse;font-size:15px}
.tabela th{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#4a4a63;font-weight:700;padding:10px 10px;border-bottom:1px solid #e2e2e8}
.tabela td{padding:11px 10px;border-bottom:1px solid #efedf7;vertical-align:top}
.tabela tr:last-child td{border-bottom:0}
.rolagem{overflow-x:auto}
.etq{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.etq.valido{background:#00feff;color:#150087}
.etq.pendente{background:#dcd7f5;color:#150087}
.etq.revogado{background:#1d1d2b;color:#fff}
.grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.campo{margin:0 0 16px}
.campo label{display:block;font-size:14px;font-weight:700;margin:0 0 6px}
.campo small{display:block;color:#4a4a63;font-size:13px;margin-top:5px}
.flash{padding:14px 18px;border-radius:10px;margin:0 0 20px;background:#00feff;color:#150087;font-weight:500}
.flash.erro{background:#1d1d2b;color:#fff}
.acoes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.acoes form{margin:0}
pre.msg{white-space:pre-wrap;background:#f3f1ff;border-radius:10px;padding:14px 16px;font-family:inherit;font-size:14px;margin:8px 0 0}
.login{max-width:420px;margin:0 auto}
.muted{color:#4a4a63;font-size:14px}
.filtro{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.filtro input{flex:1 1 260px;width:auto}
.filtro select{width:auto}

@media (max-width:760px){
 main{padding:24px 16px 40px}
 .topo img{height:28px}
 .topo .rot-topo{display:none}
 .corpo{padding:28px 22px 26px}
 .cartao h1{font-size:32px}
 .curso{font-size:22px}
 dl.dados{grid-template-columns:1fr 1fr}
 .sobre{padding:20px 22px}
 .busca{padding:22px}
 .numeros{grid-template-columns:1fr 1fr}
 .grade{grid-template-columns:1fr}
 .caixa{padding:20px}
 .topo-in{flex-wrap:wrap}
}
.rolagem + .acoes{margin-top:18px}

/* formulário de feedback */
.kicker-form{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#150087;margin:0 0 8px}
.cartao h1.h1-form{font-size:34px;margin:0 0 6px}
.intro-form{margin:18px 0 0;font-size:16px}
.form-feedback{margin-top:24px}
.bloco{background:#fff;border:1px solid #e2e2e8;border-radius:16px;padding:28px 32px;margin:0 0 20px}
.bloco h2{font-family:"Viga",sans-serif;font-weight:400;font-size:22px;color:#150087;margin:0 0 18px}
.bloco h2 small,.pergunta legend small{font-family:"Roboto",sans-serif;font-size:13px;color:#4a4a63;font-weight:400}
.pergunta{border:0;padding:0;margin:0 0 26px;min-width:0}
.pergunta legend{font-weight:700;font-size:16px;margin:0 0 10px;padding:0}
.escala{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:6px}
.escala label{position:relative}
.escala input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.escala span{display:flex;align-items:center;justify-content:center;height:44px;border:1px solid #c9c4e6;border-radius:10px;font-weight:700;color:#150087;background:#fff}
.escala input:checked + span{background:#150087;color:#fff;border-color:#150087}
.escala input:focus-visible + span{outline:2px solid #150087;outline-offset:2px}
.escala-legenda{display:flex;justify-content:space-between;font-size:12px;color:#4a4a63;margin-top:4px}
.opcoes{display:flex;flex-direction:column;gap:8px}
.opcao{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid #e2e2e8;border-radius:10px;cursor:pointer;font-size:15.5px}
.opcao input{width:18px;height:18px;margin:0;flex:none;accent-color:#150087}
.opcao:has(input:checked){border-color:#150087;background:#f3f1ff}
.btn-grande{font-size:17px;padding:14px 28px}
.h2-li{font-family:"Viga",sans-serif;font-weight:400;font-size:20px;color:#150087;margin:28px 0 6px}
dl.li{margin:10px 0 0;display:grid;gap:8px}
dl.li div{display:grid;grid-template-columns:190px 1fr;gap:12px;padding:10px 14px;background:#f3f1ff;border-radius:10px}
dl.li dd{font-size:15px;overflow-wrap:anywhere}
input[disabled]{background:#f3f1ff;color:#4a4a63}
[hidden]{display:none!important}

/* admin extra */
.copiar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#f3f1ff;border-radius:10px;padding:10px 12px}
.copiar code{flex:1 1 260px;font-size:14px;overflow-wrap:anywhere}
.check{display:flex;gap:8px;align-items:center;font-size:15px}
.check input{width:auto}
.grade-notas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 20px}
.grade-notas div{background:#f3f1ff;border-radius:10px;padding:12px 14px}
.grade-notas span{display:block;font-size:13px}
.grade-notas b{display:block;font-weight:900;font-size:28px;color:#150087}
.caixa h3{font-size:15px;margin:0 0 8px}
.barras{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px}
.barras li{display:grid;grid-template-columns:1fr auto;gap:2px 8px}
.barras i{grid-column:1/-1;height:6px;border-radius:3px;background:#e2e2e8;position:relative;overflow:hidden}
.barras i::after{content:"";position:absolute;inset:0 auto 0 0;background:#150087;border-radius:3px}
.b0::after{width:2%}.b1::after{width:10%}.b2::after{width:20%}.b3::after{width:30%}.b4::after{width:40%}.b5::after{width:50%}.b6::after{width:60%}.b7::after{width:70%}.b8::after{width:80%}.b9::after{width:90%}.b10::after{width:100%}
.notas{font-size:13.5px;white-space:nowrap}
details summary{cursor:pointer;color:#150087;font-size:13px;margin-top:4px}
details form{margin-top:6px}
details input{width:auto;flex:1 1 200px;font-size:14px;padding:7px 10px}
.depo{display:flex;gap:18px;align-items:flex-start}
.depo img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.depo-texto{font-size:17px;margin:0 0 6px}
.cresce{flex:1 1 240px;width:auto}
.acoes h2{margin:0;flex:1}
@media (max-width:760px){
 .bloco{padding:22px 18px}
 .escala{grid-template-columns:repeat(6,minmax(0,1fr))}
 .grade-notas{grid-template-columns:1fr 1fr}
 dl.li div{grid-template-columns:1fr;gap:2px}
 .menu a{padding:6px 8px;font-size:14px}
}
