/* Tela de administração. É a única parte do app em português: só o dono a vê,
   e os dados que ela mostra vêm do servidor, que os nega a quem não tem a chave. */

.ad-dialog{width:min(620px,calc(100% - 16px));max-height:92dvh;margin:auto;padding:0;border:0;border-radius:24px;
 background:oklch(.985 .006 300);color:oklch(.2 .08 298);overflow:auto}
.ad-dialog::backdrop{background:oklch(.16 .07 298 / .7)}
.ad{padding:22px 20px 26px}
.ad-top{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.ad-top h2{flex:1;font-family:'Nunito',sans-serif;font-size:25px;font-weight:900}
.ad-cerrar{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
 background:oklch(.93 .02 300);color:oklch(.32 .1 298)}
.ad-error{padding:13px 15px;border-radius:13px;background:oklch(.9 .09 25);color:oklch(.35 .13 25);font-weight:700;margin-bottom:14px}
.ad-vacio{padding:26px 6px;text-align:center;color:oklch(.5 .04 298);line-height:1.5}

.ad-resumen{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:18px}
.ad-dato{padding:13px 10px;border-radius:15px;background:oklch(.94 .02 300);text-align:center}
.ad-dato--ancho{grid-column:1/-1;background:oklch(.93 .05 150)}
.ad-dato strong{display:block;font-family:'Nunito',sans-serif;font-size:23px;font-weight:900}
.ad-dato small{display:block;margin-top:3px;font-size:11px;color:oklch(.45 .04 298);line-height:1.3}
.ad-aviso{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:13px;
 background:oklch(.94 .07 90);color:oklch(.34 .09 70);font-size:13px;line-height:1.5}
.ad-aviso svg{flex:none;width:19px;height:19px;margin-top:1px}

.ad-buscar{display:flex;align-items:center;gap:9px;padding:0 14px;border-radius:14px;background:oklch(.94 .02 300)}
.ad-buscar svg{flex:none;width:19px;height:19px;color:oklch(.45 .06 298)}
.ad-buscar input{flex:1;min-width:0;padding:13px 0;border:0;outline:0;background:none;font-size:15px;color:inherit}
.ad-conta{margin:12px 2px 8px;font-size:12px;color:oklch(.5 .04 298)}

.ad-tabla{display:grid;gap:8px}
.ad-fila{display:grid;gap:5px;padding:13px 14px;border-radius:15px;background:oklch(.96 .012 300);text-align:left;color:inherit}
.ad-fila:hover{background:oklch(.92 .03 300)}
.ad-fila-top{display:flex;align-items:center;gap:10px}
.ad-fila-top strong{flex:1;min-width:0;font-family:'Nunito',sans-serif;font-size:16px;font-weight:800;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-correo{font-size:13px;color:oklch(.45 .05 298);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-fila-pie{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:oklch(.48 .04 298)}
.ad-estado{font-style:normal;font-size:11px;font-weight:800;padding:4px 9px;border-radius:999px;white-space:nowrap}
.ad-estado--ok{background:oklch(.88 .12 152);color:oklch(.32 .12 152)}
.ad-estado--no{background:oklch(.89 .08 25);color:oklch(.38 .13 25)}
.ad-paquete{font-weight:800;text-transform:capitalize}
.ad-paquete--revisar{color:oklch(.52 .15 60)}

.ad-ficha{margin-top:18px;padding:18px 16px;border-radius:18px;background:oklch(1 0 0);
 box-shadow:0 10px 30px -18px oklch(.2 .08 298 / .9);border:1px solid oklch(.9 .02 300)}
.ad-ficha-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}
.ad-ficha-top h3{font-family:'Nunito',sans-serif;font-size:20px;font-weight:900}
.ad-ficha-top p{font-size:13px;color:oklch(.47 .05 298);margin-top:2px;word-break:break-all}
.ad-pares{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.ad-par{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:oklch(.96 .012 300)}
.ad-par span{font-size:11px;color:oklch(.5 .04 298)}
.ad-par strong{font-size:14px;word-break:break-word}
.ad-sub{margin:18px 0 9px;font-family:'Nunito',sans-serif;font-size:15px;font-weight:800}
.ad-eventos{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.ad-eventos li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 12px;
 border-radius:11px;background:oklch(.96 .012 300);font-size:12px}
.ad-ev-nombre{font-weight:800}
.ad-ev-nombre em{font-style:normal;font-weight:700;color:oklch(.52 .15 60)}
.ad-ev-fecha{color:oklch(.5 .04 298)}

@media(max-width:430px){
 .ad{padding:18px 14px 22px}
 .ad-resumen{grid-template-columns:repeat(2,1fr)}
 .ad-pares{grid-template-columns:1fr}
 .ad-top h2{font-size:22px}
}

/* Liberar e cortar na mão: é o que evita ficar preso quando alguém compra com
   um correio e usa outro, ou quando o aviso da Hotmart falha. */
.ad-liberar{margin-top:10px;padding:12px 14px;border-radius:14px;background:oklch(.95 .015 300)}
.ad-liberar summary{display:flex;align-items:center;gap:8px;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;cursor:pointer}
.ad-liberar summary svg{width:18px;height:18px}
.ad-liberar p{margin:10px 0;font-size:12px;line-height:1.5;color:oklch(.47 .04 298)}
.ad-liberar input,.ad-liberar select{width:100%;padding:11px 12px;margin-bottom:8px;border:1px solid oklch(.86 .03 300);
 border-radius:11px;background:oklch(1 0 0);font-size:14px;color:inherit;outline:0}
.ad-liberar input:focus,.ad-liberar select:focus{border-color:oklch(.6 .17 300)}
.ad-liberar-fila{display:flex;gap:8px;align-items:center}
.ad-liberar-fila select{flex:1;margin:0}
.ad-boton{flex:none;padding:11px 18px;border-radius:11px;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;
 color:white;background:oklch(.55 .2 300)}
.ad-boton--corte{background:oklch(.55 .18 25)}
.ad-acciones{margin-top:16px;display:flex;justify-content:flex-end}

/* O aviso de token recusado é o único que significa "está tudo parado agora":
   enquanto ele estiver aí, nenhuma compra vira acesso sozinha. Por isso é
   vermelho, e não da cor dos outros avisos, que são só "olhe isto depois". */
.ad-aviso.ad-grave{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}
.ad-aviso.ad-grave code{background:#fff;border:1px solid #fecaca;border-radius:6px;padding:1px 5px;font-size:.92em;word-break:break-all}
