/* ==========================================================================
   weCorp — Novo layout (redesign 2026)
   Camada de tema carregada POR ÚLTIMO no <head> do default.ctp, depois de
   style.css e custom_new.css. Reveste as views (Bootstrap 3) via as classes
   já existentes + fornece o App Shell (sidebar/topbar).
   Não altera fluxos/regras; é recamada visual. Tokens derivados do Design
   System (design_novo/l6HW38.png) e PRD_Redesign_HubState.md.
   ========================================================================== */

:root {
  /* Cores */
  --wc-primary:        #22429e;
  --wc-primary-hover:  #1a3480;
  --wc-primary-strong: #2563eb;
  --wc-primary-soft:   #eef2fb;
  --wc-success:        #1f9d55;
  --wc-success-soft:   #dcfce7;
  --wc-success-text:   #15784a;
  --wc-warning:        #d97706;
  --wc-warning-soft:   #fef3c7;
  --wc-warning-text:   #a15c07;
  --wc-danger:         #dc2626;
  --wc-danger-soft:    #fee2e2;
  --wc-danger-text:    #c0392b;
  --wc-neutral:        #64748b;
  --wc-neutral-soft:   #eef1f5;
  --wc-text-primary:   #0f1b33;
  --wc-text-secondary: #475569;
  --wc-border:         #e2e8f0;
  --wc-border-strong:  #cbd5e1;
  --wc-bg-app:         #f1f5f9;
  --wc-bg-surface:     #ffffff;

  /* Tipografia */
  --wc-font: 'Inter', 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  --wc-fs-title:  26px;
  --wc-fs-section:18px;
  --wc-fs-body:   14px;
  --wc-fs-label:  13px;
  --wc-fs-aux:    12px;

  /* Forma */
  --wc-radius:    12px;
  --wc-radius-sm: 8px;
  --wc-radius-pill: 999px;
  --wc-shadow-sm: 0 1px 2px rgba(15,27,51,.06), 0 1px 3px rgba(15,27,51,.05);
  --wc-shadow-md: 0 2px 8px rgba(15,27,51,.08);
  --wc-shadow-lg: 0 12px 32px rgba(15,27,51,.16);

  /* Layout */
  --wc-sidebar-w: 258px;
  --wc-sidebar-w-collapsed: 64px;
  --wc-topbar-h: 64px;
}

/* ==========================================================================
   BASE
   ========================================================================== */
