/* Design herdado do Banco_de_Imagens_AON.html original. */
:root{
  --navy-900:#06263F; --navy-800:#083454; --navy-700:#0A4D8F; --azul:#0A4D8F; --azul-vivo:#1877C9;
  --laranja:#F39200; --laranja-esc:#C25A0C;
  --ink:#122333; --ink-2:#54687A; --ink-3:#8296A8;
  --bg:#EFF3F7; --card:#FFFFFF; --line:#E2E9F0; --line-2:#EDF2F7;
  --verde:#0E7A4A; --verde-bg:#E3F4EB;
  --ambar:#8A5A00; --ambar-bg:#FFF3D9;
  --rubi:#A52B2B; --rubi-bg:#FCE9E9;
  --r-sm:10px; --r-md:14px; --r-lg:20px;
  --sh-1:0 1px 2px rgba(9,30,48,.05),0 4px 14px -8px rgba(9,30,48,.18);
  --sh-2:0 2px 4px rgba(9,30,48,.06),0 18px 34px -16px rgba(9,30,48,.28);
  --vidro:rgba(255,255,255,.86); --chip-on:var(--navy-800); --chip-on-txt:#fff;
  --usada-bg:#FDEFDF; --peca-bg:#EEF5FB; --peca-bd:#DBE9F5; --sombra-img:#E8EEF4;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button{font-family:var(--sans);cursor:pointer;-webkit-appearance:none;appearance:none;
  border:0;background:none;color:inherit;padding:0}
.wrap{max-width:1480px;margin:0 auto;padding:28px 24px 90px}
.oculto{display:none!important}

.tarja{background:var(--ambar-bg);border-bottom:1px solid #F0DCAB;color:var(--ambar);
  padding:8px 24px;font-size:12.5px;font-weight:700;text-align:center}

/* ===== header (o bonezinho) ===== */
header{position:relative;overflow:hidden;color:#fff;border-radius:var(--r-lg);
  background:
    radial-gradient(900px 420px at 88% -60%,rgba(24,119,201,.55),transparent 60%),
    radial-gradient(700px 340px at -10% 130%,rgba(243,146,0,.22),transparent 55%),
    linear-gradient(140deg,var(--navy-900) 0%,var(--navy-800) 46%,var(--navy-700) 100%);
  padding:34px 38px 30px;margin-bottom:18px;box-shadow:var(--sh-2)}
header:before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:22px 22px;pointer-events:none}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;
  letter-spacing:.18em;text-transform:uppercase;color:#BFD6EC;margin-bottom:10px}
.eyebrow i{width:22px;height:2px;background:var(--laranja);border-radius:2px;display:inline-block}
header h1{margin:0;font-size:clamp(24px,3.2vw,34px);font-weight:800;letter-spacing:-.02em;line-height:1.12}
header .sub{margin:8px 0 0;font-size:13.5px;color:#AFC8DE;max-width:640px}
.acoes-topo{position:absolute;top:32px;right:34px;z-index:2;display:flex;align-items:center;gap:8px}
.btn-registrar{display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);backdrop-filter:blur(8px);
  color:#fff;border-radius:999px;padding:11px 20px;font:800 13px var(--sans);
  transition:background .15s,border-color .15s,transform .15s}
.btn-registrar:hover{background:var(--laranja);border-color:var(--laranja);transform:translateY(-1px)}
.stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;position:relative}
.stat{flex:1;min-width:132px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);
  backdrop-filter:blur(6px);border-radius:var(--r-md);padding:12px 16px}
