/* Painel Geral - dashboard executivo (paleta neutra quente v299) */
.painel-app {
  --painel-bg: #fafbfb;
  --painel-surface: #ffffff;
  --painel-text: #1d2a22;
  --painel-muted: #66756b;
  --painel-border: #d8e2dc;
  --painel-neutral-soft: #fcfdfc;
  --painel-neutral-line: #e4ebe6;
  --painel-ui-subtle: #8a9690;
  --painel-accent: #2d6a4f;
  --painel-accent-dark: #1f4d38;
  --painel-accent-soft: #fbfcfc;
  --painel-accent-line: #c5ddd0;
  --painel-critical: #9f4a44;
  --painel-critical-deep: #7a3834;
  --painel-critical-soft: #faf4f3;
  --painel-critical-line: #e5c4c0;
  --painel-warn: #8a5e12;
  --painel-warn-soft: #faf6ed;
  --painel-warn-line: #ead9b8;
  --painel-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.04);
  /* Tipografia: corpo/titulos no ritmo SST; display grande para KPIs (nao espremer numeros) */
  --painel-fs-display-lg: 28px;
  --painel-fs-display: 28px;
  --painel-fs-display-sm: 22px;
  --painel-fs-title: 15px;
  --painel-fs-subtitle: 14px;
  --painel-fs-body: 13px;
  --painel-fs-meta: 12px;
  --painel-fs-micro: 12px;
  --painel-title-bar: var(
    --green-gradient,
    linear-gradient(135deg, #0d3320 0%, #14502c 42%, #1a5f34 72%, #1d6b3b 100%)
  );
  min-height: 100vh;
  background: var(--painel-bg);
  color: var(--painel-text);
  font-family: "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
  font-size: var(--painel-fs-body);
  letter-spacing: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Tipografia respiravel: sem CAPS forcadas e sem tracking que achata o glifo. */
.painel-app *:not(svg):not(path):not(circle):not(line):not(polyline):not(rect) {
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Numeros de KPI: tracking quase neutro (antes -0.03 achatava o digito). */
.painel-app :is(
  .painel-kpi strong,
  .ti-stat-chip strong,
  .admin-stat-chip strong,
  .painel-consolidated-read .painel-kpi strong
) {
  letter-spacing: -0.005em !important;
  line-height: 1.15 !important;
}

.painel-app :is(.di-score-value, .di-metric-value, .di-kpi-value) {
  letter-spacing: -0.005em !important;
  line-height: 1.15 !important;
}

/* Links e textos secundários - sem azul de navegador nem slate */
.painel-app a:not(.btn) {
  color: var(--painel-text);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.painel-app a:not(.btn):hover {
  color: var(--painel-accent-dark);
}

.painel-app .painel-muted,
.painel-app .painel-subtitle,
.painel-app .painel-hero-meta,
.painel-app .painel-updated-at {
  color: var(--painel-muted);
}

#painelMobileGate[hidden],
#painelLogin[hidden],
#painelShell[hidden],
#painelLoading[hidden],
.painel-toast[hidden],
.painel-spotlight[hidden] {
  display: none !important;
}

body.painel-app:not(.painel-authed) {
  min-height: 100vh;
  overflow-x: hidden;
}

body.painel-app:not(.painel-authed) #painelShell { display: none !important; }
body.painel-app.painel-authed #painelLogin { display: none !important; }
body.painel-app.painel-mobile-blocked #painelLogin,
body.painel-app.painel-mobile-blocked #painelShell { display: none !important; }
body.painel-app.painel-mobile-blocked #painelMobileGate { display: grid !important; }

/* -- Login / mobile gate -- */
.painel-mobile-gate {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: var(--space-xl);
  background: linear-gradient(160deg, #1f4d38 0%, #2d6a4f 55%, #3a7d5c 100%);
  color: #fff;
}

.painel-mobile-card { max-width: 420px; text-align: center; }
.painel-mobile-gate h1,
.painel-mobile-gate .painel-muted {
  color: #fff;
}
.painel-mobile-gate .painel-muted { opacity: 0.92; }
.painel-mobile-logo { border-radius: 12px; margin-bottom: var(--space-md); }

.painel-login {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  box-sizing: border-box;
  background: var(--painel-bg);
}

.painel-login-card {
  width: min(400px, 100%);
  max-width: 400px;
  flex: 0 0 auto;
  align-self: center;
  margin: 0;
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: 0 14px 40px rgba(20, 80, 44, 0.08);
  background: var(--surface);
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 20px 20px 18px;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
}

/* Rodapé de navegação do login: mesmo padrão de admin.css/sst.css/ti.css -
   painel.html carrega só painel.css, então precisa da própria cópia. */
.painel-login-foot {
  margin: 12px 0 0;
  font-size: 0.85rem;
  color: var(--painel-muted);
}
.painel-login-foot a {
  color: var(--painel-accent-dark);
  font-weight: 600;
  text-decoration: none;
}
.painel-login-foot a:hover {
  text-decoration: underline;
}
.painel-login-foot span {
  margin: 0 6px;
  opacity: 0.45;
}

.painel-login-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--green-gradient);
  pointer-events: none;
}

.painel-login-logo {
  border-radius: 12px;
  margin: 0 auto 2px;
  width: 72px;
  height: 72px;
}
.painel-product-name {
  margin: 8px 0 0;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--green-dark, #14502c);
}
.painel-tagline {
  margin: 2px 0 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--painel-muted);
}
.painel-login-card h1 {
  margin: 4px 0 0;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: var(--green-dark, #14502c);
}
.painel-login-role {
  margin: 8px 0 0;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--painel-text);
}
.painel-login-btn { width: 100%; margin-top: 10px; }

.painel-login-card .btn,
.painel-login-card .btn-xl {
  width: 100%;
  min-height: 42px;
  padding: 10px 14px;
  font-size: 15px;
  border-radius: 12px;
}

.painel-login-card .btn.secondary,
.painel-login-card .btn.ghost {
  min-height: 38px;
  padding: 8px 12px;
  font-size: 14px;
}

.painel-login-fields {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  text-align: left;
}

/*
 * display:grid / display do .btn acima sobrescrevem o [hidden] nativo do browser.
 * Sem isto, a etapa MFA (T.I. / RH / Diretoria) fica sempre visível no login
 * e parece que o painel "volta" para o código de 6 dígitos.
 */
.painel-login-fields[hidden],
.painel-login-mfa-actions[hidden],
.painel-login-trust[hidden],
.painel-login-consent[hidden],
.painel-login-card .btn[hidden],
.painel-login-card label[hidden],
#tiMfaStep[hidden],
#adminMfaStep[hidden],
#painelMfaStep[hidden],
#tiMfaStep:not(.is-open),
#adminMfaStep:not(.is-open),
#painelMfaStep:not(.is-open) {
  display: none !important;
}

#tiMfaStep.is-open,
#adminMfaStep.is-open,
#painelMfaStep.is-open {
  display: grid !important;
}

.painel-login-fields .field { gap: 4px; margin: 0; }
.painel-login-fields .field label { font-size: 13px; margin: 0; }
.painel-login-fields .field input { min-height: 40px; padding: 8px 12px; }
.painel-login-fields .password-input-wrap input {
  width: 100%;
  box-sizing: border-box;
  padding-right: 48px;
}
.painel-login-fields .painel-muted {
  margin: 0 !important;
  font-size: 0.85rem !important;
  line-height: 1.35;
}

.painel-login-mfa-actions {
  display: grid;
  gap: 6px;
  margin: 0;
}

.painel-login-trust { margin: 2px 0 0 !important; padding: 0; }
.painel-login-back { margin: 2px 0 0 !important; }

.painel-login-consent {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbf9 100%);
  border: 1px solid #dcebe1;
  box-shadow: 0 4px 14px rgba(20, 80, 44, 0.04);
  text-align: left;
}

.painel-login-pledge {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  cursor: pointer;
  font-size: 13px;
  line-height: 1.45;
  color: var(--text);
}

.painel-login-pledge input {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 3px;
  accent-color: var(--green);
}

.painel-login-pledge a {
  color: var(--green-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.painel-privacy-version {
  flex-shrink: 0;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e8f4ec;
  border: 1px solid #c8e6d0;
  color: var(--green-dark);
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
  line-height: 1.2;
}

.painel-login-card .login-error {
  margin: 6px 0 0;
  min-height: 16px;
  text-align: center;
  font-size: 0.85rem;
  color: var(--danger, #b42318);
  font-weight: 600;
}

.painel-server-hint {
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--painel-warn-soft);
  border: 1px solid var(--painel-warn-line);
  color: var(--painel-warn);
  font-size: 0.85rem;
  line-height: 1.4;
  text-align: left;
}

.painel-server-hint a { color: var(--painel-accent-dark); }

.painel-subtitle { color: var(--painel-muted); font-weight: 600; margin: 0; }
.painel-org-brand { color: var(--painel-text); font-weight: 700; font-size: 1rem; margin: -2px 0 10px; }

/* -- Shell -- */
.painel-shell {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 40px 48px;
}

.painel-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  width: 100%;
  border-bottom: 1px solid var(--painel-border);
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}

.painel-topbar-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 20px 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
}

.painel-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.painel-brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  padding: 0;
  min-width: 0;
}

.painel-brand-logo {
  border-radius: 10px;
  flex-shrink: 0;
  display: block;
  object-fit: cover;
}

/* Contorno branco discreto - ícone ATLAS (somente painéis Diretoria / RH / T.I.) */
.painel-app .painel-brand-logo,
.painel-app .painel-login-logo,
.painel-app .painel-mobile-logo {
  box-sizing: border-box;
  border: 2px solid rgba(255, 255, 255, 0.94);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.35),
    0 2px 10px rgba(15, 23, 42, 0.07);
}

/* Logo alinhado ao bloco das duas linhas (título + badge) nos 3 painéis. */
.painel-app .painel-brand-logo {
  width: 40px;
  height: 40px;
  border-radius: 10px;
}

.painel-brand strong {
  display: block;
  font-size: 1.05rem;
  color: var(--painel-text);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

.painel-topbar .painel-badge {
  line-height: 1.2;
  padding: 2px 9px;
}
.painel-shell-org {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--painel-muted, #5a6b62);
  line-height: 1.2;
  margin-top: 2px;
}

.painel-badge {
  display: inline-block;
  width: fit-content;
  background: var(--painel-neutral-soft);
  color: var(--painel-muted);
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid var(--painel-neutral-line);
}

.painel-header-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-left: auto;
  position: relative;
  z-index: 30;
}

.painel-toolbar-field,
.painel-topbar .painel-toolbar-btn,
.painel-topbar .btn.secondary {
  pointer-events: auto;
  position: relative;
  z-index: 31;
}

.painel-toolbar-field {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  height: 38px;
  padding: 0 12px 0 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: 0 1px 2px rgba(20, 80, 44, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.painel-toolbar-field:focus-within {
  border-color: var(--painel-accent-line);
  box-shadow: 0 0 0 2px rgba(45, 106, 79, 0.12);
}

.painel-toolbar-label {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--painel-muted);
  line-height: 1;
  flex-shrink: 0;
}

.painel-toolbar-field .painel-select,
.painel-settings-body .painel-select {
  width: auto;
  max-width: none;
  min-width: 0;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0 18px 0 0;
  border: none;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2366756b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
  background-size: 12px;
  font: inherit;
  font-weight: 600;
  font-size: 13px;
  line-height: 1.2;
  color: var(--text);
  cursor: pointer;
  box-shadow: none;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}

.painel-toolbar-field .painel-select {
  min-width: 108px;
}

.painel-settings-body .painel-select {
  width: 100%;
  padding: 10px 36px 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background-color: var(--surface);
  background-position: right 12px center;
}

.painel-toolbar-field .painel-select:focus,
.painel-settings-body .painel-select:focus {
  outline: none;
}

.painel-toolbar-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.painel-topbar .painel-toolbar-btn {
  min-width: 38px;
  min-height: 38px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.painel-toolbar-menu {
  position: relative;
  display: inline-flex;
}

.painel-toolbar-menu-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 12000;
  min-width: 196px;
  padding: 6px;
  border-radius: 12px;
  border: 1px solid var(--painel-border, #d8e2dc);
  background: #fff;
  box-shadow: 0 12px 32px rgba(20, 80, 44, 0.14);
}

.painel-toolbar-menu-panel[hidden] {
  display: none !important;
}

.painel-toolbar-menu-item {
  display: block;
  width: 100%;
  padding: 10px 12px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--painel-text, #1d2a22);
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.painel-toolbar-menu-item:hover {
  background: #fcfdfc;
  color: #1d6b3b;
}

.painel-exports-foot {
  justify-content: space-between;
}

/* -- Hero -- */
.painel-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 20px 0 var(--space-lg);
  padding: 18px 22px 18px 28px;
  border-radius: 18px;
  background: linear-gradient(
    to left,
    #4f9b72 0%,
    #72b592 16%,
    #9dccb5 34%,
    #cce8d8 52%,
    #eef7f1 68%,
    #ffffff 88%
  );
  color: var(--painel-text);
  border: 1px solid #c5ddd0;
  box-shadow: var(--painel-shadow);
}

.painel-hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  border-radius: 18px 0 0 18px;
  background: linear-gradient(180deg, var(--painel-accent-dark) 0%, #3d8f62 100%);
  pointer-events: none;
}

.painel-hero::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 42%;
  border-radius: 0 18px 18px 0;
  background: linear-gradient(90deg, transparent 0%, rgba(45, 106, 79, 0.22) 100%);
  pointer-events: none;
}

.painel-hero-top {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  width: 100%;
  margin-bottom: 4px;
}

.painel-hero-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--painel-neutral-soft);
  border: 1px solid var(--painel-neutral-line);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--painel-muted) !important;
}

.painel-hero-badges {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-left: auto;
}

.painel-hero-meta,
.painel-updated-at {
  color: inherit;
}

.painel-hero h1 {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.005em;
  max-width: 920px;
  color: var(--painel-text) !important;
}

.painel-hero-meta {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--painel-muted) !important;
}

.painel-hero-sub {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 0;
  max-width: 720px;
}

.painel-health-pill {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--painel-neutral-soft);
  border: 1px solid var(--painel-neutral-line);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  color: var(--painel-text) !important;
}

.painel-health-pill.is-pending {
  background: rgba(100, 116, 139, 0.08);
  border-color: rgba(100, 116, 139, 0.22);
  color: var(--painel-muted) !important;
}

.painel-health-pill.is-pending .painel-health-dot {
  background: #94a3b8;
  box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.2);
}

.painel-health-pill.is-attention {
  background: var(--painel-warn-soft);
  border-color: var(--painel-warn-line);
  color: var(--painel-warn) !important;
}

.painel-health-pill.is-critical {
  background: var(--painel-critical-soft);
  border-color: var(--painel-critical-line);
  color: var(--painel-critical-deep) !important;
}

.painel-health-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--painel-ui-subtle);
  box-shadow: 0 0 0 3px rgba(138, 150, 144, 0.22);
  flex-shrink: 0;
}

.painel-health-pill.is-attention .painel-health-dot {
  background: #d4a017;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.2);
}

.painel-health-pill.is-critical .painel-health-dot {
  background: var(--painel-critical);
  box-shadow: 0 0 0 3px rgba(159, 74, 68, 0.18);
}

.painel-hero-insight {
  position: relative;
  z-index: 1;
  margin-top: 16px;
  padding: 16px 18px 17px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, rgba(237, 245, 240, 0.94) 100%);
  backdrop-filter: blur(8px);
  border: 1px solid var(--painel-accent-line);
  border-left: 4px solid var(--painel-accent);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.55;
  max-width: min(960px, 100%);
  color: var(--painel-text) !important;
  box-shadow: 0 6px 22px rgba(45, 106, 79, 0.1);
}

.painel-hero-insight.is-attention {
  border-left-color: var(--painel-warn);
  border-color: var(--painel-warn-line);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, var(--painel-warn-soft) 100%);
  box-shadow: 0 6px 22px rgba(138, 94, 18, 0.1);
}

.painel-hero-insight.is-critical {
  border-left-color: var(--painel-critical);
  border-color: var(--painel-critical-line);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, var(--painel-critical-soft) 100%);
  box-shadow: 0 6px 22px rgba(159, 74, 68, 0.1);
}

.painel-hero-insight.is-pending {
  border-left-color: var(--painel-ui-subtle);
  border-color: var(--painel-neutral-line);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.96) 0%, var(--painel-neutral-soft) 100%);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
}

.painel-hero-insight::before {
  content: "Insight do período";
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--painel-accent-dark) !important;
}

