/* =====================================================================
   GET7 — Painel Administrativo
   CSS extraído integralmente do bloco <style> de preview/preview_admin.html
   (layout Etapa 2 aprovado pelo cliente em 09/10/2026). NÃO alterar os
   estilos extraídos — as únicas adições estão na seção final marcada.
   ===================================================================== */

/* ===== GET7 — identidade visual (§4.5 do documento de estruturação) ===== */
:root{
  --primaria:#FF5D05;
  --primaria-fim:#FF3B20;
  --gradiente:linear-gradient(200deg,#FF5D05 0%,#FF3B20 100%);
  --navy:#112337;
  --bg:#F5F5F5;
  --card:#FFFFFF;
  --text:#112337;
  --muted:#6E6E6E; /* neutro da marca #7A7A7A escurecido p/ contraste AA */
  --border:#EBEBEB;
  --hover:#FFF1EA;
  --ok:#1B7F3B; --ok-bg:#E6F4EA;
  --warn:#8A5200; --warn-bg:#FFF3E0;
  --err:#C62828; --err-bg:#FDECEA;
  --info:#125A8F; --info-bg:#E4F1FB;
  --ring:rgba(255,93,5,.20);
  --shadow:0 1px 2px rgba(17,35,55,.06),0 6px 18px rgba(17,35,55,.07);
  --shadow-lg:0 14px 34px rgba(17,35,55,.16);
  --radius:14px;
  --radius-sm:9px;
  --font:'Be Vietnam Pro','Helvetica Neue',Helvetica,Arial,sans-serif;
}
[data-theme="dark"]{
  --bg:#112337;
  --card:#1A2F49;
  --text:#FFFFFF;
  --muted:#B3B3B3;
  --border:#2C4560;
  --hover:#24405E;
  --ok:#5CD98A; --ok-bg:#12351F;
  --warn:#FFB864; --warn-bg:#3A2A12;
  --err:#FF8A80; --err-bg:#3E1A1A;
  --info:#7FC4F0; --info-bg:#102C42;
  --ring:rgba(255,93,5,.35);
  --shadow:0 1px 2px rgba(0,0,0,.45),0 6px 18px rgba(0,0,0,.35);
  --shadow-lg:0 14px 34px rgba(0,0,0,.5);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);font-size:14.5px;line-height:1.6;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
:focus-visible{outline:3px solid var(--primaria);outline-offset:2px;border-radius:4px}
[hidden]{display:none !important}
.pular{position:absolute;left:-9999px;top:0;background:var(--primaria);color:#fff;padding:10px 16px;z-index:999;border-radius:0 0 8px 0}
.pular:focus{left:0}

/* Botões e badges */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;text-align:center;line-height:1.25}
.btn svg{width:17px;height:17px;flex:none}
.btn-grad{background:var(--gradiente);color:#fff;box-shadow:0 6px 18px rgba(255,93,5,.30)}
.btn-grad:hover{filter:brightness(1.07);transform:translateY(-1px)}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}
.btn-outline:hover{border-color:var(--primaria);color:var(--primaria)}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{color:var(--primaria)}
.btn-sm{padding:7px 14px;font-size:12.5px}
.btn-block{width:100%}
.btn-danger{background:var(--err-bg);color:var(--err)}
.btn-tema{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:11px;cursor:pointer;transition:.15s}
.btn-tema:hover{border-color:var(--primaria);color:var(--primaria)}
.btn-tema svg{width:19px;height:19px}
.ico-lua{display:none}
[data-theme="dark"] .ico-sol{display:none}
[data-theme="dark"] .ico-lua{display:block}
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.badge svg{width:12px;height:12px}
.b-normal{background:var(--info-bg);color:var(--info)}
.b-jogo{background:rgba(255,93,5,.13);color:#D14400}
.b-cert{background:var(--ok-bg);color:var(--ok)}
.b-aviso{background:var(--warn-bg);color:var(--warn)}
.b-erro{background:var(--err-bg);color:var(--err)}
.b-neutro{background:var(--bg);color:var(--text);border:1px solid var(--border)}
.b-ok{background:var(--ok-bg);color:var(--ok)}
.b-admin{background:var(--navy);color:#fff}
[data-theme="dark"] .b-jogo{background:rgba(255,93,5,.22);color:#FF9159}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-cab{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.card-cab h2,.card-cab h3{font-size:16.5px;font-weight:700}
.card-corpo{padding:20px 22px}

/* Layout do app (sidebar) */
.app{display:flex;min-height:100vh}
.sidebar{width:254px;flex:none;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:220}
.side-brand{display:flex;align-items:center;gap:10px;padding:2px 6px 14px;border-bottom:1px solid var(--border);margin-bottom:12px}
.side-brand img{width:38px;height:38px;border-radius:10px;background:var(--navy)}
.side-brand strong{font-size:15px;font-weight:800;display:block;line-height:1.2}
.side-brand small{font-size:10.5px;color:var(--muted);font-weight:500}
.side-tit{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;padding:14px 10px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;transition:.15s;border:none;background:none;width:100%;text-align:left}
.nav-item svg{width:18px;height:18px;flex:none}
.nav-item:hover{background:var(--hover);color:var(--text)}
.nav-item.active{background:var(--gradiente);color:#fff;box-shadow:0 6px 16px rgba(255,93,5,.32)}
.nav-item.destaque{border-top:1px solid var(--border);margin-top:8px;padding-top:16px;color:var(--primaria)}
.side-foot{margin-top:auto;border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:9px}
.usuario{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:9px 11px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--gradiente);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex:none}
.usuario .nome{font-size:13.5px;font-weight:700;line-height:1.25}
.usuario .perfil{font-size:11px;color:var(--muted)}
.sair{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted);padding:8px 12px;border-radius:10px}
.sair:hover{background:var(--hover);color:var(--err)}
.sair svg{width:16px;height:16px}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:none;position:sticky;top:0;z-index:150;background:var(--card);border-bottom:1px solid var(--border);padding:10px 16px;align-items:center;gap:12px}
.menu-btn{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:11px;cursor:pointer;color:var(--text)}
.menu-btn svg{width:22px;height:22px}
.overlay{position:fixed;inset:0;background:rgba(17,35,55,.55);opacity:0;pointer-events:none;transition:.2s;z-index:210}
.overlay.ativo{opacity:1;pointer-events:auto}
.conteudo{padding:26px;flex:1;width:100%;max-width:1220px;margin:0 auto}
.secao{display:none}
.secao.ativa{display:block}
.page-head{margin-bottom:22px}
.page-head h1{font-size:23px;font-weight:800;letter-spacing:-.4px}
.page-head p{color:var(--muted);font-size:14px}
.acoes-topo{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}

/* Stats + gráficos */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:flex;gap:14px;align-items:center}
.stat-ico{width:44px;height:44px;border-radius:12px;background:var(--hover);color:var(--primaria);display:flex;align-items:center;justify-content:center;flex:none}
.stat-ico svg{width:22px;height:22px}
.stat-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.stat .lbl{font-size:12px;color:var(--muted);line-height:1.3}
.stat .val{font-size:24px;font-weight:800;line-height:1.15}
.grafico{width:100%;height:auto;display:block}
.grafico .rot{fill:var(--muted);font-size:11px;font-family:var(--font)}
.grafico .val{fill:var(--text);font-size:11px;font-weight:700;font-family:var(--font)}
.grafico .grade{stroke:var(--border);stroke-width:1}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}

