/* Painel de Gerência — Insidesign. Mobile-first; sem build (CSS puro). */
:root{
 --bg:#f2f4f8;--card:#fff;--card-2:#f7f8fb;--tx:#162033;--muted:#5a6477;--bd:#dde2ea;--bd-2:#c9d0db;
 --pri:#22418c;--pri-tx:#22418c;--pri-hover:#1a3470;--pri-soft:#e9eef9;--on-pri:#fff;
 --hdr:#22418c;--hdr-tx:#fff;
 --ok:#146c34;--ok-soft:#e5f4ea;--warn:#8a4b00;--warn-soft:#fdf0dc;--warn-bd:#f0c27a;--err:#b42318;--err-soft:#fdeceb;
 --sombra:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);--sombra-alta:0 8px 24px rgba(16,24,40,.16);
 --r:12px;--r-sm:8px;--abas-h:64px;--lado:236px;--topo-h:56px;
 color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
 --bg:#0d1219;--card:#161d28;--card-2:#1b2331;--tx:#e6eaf0;--muted:#9ba5b6;--bd:#27313f;--bd-2:#364253;
 --pri:#3d63c9;--pri-tx:#9db7ff;--pri-hover:#4b71d6;--pri-soft:#1c2842;--on-pri:#fff;--hdr:#111a2b;--hdr-tx:#e6eaf0;
 --ok:#6fd394;--ok-soft:#12301f;--warn:#f3b562;--warn-soft:#33240f;--warn-bd:#6b4a17;--err:#ff8a80;--err-soft:#3a1716;
 --sombra:0 1px 2px rgba(0,0,0,.4);--sombra-alta:0 8px 24px rgba(0,0,0,.5);color-scheme:dark}}
:root[data-theme=dark]{
 --bg:#0d1219;--card:#161d28;--card-2:#1b2331;--tx:#e6eaf0;--muted:#9ba5b6;--bd:#27313f;--bd-2:#364253;
 --pri:#3d63c9;--pri-tx:#9db7ff;--pri-hover:#4b71d6;--pri-soft:#1c2842;--on-pri:#fff;--hdr:#111a2b;--hdr-tx:#e6eaf0;
 --ok:#6fd394;--ok-soft:#12301f;--warn:#f3b562;--warn-soft:#33240f;--warn-bd:#6b4a17;--err:#ff8a80;--err-soft:#3a1716;
 --sombra:0 1px 2px rgba(0,0,0,.4);--sombra-alta:0 8px 24px rgba(0,0,0,.5);color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx);overflow-x:hidden}