.painel-hero-insight.is-attention::before { color: var(--painel-warn) !important; }
.painel-hero-insight.is-critical::before { color: var(--painel-critical-deep) !important; }
.painel-hero-insight.is-pending::before { color: var(--painel-muted) !important; }

.painel-hero-insight-text {
  margin: 0;
  font-size: clamp(14px, 1.35vw, 16px);
  line-height: 1.55;
  font-weight: 550;
  color: var(--painel-text) !important;
}

@media (prefers-reduced-motion: no-preference) {
  .painel-hero-insight.is-insight-reveal {
    animation: painel-insight-reveal 0.55s ease-out;
  }
}

@keyframes painel-insight-reveal {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

.painel-hero-insight[hidden] { display: none !important; }

.painel-pulse-strip {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #fcfdfc;
  border: 1px solid #c8e6d0;
  font-size: 14px;
}

.painel-pulse-strip p {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.painel-pulse-strip[hidden] { display: none !important; }

.painel-pulse-alert {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fff8e6;
  border: 1px solid #e8d4a0;
}

.painel-pulse-alert p {
  margin: 0 0 6px;
}

.painel-pulse-alert p:last-child {
  margin-bottom: 0;
}

/* -- Tabs -- */
.painel-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 var(--space-lg);
}

.painel-main {
  display: block;
}

.painel-resumo-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.painel-resumo-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(272px, 300px);
  gap: 14px;
  align-items: start;
  --painel-kpi-section-head: calc(11px * 1.25 + 6px + 13px * 1.45 + 16px + 14px);
  --painel-live-height: min(480px, calc(100vh - 11rem));
}

.painel-resumo-main {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.painel-resumo-sidebar {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-self: start;
  min-width: 0;
  width: 100%;
}

.painel-resumo-layout > * {
  min-width: 0;
}

.painel-resumo-layout .painel-kpi-grid {
  grid-column: auto;
  grid-row: auto;
  margin: 0;
}

.painel-executive-kpis {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.painel-consolidated-read {
  padding: 18px 18px 16px;
  background: linear-gradient(180deg, #ffffff 0%, var(--painel-bg) 55%, #fcfdfc 100%);
  border: 1px solid var(--painel-border);
  box-shadow: var(--painel-shadow);
}

.painel-consolidated-head {
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--painel-border);
}

.painel-executive-label {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--painel-accent-dark);
}

.painel-executive-sublabel {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--painel-muted);
}

.painel-kpi-section {
  margin-bottom: 0;
}

.painel-kpi-section--leaders {
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--painel-border);
}

.painel-kpi-section--pulse {
  margin-top: 2px;
}

.painel-kpi-band {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: linear-gradient(180deg, #fafbfa 0%, #eef1ef 100%);
  border: 1px solid var(--painel-border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.painel-kpi-band--pulse {
  background: linear-gradient(180deg, #f7f8f7 0%, #ebedec 100%);
}

.painel-kpi-band-mark {
  flex: 0 0 4px;
  align-self: stretch;
  min-height: 36px;
  border-radius: 999px;
}

.painel-kpi-band-mark--leaders {
  background: linear-gradient(180deg, var(--painel-accent-dark) 0%, var(--painel-accent) 100%);
  box-shadow: 0 0 0 3px var(--painel-accent-soft);
}

.painel-kpi-band-mark--pulse {
  background: linear-gradient(180deg, var(--painel-accent) 0%, #4a8f6a 100%);
  box-shadow: 0 0 0 3px var(--painel-accent-soft);
}

.painel-kpi-band-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.painel-kpi-band-title {
  margin: 0 0 2px;
  font-size: var(--painel-fs-title);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: #111827;
}

.painel-kpi-band-desc {
  margin: 0;
  font-size: var(--painel-fs-meta);
  line-height: 1.35;
  color: var(--painel-muted);
}

.painel-kpi-band-actions {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  align-items: stretch;
  gap: 8px;
  min-width: 180px;
  max-width: 220px;
}

.painel-kpi-band-actions .painel-select-sm,
.painel-kpi-band-actions .painel-kpi-band-link {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}

.btn.secondary.painel-kpi-band-link,
.btn.painel-kpi-band-link {
  flex: 0 0 auto;
  white-space: nowrap;
  justify-content: center;
  text-align: center;
  background: var(--green-gradient, linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%));
  color: #fff;
  border: none;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.2);
  font-weight: 700;
}

.btn.secondary.painel-kpi-band-link:hover,
.btn.secondary.painel-kpi-band-link:focus-visible,
.btn.painel-kpi-band-link:hover,
.btn.painel-kpi-band-link:focus-visible {
  color: #fff;
  filter: brightness(1.06);
  box-shadow: 0 4px 14px rgba(20, 80, 44, 0.24);
}

/* Sem isto o botão desabilitado continua com o verde de botão ativo e o usuário clica num botão morto. */
.painel-app .btn:disabled {
  background: #eef2ef;
  color: var(--painel-muted, #66756b);
  border-color: var(--painel-border, #d8e2dc);
  box-shadow: none;
  cursor: not-allowed;
}

.painel-app .btn:disabled:hover,
.painel-app .btn:disabled:focus-visible {
  color: var(--painel-muted, #66756b);
  filter: none;
  box-shadow: none;
  transform: none;
}

.painel-select-sm {
  min-width: 148px;
  max-width: 200px;
  padding: 6px 10px;
  font-size: 12px;
}

.painel-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.painel-kpi-grid--leaders {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.painel-kpi-grid--pulse {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.painel-consolidated-read .painel-kpi {
  min-height: 152px;
  padding: 14px 14px 12px;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, var(--painel-neutral-soft) 100%);
  box-shadow: var(--painel-shadow);
}

.painel-consolidated-read .painel-kpi strong {
  font-size: var(--painel-fs-display-lg);
  font-weight: 800;
  letter-spacing: -0.005em;
}

.painel-kpi--pulse {
  border-top-width: 3px;
  border-top-color: var(--painel-accent);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-kpi--leaders {
  border-top-width: 3px;
  border-top-color: var(--painel-accent);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-kpi--leaders.is-warn,
.painel-kpi--leaders.is-good,
.painel-kpi--leaders.is-pending {
  border-top-color: var(--painel-accent);
}

.painel-kpi--leaders.painel-kpi--critical {
  border-top-color: var(--painel-critical);
}

.painel-kpi--leaders.painel-kpi--critical.is-warn {
  border-top-color: var(--painel-critical);
}

.painel-kpi--leaders.painel-kpi--critical.is-alert strong {
  color: var(--painel-critical-deep);
}

.painel-kpi-label-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.painel-kpi-attention-icon {
  display: inline;
  font-size: 12px;
  line-height: 1;
  color: var(--painel-critical-deep);
  letter-spacing: 0;
  text-transform: none;
  font-weight: 800;
}

.painel-kpi--pulse.is-divergence-alert {
  border-top-color: var(--painel-critical);
}

.painel-kpi--pulse.is-divergence-alert strong {
  color: var(--painel-critical-deep);
}

.painel-kpi-pulse-empty {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px dashed var(--painel-border);
  background: linear-gradient(180deg, var(--painel-neutral-soft) 0%, #fcfdfc 100%);
  font-size: 13px;
  line-height: 1.5;
  text-align: left;
  overflow: visible;
  white-space: normal;
}

.painel-consolidated-read .painel-compliance-box {
  margin-top: 14px;
}

.painel-resumo-layout .painel-side-card--live {
  align-self: stretch;
  margin-top: 0;
  position: relative;
  z-index: 1;
  height: var(--painel-live-height);
  max-height: var(--painel-live-height);
  min-height: 0;
  flex: 0 0 auto;
}

.painel-resumo-layout .painel-important-notes-card {
  align-self: stretch;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  flex: 0 0 auto;
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.06);
}

.painel-important-notes-head {
  margin: 0;
}

.painel-important-notes-head .painel-section-title {
  margin: 0 0 4px;
}

.painel-important-notes-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
}

.painel-important-notes-input {
  width: 100%;
  height: 132px;
  min-height: 132px;
  max-height: 132px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--painel-border);
  border-radius: 12px;
  background: #fff;
  font: inherit;
  font-size: 13px;
  line-height: 1.5;
  color: var(--painel-text);
  resize: none;
  overflow-y: auto;
  box-sizing: border-box;
}

.painel-important-notes-input:focus {
  outline: none;
  border-color: var(--painel-accent-line);
  box-shadow: 0 0 0 3px var(--painel-accent-soft);
}

.painel-important-notes-input::placeholder {
  color: var(--painel-muted);
  opacity: 0.85;
}

.painel-important-notes-meta {
  margin: 0;
  min-height: 1.35em;
  font-size: 12px;
  line-height: 1.35;
}

.painel-important-notes-meta[hidden] {
  display: block !important;
  visibility: hidden;
}

.painel-important-notes-meta.is-saving {
  color: var(--painel-accent-dark);
}

.painel-kpi-grid .painel-iap-gauge {
  width: 64px;
  height: 64px;
  margin: 4px auto 0;
}

.painel-kpi-grid .painel-iap-gauge strong {
  font-size: 16px;
  padding-bottom: 12px;
}

.painel-kpi-grid .painel-iap-gauge small {
  bottom: 14px;
  font-size: 8px;
  margin: 0;
  min-height: 0;
  padding-top: 0;
}

.painel-executive-reading {
  margin-top: 12px;
  padding: 0;
  border-radius: 10px;
  border: none;
  background: transparent;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.16);
  overflow: hidden;
}

.painel-executive-reading[hidden] {
  display: none !important;
}

.painel-executive-reading-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  font-size: var(--painel-fs-title);
  font-weight: 800;
  letter-spacing: -0.01em;
  text-transform: none;
  color: #fff;
  cursor: pointer;
  list-style: none;
  user-select: none;
  background: var(--painel-title-bar);
}

.painel-executive-reading-toggle::-webkit-details-marker {
  display: none;
}

.painel-executive-reading-toggle-label {
  flex: 1 1 auto;
  min-width: 0;
}

.painel-executive-reading-toggle-hint {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
}

.painel-executive-reading-open-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #fff;
  opacity: 0.92;
}

.painel-executive-reading[open] .painel-executive-reading-open-label {
  display: none;
}

.painel-executive-reading-sign::before {
  content: "+";
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  opacity: 0.92;
}

.painel-executive-reading[open] .painel-executive-reading-sign::before {
  content: "\2212";
}

.painel-executive-reading-toggle:hover,
.painel-executive-reading-toggle:focus-visible {
  color: #fff;
  outline: none;
  filter: brightness(1.06);
}

.painel-executive-reading-text {
  margin: 0;
  padding: 12px 14px 14px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--painel-text);
  background: linear-gradient(180deg, #fcfdfc 0%, #ffffff 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.painel-normative-alerts {
  padding: 0 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.painel-normative-alert {
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  background: #f3f6fb;
  border: 1px solid #c5d4ea;
  color: #1e3a5f;
}

.painel-executive-reading.is-empty .painel-executive-reading-text {
  color: var(--painel-muted);
  font-style: italic;
}

/* -- Metas institucionais (faixa abaixo dos KPIs) -- */
.painel-compliance-box {
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--painel-border);
  background: var(--painel-surface);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
}

.painel-compliance-box[hidden] {
  display: none;
}

.painel-compliance-box-kicker {
  flex: 1 1 100%;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

.painel-compliance-box-status {
  font-size: 13px;
  font-weight: 800;
  color: var(--painel-text);
}

.painel-compliance-box small {
  flex: 1 1 180px;
  min-width: 0;
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--painel-muted);
}

.painel-compliance-box.is-ok {
  border-color: rgba(34, 120, 72, 0.25);
  background: rgba(34, 120, 72, 0.06);
}

.painel-compliance-box.is-ok .painel-compliance-box-status {
  color: var(--painel-good);
}

.painel-compliance-box.is-pending {
  border-color: rgba(100, 116, 139, 0.25);
  background: rgba(100, 116, 139, 0.06);
}

.painel-compliance-box.is-pending .painel-compliance-box-status {
  color: var(--painel-muted);
}

.painel-compliance-box.is-warn {
  border-color: rgba(154, 107, 0, 0.25);
  background: rgba(154, 107, 0, 0.06);
}

.painel-compliance-box.is-warn .painel-compliance-box-status {
  color: #9a6b00;
}

.painel-compliance-box.is-fail {
  border-color: rgba(180, 35, 24, 0.25);
  background: rgba(180, 35, 24, 0.06);
}

.painel-compliance-box.is-fail .painel-compliance-box-status {
  color: #b42318;
}

.painel-executive-kpis .painel-next-steps {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(20, 80, 44, 0.1);
}

.painel-next-steps-title {
  margin: 0 0 0.45rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--painel-muted, #5c6b62);
}

.painel-next-steps-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.painel-next-steps-list li {
  display: grid;
  grid-template-columns: minmax(7rem, auto) 1fr auto;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
  padding: 0.35rem 0;
  font-size: 0.86rem;
  line-height: 1.35;
  color: var(--painel-text, #14321f);
}

.painel-next-steps-label {
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #14502c;
}

.painel-next-steps-list li.is-atencao .painel-next-steps-label,
.painel-next-steps-list li.is-pendente .painel-next-steps-label,
.painel-next-steps-list li.is-pending .painel-next-steps-label {
  color: #9a6b00;
}

.painel-next-steps-list li.is-muted .painel-next-steps-label {
  color: var(--painel-muted, #5c6b62);
}

.painel-next-steps-text {
  color: var(--painel-text, #1d2a22);
}

.painel-next-steps-link {
  border: none;
  background: transparent;
  color: #14502c;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
  white-space: nowrap;
}

.painel-next-steps-link:hover,
.painel-next-steps-link:focus-visible {
  color: #0d3320;
}

@media (max-width: 720px) {
  .painel-next-steps-list li {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}

.painel-resumo-lower-left {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.painel-resumo-layout .painel-kpi-meta {
  margin: 0;
}

.painel-resumo-lower-left .painel-resumo-collapse .painel-spotlight {
  margin: 0;
}

.painel-resumo-lower-left .painel-resumo-collapse {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  overflow: hidden;
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.12);
}

.painel-resumo-layout .painel-spotlight {
  margin: 0;
}

.painel-resumo-lower-left .painel-resumo-collapse summary {
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  background: #fff;
  color: var(--green-dark, #14502c);
  border: 1px solid rgba(29, 107, 59, 0.18);
  border-radius: var(--radius-lg, 14px);
  transition: background 0.15s ease, border-color 0.15s ease;
}

.painel-resumo-lower-left .painel-resumo-collapse summary:hover {
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
  border-color: rgba(29, 107, 59, 0.28);
}

.painel-resumo-lower-left .painel-resumo-collapse[open] summary {
  border-radius: var(--radius-lg, 14px) var(--radius-lg, 14px) 0 0;
  border-bottom-color: transparent;
}

.painel-resumo-lower-left .painel-resumo-collapse summary::after {
  content: "\25BE";
  font-size: 15px;
  line-height: 1.35;
  color: var(--green, #1d6b3b);
  font-weight: 700;
}

.painel-resumo-lower-left .painel-resumo-collapse[open] summary::after {
  content: "\25B4";
}

.painel-resumo-lower-left .painel-resumo-collapse .painel-details-body {
  padding: 16px;
  background: var(--painel-surface, #fff);
  border: 1px solid var(--border, var(--painel-border));
  border-top: none;
  border-radius: 0 0 var(--radius-lg, 14px) var(--radius-lg, 14px);
}

.painel-resumo-lower-left .painel-resumo-collapse .painel-pillars {
  margin-bottom: 0;
}

.painel-resumo-layout .painel-side-card--pillars {
  grid-column: 1;
  grid-row: 3;
  align-self: start;
}

.painel-resumo-lower-left .painel-kpi-meta {
  margin: 0;
}

.painel-details-body .painel-action-sync {
  margin: 0;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--border);
}

.painel-details-body .painel-action-sync .painel-section-title {
  margin: 0 0 8px;
}

.painel-details-body .painel-action-sync .painel-kpi-period {
  margin: 8px 0 0;
}

.painel-resumo-layout .painel-spotlight-card {
  box-sizing: border-box;
}

.painel-onboarding {
  margin: 0 0 14px;
  padding: 16px 18px;
  border-left: 4px solid var(--painel-accent, #2d6a4f);
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.08);
}

.painel-onboarding-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.painel-onboarding-title {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--green-dark, #1f4d38);
}

.painel-onboarding-close {
  border: none;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  color: var(--painel-muted);
  cursor: pointer;
  padding: 0 4px;
}

.painel-onboarding-steps {
  margin: 0 0 14px;
  padding-left: 20px;
  display: grid;
  gap: 8px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--painel-text);
}

.painel-onboarding-steps li strong {
  color: var(--green-dark, #1f4d38);
}

.painel-onboarding-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.painel-settings-replay {
  margin-top: 10px;
  width: 100%;
  justify-content: center;
}

.painel-resumo-layout .painel-card.painel-side-card {
  padding: 16px;
  margin: 0;
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.04);
}

.painel-app .painel-section-title.painel-side-title-live,
.painel-side-title-live {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: auto;
  max-width: 100%;
  white-space: nowrap;
}

.painel-side-live-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #22a85a;
  box-shadow: 0 0 0 4px rgba(34, 168, 90, 0.22);
  flex-shrink: 0;
  animation: painel-live-blink 1.15s ease-in-out infinite;
}

body.painel-has-priority-live .painel-side-live-dot {
  background: var(--painel-critical);
  box-shadow: 0 0 0 4px rgba(159, 74, 68, 0.22);
  animation-name: painel-live-blink-critical;
}

.painel-side-card--live {
  padding: 0;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.painel-live-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  padding: 16px;
  box-sizing: border-box;
  overflow: hidden;
}

.painel-live-head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 12px;
}

.painel-live-head-row .painel-section-title {
  margin: 0;
}

.painel-live-critical-zone {
  flex: 0 0 auto;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #e8dede;
}

.painel-live-recent-zone {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.painel-live-stream {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(100, 116, 139, 0.45) transparent;
}

.painel-live-stream::-webkit-scrollbar {
  width: 6px;
}

.painel-live-stream::-webkit-scrollbar-thumb {
  background: rgba(100, 116, 139, 0.35);
  border-radius: 999px;
}

.painel-live-stream::-webkit-scrollbar-thumb:hover {
  background: rgba(100, 116, 139, 0.55);
}

.painel-live-feed--critical,
.painel-live-feed--recent {
  overflow: visible;
  max-height: none;
}

.painel-live-zone-label {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--painel-muted);
  flex-shrink: 0;
}

.painel-live-critical-zone .painel-live-zone-label {
  color: var(--painel-critical-deep);
}

.painel-live-feed--critical .painel-live-item-btn {
  padding: 6px 7px;
}

.painel-live-feed--critical .painel-live-body strong {
  font-size: 13px;
}

.painel-live-feed--critical .painel-live-msg {
  font-size: 12px;
}

.painel-live-empty--calm {
  font-style: italic;
}

/* Banner prioritário - alerta elegante */
.painel-weekly-digest {
  margin: 0 0 16px;
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid var(--painel-accent-line);
  background: var(--painel-accent-soft);
  box-shadow: var(--painel-shadow);
}

.painel-weekly-digest-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}

.painel-weekly-digest-title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--painel-accent-dark);
}

.painel-weekly-digest-close {
  border: none;
  background: transparent;
  color: var(--painel-muted);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
}

.painel-weekly-digest-meta {
  margin: 0 0 10px;
  font-size: 13px;
}

.painel-weekly-digest-list {
  margin: 0 0 10px;
  padding-left: 18px;
  display: grid;
  gap: 6px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--painel-text);
}

.painel-weekly-digest-privacy {
  margin: 0 0 12px;
  font-size: 12px;
  color: var(--painel-muted);
}

.painel-weekly-digest-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.painel-critical-banner {
  margin: 0 0 16px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--painel-border);
  box-shadow: var(--painel-shadow);
}

.painel-critical-banner.is-critical {
  background: var(--painel-critical-soft);
  border-color: var(--painel-critical-line);
  border-left: 4px solid var(--painel-critical);
}

.painel-critical-banner.is-elevated {
  background: var(--painel-warn-soft);
  border-color: var(--painel-warn-line);
  border-left: 4px solid var(--painel-warn);
}

.painel-critical-banner-inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  color: var(--painel-text);
}

.painel-critical-banner-pulse {
  display: none;
}

.painel-critical-banner-icon {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  background: #fff;
  border: 1px solid var(--painel-critical-line);
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  color: var(--painel-critical-deep);
}

.painel-critical-banner.is-elevated .painel-critical-banner-icon {
  border-color: var(--painel-warn-line);
  color: var(--painel-warn);
}

.painel-critical-banner-copy strong {
  display: block;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--painel-text);
}

