/* CodeForm — painel externo (front-end). Tokens locais; sempre tema claro, como o site. */
.cfx-panel{--cfx-bg:#fff;--cfx-surface:#fff;--cfx-soft:#f3f4f8;--cfx-head:#f8f9fc;--cfx-ink:#0f172a;--cfx-muted:#475569;--cfx-line:#e2e5ec;--cfx-line-strong:#cbd0dc;--cfx-brand:#4338ca;--cfx-brand-ink:#3730a3;--cfx-brand-soft:#eef0ff;--cfx-ok:#1a7f37;--cfx-bad:#b32d2e;--cfx-warn:#996800;--cfx-none:#6b7280;--cfx-err-bg:#fef2f2;--cfx-err:#991b1b;--cfx-on-brand:#fff;
	color-scheme:light;max-width:1100px;margin:0 auto;padding:20px;background:var(--cfx-bg);color:var(--cfx-ink);font-size:15px;line-height:1.45;border:1px solid var(--cfx-line);border-radius:14px}
.cfx-panel *{box-sizing:border-box}
.cfx-panel h2{margin:0;font-size:1.35em;letter-spacing:-.01em;color:var(--cfx-ink)}
.cfx-sub{color:var(--cfx-muted);margin:2px 0 14px;font-size:.9em}
.cfx-muted{color:var(--cfx-muted)}
.cfx-ico{width:16px;height:16px;flex:none}

/* ---------- Botões (contorno fino com ícone) ---------- */
.cfx-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 15px;font:inherit;font-size:.9em;font-weight:600;line-height:1;color:var(--cfx-ink);background:var(--cfx-surface);border:1px solid var(--cfx-line-strong);border-radius:8px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .12s,border-color .12s,color .12s;list-style:none}
.cfx-btn::-webkit-details-marker{display:none}
.cfx-btn .cfx-ico{color:var(--cfx-muted)}
.cfx-btn:hover,.cfx-btn:focus{color:var(--cfx-brand-ink);border-color:var(--cfx-brand);background:var(--cfx-brand-soft)}
.cfx-btn:hover .cfx-ico,.cfx-btn:focus .cfx-ico{color:var(--cfx-brand)}
.cfx-btn:focus-visible,.cfx-panel a:focus-visible,.cfx-panel summary:focus-visible{outline:2px solid var(--cfx-brand);outline-offset:2px}
.cfx-btn.is-primary{color:var(--cfx-on-brand);background:var(--cfx-brand);border-color:var(--cfx-brand)}
.cfx-btn.is-primary .cfx-ico{color:var(--cfx-on-brand)}
.cfx-btn.is-primary:hover,.cfx-btn.is-primary:focus{color:var(--cfx-on-brand);background:var(--cfx-brand-ink);border-color:var(--cfx-brand-ink)}
.cfx-btn.is-ghost{background:transparent;border-color:transparent}
.cfx-btn.is-ghost:hover,.cfx-btn.is-ghost:focus{background:var(--cfx-soft);border-color:var(--cfx-line)}
.cfx-btn.is-block{width:100%}
.cfx-btn[disabled]{opacity:.55;cursor:progress}

/* ---------- Entrada ---------- */
.cfx-login{max-width:400px;margin:24px auto;padding:28px 26px;border:1px solid var(--cfx-line);border-radius:14px;background:var(--cfx-surface);box-shadow:0 4px 18px rgba(15,23,42,.06)}
.cfx-login-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:12px;border-radius:12px;background:var(--cfx-brand-soft);color:var(--cfx-brand)}
.cfx-login-mark .cfx-ico{width:22px;height:22px}
.cfx-login h2{margin:0 0 4px;font-size:1.3em}
.cfx-login label,.cfx-filters label{display:flex;flex-direction:column;gap:5px;font-size:.82em;font-weight:600;color:var(--cfx-muted);margin-bottom:14px}
.cfx-login input,.cfx-filters input,.cfx-filters select{font:inherit;font-weight:400;font-size:15px;padding:9px 11px;min-height:40px;border:1px solid var(--cfx-line-strong);border-radius:8px;color:var(--cfx-ink);background:var(--cfx-surface);min-width:0;width:100%}
.cfx-login input:focus,.cfx-filters input:focus,.cfx-filters select:focus{outline:2px solid var(--cfx-brand);outline-offset:1px;border-color:var(--cfx-brand)}
.cfx-login .cfx-btn{min-height:44px;margin-top:4px}
.cfx-login-note{margin:14px 0 0;text-align:center;color:var(--cfx-muted);font-size:.82em}
.cfx-error{background:var(--cfx-err-bg);border-left:4px solid var(--cfx-bad);color:var(--cfx-err);padding:9px 12px;border-radius:0 8px 8px 0;margin:0 0 14px;font-size:.9em}