/* Tabelas */
.tabela-wrap{overflow-x:auto;border-radius:var(--radius)}
table.tabela{width:100%;border-collapse:collapse;background:var(--card);font-size:13.5px;min-width:680px}
.tabela th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:12px 14px;background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap}
.tabela td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.tabela tr:last-child td{border-bottom:none}
.tabela tbody tr:hover{background:var(--hover)}
.tabela .num{text-align:right;font-variant-numeric:tabular-nums}
.tabela .acoes{display:flex;gap:7px;justify-content:flex-end;align-items:center}
.tabela .enunciado{max-width:330px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.setas{display:inline-flex;flex-direction:column;gap:2px;vertical-align:middle}
.seta{background:var(--bg);border:1px solid var(--border);border-radius:5px;width:24px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);padding:0}
.seta:hover{border-color:var(--primaria);color:var(--primaria)}
.seta svg{width:11px;height:11px}
.btn-ico{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--bg);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);padding:0}
.btn-ico:hover{border-color:var(--primaria);color:var(--primaria)}
.btn-ico.del:hover{border-color:var(--err);color:var(--err)}
.btn-ico svg{width:15px;height:15px}
.pager{display:flex;gap:6px;justify-content:flex-end;align-items:center;margin-top:14px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.pager a,.pager span{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid var(--border);border-radius:8px;background:var(--card);font-weight:600}
.pager .atual{background:var(--gradiente);color:#fff;border-color:transparent}

/* Formulários e filtros */
.filtros{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.campo{display:flex;flex-direction:column;gap:6px;min-width:170px;flex:1}
.campo label{font-size:12.5px;font-weight:700}
.campo .obrig{color:var(--primaria)}
.campo input,.campo select,.campo textarea{padding:10px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%}
.campo textarea{min-height:92px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--primaria);box-shadow:0 0 0 3px var(--ring);outline:none}
.campo input:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}
.campo .ajuda{font-size:11.5px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid .full{grid-column:1/-1}
.radio-linha,.check-linha{display:flex;gap:10px;flex-wrap:wrap}
.radio-op,.check-op{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;border:1px solid var(--border);border-radius:999px;padding:8px 15px;cursor:pointer;background:var(--bg)}
.radio-op input,.check-op input{accent-color:var(--primaria);width:15px;height:15px}
.radio-op:has(input:checked),.check-op:has(input:checked){border-color:var(--primaria);background:var(--hover);color:var(--primaria)}
.faixas-check{display:flex;gap:12px;flex-wrap:wrap}
.faixa-check{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;padding:9px 15px;font-size:14px;font-weight:800;background:var(--bg);cursor:pointer}
.faixa-check input{width:16px;height:16px;accent-color:var(--primaria)}
.faixa-check:has(input:checked){border-color:var(--primaria);background:var(--hover);color:var(--primaria)}
.alt-linha{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;margin-bottom:9px}
.alt-letra{width:30px;height:30px;border-radius:8px;background:var(--bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.alt-linha input[type="text"]{padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);width:100%}
.alt-certa{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.alt-certa input{accent-color:var(--primaria);width:16px;height:16px}
.cores-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cor-campo{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700}
.cor-campo input[type="color"]{width:100%;height:44px;border:1px solid var(--border);border-radius:9px;background:var(--bg);padding:3px;cursor:pointer}
.cor-campo code{font-size:11.5px;color:var(--muted);font-weight:600}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(17,35,55,.62);display:none;align-items:center;justify-content:center;padding:20px;z-index:300}
.modal.ativo{display:flex}
.modal-caixa{background:var(--card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:640px;max-height:88vh;overflow:auto;box-shadow:var(--shadow-lg)}
.modal-cab{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;background:var(--card);z-index:1}
.modal-cab h3{font-size:16.5px}
.modal-x{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}
.modal-x:hover{color:var(--err)}
.modal-corpo{padding:20px 22px}
.modal-pe{padding:16px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}

/* Importar — upload + fluxo de conferência em 3 passos */
.upload{border:2px dashed var(--border);border-radius:var(--radius);background:var(--bg);padding:34px 20px;text-align:center;transition:.15s}
.upload:hover{border-color:var(--primaria);background:var(--hover)}
.upload .u-ico{width:54px;height:54px;border-radius:50%;background:var(--hover);color:var(--primaria);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.upload .u-ico svg{width:26px;height:26px}
.upload h3{font-size:16px;margin-bottom:6px}
.upload p{font-size:13px;color:var(--muted);margin-bottom:16px}
.formatos{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap;align-items:center}
.formato{font-size:12px;font-weight:800;padding:5px 13px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}
.formato.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.formato.no{background:var(--err-bg);color:var(--err);border-color:transparent;text-decoration:line-through;opacity:.85}
.formatos .sep{font-size:12px;color:var(--muted)}
.passos-fluxo{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.passo-fluxo{background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:12px 14px;display:flex;gap:10px;align-items:center;font-size:13px;font-weight:700;color:var(--muted)}
.passo-fluxo .n{width:26px;height:26px;border-radius:50%;background:var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800;flex:none}
.passo-fluxo.ativo{border-color:var(--primaria);background:var(--hover);color:var(--text)}
.passo-fluxo.ativo .n{background:var(--gradiente);color:#fff}
.passo-fluxo.feito .n{background:var(--ok);color:#fff}
.confirmar-barra{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--navy);color:#fff;border-radius:var(--radius);padding:16px 20px;margin-top:16px}
.confirmar-barra .ct{font-size:14.5px;font-weight:700}
.confirmar-barra .cs{font-size:12.5px;color:#AEBACA}
.editando{background:var(--card);border:1px solid var(--primaria);border-radius:6px;width:100%;padding:6px 8px;font-size:13px}

/* Certificações — árvore CRUD */
.grupo-arvore{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;box-shadow:var(--shadow);overflow:hidden}
.grupo-arvore-cab{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap}
.grupo-arvore-cab strong{font-size:15.5px;flex:1;min-width:170px}
.filhos{padding:10px 16px 14px}
.filho{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px dashed var(--border);flex-wrap:wrap}
.filho:last-child{border-bottom:none}
.filho .f-nome{font-weight:700;font-size:14px;flex:1;min-width:170px}
.add-linha{display:flex;gap:8px;padding:6px 6px 0;flex-wrap:wrap}

/* Manual */
.manual-grid{display:grid;grid-template-columns:280px 1fr;gap:18px}
.manual-indice{display:flex;flex-direction:column;gap:8px;align-self:start}
.manual-indice a{font-weight:600;font-size:14px;padding:10px 14px;border-radius:9px;background:var(--bg);border:1px solid var(--border)}
.manual-indice a:hover{border-color:var(--primaria);color:var(--primaria)}
.manual-sec{margin-bottom:26px;scroll-margin-top:20px}
.manual-sec h3{font-size:17px;margin-bottom:8px}
.manual-sec h4{font-size:14.5px;margin:14px 0 6px}
.manual-sec p,.manual-sec li{font-size:14px;color:var(--muted)}
.manual-sec ul{list-style:disc;padding-left:22px;margin:8px 0}
.manual-sec ol{list-style:decimal;padding-left:22px;margin:8px 0}
.manual-sec li{margin-bottom:5px}

/* Rodapé */
.footer{background:var(--navy);color:#AEBACA;margin-top:26px;padding:20px 26px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;align-items:center}
.footer strong{color:#fff}
.footer .f-marca{display:flex;align-items:center;gap:9px}
.footer .f-marca img{width:30px;height:30px;border-radius:8px;background:#fff}

@media (max-width:1024px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 0 40px rgba(0,0,0,.35)}
  .sidebar.aberto{transform:none}
  .topbar{display:flex}
  .conteudo{padding:20px 16px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .grid-2{grid-template-columns:1fr}
  .passos-fluxo{grid-template-columns:1fr}
  .cores-grid{grid-template-columns:repeat(2,1fr)}
  .manual-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .stats{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .cores-grid{grid-template-columns:1fr}
  .footer{flex-direction:column;align-items:flex-start}
  .alt-linha{grid-template-columns:30px 1fr}
  .alt-certa{grid-column:2}
}

/* =====================================================================
   ADIÇÕES do shell PHP (T1) — estilos acima são 100% do preview aprovado
   ===================================================================== */

/* Flash messages (toasts de feedback pós-POST) */
.flash{position:fixed;top:16px;right:16px;z-index:400;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 32px))}
.flash-item{display:flex;align-items:flex-start;gap:10px;padding:13px 16px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);border:1px solid transparent}
.flash-item svg{width:17px;height:17px;flex:none;margin-top:1px}
.flash-ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.flash-erro{background:var(--err-bg);color:var(--err);border-color:var(--err)}

/* Página de login (fora do layout .app) */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.login-card{width:100%;max-width:420px}
.login-marca{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.login-marca img{width:38px;height:38px;border-radius:10px;background:var(--navy)}
.login-marca strong{font-size:16px;font-weight:800;display:block;line-height:1.2}
.login-marca small{font-size:11px;color:var(--muted);font-weight:500}
.login-erro{display:flex;align-items:flex-start;gap:9px;background:var(--err-bg);color:var(--err);border:1px solid var(--err);border-radius:var(--radius-sm);padding:11px 14px;font-size:13.5px;font-weight:600;margin-bottom:16px}
.login-erro svg{width:16px;height:16px;flex:none;margin-top:2px}

/* =====================================================================
   MOBILE — tema claro mais arejado (feedback do cliente 15/10/2026:
   "no celular as duas versões estão escuras"). No celular o dark
   automático via prefers-color-scheme foi REMOVIDO do JS (só dark se o
   usuário escolher no botão); aqui o claro ganha fundo #FAFAFA, cards
   brancos puros e borda mais leve. :not([data-theme="dark"]) garante
   que o dark explícito continue valendo (specificidade 0,2,0).
   ===================================================================== */
@media (max-width:700px){
  :root:not([data-theme="dark"]){--bg:#FAFAFA;--card:#FFFFFF;--border:#F0F0F0}
}