.painel-critical-banner-copy p {
  margin: 4px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--painel-muted);
}

.painel-critical-banner-btn {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  background: var(--painel-critical) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 12px rgba(159, 74, 68, 0.18);
  font-weight: 700;
  padding: 10px 16px;
  white-space: nowrap;
}

.painel-critical-banner.is-elevated .painel-critical-banner-btn {
  background: var(--painel-warn) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(138, 94, 18, 0.16);
}

body.painel-has-priority-live .painel-live-badge {
  background: var(--painel-critical-soft);
  border-color: var(--painel-critical-line);
  color: var(--painel-critical-deep) !important;
}

.painel-side-card--live .painel-side-head {
  margin: 0 0 8px;
}

.painel-side-card--live .painel-live-feed {
  gap: 6px;
}

.painel-live-head-row {
  flex-shrink: 0;
}

.painel-side-card--live .painel-live-item-btn {
  padding: 5px 6px;
  gap: 5px;
  min-height: 0;
  box-shadow: none;
}

.painel-side-card--live .painel-live-icon {
  width: 20px;
  height: 20px;
}

.painel-side-card--live .painel-live-svg {
  width: 12px;
  height: 12px;
}

.painel-resumo-row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.85fr);
  gap: 14px;
  align-items: start;
}

.painel-kpi-meta {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.painel-kpi-meta[hidden] {
  display: none !important;
}

.painel-tab {
  border: 1px solid var(--painel-border);
  background: var(--painel-surface);
  border-radius: 999px;
  padding: 10px 18px;
  cursor: pointer;
  font-weight: 700;
  font-size: var(--painel-fs-body);
  color: var(--painel-muted);
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.painel-tab:hover {
  border-color: var(--painel-neutral-line);
  color: var(--painel-text);
  background: var(--painel-neutral-soft);
}

.painel-tab.is-active {
  background: var(--painel-surface);
  color: var(--painel-text);
  border-color: var(--painel-neutral-line);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.painel-loading {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--painel-muted);
  margin-bottom: 12px;
}

.painel-loading-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--painel-accent);
  animation: painel-pulse 0.9s ease-in-out infinite;
}

@keyframes painel-pulse {
  0%, 100% { opacity: 0.35; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1); }
}

/* -- Panels / cards -- */
.painel-panel { display: none; }
.painel-panel.is-active { display: block; }

/*
 * Hierarquia de titulos (premium SaaS):
 * - Faixa verde full: headings primarios + label executivo (ancora SST)
 * - Titulos internos: trilho lateral (respira na horizontal; evita "cintas" empilhadas)
 */
.painel-app :is(
  .painel-section-heading,
  .painel-executive-label
) {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 12px;
  padding: 10px 16px;
  border-radius: 8px;
  border: none;
  background: var(--painel-title-bar);
  color: #fff !important;
  font-size: var(--painel-fs-title);
  font-weight: 800;
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.3;
  box-shadow: 0 1px 2px rgba(13, 51, 32, 0.18);
}

.painel-app .painel-section-title {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 4px 0 12px;
  padding: 9px 14px 9px 14px;
  border-radius: 8px;
  border: 1px solid var(--painel-accent-line);
  border-left: 4px solid var(--painel-accent);
  background: var(--painel-accent-soft);
  color: var(--painel-accent-dark) !important;
  font-size: var(--painel-fs-title);
  font-weight: 800;
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.3;
  box-shadow: none;
}

.painel-live-head-row .painel-section-title {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

/*
 * Accordions premium (mesmo ritmo visual do SST):
 * faixa verde no summary + corpo branco.
 */
.painel-app :is(.atlas-fold, .sst-fold) {
  margin: 0;
  padding: 0;
  border: none;
  overflow: hidden;
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.12);
  background: transparent;
}

.painel-app :is(.atlas-fold, .sst-fold) > summary {
  display: block;
  padding: 12px 16px;
  margin: 0;
  border-radius: 8px;
  border: none;
  background: var(--painel-title-bar);
  color: #fff;
  font-size: var(--painel-fs-title);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.35;
  cursor: pointer;
  list-style: none;
  user-select: none;
  box-shadow: 0 1px 2px rgba(13, 51, 32, 0.18);
  transition: filter 0.15s ease;
}

.painel-app :is(.atlas-fold, .sst-fold) > summary::-webkit-details-marker {
  display: none;
}

.painel-app :is(.atlas-fold, .sst-fold) > summary:hover {
  filter: brightness(1.06);
}

.painel-app :is(.atlas-fold, .sst-fold)[open] > summary {
  border-radius: 8px 8px 0 0;
}

.painel-app :is(.atlas-fold, .sst-fold) > summary::after {
  content: "\25BE";
  float: right;
  color: #fff;
  font-size: var(--painel-fs-title);
  font-weight: 700;
  line-height: 1.35;
}

.painel-app :is(.atlas-fold, .sst-fold)[open] > summary::after {
  content: "\25B4";
}

.painel-app :is(.atlas-fold, .sst-fold) > .painel-details-body,
.painel-app .sst-fold-body {
  padding: 14px 16px 16px;
  background: var(--painel-surface, #fff);
  border: 1px solid var(--painel-border);
  border-top: none;
  border-radius: 0 0 8px 8px;
  display: grid;
  gap: 12px;
}

.painel-card {
  background: var(--painel-surface);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  box-shadow: var(--painel-shadow);
  border: 1px solid var(--painel-border);
  box-sizing: border-box;
}

.painel-card h3 {
  margin: 0 0 14px;
  font-size: var(--painel-fs-title);
  color: var(--painel-text);
}

/* -- KPIs -- */
.painel-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  max-width: 100%;
  align-items: stretch;
  margin-bottom: 0;
  box-sizing: border-box;
}

.painel-kpi {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  background: var(--painel-surface);
  border-radius: 12px;
  padding: 14px 14px 12px;
  border: 1px solid var(--painel-border);
  box-shadow: var(--painel-shadow);
  border-top: 3px solid var(--painel-neutral-line);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  gap: 0;
  min-height: 152px;
  overflow: hidden;
}

.painel-kpi > span {
  display: block;
  width: 100%;
  font-size: var(--painel-fs-micro);
  color: var(--painel-muted);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 700;
  line-height: 1.2;
  word-break: break-word;
}

.painel-kpi strong {
  display: block;
  width: 100%;
  font-size: var(--painel-fs-display);
  font-weight: 800;
  margin: 8px 0 auto;
  color: var(--painel-text);
  line-height: 1.05;
  letter-spacing: -0.005em;
}

.painel-kpi small {
  display: block;
  width: 100%;
  margin: 8px 0 0;
  font-size: var(--painel-fs-micro);
  line-height: 1.3;
  color: var(--painel-muted);
  word-break: break-word;
}

.painel-kpi.is-warn { border-top-color: var(--painel-warn); }
.painel-kpi.is-warn strong { color: var(--painel-text); }
.painel-kpi.is-good { border-top-color: var(--painel-neutral-line); }
.painel-kpi.is-good strong { color: var(--painel-text); }
.painel-kpi.is-pending { border-top-color: var(--painel-neutral-line); }
.painel-kpi.is-pending strong { color: var(--painel-muted); }

/* Rotina dos líderes - faixa verde (como Percepção da equipe); críticas em vermelho */
.painel-kpi-grid--leaders .painel-kpi.painel-kpi--leaders {
  border-top-color: var(--painel-accent);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-kpi-grid--leaders .painel-kpi.painel-kpi--leaders.is-warn,
.painel-kpi-grid--leaders .painel-kpi.painel-kpi--leaders.is-good,
.painel-kpi-grid--leaders .painel-kpi.painel-kpi--leaders.is-pending {
  border-top-color: var(--painel-accent);
}

.painel-kpi-grid--leaders .painel-kpi.painel-kpi--critical {
  border-top-color: var(--painel-critical);
}

.painel-kpi-grid--leaders .painel-kpi.painel-kpi--critical.is-alert strong {
  color: var(--painel-critical-deep);
}

/* Percepção da equipe - faixa verde uniforme; divergência em vermelho */
.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse {
  border-top-color: var(--painel-accent);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-good,
.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-pending,
.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-warn,
.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-active {
  border-top-color: var(--painel-accent);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-good strong,
.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-pending strong {
  color: var(--painel-text);
}

.painel-kpi-grid--pulse .painel-kpi.painel-kpi--pulse.is-divergence-alert {
  border-top-color: var(--painel-critical);
  background: linear-gradient(180deg, #ffffff 0%, #fbf3f3 100%);
}

.painel-kpi .painel-sparkline {
  width: 100%;
  max-width: 120px;
  height: 24px;
  margin: 8px 0 auto;
  align-self: center;
}

/* -- Prioridades (leitura consolidada) -- */
.painel-priorities-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.painel-priorities-item {
  position: relative;
  padding: 12px 14px 12px 18px;
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
  border: 1px solid rgba(29, 107, 59, 0.12);
  box-shadow: 0 2px 8px rgba(20, 80, 44, 0.04);
}

.painel-priorities-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  background: var(--green-gradient, linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%));
  opacity: 0.55;
}

.painel-priorities-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  margin-bottom: 4px;
  color: #111827;
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}

.painel-priorities-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--painel-text);
  font-weight: 600;
}

.painel-priorities-detail {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--painel-text);
}

.painel-priorities-why {
  margin: 8px 0 0;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fbfcfc;
  border: 1px solid #d7e4db;
}

.painel-priorities-why-label,
.painel-priorities-basis-label {
  display: block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
  color: #5a6b61;
}

.painel-priorities-why ul {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 3px;
}

.painel-priorities-why li {
  font-size: 12.5px;
  line-height: 1.4;
  color: #2a3b32;
  font-weight: 600;
}

.painel-priorities-basis {
  margin: 8px 0 0;
  font-size: 12.5px;
  line-height: 1.45;
  color: #3f5348;
  font-weight: 550;
}

