/*
 * Ajustes finais do painel (carregado por último em views/layout.php).
 * Acabamento comum a todas as telas: topo, ícones do menu e cartões de
 * números, principalmente no celular, onde os cartões ocupavam a tela inteira
 * um embaixo do outro e o botão do menu era um caractere solto.
 */

/* Topo -------------------------------------------------------------- */
.menu-button{color:var(--text,#111827)}
.menu-button .app-icon{width:22px;height:22px}
.topbar .icon-btn .app-icon{width:20px;height:20px}
.notification-icon .app-icon{width:16px;height:16px}
.notification-item>i .app-icon{width:16px;height:16px;opacity:.5}
.notification-empty>span .app-icon{width:22px;height:22px}
.mobile-more-sheet header button .app-icon{width:20px;height:20px}

/* Menu lateral: ícones do mesmo tamanho e alinhados ---------------- */
.nav-dynamic .nav-icon,.nav-dynamic .nav-group-icon{display:inline-grid;place-items:center;flex:0 0 20px}
.nav-dynamic .nav-icon .app-icon{width:18px;height:18px}
.nav-dynamic .nav-group-icon .app-icon{width:16px;height:16px}

/* Cartões de números (Resumo e outras telas com .stats) ------------- */
.stats article{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.stats article .stat-icon{flex:0 0 auto}
.stats article>strong{overflow-wrap:anywhere}

@media (max-width:760px){
  .workspace{padding-left:14px;padding-right:14px}
  .page-head{gap:14px;margin-bottom:18px}
  .page-head h1{font-size:clamp(24px,7vw,30px);line-height:1.1}
  .page-head p{font-size:14px}
  .crm-head-actions,.page-head .actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;width:100%}
  .crm-head-actions .btn,.page-head .actions .btn{min-height:44px;padding:8px 10px;font-size:13.5px;line-height:1.2;white-space:normal;text-align:center;justify-content:center}

  .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .stats article{padding:14px!important;min-height:0!important;border-radius:14px}
  .stats article .stat-icon{position:static!important;width:34px!important;height:34px!important;margin:0 0 10px!important;border-radius:10px}
  .stats article>span{font-size:12px!important;line-height:1.3}
  .stats article>strong{margin:4px 0 2px!important;font-size:24px!important;line-height:1.1}
  .stats article>small{font-size:11.5px!important;line-height:1.35}
  .stats article:after{width:60px!important;height:60px!important;right:-24px!important;bottom:-28px!important}
}

/* Barra inferior do celular: 4 atalhos + Mais, rótulos sem quebrar --- */
@media (max-width:760px){
  .mobile-bottom-nav a span,.mobile-bottom-nav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
  .mobile-bottom-nav button span{font-size:11px}
}

/* =====================================================================
   Menu lateral (v2): grupos que abrem e fecham também no computador,
   busca no menu, contadores e item ativo destacado. Claro e escuro.
   ===================================================================== */
.sidebar{--nav-ink:#1f2a26;--nav-muted:#6b7a74;--nav-soft:#f2f6f4;--nav-line:#e6ece9;--nav-active-bg:color-mix(in srgb,var(--green) 11%,#fff);--nav-active-ink:var(--green)}
[data-admin-theme="dark"] .sidebar{--nav-ink:#e7ece9;--nav-muted:#93a19b;--nav-soft:#1d2421;--nav-line:#262e2b;--nav-active-bg:color-mix(in srgb,var(--green) 22%,#121614);--nav-active-ink:#7fe0b6}

/* Busca no menu */
.nav-filter{position:relative;display:flex;align-items:center;gap:8px;margin:14px 0 8px;padding:0 10px;height:38px;border:1px solid var(--nav-line);border-radius:11px;background:var(--nav-soft);color:var(--nav-muted);cursor:text;transition:border-color .2s,box-shadow .2s,background-color .2s}
.nav-filter .app-icon{width:16px;height:16px;flex:0 0 16px}
.nav-filter input{flex:1;min-width:0;height:100%;padding:0;border:0!important;outline:0;background:transparent!important;color:var(--nav-ink);font-weight:500;font-size:13.5px;line-height:1;box-shadow:none!important}
.nav-filter input::placeholder{color:var(--nav-muted);opacity:1}
.nav-filter input::-webkit-search-cancel-button{-webkit-appearance:none}
.nav-filter kbd{padding:1px 6px;border:1px solid var(--nav-line);border-radius:6px;background:transparent;color:var(--nav-muted);font-weight:600;font-size:11px;line-height:1.4}
.nav-filter:focus-within{border-color:color-mix(in srgb,var(--green) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent);background:transparent}
.nav-filter:focus-within kbd{display:none}
.nav-filter-empty{margin:14px 12px;color:var(--nav-muted);font-size:13px}
body.sidebar-collapsed .nav-filter{display:none}

/* Grupos */
.sidebar nav.nav-dynamic .nav-group{display:block;border:0!important;margin:0 0 2px}
.sidebar nav.nav-dynamic .nav-group-toggle{display:flex!important;align-items:center;gap:10px;width:100%;min-height:36px!important;margin:6px 0 2px!important;padding:0 8px!important;border:0;border-radius:10px;background:none;color:var(--nav-muted);font:inherit;text-align:left;cursor:pointer!important;transition:background-color .18s,color .18s}
.sidebar nav.nav-dynamic .nav-group-toggle:hover{background:var(--nav-soft);color:var(--nav-ink)}
.sidebar nav.nav-dynamic .nav-group-toggle:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.sidebar nav.nav-dynamic .nav-group-icon{display:grid!important;place-items:center;width:26px!important;height:26px!important;flex:0 0 26px!important;border-radius:8px!important;background:var(--nav-soft)!important;color:var(--nav-muted)!important;transition:background-color .2s,color .2s}
.sidebar nav.nav-dynamic .nav-group-icon .app-icon{width:15px!important;height:15px!important}
.sidebar nav.nav-dynamic .nav-group.is-open .nav-group-icon,.sidebar nav.nav-dynamic .nav-group:has(.nav-item.active) .nav-group-icon{background:var(--nav-active-bg)!important;color:var(--nav-active-ink)!important}
.sidebar nav.nav-dynamic .nav-group-toggle .nav-label{display:block;flex:1 1 auto;min-width:0;margin:0!important;color:inherit!important;font-weight:700!important;font-size:12.5px!important;line-height:1.2!important;letter-spacing:.02em!important;text-transform:none!important;opacity:1!important}
.sidebar nav.nav-dynamic .nav-group-count{min-width:20px;padding:1px 6px;border-radius:20px;background:var(--nav-soft);color:var(--nav-muted);font-weight:700;font-size:10.5px;line-height:1.5;text-align:center;opacity:0;transition:opacity .2s}
.sidebar nav.nav-dynamic .nav-group:not(.is-open) .nav-group-count{opacity:1}
.sidebar nav.nav-dynamic .nav-group-chevron{display:grid!important;place-items:center;flex:0 0 18px;color:var(--nav-muted);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.sidebar nav.nav-dynamic .nav-group-chevron .app-icon{width:15px;height:15px}
.sidebar nav.nav-dynamic .nav-group.is-open .nav-group-chevron{transform:rotate(180deg)}

/* Abre/fecha com animação de altura (grid 0fr → 1fr) */
.sidebar nav.nav-dynamic .nav-group-items,.sidebar nav.nav-dynamic .nav-group--recolhivel .nav-group-items{display:grid!important;grid-template-rows:0fr;padding:0 0 0 6px!important;opacity:0;visibility:hidden}
.sidebar nav.nav-dynamic .nav-group.is-open .nav-group-items,.sidebar.is-filtering nav.nav-dynamic .nav-group .nav-group-items{grid-template-rows:1fr;opacity:1;visibility:visible;padding-bottom:4px!important}
.sidebar.nav-ready nav.nav-dynamic .nav-group-items{transition:grid-template-rows .28s cubic-bezier(.2,.8,.2,1),opacity .2s,visibility .28s,padding .28s}
.sidebar nav.nav-dynamic .nav-group-inner{min-height:0;overflow:hidden}
.sidebar.is-filtering nav.nav-dynamic .nav-group-chevron{opacity:.3}

/* Itens */
.sidebar nav.nav-dynamic a.nav-item{display:flex;align-items:center;gap:11px;min-height:38px!important;margin:1px 0!important;padding:0 10px!important;border-radius:10px;color:var(--nav-muted);font-weight:600;font-size:13.5px;line-height:1.2;text-decoration:none}
.sidebar nav.nav-dynamic a.nav-item[hidden]{display:none!important}
.sidebar nav.nav-dynamic a.nav-item .nav-icon{color:inherit}
.sidebar nav.nav-dynamic a.nav-item .nav-icon .app-icon{width:18px!important;height:18px!important}
.sidebar nav.nav-dynamic a.nav-item:hover{background:var(--nav-soft)!important;color:var(--nav-ink)!important;transform:none!important}
.sidebar nav.nav-dynamic a.nav-item.active{background:var(--nav-active-bg)!important;color:var(--nav-active-ink)!important;font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 18%,transparent)}
.sidebar nav.nav-dynamic a.nav-item::before{left:-6px!important;width:3px!important}
.sidebar nav.nav-dynamic a.nav-item.active::before{height:22px!important}
.sidebar nav.nav-dynamic .nav-badge{margin-left:auto;min-width:20px;padding:1px 7px;border-radius:20px;background:var(--green);color:#fff;font-weight:700;font-size:11px;line-height:1.5;text-align:center}
.sidebar nav.nav-dynamic a.nav-item .nav-text{flex:1 1 auto}

/* Lateral recolhida (só ícones): sem cabeçalho de grupo, tudo visível */
body.sidebar-collapsed .sidebar nav.nav-dynamic .nav-group-toggle{display:none!important}
body.sidebar-collapsed .sidebar nav.nav-dynamic .nav-group-items{grid-template-rows:1fr!important;opacity:1!important;visibility:visible!important;padding:0!important}
body.sidebar-collapsed .sidebar nav.nav-dynamic .nav-group+.nav-group{margin-top:8px;padding-top:8px;border-top:1px solid var(--nav-line)!important}
body.sidebar-collapsed .sidebar nav.nav-dynamic .nav-badge{position:absolute;top:4px;right:6px;min-width:8px;width:8px;height:8px;padding:0;font-size:0}

/* Celular: área de toque maior */
@media (max-width:980px){
  .sidebar nav.nav-dynamic a.nav-item{min-height:44px!important;font-size:14.5px}
  .sidebar nav.nav-dynamic .nav-group-toggle{min-height:44px!important}
  .nav-filter{height:42px}
  .nav-filter kbd{display:none}
}
@media (prefers-reduced-motion:reduce){.sidebar.nav-ready nav.nav-dynamic .nav-group-items{transition:none}}

/* =====================================================================
   Tema escuro: a cor principal deste painel é o azul-marinho da marca
   (#05021e). Ela serve de destaque (--green), de texto forte (--ink) e de
   fundo de botão — e sobre o fundo preto do tema escuro sumia: ícone da busca
   no celular, botões principais, títulos. No escuro o destaque vira um verde
   legível sobre preto e o texto forte vira claro.
   ===================================================================== */
html[data-admin-theme="dark"]:root{
  --green:#12a777;--green2:#0e8a62;--brand-primary:#12a777;--brand-secondary:#0e8a62;
  --ink:#ededed;--mobile-theme:#0d0d0d;
}
[data-admin-theme="dark"] .mobile-search-button{background:#161616;color:#e5e7eb;border:1px solid #262626}
[data-admin-theme="dark"] .avatar{background:#262626;color:#ededed}
[data-admin-theme="dark"] .menu-button,[data-admin-theme="dark"] .topbar .icon-btn{color:#e5e7eb}
[data-admin-theme="dark"] .topbar .search{background:#121212;border-color:#262626;color:#a3a3a3}
[data-admin-theme="dark"] .topbar .search input{color:#ededed}
[data-admin-theme="dark"] .topbar .search input::placeholder,[data-admin-theme="dark"] input::placeholder,[data-admin-theme="dark"] textarea::placeholder{color:#8a8a8a;opacity:1}
[data-admin-theme="dark"] .topbar .search kbd{background:#1c1c1c;border-color:#333;color:#bdbdbd}
[data-admin-theme="dark"] .btn.primary,[data-admin-theme="dark"] .botao:not(.botao--vazado):not(.botao--secundario){background:#12a777!important;border-color:#12a777!important;color:#fff!important;box-shadow:none}
[data-admin-theme="dark"] .btn.secondary,[data-admin-theme="dark"] .botao--vazado{background:#161616!important;border-color:#2e2e2e!important;color:#ededed!important}
[data-admin-theme="dark"] .mobile-bottom-nav .active i{background:#1f2a25;color:#7fe0b6}

/* Menu do celular rola: mobile-app.css forçava .sidebar{display:block}, o
   que desfazia a coluna flexível — a lista crescia além da tela e era
   cortada pelo overflow:hidden da gaveta, sem rolagem. */
@media (max-width:980px){
  .sidebar{display:flex!important;flex-direction:column!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;padding-bottom:calc(12px + env(safe-area-inset-bottom))!important}
  .sidebar>.sidebar-head,.sidebar>.nav-filter{flex:0 0 auto}
  .sidebar nav.nav-dynamic{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding-bottom:24px!important}
}

/* iOS aumentava sozinho a fonte de linhas longas (títulos de cursos em tamanhos diferentes). */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* Revisão 12/10: tabelas largas rolam dentro do card no celular (Redirecionamentos, SEO local, Pixel Meta...). */
@media(max-width:760px){
  main table.table:not(.vc-table){display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  main table.table:not(.vc-table) th,main table.table:not(.vc-table) td{white-space:nowrap}
}
/* Modo escuro: chips do SEO local e subabas ativas do Site não ficam brancos. */
html[data-admin-theme="dark"] .site-seo-chip{background:#161616!important;color:#d4d4d4!important;border-color:#2e2e2e!important}
html[data-admin-theme="dark"] .site-seo-chip b{background:#262626!important;color:#ededed!important}
html[data-admin-theme="dark"] .site-seo-chip.active,html[data-admin-theme="dark"] .site-seo-chip.is-on{background:#12a777!important;color:#fff!important;border-color:#12a777!important}
html[data-admin-theme="dark"] .site-admin-subtabs a.active,html[data-admin-theme="dark"] .site-admin-nav a.active{background:rgba(18,167,119,.16)!important;color:#34d399!important}
/* Redirecionamentos no celular: o domínio fica em cima e o campo do endereço usa a largura toda. */
@media(max-width:760px){
  .redirect-form{grid-template-columns:1fr!important}
  .redirect-form__prefixo{flex-direction:column;align-items:stretch!important}
  .redirect-form__prefixo>span,.redirect-form__prefixo>b,.redirect-form__prefixo>em{padding:8px 12px 0!important;font-size:12px!important;white-space:normal;word-break:break-all}
  .redirect-form__prefixo input{width:100%!important;min-width:0!important}
}
