*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0;background:#fff;font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:#111827}
body{min-height:100vh;display:flex;flex-direction:column;max-width:560px;margin:0 auto}
header{background:#166534;color:#fff;padding:14px 16px 12px;padding-top:calc(14px + env(safe-area-inset-top));position:sticky;top:0;z-index:5}
header.adm{background:#1E3A8A}
header h1{margin:0;font-size:19px}header p{margin:2px 0 0;font-size:12.5px;opacity:.88}
.rede{position:absolute;right:14px;top:calc(16px + env(safe-area-inset-top));font-size:11.5px;background:rgba(255,255,255,.16);border-radius:10px;padding:2px 8px}
.tela{padding:14px;flex:1}
.status{display:flex;gap:8px;margin-bottom:12px}.st{flex:1;background:#F2F4F3;border-radius:12px;padding:8px;text-align:center}
.st b{display:block;font-size:22px}.st span{font-size:11.5px;color:#555}.st.warn{background:#FEF3C7}
.lbl{font-size:12.5px;color:#555;margin:10px 0 5px;font-weight:600}
.mini{font-size:12px;color:#666;font-weight:400}.centro{text-align:center;margin-top:4px}
.pend{color:#B45309}.ok{color:#15803D}.erro{color:#B42318;font-size:13px}
.lista>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #EEE;padding:8px 2px;font-size:13.5px}
.lista small{color:#666}.lista .vazio{color:#888;justify-content:center}
.btn{display:block;width:100%;border:0;border-radius:14px;padding:15px;font:700 16px system-ui;background:#16A34A;color:#fff;margin-top:10px;cursor:pointer}
.btn:disabled{background:#A7C4B0;color:#eef}.btn.sec{background:#E5E7EB;color:#111}
.btn.mini-btn{padding:10px;font-size:14px;margin-top:6px}
.link{display:block;margin:18px auto 4px;background:none;border:0;color:#6B7280;font-size:13px;text-decoration:underline;cursor:pointer}
.pasto{background:#F0FDF4;border-radius:16px;padding:12px;margin-bottom:6px;position:relative}.pasto h2{margin:0;font-size:26px;color:#14532D}.pasto p{margin:2px 0 0;font-size:12.5px;color:#365314}
.selo{display:inline-block;margin-top:6px;margin-right:4px;background:#FEF3C7;color:#92400E;border-radius:8px;padding:2px 8px;font-size:12px;font-weight:700}
.seg{display:flex;background:#E5E7EB;border-radius:10px;padding:3px}.seg div{flex:1;text-align:center;padding:10px 4px;border-radius:8px;font-weight:700;font-size:15px;cursor:pointer;user-select:none}
.seg .on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.seg.leve .on{background:#166534;color:#fff}
.grade{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}
.grade div,.grade2 div{background:#F1F5F9;border-radius:10px;padding:13px 0;text-align:center;font-weight:700;font-size:17px;cursor:pointer;user-select:none;border:2px solid transparent}
.grade div.larga{grid-column:span 2;font-size:14px}
.grade2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.grade2 div{font-size:13.5px;padding:12px 6px;line-height:1.2;min-height:52px;display:flex;align-items:center;justify-content:center}
.grade .on,.grade2 .on{background:#16A34A;color:#fff}
.grade2.falta div{border-color:#F59E0B}
.total{text-align:center;font-size:15px;margin-top:8px;color:#14532D;font-weight:700;min-height:20px}
.campo{display:block;width:100%;font:16px system-ui;border:1px solid #CBD5E1;border-radius:10px;padding:11px;margin-top:8px;background:#fff}
.aviso{background:#FEF3C7;color:#92400E;border-radius:10px;padding:9px 10px;font-size:13px;margin:8px 0}
.aviso.verde{background:#F0FDF4;color:#14532D}
.caixa-centro{text-align:center;padding:16px 6px}.caixa-centro .ic{font-size:54px}.caixa-centro h2{margin:6px 0;color:#14532D}
.lista-botoes{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lista-botoes button{border:0;background:#F1F5F9;border-radius:10px;padding:14px 6px;font:700 15px system-ui;cursor:pointer}
.pin{display:flex;gap:10px;justify-content:center;margin:10px 0}.pin i{width:16px;height:16px;border-radius:50%;border:2px solid #1E3A8A}.pin i.on{background:#1E3A8A}
.teclado{display:grid;grid-template-columns:repeat(3,72px);gap:10px;justify-content:center}.teclado button{height:60px;border-radius:30px;border:0;background:#F1F5F9;font:700 22px system-ui;cursor:pointer}
.abas{display:flex;gap:4px;overflow-x:auto;margin-bottom:10px}.abas div{padding:8px 10px;border-radius:8px;background:#F1F5F9;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}.abas .on{background:#1E3A8A;color:#fff}
.check{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:#444;margin:10px 0}
.sup-ed{border:1px solid #E5E7EB;border-radius:10px;padding:8px;margin-bottom:8px}
.sup-ed .linha{display:flex;gap:6px;align-items:center;margin-top:6px;font-size:12.5px}.sup-ed input[type=number]{width:70px;font:15px system-ui;padding:6px;border:1px solid #CBD5E1;border-radius:8px}
.sup-ed .campo{margin-top:0}
.linha{display:flex;gap:8px}
.fundo{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:20;padding:20px}
.dialogo{background:#fff;border-radius:16px;padding:16px;max-width:420px;width:100%}.dialogo p{font-size:16px;margin:0 0 6px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#111827;color:#fff;border-radius:12px;padding:10px 14px;font-size:14px;z-index:30;max-width:90%}
.lote{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;background:#fff;border:1px solid #BBF7D0;border-radius:12px;padding:8px 10px}
.lote b{font-size:15px;color:#14532D;display:block}.lote small{display:block;font-size:12px;color:#4D7C0F;font-weight:400}
.lote a{font-size:13px;font-weight:700;color:#1D4ED8;text-decoration:underline;white-space:nowrap;cursor:pointer}
.lote.troc{border-color:#F59E0B;background:#FFFBEB}.lote.troc b{color:#92400E}.lote.troc small{color:#92400E}
.lote.vazio{border-color:#E5E7EB;background:#F9FAFB}.lote.vazio b{color:#6B7280;font-weight:600}.lote.vazio small{color:#6B7280}
.lote.escolha{display:block;border-color:#F59E0B;background:#FFFBEB}.lote.escolha b{color:#92400E}
.lote .opcs{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px}
.opc{border:2px solid #E5E7EB;border-radius:12px;padding:11px 12px;margin-bottom:6px;font-size:15px;font-weight:700;background:#fff;cursor:pointer;user-select:none}
.lote .opc{margin-bottom:0}
.opc small{display:block;font-weight:400;color:#555;font-size:12.5px;margin-top:2px}
.opc.on{border-color:#16A34A;background:#F0FDF4}
.opc .sug{display:inline-block;font-size:11px;font-weight:700;color:#15803D;background:#DCFCE7;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
.opc.nao{color:#6B7280}
.busca{margin:0 0 8px}
.visor{display:flex;align-items:baseline;justify-content:center;gap:6px;border:3px solid #CBD5E1;border-radius:16px;padding:10px;margin-top:8px;background:#fff;color:#14532D}
.visor b{font-size:48px;line-height:1.1}.visor b.vazio{color:#CBD5E1}.visor span{font-size:22px;font-weight:700}
.visor.on{border-color:#16A34A;background:#F0FDF4}
.tecl-kg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.tecl-kg button{border:0;border-radius:12px;background:#F1F5F9;font:700 28px system-ui;padding:14px 0;color:#111827;cursor:pointer;user-select:none;touch-action:manipulation}
.tecl-kg button:active{background:#DCFCE7}
.tecl-kg button.apagar{font-size:18px;color:#B42318}
#rUltima{margin-top:8px;font-size:13px;color:#4B5563}#rUltima b{color:#111827}
.linha.pilha{flex-direction:column}.linha.pilha .btn{margin-top:8px}
.dlg-tit{display:block;font-size:21px;color:#9A3412;margin-bottom:6px}
/* ---- Leitor Rochedo ---- */
.cam{position:relative;height:190px;border-radius:16px;overflow:hidden;background:#1F2937;color:#E5E7EB;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13.5px;cursor:pointer;user-select:none}
.cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cam .mira{position:absolute;left:8%;right:8%;top:30%;bottom:30%;border:2px solid rgba(255,255,255,.75);border-radius:10px;pointer-events:none}
.cam .mira i{position:absolute;left:4%;right:4%;top:50%;height:2px;background:#EF4444;box-shadow:0 0 8px #EF4444}
.cam .msg{position:relative;z-index:2;padding:10px 16px;background:rgba(17,24,39,.72);border-radius:10px;max-width:86%}
.cam.pausa video{filter:grayscale(.7) brightness(.6)}
.cam.off{height:96px}
.camlinha{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:12.5px;color:#4B5563}
.camlinha button{border:0;background:#F1F5F9;border-radius:8px;padding:6px 10px;font:600 12.5px system-ui;cursor:pointer}
.cartao{background:#fff;border:2px solid #16A34A;border-radius:14px;padding:10px 14px;margin-top:10px}
.cartao .l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:4px 0;border-bottom:1px dashed #E5E7EB}
.cartao .l:last-child{border:0}
.cartao .l span{font-size:12px;color:#6B7280;font-weight:700;letter-spacing:.5px;white-space:nowrap}
.cartao .l b{font:700 17px ui-monospace,SFMono-Regular,Menlo,monospace;color:#111;text-align:right;word-break:break-all}
.cartao .l b.txt{font:600 13px system-ui;word-break:normal}
.cartao .grande b{font-size:38px;color:#14532D;letter-spacing:1px}
.cartao.fora{border-color:#DC2626;background:#FEF2F2}.cartao.fora .grande b{color:#991B1B}
.cartao.digitado{border-color:#2563EB}
.cartao .selo-fora{display:block;font-size:13px;color:#991B1B;font-weight:700;margin-bottom:4px}
.cartao.vazio{border-style:dashed;border-color:#CBD5E1;color:#6B7280;text-align:center;padding:18px 10px;font-size:14px}
.ultimas{margin-top:8px}
.ultimas div{display:flex;gap:8px;font:12.5px ui-monospace,SFMono-Regular,Menlo,monospace;color:#374151;border-top:1px solid #E5E7EB;padding:6px 2px}
.ultimas div b{min-width:28px;color:#6B7280}.ultimas div.fora{color:#B42318}
.ultimas div small{margin-left:auto;color:#6B7280}
.contador{position:absolute;right:14px;top:calc(16px + env(safe-area-inset-top));font-size:12px;background:rgba(255,255,255,.18);border-radius:10px;padding:2px 9px;font-weight:700}
.confirma{background:#FEF3C7;border-radius:12px;padding:10px;margin-top:8px;font-size:14px;color:#78350F}
.confirma .linha .btn{margin-top:8px}
.candidatos .opc b{font-size:18px}
.rodape{text-align:center;font-size:11.5px;color:#9CA3AF;margin:18px 0 6px}
.passos li{margin:6px 0;font-size:14px;line-height:1.4}
.ajuda p,.ajuda li{font-size:14px;line-height:1.5}.ajuda h3{font-size:15px;margin:16px 0 4px;color:#14532D}
video.ajuda-video{width:100%;border-radius:12px;background:#000;margin-top:8px}
.info{background:#F2F4F3;border-radius:12px;padding:10px 12px;font-size:13px;color:#374151;margin-top:8px}
.info b{color:#111}
.sessao{border:1px solid #E5E7EB;border-radius:12px;padding:10px 12px;margin-bottom:8px}
.sessao b{display:block;font-size:15px}.sessao small{color:#6B7280;font-size:12.5px}
.sessao .linha{margin-top:6px}.sessao .linha .btn{margin-top:0;padding:10px;font-size:14px}
input.escondido{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;left:-10px}
.tecl-kg button.ok{background:#16A34A;color:#fff;font-size:20px}

.cam.pausa{height:84px}