.painel-priorities-rec-label {
  display: block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 3px;
  background: var(--green-gradient, linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: 0.92;
}

.painel-priorities-item .painel-spotlight-link {
  margin-top: 10px;
  padding: 6px 12px !important;
  font-size: 12px !important;
  min-height: 0 !important;
  border: 1px solid rgba(29, 107, 59, 0.28) !important;
  color: var(--green-dark, #14502c) !important;
  background: linear-gradient(180deg, #ffffff 0%, var(--painel-accent-soft) 100%) !important;
  border-radius: 999px !important;
}

.painel-priorities-item .painel-spotlight-link:hover,
.painel-priorities-item .painel-spotlight-link:focus-visible {
  filter: brightness(1.02);
  border-color: rgba(29, 107, 59, 0.45) !important;
}

.painel-priorities-item.is-atencao::before,
.painel-priorities-item.is-pendente::before,
.painel-priorities-item.is-pending::before {
  opacity: 1;
}

.painel-priorities-item.is-ok::before {
  opacity: 0.72;
}

/* -- Spotlight (legado) -- */
.painel-spotlight {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 0;
  align-items: stretch;
}

.painel-spotlight-card {
  background: var(--surface);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-left: 4px solid var(--warning);
  box-shadow: 0 4px 16px rgba(20, 80, 44, 0.04);
  box-sizing: border-box;
}

.painel-spotlight-card--group h4 {
  font-size: 15px;
}

.painel-spotlight-names {
  margin: 6px 0 0 !important;
  font-size: 12px !important;
  color: var(--painel-text) !important;
  line-height: 1.4 !important;
}

.painel-spotlight-link {
  margin-top: 10px;
  padding: 6px 12px !important;
  font-size: 12px !important;
  min-height: 0 !important;
}

.painel-spotlight-card.is-ok { border-left-color: var(--painel-ui-subtle); background: var(--painel-surface); }
.painel-spotlight-card.is-atencao { border-left-color: var(--painel-critical); background: var(--painel-surface); }
.painel-spotlight-card.is-pendente { border-left-color: var(--painel-warn); background: var(--painel-surface); }
.painel-spotlight-card.is-pending { border-left-color: #94a3b8; background: var(--painel-surface); }
.painel-spotlight-card h4 { margin: 0 0 6px; font-size: 14px; color: var(--painel-text); }
.painel-spotlight-card p { margin: 0; font-size: 13px; color: var(--painel-muted); line-height: 1.45; }

/* -- Details (mais indicadores) -- */
.painel-details {
  margin-bottom: 0;
  overflow: hidden;
}

.painel-details summary {
  padding: 0;
  font-weight: 700;
  font-size: 15px;
  color: var(--painel-text);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.painel-details summary::-webkit-details-marker { display: none; }

.painel-details summary::after {
  content: "+";
  float: right;
  color: var(--painel-muted);
  font-weight: 400;
  font-size: 18px;
}

.painel-details[open] summary::after { content: "\2212"; }

.painel-details-body {
  padding-top: 16px;
  display: grid;
  gap: 14px;
}

.painel-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.painel-metric-tile {
  text-align: center;
  padding: 14px 10px;
  background: #fcfdfc;
  border-radius: var(--radius-sm);
  border: 1px solid var(--painel-border);
  min-height: 76px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.painel-metric-tile span {
  display: block;
  font-size: var(--painel-fs-micro);
  color: var(--painel-muted);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 700;
}

.painel-metric-tile strong {
  display: block;
  font-size: var(--painel-fs-display-sm);
  margin-top: 6px;
  color: var(--painel-text);
}

.painel-iap-line {
  margin: 0;
  padding: 14px 16px;
  background: #fcfdfc;
  border: 1px solid var(--painel-border);
  border-radius: var(--radius-sm);
  font-size: 14px;
  line-height: 1.45;
}

.painel-iap-line strong { color: var(--painel-text); }

.painel-alerts {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.painel-alerts li {
  margin: 0;
  padding: 12px 14px;
  background: var(--painel-warn-soft);
  border: 1px solid var(--painel-warn-line);
  border-radius: var(--radius-sm);
  font-size: 14px;
  line-height: 1.45;
}

.painel-alerts li.painel-muted {
  background: #fcfdfc;
  border-color: var(--painel-border);
  color: var(--painel-muted);
}

/* -- Líderes -- */
.painel-leader-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
  align-items: center;
}

.painel-filter-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  color: var(--painel-muted);
}

.painel-filter-btn.is-active {
  background: var(--painel-neutral-soft);
  color: var(--painel-text);
  border-color: var(--painel-neutral-line);
}

.painel-overdue { color: var(--painel-critical); font-weight: 700; }

.painel-table-wrap {
  overflow: auto;
  background: var(--surface);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.05);
}

.painel-table { width: 100%; border-collapse: collapse; font-size: var(--painel-fs-body); }
.painel-table th, .painel-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: middle;
}
.painel-table tbody tr:hover { background: #fcfdfc; }
.painel-table th {
  background: #fcfdfc;
  font-size: var(--painel-fs-micro);
  text-transform: none;
  letter-spacing: normal;
  color: var(--painel-muted);
  font-weight: 800;
}

.painel-status {
  display: inline-flex;
  align-items: center;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: var(--painel-fs-micro);
  font-weight: 700;
}

.painel-status.ok { background: var(--painel-neutral-soft); color: var(--painel-muted); border: 1px solid var(--painel-neutral-line); }
.painel-status.pendente { background: var(--painel-warn-soft); color: var(--painel-warn); }
.painel-status.atencao { background: var(--painel-critical-soft); color: var(--painel-critical-deep); }

/* -- Pilares -- */
.painel-pillars-insight {
  background: var(--painel-neutral-soft);
  border-left: 4px solid var(--painel-neutral-line);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: 14px 18px;
  margin-bottom: var(--space-md);
  font-size: 14px;
  line-height: 1.55;
  color: var(--painel-text);
}

.painel-pillars-reading-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.painel-pillars-reading-item {
  display: grid;
  gap: 4px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(20, 80, 44, 0.08);
}

.painel-pillars-reading-item:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.painel-pillars-reading-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

.painel-pillars-reading-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--painel-text);
}

.painel-pillars-reading-item.is-critical .painel-pillars-reading-label {
  color: var(--painel-critical-deep, #9b2226);
}

.painel-pillars-reading-item.is-recurrence .painel-pillars-reading-label {
  color: #c45c00;
}

.painel-pillars-reading-item.is-attention .painel-pillars-reading-label {
  color: #9a7b00;
}

.painel-pillars-reading-item.is-stable .painel-pillars-reading-label {
  color: var(--painel-accent, #2d6a4f);
}

.painel-pillars { display: grid; gap: 10px; margin-bottom: 16px; }

/* -- Mapa de calor Pilares FRPRT -- */
.painel-pillars-heatmap-wrap {
  display: grid;
  gap: 10px;
  max-width: 100%;
}

.painel-pillars-heatmap-note {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
}

.painel-pillars-heatmap-toolbar {
  margin-bottom: 2px;
}

/* Visão / De / Até no mesmo formato (altura, borda, tipografia). */
.painel-pillars-heatmap-toolbar.painel-pulse-period-dates {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 10px 12px;
  width: 100%;
}

.painel-pillars-heatmap-toolbar .painel-pulse-date-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.painel-pillars-visao-field {
  flex: 1 1 220px;
  min-width: min(100%, 200px);
  max-width: 320px;
}

.painel-pillars-heatmap-toolbar .painel-pulse-date-field:not(.painel-pillars-visao-field) {
  flex: 0 0 152px;
  width: 152px;
  min-width: 152px;
  max-width: 152px;
}

.painel-pillars-heatmap-toolbar .painel-pulse-date-input,
.painel-pillars-heatmap-toolbar .painel-pillars-filter-select {
  display: block;
  width: 100%;
  max-width: none;
  min-width: 0;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin: 0;
  padding: 0 12px;
  box-sizing: border-box;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 40px;
  color: var(--painel-text, #1d2a22);
  border: 1px solid var(--painel-border, #d8e2dc);
  border-radius: 10px;
  background-color: #fff;
  box-shadow: 0 1px 4px rgba(20, 80, 44, 0.06);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.painel-pillars-heatmap-toolbar .painel-pillars-filter-select {
  padding-right: 32px;
  line-height: normal;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2366756b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px;
}

.painel-pillars-heatmap-toolbar .painel-pulse-date-input:hover,
.painel-pillars-heatmap-toolbar .painel-pillars-filter-select:hover {
  border-color: rgba(29, 107, 59, 0.35);
}

.painel-pillars-heatmap-toolbar .painel-pulse-date-input:focus,
.painel-pillars-heatmap-toolbar .painel-pillars-filter-select:focus {
  outline: none;
  border-color: var(--green, #1d6b3b);
  box-shadow: 0 0 0 3px rgba(29, 107, 59, 0.18);
}

.painel-pillars-heatmap-toolbar .painel-pulse-period-apply {
  flex: 0 0 auto;
  align-self: flex-end;
  height: 40px;
  min-height: 40px;
}

.painel-pillars-heatmap-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 0 0 4px;
  padding: 0;
  list-style: none;
  font-size: 12px;
  color: var(--painel-muted);
}

.painel-pillars-heatmap-legend li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.painel-pillars-heatmap-mode {
  margin: 0 0 6px;
  font-size: 12px;
  color: var(--painel-text);
}

.painel-pillars-heatmap-mode strong {
  color: var(--painel-accent-dark, #1f5c38);
}

.painel-heatmap-swatch,
.painel-heatmap-cell {
  display: block;
  border-radius: 8px;
  border: 1px solid rgba(20, 60, 40, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.painel-heatmap-swatch {
  width: 12px;
  height: 12px;
  border-radius: 5px;
  display: inline-block;
}

.painel-heatmap-cell.is-none,
.painel-heatmap-swatch.is-none { background: linear-gradient(180deg, #e4e8ec, #d0d6dc); }

.painel-heatmap-cell.is-stable,
.painel-heatmap-swatch.is-stable { background: linear-gradient(180deg, #7fbf8f, #5f9f6f); }

.painel-heatmap-cell.is-attention,
.painel-heatmap-swatch.is-attention { background: linear-gradient(180deg, #efd98a, #d9b84f); }

.painel-heatmap-cell.is-recurrence,
.painel-heatmap-swatch.is-recurrence { background: linear-gradient(180deg, #efb07a, #d9864a); }

.painel-heatmap-cell.is-critical,
.painel-heatmap-swatch.is-critical { background: linear-gradient(180deg, #df8884, #c45f5a); }

.painel-pillars-heatmap-premium {
  background: linear-gradient(180deg, #f8fbf9 0%, #f2f6f3 100%);
  border: 1px solid rgba(31, 92, 56, 0.12);
  border-radius: 12px;
  padding: 12px 10px 10px;
  box-shadow: 0 2px 12px rgba(20, 80, 44, 0.05);
}

.painel-heatmap-grid {
  display: grid;
  gap: 8px 6px;
  align-items: center;
  width: 100%;
}

.painel-heatmap-grid-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 1px;
  min-height: 34px;
  text-align: center;
  font-size: 12px;
  color: var(--painel-muted);
}

.painel-heatmap-grid-head.painel-heatmap-corner {
  align-items: flex-start;
  justify-content: flex-end;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

.painel-heatmap-period-head strong {
  font-size: 12px;
  font-weight: 800;
  color: var(--painel-accent-dark, #1f5c38);
  letter-spacing: 0.01em;
}

.painel-heatmap-period-head span {
  font-size: 12px;
  color: var(--painel-muted);
  white-space: nowrap;
}

.painel-heatmap-grid-pillar {
  display: flex;
  align-items: center;
  font-weight: 700;
  font-size: 12px;
  line-height: 1.3;
  color: var(--painel-text);
  padding-right: 6px;
}

.painel-heatmap-grid-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
}

.painel-heatmap-grid-cell .painel-heatmap-cell {
  width: 34px;
  height: 26px;
  min-height: 0;
  flex-shrink: 0;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.painel-heatmap-grid-cell .painel-heatmap-cell:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(20, 60, 44, 0.12);
  cursor: help;
}

.painel-pillars-heatmap-premium.is-weekly .painel-heatmap-grid-cell .painel-heatmap-cell {
  width: 38px;
  height: 28px;
  border-radius: 8px;
}

.painel-pillars-heatmap-premium.is-daily .painel-heatmap-grid {
  gap: 6px 4px;
}

.painel-pillars-heatmap-premium.is-daily .painel-heatmap-grid-cell {
  min-height: 28px;
}

.painel-pillars-heatmap-premium.is-daily .painel-heatmap-grid-cell .painel-heatmap-cell {
  width: 30px;
  height: 24px;
}

.painel-pillar-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) minmax(80px, 2fr) 48px;
  align-items: center;
  gap: 14px;
  background: var(--surface);
  padding: 14px 18px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  box-shadow: 0 2px 8px rgba(20, 80, 44, 0.03);
}

.painel-pillar-row span { font-weight: 700; font-size: 14px; color: var(--painel-text); }

.painel-pillar-bar {
  height: 10px;
  background: #eef3ef;
  border-radius: 999px;
  overflow: hidden;
}

.painel-pillar-bar span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--painel-neutral-line), var(--painel-ui-subtle));
  border-radius: 999px;
  min-width: 2px;
}

.painel-pillar-row.is-critical .painel-pillar-bar span {
  background: linear-gradient(90deg, #c97a75, var(--painel-critical));
}

.painel-pillar-row.is-elevated .painel-pillar-bar span,
.painel-pillar-row.is-attention .painel-pillar-bar span {
  background: linear-gradient(90deg, #e8c468, var(--painel-warn));
}

.painel-pillar-row strong {
  text-align: right;
  color: var(--painel-text);
  font-size: 15px;
}

.painel-sectors { display: flex; flex-wrap: wrap; gap: 8px; }

.painel-sector-chip {
  background: var(--painel-surface);
  border: 1px solid var(--painel-border);
  padding: 9px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--painel-text);
}

/* -- Relatórios -- */
.painel-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--space-md);
  margin: var(--space-md) 0;
  align-items: stretch;
}

.painel-report-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.painel-report-card h3 { margin: 0 0 8px; font-size: 1rem; color: var(--painel-text); }
.painel-report-card .painel-muted {
  margin: 0 0 16px;
  flex: 1;
}

.painel-export-btn { width: 100%; max-width: 100%; min-width: 0; }

.painel-exports-modal .painel-settings-panel {
  width: min(760px, 100%);
}

.painel-exports-body {
  padding-top: 12px;
}

.painel-exports-intro {
  margin: 0 0 4px;
  font-size: 13px;
}

.painel-exports-modal .painel-report-grid {
  margin: 0;
}

.painel-muted { color: var(--painel-muted); font-size: 14px; line-height: 1.45; }
.painel-audit-note { margin-top: 8px; font-size: 13px; }

.painel-footer {
  margin-top: 32px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--painel-muted);
  text-align: center;
}

.painel-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  background: var(--painel-text);
  color: #fff;
  padding: 12px 22px;
  border-radius: 999px;
  z-index: 100;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
  font-weight: 600;
}

.painel-toast.is-danger { background: var(--painel-critical); }

@media (max-width: 900px) {
  .painel-shell { padding: 0 20px 32px; }
  .painel-topbar-inner { padding: 16px 20px; }
  .painel-hero {
    margin: 16px 0 var(--space-md);
    padding: 20px 18px 18px;
  }
  .painel-hero-top {
    flex-direction: column;
    align-items: stretch;
  }
  .painel-hero-badges {
    justify-content: flex-start;
    margin-left: 0;
  }
  .painel-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .painel-metric-grid { grid-template-columns: repeat(2, 1fr); }
  .painel-header-right { width: 100%; margin-left: 0; }
  .painel-pillar-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .painel-pillar-row strong { text-align: left; }
}

/* -- Sala de situação (v241) -- */
.painel-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  color: var(--painel-text) !important;
  background: var(--painel-neutral-soft);
  border: 1px solid var(--painel-neutral-line);
}
.painel-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--painel-ui-subtle);
  box-shadow: 0 0 0 3px rgba(138, 150, 144, 0.22);
  flex-shrink: 0;
  animation: painel-live-pulse 2.4s ease-in-out infinite;
}
@keyframes painel-live-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.85); }
}
@keyframes painel-live-blink {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 4px rgba(34, 168, 90, 0.22); }
  50% { opacity: 0.18; box-shadow: 0 0 0 7px rgba(34, 168, 90, 0); }
}
@keyframes painel-live-blink-critical {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 4px rgba(159, 74, 68, 0.22); }
  50% { opacity: 0.18; box-shadow: 0 0 0 7px rgba(159, 74, 68, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .painel-live-dot,
  .painel-side-live-dot { animation: none; }
}
.painel-updated-at {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--painel-muted) !important;
}
.painel-side-card {
  margin: 0;
  padding: 16px;
  box-sizing: border-box;
  box-shadow: var(--painel-shadow);
}

.painel-side-card--pillars {
  padding: 16px;
}

.painel-side-head {
  margin: 0 0 10px;
}
.painel-side-head .painel-section-title {
  margin: 0;
}
.painel-side-subtitle {
  margin: 16px 0 10px;
}
.painel-adherence-bar {
  margin: 0;
  padding: 14px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}
.painel-adherence-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  margin-bottom: 8px;
}
.painel-adherence-track {
  height: 8px;
  border-radius: 999px;
  background: #eef3ef;
  overflow: hidden;
}
.painel-adherence-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--painel-neutral-line), var(--painel-ui-subtle));
  transition: width 0.45s ease;
}
.painel-period-compare {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: 0;
  padding: 12px 14px;
  font-size: 13px;
  line-height: 1.45;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}
.painel-compare-label {
  font-weight: 700;
  color: var(--text);
}
.painel-compare-range {
  color: var(--painel-muted);
  font-size: 12px;
}
.painel-compare-value {
  font-size: 15px;
  font-weight: 800;
}
.painel-compare-value.is-up { color: var(--painel-text); }
.painel-compare-value.is-down { color: var(--painel-critical-deep); }
.painel-leader-map {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 2px;
}
.painel-leader-chip {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 88px;
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #fff;
  cursor: pointer;
  text-align: left;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.painel-leader-chip:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
.painel-leader-chip.is-ok { border-color: var(--painel-neutral-line); background: var(--painel-surface); }
.painel-leader-chip.is-atencao { border-color: var(--painel-warn-line); background: var(--painel-surface); }
.painel-leader-chip.is-pendente { border-color: var(--painel-neutral-line); background: var(--painel-surface); }
.painel-leader-chip-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--painel-muted);
}
.painel-leader-chip.is-ok .painel-leader-chip-dot { background: #2e7d4a; }
.painel-leader-chip.is-atencao .painel-leader-chip-dot { background: #c57a00; }
.painel-leader-chip.is-pendente .painel-leader-chip-dot { background: var(--painel-ui-subtle); }
.painel-leader-chip-name { font-size: 13px; font-weight: 700; color: var(--text); }
.painel-leader-chip-meta { font-size: 12px; color: var(--painel-muted); font-weight: 600; }
.painel-mini-pillars {
  display: grid;
  gap: 12px;
}
.painel-mini-pillar {
  display: grid;
  gap: 8px;
}
.painel-mini-pillar-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.painel-mini-pillar-name {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--painel-text);
}
.painel-mini-pillar-value {
  font-size: 13px;
  font-weight: 800;
  color: var(--text);
  flex-shrink: 0;
}
.painel-mini-bar {
  height: 10px;
  border-radius: 999px;
  background: #eef3ef;
  border: 1px solid #e3ebe6;
  overflow: hidden;
}
.painel-mini-bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  transition: width 0.45s ease;
}
.painel-mini-bar-fill--stable,
.painel-mini-bar-fill--attention {
  background: linear-gradient(90deg, var(--painel-neutral-line), var(--painel-ui-subtle));
  opacity: 0.9;
}
.painel-mini-bar-fill--elevated {
  background: linear-gradient(90deg, #e8c4a8, #b86a42);
}
.painel-mini-bar-fill--critical {
  background: linear-gradient(90deg, #d9a8a4, var(--painel-critical));
}
.painel-mini-pillar-foot {
  display: flex;
  align-items: center;
  min-height: 0;
}
.painel-mini-severity {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  padding: 2px 8px;
  border-radius: 999px;
  letter-spacing: 0.01em;
}
.painel-mini-severity--stable,
.painel-mini-severity--attention {
  background: var(--painel-neutral-soft);
  color: var(--painel-muted);
}
.painel-mini-severity--elevated {
  background: #faf0ea;
  color: #8f4f2e;
}
.painel-mini-severity--critical {
  background: var(--painel-critical-soft);
  color: var(--painel-critical-deep);
}
.painel-live-feed {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-content: flex-start;
}

.painel-live-item {
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
}

@media (prefers-reduced-motion: no-preference) {
  .painel-live-item.is-live-new-flash .painel-live-item-btn {
    animation: painel-live-item-flash 1.15s ease-out;
  }

  .painel-live-stream.is-live-panel-flash {
    animation: painel-live-panel-flash 0.85s ease-out;
  }
}

@keyframes painel-live-item-flash {
  0% {
    background: var(--painel-accent-soft);
    border-color: var(--painel-accent-line);
    box-shadow: 0 0 0 0 rgba(45, 106, 79, 0.35);
  }
  55% {
    box-shadow: 0 0 0 6px rgba(45, 106, 79, 0);
  }
  100% {
    background: #fff;
    box-shadow: none;
  }
}

@keyframes painel-live-panel-flash {
  0% { box-shadow: inset 0 0 0 2px rgba(45, 106, 79, 0.28); }
  100% { box-shadow: none; }
}

.painel-live-empty {
  font-size: 12px;
  color: var(--painel-muted);
  padding: 4px 0;
}

.painel-live-item-btn {
  width: 100%;
  display: flex;
  gap: 6px;
  align-items: flex-start;
  padding: 5px 7px;
  margin: 0;
  min-height: 0;
  border: 1px solid var(--border);
  border-left: 3px solid transparent;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  text-align: left;
  box-shadow: none;
  animation: painel-feed-in 0.35s ease;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.painel-live-item-btn:hover {
  box-shadow: none;
  border-color: var(--painel-border);
  background: #fafcfb;
}
@keyframes painel-feed-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
.painel-live-item.is-attention .painel-live-item-btn,
.painel-live-item.is-stable .painel-live-item-btn,
.painel-live-item.is-info .painel-live-item-btn {
  border-left-color: var(--painel-ui-subtle);
  background: var(--painel-surface);
}
.painel-live-item.is-elevated .painel-live-item-btn {
  border-left-color: var(--painel-warn);
  border-color: var(--painel-warn-line);
  background: var(--painel-surface);
}
.painel-live-item.is-critical .painel-live-item-btn {
  border-left-color: var(--painel-critical);
  border-color: var(--painel-critical-line);
  background: var(--painel-critical-soft);
  box-shadow: none;
}
.painel-live-item.is-critical .painel-live-item-btn:hover {
  box-shadow: none;
  background: var(--painel-critical-soft);
}
.painel-live-icon {
  width: 22px;
  height: 22px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  background: var(--painel-neutral-soft);
  color: var(--painel-muted);
  border: 1px solid var(--painel-neutral-line);
  flex-shrink: 0;
}
.painel-live-svg {
  width: 14px;
  height: 14px;
  display: block;
}
.painel-live-icon.is-stable,
.painel-live-icon.is-info,
.painel-live-icon.is-attention {
  background: var(--painel-neutral-soft);
  color: var(--painel-muted);
  border: 1px solid var(--painel-neutral-line);
}
.painel-live-icon.is-elevated {
  background: var(--painel-warn-soft);
  color: var(--painel-warn);
  border: 1px solid var(--painel-warn-line);
}
.painel-live-icon.is-critical {
  background: var(--painel-critical-soft);
  color: var(--painel-critical-deep);
  border: 1px solid var(--painel-critical-line);
}
.painel-live-body {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.painel-live-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.painel-live-flag {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 999px;
  line-height: 1.3;
}
.painel-live-flag.is-attention {
  background: var(--painel-neutral-soft);
  color: var(--painel-muted);
  border: 1px solid var(--painel-neutral-line);
}
.painel-live-flag.is-elevated {
  background: #fff3d6;
  color: #9a5b00;
  border: 1px solid #f1d394;
}
.painel-live-flag.is-critical {
  background: var(--painel-critical-soft);
  color: var(--painel-critical-deep);
  border: 1px solid var(--painel-critical-line);
}
.painel-live-flag.is-resolved {
  background: rgba(79, 155, 114, 0.12);
  color: #3d7a58;
  border: 1px solid rgba(79, 155, 114, 0.28);
  font-weight: 600;
}
.painel-live-item.is-resolved .painel-live-item-btn {
  border-left-color: #7cb896;
  background: #f8fbf9;
  opacity: 0.92;
}
.painel-live-item.is-resolved .painel-live-body strong {
  color: var(--painel-muted);
  font-weight: 600;
}
.painel-live-item.is-resolved .painel-live-msg {
  color: var(--painel-muted);
}
.painel-live-body strong { font-size: 12px; font-weight: 800; color: var(--painel-text); }
.painel-live-item.is-critical .painel-live-body strong { color: var(--painel-critical-deep); }
.painel-live-msg { font-size: 12px; color: var(--painel-muted); line-height: 1.35; word-break: break-word; }
.painel-live-item.is-critical .painel-live-msg { color: var(--painel-muted); font-weight: 500; }
.painel-live-item.is-elevated .painel-live-msg { color: var(--painel-muted); }
.painel-live-body time { font-size: 12px; color: var(--painel-muted); }
.painel-sparkline {
  display: block;
  width: 100%;
  max-width: 120px;
  height: 24px;
  margin: 0;
}
.painel-sparkline polyline {
  fill: none;
  stroke: rgba(102, 117, 107, 0.5);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.painel-kpi--iap,
.painel-kpi--critical-actions {
  align-items: stretch;
}

.painel-kpi--iap > small,
.painel-kpi--critical-actions > small {
  margin-top: auto;
  width: 100%;
  min-height: 2.4em;
  padding-top: 6px;
}

.painel-kpi--iap small.painel-iap-trend {
  font-weight: 700;
  line-height: 1.35;
}

.painel-kpi--iap small.painel-iap-trend.is-placeholder {
  visibility: hidden;
}

.painel-iap-trend.is-up { color: #9a5b00; }
.painel-iap-trend.is-down { color: #3d7a58; }
.painel-iap-trend.is-stable { color: var(--painel-muted); }

.painel-kpi--critical-actions.is-warn {
  border-top-color: var(--painel-critical-line);
}

.painel-iap-gauge {
  position: relative;
  width: 76px;
  height: 76px;
  margin: 6px auto 0;
  flex-shrink: 0;
  align-self: center;
}
.painel-iap-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.painel-iap-track {
  fill: none;
  stroke: #eef3ef;
  stroke-width: 8;
}
.painel-iap-fill {
  fill: none;
  stroke: var(--painel-ui-subtle);
  stroke-width: 8;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.5s ease;
}
.painel-iap-gauge.is-critical .painel-iap-fill { stroke: var(--painel-critical); }
.painel-iap-gauge.is-attention .painel-iap-fill { stroke: var(--painel-warn); }
.painel-iap-gauge strong {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  padding-bottom: 14px;
}
.painel-iap-gauge small {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  text-align: center;
  font-size: 12px;
  color: var(--painel-muted);
  font-weight: 700;
}
.painel-notify-btn { position: relative; }
.painel-notify-btn.is-active { border-color: var(--painel-neutral-line); color: var(--painel-text); }
.painel-notify-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--painel-critical);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 16px;
  text-align: center;
}
.painel-drawer {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  justify-content: flex-end;
}
.painel-drawer[hidden] { display: none !important; }
.painel-drawer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
}
.painel-drawer-panel {
  position: relative;
  width: min(420px, 100%);
  height: 100%;
  background: #fff;
  box-shadow: -8px 0 32px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  animation: painel-drawer-in 0.25s ease;
}
@keyframes painel-drawer-in {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}
.painel-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 0;
}
.painel-drawer-head h3 { margin: 0; font-size: 18px; }
.painel-drawer-close {
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: var(--painel-muted);
}
.painel-drawer-body {
  padding: 16px 20px;
  overflow: auto;
  flex: 1;
  font-size: 14px;
  line-height: 1.5;
}
.painel-drawer-meta { margin: 0 0 12px; }
.painel-drawer-confidential {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  background: #fff8eb;
  border: 1px solid #f1d394;
  font-size: 12px;
}
.painel-drawer-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 16px 20px 20px;
  border-top: 1px solid var(--border);
}
.painel-table tr.is-highlight { background: var(--painel-neutral-soft); }

.painel-settings-modal {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.painel-settings-modal[hidden] { display: none !important; }
.painel-settings-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.painel-settings-panel {
  position: relative;
  width: min(440px, 100%);
  padding: 0;
  overflow: hidden;
}
.painel-settings-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--border);
}
.painel-settings-head h3 { margin: 0; font-size: 18px; color: var(--painel-text); }
.painel-settings-close {
  border: none;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: var(--painel-muted);
}
.painel-settings-body {
  display: grid;
  gap: 18px;
  padding: 20px;
}
.painel-settings-group { display: grid; gap: 8px; }
.painel-settings-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--painel-muted);
}
.painel-settings-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--painel-text);
  cursor: pointer;
}