.stat b{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.stat span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#A9C4DC}
.stat.ac b{color:#FFC24D}

/* ===== abas ===== */
.abas{display:flex;gap:6px;margin:0 0 16px;border-bottom:1px solid var(--line)}
.aba{appearance:none;border:0;background:none;font:700 13.5px var(--sans);color:var(--ink-3);
  padding:11px 16px;border-bottom:2px solid transparent;margin-bottom:-1px;
  transition:color .15s,border-color .15s}
.aba:hover{color:var(--ink-2)}
.aba.on{color:var(--azul);border-bottom-color:var(--azul)}

/* ===== barra de filtro ===== */
.bar{position:sticky;top:10px;z-index:30;display:flex;gap:9px;flex-wrap:wrap;align-items:center;
  background:var(--vidro);backdrop-filter:blur(14px) saturate(160%);
  border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;margin-bottom:18px;box-shadow:var(--sh-1)}
.busca{position:relative;flex:1;min-width:220px;display:flex;align-items:center}
.busca svg{position:absolute;left:12px;color:var(--ink-3);pointer-events:none}
.busca input{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px 13px 9px 34px;font:13.5px var(--sans);background:var(--card);color:var(--ink);outline:none;
  transition:border-color .15s,box-shadow .15s}
.busca input:focus{border-color:var(--azul-vivo);box-shadow:0 0 0 3px rgba(24,119,201,.14)}
.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;
  font-size:12.5px;font-weight:700;color:var(--ink-2);font-family:var(--sans);transition:all .15s}
.chip:hover{border-color:#C7D6E4;color:var(--azul)}
.chip[aria-pressed=true]{background:var(--chip-on);border-color:var(--chip-on);color:var(--chip-on-txt);
  box-shadow:0 4px 12px -6px rgba(8,52,84,.5)}
.cnt{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--ink-3);white-space:nowrap;
  font-variant-numeric:tabular-nums;letter-spacing:.02em}

/* ===== grade / cards ===== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--sh-1);cursor:pointer;
  transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .22s}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:#D3E0EC}
.ph{position:relative;overflow:hidden;aspect-ratio:1/1;background:linear-gradient(135deg,#E8EEF4,#F2F6FA);cursor:zoom-in}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.2,.7,.3,1)}
.card:hover .ph img{transform:scale(1.05)}
.ph .num{position:absolute;left:10px;top:10px;background:rgba(6,38,63,.72);backdrop-filter:blur(4px);
  color:#fff;font:700 11px var(--mono);letter-spacing:.04em;border-radius:7px;padding:3px 8px}
.ph .fbadge{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.88);backdrop-filter:blur(4px);
  color:var(--navy-800);font:800 10px var(--sans);letter-spacing:.06em;border-radius:7px;padding:3px 8px}
.ph .alerta{position:absolute;right:10px;bottom:10px;width:22px;height:22px;border-radius:999px;
  background:var(--laranja);color:#fff;font:800 12px var(--sans);display:grid;place-items:center;
  box-shadow:0 2px 8px rgba(6,38,63,.4)}
.body{padding:13px 15px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.mod{font-size:14px;font-weight:700;letter-spacing:-.01em}
.desc{font-size:12.5px;color:var(--ink-2);line-height:1.45;flex:1}
.rodape{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;
  letter-spacing:.04em;border-radius:999px;padding:3px 10px;white-space:nowrap}
.tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}
.t-n{background:var(--verde-bg);color:var(--verde)}
.t-u{background:var(--usada-bg);color:var(--laranja-esc)}
.t-m{background:var(--rubi-bg);color:var(--rubi)}
.abrir{margin-left:auto;font-size:11.5px;color:var(--azul-vivo);font-weight:800;letter-spacing:.02em}
.vazio{grid-column:1/-1;text-align:center;color:var(--ink-3);padding:70px 0;font-size:15px}

/* modo registro */
.card[aria-selected=true]{border-color:var(--azul-vivo);box-shadow:0 0 0 3px rgba(24,119,201,.22),var(--sh-2)}
.tique{position:absolute;inset:0;background:rgba(10,77,143,.34);display:none;place-items:center}
.card[aria-selected=true] .tique{display:grid}
.tique b{width:38px;height:38px;border-radius:999px;background:var(--azul-vivo);color:#fff;
  display:grid;place-items:center;font-size:20px;box-shadow:0 4px 14px rgba(6,38,63,.45)}
body.registrando .card:hover{border-color:var(--azul-vivo)}
body.registrando .wrap{padding-bottom:120px}

/* ===== relatório ===== */
.rel{display:grid;gap:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px 18px;box-shadow:var(--sh-1)}
.kpi span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:7px}
.kpi b{display:block;font-size:26px;font-weight:800;letter-spacing:-.025em;line-height:1;
  font-variant-numeric:tabular-nums}