h1{font-size:1.375rem;line-height:1.25;margin:0 0 .25rem;letter-spacing:-.01em}
h2{font-size:1.0625rem;margin:1.75rem 0 .75rem}
h3{font-size:1rem;margin:1.25rem 0 .5rem}
p{margin:.5rem 0}
a{color:var(--pri-tx)}
code{font:600 .95em ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--card);padding:.1rem .4rem;border-radius:6px}
.muted{color:var(--muted)}
:focus-visible{outline:3px solid #7aa2ff;outline-offset:2px}

/* Ícones: máscaras SVG no CSS (a página não carrega <svg>) */
.ico{display:inline-block;width:22px;height:22px;flex:none;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.i-ponto{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>")}
.i-almoco{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 3v7a2 2 0 0 0 4 0V3M8 10v11M17 21V3c-2 1-3 4-3 7v3h3'/></svg>")}
.i-quinz{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='5' width='16' height='16' rx='2'/><path d='M8 3v4M16 3v4M4 10h16M8 14h4M8 17h7'/></svg>")}
.i-bat{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='7' width='16' height='10' rx='2'/><path d='M22 11v2M7 10v4M11 10v4'/></svg>")}
.i-rel{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M4 20h16M7 16v-5M12 16V6M17 16v-8'/></svg>")}
.i-admin{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='9' cy='8' r='3.5'/><path d='M2.5 20c.8-3.5 3.3-5.5 6.5-5.5s5.7 2 6.5 5.5M16 4.5a3.5 3.5 0 0 1 0 7M18 14.8c2 .8 3.2 2.6 3.6 5.2'/></svg>")}
.i-cpfl{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M13 2 4 14h6l-1 8 9-12h-6z'/></svg>")}
.i-mais{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='5' cy='12' r='2'/><circle cx='12' cy='12' r='2'/><circle cx='19' cy='12' r='2'/></svg>")}
.i-tema{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='8'/><path d='M12 4a8 8 0 0 1 0 16z' fill='black'/></svg>")}
.i-sair{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4M9 16l-4-4 4-4M5 12h11'/></svg>")}
.i-doc{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='M6 3h8l4 4v14H6z'/><path d='M14 3v4h4'/></svg>")}
.i-seta{--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M9 6l6 6-6 6'/></svg>")}

/* Cabeçalho */
.topo{position:sticky;top:0;z-index:20;height:var(--topo-h);display:flex;align-items:center;gap:.5rem;padding:0 1rem;background:var(--hdr);color:var(--hdr-tx);box-shadow:0 1px 0 rgba(0,0,0,.08)}
.marca{display:flex;align-items:center;gap:.6rem;color:inherit;text-decoration:none;font-weight:600;min-width:0}
.logo{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#fff;color:#22418c;font:800 13px/1 system-ui,sans-serif;letter-spacing:-.02em;flex:none}
.marca-nome{display:grid;line-height:1.15;white-space:nowrap;font-size:.95rem}
.marca-nome span{opacity:.75;font-weight:500;font-size:.75rem;letter-spacing:.02em}
.topo-acoes{margin-left:auto;display:flex;align-items:center;gap:.25rem}
.topo-acoes form{margin:0}
.quem{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;padding:.25rem .4rem;border-radius:999px;min-height:44px}
.quem:hover{background:rgba(255,255,255,.12)}
.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font:700 12.5px/1 system-ui,sans-serif;border:1.5px solid rgba(255,255,255,.35)}
.quem-nome{display:none;font-size:.9rem;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topo button.btn-topo{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:44px;min-height:44px;padding:0 .6rem;background:transparent;color:inherit;border:0;border-radius:10px;font-size:.9rem;font-weight:500}
.topo button.btn-topo:hover{background:rgba(255,255,255,.12)}
.btn-topo .rot{display:none}

/* Menu lateral (desktop) */
.menu{display:none}
.menu a,.menu .breve{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border-radius:10px;color:var(--tx);text-decoration:none;font-weight:500;min-height:44px}
.menu a .ico{color:var(--muted)}
.menu a:hover{background:var(--card-2)}
.menu a[aria-current=page]{background:var(--pri-soft);color:var(--pri-tx);font-weight:650}
.menu a[aria-current=page] .ico{color:var(--pri-tx)}
.menu-grupo{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:1rem .75rem .35rem}
.menu .breve{margin-top:auto;color:var(--muted);font-size:.85rem;font-weight:400;border:1px dashed var(--bd-2)}

/* Abas fixas no rodapé (celular) */
.abas{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:var(--card);border-top:1px solid var(--bd);box-shadow:0 -2px 12px rgba(16,24,40,.06);padding-bottom:env(safe-area-inset-bottom)}
.aba{flex:1;position:relative;list-style:none}
.aba>a,.aba>summary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--abas-h);color:var(--muted);text-decoration:none;font-size:.75rem;font-weight:600;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.aba>summary::-webkit-details-marker{display:none}
.aba>a[aria-current=page],.aba.ativa>summary{color:var(--pri-tx)}
.aba>a[aria-current=page]::before,.aba.ativa>summary::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--pri-tx)}
.aba .ico{width:24px;height:24px}
.aba-mais[open]>summary{color:var(--pri-tx)}
.mais-painel{position:absolute;right:8px;bottom:calc(100% + 8px);width:min(240px,calc(100vw - 16px));background:var(--card);border:1px solid var(--bd);border-radius:14px;box-shadow:var(--sombra-alta);padding:.4rem}
.mais-painel a{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;min-height:48px;border-radius:10px;color:var(--tx);text-decoration:none;font-weight:500}
.mais-painel a[aria-current=page]{background:var(--pri-soft);color:var(--pri-tx)}
.mais-painel .breve{display:block;padding:.5rem .75rem;color:var(--muted);font-size:.8rem;border-top:1px solid var(--bd);margin-top:.25rem}

/* Conteúdo */
.conteudo{padding:1.25rem 1rem calc(var(--abas-h) + 1.75rem + env(safe-area-inset-bottom));max-width:1180px;margin:0 auto}
body.sem-menu .conteudo{padding-bottom:2rem}

.pg-cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.pg-cab .sub{margin:.15rem 0 0;color:var(--muted);font-size:.95rem}
.pg-acoes{display:flex;flex-wrap:wrap;gap:.5rem}
.secao-cab{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin:1.75rem 0 .75rem}
.secao-cab h2{margin:0}

.cartao{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sombra);padding:1rem}
.cartao+.cartao{margin-top:1rem}
.cartao>h2,.cartao>h3{margin-top:0}

/* Formulários */
input,select,textarea,button{font:inherit;color:inherit}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{width:100%;min-height:44px;padding:.55rem .75rem;border:1px solid var(--bd-2);border-radius:10px;background:var(--card);color:var(--tx);font-size:1rem}
input[type=file]{padding:.45rem .5rem;background:var(--card-2)}
input[type=file]::file-selector-button{font:inherit;font-size:.9rem;font-weight:600;border:0;border-radius:8px;padding:.45rem .8rem;margin-right:.75rem;background:var(--pri-soft);color:var(--pri-tx);cursor:pointer}
input:disabled,select:disabled{background:var(--card-2);color:var(--muted);border-color:var(--bd)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px rgba(61,99,201,.25)}
select{appearance:none;-webkit-appearance:none;padding-right:2.2rem;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--pri);margin:0;flex:none}
.campo{display:grid;gap:.35rem;min-width:0;margin:0 0 .9rem}
.campo>span{font-size:.875rem;font-weight:600;color:var(--tx)}
.campo>small{color:var(--muted);font-size:.8rem}
.check{display:flex;align-items:center;gap:.6rem;min-height:44px;margin:0 0 .9rem;padding:.5rem .75rem;border:1px solid var(--bd);border-radius:10px;background:var(--card-2);cursor:pointer;font-weight:500}
.grade-campos{display:grid;gap:0 1rem}
.form-acoes{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.25rem}
.form-linha{display:grid;gap:0 .75rem;align-items:end}
.form-linha .campo{margin-bottom:.75rem}
.form-linha>button{margin-bottom:.75rem}

button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.55rem 1.1rem;border:1px solid transparent;border-radius:10px;background:var(--pri);color:var(--on-pri);font-weight:600;font-size:.95rem;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap}
button:hover,.btn:hover{background:var(--pri-hover)}
.btn-sec,button.btn-sec{background:var(--card);color:var(--pri-tx);border-color:var(--bd-2)}
.btn-sec:hover,button.btn-sec:hover{background:var(--pri-soft)}
.btn-perigo,button.btn-perigo{background:transparent;color:var(--err);border-color:transparent;padding:.4rem .7rem}
.btn-perigo:hover,button.btn-perigo:hover{background:var(--err-soft)}
.btn-peq{min-height:36px;padding:.35rem .75rem;font-size:.875rem}
.btn-largo{width:100%}
form{margin:0}

/* Avisos */
.aviso{display:flex;gap:.6rem;align-items:flex-start;margin:0 0 1rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--bd);border-left-width:4px;background:var(--card);font-size:.95rem}
.aviso p{margin:0}
.aviso.ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
.aviso.erro{background:var(--err-soft);color:var(--err);border-color:var(--err);flex-direction:column;gap:.2rem}
.aviso.alerta{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-bd)}
p[role=alert]{margin:0 0 .9rem;padding:.6rem .8rem;border-radius:10px;background:var(--err-soft);color:var(--err);font-size:.9rem}

/* Badges e estados */
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:650;line-height:1.3;white-space:nowrap;background:var(--card-2);color:var(--muted);border:1px solid var(--bd)}
.b-ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.b-warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.b-err{background:var(--err-soft);color:var(--err);border-color:transparent}
.b-info{background:var(--pri-soft);color:var(--pri-tx);border-color:transparent}
.st-ok{color:var(--ok)}.st-warn{color:var(--warn)}.st-err{color:var(--err)}
.vazio{padding:1.75rem 1rem;text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--bd-2);border-radius:var(--r)}

/* Números em destaque */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:0 0 1.25rem}
.stat{display:flex;flex-direction:column;justify-content:space-between;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:.7rem .8rem;box-shadow:var(--sombra);min-width:0}
.stat small{display:block;font-size:.72rem;line-height:1.25;color:var(--muted);font-weight:600}
.stat b{display:block;font-size:1.35rem;line-height:1.2;font-variant-numeric:tabular-nums;margin-top:.1rem}
.stat.destaque{background:var(--pri);border-color:var(--pri);color:#fff}
.stat.destaque small{color:rgba(255,255,255,.8)}
.stat.alerta b{color:var(--warn)}

/* Tabelas */
.tabela{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sombra);overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabela-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.925rem}
th,td{padding:.6rem .75rem;border-bottom:1px solid var(--bd);text-align:left;vertical-align:middle}
thead th{background:var(--card-2);color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;position:sticky;top:0}
tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--card-2) 55%,transparent)}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
tfoot th,tfoot td{background:var(--card-2);border-top:2px solid var(--bd);border-bottom:0;font-weight:700}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.acao{text-align:right;white-space:nowrap;width:1%}
.kv th{width:40%;color:var(--muted);font-weight:600;font-size:.875rem}
.kv td .kv,.kv td table{background:transparent}

/* Tabela que vira cartões no celular */
@media (max-width:899.98px){
 .resp,.resp tbody{display:block}
 .resp thead{display:none}
 .resp tbody tr{display:grid;gap:.15rem .75rem;padding:.85rem 1rem;border-bottom:1px solid var(--bd)}
 .resp tbody tr:last-child{border-bottom:0}
 .resp tbody tr td,.resp tbody tr:nth-child(even) td{display:block;padding:0;border:0;background:none;text-align:left;width:auto}
 .resp td[data-rot]::before{content:attr(data-rot) " ";color:var(--muted);font-size:.8rem}
 .resp-almoco tbody tr{grid-template-columns:auto 1fr auto;grid-template-areas:"desc desc val" "data cid cid" "foto foto acao"}
 .resp-almoco .c-desc{grid-area:desc;font-weight:650}
 .resp-almoco .c-val{grid-area:val;font-weight:700}
 .resp-almoco .c-data{grid-area:data;color:var(--muted);font-size:.875rem}
 .resp-almoco .c-data::after{content:" ·"}
 .resp-almoco .c-cid{grid-area:cid;color:var(--muted);font-size:.875rem;margin-left:-.5rem}
 .resp-almoco .c-foto{grid-area:foto;margin-top:.45rem}
 .resp-almoco .c-acao{grid-area:acao;margin-top:.45rem}
 .resp-quinz tbody tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tec val" "per per" "st abrir";align-items:center}
 .resp-quinz.sem-tec tbody tr{grid-template-areas:"per val" "st abrir"}
 .resp-quinz .c-tec{grid-area:tec;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .resp-quinz .c-val{grid-area:val;font-weight:700}
 .resp-quinz .c-per{grid-area:per;color:var(--muted);font-size:.875rem;white-space:nowrap}
 .resp-quinz.sem-tec .c-per{color:var(--tx);font-size:1rem;font-weight:650}
 .resp-quinz .c-st{grid-area:st;margin-top:.4rem}
 .resp-quinz .c-abrir{grid-area:abrir;margin-top:.4rem}
 .resp-bat tbody tr{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem 1rem}
 .resp-bat tbody tr::after{content:"";flex-basis:100%;height:0;order:1}
 .resp-bat .c-ten{font-weight:650;flex:1}
 .resp-bat .c-datas{font-size:.875rem;order:2}
 .resp-bat .c-obs{flex-basis:100%;color:var(--muted);font-size:.875rem;order:3}
 .resp-bat .c-obs:empty{display:none}
 .resp-comp tbody tr{grid-template-columns:1fr auto auto;align-items:center}
}

/* Ponto */
.filtros{display:grid;gap:0 .75rem;margin-bottom:1.25rem}
.filtros .campo{margin-bottom:.75rem}
.filtros-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.filtros-links .btn{flex:1}
.so-desk{display:none}
.dias{display:grid;gap:.5rem}
.dia{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sombra);overflow:hidden}
.dia>summary{display:grid;grid-template-columns:3rem 1fr auto 18px;align-items:center;gap:.75rem;padding:.65rem .9rem;min-height:60px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.dia>summary::-webkit-details-marker{display:none}
.dia>summary::after{content:"";width:18px;height:18px;background:var(--muted);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;--i:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M9 6l6 6-6 6'/></svg>");transition:transform .15s}
.dia[open]>summary::after{transform:rotate(90deg)}
.dia[open]>summary{border-bottom:1px solid var(--bd);background:var(--card-2)}
.dia-data{display:grid;justify-items:center;line-height:1.1;padding:.3rem 0;border-radius:10px;background:var(--card-2)}
.dia-data b{font-size:1.15rem;font-variant-numeric:tabular-nums}
.dia-data small{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:650}
.dia-info{min-width:0;display:grid;gap:.1rem}
.dia-info .hr{font-variant-numeric:tabular-nums;font-weight:600}
.dia-info small{color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dia-horas{font-weight:700;font-variant-numeric:tabular-nums}
.dia-horas.zero{color:var(--muted);font-weight:500}
.dia.hoje{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri)}
.dia.hoje .dia-data{background:var(--pri);color:#fff}.dia.hoje .dia-data small{color:rgba(255,255,255,.85)}
.dia.falta{border-left:4px solid var(--warn-bd)}
.dia.falta .dia-data{background:var(--warn-soft);color:var(--warn)}
.dia.fds .dia-data{background:transparent}
.dia.fds>summary{min-height:48px;padding-top:.4rem;padding-bottom:.4rem}
.dia-form{padding:1rem .9rem .9rem}
.grade-horas{display:grid;grid-template-columns:1fr 1fr;gap:0 .75rem}
.linha-falta td{background:var(--warn-soft)!important}
.linha-falta td:first-child{box-shadow:inset 3px 0 0 var(--warn-bd)}
.tab-ponto td{padding:.35rem .5rem}
.tab-ponto td:first-child{white-space:nowrap;font-weight:600;padding-left:.9rem}
.tab-ponto td:first-child small{color:var(--muted);font-weight:500;margin-left:.25rem}
.tab-ponto input{min-height:38px!important;padding:.35rem .5rem!important;font-size:.925rem!important}
.tab-ponto input[type=time]{min-width:7.2rem}
.tab-ponto input[name=justificativa]{min-width:10rem}
.tab-ponto button{min-height:38px;padding:.35rem .9rem;background:var(--card);color:var(--pri-tx);border-color:var(--bd-2)}
.tab-ponto button:hover{background:var(--pri);color:var(--on-pri);border-color:var(--pri)}
.tab-ponto tr:focus-within td{background:var(--pri-soft)!important}

/* Quinzena */
.grade-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}
.foto{margin:0;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sombra);display:flex;flex-direction:column}
.foto img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--card-2)}
.foto .sem-foto{display:grid;place-items:center;aspect-ratio:4/3;margin:0;background:var(--card-2);color:var(--muted);font-size:.85rem}
.foto figcaption{padding:.55rem .7rem;font-size:.85rem;display:grid;gap:.1rem}
.foto figcaption b{font-size:.95rem}
.resumo{display:grid;gap:.4rem}
.resumo>div{display:flex;justify-content:space-between;gap:1rem;font-variant-numeric:tabular-nums}
.resumo .total{border-top:1px solid var(--bd);padding-top:.6rem;margin-top:.2rem;font-size:1.15rem;font-weight:700;color:var(--pri-tx)}
.assinatura-area{border:2px dashed var(--bd-2);border-radius:var(--r);background:#fff;overflow:hidden;position:relative}
.assinatura-area canvas{display:block;width:100%;height:200px;touch-action:none;cursor:crosshair}
.assinatura-area::after{content:"";position:absolute;left:1.25rem;right:1.25rem;bottom:48px;border-bottom:1px solid #c9d0db;pointer-events:none}
.assinatura-img{max-width:300px;width:100%;background:#fff;border:1px solid var(--bd);border-radius:var(--r-sm);padding:.25rem}

/* Baterias */
.pop{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sombra);margin-bottom:.6rem;overflow:hidden}
.pop>summary{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.8rem 1rem;min-height:56px;cursor:pointer;list-style:none}
.pop>summary::-webkit-details-marker{display:none}
.pop>summary .pop-nome{font-weight:650;margin-right:auto;min-width:0}
.pop>summary .pop-nome small{display:block;color:var(--muted);font-weight:500;font-size:.8rem}
.pop[open]>summary{border-bottom:1px solid var(--bd);background:var(--card-2)}
.pop .tabela{border:0;border-radius:0;box-shadow:none}
.pop-form{padding:1rem;border-top:1px solid var(--bd)}
.pop-form h3{margin:0 0 .75rem;font-size:.9rem;color:var(--muted)}

/* Admin */
.subnav{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1.25rem;padding:.25rem;background:var(--card);border:1px solid var(--bd);border-radius:12px;scrollbar-width:none}
.subnav a{flex:1 1 auto;justify-content:center;padding:.5rem .9rem;min-height:40px;display:flex;align-items:center;border-radius:9px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.9rem}
.subnav a[aria-current=page]{background:var(--pri-soft);color:var(--pri-tx)}
.lista-cartoes{display:grid;gap:.6rem}
.usuario-cab{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem;flex-wrap:wrap}
.usuario-cab b{margin-right:auto}
.usuario.inativo{opacity:.7}
.lista-simples{list-style:none;margin:0;padding:0}
.lista-simples li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem 1rem;border-bottom:1px solid var(--bd);min-height:52px;word-break:break-all}
.lista-simples li:last-child{border-bottom:0}

/* Relatórios */
.cards-links{display:grid;gap:.75rem}
.card-link{display:flex;align-items:center;gap:.9rem;padding:1rem;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sombra);color:var(--tx);text-decoration:none}
.card-link:hover{border-color:var(--pri)}
.card-link .ico-box{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--pri-soft);color:var(--pri-tx);flex:none}
.card-link b{display:block}
.card-link small{color:var(--muted)}
.card-link>.ico:last-child{margin-left:auto;color:var(--muted);width:18px;height:18px}
.destaque-num{font-size:1.5rem;font-weight:700}