.painel-settings-check input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  min-width: 16px;
  max-width: 16px;
  margin-top: 2px;
}

.painel-settings-check span {
  flex: 1 1 auto;
  min-width: 0;
}
.painel-settings-hint { margin: 0; font-size: 12px; }
.painel-settings-network {
  padding-top: 14px;
  border-top: 1px solid var(--painel-border);
}
.painel-settings-network-rules {
  margin: 0;
  padding-left: 18px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--painel-text);
}
.painel-settings-network-rules li + li {
  margin-top: 6px;
}
.painel-settings-network-examples {
  margin: 6px 0 10px;
  padding-left: 18px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--painel-muted);
}
.painel-settings-network-examples li + li {
  margin-top: 4px;
}
.painel-settings-note {
  min-height: 84px;
  resize: vertical;
  font-size: 13px;
  line-height: 1.4;
}
.painel-settings-value {
  margin: 0;
  font-size: 14px;
  color: var(--text);
}
.painel-settings-foot {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 16px 20px 20px;
  border-top: 1px solid var(--border);
}

.painel-report-modal {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.painel-report-modal[hidden] { display: none !important; }
.painel-report-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}
.painel-report-panel {
  position: relative;
  width: min(760px, 100%);
  max-height: min(88vh, 920px);
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.painel-report-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 0;
}
.painel-report-head h3 {
  margin: 0;
  font-size: 18px;
  color: var(--painel-text);
}
.painel-report-close {
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: var(--painel-muted);
}
.painel-report-loading {
  padding: 16px 20px 0;
  font-size: 14px;
  color: var(--painel-muted);
}
.painel-report-body {
  padding: 16px 20px;
  overflow: auto;
  flex: 1;
}
.painel-director-note {
  flex-shrink: 0;
  padding: 0 20px 12px;
  border-top: 1px solid var(--border);
  background: #f8fbf9;
}
.painel-director-note[hidden] { display: none !important; }
.painel-director-note-label {
  display: block;
  margin: 14px 0 4px;
  font-size: 13px;
  font-weight: 800;
  color: var(--painel-text);
}
.painel-director-note-hint {
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--painel-muted);
}
.painel-director-note-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  font: inherit;
  font-size: 14px;
  line-height: 1.45;
  resize: vertical;
  min-height: 72px;
  background: #fff;
}
.painel-director-note-input:read-only,
.painel-director-note-input:disabled {
  background: #f4f7f5;
  color: var(--painel-muted);
  cursor: not-allowed;
}
.painel-director-note-meta {
  margin: 6px 0 10px;
  font-size: 12px;
  color: var(--painel-muted);
}
.painel-director-note .btn {
  margin-bottom: 4px;
}
.report-view-list {
  margin: 0;
  padding-left: 18px;
}
.report-view-list li { margin-bottom: 8px; line-height: 1.5; }
.report-view-normative { font-size: 13px; line-height: 1.5; color: var(--muted, #667); }
.report-view-source {
  margin: 0;
  padding: 12px 14px;
  border-radius: 8px;
  background: #f8fbf9;
  border: 1px solid #e0ebe4;
}
.report-view-source .report-view-meta { margin-top: 0; }
.report-director-note {
  margin-top: 12px;
  padding: 12px 14px;
  border-left: 3px solid var(--painel-green, #2d6a4f);
  background: #fcfdfc;
  border-radius: 0 8px 8px 0;
}
.report-director-note strong {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .03em;
  margin-bottom: 6px;
}
.report-director-note-meta {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--painel-muted);
}
.painel-evidence-preview {
  padding: 0 20px 12px;
}
.painel-evidence-preview .evidence-image-preview {
  display: block;
  width: 100%;
  max-height: 320px;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: #fcfdfc;
}
.painel-report-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 16px 20px 20px;
  border-top: 1px solid var(--border);
}

@media (max-width: 1280px) {
  .painel-kpi-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .painel-kpi-grid,
  .painel-kpi-grid--leaders,
  .painel-kpi-grid--pulse {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .painel-kpi-band {
    flex-wrap: wrap;
  }

  .painel-kpi-band-link {
    width: 100%;
    justify-content: center;
  }
  .painel-resumo-layout {
    grid-template-columns: 1fr;
  }
  .painel-resumo-main,
  .painel-resumo-sidebar {
    width: 100%;
  }
  .painel-resumo-sidebar .painel-side-card--live {
    min-height: 0;
    margin-top: 0;
    height: min(360px, 52vh);
    max-height: min(360px, 52vh);
  }
  .painel-live-panel {
    min-height: 0;
  }
  .painel-critical-banner-inner {
    flex-wrap: wrap;
  }
  .painel-critical-banner-btn {
    width: 100%;
  }
  .painel-resumo-row { grid-template-columns: 1fr; }
}

@media print {
  .painel-topbar, .painel-tabs, .painel-leader-filters,
  #painelLogout, .painel-export-btn, .painel-toast,
  #painelLoading, .painel-mobile-gate, .painel-side-card--live, .painel-drawer,
  #painelNotifyToggle, .painel-live-badge, #painelMoreMenu,
  #painelReportsBtn, #painelHelpBtn,
  #painelSettingsModal, #painelExportsModal { display: none !important; }
  .painel-app { background: #fff; }
  .painel-shell { max-width: none; padding: 0; }
  .painel-hero {
    break-inside: avoid;
    box-shadow: none;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .painel-details { border: none; box-shadow: none; }
  .painel-details summary { display: none; }
  .painel-details-body { display: block !important; padding: 0; }
  .painel-panel { display: block !important; break-before: page; }
  .painel-panel:first-of-type { break-before: auto; }
}

/* KPI strip / relatórios no painel PC - paleta do projeto (sem azul #5b7fd6) */
.painel-app .painel-smart-strip .kpi-body strong,
.painel-app .kpi-done .kpi-body strong {
  color: var(--painel-text);
}

.painel-app .painel-smart-strip .kpi-body small {
  color: var(--painel-muted);
}

.painel-app .kpi-checkins,
.painel-app .kpi-plans,
.painel-app .kpi-adhoc,
.painel-app .kpi-done,
.painel-app .kpi-risk {
  border-top-color: var(--painel-neutral-line);
}

.painel-app .kpi-attention {
  border-top-color: var(--painel-warn);
}

.painel-app .report-view-card h3,
.painel-app .report-view-section h4 {
  color: var(--painel-text);
}

.painel-app .report-view-meta-item {
  background: var(--painel-neutral-soft);
  border-color: var(--painel-border);
}

.painel-app .report-view-meta-item span {
  color: var(--painel-muted);
}

.painel-app .report-view-risk {
  background: var(--painel-neutral-soft);
  color: var(--painel-text);
  border-color: var(--painel-border);
}

.painel-pulse-root {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.painel-pulse-shell {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.painel-pulse-header {
  padding: 18px 18px 16px;
  background: linear-gradient(180deg, #ffffff 0%, var(--painel-bg) 55%, #fcfdfc 100%);
}

.painel-pulse-header h3 {
  margin: 0 0 6px;
}

.painel-pulse-header .painel-executive-sublabel {
  margin: 0;
}

.painel-pulse-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.painel-pulse-section-head--results {
  display: block;
  align-items: stretch;
  gap: 0;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--painel-border);
}

.painel-pulse-results-head {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.painel-pulse-results-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--green-dark, #1d6b3b);
}

.painel-pulse-results-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
}

.painel-pulse-results-toolbar-filters {
  flex: 1 1 420px;
  min-width: 0;
  max-width: none;
}

.painel-pulse-period-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
}

.painel-pulse-period-field-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--green-dark, #1d6b3b);
}

.painel-pulse-period-dates {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 8px 10px;
}

.painel-pulse-date-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 0 1 148px;
}

.painel-pulse-date-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--painel-muted);
}