.bloco{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  padding:22px 24px;box-shadow:var(--sh-1)}
.bloco .cab{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:20px}
.bloco h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}
.bloco .leg{margin:3px 0 0;font-size:12.5px;color:var(--ink-3);max-width:60ch}

.gr{position:relative;padding-left:34px}
.gr .eixo{position:absolute;left:0;top:0;bottom:26px;width:34px}
.gr .eixo i{position:absolute;left:0;font-style:normal;font-size:10.5px;color:var(--ink-3);
  transform:translateY(-50%);font-variant-numeric:tabular-nums}
.gr .malha{position:absolute;left:34px;right:0;top:0;bottom:26px;pointer-events:none}
.gr .malha i{position:absolute;left:0;right:0;height:1px;background:var(--line-2)}
.gr .malha i.base{background:var(--line)}
.barras{position:relative;display:flex;align-items:flex-end;gap:20px;height:200px}
.col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;height:100%}
.col .v{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.col .b{width:100%;max-width:86px;border-radius:8px 8px 0 0;min-height:4px;
  background:linear-gradient(180deg,var(--azul-vivo),var(--azul))}
.col.alto .b{background:linear-gradient(180deg,#FFB84D,var(--laranja))}
.rots{display:flex;gap:20px;margin-top:9px}
.rots span{flex:1;text-align:center;font-size:12px;font-weight:700;color:var(--ink-2)}

table{width:100%;border-collapse:collapse}
th{text-align:left;padding:0 10px 9px;border-bottom:1px solid var(--line);
  color:var(--ink-3);font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
td{padding:9px 10px;border-bottom:1px solid var(--line-2);font-size:13px}
tr:last-child td{border-bottom:0}
td .qt{display:inline-block;min-width:24px;text-align:center;background:var(--line-2);
  border-radius:6px;padding:2px 8px;font:800 12px var(--mono)}
.rank{list-style:none;margin:0;padding:0}
.rank li{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--line-2)}
.rank li:first-child{border-top:0;padding-top:0}
.rank .cod{font:700 13px var(--mono);color:var(--azul);min-width:64px}
.rank .quem{flex:1;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank .trilho{flex:0 0 150px;height:6px;background:var(--line-2);border-radius:4px;overflow:hidden}
.rank .cheio{display:block;height:100%;background:var(--azul-vivo);border-radius:4px}
.rank .qtd{font:700 12.5px var(--mono);color:var(--ink-2);min-width:54px;text-align:right}

/* ===== bolinha da marcação ===== */
.pilula{position:fixed;left:50%;bottom:26px;z-index:50;transform:translate(-50%,180%);
  background:var(--navy-900);color:#fff;border-radius:999px;padding:9px 9px 9px 22px;
  display:flex;align-items:center;gap:12px;box-shadow:0 12px 34px -10px rgba(6,38,63,.7);
  transition:transform .24s cubic-bezier(.34,1.3,.64,1);font:700 13.5px var(--sans);white-space:nowrap}
body.registrando .pilula{transform:translate(-50%,0)}
.pil-cancelar{border:0;background:none;color:rgba(255,255,255,.6);padding:8px 6px;font:700 13px var(--sans)}
.pil-cancelar:hover{color:#fff}
.pil-ok{border:0;background:var(--azul-vivo);color:#fff;padding:9px 20px;border-radius:999px;
  font:800 13px var(--sans);transition:background .15s}
.pil-ok:hover:not(:disabled){background:#2A8AD9}
.pil-ok:disabled{background:rgba(255,255,255,.12);color:rgba(255,255,255,.36);cursor:not-allowed}

/* ===== popup do registro ===== */
.modal{position:fixed;inset:0;z-index:85;background:rgba(5,20,33,.72);backdrop-filter:blur(8px);
  display:none;padding:28px;overflow:auto}
.modal.aberto{display:grid;place-items:center;animation:fade .18s ease}
@keyframes fade{from{opacity:0}}
.modal-cx{background:var(--card);border-radius:var(--r-lg);width:100%;max-width:540px;position:relative;
  box-shadow:0 40px 90px -20px rgba(0,0,0,.6);overflow:hidden;animation:sobe .2s cubic-bezier(.34,1.2,.64,1)}
.modal-cx:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,var(--laranja),var(--azul-vivo))}
@keyframes sobe{from{opacity:0;transform:translateY(14px) scale(.98)}}
.modal-topo{display:flex;align-items:center;padding:22px 24px 0}
.modal-topo h2{margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em;flex:1}
.modal-x{border:0;background:none;width:32px;height:32px;border-radius:999px;color:var(--ink-3);
  font-size:24px;display:grid;place-items:center;margin:-4px -6px 0 0}
.modal-x:hover{background:var(--line-2);color:var(--ink)}
.modal-corpo{padding:18px 24px 4px}
.campo{display:block;margin-bottom:18px}
.campo>span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:7px}
.campo small{display:block;font-size:12px;margin-top:6px;line-height:1.4;font-weight:700;
  color:var(--ink-3)}
.campo small.existe{color:var(--verde)}
.campo small.erro{color:var(--rubi)}
.campo>span i{font-style:normal;font-weight:700;letter-spacing:.06em;color:var(--ink-4,var(--ink-3));
  opacity:.72;margin-left:5px}
.campo input[readonly]{background:var(--line-2);color:var(--ink-3);cursor:default}
.campo input,.campo select{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px 13px;font:13.5px var(--sans);background:var(--card);color:var(--ink);outline:none;
  transition:border-color .15s,box-shadow .15s}
.campo input:focus,.campo select:focus{border-color:var(--azul-vivo);box-shadow:0 0 0 3px rgba(24,119,201,.14)}
.dupla{display:flex;gap:9px}
.dupla select,.dupla input{flex:1}
.tiras{display:flex;flex-wrap:wrap;gap:8px}
.tira{position:relative;width:70px;border-radius:9px;overflow:hidden;background:var(--line-2);
  border:1px solid var(--line);flex:none}
.tira img{width:100%;height:70px;object-fit:cover;display:block}
.tira b{display:block;font:700 10.5px var(--mono);text-align:center;padding:4px 2px;color:var(--ink-2)}
.tira button{position:absolute;top:4px;right:4px;width:18px;height:18px;border:0;border-radius:999px;
  background:rgba(6,38,63,.78);color:#fff;font-size:13px;line-height:1;display:grid;place-items:center;
  opacity:0;transition:opacity .12s}
.tira:hover button{opacity:1}
.tiras .nada{color:var(--ink-3);font-size:13px;padding:4px 0}
.modal-pe{display:flex;align-items:center;gap:10px;padding:16px 24px 20px;border-top:1px solid var(--line-2)}
.btn{border:0;background:var(--azul);color:#fff;border-radius:var(--r-sm);padding:10px 18px;
  font:700 13px var(--sans);transition:all .15s;box-shadow:0 4px 12px -6px rgba(10,77,143,.5)}
.btn:hover:not(:disabled){background:var(--azul-vivo);transform:translateY(-1px)}
.btn.sec{background:var(--card);color:var(--azul);border:1px solid var(--line);box-shadow:none}
.btn.sec:hover{border-color:var(--azul-vivo);background:#F6FAFD;transform:none}
.btn.ok{margin-left:auto;background:var(--verde);box-shadow:0 4px 12px -6px rgba(14,122,74,.55)}
.btn.ok:hover:not(:disabled){background:#12925a}
.btn:disabled{background:var(--line);color:var(--ink-3);cursor:not-allowed;box-shadow:none}

/* ===== lightbox ===== */
.lb{position:fixed;inset:0;background:rgba(5,20,33,.9);backdrop-filter:blur(8px);
  display:none;z-index:80;padding:30px;overflow:auto}
.lb.aberto{display:grid;place-items:center;animation:fade .18s ease}
.lb-cx{background:var(--card);border-radius:var(--r-lg);overflow:hidden;max-width:1060px;width:100%;
  display:grid;grid-template-columns:1.5fr 1fr;box-shadow:0 40px 90px -20px rgba(0,0,0,.7)}
.lb-cx img{width:100%;height:100%;object-fit:contain;background:#06263F;display:block;max-height:76vh}
.lb-lado{padding:24px;overflow:auto;max-height:76vh}
.lb-lado h2{margin:0;font:800 24px var(--sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.lb-lado .sub{color:var(--ink-3);font-size:13px;margin:3px 0 16px;font-weight:700}
.dado{padding:11px 0;border-top:1px solid var(--line-2);font-size:13px}
.dado b{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--ink-3);margin-bottom:4px;font-weight:800}
.dado a{color:var(--azul-vivo);font-weight:700}
.hist{margin:0;padding:0;list-style:none}
.hist li{border-bottom:1px solid var(--line-2);font-size:13px}
.hist li:last-child{border:0}
.hist a,.hist .semlink{display:flex;align-items:flex-start;gap:8px;padding:9px 8px;margin:0 -8px;
  border-radius:8px;color:inherit;text-decoration:none;transition:background .12s,color .12s}
.hist .mi{flex:1;min-width:0;display:block}
.hist a{cursor:pointer}
.hist a:hover{background:var(--peca-bg);color:var(--azul)}
.hist a:hover .qnd{color:var(--azul-vivo)}
.hist .seta{color:var(--azul-vivo);font-weight:800;font-size:12px;flex:none;margin-top:1px}
.hist .qnd{display:block;color:var(--ink-3);font-size:11.5px;font-weight:700;margin-top:2px}
.hist .semlink em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--ink-3);
  background:var(--line-2);border-radius:999px;padding:2px 8px;flex:none;margin-top:1px}
.fechar{position:fixed;top:18px;right:22px;width:40px;height:40px;border:0;border-radius:999px;
  background:rgba(255,255,255,.12);color:#fff;font-size:22px;display:grid;place-items:center}
.fechar:hover{background:rgba(255,255,255,.24)}
.aviso{background:var(--ambar-bg);border:1px solid #F0DCAB;color:var(--ambar);padding:11px 13px;
  border-radius:var(--r-sm);font-size:12.5px;margin-top:14px;line-height:1.45;font-weight:600}

/* ===== rodapé ===== */
footer{margin-top:44px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px 26px;box-shadow:var(--sh-1)}
/* três colunas exatamente iguais, com um fio separando.
   o texto de cada regra tem tamanho bem diferente, e sem o fio
   a coluna curta do meio parecia espaçamento errado em vez de
   regra curta */
footer .regras{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:18px}
footer .regra{padding:2px 24px}
footer .regra:first-child{padding-left:0}
footer .regra:last-child{padding-right:0}
footer .regra + .regra{border-left:1px solid var(--line-2)}
footer .regra b{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px}
footer .regra.do b{color:var(--verde)}
footer .regra.dont b{color:var(--rubi)}
footer .regra.att b{color:var(--laranja-esc)}
footer .regra span{font-size:12.5px;color:var(--ink-2);line-height:1.5}
footer .fonte{border-top:1px solid var(--line-2);padding-top:12px;font-size:11.5px;color:var(--ink-3)}

/* ===== aviso ===== */
#toast{position:fixed;left:50%;bottom:26px;z-index:90;transform:translate(-50%,140%);
  background:var(--navy-900);color:#fff;padding:13px 20px;border-radius:var(--r-md);
  box-shadow:0 12px 34px -10px rgba(6,38,63,.7);display:flex;align-items:center;gap:12px;
  font:700 13.5px var(--sans);transition:transform .26s cubic-bezier(.4,0,.2,1);max-width:90vw}
#toast.vendo{transform:translate(-50%,0)}
#toast b{width:26px;height:26px;border-radius:999px;background:var(--verde);
  display:grid;place-items:center;font-size:15px;flex:none}
#toast small{display:block;font-weight:600;opacity:.7;font-size:12px;margin-top:1px}
body.registrando #toast{bottom:92px}


}

.btn-registrar.ligado{background:var(--laranja);border-color:var(--laranja);
  box-shadow:0 0 0 4px rgba(243,146,0,.24)}
.btn-registrar.ligado svg{transform:rotate(45deg);transition:transform .2s}

/* ---------- blocos que encolhem e rolam por dentro ---------- */
.qtd-cab{font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:0;margin-left:5px}
.encolher{width:32px;height:32px;flex:none;border-radius:999px;
  border:1px solid var(--line);background:var(--card);display:grid;place-items:center;color:var(--ink-3);
  transition:border-color .15s,color .15s,background .15s}
.encolher:hover{border-color:#C7D6E4;color:var(--azul);background:#F6FAFD}
.encolher:active{background:#EEF5FB}
.encolher:focus-visible{outline:none;border-color:var(--azul-vivo);
  box-shadow:0 0 0 3px rgba(24,119,201,.14)}
.encolher svg{transition:transform .22s cubic-bezier(.4,0,.2,1)}
.encolher[aria-expanded=false] svg{transform:rotate(-90deg)}
.bloco[data-encolhivel] .cab{margin-bottom:14px;align-items:center}

.rolagem{max-height:330px;overflow-y:auto;overscroll-behavior:contain;
  margin:0 -6px;padding:0 6px;
  /* sombrinha em cima e embaixo pra avisar que tem mais coisa */
  background:
    linear-gradient(var(--card) 30%,rgba(255,255,255,0)) top/100% 22px no-repeat,
    linear-gradient(rgba(255,255,255,0),var(--card) 70%) bottom/100% 22px no-repeat,
    radial-gradient(farthest-side at 50% 0,rgba(9,30,48,.11),rgba(0,0,0,0)) top/100% 9px no-repeat,
    radial-gradient(farthest-side at 50% 100%,rgba(9,30,48,.11),rgba(0,0,0,0)) bottom/100% 9px no-repeat;
  background-attachment:local,local,scroll,scroll}
.rolagem[hidden]{display:none}
.rolagem::-webkit-scrollbar{width:9px}
.rolagem::-webkit-scrollbar-thumb{background:#CBD8E4;border-radius:99px;
  border:2px solid var(--card);background-clip:padding-box}
.rolagem::-webkit-scrollbar-thumb:hover{background:#AEC1D3;background-clip:padding-box}
.rolagem::-webkit-scrollbar-track{background:transparent}
/* cabeçalho da tabela fica preso no topo enquanto rola */
.rolagem thead th{position:sticky;top:0;z-index:1;background:var(--card);
  box-shadow:inset 0 -1px 0 var(--line)}
.rolagem .rank li:first-child{padding-top:10px;border-top:1px solid var(--line-2)}

/* ---------- filtro de modelo ---------- */
#selModelo{border:1px solid var(--line);border-radius:999px;padding:7px 30px 7px 14px;
  font:700 12.5px var(--sans);color:var(--ink-2);background:var(--card);cursor:pointer;
  -webkit-appearance:none;appearance:none;transition:border-color .15s,color .15s;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238296A8' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 12px center}
#selModelo:hover{border-color:#C7D6E4;color:var(--azul)}
#selModelo:focus{outline:none;border-color:var(--azul-vivo);box-shadow:0 0 0 3px rgba(24,119,201,.14)}
#selModelo:not([value=""]){font-weight:700}


/* ===================== modo escuro ===================== */
:root[data-tema="escuro"]{
  --ink:#E6EDF4; --ink-2:#A3B5C6; --ink-3:#74899B;
  --bg:#0B1621; --card:#14202C; --line:#25343F; --line-2:#1C2836;
  --vidro:rgba(20,32,44,.86); --chip-on:var(--azul-vivo); --chip-on-txt:#fff;
  --verde:#5BD69B; --verde-bg:#11332A;
  --ambar:#E8B75F; --ambar-bg:#3A2E14;
  --rubi:#FF9A8B; --rubi-bg:#3A1D1D;
  --azul:#6FB4F0; --laranja-esc:#F0A85C;
  --usada-bg:#3A2A14; --peca-bg:#17293A; --peca-bd:#24405A; --sombra-img:#1A2836;
  --sh-1:0 1px 2px rgba(0,0,0,.30),0 4px 14px -8px rgba(0,0,0,.55);
  --sh-2:0 2px 4px rgba(0,0,0,.35),0 18px 34px -16px rgba(0,0,0,.65);
}
:root[data-tema="escuro"] .ph{background:linear-gradient(135deg,#1A2836,#22313F)}
:root[data-tema="escuro"] .card:hover{border-color:#31465A}
:root[data-tema="escuro"] .pecas a{background:var(--peca-bg);border-color:var(--peca-bd);color:var(--azul)}
:root[data-tema="escuro"] .lb img{box-shadow:0 40px 90px -20px rgba(0,0,0,.9)}
:root[data-tema="escuro"] .rolagem::-webkit-scrollbar-thumb{background:#33475A;background-clip:padding-box}
:root[data-tema="escuro"] .encolher:hover,
:root[data-tema="escuro"] #selModelo:hover,
:root[data-tema="escuro"] .chip:hover{background:#1A2836;border-color:#3A5068;color:var(--azul)}
:root[data-tema="escuro"] .btn.sec:hover{background:#1A2836;border-color:var(--azul-vivo)}
:root[data-tema="escuro"] img{filter:brightness(.96)}
:root[data-tema="escuro"] .tarja{background:#3A2E14;border-bottom-color:#5A4A22;color:#E8B75F}

/* ---------- botão de tema ---------- */
.btn-tema{width:40px;height:40px;flex:none;border-radius:999px;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;
  backdrop-filter:blur(8px);transition:background .15s,border-color .15s}
.btn-tema:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.4)}
.btn-tema svg{grid-area:1/1;transition:opacity .18s,transform .25s cubic-bezier(.4,0,.2,1)}
.btn-tema .sol{opacity:0;transform:rotate(-90deg) scale(.6)}
.btn-tema .lua{opacity:1;transform:none}
:root[data-tema="escuro"] .btn-tema .sol{opacity:1;transform:none}
:root[data-tema="escuro"] .btn-tema .lua{opacity:0;transform:rotate(90deg) scale(.6)}

/* ===================== telas estreitas =====================
   Tudo daqui pra baixo só vale no celular e no tablet.
   Nada aqui muda uma vírgula do que aparece no computador. */

@media (max-width:820px){
  /* a foto passa a ficar em cima do texto, uma coluna só.
     sem height auto ela colapsa pra zero e some da tela */
  .lb-cx{grid-template-columns:1fr}
  .lb-cx img{height:auto;max-height:42vh}
  .lb-lado{max-height:none}
  .lb{padding:16px;align-items:flex-start}
  .lb.on{align-items:flex-start}
}

@media (max-width:640px){
  .wrap{padding:14px 14px 80px}
  header{padding:22px 20px 20px}

  /* os botões saem de cima do título e viram uma linha própria */
  .acoes-topo{position:static;display:flex;gap:8px;margin:16px 0 0}
  .btn-registrar{flex:1;justify-content:center;min-height:46px}
  .btn-tema{width:46px;height:46px}

  header h1{font-size:26px}
  header .sub{font-size:13px}
  .stats{gap:8px}
  .stat{min-width:0;flex:1 1 calc(50% - 4px);padding:11px 13px}
  .stat b{font-size:21px}

  /* a barra de filtro deixa de grudar: no celular ela tomava
     um quarto da tela e ficava na frente das fotos o tempo todo */
  .bar{position:static;padding:12px;gap:8px}
  input[type=search]{flex:1 1 100%;min-width:0}
  #selModelo{flex:1 1 100%}
  .cnt{margin-left:0;width:100%;text-align:right}

  /* alvo de toque: nada abaixo de 40px de altura */
  .chip{padding:12px 16px;font-size:13px}
  #selModelo{padding:12px 30px 12px 14px;font-size:13px}
  input[type=search]{padding:11px 13px 11px 34px;font-size:16px}
  .aba{padding:13px 14px}

  .grid{gap:14px}

  /* a pílula de marcação encosta nas bordas e os botões engordam */
  .pilula{left:12px;right:12px;bottom:14px;transform:translateY(180%);
    padding:10px 10px 10px 16px;gap:8px;font-size:13.5px}
  body.registrando .pilula{transform:none}
  .pil-ok{padding:13px 18px}
  .pil-cancelar{padding:13px 10px}

  /* o popup de registro ocupa a tela toda com folga */
  .modal{padding:14px}
  .modal-cx{max-width:none}
  .modal-corpo{padding:16px 18px 4px}
  .modal-topo{padding:18px 18px 0}
  .modal-pe{padding:14px 18px 18px;flex-wrap:wrap;gap:8px}
  .btn, .btn.sec{min-height:46px;flex:1;justify-content:center}
  .campo input,.campo select{padding:12px 13px;font-size:16px}
  .tira{width:78px}.tira img{width:78px;height:52px}

  /* relatório */
  .kpis{grid-template-columns:1fr 1fr;gap:10px}
  .bloco{padding:16px 15px}
  .barras{gap:10px;height:150px}
  .gr{padding-left:26px}.gr .eixo{width:26px}.gr .malha{left:26px}
  .rolagem{max-height:290px}
  table{font-size:12.5px}
  th,td{padding:8px 6px}

  footer{padding:18px 16px}
  footer .regras{grid-template-columns:1fr;margin-bottom:14px}
  footer .regra{padding:13px 0}
  footer .regra:first-child{padding-top:0}
  footer .regra:last-child{padding-bottom:0}
  footer .regra + .regra{border-left:0;border-top:1px solid var(--line-2)}

  /* o relatório estourava a tela: a tabela de peças exige 617px
     por causa dos nomes longos, e empurrava o bloco inteiro.
     min-width:0 deixa o bloco encolher, e table-layout fixed faz
     o nome quebrar em várias linhas em vez de esticar a coluna. */
  .rel, .bloco, .rolagem, .kpi{min-width:0}
  .bloco{overflow:hidden}
  .rolagem{overflow-x:hidden}
  /* em coluna estreita o nome da peça quebrava letra por letra.
     no celular a linha vira um bloco: nome em cima, o resto embaixo */
  .rolagem table, .rolagem tbody, .rolagem tr, .rolagem td{display:block;width:auto}
  .rolagem thead{display:none}
  .rolagem tr{padding:11px 0;border-bottom:1px solid var(--line-2)}
  .rolagem tr:last-child{border:0}
  .rolagem td{padding:0;border:0}
  .rolagem td:nth-child(1){font-weight:700;font-size:13px;line-height:1.4;margin-bottom:5px}
  .rolagem td:nth-child(2), .rolagem td:nth-child(3), .rolagem td:nth-child(4){
    display:inline-block;color:var(--ink-3);font-size:12px;font-weight:700}
  .rolagem td:nth-child(2)::after, .rolagem td:nth-child(3)::after{content:'·';margin:0 7px;opacity:.5}
  .rolagem td:nth-child(4) .qt{background:none;padding:0;color:var(--ink-3)}
  .rolagem td:nth-child(4)::after{content:' foto(s)'}

  /* o ranking de fotos: a barrinha fixa de 150px não cabe */
  .rank li{gap:9px;flex-wrap:wrap}
  .rank .cod{min-width:46px}
  .rank .quem{flex:1 1 100%;order:3;white-space:normal;font-size:12.5px}
  .rank .trilho{flex:1 1 auto}
  .rank .qtd{min-width:0;white-space:nowrap}
}

/* telas bem estreitas, tipo iPhone SE */
@media (max-width:380px){
  .stat b{font-size:19px}
  .acoes-topo{flex-wrap:wrap}
  .btn-registrar{min-width:0}
}

/* aviso da demo dentro do cabeçalho, no lugar da faixa amarela do topo (28/10/2026) */
.demo-nota{position:relative;display:inline-flex;align-items:center;gap:8px;margin:14px 0 0;padding:6px 12px 6px 10px;
  border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06);
  font-size:12px;color:#BFD6EC;line-height:1.3}
.demo-nota i{width:6px;height:6px;border-radius:50%;background:var(--laranja);flex:none}
/* foto do ensaio na ficha: preenche o quadro, sem faixas em cima e embaixo */
.lb-cx img{object-fit:cover;background:#0B1622}

/* diagramação (28/10/2026): última linha nunca com uma palavra só, títulos equilibrados */
body { text-wrap-style: pretty; }
h1, h2, h3 { text-wrap: balance; }