/* Paginação */
.cpfl-frame{height:calc(100dvh - var(--topo-h) - var(--abas-h) - 8.5rem);min-height:320px;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;background:var(--card)}
.cpfl-frame iframe{width:100%;height:100%;border:0;display:block}
@media (min-width:900px){.cpfl-frame{height:calc(100dvh - var(--topo-h) - 7.5rem)}}
.pagination{display:flex;gap:.5rem;list-style:none;padding:0;margin:1rem 0;justify-content:center}
.pagination a,.pagination span{display:inline-flex;align-items:center;min-height:44px;padding:.4rem 1rem;border:1px solid var(--bd-2);border-radius:10px;background:var(--card);color:var(--pri-tx);text-decoration:none;font-weight:600}
.pagination .disabled span{color:var(--muted);opacity:.6}

/* Login / troca de senha */
.entrada{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem 1rem;background:radial-gradient(1200px 500px at 50% -10%,var(--pri-soft),transparent),var(--bg)}
.entrada-cartao{width:100%;max-width:400px;background:var(--card);border:1px solid var(--bd);border-radius:16px;box-shadow:var(--sombra-alta);padding:1.75rem 1.5rem}
.entrada-marca{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem;font-weight:650}
.entrada-marca .logo{width:40px;height:40px;background:#22418c;color:#fff;font-size:15px;border-radius:11px}
.entrada-marca small{display:block;color:var(--muted);font-weight:500;font-size:.8rem}
.entrada h1{font-size:1.4rem}
.entrada .sub{color:var(--muted);margin:0 0 1.25rem}
body.sem-menu .conteudo:has(.entrada){padding:0;max-width:none}

/* Desktop */
@media (min-width:600px){
 .grade-campos.g2{grid-template-columns:1fr 1fr}
 .grade-campos.g3{grid-template-columns:repeat(3,1fr)}
 .btn-largo{width:auto;min-width:200px}
 .form-linha{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
 .filtros{grid-template-columns:minmax(0,220px) minmax(0,280px) auto;align-items:end}
 .filtros-links .btn{flex:none}
 .cards-links{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
 .grade-fotos{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
 .stats{gap:.9rem}.stat{padding:.9rem 1.1rem}.stat b{font-size:1.6rem}
}
@media (min-width:900px){
 h1{font-size:1.6rem}
 .topo{padding:0 1.25rem}
 .quem-nome,.btn-topo .rot{display:inline}
 .abas{display:none}
 .menu{display:flex;flex-direction:column;gap:2px;position:fixed;top:var(--topo-h);left:0;bottom:0;width:var(--lado);padding:1rem .75rem;background:var(--card);border-right:1px solid var(--bd);overflow-y:auto}
 .conteudo{margin-left:var(--lado);margin-right:0;padding:1.75rem 2rem 3rem;max-width:calc(1180px + var(--lado))}
 body.sem-menu .conteudo{margin-left:auto;margin-right:auto}
 .so-desk{display:block}
 .so-mobile{display:none}
 .cartao{padding:1.25rem 1.5rem}
 .usuario form.form-linha{grid-template-columns:1.3fr 1.6fr 1fr 1fr auto}
}
@media print{
 .topo,.menu,.abas,.no-print{display:none!important}
 body{background:#fff}
 .conteudo{margin:0;padding:0;max-width:none}
 .so-desk{display:block!important}.so-mobile{display:none!important}
 .cartao,.tabela,.stat{box-shadow:none}
 thead th{position:static}
}
.btn-bloco{width:100%}
.entrada-cartao{margin:0 auto}
.mt{margin-top:1rem}
.inativo{opacity:.72}
.cartao.sem-pad{padding:0;overflow:hidden}
.form-linha .form-acoes{margin:0 0 .75rem}
@media (min-width:600px){.form-linha.filtro-mes{grid-template-columns:minmax(0,260px) 1fr}.filtro-mes .form-acoes{justify-content:flex-end}}