.painel-pulse-date-input {
  width: 100%;
  min-width: 0;
  max-width: 160px;
  padding: 9px 12px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--painel-text, #1d2a22);
  border: 1px solid var(--painel-border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(20, 80, 44, 0.06);
  cursor: pointer;
}

.painel-pulse-date-input:hover {
  border-color: rgba(29, 107, 59, 0.35);
}

.painel-pulse-date-input:focus {
  outline: none;
  border-color: var(--green, #1d6b3b);
  box-shadow: 0 0 0 3px rgba(29, 107, 59, 0.18);
}

.painel-pulse-period-sep {
  align-self: flex-end;
  padding-bottom: 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--painel-muted);
}

.painel-pulse-period-apply {
  align-self: flex-end;
  white-space: nowrap;
  flex: 0 0 auto;
  background: var(--green-gradient, linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%));
  color: #fff;
  border: none;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.2);
  font-weight: 700;
}

.painel-pulse-period-apply:hover,
.painel-pulse-period-apply:focus-visible {
  color: #fff;
  filter: brightness(1.06);
}

.painel-pulse-period-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
}

.painel-pulse-period-select {
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 10px 38px 10px 14px;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  border: none;
  border-radius: 12px;
  background-color: var(--green, #1d6b3b);
  background-image:
    linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: 0 0, right 14px center;
  background-size: auto, 12px 8px;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.2);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.painel-pulse-period-select:hover {
  filter: brightness(1.05);
}

.painel-pulse-period-select:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(29, 107, 59, 0.28), 0 2px 10px rgba(20, 80, 44, 0.2);
}

.painel-pulse-period-select option {
  color: var(--painel-text, #1d2a22);
  background: #fff;
  font-weight: 600;
}

.painel-pulse-period-empty {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
}

.painel-pulse-results-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.painel-pulse-section-head--results h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--green-dark, #1d6b3b);
}

.painel-pulse-gradient-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.painel-pulse-gradient-select {
  min-width: 168px;
  max-width: 220px;
  padding: 7px 32px 7px 12px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  border: none;
  border-radius: 999px;
  background-color: var(--green, #1d6b3b);
  background-image:
    linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: 0 0, right 12px center;
  background-size: auto, 12px 8px;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.2);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.painel-pulse-gradient-select:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(29, 107, 59, 0.28), 0 2px 10px rgba(20, 80, 44, 0.2);
}

.painel-pulse-gradient-select option {
  color: var(--painel-text, #1d2a22);
  background: #fff;
  font-weight: 600;
}

.painel-pulse-sector-filter-label,
.painel-pulse-period-filter-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--green-dark, #1d6b3b);
  white-space: nowrap;
}

.painel-pulse-sector-current {
  margin: 0 0 4px;
  font-size: 13px;
  line-height: 1.35;
  color: var(--painel-text, #1d2a22);
}

.painel-pulse-sector-current strong {
  color: var(--green-dark, #1d6b3b);
  font-weight: 800;
}

.painel-pulse-section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.painel-pulse-gradient-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.painel-pulse-gradient-select {
  min-width: 168px;
  max-width: 220px;
  padding: 7px 32px 7px 12px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  border: none;
  border-radius: 999px;
  background-color: var(--green, #1d6b3b);
  background-image:
    linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1.5 1.5 6 6l4.5-4.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: 0 0, right 12px center;
  background-size: auto, 12px 8px;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.2);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.painel-pulse-gradient-select:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(29, 107, 59, 0.28), 0 2px 10px rgba(20, 80, 44, 0.2);
}

.painel-pulse-gradient-select option {
  color: var(--painel-text, #1d2a22);
  background: #fff;
  font-weight: 600;
}

.painel-pulse-gradient-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-width: 148px;
  min-height: 40px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  font-family: inherit;
  line-height: 1.25;
  color: #fff;
  border: none;
  border-radius: 999px;
  background: var(--green-gradient, linear-gradient(135deg, var(--green-dark, #14502c) 0%, var(--green, #1d6b3b) 58%, #228a48 100%));
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.2);
  cursor: pointer;
  white-space: nowrap;
  box-sizing: border-box;
}

.painel-pulse-gradient-btn:hover,
.painel-pulse-gradient-btn:focus-visible {
  outline: none;
  filter: brightness(1.06);
  box-shadow: 0 4px 14px rgba(20, 80, 44, 0.24);
}

.painel-pulse-sector-picker {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-self: flex-end;
}

.painel-pulse-sector-btn {
  pointer-events: none;
  width: 100%;
  min-width: 132px;
  background: var(--green-light, #fbfcfc);
  color: var(--green-dark, #14502c);
  border: 1px solid rgba(29, 107, 59, 0.28);
  box-shadow: none;
  white-space: nowrap;
}

.painel-pulse-sector-picker-select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: var(--radius-sm, 10px);
  background: transparent;
  color: transparent;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.painel-pulse-sector-picker-select:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(29, 107, 59, 0.22);
}

.painel-pulse-sector-picker-select option {
  color: var(--painel-text, #1d2a22);
  background: #fff;
}

.painel-pulse-sector-filter-label,
.painel-pulse-period-filter-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--green-dark, #1d6b3b);
  white-space: nowrap;
}

.painel-pulse-sector-current {
  margin: 0 0 4px;
  font-size: 13px;
  line-height: 1.35;
  color: var(--painel-text, #1d2a22);
}

.painel-pulse-sector-current strong {
  color: var(--green-dark, #1d6b3b);
  font-weight: 800;
}

.painel-pulse-section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.painel-pulse-overview-head {
  display: none;
}

.painel-pulse-trend {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--painel-border);
  background: #fff;
  box-shadow: var(--painel-shadow);
  font-size: 12px;
  font-weight: 600;
  color: var(--painel-muted);
  white-space: nowrap;
}

.painel-pulse-trend .painel-sparkline {
  width: 72px;
  height: 22px;
  margin: 0;
  flex-shrink: 0;
}

.painel-pulse-table-wrap {
  margin-top: 0;
  border-radius: 12px;
  border: 1px solid var(--painel-border);
  overflow: hidden;
  background: #fff;
}

.painel-pulse-overview-note {
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--painel-muted);
}

.painel-pulse-workspace {
  padding: 0;
  overflow: hidden;
}

.painel-pulse-workspace > .painel-pulse-subtabs {
  margin: 0;
  padding: 0 8px;
  gap: 0;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid var(--painel-border, #d8e2dc);
  background: #fcfdfc;
}

.painel-pulse-workspace .painel-pulse-subtab {
  flex: 0 1 auto;
  border-radius: 0;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  padding: 12px 18px;
  box-shadow: none;
}

.painel-pulse-workspace .painel-pulse-subtab.is-active {
  background: #fff;
  border-bottom-color: #1d6b3b;
  color: #1d6b3b;
}

.painel-pulse-subpanel-wrap {
  padding: 16px;
  background: #fff;
}

.painel-pulse-subtabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 4px;
  background: var(--painel-neutral-soft, #f4f7f5);
  border-radius: 12px;
  border: 1px solid var(--painel-border, #d8e2dc);
}

.painel-pulse-subtab {
  flex: 1 1 140px;
  min-width: 0;
  padding: 10px 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--painel-muted, #66756b);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.painel-pulse-subtab:hover {
  background: rgba(255, 255, 255, 0.7);
  color: var(--painel-text, #1d2a22);
}

.painel-pulse-subtab.is-active {
  background: #fff;
  border-color: var(--painel-border, #d8e2dc);
  color: #1d6b3b;
  box-shadow: 0 2px 8px rgba(20, 80, 44, 0.08);
}

.painel-pulse-subpanel {
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
}

.painel-pulse-subpanel.is-active {
  display: flex;
}

.painel-pulse-subpanel > .painel-pulse-overview,
.painel-pulse-subpanel > .painel-pulse-sector-details {
  flex: 0 0 auto;
}

.painel-pulse-sector-details {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  margin-top: 2px;
  padding-top: 16px;
  border-top: 1px solid var(--painel-border);
}

.painel-pulse-section-head--detail {
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 0;
  gap: 12px;
}

.painel-pulse-section-head--detail .painel-pulse-section-head-copy h3 {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--green-dark, #1d6b3b);
}

.painel-pulse-detail-legend,
.painel-pulse-section-head--detail .painel-pulse-detail-legend {
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  max-width: none;
  text-align: left;
}

.painel-pulse-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.painel-pulse-detail-intro {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 16px 12px;
  border-bottom: 1px solid var(--painel-border);
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
}

.painel-pulse-detail-intro h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--green-dark, #1d6b3b);
}

.painel-pulse-detail-sector-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 12px;
}

.painel-pulse-sector-evaluated {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}

.painel-pulse-sector-evaluated strong {
  color: var(--green-dark, #1d6b3b);
  font-weight: 800;
}

.painel-pulse-detail-intro .painel-pulse-sector-current {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.painel-pulse-detail-intro .painel-pulse-detail-legend {
  margin: 0;
}

.painel-pulse-sector-combo {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 8px;
  flex: 1 1 260px;
  min-width: 220px;
  max-width: 420px;
}

.painel-pulse-sector-query {
  flex: 1 1 140px;
  min-width: 120px;
  max-width: 220px;
  min-height: 38px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
}

.painel-pulse-sector-select {
  flex: 1 1 140px;
  min-width: 140px;
  max-width: 220px;
  min-height: 38px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
}

.painel-pulse-overview-filter {
  display: block;
  margin: 0 0 10px;
}

.painel-pulse-overview-filter .painel-pulse-sector-query {
  width: 100%;
  max-width: 320px;
}

.painel-pulse-overview-filter-empty {
  margin: 8px 0 0;
  font-size: 12px;
}

.painel-pulse-sector-detail--empty .painel-pulse-detail-empty {
  margin: 0;
  padding: 0 16px 16px;
}

.painel-pulse-subheading {
  margin: 0 0 10px;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--painel-text, #1d2a22);
}

.painel-pulse-sector-detail {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.painel-pulse-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 16px 12px;
  border-bottom: 1px solid var(--painel-border);
  background: linear-gradient(180deg, #ffffff 0%, #fcfdfc 100%);
}

.painel-pulse-detail-head-copy h4 {
  margin: 0 0 4px;
  font-size: 1rem;
  line-height: 1.25;
}

.painel-pulse-detail-meta {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--painel-muted);
}

.painel-pulse-detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.painel-pulse-summary {
  padding: 14px 16px 16px;
}

.painel-pulse-detail-loading {
  margin: 0;
  font-size: 13px;
}

.painel-pulse-detail-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.painel-pulse-detail-metrics {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.painel-pulse-detail-metric {
  padding: 14px;
  border-radius: 12px;
  border: 1px solid var(--painel-border);
  background: var(--painel-neutral-soft);
}

.painel-pulse-detail-metric.is-primary {
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-pulse-detail-metric-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

.painel-pulse-detail-metric-value {
  display: block;
  margin-top: 4px;
  font-size: 34px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.005em;
  color: var(--painel-text);
}

.painel-pulse-detail-metric-score-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
}

.painel-pulse-detail-metric-score-row .painel-pulse-detail-metric-value {
  margin-top: 0;
}

.painel-pulse-detail-metric-badge {
  flex: 0 0 auto;
}

.painel-pulse-detail-metric-badge .painel-pulse-tag {
  margin: 0;
}

.painel-pulse-detail-metric-value span {
  font-size: 16px;
  font-weight: 700;
  color: var(--painel-muted);
}

.painel-pulse-detail-metric.is-good .painel-pulse-detail-metric-value {
  color: var(--painel-accent-dark);
}

.painel-pulse-detail-metric.is-warn .painel-pulse-detail-metric-value {
  color: var(--painel-critical-deep);
}

.painel-pulse-detail-metric small,
.painel-pulse-detail-metric em {
  display: block;
  margin-top: 8px;
  font-style: normal;
  font-size: 12px;
  line-height: 1.35;
  color: var(--painel-muted);
}

.painel-pulse-detail-metric em {
  margin-top: 4px;
  font-weight: 600;
}

.painel-pulse-score-bar {
  height: 6px;
  margin-top: 10px;
  border-radius: 999px;
  background: #e6ece8;
  overflow: hidden;
}

.painel-pulse-score-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--painel-accent);
}

.painel-pulse-score-bar.is-good span {
  background: var(--painel-accent);
}

.painel-pulse-score-bar.is-neutral span {
  background: #8a9690;
}

.painel-pulse-score-bar.is-warn span {
  background: var(--painel-critical);
}

.painel-pulse-focus-chip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px dashed var(--painel-border);
  background: #fff;
}

.painel-pulse-focus-chip span {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

.painel-pulse-focus-chip strong {
  font-size: 14px;
  line-height: 1.35;
}

.painel-pulse-focus-chip small {
  font-size: 12px;
  color: var(--painel-muted);
}

.painel-pulse-q-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.painel-pulse-q-item {
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--painel-border);
  background: #fff;
}

.painel-pulse-q-score {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 800;
  color: var(--painel-accent-dark);
}

.painel-pulse-q-item.is-warn .painel-pulse-q-score {
  color: var(--painel-critical-deep);
}

.painel-pulse-q-item p {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--painel-text);
}

.painel-pulse-recs-callout {
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid var(--painel-accent-line);
  background: var(--painel-accent-soft);
}

.painel-pulse-recs-callout-label {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--painel-accent-dark);
}

.painel-pulse-attention-icon {
  color: var(--painel-critical-deep);
  font-weight: 800;
}

.painel-pulse-divergence-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.painel-pulse-divergence-head strong {
  font-size: 13px;
  line-height: 1.3;
}

.painel-pulse-divergence-delta {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  background: #fff;
  border: 1px solid currentColor;
}

.painel-pulse-divergence-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 10px;
}

.painel-pulse-divergence-compare div {
  padding: 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.painel-pulse-divergence-compare span {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

.painel-pulse-divergence-compare strong {
  display: block;
  margin-top: 4px;
  font-size: 18px;
}

.painel-pulse-divergence-compare strong.is-alert {
  color: var(--painel-critical-deep);
}

.painel-pulse-divergence-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--painel-text);
}

.painel-pulse-tag.is-pending {
  background: var(--painel-warn-soft);
  border: 1px solid var(--painel-warn-line);
  color: var(--painel-warn);
}

.painel-pulse-sector-detail h4 {
  margin: 0 0 4px;
  font-size: 0.95rem;
}

.painel-pulse-sector-detail p {
  margin: 0 0 10px;
}

.painel-pulse-config-block h3 {
  margin: 0 0 8px;
  font-size: 1rem;
}

.painel-pulse-config-block > p.painel-muted {
  margin: 0 0 12px;
}

.painel-pulse-sector-admin {
  list-style: none;
  margin: 12px 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.painel-pulse-sector-admin li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  background: var(--painel-neutral-soft, #f4f7f5);
  border-radius: 8px;
}

.painel-pulse-sector-structure {
  margin-top: 14px;
}

.painel-pulse-sector-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-bottom: 10px;
}

.painel-pulse-sector-filter {
  flex: 1 1 220px;
  min-width: 0;
  max-width: 320px;
  margin: 0;
}

.painel-pulse-sector-filter .painel-select {
  width: 100%;
}

.painel-pulse-sector-count {
  font-size: 12px;
}

.painel-pulse-sector-table-wrap {
  max-height: min(420px, 55vh);
  overflow: auto;
  border: 1px solid var(--painel-border, #d8e2dc);
  border-radius: 10px;
  background: #fff;
}

.painel-pulse-sector-table {
  margin: 0;
  font-size: 13px;
}

.painel-pulse-sector-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fbfcfc;
  padding: 8px 12px;
}

.painel-pulse-sector-table tbody td {
  padding: 6px 12px;
  border-bottom: 1px solid #e8eee9;
}

.painel-pulse-sector-table tbody tr:nth-child(even) {
  background: #fafcfb;
}

.painel-pulse-sector-table tbody tr:hover {
  background: #f3f8f4;
}

.painel-pulse-sector-name {
  font-weight: 600;
  color: var(--painel-text, #1a2e1a);
  line-height: 1.3;
}

.painel-pulse-sector-hc-col,
.painel-pulse-sector-hc {
  width: 96px;
  text-align: right;
}

.painel-pulse-sector-hc .painel-select {
  width: 72px;
  max-width: 100%;
  min-height: 0;
  padding: 5px 8px;
  text-align: right;
  margin-left: auto;
  font-size: 13px;
  line-height: 1.2;
}

.painel-pulse-sector-actions-col,
.painel-pulse-sector-actions {
  width: 88px;
  text-align: right;
  white-space: nowrap;
}

.painel-pulse-sector-actions .btn {
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1.2;
}

.painel-pulse-sector-hint {
  margin: 8px 0 0;
  font-size: 12px;
}

.painel-pulse-sector-save-row {
  margin-top: 12px;
}

.painel-pulse-sector-import {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  margin: 10px 0 4px;
}

.painel-pulse-file-btn {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  margin: 0;
}

.painel-pulse-import-replace {
  margin: 0;
  font-size: 13px;
}

.painel-pulse-import-status {
  flex: 1 1 100%;
  margin: 0;
  font-size: 12px;
}

.painel-pulse-sector-import--primary {
  margin: 12px 0 8px;
}

.painel-pulse-sector-import--primary .painel-pulse-file-btn.btn {
  background: var(--green, #1d6b3b);
  border-color: var(--green, #1d6b3b);
  color: #fff;
}

.painel-pulse-sectors-manual {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--painel-border, #d8e2dc);
}

.painel-pulse-sectors-manual summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--painel-muted, #5f6f66);
  margin-bottom: 8px;
}

.painel-pulse-sectors-manual .admin-textarea {
  margin-top: 8px;
}

.painel-pulse-headcount-block {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--painel-border, #d8e2dc);
}

.painel-pulse-qr-details {
  margin-top: 10px;
}

.painel-pulse-qr-details summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: #1d6b3b;
  padding: 6px 0;
}

.painel-pulse-closed-wrap {
  margin-top: 8px;
}

.painel-pulse-closed-wrap summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 13px;
  color: var(--painel-muted, #66756b);
  padding: 8px 0;
}

.painel-pulse-list-closed {
  margin-top: 4px;
}

.painel-pulse-dispatch summary {
  cursor: pointer;
  list-style: none;
}

.painel-pulse-dispatch summary h3 {
  display: inline;
  margin: 0;
}

@media (max-width: 640px) {
  .painel-pulse-workspace .painel-pulse-subtab {
    flex: 1 1 33%;
    padding: 10px 8px;
    font-size: 12px;
  }
}

.painel-pulse-intro h3,
.painel-pulse-auto h3,
.painel-pulse-create h3 {
  margin: 0 0 6px;
  font-size: 1rem;
}

.painel-pulse-create-lead {
  margin: 0 0 14px;
  max-width: 42rem;
  line-height: 1.45;
}

.painel-pulse-create-fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.painel-pulse-create-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}

.painel-pulse-create-row--sector {
  align-items: flex-end;
  gap: 12px 16px;
}

.painel-pulse-create-row--sector .painel-toolbar-field {
  flex: 1 1 220px;
  min-width: 0;
  max-width: 360px;
}

.painel-pulse-create-row--sector #pulseCreateBtn {
  flex: 0 0 auto;
}

.painel-pulse-monthly-hint {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 12px;
  line-height: 1.45;
  color: #3d6a8a;
}

.painel-pulse-survey-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.painel-pulse-survey-selected-hint {
  flex: 1 1 100%;
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--painel-muted, #5f6f66);
}

.painel-pulse-survey-row-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--painel-muted, #5f6f66);
  padding-right: 8px;
  border-right: 1px solid #d8e5dc;
  margin-right: 2px;
}

.painel-pulse-auto-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  margin-top: 12px;
}

.painel-pulse-auto-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--text, #1a2e24);
  margin-bottom: 6px;
}