/* ---------- Cabeçalho, indicadores, filtros ---------- */
.cfx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.cfx-head .cfx-sub{margin-bottom:10px}
.cfx-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:2px 0 16px}
.cfx-stat{padding:12px 14px;border:1px solid var(--cfx-line);border-radius:10px;background:var(--cfx-surface);min-width:0}
.cfx-stat-label{display:block;color:var(--cfx-muted);font-size:.8em;font-weight:600}
.cfx-stat-value{display:block;margin-top:2px;font-size:1.5em;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cfx-ink)}
.cfx-stat.is-ok .cfx-stat-value{color:var(--cfx-ok)}
.cfx-stat.is-warn .cfx-stat-value{color:var(--cfx-warn)}
.cfx-filters{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin:0 0 10px;padding:14px;background:var(--cfx-soft);border-radius:10px}
.cfx-filters label{margin:0;flex:0 1 170px}
.cfx-filters label.cfx-grow{flex:1 1 240px}
.cfx-filters .cfx-btn{align-self:flex-end;min-height:40px}
.cfx-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.cfx-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 8px 5px 11px;font-size:.82em;font-weight:600;color:var(--cfx-brand-ink);background:var(--cfx-brand-soft);border:1px solid transparent;border-radius:99px;text-decoration:none}
.cfx-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cfx-chip .cfx-ico{width:14px;height:14px}
.cfx-chip:hover{border-color:var(--cfx-brand)}
.cfx-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 10px}
.cfx-count{color:var(--cfx-muted);margin:0}

/* ---------- Exportar planilha ---------- */
.cfx-export{position:relative}
.cfx-export summary{display:inline-flex}
.cfx-export-form{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:320px;max-width:calc(100vw - 48px);padding:16px;background:var(--cfx-surface);border:1px solid var(--cfx-line-strong);border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.18)}
.cfx-export-title{margin:0;font-weight:700}
.cfx-export-form .cfx-sub{margin:2px 0 12px}
.cfx-export-form fieldset{margin:0 0 12px;padding:0;border:0}
.cfx-export-form legend{padding:0;margin-bottom:6px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--cfx-muted)}
.cfx-opt{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:.92em;cursor:pointer}
.cfx-opt input{accent-color:var(--cfx-brand);margin:0}
.cfx-export-status{margin:8px 0 0;min-height:1.2em;text-align:center;color:var(--cfx-muted);font-size:.85em}

/* ---------- Tabela ---------- */
.cfx-empty{display:flex;flex-direction:column;align-items:center;gap:2px;padding:34px 18px;border:1px dashed var(--cfx-line-strong);border-radius:12px;color:var(--cfx-muted);text-align:center}
.cfx-empty p{margin:0}
.cfx-empty strong{color:var(--cfx-ink)}
.cfx-scroll{border-radius:10px}
.cfx-table,.cfx-table tbody,.cfx-table tr,.cfx-table td{display:block;width:100%}
.cfx-table{font-size:.9em}
.cfx-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cfx-table tbody tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px 20px;margin:0 0 12px;padding:14px 16px;background:var(--cfx-surface);border:1px solid var(--cfx-line);border-radius:12px}
.cfx-table tbody tr:hover{border-color:var(--cfx-line-strong)}
.cfx-table td{min-width:0;padding:0;border:0;text-align:left;overflow-wrap:anywhere}
.cfx-table td::before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--cfx-muted);font-size:.78em;font-weight:600}
.cfx-table td.cfx-code,.cfx-table td.cfx-wide{grid-column:span 2}
.cfx-table td.cfx-sum{grid-column:1/-1}
.cfx-table td code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--cfx-soft);padding:2px 6px;border-radius:4px;overflow-wrap:anywhere}
.cfx-name{display:block;font-weight:600}
.cfx-mail{display:block;color:var(--cfx-muted);font-size:.92em;overflow-wrap:anywhere}
.cfx-file{display:inline-flex;align-items:center;gap:6px;color:var(--cfx-brand-ink);font-weight:600;text-decoration:none}
.cfx-file span{overflow-wrap:anywhere}
.cfx-file:hover{text-decoration:underline}
.cfx-dot{color:var(--cfx-muted)}
.cfx-badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.78em;font-weight:600;color:#fff;margin-left:4px;white-space:nowrap}
.cfx-ok{background:var(--cfx-ok)}.cfx-bad{background:var(--cfx-bad)}.cfx-warn{background:var(--cfx-warn)}.cfx-none{background:var(--cfx-none)}
.cfx-pages{display:flex;gap:16px;align-items:center;justify-content:center;margin:16px 0}
.cfx-pages a{color:var(--cfx-brand)}