body.wc-body {
  background: var(--wc-bg-app);
  color: var(--wc-text-primary);
  font-family: var(--wc-font);
  font-size: var(--wc-fs-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.wc-body a { color: var(--wc-primary-strong); }
.wc-body a:hover, .wc-body a:focus { color: var(--wc-primary-hover); }

/* ==========================================================================
   APP SHELL — SIDEBAR
   ========================================================================== */
.wc-sidebar {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: var(--wc-sidebar-w);
  background: var(--wc-bg-surface);
  border-right: 1px solid var(--wc-border);
  display: flex;
  flex-direction: column;
  z-index: 1040;
  transition: width .18s ease, transform .18s ease;
}
.wc-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  height: var(--wc-topbar-h);
  padding: 0 18px;
  border-bottom: 1px solid var(--wc-border);
  flex: 0 0 auto;
  overflow: hidden;
}
.wc-brand img { max-height: 34px; width: auto; display: block; }
.wc-brand .wc-brand-mark {
  width: 34px; height: 34px; flex: 0 0 34px;
  background: var(--wc-primary);
  color: #fff;
  border-radius: var(--wc-radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 18px;
}

.wc-nav {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 12px 12px 20px;
}
.wc-nav::-webkit-scrollbar { width: 8px; }
.wc-nav::-webkit-scrollbar-thumb { background: var(--wc-border-strong); border-radius: 8px; }

.wc-nav-section {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--wc-neutral);
  padding: 16px 12px 6px;
}
.wc-nav ul { list-style: none; margin: 0; padding: 0; }

/* item raiz do menu (módulo) */
.wc-nav .wc-item > a,
.wc-nav .wc-link {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 12px;
  margin: 2px 0;
  border-radius: var(--wc-radius-sm);
  color: var(--wc-text-secondary);
  font-size: var(--wc-fs-body);
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s ease, color .12s ease;
}
.wc-nav .wc-item > a:hover,
.wc-nav .wc-link:hover { background: var(--wc-bg-app); color: var(--wc-text-primary); }
.wc-nav .wc-item.active > a,
.wc-nav .wc-link.active {
  background: var(--wc-primary-soft);
  color: var(--wc-primary);
  font-weight: 700;
}
.wc-nav .wc-item > a > .fa,
.wc-nav .wc-link > .fa,
.wc-nav .wc-item > a > i,
.wc-nav .wc-link > i {
  width: 18px; text-align: center; font-size: 15px; flex: 0 0 18px;
  color: var(--wc-neutral);
}
.wc-nav .wc-item.active > a > .fa,
.wc-nav .wc-item.active > a > i { color: var(--wc-primary); }
/* o texto do item ocupa o espaço e trunca se muito longo (ex.: "Assinatura
   Eletrônica") — assim a seta NUNCA é empurrada para fora da coluna. */
.wc-nav .wc-item > a > span,
.wc-nav .wc-link > span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.wc-nav .wc-caret {
  flex: 0 0 auto;      /* posição fixa à direita — alinha todas as setas na mesma coluna */
  margin-left: 0;      /* o gap:11px do flex já separa; evita comer espaço do texto */
  border: 0;
  transition: transform .15s ease;
  font-size: 11px;
  color: var(--wc-neutral);
}
.wc-nav .wc-item.open > a .wc-caret { transform: rotate(90deg); }

/* submenu (controllers/actions) */
.wc-nav .wc-sub {
  max-height: 0;
  overflow: hidden;
  transition: max-height .2s ease;
}
.wc-nav .wc-item.open > .wc-sub { max-height: 1500px; }
.wc-nav .wc-sub-group > .wc-sub-label {
  display: block;
  padding: 7px 12px 4px 41px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--wc-neutral);
}
.wc-nav .wc-sub a {
  display: block;
  padding: 7px 12px 7px 41px;
  border-radius: var(--wc-radius-sm);
  color: var(--wc-text-secondary);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wc-nav .wc-sub a:hover { background: var(--wc-bg-app); color: var(--wc-primary); }

/* rodapé da sidebar (card ajuda) */
.wc-sidebar-foot { flex: 0 0 auto; padding: 12px; border-top: 1px solid var(--wc-border); }
.wc-help-card {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 12px; border-radius: var(--wc-radius-sm);
  background: var(--wc-bg-app); color: var(--wc-text-secondary);
  font-size: 12px; text-decoration: none;
}
.wc-help-card .fa { color: var(--wc-primary); font-size: 16px; margin-top: 2px; }
.wc-help-card strong { display: block; color: var(--wc-text-primary); font-size: 13px; margin-bottom: 2px; }

/* colapsada (desktop) */
body.wc-collapsed .wc-sidebar { width: var(--wc-sidebar-w-collapsed); }
body.wc-collapsed .wc-brand span,
body.wc-collapsed .wc-nav-section,
body.wc-collapsed .wc-nav .wc-item > a span,
body.wc-collapsed .wc-nav .wc-link span,
body.wc-collapsed .wc-nav .wc-caret,
body.wc-collapsed .wc-nav .wc-sub,
body.wc-collapsed .wc-sidebar-foot { display: none; }
body.wc-collapsed .wc-main { margin-left: var(--wc-sidebar-w-collapsed); }

/* ==========================================================================
   APP SHELL — MAIN / TOPBAR
   ========================================================================== */
.wc-main {
  margin-left: var(--wc-sidebar-w);
  min-height: 100vh;
  transition: margin-left .18s ease;
}
.wc-topbar {
  position: sticky; top: 0;
  height: var(--wc-topbar-h);
  background: var(--wc-bg-surface);
  border-bottom: 1px solid var(--wc-border);
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 24px;
  z-index: 1030;
}
.wc-sidebar-toggle {
  border: 0; background: transparent;
  color: var(--wc-text-secondary);
  font-size: 18px; cursor: pointer;
  width: 38px; height: 38px; border-radius: var(--wc-radius-sm);
  flex: 0 0 auto;
}
.wc-sidebar-toggle:hover { background: var(--wc-bg-app); }

.wc-search { position: relative; flex: 1 1 auto; max-width: 420px; }
.wc-search .fa { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--wc-neutral); }
.wc-search input {
  width: 100%; height: 40px;
  padding: 0 14px 0 38px;
  border: 1px solid var(--wc-border);
  border-radius: var(--wc-radius-pill);
  background: var(--wc-bg-app);
  color: var(--wc-text-primary);
  font-size: 14px;
  outline: none;
}
.wc-search input:focus { border-color: var(--wc-primary-strong); background: #fff; box-shadow: 0 0 0 3px rgba(37,99,235,.12); }

.wc-topbar-right { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.wc-icon-btn {
  position: relative;
  width: 40px; height: 40px; border-radius: var(--wc-radius-sm);
  border: 0; background: transparent; color: var(--wc-text-secondary);
  font-size: 17px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  text-decoration: none;
}
.wc-icon-btn:hover { background: var(--wc-bg-app); color: var(--wc-text-primary); }
.wc-icon-btn .wc-badge-count {
  position: absolute; top: 4px; right: 4px;
  min-width: 16px; height: 16px; padding: 0 4px;
  background: var(--wc-danger); color: #fff;
  border-radius: var(--wc-radius-pill);
  font-size: 10px; font-weight: 700; line-height: 16px; text-align: center;
}

/* UserChip */
.wc-userchip {
  display: flex; align-items: center; gap: 10px;
  padding: 5px 10px 5px 6px; border-radius: var(--wc-radius-pill);
  cursor: pointer; text-decoration: none; color: var(--wc-text-primary);
}
.wc-userchip:hover, .wc-userchip:focus { background: var(--wc-bg-app); color: var(--wc-text-primary); }
.wc-userchip .wc-avatar {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--wc-primary-soft); color: var(--wc-primary);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px; flex: 0 0 34px;
}
.wc-userchip .wc-user-meta { line-height: 1.2; text-align: left; }
.wc-userchip .wc-user-name { font-size: 13px; font-weight: 700; }
.wc-userchip .wc-user-role { font-size: 11px; color: var(--wc-neutral); }
.wc-user-dd { min-width: 200px; }

/* área de conteúdo (mantém #cl-wrapper/#pcont/.cl-mcont p/ plugins) */
.wc-main #cl-wrapper { padding: 0; }
/* flex column (sticky footer): page-head, conteúdo e rodapé empilham como flex
   items — o rodapé fica SEMPRE abaixo do conteúdo, sem sobrepor */
.wc-main #pcont { padding: 24px 32px 8px; max-width: 1600px; display: flex; flex-direction: column; min-height: calc(100vh - 64px); }
/* flex-item que cresce para empurrar o rodapé ao fim; flow-root contém floats/grids */
.wc-main .cl-mcont { padding: 0; flex: 1 0 auto; display: flow-root; }

/* ==========================================================================
   CABEÇALHO DE PÁGINA  (.page-head)
   ========================================================================== */
/* NB: o .page-head do próprio layout fica oculto via inline style="display:none";
   estilizamos apenas o que a view renderiza (dentro de .cl-mcont). Sem !important
   para não revelar a barra oculta do layout. */
.wc-main .page-head {
  border: 0; background: transparent;
  padding: 4px 0 18px;
  margin: 0 0 4px;
}
.wc-main .page-head h2 {
  font-size: var(--wc-fs-title);
  font-weight: 700;
  color: var(--wc-text-primary);
  margin: 2px 0 0;
  line-height: 1.2;
}
.wc-main .page-head .breadcrumb {
  background: transparent; padding: 0; margin: 0 0 4px; font-size: 13px;
}
.wc-main .page-head .breadcrumb > li { color: var(--wc-neutral); }
.wc-main .page-head .breadcrumb > li + li:before { content: "\203A"; color: var(--wc-border-strong); padding: 0 8px; }
.wc-main .page-head .breadcrumb > li > a { color: var(--wc-neutral); }
.wc-main .page-head .breadcrumb > .active { color: var(--wc-text-secondary); }
/* cabeçalho com ação primária à direita (arquétipo Listagem) */
.wc-main .page-head.wc-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.wc-main .page-head.wc-head .wc-head-actions { margin-left: auto; display: flex; gap: 8px; }
.wc-main .page-head.wc-head .breadcrumb { margin: 0 0 2px; }
/* ações do cabeçalho quando vêm de um <ul class="nav-pills"> realocado */
.wc-main .wc-head-actions .wc-head-pills { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.wc-main .wc-head-actions .wc-head-pills > li { float: none; margin: 0; }
.wc-main .wc-head-actions .wc-head-pills > li > a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; border-radius: var(--wc-radius-sm);
  font-weight: 600; font-size: 14px; text-decoration: none; white-space: nowrap;
  background: var(--wc-bg-surface); border: 1px solid var(--wc-border-strong); color: var(--wc-text-secondary);
}
.wc-main .wc-head-actions .wc-head-pills > li > a:hover { background: var(--wc-bg-app); color: var(--wc-text-primary); }
.wc-main .wc-head-actions .wc-head-pills > li:first-child > a { background: var(--wc-primary); border-color: var(--wc-primary); color: #fff; }
.wc-main .wc-head-actions .wc-head-pills > li:first-child > a:hover { background: var(--wc-primary-hover); color: #fff; }

/* ==========================================================================
   CARDS / PANELS / block-flat  → SectionCard
   ========================================================================== */
.wc-main .block-flat,
.wc-main .panel {
  background: var(--wc-bg-surface);
  border: 1px solid var(--wc-border);
  border-radius: var(--wc-radius);
  box-shadow: var(--wc-shadow-sm);
  padding: 20px;
  margin-bottom: 24px;
}
.wc-main .panel { padding: 0; overflow: hidden; }
.wc-main .panel > .panel-heading {
  background: var(--wc-bg-surface);
  border-bottom: 1px solid var(--wc-border);
  color: var(--wc-text-primary);
  font-size: var(--wc-fs-section);
  font-weight: 700;
  padding: 14px 18px;
}
.wc-main .panel > .panel-body { padding: 18px; }
/* Cabeçalhos de filtro (plugins): remove clutter decorativo legado —
   o ícone circular vermelho (parece erro) e a setinha "seta-baixo". */
.wc-main .panel-heading .fa-chevron-circle-down,
.wc-main .panel-title .fa-chevron-circle-down,
.wc-main img[src*="seta-baixo"] { display: none !important; }
/* o chevron de recolher do painel de filtro fica discreto e alinhado */
.wc-main .panel-title > a .fa-angle-right { color: var(--wc-neutral); }
.wc-main .block-flat > .header,
.wc-main .block-flat h3:first-child {
  font-size: var(--wc-fs-section);
  font-weight: 700;
  color: var(--wc-text-primary);
  margin-top: 0;
}

/* ==========================================================================
   BOTÕES
   ========================================================================== */
.wc-main .btn,
.wc-userchip ~ .dropdown-menu .btn {
  border-radius: var(--wc-radius-sm);
  font-weight: 600;
  font-size: 14px;
  padding: 8px 16px;
  border: 1px solid transparent;
  transition: background .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.wc-main .btn-sm, .wc-main .btn-xs { padding: 5px 12px; font-size: 13px; }
.wc-main .btn-primary { background: var(--wc-primary); border-color: var(--wc-primary); color: #fff; }
.wc-main .btn-primary:hover, .wc-main .btn-primary:focus, .wc-main .btn-primary:active { background: var(--wc-primary-hover); border-color: var(--wc-primary-hover); color: #fff; }
.wc-main .btn-default {
  background: var(--wc-bg-surface); border-color: var(--wc-border-strong); color: var(--wc-text-secondary);
}
.wc-main .btn-default:hover, .wc-main .btn-default:focus { background: var(--wc-bg-app); border-color: var(--wc-neutral); color: var(--wc-text-primary); }
/* btn-secondary é classe do Bootstrap 4/5 (não existe no BS3) usada em views de
   plugin -> estilizar como botão secundário/outline p/ não ficar sem cor. */
.wc-main .btn-secondary { background: var(--wc-bg-surface); border-color: var(--wc-border-strong); color: var(--wc-text-secondary); }
.wc-main .btn-secondary:hover, .wc-main .btn-secondary:focus { background: var(--wc-bg-app); border-color: var(--wc-neutral); color: var(--wc-text-primary); }
/* No design weCorp, ação = primário azul; verde fica só para status/badges.
   btn-success (Pesquisar, Boleto, etc.) passa a primário para consistência. */
.wc-main .btn-success { background: var(--wc-primary); border-color: var(--wc-primary); color: #fff; }
.wc-main .btn-success:hover, .wc-main .btn-success:focus { background: var(--wc-primary-hover); border-color: var(--wc-primary-hover); color: #fff; }
/* Split-button legado "NOVA ..." (btn-xl: main branco + caret desalinhado) -> primário alinhado */
.wc-main .btn-group .btn-xl {
  background: var(--wc-primary) !important; border-color: var(--wc-primary) !important; color: #fff !important;
  padding: 8px 14px !important; margin-top: 0 !important; font-size: 14px; font-weight: 600;
}
.wc-main .btn-group .btn-xl:hover, .wc-main .btn-group .btn-xl:focus { background: var(--wc-primary-hover) !important; }
.wc-main .btn-warning { background: var(--wc-warning); border-color: var(--wc-warning); color: #fff; }
.wc-main .btn-danger  { background: var(--wc-danger);  border-color: var(--wc-danger); color: #fff; }
.wc-main .btn-danger:hover, .wc-main .btn-danger:focus { filter: brightness(.94); color: #fff; }
.wc-main .btn-info    { background: var(--wc-primary-strong); border-color: var(--wc-primary-strong); }
.wc-main .btn-link { color: var(--wc-primary-strong); font-weight: 600; }

/* ==========================================================================
   TABELAS  → Data Table
   ========================================================================== */
.wc-main .table {
  background: var(--wc-bg-surface);
  border-collapse: separate;
  border-spacing: 0;
  margin-bottom: 12px;
  font-size: 14px;
}
.wc-main .table > thead > tr > th {
  background: var(--wc-bg-app);
  border-bottom: 1px solid var(--wc-border);
  border-top: 0;
  color: var(--wc-text-secondary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  padding: 12px 14px;
  vertical-align: middle;
}
.wc-main .table > thead > tr > th a { color: var(--wc-text-secondary); text-decoration: none; }
.wc-main .table > thead > tr > th a.asc:after  { content: " \25B2"; font-size: 9px; color: var(--wc-primary); }
.wc-main .table > thead > tr > th a.desc:after { content: " \25BC"; font-size: 9px; color: var(--wc-primary); }
.wc-main .table > tbody > tr > td {
  border-top: 1px solid var(--wc-border);
  padding: 12px 14px;
  vertical-align: middle;
  color: var(--wc-text-primary);
}
.wc-main .table.table-striped > tbody > tr:nth-of-type(odd) { background: #fbfcfe; }
.wc-main .table.table-hover > tbody > tr:hover,
.wc-main .table > tbody > tr:hover { background: var(--wc-primary-soft); }
.wc-main .table td.actions, .wc-main .table th.actions { text-align: right; }
/* Ícones-link (padrão scaffold: <a><span glyphicon></span></a>) — NÃO afeta .btn */
.wc-main .table td.actions a:not(.btn),
.wc-main .table td.actions > button:not(.btn) {
  color: var(--wc-neutral); margin-left: 6px; font-size: 15px; text-decoration: none;
}
.wc-main .table td.actions a:not(.btn):hover { color: var(--wc-primary); }
.wc-main .table td.actions .glyphicon-remove:hover,
.wc-main .table td.actions .glyphicon-trash:hover { color: var(--wc-danger); }
/* Botões-texto (padrão plugins: vários .btn com <br> entre eles) — fluxo em grade */
.wc-main .table td.actions { white-space: normal; }
.wc-main .table td.actions .btn { margin: 3px 2px; white-space: nowrap; vertical-align: middle; }
.wc-main .table td.actions br { display: none; }
.wc-main .table td.actions .pull-right { float: none !important; }
/* Ícones-ação legados que usam .btn-lg/.btn-sm soltos (plugins) — normaliza tamanho */
.wc-main .table td.actions .glyphicon.btn-lg,
.wc-main .table td.actions .glyphicon.btn-sm,
.wc-main .table td.actions a:not(.btn) .glyphicon { font-size: 15px !important; line-height: 1; padding: 2px; }

/* ==========================================================================
   SELECT2 (v3) — alinhar ao form-control do tema (padrão em filtros de plugin)
   ========================================================================== */
.wc-main .select2-container .select2-choice,
.wc-main .select2-container .select2-choices {
  min-height: 40px; line-height: 26px;
  border: 1px solid var(--wc-border-strong);
  border-radius: var(--wc-radius-sm);
  background: var(--wc-bg-surface); background-image: none;
  color: var(--wc-text-primary); box-shadow: none;
}
.wc-main .select2-container .select2-choice > .select2-chosen { padding-top: 3px; }
.wc-main .select2-container .select2-choice .select2-arrow { border-left: 0; background: transparent; background-image: none; }
.wc-main .select2-container.select2-container-active .select2-choice {
  border-color: var(--wc-primary-strong); box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.wc-main .select2-drop { border-color: var(--wc-border-strong); }
.wc-main .select2-results .select2-highlighted { background: var(--wc-primary); }

/* Moderniza <font color> legado (status em Financeiro etc.) */
.wc-main font[color="red"]   { color: var(--wc-danger) !important; }
.wc-main font[color="green"] { color: var(--wc-success) !important; }
.wc-main font[color="blue"]  { color: var(--wc-primary-strong) !important; }

/* ==========================================================================
   PAGINAÇÃO
   ========================================================================== */
.wc-main .pagination { margin: 6px 0; }
.wc-main .pagination > li > a,
.wc-main .pagination > li > span {
  color: var(--wc-text-secondary);
  border-color: var(--wc-border);
  margin: 0 3px;
  border-radius: var(--wc-radius-sm) !important;
  min-width: 34px; text-align: center;
}
.wc-main .pagination > li > a:hover { background: var(--wc-bg-app); border-color: var(--wc-border-strong); color: var(--wc-primary); }
.wc-main .pagination > .active > a,
.wc-main .pagination > .active > span,
.wc-main .pagination > .active > a:hover {
  background: var(--wc-primary); border-color: var(--wc-primary); color: #fff;
}
.wc-main .pagination > .disabled > a { color: var(--wc-border-strong); }

/* ==========================================================================
   FORMULÁRIOS  → Field / Select
   ========================================================================== */
.wc-main .form-control {
  height: 40px;
  border: 1px solid var(--wc-border-strong);
  border-radius: var(--wc-radius-sm);
  box-shadow: none;
  color: var(--wc-text-primary);
  font-size: 14px;
  padding: 8px 12px;
  background: var(--wc-bg-surface);
  transition: border-color .12s ease, box-shadow .12s ease;
}
.wc-main textarea.form-control { height: auto; }
.wc-main .form-control:focus {
  border-color: var(--wc-primary-strong);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.wc-main .form-control::-webkit-input-placeholder { color: #94a3b8; }
.wc-main label, .wc-main .control-label {
  font-size: var(--wc-fs-label);
  font-weight: 600;
  color: var(--wc-text-secondary);
  margin-bottom: 5px;
}
.wc-main .form-group { margin-bottom: 16px; }
.wc-main .has-error .form-control { border-color: var(--wc-danger); }
.wc-main .has-error .help-block, .wc-main .has-error .control-label { color: var(--wc-danger); }
.wc-main .required label:after,
.wc-main label.required:after { content: " *"; color: var(--wc-danger); }

/* ==========================================================================
   ALERTAS  (flash / Session->flash)
   ========================================================================== */
.wc-main .alert {
  border: 1px solid transparent;
  border-radius: var(--wc-radius-sm);
  padding: 14px 16px;
  font-size: 14px;
  margin-bottom: 20px;
}
.wc-main .alert-success { background: var(--wc-success-soft); border-color: #b9e6cb; color: var(--wc-success-text); }
.wc-main .alert-info    { background: var(--wc-primary-soft); border-color: #cdddf9; color: var(--wc-primary); }
.wc-main .alert-warning { background: var(--wc-warning-soft); border-color: #fbe1a0; color: var(--wc-warning-text); }
.wc-main .alert-danger, .wc-main .alert-error { background: var(--wc-danger-soft); border-color: #f6c9c9; color: var(--wc-danger-text); }

/* ==========================================================================
   BADGES / LABELS / STATUS  → StatusBadge
   ========================================================================== */
.wc-main .label, .wc-main .badge, .wc-main .wc-status {
  display: inline-block;
  border-radius: var(--wc-radius-pill);
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}
.wc-main .label-success, .wc-main .wc-status.is-success { background: var(--wc-success-soft); color: var(--wc-success-text); }
.wc-main .label-warning, .wc-main .wc-status.is-warning { background: var(--wc-warning-soft); color: var(--wc-warning-text); }
.wc-main .label-danger,  .wc-main .label-important, .wc-main .wc-status.is-danger  { background: var(--wc-danger-soft);  color: var(--wc-danger-text); }
.wc-main .label-info,    .wc-main .wc-status.is-info    { background: var(--wc-primary-soft); color: var(--wc-primary); }
.wc-main .label-default, .wc-main .badge, .wc-main .wc-status.is-neutral { background: var(--wc-neutral-soft); color: var(--wc-text-secondary); }
.wc-main .wc-status:before {
  content: ""; display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; background: currentColor; margin-right: 6px; vertical-align: middle;
}

/* ==========================================================================
   PAINEL DE AÇÕES lateral (.actions .nav-pills) — compactar
   ========================================================================== */
.wc-main .actions .panel { box-shadow: none; }
.wc-main .nav-pills > li > a { border-radius: var(--wc-radius-sm); color: var(--wc-text-secondary); font-weight: 600; }
.wc-main .nav-pills > li > a:hover { background: var(--wc-bg-app); color: var(--wc-primary); }
.wc-main .nav-pills > li.active > a,
.wc-main .nav-pills > li.active > a:hover { background: var(--wc-primary-soft); color: var(--wc-primary); }

/* ==========================================================================
   ABAS  (.nav-tabs) → Tabs
   ========================================================================== */
.wc-main .nav-tabs { border-bottom: 1px solid var(--wc-border); }
.wc-main .nav-tabs > li > a { border: 0; color: var(--wc-neutral); font-weight: 600; border-radius: 0; margin-right: 4px; }
.wc-main .nav-tabs > li > a:hover { background: transparent; color: var(--wc-text-primary); border-bottom: 2px solid var(--wc-border-strong); }
.wc-main .nav-tabs > li.active > a,
.wc-main .nav-tabs > li.active > a:hover,
.wc-main .nav-tabs > li.active > a:focus {
  border: 0; border-bottom: 2px solid var(--wc-primary); color: var(--wc-primary); background: transparent;
}

/* ==========================================================================
   MODAIS
   ========================================================================== */
.modal-content {
  border: 0;
  border-radius: var(--wc-radius);
  box-shadow: var(--wc-shadow-lg);
}
.modal-header { border-bottom: 1px solid var(--wc-border); padding: 16px 20px; }
.modal-header .modal-title { font-size: var(--wc-fs-section); font-weight: 700; color: var(--wc-text-primary); }
.modal-body { padding: 20px; color: var(--wc-text-primary); font-size: 14px; }
.modal-footer { border-top: 1px solid var(--wc-border); padding: 14px 20px; }
.modal-backdrop.in { opacity: .4; }

/* ==========================================================================
   RODAPÉ enxuto
   ========================================================================== */
.wc-main #footer.dash {
  position: static !important;   /* legado põe #footer como position:absolute -> sobrepunha */
  width: auto !important;
  background: transparent !important;
  border: 0;
  margin-top: 16px;
  padding: 16px 0 28px;
  color: var(--wc-neutral);
  font-size: 12px;
  clear: both;
  overflow: hidden;
  flex: 0 0 auto;
}
.wc-main #footer.dash hr { border-color: var(--wc-border); }
.wc-main #footer.dash img { max-height: 30px; width: auto; }

/* ==========================================================================
   DASHBOARD — KPI blocks (mantém cor por produto, ganha forma de card)
   ========================================================================== */
.wc-main .dash-cols .block {
  background: var(--wc-bg-surface);
  border: 1px solid var(--wc-border);
  border-radius: var(--wc-radius);
  overflow: hidden;
  box-shadow: var(--wc-shadow-sm);
  margin-bottom: 20px;
}
.wc-main .dash-cols .block > a { display: block; text-decoration: none; }
.wc-main .dash-cols .block .fact-data h3 {
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .02em; color: var(--wc-neutral); margin: 4px 0;
}
.wc-main .dash-cols .block .fact-data h2 { font-size: 26px; font-weight: 700; color: var(--wc-text-primary); margin: 0 0 8px; }

/* contém tudo dentro dos cards do dashboard (floats/grids) — evita rodapé sobrepor */
.wc-main .dash-cols .block,
.wc-main .dash-cols .block .content { display: flow-root; }
.wc-main .dash-cols { clear: both; }
/* grid de gráficos do dashboard (Highcharts puro em cards brancos) */
.wc-main #charts.wc-charts-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
  clear: both; min-height: 320px;
}
.wc-main .wc-chart-card {
  background: var(--wc-bg-surface);
  border: 1px solid var(--wc-border);
  border-radius: var(--wc-radius);
  box-shadow: var(--wc-shadow-sm);
  padding: 8px;
}
.wc-main .wc-chart-canvas { width: 100%; min-height: 300px; }
.wc-main .wc-charts-empty { grid-column: 1 / -1; padding: 40px; text-align: center; color: var(--wc-neutral); }
.wc-main .wc-chart-title { font-size: 15px; font-weight: 700; color: var(--wc-text-primary); padding: 4px 4px 0; }
.wc-main .wc-chart-nodata {
  display: flex; align-items: center; justify-content: center;
  min-height: 260px; color: var(--wc-neutral); font-size: 13px; font-weight: 600;
}
@media (max-width: 900px) { .wc-main #charts.wc-charts-grid { grid-template-columns: 1fr; } }

/* KPI cards do dashboard (novo layout — StatusBadge/KPICard do design) */
.wc-main .wc-kpi-row { margin-bottom: 4px; }
.wc-main .wc-kpi {
  display: block; height: 100%;
  background: var(--wc-bg-surface);
  border: 1px solid var(--wc-border);
  border-radius: var(--wc-radius);
  box-shadow: var(--wc-shadow-sm);
  padding: 18px; margin-bottom: 20px;
  text-decoration: none;
  transition: box-shadow .15s ease, transform .15s ease;
}
.wc-main .wc-kpi:hover, .wc-main .wc-kpi:focus { box-shadow: var(--wc-shadow-md); transform: translateY(-2px); text-decoration: none; }
.wc-main .wc-kpi-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; min-height: 40px; }
.wc-main .wc-kpi-icon {
  width: 36px; height: 36px; flex: 0 0 36px;
  border-radius: var(--wc-radius-sm);
  background: var(--wc-primary-soft); color: var(--wc-primary);
  display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.wc-main .wc-kpi-title { font-size: 14px; font-weight: 700; color: var(--wc-text-primary); line-height: 1.25; }
.wc-main .wc-kpi-stats { display: flex; gap: 12px; }
.wc-main .wc-kpi-stat { flex: 1 1 0; min-width: 0; }
.wc-main .wc-kpi-num { display: block; font-size: 26px; font-weight: 700; color: var(--wc-text-primary); line-height: 1; }
.wc-main .wc-kpi-lbl { display: block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; color: var(--wc-neutral); margin-top: 6px; }

/* ==========================================================================
   ACESSIBILIDADE — foco visível (WCAG 2.1 AA)
   ========================================================================== */
.wc-body a:focus-visible,
.wc-main .btn:focus-visible,
.wc-sidebar .wc-link:focus-visible,
.wc-topbar .wc-icon-btn:focus-visible,
.wc-userchip:focus-visible,
.wc-sidebar-toggle:focus-visible {
  outline: 2px solid var(--wc-primary-strong);
  outline-offset: 2px;
  border-radius: var(--wc-radius-sm);
}

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width: 991px) {
  .wc-sidebar { transform: translateX(-100%); box-shadow: var(--wc-shadow-lg); }
  body.wc-sidebar-open .wc-sidebar { transform: translateX(0); }
  .wc-main { margin-left: 0 !important; }
  .wc-search { max-width: none; }
  .wc-userchip .wc-user-meta { display: none; }
  .wc-sidebar-backdrop {
    display: none; position: fixed; inset: 0; background: rgba(15,27,51,.4); z-index: 1035;
  }
  body.wc-sidebar-open .wc-sidebar-backdrop { display: block; }
}
@media (max-width: 575px) {
  .wc-main #pcont { padding: 16px; }
  .wc-topbar { padding: 0 12px; gap: 8px; }
}


.wc-main .page-head.sf-page-hread {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 64px;
  margin: 0 0 20px;
  padding: 14px 20px;
  background: #fff;
  border: 1px solid #dce5f0;
  border-left: 4px solid #2852a8;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(21, 48, 91, .06);
}

.wc-main .page-head.sf-page-hread h4 {
  margin: 0;
  color: #1e3f86;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.2px;
}

.wc-main .page-head.sf-page-hread .pull-right {
  float: none !important;
}
