* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,sans-serif; background:var(--surface); color:var(--on-surface); }
button,input,select,textarea { font:inherit; }
button { min-height:40px; padding:8px 14px; border:1px solid var(--outline); border-radius:12px; background:var(--surface-container); color:var(--on-surface); cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
button.primario { background:var(--primary); color:var(--on-primary); border-color:var(--primary); }
input,select,textarea { width:100%; min-height:44px; border:1px solid var(--outline); border-radius:10px; padding:10px; background:var(--surface-container); color:var(--on-surface); }
input[type=checkbox] { width:22px; min-height:22px; }
a { color:var(--primary); }
[hidden] { display:none!important; }
header,.rev-topo { background:var(--sidebar); color:var(--on-sidebar); }
header { gap:14px; }
header nav { display:flex; flex-wrap:wrap; gap:6px; }
header nav button { margin:0; }
main,.rev-conteudo { max-width:1260px; margin:auto; padding:20px; }
.loja,.kpi,.caixa,.rev-card { background:var(--surface-container); color:var(--on-surface); border:1px solid var(--outline); border-radius:18px; padding:18px; min-width:0; }
.loja,.rev-card { margin-bottom:16px; }
.rev-card { overflow-wrap:anywhere; }
.info,.kpi .rot,.kpi .sub,.rev-suave { color:var(--on-surface-variant); }
.rev-cabecalho { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; margin-bottom:18px; }
.rev-cabecalho h1,.rev-cabecalho h2 { margin:0; }
.rev-grade { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:14px; }
.rev-acoes { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.rev-tabela { overflow-x:auto; }
.rev-tabela table { width:100%; border-collapse:collapse; }
.rev-tabela th,.rev-tabela td { border-bottom:1px solid var(--outline); padding:12px; text-align:left; white-space:normal; }
.rev-tabela th { color:var(--on-surface-variant); }
.rev-chip { display:inline-block; background:var(--secondary-container); color:var(--on-secondary-container); border-radius:8px; padding:3px 9px; font-size:13px; }
.rev-erro,#rev-mensagem[data-tipo=erro] { color:var(--on-error-container); background:var(--error-container); padding:12px; border-radius:12px; }
#rev-mensagem:not(:empty) { margin:12px auto; max-width:1220px; padding:12px; border:1px solid var(--outline); border-radius:12px; }
.rev-dialogo { width:min(680px,calc(100vw - 24px)); max-height:90vh; overflow:auto; border:1px solid var(--outline); border-radius:24px; padding:24px; background:var(--surface-container); color:var(--on-surface); }
.rev-dialogo::backdrop { background:var(--on-surface); opacity:.55; }
.rev-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.rev-form label { display:grid; gap:6px; }
.rev-form .inteiro { grid-column:1/-1; }
.rev-dialogo .rev-acoes { justify-content:flex-end; }
.rev-numero { font-size:32px; font-weight:700; margin:4px 0; }
.rev-filtros { display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; align-items:end; }
.rev-filtros label { display:grid; gap:4px; max-width:340px; }
.duas { grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); }
@media(max-width:600px) { main,.rev-conteudo { padding:12px; } .rev-form { grid-template-columns:1fr; } .rev-dialogo { padding:18px; } header { position:static; } }

.rev-candidatos{margin-bottom:16px}.rev-candidato{border-top:1px solid var(--outline);padding:12px 0}.rev-candidato p{margin:6px 0}
.rev-botao{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid var(--outline);border-radius:999px;color:var(--on-surface);text-decoration:none;font-weight:600}
.rev-cartao{max-width:760px}

.rev-aguardando{background:var(--tertiary-container);color:var(--on-tertiary-container)}.rev-recusada{background:var(--error-container);color:var(--on-error-container)}
.rev-codigo{font:800 clamp(26px,7vw,40px)/1.2 ui-monospace,Consolas,monospace;letter-spacing:.06em;text-align:center;padding:18px;border-radius:18px;background:var(--primary-container);color:var(--on-primary-container);margin:12px 0;word-break:break-all}
.rev-treino-topo{margin-bottom:14px}.rev-progresso{height:10px;border-radius:999px;background:var(--surface-container-high);overflow:hidden}.rev-progresso span{display:block;height:100%;background:var(--primary)}
.rev-modulo{margin-bottom:10px;padding:0}.rev-modulo summary{display:flex;gap:12px;align-items:center;padding:16px 18px;cursor:pointer;font-weight:700;font-size:17px;list-style:none}.rev-modulo summary::-webkit-details-marker{display:none}
.rev-modulo summary small{margin-left:auto;color:var(--on-surface-variant);font-weight:500}.rev-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--outline);display:grid;place-items:center;flex:none;font-size:14px}
.rev-modulo.feito .rev-check{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.rev-modulo-corpo{padding:0 18px 18px;line-height:1.6}.rev-modulo-corpo h3{margin:18px 0 6px;font-size:15px}
.rev-modulo-corpo li{margin:4px 0}.rev-modulo-corpo kbd{display:inline-block;padding:1px 7px;border:1px solid var(--outline);border-bottom-width:2px;border-radius:6px;font:600 13px ui-monospace,Consolas,monospace;background:var(--surface-container-high)}
.rev-tabela-simples{width:100%;border-collapse:collapse;margin:8px 0}.rev-tabela-simples td,.rev-tabela-simples th{border-top:1px solid var(--outline);padding:8px 6px;text-align:left;vertical-align:top}