/* ---------- Paginação do painel externo ---------- */
.cfx-pager{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin:16px 0 4px}
.cfx-pager-info{color:var(--cfx-muted);font-size:.85em}
.cfx-pager-info strong{color:var(--cfx-ink)}
.cfx-pager ul{display:flex;flex-wrap:wrap;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.cfx-pager li{margin:0}
.cfx-pg{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;box-sizing:border-box;border:1px solid var(--cfx-line-strong);border-radius:8px;background:var(--cfx-surface);color:var(--cfx-ink);font-size:.9em;font-weight:500;line-height:1;text-decoration:none;transition:border-color .15s,background .15s}
a.cfx-pg:hover{border-color:var(--cfx-brand);background:var(--cfx-brand-soft);color:var(--cfx-brand-ink)}
a.cfx-pg:focus-visible{outline:2px solid var(--cfx-brand);outline-offset:2px}
.cfx-pg.is-current{background:var(--cfx-brand);border-color:var(--cfx-brand);color:var(--cfx-on-brand);font-weight:600}
.cfx-pg.is-disabled{opacity:.45;background:var(--cfx-head)}
.cfx-gap{display:inline-flex;align-items:center;justify-content:center;min-width:22px;color:var(--cfx-muted)}

/* ---------- Telas estreitas: a tabela vira cartões ---------- */
@media (max-width:900px){.cfx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
	.cfx-panel{padding:14px;border-radius:0;border-left:0;border-right:0}
	.cfx-filters{padding:12px}
	.cfx-filters label,.cfx-filters label.cfx-grow{flex:1 1 100%}
	.cfx-filters .cfx-btn{width:100%}
	.cfx-bar{align-items:stretch}
	.cfx-export,.cfx-export summary{width:100%}
	.cfx-export-form{left:0;right:0;width:auto;max-width:none}
	.cfx-table tbody tr{grid-template-columns:1fr;gap:10px;padding:12px 14px}
	.cfx-table td.cfx-code,.cfx-table td.cfx-wide{grid-column:auto}
	.cfx-pager{justify-content:center}
	.cfx-pager-info{width:100%;text-align:center}
	.cfx-pg{min-width:38px;height:38px;padding:0 9px}
}
@media (prefers-reduced-motion:reduce){.cfx-panel *{transition:none!important}}

/* ---------- Exportação: reCAPTCHA, cota e avisos ---------- */
.cfx-notice{margin:0 0 14px;padding:10px 14px;font-size:.92em;color:var(--cfx-warn);background:#fff8e6;border:1px solid #f1d28a;border-left:4px solid var(--cfx-warn);border-radius:8px}
.cfx-captcha{margin:0 0 12px}
.cfx-captcha-box{width:304px;max-width:100%;min-height:78px;margin:0 auto}
.cfx-export-quota{margin:0 0 10px;text-align:center;color:var(--cfx-muted);font-size:.85em}
.cfx-export-quota.is-empty{color:var(--cfx-warn);font-weight:600}
.cfx-export.is-off{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cfx-export-off{margin:0;max-width:340px;color:var(--cfx-muted);font-size:.82em;text-align:right}
.cfx-export-form .cfx-btn[disabled]{opacity:.5;cursor:not-allowed}
.cfx-export-form .cfx-btn[aria-busy=true][disabled]{cursor:progress}
@media (max-width:640px){.cfx-export.is-off{align-items:stretch}.cfx-export.is-off .cfx-btn{width:100%}.cfx-export-off{max-width:none;text-align:left}}
/* O widget do reCAPTCHA tem 304px fixos: o painel precisa de 304 + padding + borda. */
@media (min-width:641px){.cfx-export-form{width:344px;max-width:calc(100vw - 48px)}}
.cfx-captcha-box{transform-origin:0 0}@media (max-width:360px){.cfx-captcha-box{transform:scale(.8);height:64px}}
.cfx-scroll:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}