.painel-pulse-auto-meta {
  margin: 10px 0 0;
  font-size: 12px;
}

.painel-pulse-auto-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-top: 10px;
  font-size: 13px;
  border: 1px solid var(--painel-border, #d8e2dc);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.painel-pulse-auto-table th,
.painel-pulse-auto-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--painel-border, #d8e2dc);
  text-align: left;
  vertical-align: middle;
  line-height: 1.4;
}

.painel-pulse-auto-table tr:last-child th,
.painel-pulse-auto-table tr:last-child td {
  border-bottom: none;
}

.painel-pulse-auto-table th {
  width: 32%;
  font-size: 12px;
  font-weight: 800;
  color: var(--painel-muted, #66756b);
  background: var(--painel-neutral-soft, #fcfdfc);
  white-space: nowrap;
}

.painel-pulse-auto-table tr[hidden] {
  display: none !important;
}

.painel-pulse-auto-freq {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.painel-pulse-auto-freq .painel-select {
  min-width: 200px;
  flex: 1 1 180px;
}

.painel-pulse-auto-hint {
  margin: 6px 0 0;
  font-size: 12px;
}

.painel-pulse-auto-days {
  max-width: 120px;
}

.painel-pulse-auto-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.painel-pulse-schedule {
  margin-top: 8px;
  font-size: 12px;
}

.painel-pulse-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.painel-pulse-campaign-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.painel-pulse-campaign-title {
  flex: 1 1 240px;
  min-width: 0;
}

.painel-pulse-campaign-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.painel-pulse-close-btn {
  font-size: 12px;
}

.painel-pulse-preliminary {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  background: #f0f7f3;
  border: 1px solid #cfeadb;
  color: #2d5240;
}

.painel-pulse-ergo-notice {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  background: #fff7e8;
  border: 1px solid #f2d79c;
  color: #7a5a12;
}

.painel-pulse-confidentiality {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff8ef;
  border: 1px solid #f0d9a8;
  color: #5c4510;
}
.painel-pulse-confidentiality-title {
  display: block;
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 800;
  color: #6b4e12;
}
.painel-pulse-confidentiality-text {
  margin: 0 0 8px;
  font-size: 12.5px;
  line-height: 1.45;
}
.painel-pulse-confidentiality-sectors {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #7a5f28;
}
.painel-pulse-confidentiality-sectors span {
  font-weight: 700;
}
.painel-pulse-confidentiality--executive {
  grid-column: 1 / -1;
  margin-top: 4px;
}
.painel-pulse-tag.is-protected {
  background: #fff3df;
  color: #8a5a10;
  border: 1px solid #efd49a;
}

.painel-pulse-normative {
  margin: 0 0 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.painel-pulse-normative-item {
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  background: #f3f6fb;
  border: 1px solid #c5d4ea;
  color: #1e3a5f;
}

.painel-pulse-survey-opt {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  margin: 0;
}

.painel-pulse-survey-opt input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}

.painel-pulse-survey-opt-num {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid #cfeadb;
  background: #fff;
  color: #2d5240;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  pointer-events: none;
}

.painel-pulse-survey-opt.is-active .painel-pulse-survey-opt-num,
.painel-pulse-survey-opt input:checked + .painel-pulse-survey-opt-num {
  background: #1d6b3b;
  border-color: #1d6b3b;
  color: #fff;
}

.painel-pulse-survey-opt.is-monthly:not(.is-active) .painel-pulse-survey-opt-num {
  border-style: dashed;
  border-color: #9bb8d4;
}

.painel-pulse-survey-opt.is-monthly.is-active .painel-pulse-survey-opt-num,
.painel-pulse-survey-opt.is-monthly input:checked + .painel-pulse-survey-opt-num {
  background: #1a4a7a;
  border-color: #1a4a7a;
  border-style: solid;
  color: #fff;
}

.painel-pulse-tag-survey.is-monthly {
  background: #eef6ff;
  border-color: #b8d4f0;
  color: #1a4a7a;
}

.painel-pulse-create-row--survey {
  margin: 0;
}

.painel-pulse-tag-survey {
  background: #eef6ff;
  border-color: #b8d4f0;
  color: #1a4a7a;
}

.painel-pulse-survey-tag {
  margin: 0 0 8px;
  font-size: 12px;
}

.painel-pulse-response-count.is-updated {
  color: #1d6b3b;
  font-weight: 700;
  transition: color 0.3s ease;
}

.painel-pulse-campaign-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.painel-btn-danger {
  color: #8b2e2e !important;
  border-color: #e8b4b4 !important;
}

.painel-btn-danger:hover {
  background: #fff5f5 !important;
}

.painel-pulse-warn {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  background: #fff8e6;
  border: 1px solid #e8d4a0;
  color: #5a4a1a;
}

.painel-pulse-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #e8f3ec;
  color: #2d6a4f;
}

.painel-pulse-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.painel-pulse-campaign-primary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.painel-pulse-campaign-more {
  margin-top: 4px;
  border-top: 1px solid var(--painel-border, #d7e2da);
  padding-top: 8px;
}

.painel-pulse-campaign-more > summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  color: var(--painel-muted, #5a6b60);
  list-style: none;
}

.painel-pulse-campaign-more > summary::-webkit-details-marker {
  display: none;
}

.painel-pulse-campaign-more-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

.painel-pulse-campaign-more-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.painel-pulse-results-reading {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}

.painel-pulse-results-reading .painel-kpi {
  min-height: 138px;
  padding: 12px 10px;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, var(--painel-neutral-soft, #fbfcfc) 100%);
  box-shadow: var(--painel-shadow, 0 1px 4px rgba(20, 80, 44, 0.06));
}

.painel-pulse-results-reading .painel-kpi strong {
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.005em;
  margin: 8px 0 auto;
  line-height: 1.05;
  color: var(--painel-text, #1d2a22);
}

.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse {
  border-top-width: 3px;
  border-top-color: var(--painel-accent, #1d6b3b);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
}

.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse strong,
.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse.is-good strong,
.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse.is-pending strong,
.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse.is-warn strong,
.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse.is-active strong {
  color: var(--painel-text, #1d2a22);
}

.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse.is-divergence-alert {
  border-top-color: var(--painel-critical, #c53030);
  background: linear-gradient(180deg, #ffffff 0%, #fbf3f3 100%);
}

.painel-pulse-results-reading .painel-kpi.painel-kpi--pulse.is-divergence-alert strong {
  color: var(--painel-critical-deep, #9b2c2c);
}

.painel-pulse-results-empty {
  margin: 0 0 14px;
}

.painel-pulse-agg-alert-hint {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.45;
}

.painel-pulse-results-table-wrap,
.painel-pulse-how-to-read,
.painel-pulse-context-notes {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid var(--painel-border, #d7e2da);
  border-radius: 12px;
  background: #fafcfb;
}

.painel-pulse-results-table-wrap > summary,
.painel-pulse-how-to-read > summary,
.painel-pulse-context-notes > summary {
  cursor: pointer;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--green-dark, #1d6b3b);
  list-style: none;
}

.painel-pulse-results-table-wrap > summary::-webkit-details-marker,
.painel-pulse-how-to-read > summary::-webkit-details-marker,
.painel-pulse-context-notes > summary::-webkit-details-marker {
  display: none;
}

.painel-pulse-results-table-body,
.painel-pulse-how-to-read-body,
.painel-pulse-context-notes-body {
  margin-top: 12px;
}

.painel-pulse-how-to-read-body p {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--painel-muted, #5a6b60);
}

.painel-pulse-how-to-read-body p:last-child {
  margin-bottom: 0;
}

@media (max-width: 720px) {
  .painel-pulse-results-reading {
    grid-template-columns: 1fr;
  }
}

.painel-pulse-hyperlink {
  flex: 1 1 220px;
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  color: #1a5c42;
  text-decoration: underline;
  word-break: break-all;
}

.painel-pulse-hyperlink:hover {
  color: #0d3d2a;
}

.painel-pulse-link-hint {
  margin: 0 0 12px;
  font-size: 12px;
}

.painel-pulse-link {
  flex: 1 1 220px;
  min-width: 0;
  font-size: 12px;
  cursor: pointer;
}

.painel-pulse-share-src {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: pre;
  word-wrap: normal;
  overflow-wrap: normal;
  border: 0;
}

.painel-pulse-campaign {
  position: relative;
}

.painel-pulse-qr-row {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.painel-pulse-qr {
  border: 1px solid var(--painel-border);
  border-radius: 8px;
  background: #fff;
}

.painel-pulse-q-list,
.painel-pulse-recs {
  margin: 0;
  padding-left: 18px;
  font-size: 13px;
  line-height: 1.45;
}

.painel-pulse-divergence {
  margin-top: 0;
  padding: 14px;
  border-radius: 12px;
  border: 1px solid var(--painel-border);
  background: #fcfdfc;
}

.painel-pulse-divergence.is-moderate {
  border-color: #e6c89a;
  background: #fffaf2;
}

.painel-pulse-divergence.is-relevant {
  border-color: #e8b4b4;
  background: #fff6f6;
}

.painel-pulse-divergence.is-relevant .painel-pulse-divergence-delta {
  color: var(--painel-critical-deep);
  border-color: var(--painel-critical-line);
}

@media (max-width: 720px) {
  .painel-pulse-section-head--detail .painel-pulse-detail-legend {
    text-align: left;
    max-width: none;
  }

  .painel-pulse-detail-head {
    flex-direction: column;
  }

  .painel-pulse-detail-badges {
    justify-content: flex-start;
  }
}

.painel-pulse-contacts-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 0.75rem;
}

.painel-pulse-file-label {
  cursor: pointer;
  margin: 0;
}

.painel-pulse-replace {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: var(--painel-muted, #666);
}

.painel-pulse-overview-table {
  font-size: 0.92rem;
}

.painel-pulse-tag.is-moderate {
  background: #fff8e6;
  color: #8a6d00;
}

.painel-pulse-tag.is-relevant {
  background: #fff0f0;
  color: #9b2c2c;
}

.painel-pulse-tag.is-coherent {
  background: #eef8ee;
  color: #2d6a2d;
}

@media (max-width: 720px) {
  .painel-pulse-results-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .painel-pulse-results-toolbar-filters {
    max-width: none;
  }

  .painel-pulse-period-dates {
    flex-wrap: wrap;
    align-items: flex-end;
  }

  .painel-pulse-period-sep {
    align-self: auto;
    padding-bottom: 0;
  }

  .painel-pulse-date-field {
    flex: 1 1 calc(50% - 24px);
  }

  .painel-pulse-date-input {
    max-width: none;
  }

  .painel-pulse-period-apply,
  .painel-pulse-sector-combo {
    flex: 1 1 calc(50% - 8px);
    align-self: stretch;
    max-width: none;
  }

  .painel-pulse-period-apply {
    width: auto;
  }

  .painel-pulse-sector-combo {
    min-width: 0;
  }

  .painel-pulse-sector-query,
  .painel-pulse-sector-select {
    max-width: none;
  }

  .painel-pulse-results-toolbar-actions {
    justify-content: flex-start;
  }
}

.painel-pulse-section-head h3 {
  margin: 0;
}

.painel-pulse-headcount-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.75rem;
  margin: 0.75rem 0;
}

.painel-pulse-headcount-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.painel-pulse-dispatch-table {
  font-size: 0.88rem;
}

.painel-pulse-dispatch-status.is-sent,
.painel-pulse-dispatch-status.is-simulated {
  color: #1d6b3b;
}

.painel-pulse-dispatch-status.is-error {
  color: #9b2c2c;
}

.painel-pulse-dispatch-status.is-skipped {
  color: #666;
}

.painel-pulse-dispatch {
  margin-top: 1rem;
}

.painel-pulse-headcount {
  margin-top: 0;
}

.painel-pulse-section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

.painel-pulse-sector-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.painel-pulse-sector-input {
  min-width: 140px;
  max-width: 200px;
}

.painel-pulse-plan-bar {
  margin: 0 0 0.75rem;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid #c8e6d0;
  background: #fcfdfc;
  font-size: 0.88rem;
  line-height: 1.45;
}

.painel-pulse-plan-main {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
}

.painel-pulse-plan-main strong {
  color: var(--green-dark);
}

.painel-pulse-plan-main span {
  color: var(--painel-muted, var(--muted));
}

.painel-pulse-plan-upgrade {
  margin: 8px 0 0;
  color: #9a5b00;
  font-weight: 600;
}

.painel-pulse-plan-bar.is-warn {
  border-color: #ead9b8;
  background: #fffaf2;
}

.painel-pulse-plan-bar.is-blocked {
  border-color: #e8b4b4;
  background: #fff6f6;
}

.painel-pulse-plan-bar.is-blocked .painel-pulse-plan-upgrade {
  color: #9b2c2c;
}

.painel-pulse-sector-actions {
  white-space: nowrap;
}

/* -- Alinhamento visual com o app mobile (layout inalterado) -- */
.painel-app {
  --painel-accent: var(--green);
  --painel-accent-dark: var(--green-dark);
  --painel-accent-soft: var(--green-light);
  --painel-accent-line: var(--border);
  --painel-text: var(--text);
  --painel-muted: var(--muted);
  --painel-border: var(--border);
  --painel-surface: var(--surface);
  --painel-good: var(--green-dark);
  --painel-shadow: 0 7px 24px rgba(20, 80, 44, 0.06);
  background: linear-gradient(135deg, #e9f2ec 0%, #f7f9f8 48%, #e3eee7 100%);
}

.painel-login {
  background: linear-gradient(135deg, #e9f2ec 0%, #f7f9f8 48%, #e3eee7 100%);
}

.painel-login-card {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.painel-topbar {
  background: var(--green-gradient);
  border-bottom: none;
  box-shadow: 0 4px 14px rgba(29, 107, 59, 0.22);
}

.painel-topbar .painel-brand strong {
  color: #fff;
}

.painel-topbar .painel-badge {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.painel-topbar .painel-toolbar-label {
  color: rgba(255, 255, 255, 0.85);
}

.painel-topbar .painel-toolbar-field .painel-toolbar-label {
  color: var(--green-dark);
}

.painel-topbar .painel-toolbar-field {
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(255, 255, 255, 0.35);
}

.painel-topbar .painel-toolbar-field .painel-select {
  color: var(--green-dark);
}

.painel-topbar .btn.secondary {
  background: rgba(255, 255, 255, 0.92);
  color: var(--green-dark);
  border-color: rgba(255, 255, 255, 0.45);
}

.painel-hero {
  background: var(--green-gradient);
  color: #fff;
  border: none;
  box-shadow: 0 10px 32px rgba(20, 80, 44, 0.14);
}

.painel-hero::before,
.painel-hero::after {
  display: none;
}

.painel-hero-kicker {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--green-dark) !important;
}

.painel-hero .painel-health-pill,
.painel-hero .painel-live-badge {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(255, 255, 255, 0.6);
  color: var(--green-dark) !important;
  box-shadow: 0 2px 10px rgba(20, 80, 44, 0.14);
}

.painel-hero .painel-health-pill.is-pending {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(255, 255, 255, 0.6);
  color: var(--green-dark) !important;
}

.painel-hero .painel-health-pill.is-pending .painel-health-dot {
  background: #64748b;
  box-shadow: 0 0 0 3px rgba(100, 116, 139, 0.28);
}

.painel-hero .painel-health-pill.is-attention {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(234, 217, 184, 0.95);
  color: var(--painel-warn) !important;
}

.painel-hero .painel-health-pill.is-critical {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(229, 196, 192, 0.95);
  color: var(--painel-critical-deep) !important;
}

.painel-hero .painel-live-dot {
  background: var(--green, #1d6b3b);
  box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.28);
}

body.painel-has-priority-live .painel-hero .painel-live-badge {
  background: rgba(255, 255, 255, 0.96);
  border-color: var(--painel-critical-line);
  color: var(--painel-critical-deep) !important;
}

.painel-hero h1,
.painel-hero-meta,
.painel-updated-at {
  color: #fff !important;
}

/* Faixa Pulso no hero: card claro + texto escuro (evita branco sobre fundo claro) */
.painel-hero .painel-pulse-strip {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(255, 255, 255, 0.55);
  color: var(--painel-text);
  box-shadow: 0 4px 16px rgba(20, 80, 44, 0.12);
}

.painel-hero .painel-pulse-strip strong {
  color: var(--green-dark);
}

.painel-hero .painel-pulse-strip .painel-muted {
  color: var(--painel-muted);
}

.painel-hero .painel-pulse-strip .btn.secondary {
  background: #fff;
  color: var(--green-dark);
  border-color: var(--green);
}

.painel-tab:not(.is-active):not(.painel-tab--dashboard) {
  color: var(--painel-muted);
  background: var(--painel-surface);
}

.painel-tabs .painel-tab.painel-tab--dashboard {
  background: linear-gradient(135deg, #14502c 0%, #1d6b3b 58%, #228a48 100%);
  color: #fff;
  border-color: #14502c;
  box-shadow: 0 2px 10px rgba(29, 107, 59, 0.22);
}

.painel-tabs .painel-tab.painel-tab--dashboard:hover {
  color: #fff;
  border-color: #14502c;
  background: linear-gradient(135deg, #166b35 0%, #228a48 58%, #2ca055 100%);
}

.painel-tabs .painel-tab.painel-tab--dashboard.is-active {
  box-shadow: 0 4px 16px rgba(29, 107, 59, 0.32);
}

.painel-card,
.painel-side-card,
.painel-kpi,
.painel-panel,
.painel-details {
  color: var(--painel-text);
}

.painel-card .painel-muted,
.painel-side-card .painel-muted,
.painel-panel .painel-muted,
.painel-details .painel-muted {
  color: var(--painel-muted);
}

.painel-card {
  border-radius: var(--radius-lg);
  box-shadow: 0 7px 24px rgba(20, 80, 44, 0.06);
  border: 1px solid var(--border);
}

.painel-card h3 {
  color: var(--green-dark);
}

/* Contorno dos cards de KPI "líderes": estava preso a .is-good, que só é
   adicionada quando o card tem algo pra sinalizar (ex.: "Em aberto"/"Pontos
   AEP" na Ocorrências do SST). Cards sem estado (ex.: "Ocorrências no
   período"/"Prioridade alta" com valor 0) nunca ganhavam a classe e ficavam
   com contorno neutro, destoando dos outros do mesmo grupo. */
.painel-kpi.painel-kpi--leaders {
  border-color: var(--green);
  background: linear-gradient(180deg, #fff 0%, var(--green-light) 100%);
}

/* Prioridade alta com risco de fato (ex.: highRisk > 0 no SST) continua em
   vermelho, não no verde padrão acima. */
.painel-kpi.painel-kpi--leaders.painel-kpi--critical {
  border-color: var(--painel-critical);
  background: linear-gradient(180deg, #fff 0%, var(--painel-critical-soft) 100%);
}

/* Foco psicossocial compacto (Gestao / RH) */
.psycho-focus-card {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid var(--painel-border);
  border-radius: 12px;
  background: var(--painel-neutral-soft);
}

.psycho-focus-card[hidden] {
  display: none !important;
}

.psycho-focus-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.painel-app .psycho-focus-title,
.psycho-focus-title {
  display: block;
  width: auto;
  margin: 0 0 10px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--painel-text) !important;
  font-size: var(--painel-fs-title);
  font-weight: 800;
  line-height: 1.35;
}

.psycho-focus-sub {
  margin: 4px 0 0;
  font-size: var(--painel-fs-meta);
  color: var(--painel-muted);
  line-height: 1.4;
}

.psycho-focus-verdict {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
  font-size: var(--painel-fs-micro);
  font-weight: 800;
  background: var(--painel-accent-soft);
  color: var(--painel-accent-dark);
  border: 1px solid var(--painel-accent-line);
  max-width: 100%;
  line-height: 1.3;
}

.psycho-focus-verdict.is-warn {
  background: var(--painel-warn-soft);
  color: var(--painel-warn);
  border-color: var(--painel-warn-line);
}

.psycho-focus-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.psycho-focus-item {
  border: 1px solid var(--painel-border);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  border-left: 3px solid var(--painel-accent-line);
}

.psycho-focus-item.is-critical {
  border-left-color: #b3261e;
  background: #fff6f5;
}

.psycho-focus-item.is-attention {
  border-left-color: #b45309;
  background: #fffaf0;
}

.psycho-focus-item.is-watch {
  border-left-color: #14502c;
  background: #fcfdfc;
}

.psycho-focus-item.is-ok {
  border-left-color: var(--painel-accent, #1d6b3b);
  background: #fff;
}

.psycho-focus-item-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: var(--painel-fs-body);
}

.psycho-focus-item-head strong {
  color: var(--painel-text);
}

.psycho-focus-item-head .psycho-focus-score {
  color: var(--painel-muted);
  font-weight: 800;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.psycho-focus-item.is-critical .psycho-focus-score {
  color: #b3261e;
}

.psycho-focus-item.is-attention .psycho-focus-score {
  color: #b45309;
}

.psycho-focus-item.is-watch .psycho-focus-score {
  color: #14502c;
}

.psycho-focus-item.is-ok .psycho-focus-score {
  color: #14502c;
}

.psycho-focus-item p {
  margin: 6px 0 0;
  font-size: var(--painel-fs-meta);
  color: var(--painel-muted);
  line-height: 1.45;
}

.psycho-focus-empty,
.psycho-focus-disclaimer {
  margin: 10px 0 0;
  font-size: var(--painel-fs-meta);
  color: var(--painel-muted);
  line-height: 1.4;
}

/* -------------------------------------------------------------------- */
/* Painéis internos (Gestão Executiva, RH/Admin, SST, T.I.) - hierarquia */
/* de títulos refinada. Três variações do mesmo bloco verde sólido      */
/* (label, título de seção, toggles "Leitura da rotina" / acordeões     */
/* atlas-fold e sst-fold) competiam pelo mesmo peso visual em todos os   */
/* quatro painéis - são o mesmo componente de painel.css. Cada nível     */
/* ganha um tratamento distinto; o verde cheio fica só para o herói.     */
/* Escopo: body.painel-app cobre painel/admin/sst/ti; o marketing site   */
/* (index.html etc.) não carrega painel.css, então não é afetado.        */
/* -------------------------------------------------------------------- */
body.painel-app .painel-executive-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  margin-bottom: 8px;
  background: none;
  box-shadow: none;
  border-radius: 0;
  color: var(--painel-accent-dark) !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.09em;
}

body.painel-app .painel-executive-label::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--painel-accent);
}

/* Título do card de abertura (Gestão Executiva "Leitura consolidada", Admin
   "Monitoramento RH"): mesma lacuna já corrigida no SST em a011f90 - a label
   global (11px) ficava menor que o próprio subtítulo abaixo dela (13px). */
body.painel-app .painel-consolidated-head .painel-executive-label {
  font-size: 16px;
}

body.painel-app .painel-section-heading {
  display: block;
  width: auto;
  background: none;
  box-shadow: none;
  border: none;
  border-left: 3px solid var(--painel-accent);
  border-bottom: 1px solid var(--painel-border);
  border-radius: 0;
  padding: 2px 0 12px 14px;
  margin: 4px 0 16px;
  color: var(--painel-text) !important;
  font-size: 17px;
}

body.painel-app .painel-executive-reading-toggle {
  background: var(--painel-neutral-soft);
  color: var(--painel-accent-dark) !important;
  border: 1px solid var(--painel-border);
  border-radius: 10px;
}

body.painel-app .painel-executive-reading-toggle:hover,
body.painel-app .painel-executive-reading-toggle:focus-visible {
  background: var(--painel-accent-soft);
  filter: none;
}

body.painel-app .painel-executive-reading-open-label,
body.painel-app .painel-executive-reading-sign::before {
  color: var(--painel-accent-dark);
  opacity: 0.85;
}

body.painel-app .painel-executive-reading-text {
  border-top-color: var(--painel-border);
}

/* Acordeões atlas-fold / sst-fold (RH e SST): mesmo bloco verde sólido, */
/* mesmo remédio - borda + texto verde, sem fundo cheio.                */
body.painel-app :is(.atlas-fold, .sst-fold) > summary {
  background: none;
  color: var(--painel-accent-dark) !important;
  border: 1px solid var(--painel-border);
  border-radius: 10px;
  box-shadow: none;
}

body.painel-app :is(.atlas-fold, .sst-fold)[open] > summary {
  border-radius: 10px 10px 0 0;
  border-bottom-color: transparent;
}

body.painel-app :is(.atlas-fold, .sst-fold) > summary:hover {
  background: var(--painel-accent-soft);
  filter: none;
}

body.painel-app :is(.atlas-fold, .sst-fold) > summary::after {
  color: var(--painel-accent-dark);
}

body.painel-app :is(.atlas-fold, .sst-fold) {
  box-shadow: none;
}

body.painel-app :is(.atlas-fold, .sst-fold) > .painel-details-body,
body.painel-app .sst-fold-body {
  border-radius: 0 0 10px 10px;
}

/* -------------------------------------------------------------------- */
/* KPIs como instrumento, não caixas idênticas com barra colorida no    */
/* topo. Um "sinal" (ponto) substitui a barra - vocabulário do próprio   */
/* produto (semáforo de status) - e os cartões viram células de uma      */
/* única régua, separadas por fio, não sombras empilhadas.               */
/* Aplica-se aos quatro painéis: leitura consolidada (executivo/RH/SST)  */
/* e o card de status (T.I.), que reaproveitam o mesmo .painel-kpi.      */
/* -------------------------------------------------------------------- */
body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi {
  position: relative;
  min-height: 128px;
  padding: 20px 16px 16px 20px;
  border-top-width: 1px;
  border-top-color: var(--painel-border);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 21px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--painel-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--painel-accent) 14%, transparent);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi.is-warn::before {
  background: var(--painel-warn);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--painel-warn) 18%, transparent);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi.is-pending::before {
  background: var(--painel-muted);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--painel-muted) 14%, transparent);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi.is-good::before {
  background: var(--painel-good, var(--painel-accent));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--painel-accent) 14%, transparent);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi.painel-kpi--critical::before {
  background: var(--painel-critical);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--painel-critical) 16%, transparent);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi > span {
  padding-left: 14px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--painel-muted);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi strong {
  margin-top: 12px;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi.painel-kpi--critical.is-alert strong {
  color: var(--painel-critical-deep);
}

body.painel-app :is(.painel-consolidated-read, .ti-overview-card) .painel-kpi small {
  padding-left: 14px;
  margin-top: 10px;
  font-size: 11.5px;
}

/* Acima de 1100px o grid de KPIs do executivo/RH tem 5 colunas fixas   */
/* (ver breakpoint em .painel-kpi-grid--leaders/--pulse) - só nesse      */
/* layout os cartões se fundem numa régua única com fios verticais.      */
/* O card de status do T.I. (ti-kpi-grid) já é denso o bastante para      */
/* virar régua a partir de 3 colunas (ver breakpoint em ti.css).         */
@media (min-width: 1101px) {
  body.painel-app .painel-consolidated-read .painel-kpi-grid--leaders,
  body.painel-app .painel-consolidated-read .painel-kpi-grid--pulse,
  body.painel-app .ti-overview-card .ti-kpi-grid {
    gap: 0;
    background: var(--painel-neutral-soft);
    border: 1px solid var(--painel-border);
    border-radius: 14px;
    overflow: hidden;
  }

  body.painel-app .painel-consolidated-read .painel-kpi-grid--leaders .painel-kpi,
  body.painel-app .painel-consolidated-read .painel-kpi-grid--pulse .painel-kpi,
  body.painel-app .ti-overview-card .ti-kpi-grid .painel-kpi {
    background: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }

  body.painel-app .painel-consolidated-read .painel-kpi-grid--leaders .painel-kpi:not(:last-child),
  body.painel-app .painel-consolidated-read .painel-kpi-grid--pulse .painel-kpi:not(:last-child),
  body.painel-app .ti-overview-card .ti-kpi-grid .painel-kpi:not(:last-child) {
    border-right: 1px solid var(--painel-border);
  }
}

/* -- AO VIVO (Gestão Executiva): hora como coluna de registro, não     */
/* legenda solta. Elemento exclusivo do painel executivo - inofensivo    */
/* nos demais painéis, que não têm essa marcação.                        */
body.painel-app .painel-live-body time {
  display: inline-block;
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: var(--painel-accent-dark);
  opacity: 0.75;
}

/* -- Bloco de Notas (Gestão Executiva): campo como entrada de dados    */
/* (fundo levemente recuado), não um cartão em branco igual aos demais. */
body.painel-app .painel-important-notes-input {
  background: var(--painel-neutral-soft);
  transition: background 0.15s ease, border-color 0.15s ease;
}

body.painel-app .painel-important-notes-input:focus {
  background: #fff;
}
