/* ═══════════════════════════════════════════════════════════
   ALLREGTECH — Design System v2
   Tema: Institucional Refinado · Roxo Profundo + Dourado
   Tipografia: Outfit (títulos/UI) + Source Serif 4 (brand)
═══════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Sora:wght@400;500;600;700;800&family=Source+Serif+4:wght@600;700&display=swap');

/* ── TOKENS ──────────────────────────────────────────────── */
:root {
  /* Cores primárias */
  --primary:        #6d1f6c;
  --primary-dark:   #4e1550;
  --primary-light:  #8e3a8d;
  --primary-muted:  #f0e5f0;
  --primary-glass:  rgba(109,31,108,0.08);

  /* Acento dourado */
  --accent:         #e6b800;
  --accent-dark:    #b8900a;
  --accent-light:   #ffd84d;
  --accent-muted:   #fff8e0;

  /* Superfícies */
  --bg-body:        #f5eef5;
  --bg-panel:       #faf6fa;
  --surface:        #ffffff;
  --surface-2:      #f7f2f7;
  --surface-3:      #ede4ed;

  /* Bordas */
  --border:         #e2d4e2;
  --border-strong:  #c9b5c9;

  /* Campos de formulário (fundo levemente cinza + borda visível) — padrão do sistema */
  --field-bg:       #eef1f6;
  --field-border:   #c7cedb;

  /* Fundo dos CARDS (painel continua branco; só os cards ficam em cinza leve) */
  --card-bg:        #f7f7f7;

  /* Largura padrão dos modais (global, para ficarem uniformes) */
  --modal-w:        820px;

  /* Texto */
  --text-main:      #1f0b1f;
  --text-muted:     #7a5a7a;
  --text-light:     #b09ab0;

  /* Semânticas */
  --danger:         #c0392b;
  --danger-muted:   #fdf0f0;
  --success:        #1e7e48;
  --success-muted:  #edfaf4;
  --warning:        #c27c00;
  --warning-muted:  #fff8e6;
  --info:           #1556a4;
  --info-muted:     #eef4ff;

  /* Sombras */
  --shadow-xs:  0 1px 3px rgba(109,31,108,0.07);
  --shadow-sm:  0 2px 8px rgba(109,31,108,0.10);
  --shadow:     0 4px 20px rgba(109,31,108,0.13);
  --shadow-lg:  0 8px 36px rgba(109,31,108,0.17);
  --shadow-xl:  0 16px 60px rgba(109,31,108,0.22);

  /* Geometria */
  --radius-xs:  6px;
  --radius-sm:  10px;
  --radius:     16px;
  --radius-lg:  22px;

  /* Tipografia */
  --font-ui:    'Outfit', 'Segoe UI', sans-serif;
  --font-brand: 'Source Serif 4', Georgia, serif;
  --font-login: 'Sora', 'Outfit', 'Segoe UI', sans-serif;

  /* Botões */
  --btn-font:        0.875rem;
  --btn-font-sm:     0.8125rem;
  --btn-font-mini:   0.75rem;
  --btn-pad-y:       9px;
  --btn-pad-x:       18px;
  --btn-pad-y-sm:    5px;
  --btn-pad-x-sm:    12px;
  --btn-pad-y-mini:  3px;
  --btn-pad-x-mini:  8px;
  --btn-radius:      var(--radius-sm);
  --btn-weight:      600;
  --btn-line-height: 1.4;
  --btn-height:      36px;
  --btn-height-sm:   28px;
  --viewport-footer-space: 56px;
  --app-viewport-height: calc(100vh - var(--viewport-footer-space));
}

@supports (height: 100dvh) {
  :root {
    --app-viewport-height: calc(100dvh - var(--viewport-footer-space));
  }
}

/* ── RESET BASE ────────────────────────────────────────────── */
*, *::before, *::after {
  margin: 0; padding: 0; box-sizing: border-box;
  font-family: var(--font-ui);
}

html, body { width: 100%; height: 100%; }
html { font-size: 16px; }

body {
  background: var(--bg-body);
  background-image:
    radial-gradient(ellipse 70% 50% at 0% 0%,   rgba(109,31,108,0.08) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 100% 100%,rgba(230,184,0,0.07)  0%, transparent 60%),
    radial-gradient(ellipse 50% 70% at 50% 50%,  rgba(109,31,108,0.03) 0%, transparent 80%);
  background-repeat: no-repeat;
  background-size: cover;
  color: var(--text-main);
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  padding-bottom: var(--viewport-footer-space);
  line-height: 1.5;
}

body.master-fullscreen-active {
  overflow: hidden;
  padding-bottom: 0;
}

/* Global visual controls */
.ui-global-controls {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1400;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.94);
  box-shadow: var(--shadow);
  backdrop-filter: blur(8px);
  width: min(270px, calc(100vw - 32px));
  align-items: stretch;
}

.ui-global-controls.is-collapsed {
  width: auto;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.ui-global-main-toggle {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--primary-dark);
  font-size: 0.88rem;
  font-weight: 800;
  padding: 0 16px;
  line-height: 1.2;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .12s ease;
  box-shadow: 0 12px 28px rgba(76,18,76,0.16);
  gap: 8px;
  justify-content: center;
}

.ui-global-main-toggle:hover {
  transform: translateY(-1px);
  border-color: var(--primary);
  background: linear-gradient(135deg, #f1e4f0 0%, #e7d7e7 100%);
}

.ui-global-controls:not(.is-collapsed) .ui-global-main-toggle {
  align-self: flex-end;
  width: auto;
  min-width: 96px;
  min-height: 38px;
  padding: 0 14px;
  background: var(--primary-dark);
  color: #fff;
  border-color: var(--primary-dark);
}

.ui-global-controls-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 640px;
  opacity: 1;
  overflow: hidden;
  transition: max-height .2s ease, opacity .2s ease;
}

.ui-global-controls.is-collapsed .ui-global-controls-body {
  display: none;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
}

.task-notification-widget {
  bottom: 86px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: fixed;
  right: 18px;
  z-index: 1395;
}

.task-notification-widget.hidden {
  display: none;
}

.task-notification-toggle {
  align-items: center;
  align-self: flex-end;
  background: #fff;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(76, 18, 76, 0.16);
  color: var(--primary-dark);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.9rem;
  font-weight: 850;
  gap: 8px;
  min-height: 46px;
  padding: 0 16px;
  position: relative;
  transition: background .2s ease, border-color .2s ease, transform .12s ease;
}

.task-notification-toggle:hover {
  background: linear-gradient(135deg, #f1e4f0 0%, #e7d7e7 100%);
  border-color: var(--primary);
  transform: translateY(-1px);
}

.task-notification-toggle svg {
  height: 18px;
  width: 18px;
}

.task-notification-widget.has-unread .task-notification-toggle {
  background: linear-gradient(135deg, var(--primary) 0%, #0f4c81 100%);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}

.task-notification-badge {
  align-items: center;
  background: #ef4444;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 0.68rem;
  font-weight: 900;
  justify-content: center;
  min-height: 20px;
  min-width: 20px;
  padding: 0 5px;
  position: absolute;
  right: -4px;
  top: -7px;
}

.task-notification-badge.hidden {
  display: none;
}

.task-notification-panel {
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid var(--border);
  border-radius: 16px;
  bottom: 58px;
  box-shadow: 0 22px 56px rgba(35, 10, 38, 0.22);
  overflow: hidden;
  position: absolute;
  right: 0;
  width: min(390px, calc(100vw - 36px));
}

.task-notification-panel.hidden {
  display: none;
}

.task-notification-panel header {
  align-items: center;
  background: linear-gradient(135deg, rgba(118, 28, 119, 0.1), rgba(15, 76, 129, 0.08));
  border-bottom: 1px solid rgba(118, 28, 119, 0.12);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 14px 16px;
}

.task-notification-panel header strong,
.task-notification-panel header span {
  display: block;
}

.task-notification-panel header strong {
  color: var(--text, #1f2937);
  font-size: 1rem;
}

.task-notification-panel header span {
  color: var(--text-muted, #64748b);
  font-size: 0.8rem;
  margin-top: 2px;
}

.task-notification-close {
  align-items: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text, #1f2937);
  cursor: pointer;
  display: inline-flex;
  font-size: 1rem;
  font-weight: 900;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.task-notification-list {
  display: grid;
  gap: 8px;
  max-height: min(390px, calc(100vh - 260px));
  overflow-y: auto;
  padding: 12px;
}

.task-notification-item {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text, #1f2937);
  cursor: pointer;
  display: grid;
  gap: 10px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 12px;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, transform .12s ease;
}

.task-notification-item:hover {
  border-color: rgba(118, 28, 119, 0.32);
  box-shadow: 0 10px 22px rgba(76, 18, 76, 0.12);
  transform: translateY(-1px);
}

.task-notification-item strong,
.task-notification-item small {
  display: block;
}

.task-notification-item strong {
  font-size: 0.88rem;
  line-height: 1.35;
}

.task-notification-item small {
  color: var(--text-muted, #64748b);
  font-size: 0.74rem;
  margin-top: 4px;
}

.task-notification-dot {
  background: #cbd5e1;
  border-radius: 999px;
  height: 10px;
  margin-top: 4px;
  width: 10px;
}

.task-notification-item.is-new {
  background: #fff7ed;
  border-color: #fdba74;
}

.task-notification-item.is-new .task-notification-dot {
  background: #ea580c;
}

.task-notification-empty {
  border: 1px dashed rgba(118, 28, 119, 0.28);
  border-radius: 10px;
  color: var(--text-muted, #64748b);
  padding: 18px;
  text-align: center;
}

.task-notification-panel footer {
  align-items: center;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 12px;
}

.task-notification-widget.has-new-alert .task-notification-toggle {
  animation: taskNotificationPop .7s ease;
}

@keyframes taskNotificationPop {
  0%, 100% { transform: translateY(0) scale(1); }
  35% { transform: translateY(-3px) scale(1.04); }
  70% { transform: translateY(0) scale(0.98); }
}

.ui-a11y-extra {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ui-font-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 6px;
  align-items: center;
}

.ui-font-btn {
  min-width: 0;
}

.ui-font-scale-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text-muted);
  min-width: 2.6rem;
  text-align: center;
}

.ui-global-toggle {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: var(--surface);
  color: var(--primary-dark);
  font-size: 0.92rem;
  font-weight: 700;
  padding: 0 10px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .12s ease;
  gap: 8px;
  justify-content: flex-start;
}

.ui-global-toggle[data-label]::after {
  content: attr(data-label);
  color: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: left;
}

.ui-global-toggle:hover {
  transform: translateY(-1px);
  background: var(--primary-muted);
}

.ui-global-toggle.is-active {
  color: #fff;
  border-color: var(--primary-dark);
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);
  box-shadow: 0 4px 14px rgba(109,31,108,0.28);
}

.ui-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ui-global-toggle.is-disabled {
  opacity: 0.45;
}

.ui-global-main-toggle,
.ui-global-toggle {
  margin: 0;
}

/* Accessibility mode */
body.accessibility-mode {
  font-size: 1.06rem;
  line-height: 1.68;
}

body.accessibility-mode .small {
  font-size: 0.94rem;
}

body.accessibility-mode .btn,
body.accessibility-mode button,
body.accessibility-mode .ui-global-main-toggle,
body.accessibility-mode .ui-global-toggle {
  min-height: 40px;
  font-size: 0.9rem;
}

body.accessibility-mode input,
body.accessibility-mode select,
body.accessibility-mode textarea {
  min-height: 44px;
  font-size: 1rem;
  line-height: 1.45;
}

body.accessibility-mode {
  letter-spacing: 0.014em;
  word-spacing: 0.05em;
}

/* Alto contraste */
body.high-contrast-mode {
  --bg-body: #000000;
  --bg-panel: #000000;
  --surface: #000000;
  --field-bg: #000000;
  --field-border: #ffffff;
  --card-bg: #000000;
  --surface-2: #050505;
  --surface-3: #0a0a0a;
  --border: #ffffff;
  --border-strong: #ffff00;
  --text-main: #ffffff;
  --text-muted: #ffff00;
  --text-light: #f7f7a0;
  background: #000 !important;
  color: #fff !important;
}

body.high-contrast-mode .panel-container,
body.high-contrast-mode .card,
body.high-contrast-mode .modal-box,
body.high-contrast-mode .intranet-card,
body.high-contrast-mode .intranet-notice,
body.high-contrast-mode input,
body.high-contrast-mode select,
body.high-contrast-mode textarea,
body.high-contrast-mode table th,
body.high-contrast-mode td {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.high-contrast-mode .small,
body.high-contrast-mode .meta,
body.high-contrast-mode .intranet-header-sub {
  color: #ffff00 !important;
}

body.high-contrast-mode .btn {
  background: #111 !important;
  color: #fff !important;
  border: 2px solid #fff !important;
}

body.high-contrast-mode .btn-primary,
body.high-contrast-mode .btn-accent {
  background: #ffff00 !important;
  color: #000 !important;
  border-color: #ffff00 !important;
}

body.high-contrast-mode .btn-danger {
  background: #ff3b30 !important;
  color: #fff !important;
  border-color: #fff !important;
}

/* Espaçamento de texto */
body.text-spacing-mode {
  line-height: 1.78;
  letter-spacing: 0.02em;
  word-spacing: 0.06em;
}

body.text-spacing-mode p,
body.text-spacing-mode li,
body.text-spacing-mode .small,
body.text-spacing-mode label,
body.text-spacing-mode td {
  line-height: 1.78;
}

/* Redução de movimento */
body.reduced-motion *,
body.reduced-motion *::before,
body.reduced-motion *::after {
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001ms !important;
  scroll-behavior: auto !important;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Mídia pausada (apoio visual) */
body.pause-media-mode iframe[src*="youtube"],
body.pause-media-mode iframe[src*="vimeo"] {
  opacity: 0.18;
}

body.pause-media-mode img[src*=".gif"] {
  filter: grayscale(1) contrast(1.05) brightness(0.72);
}

/* Dark mode */
body.theme-dark {
  color-scheme: dark;
  --primary: #8a74a1;
  --primary-dark: #6f5b85;
  --primary-light: #a896ba;
  --primary-muted: #2b2531;
  --primary-glass: rgba(138,116,161,0.2);
  --accent: #c5ad7a;
  --accent-dark: #a58d5d;
  --accent-light: #d7c39b;
  --accent-muted: #2a261f;
  --bg-body: #121212;
  --bg-panel: #1a1a1a;
  --surface: #1e1e1e;
  --field-bg: #262626;
  --field-border: #3a3a3a;
  --card-bg: #242424;
  --surface-2: #252525;
  --surface-3: #2c2c2c;
  --border: #2d2d2d;
  --border-strong: #333333;
  --text-main: #e0e0e0;
  --text-muted: #a0a0a0;
  --text-light: #8c8c8c;
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.42);
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.48);
  --shadow: 0 6px 18px rgba(0,0,0,0.5);
  --shadow-lg: 0 10px 28px rgba(0,0,0,0.56);
  --shadow-xl: 0 16px 40px rgba(0,0,0,0.62);
  background: var(--bg-body);
  background-image: none;
}

body.theme-dark,
body.theme-dark h1,
body.theme-dark h2,
body.theme-dark h3,
body.theme-dark h4,
body.theme-dark h5,
body.theme-dark h6,
body.theme-dark p,
body.theme-dark label,
body.theme-dark td,
body.theme-dark th,
body.theme-dark span,
body.theme-dark li,
body.theme-dark strong {
  color: var(--text-main);
}

body.theme-dark .small,
body.theme-dark .meta,
body.theme-dark .sub,
body.theme-dark .appt-status {
  color: var(--text-muted) !important;
}

body.theme-dark .panel-container,
body.theme-dark .card,
body.theme-dark .modal-box,
body.theme-dark .intranet-card,
body.theme-dark .intranet-sidebar,
body.theme-dark .fat-card,
body.theme-dark .fat-modal-box {
  background: var(--surface) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

body.theme-dark :is(.panel-container, .card, .modal-box, .intranet-card, .intranet-sidebar, .fat-card, .fat-modal-box) :is(h1, h2, h3, h4, h5, h6, p, span, label, strong, li, td, th) {
  color: var(--text-main) !important;
}

body.theme-dark :is(.panel-container, .card, .modal-box, .intranet-card, .intranet-sidebar, .fat-card, .fat-modal-box) .small {
  color: var(--text-muted) !important;
}

body.theme-dark .intranet-notice,
body.theme-dark .intranet-notice.intranet-style-standard,
body.theme-dark .intranet-notice.intranet-style-info,
body.theme-dark .intranet-notice.intranet-style-urgent,
body.theme-dark .intranet-notice.intranet-style-success,
body.theme-dark .intranet-notice.intranet-style-celebration {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
}

body.theme-dark .intranet-notice .meta > span,
body.theme-dark .notice-pill,
body.theme-dark .notice-pill-pin,
body.theme-dark .notice-pill-style {
  background: var(--surface-3) !important;
  color: var(--text-muted) !important;
  border-color: var(--border-strong) !important;
}

body.theme-dark .intranet-notice .body,
body.theme-dark .intranet-notice-title,
body.theme-dark .notice-carousel-controls {
  color: var(--text-main) !important;
}

body.theme-dark input,
body.theme-dark select,
body.theme-dark textarea {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

body.theme-dark .input,
body.theme-dark .modal-overlay input,
body.theme-dark .modal-overlay select,
body.theme-dark .modal-overlay textarea {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

body.theme-dark select option {
  background: #1e1e1e;
  color: #e0e0e0;
}

body.theme-dark input::placeholder,
body.theme-dark textarea::placeholder {
  color: var(--text-light);
}

body.theme-dark table th {
  background: #2a2a2a;
  color: var(--text-main);
}

body.theme-dark tr:hover td {
  background: #242424;
}

body.theme-dark hr,
body.theme-dark .divider {
  border-color: var(--border);
}

body.theme-dark [style*="background:#fff"],
body.theme-dark [style*="background: #fff"],
body.theme-dark [style*="background:#ffffff"],
body.theme-dark [style*="background: #ffffff"],
body.theme-dark [style*="background:#f8fafc"],
body.theme-dark [style*="background:#f1f5f9"],
body.theme-dark [style*="background:#f0e5f0"],
body.theme-dark [style*="background:#ecfeff"],
body.theme-dark [style*="background:rgb(255"],
body.theme-dark [style*="background: rgba(255"],
body.theme-dark [style*="background-color: #fff"],
body.theme-dark [style*="background-color:#fff"] {
  background: var(--surface-2) !important;
}

body.theme-dark [style*="color:#0f172a"],
body.theme-dark [style*="color: #0f172a"],
body.theme-dark [style*="color:#1e293b"],
body.theme-dark [style*="color:#111827"],
body.theme-dark [style*="color:#1f2937"],
body.theme-dark [style*="color:#334155"],
body.theme-dark [style*="color:#374151"],
body.theme-dark [style*="color:#475569"],
body.theme-dark [style*="color:#64748b"] {
  color: var(--text-main) !important;
}

body.theme-dark [style*="border:1px solid #cbd5e1"],
body.theme-dark [style*="border: 1px solid #cbd5e1"],
body.theme-dark [style*="border:1px solid #d1d5db"],
body.theme-dark [style*="border:1px solid #e2e8f0"],
body.theme-dark [style*="border:1px solid #ddd"],
body.theme-dark [style*="border-color: #e2e8f0"],
body.theme-dark [style*="border-color:#e2e8f0"] {
  border-color: var(--border) !important;
}

/* Dark mode — recepção (cards e campos com estilos fixos claros) */
body.theme-dark #view-reception .rec-search-card,
body.theme-dark #view-reception .rec-actions-card,
body.theme-dark #view-reception .rec-summary-card,
body.theme-dark #view-reception .rec-content-card,
body.theme-dark #view-reception #rec-empty-state {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}

body.theme-dark #view-reception .rec-label,
body.theme-dark #view-reception #rec-summary-meta,
body.theme-dark #view-reception #rec-search-status {
  color: var(--text-muted) !important;
}

body.theme-dark #view-reception #rec-summary-name,
body.theme-dark #view-reception .rec-list-title,
body.theme-dark #view-reception .rec-ticket-code {
  color: var(--text-main) !important;
}

body.theme-dark #view-reception .rec-field,
body.theme-dark #view-reception input,
body.theme-dark #view-reception select,
body.theme-dark #view-reception textarea {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

body.theme-dark #view-reception .rec-list-item {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
}

/* Dark mode — agenda admin (calendário + painel da direita) */
body.theme-dark #adm-tab-agenda > div > div {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}

body.theme-dark #adm-tab-agenda [style*="background:#f8fafc"],
body.theme-dark #adm-tab-agenda [style*="background: #f8fafc"],
body.theme-dark #adm-tab-agenda [style*="background:#fff"],
body.theme-dark #adm-tab-agenda [style*="background: #fff"] {
  background: var(--surface-2) !important;
}

body.theme-dark #adm-tab-agenda [style*="color:#94a3b8"],
body.theme-dark #adm-tab-agenda [style*="color: #94a3b8"],
body.theme-dark #adm-tab-agenda [style*="color:#64748b"],
body.theme-dark #adm-tab-agenda [style*="color:#475569"] {
  color: var(--text-muted) !important;
}

body.theme-dark #calendar-days button {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
  box-shadow: none !important;
}

body.theme-dark #calendar-days button[style*="#bbf7d0"] {
  background: #2f4737 !important;
  color: #d8f0df !important;
  border-color: #44644f !important;
}

body.theme-dark #calendar-days button[style*="#f0fdf4"] {
  background: #2b3e31 !important;
  color: #d8f0df !important;
  border-color: #3d5c49 !important;
}

body.theme-dark #calendar-days button[style*="#f0f9ff"] {
  background: #2a3742 !important;
  color: #cfe4f7 !important;
  border-color: #3f5467 !important;
}

body.theme-dark #calendar-days button[style*="var(--primary)"] {
  background: #5f4378 !important;
  color: #f7efff !important;
  border-color: #7d5f98 !important;
}

body.theme-dark #details-content [style*="background:#f8fafc"],
body.theme-dark #details-content [style*="background: #f8fafc"],
body.theme-dark #details-content [style*="background:#f0fdf4"],
body.theme-dark #details-content [style*="background:#fefce8"],
body.theme-dark #details-content [style*="background:#fef2f2"] {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* Dark mode — tabela de usuários */
body.theme-dark #table-users tbody td,
body.theme-dark #table-users tbody td * {
  color: var(--text-main) !important;
}

.unit-links-list {
  display: grid;
  gap: 10px;
}

.unit-link-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  background: var(--surface, #fff);
}

.unit-link-row-title {
  font-weight: 800;
  color: var(--primary-dark, #4a154b);
}

.unit-link-row-meta {
  margin-top: 3px;
  font-size: 0.78rem;
  color: var(--text-muted, #64748b);
}

/* Regulação assistencial */
#view-regulacao .reg-shell {
  max-width: 1500px;
  width: 100%;
  margin: 18px auto;
  background: var(--surface, #fff);
  padding: 24px 28px;
  border-radius: var(--radius, 14px);
  box-shadow: var(--shadow-lg, 0 18px 42px rgba(15, 23, 42, 0.10));
  border: 1px solid var(--border, #e6e9f0);
  box-sizing: border-box;
}

#view-regulacao .reg-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  background: linear-gradient(135deg, var(--primary) 0%, #124c8a 100%);
  color: #fff;
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.16);
}

#view-regulacao .reg-kicker {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  color: rgba(255,255,255,0.76);
}

#view-regulacao .reg-header h2 {
  margin: 3px 0 4px;
  font-size: 1.35rem;
  color: #fff;
}

#view-regulacao .reg-sub,
#view-regulacao .reg-user {
  color: rgba(255,255,255,0.88);
  font-size: 0.84rem;
}

#view-regulacao .reg-user {
  margin-top: 5px;
  font-weight: 700;
}

#view-regulacao .reg-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

#view-regulacao .reg-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#view-regulacao .reg-actions svg,
#view-regulacao .reg-filter-band svg {
  width: 14px;
  height: 14px;
}

#view-regulacao .reg-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: 14px 0;
  padding-bottom: 2px;
}

#view-regulacao .reg-tab {
  border: 1px solid var(--border);
  background: var(--surface, #fff);
  color: var(--text-muted, #64748b);
  border-radius: 8px;
  padding: 9px 12px;
  font-weight: 800;
  white-space: nowrap;
}

#view-regulacao .reg-tab.active {
  background: var(--primary, #6d1f6c);
  color: #fff;
  border-color: var(--primary, #6d1f6c);
}

#view-regulacao .reg-filter-band {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(160px, 0.8fr) minmax(180px, 1fr) minmax(130px, 0.7fr) auto auto;
  gap: 10px;
  align-items: end;
  background: var(--surface-2, #f7f8fb);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 14px;
}

#view-regulacao label,
#reg-modal label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--text-muted, #64748b);
}

#view-regulacao input,
#view-regulacao select,
#view-regulacao textarea,
#reg-modal input,
#reg-modal select,
#reg-modal textarea {
  border: 1px solid var(--field-border, var(--border));
  border-radius: 8px;
  padding: 9px 10px;
  font-size: 0.86rem;
  background: var(--field-bg, var(--surface, #fff));
  color: var(--text-main, #0f172a);
  min-width: 0;
}
#view-regulacao input:focus,
#view-regulacao select:focus,
#view-regulacao textarea:focus,
#reg-modal input:focus,
#reg-modal select:focus,
#reg-modal textarea:focus {
  border-color: var(--primary);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(109, 31, 108, 0.10);
}

#view-regulacao textarea,
#reg-modal textarea {
  resize: vertical;
}

#view-regulacao .reg-content {
  min-height: 360px;
}

#view-regulacao .reg-task-shell {
  width: min(1840px, calc(100vw - 40px));
  margin: 18px auto 64px;
}

#view-regulacao .reg-task-shell .reg-header {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

#view-regulacao .reg-task-shell .reg-content {
  min-height: 0;
  padding: 14px 0 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

#view-regulacao .reg-loading,
#view-regulacao .reg-empty,
#view-regulacao .reg-error {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 18px;
  color: var(--text-muted, #64748b);
  font-weight: 700;
}

#view-regulacao .reg-error {
  color: #b91c1c;
  border-color: #fecaca;
  background: #fef2f2;
}

#view-regulacao .reg-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

#view-regulacao .reg-metric {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 13px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 10px;
  align-items: center;
}

#view-regulacao .reg-metric-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #e0f2fe;
  color: #0369a1;
  grid-row: span 2;
}

#view-regulacao .reg-metric span {
  font-size: 0.75rem;
  color: var(--text-muted, #64748b);
  font-weight: 800;
}

#view-regulacao .reg-metric strong {
  font-size: 1.45rem;
  color: var(--text-main, #0f172a);
}

#view-regulacao .reg-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(150px, 0.7fr));
  gap: 12px;
  margin-bottom: 14px;
}

#view-regulacao .reg-hero-card,
#view-regulacao .reg-hero-insight {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid rgba(15, 79, 149, 0.12);
  background: #fff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

#view-regulacao .reg-hero-card {
  padding: 18px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(15, 79, 149, 0.96), rgba(21, 128, 61, 0.86)),
    #0f4f95;
}

#view-regulacao .reg-hero-card span,
#view-regulacao .reg-hero-card p,
#view-regulacao .reg-hero-insight span {
  display: block;
  font-size: 0.78rem;
  font-weight: 850;
}

#view-regulacao .reg-hero-card strong {
  display: block;
  margin: 6px 0;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1;
}

#view-regulacao .reg-hero-card p {
  margin: 0;
  color: rgba(255,255,255,0.84);
}

#view-regulacao .reg-hero-insight {
  display: grid;
  gap: 8px;
  padding: 15px;
  align-content: center;
}

#view-regulacao .reg-hero-insight svg {
  width: 22px;
  height: 22px;
  color: #0f4f95;
}

#view-regulacao .reg-hero-insight span {
  color: var(--text-muted, #64748b);
}

#view-regulacao .reg-hero-insight strong {
  color: var(--text-main, #0f172a);
  font-size: 1.35rem;
}

#view-regulacao .reg-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(360px, 1.1fr) minmax(320px, 0.9fr);
  gap: 14px;
}

#view-regulacao .reg-span-2 {
  grid-column: span 2;
}

#view-regulacao .reg-board {
  display: grid;
  grid-template-columns: minmax(300px, 0.8fr) minmax(420px, 1.2fr);
  gap: 14px;
}

#view-regulacao .reg-panel {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px;
}

#view-regulacao .reg-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

#view-regulacao .reg-panel h3 {
  margin: 0;
  color: var(--text-main, #0f172a);
  font-size: 1rem;
}

#view-regulacao .reg-chart-panel {
  min-height: 260px;
}

#view-regulacao .reg-donut-layout {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

#view-regulacao .reg-donut {
  width: 178px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,0.06), 0 18px 34px rgba(15,23,42,0.12);
}

#view-regulacao .reg-donut > div {
  width: 104px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  align-content: center;
  background: var(--surface, #fff);
  border: 1px solid var(--border);
}

#view-regulacao .reg-donut strong,
#view-regulacao .reg-donut span {
  display: block;
}

#view-regulacao .reg-donut strong {
  color: var(--text-main, #0f172a);
  font-size: 1.55rem;
  line-height: 1;
}

#view-regulacao .reg-donut span {
  color: var(--text-muted, #64748b);
  font-size: 0.68rem;
  font-weight: 850;
}

#view-regulacao .reg-chart-legend {
  display: grid;
  gap: 8px;
}

#view-regulacao .reg-chart-legend div {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  color: var(--text-main, #0f172a);
  font-size: 0.8rem;
  font-weight: 800;
}

#view-regulacao .reg-chart-legend i {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

#view-regulacao .reg-chart-legend strong {
  color: var(--text-main, #0f172a);
}

#view-regulacao .reg-timeline-chart {
  display: grid;
  gap: 10px;
}

#view-regulacao .reg-timeline-chart svg {
  width: 100%;
  min-height: 220px;
  border-radius: 8px;
  background: #ffffff;
}

#view-regulacao .reg-chart-grid line {
  stroke: #cbd5e1;
  stroke-width: 1;
  stroke-dasharray: 4 5;
}

#view-regulacao .reg-line {
  fill: none;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#view-regulacao .reg-line-created { stroke: #0f4f95; }
#view-regulacao .reg-line-scheduled { stroke: #16a34a; }
#view-regulacao .reg-line-closed { stroke: #c2410c; }

#view-regulacao .reg-timeline-chart text {
  fill: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
}

#view-regulacao .reg-inline-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

#view-regulacao .reg-inline-legend div {
  grid-template-columns: 12px auto;
}

#view-regulacao .legend-created { background: #0f4f95; }
#view-regulacao .legend-scheduled { background: #16a34a; }
#view-regulacao .legend-closed { background: #c2410c; }

#view-regulacao .reg-stage-bars,
#view-regulacao .reg-specialty-bars {
  display: grid;
  gap: 11px;
}

#view-regulacao .reg-stage-row,
#view-regulacao .reg-specialty-row {
  display: grid;
  gap: 7px;
}

#view-regulacao .reg-stage-row div,
#view-regulacao .reg-specialty-row div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

#view-regulacao .reg-stage-row span,
#view-regulacao .reg-specialty-row span {
  color: var(--text-muted, #64748b);
  font-size: 0.78rem;
  font-weight: 800;
}

#view-regulacao .reg-specialty-row strong {
  color: var(--text-main, #0f172a);
  font-size: 0.86rem;
}

#view-regulacao .reg-stage-row > i,
#view-regulacao .reg-specialty-row > i {
  display: block;
  height: 9px;
  min-width: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #0f4f95, #16a34a);
}

#view-regulacao .reg-specialty-row > i {
  background: linear-gradient(90deg, #7c2d12, #f59e0b);
}

#view-regulacao .reg-empty-compact {
  padding: 12px;
}

#view-regulacao .reg-priority-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

#view-regulacao .reg-priority-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#view-regulacao .reg-priority-card span {
  font-size: 0.78rem;
  font-weight: 800;
}

#view-regulacao .reg-priority-card strong {
  font-size: 1.35rem;
}

#view-regulacao .reg-priority-p0,
#reg-modal .reg-priority-p0 { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
#view-regulacao .reg-priority-p1,
#reg-modal .reg-priority-p1 { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
#view-regulacao .reg-priority-p2,
#reg-modal .reg-priority-p2 { background: #eff6ff; color: #4e1550; border-color: #bfdbfe; }
#view-regulacao .reg-priority-p3,
#reg-modal .reg-priority-p3 { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }

#view-regulacao .reg-table-wrap {
  overflow: auto;
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 8px;
}

#view-regulacao .reg-panel .reg-table-wrap {
  border: 0;
}

#view-regulacao .reg-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}

#view-regulacao .reg-table th,
#view-regulacao .reg-table td {
  padding: 10px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
  text-align: left;
}

#view-regulacao .reg-table th {
  font-size: 0.72rem;
  text-transform: uppercase;
  color: var(--text-muted, #64748b);
  background: rgba(15, 79, 149, 0.06);
}

#view-regulacao .reg-table td {
  font-size: 0.84rem;
  color: var(--text-main, #0f172a);
}

#view-regulacao .reg-table td span {
  display: block;
  color: var(--text-muted, #64748b);
  margin-top: 2px;
}

#view-regulacao .reg-protocol,
#view-regulacao .reg-status-badge,
#view-regulacao .reg-priority-badge,
#reg-modal .reg-protocol,
#reg-modal .reg-status-badge,
#reg-modal .reg-priority-badge {
  display: inline-flex !important;
  width: fit-content;
  align-items: center;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.72rem;
  font-weight: 900;
}

#view-regulacao .reg-protocol,
#reg-modal .reg-protocol {
  background: #f0e5f0;
  color: #3730a3 !important;
}

#view-regulacao .reg-status-badge,
#reg-modal .reg-status-badge {
  background: #f1f5f9;
  color: #334155 !important;
}

#view-regulacao .reg-row-actions {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  min-width: 210px;
}

#view-regulacao .reg-row-actions .btn {
  min-height: 30px;
  padding: 6px 8px;
}

#reg-modal {
  z-index: 1200;
  background: rgba(20, 5, 20, 0.42);
  backdrop-filter: none;
}

#reg-modal:empty {
  display: none !important;
}

#view-regulacao .reg-modal-box,
#reg-modal .reg-modal-box {
  width: min(var(--modal-w, 820px), calc(100vw - 28px));
  max-height: calc(100vh - 36px);
  overflow: auto;
}

#view-regulacao .reg-modal-head,
#reg-modal .reg-modal-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
  padding-right: 40px; /* reserva espaço para o X de fechar (auto-injetado) */
}

#view-regulacao .reg-modal-head h3,
#reg-modal .reg-modal-head h3 {
  margin: 0;
  color: var(--primary);
}

#view-regulacao .reg-form,
#reg-modal .reg-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#view-regulacao .reg-form-grid,
#reg-modal .reg-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

#view-regulacao .reg-modal-actions,
#reg-modal .reg-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

#view-regulacao .reg-duplicate-warning,
#reg-modal .reg-duplicate-warning {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #fbbf24;
  background: #fffbeb;
  color: #92400e;
  border-radius: 8px;
  padding: 12px;
}

#view-regulacao .reg-duplicate-warning p,
#reg-modal .reg-duplicate-warning p {
  margin: 4px 0 0;
  color: #92400e;
  font-size: 0.82rem;
}

#view-regulacao .reg-duplicate-actions,
#reg-modal .reg-duplicate-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

#view-regulacao .reg-detail-grid,
#reg-modal .reg-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

#view-regulacao .reg-detail-grid section,
#reg-modal .reg-detail-grid section {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  background: var(--surface, #fff);
}

#view-regulacao .reg-detail-grid h4,
#reg-modal .reg-detail-grid h4 {
  margin: 0 0 8px;
  color: var(--text-main, #0f172a);
}

#view-regulacao .reg-detail-grid p,
#reg-modal .reg-detail-grid p {
  margin: 4px 0;
  color: var(--text-main, #0f172a);
  line-height: 1.45;
}

#view-regulacao .reg-detail-wide,
#reg-modal .reg-detail-wide {
  grid-column: 1 / -1;
}

#view-regulacao .reg-timeline-item,
#reg-modal .reg-timeline-item {
  border-left: 3px solid #0f4f95;
  padding-left: 10px;
  margin-bottom: 10px;
}

#view-regulacao .reg-timeline-item span,
#reg-modal .reg-timeline-item span {
  display: block;
  color: var(--text-muted, #64748b);
  font-size: 0.75rem;
  margin-top: 2px;
}

#view-regulacao .reg-task-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 0 auto 12px;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1540px;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card-bg, #f7f7f7);
}

#view-regulacao .reg-task-summary,
#view-regulacao .reg-task-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}

#view-regulacao .reg-task-actions {
  margin-left: auto;
  justify-content: flex-end;
}

#view-regulacao .reg-task-summary span,
#view-regulacao .reg-task-summary strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 13px;
  border: 1px solid #e6e9f0;
  border-radius: 999px;
  background: #f4f6fa;
  color: #475569;
  font-size: 0.8rem;
  font-weight: 700;
}
#view-regulacao .reg-task-summary .reg-task-chip svg,
#view-regulacao .reg-task-summary .reg-task-chip i { width: 15px; height: 15px; color: #94a3b8; }
#view-regulacao .reg-task-summary .reg-task-chip.is-mine { background: #f3effe; color: #6d28d9; border-color: #e9d5ff; }
#view-regulacao .reg-task-summary .reg-task-chip.is-mine svg,
#view-regulacao .reg-task-summary .reg-task-chip.is-mine i { color: #7c3aed; }

#view-regulacao .reg-task-department-select {
  display: grid;
  gap: 4px;
  min-width: 220px;
  margin: 0;
}

#view-regulacao .reg-task-department-select span {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-muted, #64748b);
  font-size: 0.72rem;
  font-weight: 800;
}

#view-regulacao .reg-task-department-select select {
  min-height: 36px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface, #fff);
  color: var(--text-main, #0f172a);
  font-weight: 800;
  padding: 6px 10px;
}

#view-regulacao .reg-kanban {
  display: grid;
  grid-template-columns: repeat(5, minmax(240px, 300px));
  justify-content: center;
  gap: 10px;
  overflow-x: auto;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 2px 2px 12px;
  align-items: stretch;
}

#view-regulacao .reg-kanban-column {
  min-width: 0;
  height: clamp(420px, calc(100vh - 330px), 620px);
  display: flex;
  flex-direction: column;
  border: 1px solid #dfd0e3;
  border-radius: 8px;
  background: linear-gradient(180deg, #fbfcff 0%, #f7f9fc 100%);
  padding: 12px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  box-sizing: border-box;
}

#view-regulacao .reg-kanban-column > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

#view-regulacao .reg-kanban-column > header strong {
  color: var(--text-main, #0f172a);
  font-size: 0.9rem;
}

#view-regulacao .reg-kanban-column > header span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-weight: 900;
  font-size: 0.78rem;
}

#view-regulacao .reg-kanban-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}

#view-regulacao .reg-task-card {
  border: 1px solid #dbe3ee;
  border-left: 4px solid #0f4f95;
  border-radius: 10px;
  background: var(--card-bg, #f7f7f7);
  padding: 10px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.06);
  cursor: pointer;
  transition: box-shadow .16s ease, transform .16s ease;
}
#view-regulacao .reg-task-card:hover {
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.13), 0 2px 6px rgba(15, 23, 42, 0.07);
  transform: translateY(-2px);
}

#view-regulacao .reg-task-card.is-overdue {
  border-left-color: #dc2626;
  background: #fff7ed;
}

#view-regulacao .reg-task-card.is-focused {
  animation: regTaskFocusPulse 1.05s ease-in-out 3;
  border-color: rgba(118, 28, 119, 0.65);
  border-left-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(118, 28, 119, 0.12), 0 16px 34px rgba(76, 18, 76, 0.18);
}

@keyframes regTaskFocusPulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

#view-regulacao .reg-task-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

#view-regulacao .reg-task-card-head strong {
  color: var(--text-main, #0f172a);
  font-size: 0.9rem;
  line-height: 1.3;
}

#view-regulacao .reg-task-card p {
  margin: 8px 0;
  color: var(--text-muted, #64748b);
  font-size: 0.82rem;
  line-height: 1.4;
}

#view-regulacao .reg-task-priority {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 7px;
  font-size: 0.68rem;
  font-weight: 900;
  white-space: nowrap;
}

#view-regulacao .reg-task-priority-baixa { background: #f0fdf4; color: #166534; }
#view-regulacao .reg-task-priority-normal { background: #eff6ff; color: #4e1550; }
#view-regulacao .reg-task-priority-alta { background: #fff7ed; color: #9a3412; }
#view-regulacao .reg-task-priority-urgente { background: #fef2f2; color: #991b1b; }

#view-regulacao .reg-task-protocol {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  padding: 2px 8px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #0f172a;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

#view-regulacao .reg-task-protocol svg {
  width: 12px;
  height: 12px;
}

#reg-modal .reg-task-protocol-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding: 10px 14px;
  border-radius: 10px;
  background: linear-gradient(90deg, #f0e5f0, #f1f5f9);
  border: 1px solid #e8d6e8;
}

#reg-modal .reg-task-protocol-banner strong {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  color: #1e293b;
  font-size: 0.95rem;
}

#reg-modal .reg-task-protocol-banner span {
  color: #475569;
  font-size: 0.78rem;
}

#view-regulacao .reg-task-tabs {
  margin-bottom: 14px;
}

#view-regulacao .reg-task-tabs .reg-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#reg-modal .reg-task-file-picker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
}

#reg-modal .reg-task-file-info {
  flex: 1 1 200px;
  min-width: 0;
  font-size: 0.82rem;
  color: var(--text-muted, #64748b);
  word-break: break-all;
}

#reg-modal .reg-task-file-info strong {
  color: var(--text-main, #0f172a);
}

#reg-modal .reg-task-file-info small {
  margin-left: 6px;
  color: var(--text-muted, #64748b);
}

/* ============= DASHBOARD V2 (KPIs + gráficos) ============= */
#view-regulacao .reg-task-dashboard-v2 .reg-task-dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 14px 0 18px;
}

#view-regulacao .reg-task-dashboard-v2 .kpi {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--card-bg, #f7f7f7);
  border: 1px solid #e2e8f0;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
  position: relative;
  overflow: hidden;
}

#view-regulacao .reg-task-dashboard-v2 .kpi::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: currentColor;
}

#view-regulacao .reg-task-dashboard-v2 .kpi-icon {
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 13px;
  display: grid;
  place-items: center;
  background: #eef2f7;
  color: inherit;
}

#view-regulacao .reg-task-dashboard-v2 .kpi-icon svg {
  width: 24px;
  height: 24px;
}

#view-regulacao .reg-task-dashboard-v2 .kpi-open .kpi-icon { background: #dbeafe; color: #2563eb; }
#view-regulacao .reg-task-dashboard-v2 .kpi-overdue .kpi-icon { background: #fee2e2; color: #dc2626; }
#view-regulacao .reg-task-dashboard-v2 .kpi-due-soon .kpi-icon { background: #fef3c7; color: #d97706; }
#view-regulacao .reg-task-dashboard-v2 .kpi-done .kpi-icon { background: #dcfce7; color: #16a34a; }

#view-regulacao .reg-task-dashboard-v2 .kpi div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#view-regulacao .reg-task-dashboard-v2 .kpi span {
  font-size: 0.78rem;
  color: var(--text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

#view-regulacao .reg-task-dashboard-v2 .kpi strong {
  font-size: 1.7rem;
  font-weight: 800;
  color: #0f172a;
}

#view-regulacao .reg-task-dashboard-v2 .kpi-open { color: #2563eb; }
#view-regulacao .reg-task-dashboard-v2 .kpi-overdue { color: #dc2626; }
#view-regulacao .reg-task-dashboard-v2 .kpi-due-soon { color: #f59e0b; }
#view-regulacao .reg-task-dashboard-v2 .kpi-done { color: #16a34a; }

#view-regulacao .reg-dash-row {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
  align-items: stretch;
}

/* Comparativo mensal (largo) ao lado do donut de Status */
#view-regulacao .reg-dash-row-primary {
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
}

/* Prioridades + Taxa de conclusão */
#view-regulacao .reg-dash-row-secondary {
  grid-template-columns: 1fr 1fr;
}

#view-regulacao .reg-task-dashboard-bars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* cards do dashboard centralizam seu conteúdo verticalmente quando dividem a linha */
#view-regulacao .reg-dash-row .chart-card,
#view-regulacao .reg-dash-row .gauge-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#view-regulacao .reg-task-dashboard-v2 .reg-task-dashboard-card {
  border-radius: 14px;
  background: var(--card-bg, #f7f7f7);
  border: 1px solid #e6e9f0;
  padding: 16px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}

#view-regulacao .reg-task-dashboard-v2 .reg-task-dashboard-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

#view-regulacao .reg-task-dashboard-v2 .reg-task-dashboard-card > header strong {
  font-size: 0.95rem;
  color: #0f172a;
}

#view-regulacao .reg-task-dashboard-v2 .reg-task-dashboard-card > header span {
  font-size: 0.74rem;
  color: var(--text-muted, #64748b);
  background: #f1f5f9;
  padding: 3px 10px;
  border-radius: 999px;
}

/* Donut */
#view-regulacao .reg-donut-chart {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

#view-regulacao .reg-donut-disc {
  width: 170px;
  height: 170px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

#view-regulacao .reg-donut-disc::after {
  content: '';
  position: absolute;
  inset: 22px;
  background: #fff;
  border-radius: 50%;
}

#view-regulacao .reg-donut-center {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

#view-regulacao .reg-donut-center strong {
  font-size: 1.45rem;
  font-weight: 800;
  color: #0f172a;
}

#view-regulacao .reg-donut-center span {
  font-size: 0.72rem;
  color: var(--text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

#view-regulacao .reg-donut-legend {
  display: grid;
  gap: 7px;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

#view-regulacao .reg-donut-legend li {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: #0f172a;
}

#view-regulacao .reg-donut-legend li i {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  display: inline-block;
}

#view-regulacao .reg-donut-legend li b {
  color: var(--text-muted, #64748b);
  font-weight: 700;
}

/* Gauge */
#view-regulacao .gauge-card {
  display: flex;
  flex-direction: column;
}

#view-regulacao .reg-gauge {
  width: 100%;
  max-width: 260px;
  margin: 0 auto;
  display: block;
}

#view-regulacao .reg-gauge-value {
  font-size: 22px;
  font-weight: 800;
}

#view-regulacao .reg-gauge-label {
  font-size: 9px;
  fill: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

#view-regulacao .gauge-card footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #e2e8f0;
}

#view-regulacao .gauge-card footer div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

#view-regulacao .gauge-card footer b {
  font-size: 1.2rem;
  font-weight: 800;
  color: #0f172a;
}

#view-regulacao .gauge-card footer span {
  font-size: 0.72rem;
  color: var(--text-muted, #64748b);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Bars */
#view-regulacao .reg-task-bar-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 0;
  border-bottom: 1px dashed #f1f5f9;
}

#view-regulacao .reg-task-bar-row:last-child {
  border-bottom: none;
}

#view-regulacao .reg-task-bar-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: #0f172a;
}

#view-regulacao .reg-task-bar-head > span:not(.reg-task-avatar) {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#view-regulacao .reg-task-bar-head b {
  font-size: 1rem;
  font-weight: 800;
  color: #0f172a;
}

#view-regulacao .reg-task-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6d1f6c, #8e3a8d);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  flex-shrink: 0;
}

#view-regulacao .reg-task-bar-track {
  height: 8px;
  background: #f1f5f9;
  border-radius: 999px;
  overflow: hidden;
}

#view-regulacao .reg-task-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 240ms ease;
}

#view-regulacao .reg-task-bar-fill-dept {
  background: linear-gradient(90deg, #3b82f6, #6d1f6c);
}

#view-regulacao .reg-task-bar-fill-assignee {
  background: linear-gradient(90deg, #8e3a8d, #e6b800);
}

#view-regulacao .reg-task-bar-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

#view-regulacao .reg-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
}

#view-regulacao .reg-pill-open { background: #eff6ff; color: #4e1550; }
#view-regulacao .reg-pill-done { background: #f0fdf4; color: #166534; }
#view-regulacao .reg-pill-overdue { background: #fef2f2; color: #991b1b; }

/* Tabela de relatório: célula de protocolo */
#reg-modal .reg-task-protocol-cell {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  background: #f1f5f9;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: 0.78rem;
  font-weight: 700;
  color: #0f172a;
}

/* Modal de justificativa */
#reg-modal .reg-pending-reason-form .reg-pending-reason-hint {
  display: flex;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  margin-bottom: 12px;
}

#reg-modal .reg-pending-reason-hint svg {
  width: 22px;
  height: 22px;
  color: #d97706;
  flex-shrink: 0;
}

#reg-modal .reg-pending-reason-hint strong {
  display: block;
  color: #92400e;
}

#reg-modal .reg-pending-reason-hint small {
  display: block;
  font-family: 'SFMono-Regular', Consolas, monospace;
  color: #92400e;
  font-size: 0.75rem;
  margin: 2px 0 6px;
}

#reg-modal .reg-pending-reason-hint p {
  margin: 0;
  color: #78350f;
  font-size: 0.85rem;
}

#reg-modal .reg-pending-reason-form textarea {
  width: 100%;
  resize: vertical;
}

/* Confirm modal */
#reg-modal .reg-confirm-modal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 12px 4px 4px;
  text-align: center;
}

#reg-modal .reg-confirm-icon {
  width: 48px;
  height: 48px;
}

#reg-modal .reg-confirm-default { color: #2563eb; }
#reg-modal .reg-confirm-danger { color: #dc2626; }

#reg-modal .reg-confirm-modal p {
  margin: 0;
  color: #0f172a;
  font-size: 0.95rem;
}

/* Toast */
.reg-toast-host {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.reg-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #0f172a;
  color: #fff;
  font-size: 0.88rem;
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.25);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 220ms ease, transform 220ms ease;
  max-width: 360px;
  pointer-events: auto;
}

.reg-toast.is-show {
  opacity: 1;
  transform: translateY(0);
}

.reg-toast svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.reg-toast-success {
  background: #166534;
}

.reg-toast-error {
  background: #991b1b;
}

.reg-toast-info {
  background: #1e293b;
}

/* ===== Refinos visuais do Dashboard do Kanban ===== */
#view-regulacao .reg-task-dashboard-v2 .kpi { transition: transform .12s, box-shadow .12s; }
#view-regulacao .reg-task-dashboard-v2 .kpi:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15,23,42,.08); }
#view-regulacao .reg-task-dashboard-v2 .kpi strong { font-size: 1.9rem; line-height: 1; }

/* Donut com mais respiro e profundidade */
#view-regulacao .reg-donut-chart { gap: 18px; }
#view-regulacao .reg-donut-disc { width: 184px; height: 184px; box-shadow: 0 6px 18px rgba(15,23,42,.10); }
#view-regulacao .reg-donut-disc::after { inset: 26px; box-shadow: inset 0 1px 3px rgba(15,23,42,.06); }
#view-regulacao .reg-donut-center strong { font-size: 1.6rem; font-weight: 800; color: #0f172a; }
#view-regulacao .reg-donut-center span { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #64748b; }
#view-regulacao .reg-donut-legend { width: 100%; display: flex; flex-direction: column; gap: 4px; }
#view-regulacao .reg-donut-legend li { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 8px; font-size: .82rem; color: #334155; transition: background .12s; }
#view-regulacao .reg-donut-legend li:hover { background: #f8fafc; }
#view-regulacao .reg-donut-legend li i { width: 11px; height: 11px; border-radius: 4px; flex-shrink: 0; }
#view-regulacao .reg-donut-legend li span { flex: 1; }
#view-regulacao .reg-donut-legend li b { font-weight: 800; color: #0f172a; }

/* Responsividade Dashboard */
@media (max-width: 1100px) {
  #view-regulacao .reg-dash-row-primary {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  #view-regulacao .reg-task-dashboard-v2 .reg-task-dashboard-kpis {
    grid-template-columns: repeat(2, 1fr);
  }
  #view-regulacao .reg-dash-row-primary,
  #view-regulacao .reg-dash-row-secondary,
  #view-regulacao .reg-task-dashboard-bars {
    grid-template-columns: 1fr;
  }
}

#view-regulacao .reg-task-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 8px 0;
}

#view-regulacao .reg-task-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--text-muted, #64748b);
  font-size: 0.75rem;
}

#view-regulacao .reg-task-meta svg,
#view-regulacao .reg-task-card-foot svg,
#view-regulacao .reg-task-actions svg,
#view-regulacao .reg-task-summary svg {
  width: 15px;
  height: 15px;
}

#view-regulacao .reg-task-card-foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 6px;
  align-items: center;
  margin-top: 8px;
}

#view-regulacao .reg-task-flow-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

#view-regulacao .reg-task-flow-btn {
  min-height: 32px;
  border-color: rgba(118, 28, 119, 0.24);
  background: #fff7fc;
  color: var(--primary, #761c77);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.15;
  padding: 6px 8px;
}

#view-regulacao .reg-task-flow-done {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #166534;
}

#view-regulacao .reg-task-flow-pending {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

#view-regulacao .reg-task-flow-empty {
  align-items: center;
  background: #f8fafc;
  border: 1px dashed var(--border);
  border-radius: 8px;
  color: var(--text-muted, #64748b);
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 800;
  min-height: 32px;
  padding: 6px 8px;
}

#view-regulacao .reg-task-card small {
  display: block;
  margin-top: 8px;
  color: var(--text-muted, #64748b);
  font-size: 0.7rem;
}

#reg-modal .reg-task-attachments {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #ffffff;
  padding: 12px;
}

#reg-modal .reg-task-attachments-head {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}

#reg-modal .reg-task-attachments-head strong {
  color: var(--text-main, #0f172a);
  font-size: 0.95rem;
}

#reg-modal .reg-task-attachments-head span,
#reg-modal .reg-task-attachment-help {
  color: var(--text-muted, #64748b);
  font-size: 0.78rem;
  line-height: 1.45;
}

#reg-modal .reg-form textarea[readonly] {
  background: #f8fafc;
  color: var(--text-muted, #64748b);
  cursor: default;
}

#reg-modal .reg-task-attachment-list {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

#reg-modal .reg-task-attachment-item {
  align-items: center;
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 9px;
  display: grid;
  gap: 8px;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  padding: 9px;
}

#reg-modal .reg-task-attachment-icon {
  align-items: center;
  background: rgba(15, 76, 129, 0.09);
  border-radius: 999px;
  color: #0f4f95;
  display: inline-flex;
  height: 32px;
  justify-content: center;
  width: 32px;
}

#reg-modal .reg-task-attachment-icon svg,
#reg-modal .reg-task-attachment-item .btn svg {
  height: 15px;
  width: 15px;
}

#reg-modal .reg-task-attachment-item strong,
#reg-modal .reg-task-attachment-item small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#reg-modal .reg-task-attachment-item strong {
  color: var(--text-main, #0f172a);
  font-size: 0.86rem;
}

#reg-modal .reg-task-attachment-item small {
  color: var(--text-muted, #64748b);
  font-size: 0.72rem;
  margin-top: 2px;
}

#reg-modal .reg-task-attachment-new {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#reg-modal .reg-task-attachment-help {
  margin: 10px 0 0;
}

#reg-modal .reg-task-log-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#reg-modal .reg-task-history-list {
  display: grid;
  gap: 12px;
}

#reg-modal .reg-task-history-item {
  border: 1px solid var(--border);
  border-left: 0;
  border-radius: 10px;
  display: grid;
  gap: 12px;
  grid-template-columns: 38px minmax(0, 1fr);
  margin: 0;
  padding: 14px;
  background: var(--surface, #fff);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

#reg-modal .reg-task-history-icon {
  align-items: center;
  background: linear-gradient(135deg, rgba(118, 28, 119, 0.14), rgba(15, 76, 129, 0.12));
  border: 1px solid rgba(118, 28, 119, 0.16);
  border-radius: 999px;
  color: var(--primary);
  display: inline-flex;
  height: 34px;
  justify-content: center;
  width: 34px;
}

#reg-modal .reg-task-history-icon svg {
  height: 17px;
  width: 17px;
}

#reg-modal .reg-task-history-content {
  display: grid;
  gap: 10px;
  min-width: 0;
}

#reg-modal .reg-task-history-head {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

#reg-modal .reg-task-history-head strong,
#reg-modal .reg-task-history-head span {
  display: block;
}

#reg-modal .reg-task-history-head strong {
  color: var(--text, #1f2937);
  font-size: 1rem;
}

#reg-modal .reg-task-history-head span {
  color: var(--text-muted, #64748b);
  font-size: 0.78rem;
  margin-top: 2px;
}

#reg-modal .reg-task-history-head em {
  background: rgba(118, 28, 119, 0.08);
  border: 1px solid rgba(118, 28, 119, 0.12);
  border-radius: 999px;
  color: var(--primary-dark);
  flex: 0 0 auto;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 800;
  max-width: 220px;
  overflow: hidden;
  padding: 6px 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#reg-modal .reg-task-history-changes {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#reg-modal .reg-task-history-change {
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
}

#reg-modal .reg-task-history-change span,
#reg-modal .reg-task-history-change strong {
  display: block;
}

#reg-modal .reg-task-history-change span {
  color: var(--text-muted, #64748b);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

#reg-modal .reg-task-history-change strong {
  color: var(--text, #1f2937);
  font-size: 0.9rem;
  line-height: 1.35;
  margin-top: 4px;
}

#reg-modal .reg-task-history-content p {
  background: rgba(15, 76, 129, 0.06);
  border-left: 3px solid #0f4f95;
  border-radius: 8px;
  color: var(--text, #1f2937);
  line-height: 1.45;
  margin: 0;
  padding: 10px 12px;
}

#reg-modal .reg-task-notification {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: #f8fafc;
}

#reg-modal .reg-task-notification:not(.is-read) {
  border-color: #86efac;
  background: #f0fdf4;
}

#reg-modal .reg-task-notification strong,
#reg-modal .reg-task-notification span {
  display: block;
}

#reg-modal .reg-task-notification span {
  color: var(--text-muted, #64748b);
  font-size: 0.78rem;
  margin-top: 4px;
}

#reg-modal .reg-task-dashboard {
  display: grid;
  gap: 14px;
}

#reg-modal .reg-task-dashboard-hero {
  align-items: center;
  background: linear-gradient(135deg, rgba(118, 28, 119, 0.11), rgba(15, 79, 149, 0.08));
  border: 1px solid #dfd0e3;
  border-radius: 14px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 16px;
}

#reg-modal .reg-task-dashboard-hero strong,
#reg-modal .reg-task-dashboard-hero span {
  display: block;
}

#reg-modal .reg-task-dashboard-hero strong {
  color: var(--text-main, #0f172a);
  font-size: 1rem;
}

#reg-modal .reg-task-dashboard-hero span {
  color: var(--text-muted, #64748b);
  font-size: 0.84rem;
  margin-top: 4px;
}

#reg-modal .reg-task-dashboard-kpis,
#reg-modal .reg-task-dashboard-grid {
  display: grid;
  gap: 10px;
}

#reg-modal .reg-task-dashboard-kpis {
  grid-template-columns: repeat(3, minmax(90px, 1fr));
}

#reg-modal .reg-task-dashboard-kpis article,
#reg-modal .reg-task-dashboard-card {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
}

#reg-modal .reg-task-dashboard-kpis span,
#reg-modal .reg-task-dashboard-line span,
#reg-modal .reg-task-dashboard-row span {
  color: var(--text-muted, #64748b);
  font-size: 0.76rem;
  font-weight: 800;
}

#reg-modal .reg-task-dashboard-kpis strong {
  color: var(--primary, #761c77);
  display: block;
  font-size: 1.35rem;
  line-height: 1;
  margin-top: 5px;
}

#reg-modal .reg-task-dashboard-grid {
  grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(0, 1fr));
}

#reg-modal .reg-task-dashboard-card {
  display: grid;
  gap: 10px;
}

#reg-modal .reg-task-dashboard-card > strong {
  color: var(--text-main, #0f172a);
  font-size: 0.94rem;
}

#reg-modal .reg-task-dashboard-line,
#reg-modal .reg-task-dashboard-row {
  align-items: center;
  display: grid;
  gap: 8px;
}

#reg-modal .reg-task-dashboard-line,
#reg-modal .reg-task-dashboard-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

#reg-modal .reg-task-dashboard-line b,
#reg-modal .reg-task-dashboard-row b {
  color: var(--text-main, #0f172a);
  font-size: 0.9rem;
}

#reg-modal .reg-task-dashboard-row i {
  background: #f1e6f2;
  border-radius: 999px;
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  position: relative;
}

#reg-modal .reg-task-dashboard-row i::before {
  background: linear-gradient(90deg, var(--primary, #761c77), #0f4f95);
  border-radius: inherit;
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: var(--value, 0%);
}

#view-regulacao .reg-task-dashboard {
  display: grid;
  gap: 14px;
  margin: 0 auto 16px;
  max-width: 1540px;
  width: 100%;
}

#view-regulacao .reg-task-dashboard-hero {
  align-items: center;
  background: var(--card-bg, #f7f7f7);
  border: 1px solid var(--border);
  border-left: 4px solid var(--primary);
  border-radius: 14px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 18px 20px;
}
#view-regulacao .reg-task-dashboard-hero > div > span:first-child { color: var(--primary); }

#view-regulacao .reg-task-dashboard-hero > div {
  min-width: 0;
}

#view-regulacao .reg-task-dashboard-hero span,
#view-regulacao .reg-task-dashboard-filter span,
#view-regulacao .reg-task-dashboard-kpis span,
#view-regulacao .reg-task-dashboard-line span,
#view-regulacao .reg-task-dashboard-row span,
#view-regulacao .reg-task-dashboard-dept span {
  color: var(--text-muted, #64748b);
  font-size: 0.76rem;
  font-weight: 800;
}

#view-regulacao .reg-task-dashboard-hero strong {
  color: var(--text-main, #0f172a);
  display: block;
  font-size: 1.28rem;
  line-height: 1.18;
  margin-top: 4px;
}

#view-regulacao .reg-task-dashboard-hero small,
#view-regulacao .reg-task-dashboard-line small,
#view-regulacao .reg-task-dashboard-dept small {
  color: var(--text-muted, #64748b);
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
}

#view-regulacao .reg-task-dashboard-filter {
  display: grid;
  flex: 0 0 280px;
  gap: 6px;
}

#view-regulacao .reg-task-dashboard-filter select {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text-main, #0f172a);
  font: inherit;
  font-weight: 800;
  min-height: 44px;
  padding: 0 12px;
  width: 100%;
}

#view-regulacao .reg-task-dashboard-kpis,
#view-regulacao .reg-task-dashboard-grid {
  display: grid;
  gap: 10px;
}

#view-regulacao .reg-task-dashboard-kpis {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
}

#view-regulacao .reg-task-dashboard-kpis article,
#view-regulacao .reg-task-dashboard-card {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
}

#view-regulacao .reg-task-dashboard-kpis strong {
  color: var(--primary, #761c77);
  display: block;
  font-size: 1.35rem;
  line-height: 1;
  margin-top: 5px;
}

#view-regulacao .reg-task-dashboard-grid {
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 1fr) minmax(260px, 1fr) minmax(220px, 0.85fr);
}

#view-regulacao .reg-task-dashboard-card {
  align-content: start;
  display: grid;
  gap: 10px;
  min-width: 0;
}

#view-regulacao .reg-task-dashboard-card > strong {
  color: var(--text-main, #0f172a);
  font-size: 0.94rem;
}

#view-regulacao .reg-task-dashboard-line,
#view-regulacao .reg-task-dashboard-row,
#view-regulacao .reg-task-dashboard-dept {
  align-items: center;
  display: grid;
  gap: 6px 8px;
  grid-template-columns: minmax(0, 1fr) auto;
}

#view-regulacao .reg-task-dashboard-line b,
#view-regulacao .reg-task-dashboard-row b,
#view-regulacao .reg-task-dashboard-dept b {
  color: var(--text-main, #0f172a);
  font-size: 0.9rem;
}

#view-regulacao .reg-task-dashboard-line small,
#view-regulacao .reg-task-dashboard-dept small {
  grid-column: 1 / -1;
}

#view-regulacao .reg-task-dashboard-row i {
  background: #f1e6f2;
  border-radius: 999px;
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  position: relative;
}

#view-regulacao .reg-task-dashboard-row i::before {
  background: linear-gradient(90deg, var(--primary, #761c77), #0f4f95);
  border-radius: inherit;
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: var(--value, 0%);
}

#reg-modal .reg-task-report {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

#reg-modal .reg-task-report-head {
  align-items: center;
  background: linear-gradient(135deg, rgba(118, 28, 119, 0.08), rgba(15, 76, 129, 0.08));
  border: 1px solid rgba(118, 28, 119, 0.18);
  border-radius: 14px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 16px 18px;
}

#reg-modal .reg-task-report-head strong,
#reg-modal .reg-task-report-head span {
  display: block;
}

#reg-modal .reg-task-report-head strong {
  color: var(--text, #1f2937);
  font-size: 1.05rem;
}

#reg-modal .reg-task-report-head span {
  color: var(--text-muted, #64748b);
  font-size: 0.84rem;
  margin-top: 3px;
}

#reg-modal .reg-task-report-head b {
  background: rgba(118, 28, 119, 0.14);
  border-radius: 999px;
  color: var(--primary);
  flex: 0 0 auto;
  font-size: 0.92rem;
  padding: 9px 14px;
}

#reg-modal .reg-task-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 12px;
}

#reg-modal .reg-task-report-grid section {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  background: linear-gradient(180deg, var(--surface, #fff), rgba(118, 28, 119, 0.025));
  min-width: 0;
}

#reg-modal .reg-task-report-grid strong,
#reg-modal .reg-task-report-grid span {
  display: block;
}

#reg-modal .reg-task-report-grid span {
  color: var(--text-muted, #64748b);
  font-size: 0.82rem;
  margin-top: 3px;
}

#reg-modal .reg-task-report-grid section div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

#reg-modal .reg-task-report-grid b,
#reg-modal .reg-task-report-grid small {
  display: block;
  text-align: center;
}

#reg-modal .reg-task-report-grid b {
  color: var(--primary);
  font-size: 1.08rem;
}

#reg-modal .reg-task-report-grid small {
  color: var(--text-muted, #64748b);
  font-size: 0.7rem;
}

#reg-modal .reg-task-report-empty {
  background: rgba(118, 28, 119, 0.05);
  border: 1px dashed rgba(118, 28, 119, 0.28);
  border-radius: 14px;
  display: grid;
  gap: 6px;
  padding: 20px;
}

#reg-modal .reg-task-report-empty strong {
  color: var(--text, #1f2937);
  font-size: 1rem;
}

#reg-modal .reg-task-report-empty span {
  color: var(--text-muted, #64748b);
  line-height: 1.45;
}

#reg-modal .reg-task-report-table-wrap {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: auto;
}

#reg-modal .reg-task-report-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 900px;
}

#reg-modal .reg-task-report-table th,
#reg-modal .reg-task-report-table td {
  vertical-align: top;
}

#reg-modal .reg-task-report-table th {
  background: rgba(118, 28, 119, 0.1);
  color: #4c174f;
  font-size: 0.78rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

#reg-modal .reg-task-report-table td {
  border-top: 1px solid var(--border);
  line-height: 1.4;
}

#reg-modal .reg-task-report-table td strong,
#reg-modal .reg-task-report-table td span,
#reg-modal .reg-task-report-table td small {
  display: block;
}

#reg-modal .reg-task-report-table td span,
#reg-modal .reg-task-report-table td small {
  color: var(--text-muted, #64748b);
  font-size: 0.78rem;
  margin-top: 3px;
}

#reg-modal .reg-task-movement-block {
  display: grid;
  gap: 5px;
  min-width: 175px;
}

#reg-modal .reg-task-movement {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 800;
  justify-content: center;
  line-height: 1.1;
  padding: 6px 10px;
  width: max-content;
}

#reg-modal .reg-task-movement-done {
  background: #dcfce7;
  border-color: #bbf7d0;
  color: #166534;
}

#reg-modal .reg-task-movement-transferred {
  background: #dbeafe;
  border-color: #bfdbfe;
  color: #4e1550;
}

#reg-modal .reg-task-movement-moved {
  background: #fef3c7;
  border-color: #fde68a;
  color: #92400e;
}

#reg-modal .reg-task-movement-status {
  background: #f3e8ff;
  border-color: #e9d5ff;
  color: #6b21a8;
}

#reg-modal .reg-task-movement-block em {
  color: var(--text-muted, #64748b);
  font-size: 0.72rem;
  font-style: normal;
}

#reg-modal .reg-task-report-actions {
  border-top: 1px solid var(--border);
  margin-top: 0;
  padding-top: 14px;
}

#reg-modal .reg-task-report-actions .btn[disabled] {
  cursor: not-allowed;
  opacity: 0.55;
}

body.theme-dark #view-regulacao .reg-header {
  background: linear-gradient(135deg, #143a64 0%, #14532d 100%);
}

body.theme-dark #view-regulacao .reg-error {
  background: rgba(127, 29, 29, 0.25);
  color: #fecaca;
  border-color: rgba(248, 113, 113, 0.45);
}

body.theme-dark #reg-modal .reg-task-report-head,
body.theme-dark #reg-modal .reg-task-report-grid section,
body.theme-dark #reg-modal .reg-task-report-table-wrap {
  background: rgba(15, 23, 42, 0.92);
  border-color: rgba(148, 163, 184, 0.22);
}

body.theme-dark #reg-modal .reg-task-report-table th {
  background: rgba(118, 28, 119, 0.28);
  color: #f5d0fe;
}

@media (max-width: 1100px) {
  #view-regulacao .reg-filter-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #view-regulacao .reg-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #view-regulacao .reg-dashboard-hero,
  #view-regulacao .reg-dashboard-grid {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-span-2 {
    grid-column: auto;
  }

  #view-regulacao .reg-board {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-task-shell {
    width: min(100vw - 24px, 1540px);
  }

  #view-regulacao .reg-kanban {
    grid-template-columns: repeat(3, minmax(240px, 1fr));
  }
}

@media (max-width: 720px) {
  #view-regulacao .reg-shell {
    width: min(100vw - 16px, 1540px);
    margin: 8px auto;
  }

  #view-regulacao .reg-task-shell {
    width: calc(100vw - 16px);
    margin-bottom: 72px;
  }

  #view-regulacao .reg-task-shell .reg-content {
    padding: 10px;
  }

  #view-regulacao .reg-header {
    flex-direction: column;
  }

  #view-regulacao .reg-actions {
    justify-content: flex-start;
  }

  #view-regulacao .reg-filter-band,
  #view-regulacao .reg-form-grid,
  #view-regulacao .reg-detail-grid,
  #reg-modal .reg-form-grid,
  #reg-modal .reg-detail-grid {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-metrics,
  #view-regulacao .reg-priority-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #view-regulacao .reg-donut-layout {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-donut {
    justify-self: center;
  }

  #view-regulacao .reg-kanban,
  #reg-modal .reg-task-report-grid {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-report-head {
    align-items: flex-start;
    flex-direction: column;
  }

  #view-regulacao .reg-task-dashboard-hero,
  #reg-modal .reg-task-dashboard-hero {
    align-items: stretch;
    flex-direction: column;
  }

  #view-regulacao .reg-task-dashboard-filter {
    flex: 0 1 auto;
    width: 100%;
  }

  #view-regulacao .reg-task-dashboard-kpis,
  #view-regulacao .reg-task-dashboard-grid,
  #reg-modal .reg-task-dashboard-kpis,
  #reg-modal .reg-task-dashboard-grid {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-report-table {
    min-width: 760px;
  }

  #reg-modal .reg-task-report-actions .btn {
    flex: 1 1 160px;
    justify-content: center;
  }

  #reg-modal .reg-task-history-item {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-history-head {
    flex-direction: column;
  }

  #reg-modal .reg-task-history-changes {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-attachment-new {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-attachment-item {
    grid-template-columns: 34px minmax(0, 1fr) auto;
  }

  #reg-modal .reg-task-attachment-item .btn.btn-danger {
    grid-column: 2 / -1;
    justify-self: stretch;
  }

  #view-regulacao .reg-kanban-column {
    height: auto;
    min-height: 300px;
  }
}

.sigtap-header {
  align-items: flex-start;
  gap: 12px;
}

.sigtap-header-actions {
  gap: 8px;
  flex-wrap: wrap;
}

.sigtap-query-card {
  margin-bottom: 16px;
}

.sigtap-query-form {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
}

.sigtap-query-form label {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted);
}

.sigtap-query-form input {
  margin: 0;
}

.sigtap-empty,
.sigtap-result-card {
  padding: 18px;
}

.sigtap-result-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}

.sigtap-result-head h3 {
  margin: 2px 0 0;
  color: var(--text-main);
}

.sigtap-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.sigtap-meta-grid > div {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: var(--surface-2);
}

.sigtap-meta-grid span {
  display: block;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.sigtap-description {
  margin: 0 0 14px;
  color: var(--text-main);
  line-height: 1.5;
}

.sigtap-table-wrap {
  overflow-x: auto;
}

.sigtap-table {
  width: 100%;
}

.sigtap-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 98px;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 0.78rem;
  font-weight: 800;
}

.sigtap-badge.is-ok {
  color: #166534;
  background: #dcfce7;
  border: 1px solid #86efac;
}

.sigtap-badge.is-no {
  color: #991b1b;
  background: #fee2e2;
  border: 1px solid #fecaca;
}

body.theme-dark .sigtap-meta-grid > div,
body.theme-dark .sigtap-empty,
body.theme-dark .sigtap-result-card {
  background: var(--surface-2);
  border-color: var(--border);
}

@media (max-width: 700px) {
  .sigtap-query-form,
  .sigtap-meta-grid {
    grid-template-columns: 1fr;
  }

  .sigtap-result-head {
    flex-direction: column;
  }
}

.servidor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.servidor-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.servidor-content-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #ffffff;
}

.servidor-menu-btn {
  flex: 1 1 180px;
  min-width: 0;
  border-color: rgba(109,31,108,0.24);
  background: rgba(255,255,255,0.92);
  color: var(--primary-dark);
  font-weight: 700;
}

.servidor-menu-btn:hover {
  background: #f4ecf4;
  border-color: rgba(109,31,108,0.35);
}

.servidor-menu-btn.is-active {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  border-color: var(--primary-dark);
  color: #fff;
  box-shadow: 0 6px 14px rgba(78,21,80,0.2);
}

.servidor-content-panel {
  margin: 0;
}

.servidor-launch-card {
  background: #ffffff;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
}

.servidor-launch-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.servidor-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
  padding: 5px 10px;
}

.servidor-launch-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.servidor-launch-actions-menu {
  grid-template-columns: 1fr;
}

.servidor-launch-actions .btn {
  width: 100%;
  min-width: 0;
}

.servidor-launch-status {
  margin-top: 10px;
  min-height: 20px;
  color: var(--text-muted);
}

.servidor-forms-card {
  min-height: 460px;
  border: 1px solid var(--border);
  background: #ffffff;
  box-shadow: var(--shadow-xs);
}

.servidor-form-card {
  border: 1px solid var(--border);
  background: #ffffff;
  box-shadow: var(--shadow-xs);
}

.servidor-form-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.servidor-form-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

.servidor-form-field {
  min-width: 0;
}

.servidor-form-field .small {
  display: block;
  font-weight: 700;
  color: #475569;
  margin-bottom: 5px;
}

.servidor-form-field :is(input, select, textarea) {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 9px 11px;
  font-size: 0.9rem;
  background: #ffffff;
  color: #0f172a;
}

.servidor-form-field textarea {
  resize: vertical;
  min-height: 74px;
}

.servidor-form-field-full {
  grid-column: 1 / -1;
}

.servidor-form-footer {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.servidor-form-footer #servidor-form-status {
  min-height: 18px;
  color: var(--text-muted);
}

.servidor-form-footer-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

body.theme-dark .servidor-launch-card {
  background: linear-gradient(180deg, rgba(40,36,45,0.96) 0%, rgba(33,29,38,0.98) 100%);
  border-color: var(--border);
}

body.theme-dark .servidor-content-tabs {
  background: linear-gradient(180deg, rgba(38,34,43,0.96) 0%, rgba(33,29,38,0.98) 100%);
  border-color: var(--border);
}

body.theme-dark .servidor-menu-btn {
  background: rgba(255,255,255,0.06);
  color: var(--text-main);
  border-color: var(--border);
}

body.theme-dark .servidor-menu-btn:hover {
  background: rgba(255,255,255,0.12);
}

body.theme-dark .servidor-menu-btn.is-active {
  background: linear-gradient(135deg, #6a4c86 0%, #7f5f9f 100%);
  border-color: #8b72ab;
  color: #fff;
}

body.theme-dark .servidor-forms-card,
body.theme-dark .servidor-form-card {
  background: linear-gradient(180deg, rgba(40,36,45,0.96) 0%, rgba(33,29,38,0.98) 100%);
  border-color: var(--border);
}

body.theme-dark .servidor-chip {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--text-muted);
}

body.theme-dark .servidor-form-field .small {
  color: var(--text-muted);
}

body.theme-dark .servidor-form-field :is(input, select, textarea) {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--text-main);
}

@media (max-width: 980px) {
  .servidor-layout {
    grid-template-columns: 1fr !important;
  }

  .servidor-menu-btn {
    flex-basis: 100%;
  }

  .servidor-launch-actions {
    grid-template-columns: 1fr;
  }

  .servidor-form-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

.rh-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}

.rh-kpi-card {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
}

.rh-kpi-label {
  font-size: 12px;
  color: #64748b;
}

.rh-kpi-value {
  margin-top: 4px;
  font-size: 19px;
  font-weight: 700;
  color: #0f172a;
}

.rh-report-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
}

.rh-report-table th,
.rh-report-table td {
  border-bottom: 1px solid #e2e8f0;
  padding: 7px 8px;
  font-size: 12px;
  text-align: left;
  vertical-align: top;
}

.rh-report-table th {
  background: #f8fafc;
  color: #334155;
  font-weight: 700;
}

.rh-panel-tabs {
  margin: 0 0 10px;
}

.rh-time-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.rh-time-toolbar input,
.rh-time-toolbar select {
  min-height: 36px;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #fff;
}

.rh-time-toolbar .btn {
  min-width: 150px;
}

.rh-time-marks {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.rh-time-mark-row {
  font-size: 12px;
  color: #334155;
  white-space: nowrap;
}

.rh-time-mark-row strong {
  color: #0f172a;
}

.rh-time-mark-missing {
  display: inline-flex;
  align-items: center;
  border: 1px solid #fecaca;
  border-radius: 999px;
  background: #fef2f2;
  color: #b91c1c;
  font-size: 11px;
  font-weight: 700;
  padding: 1px 7px;
}

.rh-dashboard-panels {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 10px;
}

.rh-dashboard-panel {
  grid-column: span 6;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  min-width: 0;
}

.rh-dashboard-panel--full {
  grid-column: span 12;
}

.rh-dashboard-panel .rh-report-table {
  min-width: 560px;
}

.rh-dashboard-chart-wrap {
  position: relative;
  height: 250px;
}

.rh-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 700;
  color: #334155;
  background: #f8fafc;
}

.rh-chip-system {
  border-color: rgba(22,101,52,0.3);
  color: #166534;
  background: #ecfdf3;
}

.rh-chip-import {
  border-color: rgba(3,105,161,0.28);
  color: #0369a1;
  background: #eef9ff;
}

.rh-chip-positive {
  border-color: rgba(22,101,52,0.35);
  color: #166534;
  background: #dcfce7;
}

.rh-chip-negative {
  border-color: rgba(185,28,28,0.35);
  color: #991b1b;
  background: #fee2e2;
}

.rh-chip-zero {
  border-color: rgba(71,85,105,0.3);
  color: #475569;
  background: #f1f5f9;
}

body.theme-dark .rh-kpi-card {
  background: var(--surface-2);
  border-color: var(--border);
}

body.theme-dark .rh-dashboard-panel {
  background: var(--surface-2);
  border-color: var(--border);
}

body.theme-dark .rh-kpi-label {
  color: var(--text-muted);
}

body.theme-dark .rh-kpi-value,
body.theme-dark .rh-report-table td,
body.theme-dark .rh-report-table th {
  color: var(--text-main);
}

body.theme-dark .rh-report-table th,
body.theme-dark .rh-report-table td {
  border-color: var(--border);
}

body.theme-dark .rh-chip {
  background: rgba(255,255,255,0.05);
  border-color: var(--border);
  color: var(--text-main);
}

body.theme-dark .rh-chip-system {
  background: rgba(22,163,74,0.16);
  border-color: rgba(74,222,128,0.36);
  color: #bbf7d0;
}

body.theme-dark .rh-chip-import {
  background: rgba(14,116,144,0.2);
  border-color: rgba(56,189,248,0.32);
  color: #bae6fd;
}

body.theme-dark .rh-chip-positive {
  background: rgba(22,163,74,0.2);
  border-color: rgba(74,222,128,0.35);
  color: #bbf7d0;
}

body.theme-dark .rh-chip-negative {
  background: rgba(220,38,38,0.18);
  border-color: rgba(248,113,113,0.35);
  color: #fecaca;
}

body.theme-dark .rh-chip-zero {
  background: rgba(100,116,139,0.2);
  border-color: rgba(148,163,184,0.35);
  color: #cbd5e1;
}

body.theme-dark .rh-time-toolbar input,
body.theme-dark .rh-time-toolbar select {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--text-main);
}

body.theme-dark .rh-time-mark-row {
  color: var(--text-main);
}

body.theme-dark .rh-time-mark-row strong {
  color: var(--text-main);
}

body.theme-dark .rh-time-mark-missing {
  background: rgba(220,38,38,0.2);
  border-color: rgba(248,113,113,0.35);
  color: #fecaca;
}

/* Transição ao alternar tema (fluida e leve) */
@media (max-width: 980px) {
  .rh-dashboard-panel {
    grid-column: span 12;
  }

  .rh-dashboard-chart-wrap {
    height: 220px;
  }

  .rh-time-toolbar {
    width: 100%;
    justify-content: flex-start;
  }

  .rh-time-toolbar :is(input, select, .btn) {
    width: 100%;
    min-width: 0 !important;
    max-width: none !important;
  }
}

body.theme-switching {
  transition: background-color .24s cubic-bezier(.22,.61,.36,1), color .2s cubic-bezier(.22,.61,.36,1) !important;
}

body.theme-switching :is(
  .panel-container,
  .card,
  .modal-box,
  .intranet-card,
  .intranet-sidebar,
  .fat-card,
  .fat-modal-box,
  .btn,
  input,
  select,
  textarea,
  th,
  td,
  .site-footer,
  .ui-global-controls,
  .ui-global-main-toggle,
  .ui-global-toggle,
  #view-portal .portal-col-left > div,
  #view-portal .portal-col-right > div,
  #view-portal .portal-appt-card,
  #view-portal .portal-history-card,
  #view-portal .portal-transport-card
) {
  transition: background-color .24s cubic-bezier(.22,.61,.36,1), color .2s cubic-bezier(.22,.61,.36,1), border-color .24s cubic-bezier(.22,.61,.36,1), box-shadow .24s cubic-bezier(.22,.61,.36,1) !important;
}

body.theme-switching::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1200;
  opacity: 0;
  animation: theme-switch-fade .28s ease;
}

body.theme-dark.theme-switching::before {
  background: rgba(0,0,0,0.1);
}

body:not(.theme-dark).theme-switching::before {
  background: rgba(255,255,255,0.12);
}

@keyframes theme-switch-fade {
  0% { opacity: 0; }
  35% { opacity: 1; }
  100% { opacity: 0; }
}

body.reduced-motion.theme-switching,
body.reduced-motion.theme-switching * {
  transition: none !important;
}

body.reduced-motion.theme-switching::before {
  display: none !important;
}

/* Portal do paciente: tokens utilitários */
#view-portal .portal-inline-muted {
  margin-bottom: 10px;
  font-size: 0.82rem;
  color: var(--text-muted);
}

#view-portal .portal-inline-error {
  margin-bottom: 10px;
  font-size: 0.82rem;
  color: var(--danger);
}

#view-portal .portal-inline-alert {
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 12px;
  border: 1.5px solid var(--border);
  font-size: 0.83rem;
}

#view-portal .portal-inline-alert span {
  font-size: 0.78rem;
}

#view-portal .portal-inline-alert.is-danger {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

#view-portal .portal-inline-alert.is-warn {
  background: #fef9c3;
  border-color: #fde68a;
  color: #854d0e;
}

/* Portal: calendário e slots */
#view-portal .portal-calendar-day {
  background: #f8fafc !important;
  color: #64748b !important;
  border-color: transparent !important;
}

#view-portal .portal-calendar-day.is-past {
  background: #f8fafc !important;
  color: #cbd5e1 !important;
}

#view-portal .portal-calendar-day.is-selected {
  background: #bfdbfe !important;
  color: #4e1550 !important;
  border-color: #3b82f6 !important;
}

#view-portal .portal-calendar-day.is-mine {
  background: #fef9c3 !important;
  color: #854d0e !important;
  border-color: #fde68a !important;
}

#view-portal .portal-calendar-day.is-available {
  background: #bbf7d0 !important;
  color: #14532d !important;
}

#view-portal .portal-calendar-day.is-empty {
  background: #f8fafc !important;
  color: #94a3b8 !important;
}

#view-portal .portal-day-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  display: block;
}

#view-portal .portal-day-dot.is-mine {
  background: #d97706;
}

#view-portal .portal-day-dot.is-available {
  background: #16a34a;
}

#view-portal .portal-slot-btn {
  padding: 8px 14px !important;
  border-radius: 8px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  border: 1.5px solid #e2e8f0 !important;
  transition: all 0.15s ease !important;
}

#view-portal .portal-slot-btn.is-disabled {
  background: #f8fafc !important;
  color: #94a3b8 !important;
  border-color: #e2e8f0 !important;
  cursor: not-allowed !important;
}

#view-portal .portal-slot-btn.is-available {
  background: #f0fdf4 !important;
  color: #14532d !important;
  border-color: #bbf7d0 !important;
  cursor: pointer !important;
}

#view-portal .portal-slot-btn.is-available:hover {
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary) !important;
}

#view-portal .portal-slot-help {
  font-size: 0.72rem;
}

/* Portal: cards dinâmicos */
#view-portal .portal-appt-card {
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 13px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#view-portal .portal-appt-card.is-active {
  background: #f0fdf4;
  border-color: #bbf7d0;
}

#view-portal .portal-appt-card.is-cancelled {
  background: #fef2f2;
  border-color: #fecaca;
}

#view-portal .portal-appt-card.is-completed {
  background: #eff6ff;
  border-color: #bfdbfe;
}

#view-portal .portal-appt-card.is-no-show {
  background: #fefce8;
  border-color: #fde68a;
}

#view-portal .portal-appt-title {
  font-weight: 700;
  font-size: 0.88rem;
  color: #1e293b;
}

#view-portal .portal-appt-status {
  font-size: 0.75rem;
  font-weight: 700;
  margin-top: 2px;
}

#view-portal .portal-appt-card.is-active .portal-appt-status { color: #14532d; }
#view-portal .portal-appt-card.is-cancelled .portal-appt-status { color: #991b1b; }
#view-portal .portal-appt-card.is-completed .portal-appt-status { color: #1e40af; }
#view-portal .portal-appt-card.is-no-show .portal-appt-status { color: #854d0e; }

#view-portal .portal-appt-note {
  font-size: 0.72rem;
  color: #64748b;
  margin-top: 2px;
}

#view-portal .portal-appt-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}

#view-portal .portal-appt-cancel-btn {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
  border-radius: 7px;
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

#view-portal .portal-appt-cancel-btn:hover {
  background: #fee2e2;
}

#view-portal .portal-history-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-left: 3px solid var(--primary);
  border-radius: 10px;
  padding: 10px 13px;
  margin-bottom: 8px;
}

#view-portal .portal-history-title {
  font-weight: 700;
  font-size: 0.88rem;
  color: #1e293b;
}

#view-portal .portal-history-ticket {
  color: var(--primary);
}

#view-portal .portal-history-status {
  font-size: 0.75rem;
  font-weight: 700;
  color: #14532d;
  margin-top: 2px;
}

#view-portal .portal-history-meta {
  font-size: 0.72rem;
  color: #64748b;
  margin-top: 2px;
}

#view-portal .portal-transport-card {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 10px;
  background: #fff;
}

#view-portal .portal-transport-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #1e293b;
}

#view-portal .portal-transport-meta-line {
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 2px;
}

#view-portal .portal-transport-status {
  font-size: 0.73rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
}

#view-portal .portal-transport-status.is-validated {
  background: #ecfdf5;
  border-color: #86efac;
  color: #166534;
}

#view-portal .portal-transport-status.is-no-show {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

#view-portal .portal-transport-status.is-pending {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1e40af;
}

#view-portal .portal-transport-qr-help {
  font-size: 0.72rem;
  color: #64748b;
  max-width: 280px;
}

#view-portal .portal-qr-thumb {
  width: 120px;
  height: 120px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  padding: 4px;
  cursor: zoom-in;
}

.portal-qr-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15,23,42,0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.portal-qr-modal-box {
  background: #fff;
  border-radius: 14px;
  max-width: 420px;
  width: 100%;
  padding: 14px;
  box-shadow: 0 12px 36px rgba(0,0,0,0.35);
}

.portal-qr-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.portal-qr-modal-title {
  font-size: 0.92rem;
  color: #0f172a;
}

.portal-qr-close-btn {
  border: 1px solid #e2e8f0;
  background: #fff;
  border-radius: 8px;
  padding: 4px 10px;
  cursor: pointer;
  font-size: 0.8rem;
}

.portal-qr-modal-image-wrap {
  display: flex;
  justify-content: center;
}

.portal-qr-modal-image {
  width: 100%;
  max-width: 340px;
  height: auto;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 8px;
  background: #fff;
}

/* Dark mode refinado no portal do paciente */
body.theme-dark #view-portal.view-section {
  background: #121212 !important;
}

body.theme-dark #view-portal > .panel-container {
  background: #1b1b1b !important;
  border-color: #2d2d2d !important;
}

body.theme-dark #view-portal .portal-col-left > div,
body.theme-dark #view-portal .portal-col-right > div {
  background: #1e1e1e !important;
  border-color: #2d2d2d !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.45) !important;
}

body.theme-dark #view-portal .portal-col-left > div > div:first-child,
body.theme-dark #view-portal .portal-col-right > div > div:first-child {
  background: #252525 !important;
  border-bottom-color: #333333 !important;
}

body.theme-dark #view-portal .portal-col-left > div:first-child > div:first-child {
  background: linear-gradient(135deg, #5f4378 0%, #6f5b85 100%) !important;
}

body.theme-dark #view-portal .portal-card-head::after,
body.theme-dark #view-portal .portal-card-refresh-btn {
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-inline-muted {
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-inline-alert.is-danger {
  background: #3a2323 !important;
  border-color: #5a3232 !important;
  color: #f7c1c1 !important;
}

body.theme-dark #view-portal .portal-inline-alert.is-warn {
  background: #3a3122 !important;
  border-color: #5a4a30 !important;
  color: #ffe8ad !important;
}

body.theme-dark #view-portal .portal-calendar-day {
  background: #2c2c2c !important;
  border-color: #333333 !important;
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-past {
  background: #262626 !important;
  color: #6f6f6f !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-selected {
  background: #5f4378 !important;
  border-color: #7b5c95 !important;
  color: #f4edf8 !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-mine {
  background: #4b3f21 !important;
  border-color: #6f5a2a !important;
  color: #f4deb0 !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-available {
  background: #244233 !important;
  color: #b9e7cc !important;
}

body.theme-dark #view-portal .portal-slot-btn.is-disabled {
  background: #2c2c2c !important;
  border-color: #333333 !important;
  color: #8f8f8f !important;
}

body.theme-dark #view-portal .portal-slot-btn.is-available {
  background: #2a3f31 !important;
  border-color: #3f5d48 !important;
  color: #d3eedf !important;
}

body.theme-dark #view-portal .portal-slot-btn.is-available:hover {
  background: #6f5b85 !important;
  border-color: #8a74a1 !important;
  color: #f5f0fa !important;
}

body.theme-dark #view-portal .portal-appt-card,
body.theme-dark #view-portal .portal-history-card,
body.theme-dark #view-portal .portal-transport-card {
  background: #2a2a2a !important;
  border-color: #333333 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-active {
  background: #2a3f31 !important;
  border-color: #3f5d48 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-cancelled {
  background: #3a2323 !important;
  border-color: #5a3232 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-completed {
  background: #2a3442 !important;
  border-color: #3b4e65 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-no-show {
  background: #3a3122 !important;
  border-color: #5a4a30 !important;
}

body.theme-dark #view-portal .portal-appt-title,
body.theme-dark #view-portal .portal-history-title,
body.theme-dark #view-portal .portal-transport-title {
  color: #e0e0e0 !important;
}

body.theme-dark #view-portal .portal-appt-note,
body.theme-dark #view-portal .portal-history-meta,
body.theme-dark #view-portal .portal-transport-meta-line,
body.theme-dark #view-portal .portal-transport-qr-help {
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-appt-cancel-btn {
  background: #7a3030 !important;
  border-color: #8d3a3a !important;
  color: #ffeaea !important;
}

body.theme-dark #view-portal .portal-transport-status.is-validated {
  background: #2a3f31 !important;
  border-color: #3f5d48 !important;
  color: #cce9d8 !important;
}

body.theme-dark #view-portal .portal-transport-status.is-no-show {
  background: #3a2323 !important;
  border-color: #5a3232 !important;
  color: #f5c1c1 !important;
}

body.theme-dark #view-portal .portal-transport-status.is-pending {
  background: #2a3442 !important;
  border-color: #3b4e65 !important;
  color: #cdddf2 !important;
}

body.theme-dark #view-portal .portal-qr-thumb,
body.theme-dark .portal-qr-modal-image {
  background: #1e1e1e !important;
  border-color: #333333 !important;
}

body.theme-dark .portal-qr-modal {
  background: rgba(0,0,0,0.78) !important;
}

body.theme-dark .portal-qr-modal-box {
  background: #1e1e1e !important;
  border: 1px solid #333333 !important;
}

body.theme-dark .portal-qr-modal-title {
  color: #e0e0e0 !important;
}

body.theme-dark .portal-qr-close-btn {
  background: #2c2c2c !important;
  border-color: #333333 !important;
  color: #e0e0e0 !important;
}

/* Acessibilidade reforçada no portal */
body.accessibility-mode #view-portal {
  font-size: 1.06rem;
}

body.accessibility-mode #view-portal .portal-header h2,
body.accessibility-mode #view-portal .portal-card-head > span,
body.accessibility-mode #view-portal .portal-appt-title,
body.accessibility-mode #view-portal .portal-history-title,
body.accessibility-mode #view-portal .portal-transport-title {
  font-size: 1rem !important;
}

body.accessibility-mode #view-portal #portal-user-info,
body.accessibility-mode #view-portal .portal-inline-muted,
body.accessibility-mode #view-portal .portal-inline-error,
body.accessibility-mode #view-portal .portal-appt-note,
body.accessibility-mode #view-portal .portal-history-meta,
body.accessibility-mode #view-portal .portal-transport-meta-line,
body.accessibility-mode #view-portal .portal-transport-qr-help {
  font-size: 0.9rem !important;
  line-height: 1.62 !important;
}

body.accessibility-mode #view-portal .portal-calendar-day {
  min-height: 52px !important;
  font-size: 0.98rem !important;
}

body.accessibility-mode #view-portal .portal-slot-btn {
  min-height: 52px !important;
  font-size: 0.92rem !important;
}

body.accessibility-mode #view-portal .portal-header-actions .btn {
  min-height: 44px !important;
  font-size: 0.9rem !important;
}

body.high-contrast-mode #view-portal.view-section,
body.high-contrast-mode #view-portal > .panel-container,
body.high-contrast-mode #view-portal .portal-col-left > div,
body.high-contrast-mode #view-portal .portal-col-right > div,
body.high-contrast-mode #view-portal .portal-appt-card,
body.high-contrast-mode #view-portal .portal-history-card,
body.high-contrast-mode #view-portal .portal-transport-card {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.high-contrast-mode #view-portal .portal-card-head::after,
body.high-contrast-mode #view-portal .portal-inline-muted,
body.high-contrast-mode #view-portal .portal-history-meta,
body.high-contrast-mode #view-portal .portal-transport-meta-line,
body.high-contrast-mode #view-portal .portal-transport-qr-help {
  color: #ffff00 !important;
}

body.high-contrast-mode #view-portal .portal-calendar-day {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.theme-dark .bg-white,
body.theme-dark .bg-gray-50,
body.theme-dark .bg-blue-50,
body.theme-dark .bg-blue-100,
body.theme-dark .bg-green-100 {
  background-color: var(--surface-2) !important;
}

body.theme-dark .text-gray-800,
body.theme-dark .text-gray-700,
body.theme-dark .text-gray-600,
body.theme-dark .text-gray-500,
body.theme-dark .text-blue-800,
body.theme-dark .text-green-800 {
  color: var(--text-main) !important;
}

body.theme-dark .site-footer {
  background: #181818;
  color: var(--text-muted);
  border-top-color: var(--border);
}

body.theme-dark .btn {
  background: #2a2a2a;
  color: #e6e6e6;
  border-color: #3a3a3a;
}

body.theme-dark .btn:hover {
  background: #343434;
}

body.theme-dark .btn-primary {
  background: #5f4378;
  border-color: #4f3763;
  color: #f5eefc;
}

body.theme-dark .btn-primary:hover {
  background: #765494;
}

body.theme-dark .btn-accent {
  background: #8f6f1f;
  border-color: #765b19;
  color: #fff7dd;
}

body.theme-dark .btn-accent:hover {
  background: #a07d25;
  color: #fff;
}

body.theme-dark .btn-success {
  background: #2d6b49;
  border-color: #24543a;
  color: #eaf8ef;
}

body.theme-dark .btn-success:hover {
  background: #367f57;
}

body.theme-dark .btn-warning {
  background: #8f6e1a;
  border-color: #755914;
  color: #fff4d5;
}

body.theme-dark .btn-warning:hover {
  background: #a17c1c;
}

body.theme-dark .btn-danger {
  background: #7a3030;
  border-color: #622626;
  color: #ffeaea;
}

body.theme-dark .btn-danger:hover {
  background: #8d3a3a;
}

body.theme-dark .status-active,
body.theme-dark .rec-status-active,
body.theme-dark .rec-status-completed,
body.theme-dark .rec-status-closed,
body.theme-dark .text-success {
  color: #79d19f !important;
}

body.theme-dark .status-inactive,
body.theme-dark .rec-status-cancelled,
body.theme-dark .rec-status-no_show,
body.theme-dark .text-danger {
  color: #f28b82 !important;
}

body.theme-dark .status-waiting,
body.theme-dark .rec-status-waiting {
  color: #ffd54f !important;
}

body.theme-dark .ui-global-controls {
  background: rgba(30,30,30,0.96);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-controls.is-collapsed {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

body.theme-dark .ui-global-main-toggle {
  background: #2a2a2a;
  color: var(--text-main);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-main-toggle:hover {
  background: #343434;
  border-color: #3d3d3d;
}

body.theme-dark .task-notification-toggle,
body.theme-dark .task-notification-panel,
body.theme-dark .task-notification-item,
body.theme-dark .task-notification-close {
  background: #24242a;
  border-color: var(--border-strong);
  color: var(--text-main);
}

body.theme-dark .task-notification-panel header {
  background: linear-gradient(135deg, rgba(157, 76, 157, 0.18), rgba(59, 130, 246, 0.12));
  border-color: var(--border-strong);
}

body.theme-dark .task-notification-panel header strong,
body.theme-dark .task-notification-item strong {
  color: var(--text-main);
}

body.theme-dark .task-notification-panel header span,
body.theme-dark .task-notification-item small,
body.theme-dark .task-notification-empty {
  color: var(--text-muted);
}

body.theme-dark .task-notification-item.is-new {
  background: #372a1e;
  border-color: #8b5a2b;
}

body.theme-dark #reg-modal .reg-task-history-item,
body.theme-dark #reg-modal .reg-task-history-change,
body.theme-dark #reg-modal .reg-task-attachments,
body.theme-dark #reg-modal .reg-task-attachment-item {
  background: #24242a;
  border-color: var(--border-strong);
}

body.theme-dark #reg-modal .reg-task-history-head strong,
body.theme-dark #reg-modal .reg-task-history-change strong,
body.theme-dark #reg-modal .reg-task-history-content p,
body.theme-dark #reg-modal .reg-task-attachments-head strong,
body.theme-dark #reg-modal .reg-task-attachment-item strong {
  color: var(--text-main);
}

body.theme-dark #reg-modal .reg-task-history-head span,
body.theme-dark #reg-modal .reg-task-history-change span,
body.theme-dark #reg-modal .reg-task-attachments-head span,
body.theme-dark #reg-modal .reg-task-attachment-item small,
body.theme-dark #reg-modal .reg-task-attachment-help {
  color: var(--text-muted);
}

body.theme-dark #reg-modal .reg-task-history-head em,
body.theme-dark #reg-modal .reg-task-history-content p {
  background: rgba(157, 76, 157, 0.12);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-toggle {
  background: #2a2a2a;
  color: var(--text-main);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-toggle:hover {
  background: #343434;
}

body.theme-dark .ui-global-toggle.is-active {
  background: linear-gradient(135deg, #7f6a95 0%, #907ca4 100%);
  color: #f4f4f4;
  border-color: #9a88ac;
}

body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header,
body.theme-dark #view-faturamento .fat-header {
  background: linear-gradient(135deg, #2c2c2c 0%, #1f1f1f 100%) !important;
  border-color: var(--border) !important;
}

body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header h2,
body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header h3,
body.theme-dark #view-faturamento .fat-header h2 {
  color: #e6e6e6 !important;
}

body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .small,
body.theme-dark #view-faturamento .fat-header .small {
  color: #a0a0a0 !important;
}

@media (max-width: 760px) {
  .ui-global-controls {
    left: auto;
    right: 12px;
    bottom: 12px;
    flex-direction: column;
    padding: 10px;
    width: min(270px, calc(100vw - 24px));
  }

  .ui-global-main-toggle {
    width: 100%;
    min-width: 0;
  }

  .ui-global-controls-body {
    flex-direction: column;
  }

  .ui-font-controls {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .ui-global-toggle {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 430px) {
  .ui-global-controls { right: 8px; bottom: 8px; padding: 8px; width: min(270px, calc(100vw - 16px)); }
  .ui-global-controls.is-collapsed { width: auto; padding: 0; }
  .ui-global-controls-body, .ui-a11y-extra { gap: 6px; }
  .ui-global-main-toggle, .ui-global-toggle, .ui-font-btn { min-height: 40px; }
  .ui-font-controls { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
  .ui-font-scale-label { font-size: 0.62rem; min-width: 2.2rem; }
  .task-notification-widget { right: 8px; bottom: 64px; }
  .task-notification-toggle { min-height: 42px; padding: 0 13px; }
  .task-notification-panel { bottom: 52px; width: min(360px, calc(100vw - 16px)); }
  .task-notification-toggle-text { display: none; }
}

/* ── UTILITÁRIOS ─────────────────────────────────────────── */
.hidden    { display: none !important; }
.flex      { display: flex; gap: 10px; align-items: center; }
.flex-col  { display: flex; flex-direction: column; gap: 10px; }
.space-between { justify-content: space-between; }
.center    { text-align: center; }
.mt-2      { margin-top: 1rem; }
.mb-2      { margin-bottom: 1rem; }
.small     { font-size: 0.85rem; color: var(--text-muted); }
.bold      { font-weight: 700; }

/* ── ANIMAÇÕES ───────────────────────────────────────────── */
@keyframes fadeIn    { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeInUp  { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes slideIn   { from { opacity:0; transform:translateX(-12px); } to { opacity:1; transform:translateX(0); } }
@keyframes slideInRight { from { opacity:0; transform:translateX(24px); } to { opacity:1; transform:translateX(0); } }
@keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(109,31,108,0.4); } 70% { box-shadow: 0 0 0 12px rgba(109,31,108,0); } 100% { box-shadow: 0 0 0 0 rgba(109,31,108,0); } }
@keyframes panel-enter { from { opacity: 0; transform: translateY(10px) scale(0.995); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes btn-pop { 0% { transform: translateY(0) scale(1); } 45% { transform: translateY(-1px) scale(0.97); } 100% { transform: translateY(0) scale(1); } }
@keyframes call-ping { 0% { box-shadow: 0 0 0 0 rgba(230,184,0,0.42); } 100% { box-shadow: 0 0 0 11px rgba(230,184,0,0); } }

/* ── SEÇÕES / VIEWS ──────────────────────────────────────── */
.view-section { display: none; min-height: var(--app-viewport-height); width: 100%; padding: 24px; opacity: 1; transform: translateY(0); }
.view-section.active { display: block; }
.view-section.active.is-entering { animation: panel-enter .26s cubic-bezier(.2,.7,.3,1); }

/* ════════════════════════════════════════════════════════════
   LOGIN — Split screen refinado
════════════════════════════════════════════════════════════ */
#view-login.view-section {
  display: none; padding: 0; min-height: var(--app-viewport-height); width: 100%;
  position: relative;
  background: linear-gradient(140deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-light) 100%);
}
#view-login.view-section.active { display: flex; align-items: stretch; }

#view-login,
#view-login input,
#view-login button,
#view-login select,
#view-login textarea,
#view-login a {
  font-family: var(--font-login);
}

/* Painel Esquerdo */
.login-left-panel {
  flex: 1;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 56px 48px;
  background: linear-gradient(160deg, var(--primary-dark) 0%, var(--primary) 55%, #8e3a8d 100%);
  position: relative; overflow: hidden; min-height: 100vh;
}
.login-left-panel::before {
  content: ''; position: absolute; top: -100px; left: -100px;
  width: 500px; height: 500px; border-radius: 50%;
  background: rgba(255,255,255,0.04); pointer-events: none;
}
.login-left-panel::after {
  content: ''; position: absolute; bottom: -120px; right: -80px;
  width: 420px; height: 420px; border-radius: 50%;
  background: rgba(230,184,0,0.09); pointer-events: none;
}

/* Decoração geométrica extra */
.login-left-panel > * { position: relative; z-index: 1; }

.login-brand-area {
  display: flex; flex-direction: column; align-items: center;
  gap: 22px; text-align: center; max-width: 360px;
}

.login-logo-prefeitura-main {
  width: 176px;
  max-width: 58%;
  min-width: 122px;
  height: auto;
  object-fit: contain;
  filter: none;
  opacity: 0.94;
}

.login-brand-title {
  font-family: var(--font-login);
  font-size: 2.02rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.25;
  text-align: center;
  max-width: 330px;
  letter-spacing: -0.02em;
}

.login-brand-title-highlight {
  color: rgba(230,184,0,0.94);
}

.login-brand-tagline {
  color: rgba(255,255,255,0.78);
  font-size: 0.95rem;
  font-weight: 500;
  max-width: 300px; line-height: 1.65;
  font-style: normal;
}

/* Feature pills no painel esquerdo */
.login-feature-list {
  display: flex; flex-direction: column; gap: 10px;
  width: 100%; max-width: 300px; margin-top: 8px;
}
.login-feature-item {
  display: flex; align-items: center; gap: 12px;
  background: rgba(255,255,255,0.09);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 12px; padding: 11px 16px;
  backdrop-filter: blur(4px);
  transition: background .2s;
}
.login-feature-item:hover { background: rgba(255,255,255,0.14); }
.login-feature-item span { font-size: 0.83rem; color: rgba(255,255,255,0.90); line-height: 1.4; }

/* Painel Direito */
.login-right-panel {
  flex: 0 0 460px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 52px 48px;
  background: var(--surface);
  min-height: 100vh;
  box-shadow: -12px 0 60px rgba(78,21,80,0.22);
  position: relative; z-index: 2; overflow-y: auto;
}
.login-right-panel .prefeitura-wrap {
  display: flex; justify-content: center;
  margin-bottom: 28px; pointer-events: none;
}
.login-right-panel .panel-container {
  max-width: 100%; width: 100%;
  background: transparent; box-shadow: none;
  border: none; padding: 0; border-radius: 0; margin: 0;
}

.login-form-title {
  font-family: var(--font-login);
  font-size: 1.6rem; font-weight: 700;
  color: var(--primary-dark); margin-bottom: 6px; text-align: center;
  letter-spacing: -0.01em;
}
.login-form-subtitle {
  font-size: 0.87rem; color: var(--text-muted);
  margin-bottom: 28px; text-align: center; line-height: 1.5;
}

.login-form-links {
  margin-top: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.login-link-chip {
  border: 1px solid rgba(109,31,108,0.24);
  background: #ffffff;
  color: var(--primary-dark);
  border-radius: 12px;
  min-height: 38px;
  padding: 8px 10px;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.25;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}

.login-link-chip:hover {
  transform: translateY(-1px);
  border-color: var(--primary);
  background: #ffffff;
  box-shadow: 0 6px 16px rgba(109,31,108,0.12);
}

.login-link-chip:focus-visible {
  outline: 0;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(109,31,108,0.16);
}

.login-back-wrap {
  text-align: center;
}

.login-back-link {
  border: 0;
  background: transparent;
  color: var(--primary);
  font-size: 0.84rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.login-back-link:hover {
  color: var(--primary-dark);
}

.forgot-access-note,
.password-policy-hint {
  margin: -4px 0 12px;
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.45;
  text-align: left;
}

.forgot-access-note {
  margin: 2px 0 14px;
  text-align: center;
}

/* ── INPUTS ──────────────────────────────────────────────── */
input, select, textarea {
  width: 100%; padding: 11px 14px; margin: 4px 0 14px;
  border: 1.5px solid var(--field-border, var(--border));
  border-radius: var(--radius-sm);
  font-size: 0.92rem; font-family: var(--font-ui);
  outline: none; background: var(--field-bg, var(--surface));
  color: var(--text-main);
  transition: border-color .18s, box-shadow .18s, background .18s;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(109,31,108,0.10);
  background: #fff;
}
input::placeholder, textarea::placeholder { color: var(--text-light); }

/* ── SELECAO DE UNIDADES ─────────────────────────────────── */
#view-units {
  background: var(--bg-body);
  background-image:
    radial-gradient(ellipse 70% 50% at 0% 0%, rgba(109,31,108,0.08) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 100% 100%, rgba(230,184,0,0.07) 0%, transparent 60%);
}

.unit-shell,
.ubs-shell {
  max-width: 1500px;
  margin: 0 auto;
  padding: 0;
}

.unit-header,
.ubs-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
  padding: 18px 20px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 58%, var(--primary-light) 100%);
  color: #fff;
  box-shadow: var(--shadow);
}

.unit-kicker {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.78);
}

.unit-header h1 {
  margin: 2px 0 4px;
  font-size: 1.72rem;
  color: #fff;
  letter-spacing: 0;
}

.unit-user-info,
.ubs-user-info {
  color: rgba(255,255,255,0.82);
  font-size: 0.9rem;
  font-weight: 600;
}

.unit-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.master-shell {
  min-height: 100vh;
  padding: 28px;
  background: var(--bg-body);
}

.master-header {
  max-width: 1540px;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 26px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  border: none;
  box-shadow: var(--shadow);
  color: #fff;
}

.master-kicker {
  font-size: 0.76rem;
  text-transform: uppercase;
  font-weight: 900;
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.08em;
}

.master-header h1 {
  margin: 2px 0 4px;
  color: #fff;
  font-size: 1.62rem;
  letter-spacing: 0;
}

.master-user-info {
  color: rgba(255,255,255,0.86);
  font-size: 0.9rem;
  font-weight: 600;
}

.master-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
}

.master-live-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.22);
  background: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.9);
  font-size: 0.76rem;
  font-weight: 800;
}

.master-live-chip span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 0 5px rgba(34,197,94,0.18);
}

.master-live-chip strong {
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0;
  white-space: nowrap;
}

.master-header .btn {
  background: rgba(255,255,255,0.14);
  color: #fff;
  border-color: rgba(255,255,255,0.28);
  font-size: 0.8rem;
}

.master-header .btn:hover {
  background: rgba(255,255,255,0.26);
  color: #fff;
  transform: translateY(-1px);
}

.master-header .btn-danger {
  background: rgba(220,38,38,0.78);
  border-color: rgba(255,255,255,0.28);
}

.master-header .btn-danger:hover {
  background: rgba(185,28,28,0.92);
}

.master-layout {
  max-width: 1540px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.master-menu,
.master-content {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}

.master-menu {
  padding: 10px;
  display: grid;
  gap: 8px;
  position: sticky;
  top: 16px;
}

.master-menu-item {
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 8px;
  padding: 12px;
  cursor: pointer;
  color: var(--text-main);
}

.master-menu-item span {
  display: block;
  font-weight: 900;
  font-size: 0.92rem;
}

.master-menu-item small {
  display: block;
  margin-top: 3px;
  color: var(--text-muted);
  font-size: 0.76rem;
}

.master-menu-item.active {
  background: var(--primary-muted);
  border-color: rgba(109,31,108,0.2);
  color: var(--primary-dark);
}

.master-content {
  padding: 16px;
  min-height: 680px;
}

.master-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.master-metric {
  border: 1px solid rgba(109,31,108,0.12);
  border-radius: 8px;
  padding: 11px 12px;
  background: #ffffff;
}

.master-metric span {
  display: block;
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.master-metric strong {
  display: block;
  margin-top: 4px;
  color: var(--primary-dark);
  font-size: 1.36rem;
  line-height: 1;
}

.master-command-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr) minmax(260px, 0.8fr);
  gap: 12px;
  margin-bottom: 14px;
}

.master-command-panel {
  min-width: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 14px;
}

.master-command-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.master-command-head h2 {
  margin: 0 0 2px;
  color: var(--primary-dark);
  font-size: 1rem;
  letter-spacing: 0;
}

.master-command-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.master-attention-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.master-attention-item {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 9px;
  min-height: 66px;
  text-align: left;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
  color: var(--text-main);
  cursor: pointer;
}

.master-attention-item:hover,
.master-demand-row:hover {
  border-color: rgba(109,31,108,0.25);
  background: #fff;
}

.master-attention-item > span {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border-radius: 999px;
  background: #3b82f6;
  box-shadow: 0 0 0 5px rgba(59,130,246,0.13);
}

.master-attention-item.is-critical > span {
  background: #ef4444;
  box-shadow: 0 0 0 5px rgba(239,68,68,0.14);
}

.master-attention-item.is-warn > span {
  background: #eab308;
  box-shadow: 0 0 0 5px rgba(234,179,8,0.16);
}

.master-attention-item.is-ok > span {
  background: #22c55e;
  box-shadow: 0 0 0 5px rgba(34,197,94,0.15);
}

.master-attention-item strong,
.master-attention-item small {
  display: block;
  min-width: 0;
}

.master-attention-item strong {
  color: var(--text-main);
  font-size: 0.86rem;
  line-height: 1.25;
}

.master-attention-item small {
  margin-top: 3px;
  color: var(--text-muted);
  font-size: 0.72rem;
  line-height: 1.32;
}

.master-demand-ranking {
  display: grid;
  gap: 8px;
}

.master-demand-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  width: 100%;
  min-height: 52px;
  overflow: hidden;
  text-align: left;
  padding: 9px 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
  cursor: pointer;
}

.master-demand-row strong,
.master-demand-row small {
  position: relative;
  z-index: 1;
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.master-demand-row strong {
  color: var(--primary-dark);
  font-size: 0.82rem;
}

.master-demand-row small {
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.master-demand-row > span {
  position: relative;
  z-index: 1;
  align-self: center;
  color: var(--text-main);
  font-weight: 900;
}

.master-demand-row > i {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  min-width: 6%;
  background: linear-gradient(90deg, #6d1f6c, #1f7f5c);
}

.master-governance-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.master-governance-item {
  min-height: 70px;
  padding: 9px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.master-governance-item span,
.master-governance-item small {
  display: block;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.master-governance-item strong {
  display: block;
  margin: 4px 0;
  color: var(--primary-dark);
  font-size: 1.14rem;
  line-height: 1;
}

.master-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.master-ops-panel {
  display: none;
  gap: 10px;
  align-content: start;
}

.master-ops-section {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}

.master-ops-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.master-ops-head h2 {
  margin: 0 0 2px;
  color: var(--primary-dark);
  font-size: 0.96rem;
  letter-spacing: 0;
}

.master-ops-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.master-map-panel {
  min-height: min(72vh, 760px);
  position: relative;
  border: 1px solid rgba(109,31,108,0.18);
  border-radius: 8px;
  overflow: hidden;
  background: #111827;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.04), 0 14px 34px rgba(15,23,42,0.12);
}

.master-map,
.master-map-fallback {
  width: 100%;
  height: min(72vh, 760px);
}

.master-map {
  background: #111827;
}

.master-map .leaflet-tile {
  filter: saturate(0.86) contrast(1.05) brightness(0.9);
}

.master-map .leaflet-control-zoom a {
  background: rgba(17,24,39,0.86);
  border-color: rgba(255,255,255,0.14);
  color: #fff;
}

.master-map .leaflet-control-zoom a:hover {
  background: rgba(109,31,108,0.92);
  color: #fff;
}

.master-map .leaflet-control-attribution {
  background: rgba(17,24,39,0.72);
  color: rgba(255,255,255,0.76);
}

.master-map .leaflet-control-attribution a {
  color: #fff;
}

.master-dashboard-modal-box {
  width: min(1480px, 96vw);
  max-width: 1480px;
  max-height: 92vh;
  overflow: auto;
}

.master-dashboard-modal-panel {
  display: block;
}

.master-dashboard-modal-panel .master-section-head {
  display: none;
}

.ubs-menu-group {
  border-bottom: 1px solid rgba(109,31,108,0.12);
  padding: 4px 0;
}

.ubs-menu-group summary {
  cursor: pointer;
  list-style: none;
  color: var(--primary-dark);
  font-size: 0.78rem;
  font-weight: 800;
  padding: 8px 2px;
}

.ubs-menu-group summary::-webkit-details-marker {
  display: none;
}

.ubs-menu-group summary::after {
  content: "▾";
  float: right;
  transition: transform 0.16s ease;
}

.ubs-menu-group:not([open]) summary::after {
  transform: rotate(-90deg);
}

.reg-help-box {
  border: 1px solid rgba(14,165,233,0.22);
  background: #f0f9ff;
  color: #0f172a;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 8px;
}

.reg-help-box strong {
  display: block;
  color: #075985;
  font-size: 0.86rem;
  margin-bottom: 4px;
}

.reg-help-box p {
  margin: 0;
  color: #334155;
  font-size: 0.78rem;
  line-height: 1.45;
}

.reg-a4-form {
  max-width: 794px;
  min-height: 1050px;
  margin: 0 auto;
  background: #fff;
}

.reg-signature-box {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}

.reg-signature-box > div {
  min-height: 96px;
  border: 1px dashed #9ca3af;
  border-radius: 8px;
  padding: 10px;
  color: #475569;
}

.reg-signature-box strong,
.reg-signature-box span {
  display: block;
}

.reg-signature-box span {
  margin-top: 30px;
  font-size: 0.76rem;
}

.reg-inline-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
}

.master-map::after,
.master-map-fallback::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 390;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(17,24,39,0.08), rgba(109,31,108,0.12));
  background-size: 54px 54px, 54px 54px, 100% 100%;
  mix-blend-mode: multiply;
}

.master-map-fallback {
  position: relative;
  background:
    radial-gradient(circle at 20% 18%, rgba(109,31,108,0.36), transparent 28%),
    radial-gradient(circle at 80% 72%, rgba(31,127,92,0.32), transparent 30%),
    linear-gradient(135deg, #101827 0%, #182033 50%, #111827 100%);
}

.master-map-hud {
  position: absolute;
  left: 16px;
  right: 16px;
  top: 14px;
  z-index: 430;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  pointer-events: none;
}

.master-map-hud > div:first-child {
  color: #fff;
  text-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.master-map-hud span {
  display: block;
  color: rgba(255,255,255,0.72);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.master-map-hud strong {
  display: block;
  margin-top: 2px;
  color: #fff;
  font-size: 1.05rem;
  letter-spacing: 0;
}

.master-map-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
  max-width: 360px;
  pointer-events: auto;
}

.master-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(17,24,39,0.76);
  border: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.88);
  font-size: 0.7rem;
  text-transform: none;
  letter-spacing: 0;
  box-shadow: 0 10px 24px rgba(0,0,0,0.18);
}

.master-map-legend i {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  display: inline-block;
}

.master-map-center-btn {
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.26);
  background: rgba(255,255,255,0.92);
  color: #3b123e;
  font-size: 0.7rem;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(0,0,0,0.16);
}

.master-map-center-btn:hover {
  background: #fff;
}

.legend-green { background: #22c55e; }
.legend-yellow { background: #eab308; }
.legend-red { background: #ef4444; }

.master-map .leaflet-popup-content-wrapper {
  border-radius: 8px;
  background: rgba(17,24,39,0.94);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 18px 44px rgba(15,23,42,0.28);
}

.master-map .leaflet-popup-tip {
  background: rgba(17,24,39,0.94);
}

.master-popup {
  min-width: 168px;
  font-size: 0.82rem;
  line-height: 1.5;
}

.master-popup strong,
.master-popup span {
  display: block;
}

.master-popup strong {
  font-size: 0.95rem;
}

.master-popup span {
  margin: 2px 0 6px;
  color: rgba(255,255,255,0.72);
  font-weight: 800;
}

.master-map-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  min-width: 178px;
  padding: 11px 12px 11px 36px;
  border-radius: 8px;
  background: rgba(17,24,39,0.88);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.14);
  box-shadow: 0 18px 40px rgba(0,0,0,0.26);
  backdrop-filter: blur(8px);
  z-index: 2;
}

.master-map-pin strong {
  display: block;
  font-size: 0.92rem;
}

.master-map-pin .small {
  color: rgba(255,255,255,0.74);
}

.master-map-pin-dot {
  position: absolute;
  left: 13px;
  top: 15px;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--status-color, #22c55e);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--status-color, #22c55e) 20%, transparent);
}

.master-dot {
  content: '';
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: inline-block;
  margin-right: 6px;
  vertical-align: middle;
  background: var(--status-color, #22c55e);
}

.master-marker {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--status-color, #22c55e) 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--status-color, #22c55e) 70%, #fff);
  box-shadow: 0 0 0 7px color-mix(in srgb, var(--status-color, #22c55e) 16%, transparent), 0 14px 24px rgba(15,23,42,0.34);
}

.master-marker::before {
  content: '';
  position: absolute;
  inset: -9px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--status-color, #22c55e) 70%, transparent);
  animation: master-marker-pulse 1.8s ease-out infinite;
}

.master-marker span {
  position: absolute;
  inset: 9px;
  border-radius: 999px;
  background: var(--status-color, #22c55e);
  border: 2px solid #fff;
  box-shadow: 0 0 18px color-mix(in srgb, var(--status-color, #22c55e) 64%, transparent);
}

@keyframes master-marker-pulse {
  0% { transform: scale(0.72); opacity: 0.95; }
  100% { transform: scale(1.25); opacity: 0; }
}

.master-unit-list {
  margin-top: 14px;
  min-height: 0;
  max-height: none;
  overflow: visible;
}

.master-unit-card,
.master-access-card,
.master-chart-box {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}

.master-unit-card {
  padding: 13px;
}

.master-unit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.master-unit-head strong {
  color: var(--primary-dark);
  font-size: 1rem;
}

.master-status-pill {
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 0.72rem;
  font-weight: 900;
  color: #fff;
  background: var(--status-color, #22c55e);
  white-space: nowrap;
}

.master-unit-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.master-unit-stat {
  background: #f8fafc;
  border-radius: 8px;
  padding: 8px;
}

.master-unit-stat span {
  display: block;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.master-unit-stat strong {
  display: block;
  color: var(--text-main);
  font-size: 1rem;
}

.master-unit-manager {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}

.master-unit-manager-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.master-unit-manager-head h2 {
  margin: 0 0 2px;
  color: var(--primary-dark);
  font-size: 1.02rem;
  letter-spacing: 0;
}

.master-unit-manager-head span {
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.master-unit-search {
  height: 40px;
  width: 100%;
  min-width: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 0 12px;
  background: #f8fafc;
}

.master-unit-filters {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.master-unit-filters button {
  min-height: 30px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  padding: 5px 9px;
  background: #f8fafc;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 900;
  cursor: pointer;
}

.master-unit-filters button.active {
  border-color: rgba(109,31,108,0.24);
  background: var(--primary-muted);
  color: var(--primary-dark);
}

.master-unit-rows {
  display: grid;
  gap: 8px;
  overflow: auto;
  padding-right: 4px;
}

.master-unit-row {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}

.master-unit-row-main {
  display: grid;
  grid-template-columns: 13px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}

.master-unit-status-dot {
  width: 10px;
  height: 10px;
  margin-top: 6px;
  border-radius: 999px;
  background: var(--status-color, #22c55e);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--status-color, #22c55e) 16%, transparent);
}

.master-unit-row-title {
  min-width: 0;
}

.master-unit-row-title strong,
.master-unit-row-title span,
.master-unit-row-title small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.master-unit-row-title strong {
  color: var(--primary-dark);
  font-size: 0.92rem;
  white-space: nowrap;
}

.master-unit-row-title span {
  color: var(--text-main);
  font-size: 0.74rem;
  font-weight: 800;
  white-space: nowrap;
}

.master-unit-row-title small {
  color: var(--text-muted);
  font-size: 0.72rem;
  white-space: nowrap;
}

.master-unit-row-meta,
.master-unit-row-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.master-unit-row-meta span:not(.master-status-pill) {
  padding: 4px 7px;
  border-radius: 999px;
  background: #f8fafc;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.master-unit-row-meta span.is-warning {
  background: #fff7ed;
  color: #9a3412;
}

.master-empty-state {
  padding: 18px;
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  color: var(--text-muted);
  font-weight: 800;
  text-align: center;
}

.master-modal-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.master-modal-head h2 {
  margin: 0 0 4px;
  color: var(--primary-dark);
  font-size: 1.18rem;
  letter-spacing: 0;
}

.master-modal-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.84rem;
}

.master-unit-modal-box {
  width: min(820px, calc(100vw - 28px));
  max-width: 820px;
}

.master-unit-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.master-unit-form label {
  display: grid;
  gap: 6px;
  color: var(--text-main);
  font-size: 0.78rem;
  font-weight: 900;
}

.master-unit-form input,
.master-unit-form select,
.master-unit-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 10px 12px;
}

.master-unit-form textarea {
  resize: vertical;
}

.master-unit-form-wide {
  grid-column: 1 / -1;
}

.master-unit-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

.master-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.master-section-head h2 {
  margin: 0 0 3px;
  color: var(--primary-dark);
  font-size: 1.15rem;
  letter-spacing: 0;
}

.master-admin-form {
  display: grid;
  grid-template-columns: minmax(130px, 0.8fr) minmax(180px, 1.2fr) minmax(135px, 0.8fr) minmax(190px, 1.1fr) minmax(160px, 0.9fr) auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
  padding: 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f8fafc;
}

.master-admin-form input,
.master-admin-form select {
  min-width: 0;
  height: 42px;
}

.master-access-list {
  display: grid;
  gap: 10px;
}

.master-access-card {
  padding: 13px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.master-access-card strong {
  color: var(--text-main);
}

.master-access-card .small {
  color: var(--text-muted);
}

.master-access-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.master-access-actions .status-active,
.master-access-actions .status-inactive {
  white-space: nowrap;
}

.master-dashboard-units {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.master-dashboard-unit {
  border: 1px solid #e5e7eb;
  border-left: 5px solid var(--status-color, #22c55e);
  border-radius: 8px;
  padding: 13px;
  background: #fff;
}

.master-dashboard-unit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 11px;
}

.master-dashboard-unit-head strong {
  display: block;
  color: var(--primary-dark);
  font-size: 1rem;
}

.master-dashboard-unit-head span {
  display: block;
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.master-dashboard-unit .master-dot {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin: 3px 0 0;
}

.master-dashboard-unit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.master-dashboard-unit-grid div {
  border-radius: 8px;
  background: #f8fafc;
  padding: 8px;
}

.master-dashboard-unit-grid span {
  display: block;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.master-dashboard-unit-grid strong {
  display: block;
  margin-top: 3px;
  color: var(--text-main);
  font-size: 1rem;
}

.master-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.master-chart-box {
  padding: 14px;
  min-height: 310px;
}

.master-chart-box h3 {
  margin: 0 0 10px;
  color: var(--primary-dark);
  font-size: 0.98rem;
  letter-spacing: 0;
}

.master-chart-box canvas {
  width: 100% !important;
  height: 245px !important;
}

.master-chart-wide {
  grid-column: 1 / -1;
}

/* Admin master v3 - painel mais limpo, operacional e consistente */
.master-shell {
  padding: 22px;
  background:
    linear-gradient(180deg, #f7f8fb 0%, #eef2f7 100%);
}

.master-header {
  padding: 18px 22px;
  border: 1px solid #e5e7eb;
  border-left: 5px solid #6d1f6c;
  border-radius: 14px;
  background: #fff;
  color: var(--text-main);
  box-shadow: 0 18px 42px rgba(15,23,42,0.08);
}

.master-kicker {
  color: #6d1f6c;
}

.master-header h1 {
  color: #111827;
  font-size: 1.5rem;
}

.master-user-info {
  color: #64748b;
}

.master-live-chip {
  border-color: #bbf7d0;
  background: #ecfdf5;
  color: #166534;
}

.master-live-chip strong {
  color: #166534;
}

.master-header .btn {
  background: #fff;
  color: #334155;
  border-color: #dbe3ee;
}

.master-header .btn:hover {
  background: #f8fafc;
  color: #111827;
}

.master-header .btn-danger {
  background: #fff1f2;
  border-color: #fecdd3;
  color: #be123c;
}

.master-header .btn-danger:hover {
  background: #ffe4e6;
  color: #9f1239;
}

.master-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.master-menu {
  position: sticky;
  top: 10px;
  z-index: 20;
  display: flex;
  gap: 6px;
  padding: 6px;
  overflow-x: auto;
  border-radius: 14px;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(14px);
}

.master-menu-item {
  flex: 1 1 0;
  min-width: 176px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "index label"
    "index help";
  column-gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 10px;
}

.master-menu-item i {
  grid-area: index;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 900;
}

.master-menu-item span {
  grid-area: label;
  font-size: 0.9rem;
}

.master-menu-item small {
  grid-area: help;
  margin-top: 1px;
  font-size: 0.72rem;
}

.master-menu-item.active {
  background: #f7eef7;
  border-color: rgba(109,31,108,0.22);
}

.master-menu-item:focus {
  outline: none;
}

.master-menu-item:focus-visible {
  outline: 2px solid rgba(109,31,108,0.32);
  outline-offset: 2px;
}

.master-menu-item.active i {
  background: #6d1f6c;
  color: #fff;
}

.master-content {
  padding: 18px;
  border-radius: 14px;
  box-shadow: 0 18px 48px rgba(15,23,42,0.08);
}

.master-summary-grid {
  gap: 8px;
}

.master-metric {
  position: relative;
  overflow: hidden;
  border-color: #e5e7eb;
  background: #fff;
}

.master-metric::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #6d1f6c;
}

.master-metric:nth-child(2)::before,
.master-metric:nth-child(4)::before {
  background: #1f7f5c;
}

.master-metric:nth-child(3)::before,
.master-metric:nth-child(6)::before {
  background: #b89000;
}

.master-section-head-block {
  padding: 4px 2px 14px;
  border-bottom: 1px solid #e5e7eb;
}

.master-section-kicker {
  display: block;
  margin-bottom: 4px;
  color: #6d1f6c;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.master-access-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
  gap: 12px;
  margin-bottom: 12px;
}

.master-admin-form {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  align-content: start;
  gap: 10px;
  padding: 14px;
  border-color: #e5e7eb;
  background: #fff;
}

.master-form-title {
  grid-column: 1 / -1;
  display: grid;
  gap: 2px;
}

.master-form-title strong {
  color: #111827;
  font-size: 1rem;
}

.master-form-title span {
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.master-admin-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: #334155;
  font-size: 0.74rem;
  font-weight: 900;
}

.master-admin-form label span {
  display: block;
}

.master-admin-form input,
.master-admin-form select {
  width: 100%;
  height: 42px;
  border: 1px solid #dbe3ee;
  border-radius: 8px;
  background: #f8fafc;
  padding: 0 10px;
}

.master-admin-form .btn {
  min-height: 42px;
}

.master-access-summary {
  display: grid;
  gap: 10px;
  align-content: start;
}

.master-access-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.master-access-kpis div,
.master-access-risk,
.master-access-unit-card,
.master-analytics-card,
.master-analytics-insights,
.master-dashboard-unit,
.master-chart-box {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}

.master-access-kpis div {
  padding: 12px;
}

.master-access-kpis span,
.master-analytics-card span {
  display: block;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 900;
}

.master-access-kpis strong,
.master-analytics-card strong {
  display: block;
  margin-top: 4px;
  color: #111827;
  font-size: 1.35rem;
  line-height: 1;
}

.master-access-risk {
  padding: 12px;
}

.master-mini-head {
  display: grid;
  gap: 2px;
  margin-bottom: 8px;
}

.master-mini-head strong {
  color: #111827;
  font-size: 0.9rem;
}

.master-mini-head span {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.master-access-risk-list {
  display: grid;
  gap: 7px;
  max-height: 220px;
  overflow: auto;
  padding-right: 3px;
}

.master-access-risk-list button {
  text-align: left;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
  padding: 9px;
  cursor: pointer;
}

.master-access-risk-list button strong,
.master-access-risk-list button span {
  display: block;
}

.master-access-risk-list button strong {
  color: #9a3412;
  font-size: 0.8rem;
}

.master-access-risk-list button span {
  margin-top: 2px;
  color: #9a3412;
  font-size: 0.7rem;
  font-weight: 800;
}

.master-access-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.master-access-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.master-access-unit-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-left: 4px solid #1f7f5c;
}

.master-access-unit-card.is-pending {
  border-left-color: #f97316;
  background: linear-gradient(180deg, #fff 0%, #fffaf5 100%);
}

.master-access-unit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #edf1f7;
}

.master-access-unit-head h2 {
  margin: 0 0 2px;
  color: #111827;
  font-size: 0.98rem;
  letter-spacing: 0;
}

.master-access-unit-status {
  display: grid;
  justify-items: end;
  gap: 3px;
}

.master-access-unit-status small {
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.master-access-admins {
  display: grid;
  gap: 8px;
}

.master-access-admin-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid #edf1f7;
  border-radius: 8px;
  background: #f8fafc;
}

.master-access-admin-info {
  min-width: 0;
}

.master-access-admin-info strong,
.master-access-admin-info span,
.master-access-admin-info small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.master-access-admin-info strong {
  color: #111827;
  font-size: 0.86rem;
}

.master-access-admin-info span,
.master-access-admin-info small {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.master-access-chip {
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 0.7rem;
  font-weight: 900;
}

.master-access-chip.is-active {
  background: #dcfce7;
  color: #166534;
}

.master-access-chip.is-inactive {
  background: #f1f5f9;
  color: #64748b;
}

.master-access-empty {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px dashed #fdba74;
  border-radius: 8px;
  background: #fff7ed;
}

.master-access-empty strong {
  color: #9a3412;
}

.master-access-empty span {
  color: #9a3412;
  font-size: 0.76rem;
  font-weight: 800;
}

.master-access-unit-footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.master-analytics-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.master-analytics-card {
  padding: 13px;
}

.master-analytics-card small {
  display: block;
  margin-top: 6px;
  color: var(--text-muted);
  font-size: 0.74rem;
  font-weight: 800;
}

.master-analytics-insights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin-bottom: 14px;
  background: #e5e7eb;
}

.master-insight-row {
  display: grid;
  gap: 5px;
  padding: 13px;
  background: #fff;
}

.master-insight-row span {
  color: #6d1f6c;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.master-insight-row strong {
  color: #111827;
  font-size: 0.86rem;
  line-height: 1.35;
}

.master-subsection-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: 18px 0 10px;
}

.master-subsection-head h3 {
  margin: 0;
  color: #111827;
  font-size: 1rem;
  letter-spacing: 0;
}

.master-subsection-head span {
  display: block;
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.master-dashboard-units {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.master-dashboard-unit {
  border-left-width: 4px;
  box-shadow: none;
}

.master-dashboard-unit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.master-dashboard-grid {
  gap: 12px;
}

.master-chart-box {
  min-height: 300px;
  box-shadow: none;
}

.master-chart-box h3 {
  color: #111827;
}

@media (max-width: 1180px) {
  .master-access-workbench,
  .master-access-list,
  .master-analytics-summary,
  .master-analytics-insights,
  .master-dashboard-units {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .master-admin-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .master-shell {
    padding: 10px;
  }

  .master-header {
    padding: 14px;
    border-left-width: 0;
    border-top: 4px solid #6d1f6c;
  }

  .master-header h1 {
    font-size: 1.24rem;
  }

  .master-menu {
    top: 6px;
    padding: 5px;
  }

  .master-menu-item {
    flex: 0 0 150px;
    min-width: 150px;
    padding: 9px;
  }

  .master-content {
    padding: 10px;
  }

  .master-access-workbench,
  .master-access-list,
  .master-access-toolbar,
  .master-analytics-summary,
  .master-analytics-insights,
  .master-dashboard-units,
  .master-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .master-admin-form {
    grid-template-columns: 1fr;
  }

  .master-access-admin-card {
    grid-template-columns: 1fr;
  }

  .master-access-actions,
  .master-access-unit-footer {
    justify-content: flex-start;
  }
}

/* Admin master v4 - densidade e rolagem controlada */
#view-master {
  position: fixed;
  inset: 0;
  z-index: 50;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 0;
  overflow: hidden;
  background: var(--bg-body);
}

#view-master.active ~ .site-footer {
  display: none;
}

#view-master .master-shell {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 22px;
}

#view-master .master-header {
  flex: 0 0 auto;
  width: 100%;
  margin-bottom: 0;
  padding: 12px 18px;
  border: 0;
  border-left: 5px solid #e6b800;
  background:
    linear-gradient(135deg, #4b124b 0%, #6d1f6c 56%, #8c2f89 100%);
  color: #fff;
  box-shadow: 0 18px 42px rgba(76, 18, 76, 0.18);
}

#view-master .master-kicker {
  color: rgba(255,255,255,0.78);
}

#view-master .master-header h1 {
  margin: 1px 0 2px;
  color: #fff;
  font-size: 1.32rem;
}

#view-master .master-user-info {
  color: rgba(255,255,255,0.84);
  font-size: 0.82rem;
}

#view-master .master-header-actions .btn,
#view-master .master-live-chip {
  min-height: 30px;
  padding: 5px 9px;
}

#view-master .master-live-chip {
  border-color: rgba(255,255,255,0.24);
  background: rgba(255,255,255,0.14);
  color: #fff;
}

#view-master .master-live-chip span {
  background: #22c55e;
  box-shadow: 0 0 0 5px rgba(34,197,94,0.22);
}

#view-master .master-live-chip strong {
  color: #fff;
}

#view-master .master-header .btn {
  background: rgba(255,255,255,0.14);
  color: #fff;
  border-color: rgba(255,255,255,0.28);
}

#view-master .master-header .btn:hover {
  background: rgba(255,255,255,0.24);
  color: #fff;
}

#view-master .master-header .btn-danger {
  background: rgba(220,38,38,0.78);
  border-color: rgba(255,255,255,0.28);
  color: #fff;
}

#view-master .master-header .btn-danger:hover {
  background: rgba(185,28,28,0.92);
  color: #fff;
}

#view-master .master-layout {
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  grid-template-columns: 230px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}

#view-master .master-menu {
  align-self: start;
  height: auto;
  min-height: 0;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: visible;
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(250,246,250,0.96) 100%);
  box-shadow: 0 14px 34px rgba(76,18,76,0.10);
}

#view-master .master-menu-item {
  position: relative;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 1px 10px;
  align-items: center;
  min-height: 62px;
  padding: 10px 12px;
  border: 1px solid rgba(109,31,108,0.10);
  background: #fff;
  color: #4e1550;
  box-shadow: 0 6px 16px rgba(76,18,76,0.05);
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease;
}

#view-master .master-menu-item:hover {
  transform: translateY(-1px);
  border-color: rgba(109,31,108,0.24);
  box-shadow: 0 10px 22px rgba(76,18,76,0.10);
}

#view-master .master-menu-item i {
  grid-row: 1 / 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #f0e5f0;
  color: #6d1f6c;
  font-style: normal;
  font-size: 0.78rem;
  font-weight: 900;
}

#view-master .master-menu-item span {
  margin: 0;
  color: inherit;
  font-size: 0.9rem;
  line-height: 1.15;
}

#view-master .master-menu-item small {
  margin: 0;
  color: #7a5a7a;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.2;
}

#view-master .master-menu-item.active {
  border-color: rgba(109,31,108,0.32);
  background:
    linear-gradient(135deg, #6d1f6c 0%, #8e3a8d 100%);
  color: #fff;
  box-shadow: 0 14px 28px rgba(109,31,108,0.22);
}

#view-master .master-menu-item.active::before {
  content: '';
  position: absolute;
  left: -1px;
  top: 12px;
  bottom: 12px;
  width: 4px;
  border-radius: 999px;
  background: #e6b800;
}

#view-master .master-menu-item.active i {
  background: rgba(255,255,255,0.16);
  color: #fff;
}

#view-master .master-menu-item.active small {
  color: rgba(255,255,255,0.76);
}

#view-master .master-content {
  min-height: 0;
  height: 100%;
  align-self: stretch;
  overflow: auto;
  padding: 12px;
  scrollbar-gutter: stable;
}

#view-master[data-master-tab="map"] .master-content {
  overflow: hidden;
}

#view-master[data-master-tab="map"] #master-tab-map {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
}

#view-master[data-master-tab="map"] .master-summary-grid {
  margin-bottom: 0;
}

#view-master[data-master-tab="map"] .master-map-grid {
  min-height: 0;
  height: 100%;
}

#view-master[data-master-tab="map"] .master-map-panel {
  min-height: 0;
  height: 100%;
}

#view-master[data-master-tab="map"] .master-map,
#view-master[data-master-tab="map"] .master-map-fallback {
  height: 100%;
}

#view-master[data-master-tab="map"] .master-unit-list {
  display: none;
}

#view-master .master-content::-webkit-scrollbar,
#view-master .master-access-list::-webkit-scrollbar,
#view-master .master-unit-rows::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

#view-master .master-content::-webkit-scrollbar-thumb,
#view-master .master-access-list::-webkit-scrollbar-thumb,
#view-master .master-unit-rows::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #cbd5e1;
}

#view-master .master-section-head-block {
  margin-bottom: 10px;
  padding: 0 2px 10px;
}

#view-master .master-section-head h2 {
  font-size: 1.02rem;
}

#view-master .master-section-kicker {
  margin-bottom: 2px;
  font-size: 0.68rem;
}

#view-master .master-access-workbench {
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 10px;
  align-items: start;
  margin-bottom: 10px;
}

#view-master .master-access-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
  gap: 10px;
  align-items: start;
}

#view-master .master-access-main {
  min-width: 0;
  display: grid;
  gap: 8px;
}

#view-master .master-admin-form {
  align-self: start;
  min-height: 0;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  padding: 10px 12px;
}

#view-master .master-access-summary {
  align-self: start;
  position: sticky;
  top: 0;
}

#view-master .master-form-title {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

#view-master .master-form-title strong {
  font-size: 0.92rem;
}

#view-master .master-form-title span {
  font-size: 0.72rem;
}

#view-master .master-admin-form label {
  gap: 4px;
  font-size: 0.7rem;
}

#view-master .master-admin-form input,
#view-master .master-admin-form select,
#view-master .master-admin-form .btn {
  height: 36px;
  min-height: 36px;
  min-width: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
  font-size: 0.84rem;
}

#view-master .master-access-kpis {
  gap: 6px;
}

#view-master .master-access-kpis div {
  min-height: 54px;
  padding: 8px 10px;
}

#view-master .master-access-kpis strong {
  font-size: 1.16rem;
}

#view-master .master-access-risk {
  padding: 8px 10px;
}

#view-master .master-mini-head {
  margin-bottom: 5px;
}

#view-master .master-mini-head strong {
  font-size: 0.82rem;
}

#view-master .master-mini-head span {
  font-size: 0.68rem;
}

#view-master .master-access-risk-list {
  max-height: none;
  overflow: visible;
  gap: 6px;
  padding-right: 0;
}

#view-master .master-access-risk-list button {
  min-height: 38px;
  padding: 6px 8px;
}

#view-master .master-access-risk-list button strong {
  font-size: 0.74rem;
}

#view-master .master-access-risk-list button span {
  font-size: 0.66rem;
}

#view-master .master-access-risk-more {
  display: block;
  color: #9a3412;
  font-size: 0.7rem;
  font-weight: 900;
}

#view-master .master-access-toolbar {
  grid-template-columns: minmax(180px, 1fr) minmax(0, auto);
  gap: 8px;
  margin-bottom: 0;
}

#view-master .master-unit-search {
  height: 36px;
  margin: 0;
}

#view-master .master-unit-filters {
  gap: 5px;
  min-width: 0;
}

#view-master .master-unit-filters button {
  min-height: 28px;
  padding: 4px 8px;
}

#view-master .master-access-list {
  max-height: min(520px, calc(100vh - 412px));
  overflow: auto;
  padding-right: 6px;
  grid-template-columns: 1fr;
  gap: 7px;
}

#view-master .master-access-unit-row {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(120px, 160px) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-left: 4px solid #1f8a5b;
  border-radius: 8px;
  background: #fff;
}

#view-master .master-access-unit-row.is-pending {
  border-left-color: #f97316;
  background: #fffaf5;
}

#view-master .master-access-unit-row .master-access-unit-head {
  min-width: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

#view-master .master-access-unit-row h2 {
  margin: 0;
  font-size: 0.94rem;
}

#view-master .master-access-unit-count {
  display: grid;
  gap: 2px;
  justify-items: start;
  border-left: 1px solid #edf1f7;
  padding-left: 12px;
}

#view-master .master-access-unit-count strong {
  color: #111827;
  font-size: 1.18rem;
  line-height: 1;
}

#view-master .master-access-unit-count span {
  color: #7c587c;
  font-size: 0.72rem;
  font-weight: 900;
}

#view-master .master-access-unit-card {
  grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.4fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
}

#view-master .master-access-unit-head {
  min-width: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

#view-master .master-access-unit-head h2 {
  font-size: 0.86rem;
}

#view-master .master-access-unit-head .small {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 0.7rem;
}

#view-master .master-access-unit-status {
  min-width: 96px;
}

#view-master .master-access-admins {
  gap: 5px;
}

#view-master .master-access-admin-card {
  min-height: 42px;
  padding: 7px 8px;
}

#view-master .master-access-admin-info strong {
  font-size: 0.78rem;
}

#view-master .master-access-admin-info span,
#view-master .master-access-admin-info small {
  font-size: 0.67rem;
}

#view-master .master-access-actions {
  gap: 5px;
}

.master-admin-profile-card {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  gap: 10px;
  align-items: end;
  border: 1px solid rgba(109, 31, 108, 0.16);
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
  margin-bottom: 8px;
}

.master-admin-profile-card label {
  display: grid;
  gap: 5px;
  margin: 0;
}

.master-admin-profile-card label span {
  color: #7c587c;
  font-size: 0.72rem;
  font-weight: 900;
}

.master-admin-profile-card select {
  min-height: 36px;
  border: 1px solid rgba(109, 31, 108, 0.22);
  border-radius: 8px;
  background: #fff;
  color: #241625;
  font-weight: 800;
  padding: 0 10px;
}

.master-admin-profile-card small {
  color: #7c587c;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.35;
}

#view-master .master-access-actions .btn,
#view-master .master-access-unit-footer .btn {
  min-height: 28px;
  padding: 4px 8px;
  font-size: 0.72rem;
}

#view-master .master-access-unit-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.master-unit-admin-modal {
  gap: 10px;
}

.master-unit-admin-list {
  display: grid;
  gap: 8px;
  max-height: min(520px, 62vh);
  overflow: auto;
  padding-right: 4px;
}

.master-unit-admin-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
}

.master-unit-admin-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.master-admin-switch {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 3px 8px 3px 3px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #f8fafc;
  color: #6b5670;
  font-size: 0.72rem;
  font-weight: 900;
  cursor: pointer;
}

/* A regra global `.modal-overlay .modal-box label { display:block !important }`
   (que empilha labels de formulário) colapsava este switch — força inline-flex
   de volta com especificidade maior para o trilho e o texto ficarem lado a lado. */
.modal-overlay .modal-box label.master-admin-switch {
  display: inline-flex !important;
}

.master-admin-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.master-admin-switch span {
  width: 36px;
  height: 22px;
  border-radius: 999px;
  background: #cbd5e1;
  position: relative;
  transition: background .18s ease;
}

.master-admin-switch span::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 2px;
  top: 2px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .22);
  transition: transform .18s ease;
}

.master-admin-switch input:checked + span {
  background: #16a34a;
}

.master-admin-switch input:checked + span::after {
  transform: translateX(14px);
}

.master-admin-switch.is-disabled {
  opacity: .6;
  cursor: not-allowed;
}

.master-admin-switch em {
  font-style: normal;
  white-space: nowrap;
}

.master-admin-more {
  width: 30px;
  height: 30px;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  background: #fff;
  color: #4b2354;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.master-admin-more:hover {
  background: #f7eef8;
  border-color: rgba(109, 31, 108, 0.24);
}

.modal-overlay.master-user-drawer {
  align-items: stretch;
  justify-content: flex-end;
  padding: 0;
}

.modal-overlay.master-user-drawer .modal-box {
  width: min(760px, 96vw) !important;
  max-width: min(760px, 96vw) !important;
  height: 100vh;
  max-height: 100vh;
  border-radius: 16px 0 0 16px;
  animation: slideInRight .22s ease;
}

@media (max-width: 1280px) {
  #view-master .master-access-grid {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-summary {
    position: static;
    order: -1;
  }

  #view-master .master-access-unit-row,
  .master-unit-admin-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  #view-master .master-access-unit-count {
    border-left: 0;
    border-top: 1px solid #edf1f7;
    padding-left: 0;
    padding-top: 8px;
  }

  #view-master .master-access-kpis {
    grid-template-columns: repeat(3, minmax(120px, 1fr));
  }

  #view-master .master-access-risk-list {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  }
}

@media (max-width: 760px) {
  #view-master .master-access-toolbar {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-kpis {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-unit-card {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-unit-footer {
    justify-content: flex-start;
  }

  .master-admin-profile-card {
    grid-template-columns: 1fr;
  }
}

#view-master .master-access-empty {
  min-height: 42px;
  padding: 8px;
}

#view-master .master-connections-head {
  align-items: center;
}

#view-master .master-connections-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

#view-master .master-connections-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

#view-master .master-connection-kpi {
  min-height: 76px;
  padding: 11px 12px;
  border: 1px solid rgba(109,31,108,0.14);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(76,18,76,0.05);
}

#view-master .master-connection-kpi span,
#view-master .master-connection-kpi small {
  display: block;
  color: #765076;
  font-size: 0.68rem;
  font-weight: 900;
}

#view-master .master-connection-kpi strong {
  display: block;
  margin: 4px 0 1px;
  color: #250a25;
  font-size: 1.35rem;
  line-height: 1;
}

#view-master .master-connections-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}

#view-master .master-connections-table-card {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(109,31,108,0.12);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(76,18,76,0.06);
}

#view-master .master-connections-table-wrap {
  max-height: calc(100vh - 355px);
  overflow: auto;
  border: 1px solid #ead9ea;
  border-radius: 12px;
}

#view-master .master-connections-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 980px;
}

#view-master .master-connections-table th,
#view-master .master-connections-table td {
  padding: 9px 10px;
  border-bottom: 1px solid #ead9ea;
  text-align: left;
  vertical-align: middle;
  font-size: 0.76rem;
}

#view-master .master-connections-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f3e8f3;
  color: #4b124b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.66rem;
}

#view-master .master-connections-table td strong,
#view-master .master-connections-table td small {
  display: block;
}

#view-master .master-connections-table td small {
  color: #765076;
  font-size: 0.66rem;
  font-weight: 800;
}

#view-master .master-connection-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 82px;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 900;
}

#view-master .master-connection-status::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
}

#view-master .master-connection-status.is-online {
  background: #dcfce7;
  color: #166534;
}

#view-master .master-connection-status.is-idle {
  background: #fef3c7;
  color: #92400e;
}

#view-master .master-connection-path {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#view-master .master-summary-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin-bottom: 9px;
}

#view-master .master-metric {
  min-height: 66px;
  padding: 9px 10px;
}

#view-master .master-metric strong {
  font-size: 1.18rem;
}

#view-master .master-map-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

#view-master .master-map-panel {
  min-height: min(72vh, 760px);
}

#view-master .master-map,
#view-master .master-map-fallback {
  height: min(72vh, 760px);
}

#view-master .master-ops-section {
  padding: 10px;
}

#view-master .master-ops-panel {
  max-height: 400px;
  overflow: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

#view-master .master-ops-panel::-webkit-scrollbar {
  width: 8px;
}

#view-master .master-ops-panel::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #cbd5e1;
}

#view-master .master-attention-item {
  min-height: 54px;
  padding: 8px;
}

#view-master .master-governance-item {
  min-height: 58px;
  padding: 8px;
}

#view-master .master-demand-row {
  min-height: 44px;
  padding: 7px 8px;
}

#view-master .master-unit-list {
  margin-top: 10px;
}

#view-master .master-unit-manager {
  padding: 10px;
}

#view-master .master-unit-rows {
  max-height: 360px;
  overflow: auto;
}

#view-master .master-unit-row {
  grid-template-columns: minmax(230px, 1fr) minmax(360px, 1.4fr) auto;
  align-items: center;
  padding: 8px;
}

#view-master .master-unit-row-meta,
#view-master .master-unit-row-actions {
  align-content: center;
}

#view-master .master-analytics-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}

#view-master .master-analytics-card {
  min-height: 72px;
  padding: 10px;
}

#view-master .master-analytics-card strong {
  font-size: 1.18rem;
}

#view-master .master-analytics-insights {
  margin-bottom: 10px;
}

#view-master .master-insight-row {
  padding: 10px;
}

#view-master .master-subsection-head {
  margin: 12px 0 8px;
}

#view-master .master-dashboard-units {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  max-height: 230px;
  overflow: auto;
  padding-right: 4px;
}

#view-master .master-dashboard-unit {
  padding: 9px;
}

#view-master .master-dashboard-unit-head {
  margin-bottom: 8px;
}

#view-master .master-dashboard-unit-grid div {
  padding: 6px;
}

#view-master .master-dashboard-grid {
  gap: 10px;
}

#view-master .master-chart-box {
  min-height: 260px;
  padding: 11px;
}

#view-master .master-chart-box canvas {
  height: 200px !important;
}

@media (max-width: 1180px) {
  #view-master .master-admin-form,
  #view-master .master-access-grid,
  #view-master .master-access-workbench,
  #view-master .master-map-grid,
  #view-master .master-unit-row {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-list {
    max-height: none;
  }

  #view-master .master-dashboard-units,
  #view-master .master-analytics-summary,
  #view-master .master-analytics-insights,
  #view-master .master-connections-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  #view-master {
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    overflow: hidden;
  }

  #view-master .master-shell {
    height: 100%;
    min-height: 0;
    padding: 10px;
  }

  #view-master .master-content {
    height: 100%;
    overflow: auto;
  }

  #view-master[data-master-tab="map"] .master-content {
    overflow: hidden;
  }

  #view-master .master-header {
    padding: 12px;
  }

  #view-master .master-menu {
    flex-direction: row;
    overflow-x: auto;
    scrollbar-width: none;
  }

  #view-master .master-menu::-webkit-scrollbar {
    display: none;
  }

  #view-master .master-menu-item {
    flex-basis: 138px;
    min-width: 138px;
  }

  #view-master .master-summary-grid,
  #view-master .master-access-list,
  #view-master .master-dashboard-units,
  #view-master .master-analytics-summary,
  #view-master .master-analytics-insights,
  #view-master .master-connections-summary {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-toolbar {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-summary {
    position: static;
  }

  #view-master .master-access-list {
    max-height: 520px;
    overflow: auto;
    padding-right: 4px;
  }

  #view-master .master-connections-table-wrap {
    max-height: 520px;
  }

  #view-master .master-access-unit-card,
  #view-master .master-access-admin-card {
    grid-template-columns: 1fr;
  }

  #view-master .master-access-unit-head {
    flex-direction: column;
    gap: 6px;
  }

  #view-master .master-access-unit-status {
    min-width: 0;
    justify-items: start;
  }

  #view-master .master-map-panel {
    min-height: 0;
  }

  #view-master .master-map,
  #view-master .master-map-fallback {
    height: 100%;
  }
}

.unit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.unit-card {
  min-height: 188px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  gap: 14px 16px;
  align-items: start;
  text-align: left;
  padding: 22px;
  border: 1px solid rgba(109,31,108,0.18);
  border-radius: var(--radius);
  background: #ffffff;
  color: var(--text-main);
  box-shadow: 0 10px 28px rgba(109,31,108,0.1);
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.unit-card:hover {
  transform: translateY(-2px);
  border-color: rgba(109,31,108,0.34);
  box-shadow: 0 14px 30px rgba(78,21,80,0.16);
}

.unit-card-disabled,
.unit-card:disabled {
  opacity: 0.48;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.unit-card-disabled:hover,
.unit-card:disabled:hover {
  transform: none;
  border-color: var(--border);
  box-shadow: none;
}

.unit-card-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-muted);
  color: var(--primary);
}

.unit-card-regulation .unit-card-icon {
  background: #f3e8f4;
  color: var(--primary);
}

.unit-card-ubs .unit-card-icon {
  background: var(--accent-muted);
  color: var(--accent-dark);
}

.unit-card-title {
  font-size: 1.12rem;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 5px;
}

.unit-card-desc {
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.5;
}

.unit-card-status {
  grid-column: 2;
  justify-self: start;
  align-self: end;
  border: 1px solid rgba(109,31,108,0.18);
  border-radius: 999px;
  padding: 4px 10px;
  background: var(--primary-muted);
  color: var(--primary-dark);
  font-size: 0.75rem;
  font-weight: 800;
}

.ubs-header-brand,
.ubs-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ubs-logo {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255,255,255,0.16);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ubs-title {
  font-size: 1.45rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
}

.ubs-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.ubs-sidebar {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  position: sticky;
  top: 12px;
}

#ubs-menu-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ubs-menu-item .desc {
  min-height: 0;
}

.ubs-main {
  min-width: 0;
}

.ubs-home-panel,
.ubs-placeholder-panel {
  border-radius: var(--radius);
  border: 1px solid rgba(109,31,108,0.18);
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(109,31,108,0.1);
  padding: 20px;
}

.ubs-home-kicker {
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.ubs-home-panel h3 {
  margin: 0 0 16px;
  color: var(--primary-dark);
  font-size: 1.15rem;
}

.ubs-home-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.ubs-home-metric {
  border: 1px solid rgba(109,31,108,0.12);
  border-radius: 12px;
  background: rgba(255,255,255,0.72);
  padding: 14px;
}

.ubs-home-metric span {
  display: block;
  color: var(--primary-dark);
  font-size: 1.3rem;
  font-weight: 900;
  line-height: 1.1;
}

.ubs-home-metric small {
  display: block;
  color: var(--text-muted);
  font-weight: 700;
  margin-top: 5px;
}

.ubs-placeholder-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.ubs-panel-card {
  min-height: 148px;
  padding: 18px;
  border-radius: var(--radius);
  border: 1px solid rgba(109,31,108,0.18);
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(109,31,108,0.1);
}

.ubs-panel-action {
  width: 100%;
  text-align: left;
  cursor: pointer;
  color: var(--text-main);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.ubs-panel-action:hover {
  transform: translateY(-2px);
  border-color: rgba(109,31,108,0.34);
  box-shadow: 0 14px 30px rgba(78,21,80,0.16);
}

.ubs-panel-card .ubs-panel-icon,
.ubs-placeholder-panel .ubs-panel-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-muted);
  color: var(--primary);
  margin-bottom: 12px;
}

.ubs-panel-title {
  font-size: 0.98rem;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 5px;
}

.ubs-panel-desc {
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.ubs-panel-tag {
  display: inline-flex;
  margin-top: 12px;
  border-radius: 999px;
  padding: 3px 9px;
  background: #fff8e6;
  color: #9a6700;
  font-size: 0.72rem;
  font-weight: 800;
}

.prontuario-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(320px, 0.8fr);
  gap: 16px;
  align-items: start;
}

.prontuario-form,
.prontuario-history {
  padding: 18px;
  border-radius: var(--radius);
  border: 1px solid rgba(109,31,108,0.18);
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(109,31,108,0.1);
}

.prontuario-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.prontuario-section {
  padding: 14px;
  border: 1px solid rgba(109,31,108,0.12);
  border-radius: 12px;
  background: rgba(255,255,255,0.66);
}

.prontuario-section-title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 10px;
}

.prontuario-fields {
  display: grid;
  gap: 10px;
}

.prontuario-fields-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prontuario-fields-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prontuario-fields-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.prontuario-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text-muted);
}

.prontuario-field input,
.prontuario-field select,
.prontuario-field textarea {
  margin: 0;
  font-weight: 500;
}

.prontuario-lgpd label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: var(--text-muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.prontuario-lgpd input {
  width: auto;
  margin: 3px 0 0;
}

.prontuario-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.prontuario-history {
  position: sticky;
  top: 18px;
}

#prontuario-history-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}

.prontuario-history-empty,
.prontuario-history-item {
  border: 1px solid rgba(109,31,108,0.14);
  border-radius: 12px;
  padding: 12px;
  background: rgba(255,255,255,0.76);
}

.prontuario-history-empty {
  color: var(--text-muted);
  font-size: 0.86rem;
}

.prontuario-history-title {
  color: var(--primary-dark);
  font-size: 0.92rem;
  font-weight: 800;
}

.prontuario-history-meta {
  margin-top: 3px;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.prontuario-history-text {
  margin-top: 8px;
  color: var(--text-main);
  font-size: 0.84rem;
  line-height: 1.45;
}

@media (max-width: 920px) {
  .master-layout,
  .master-map-grid,
  .master-command-grid,
  .master-dashboard-grid,
  .master-dashboard-units,
  .unit-grid,
  .ubs-grid,
  .ubs-home-metrics,
  .prontuario-grid {
    grid-template-columns: 1fr;
  }

  .prontuario-fields-2,
  .prontuario-fields-3,
  .prontuario-fields-6 {
    grid-template-columns: 1fr;
  }

  .prontuario-history {
    position: static;
  }

  .ubs-sidebar {
    position: static;
  }

  .master-menu {
    position: static;
  }

  .master-header,
  .master-section-head,
  .unit-header,
  .ubs-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .master-header-actions,
  .unit-header-actions,
  .ubs-header-actions {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .master-admin-form {
    grid-template-columns: 1fr;
  }

  .master-unit-list,
  .master-unit-manager {
    max-height: none;
    min-height: auto;
  }

  .master-unit-form {
    grid-template-columns: 1fr;
  }

  .master-attention-list,
  .master-governance-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .unit-shell,
  .ubs-shell {
    padding-top: 0;
  }

  .master-shell {
    padding: 12px;
  }

  .master-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .master-command-panel {
    padding: 12px;
  }

  .master-command-head {
    flex-direction: column;
  }

  .master-map,
  .master-map-fallback,
  .master-map-panel {
    height: 420px;
    min-height: 420px;
  }

  .unit-card {
    grid-template-columns: 1fr;
  }

  .master-access-card,
  .master-dashboard-unit-grid {
    grid-template-columns: 1fr;
  }

  .master-map-hud {
    left: 10px;
    right: 10px;
    flex-direction: column;
    gap: 8px;
  }

  .master-map-legend {
    justify-content: flex-start;
  }

  .master-unit-row-actions .btn {
    flex: 1 1 calc(50% - 6px);
  }

  .master-map-pin {
    min-width: 150px;
    max-width: calc(100% - 24px);
  }

  .master-unit-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .master-access-actions {
    justify-content: flex-start;
  }

  .unit-card-status {
    grid-column: 1;
  }
}

/* ── BOTÕES — Sistema padronizado ─────────────────────────── */
.btn {
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border-radius: var(--btn-radius);
  font-size: var(--btn-font); font-family: var(--font-ui);
  font-weight: var(--btn-weight); line-height: var(--btn-line-height);
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; border: 1.5px solid var(--border);
  background: var(--surface-2); color: var(--text-main);
  text-decoration: none;
  transition: background .18s, box-shadow .18s, transform .18s, border-color .18s, color .18s;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  will-change: transform, box-shadow;
}
.btn:hover  { transform: translateY(-1px); box-shadow: var(--shadow); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn.btn-pop { animation: btn-pop .24s ease-out; }
.btn.btn-call-ping { animation: call-ping .62s ease-out; }

.btn-primary   { background: var(--primary);   color: #fff; border-color: var(--primary-dark); }
.btn-primary:hover   { background: var(--primary-dark); }
.btn-accent    { background: var(--accent);    color: #1a0a00; border-color: var(--accent-dark); }
.btn-accent:hover    { background: var(--accent-dark); color: #fff; }
.btn-danger    { background: var(--danger);    color: #fff; border-color: #991f15; }
.btn-danger:hover    { background: #991f15; }
.btn-warning   { background: #f1c40f; color: #2d1a00; border-color: #d4ac0d; }
.btn-warning:hover   { background: #d4ac0d; }
.btn-info      { background: var(--info);      color: #fff; border-color: #0f3f82; }
.btn-info:hover      { background: #0f3f82; }
.btn-secondary { background: #6c757d; color: #fff; border-color: #5a6268; }
.btn-secondary:hover { background: #5a6268; }
.btn-success   { background: var(--success);   color: #fff; border-color: #166038; }
.btn-success:hover   { background: #166038; }

.btn-call-action {
  box-shadow: 0 0 0 0 rgba(109,31,108,0.22);
}

.btn-call-action:hover {
  animation: pulse-ring 1.25s ease-out;
}

.btn-sm {
  padding: var(--btn-pad-y-sm) var(--btn-pad-x-sm);
  font-size: var(--btn-font-sm);
}

.btn-cancel-mini {
  padding: var(--btn-pad-y-mini) var(--btn-pad-x-mini);
  font-size: var(--btn-font-mini); font-family: var(--font-ui);
  font-weight: var(--btn-weight); background: var(--danger); color: #fff;
  border: none; border-radius: var(--radius-xs); cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px; transition: background .18s;
}
.btn-cancel-mini:hover { background: #991f15; }

/* Header buttons sizing */
#view-operator > .panel-container > header > .flex,
#view-admin > .panel-container > header > .flex,
#view-driver > .panel-container > header > .flex,
#adm-tab-dashboard .flex.space-between > .flex {
  flex-wrap: wrap; justify-content: flex-end; row-gap: 8px;
}

#view-operator > .panel-container > header > .flex > .btn,
#view-admin > .panel-container > header > .flex > .btn,
#view-driver > .panel-container > header > .flex > .btn,
#adm-tab-dashboard .flex.space-between > .flex > .btn.btn-sm,
#view-driver .card .flex.mt-2 > .btn {
  flex: 1 1 118px; max-width: 132px; min-width: 0;
  font-size: 0.75rem; padding-left: 10px; padding-right: 10px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#view-operator #op-desk { flex: 0 0 120px; }
#session-timer-op, #session-timer-admin { flex: 0 0 auto; }

#view-admin .admin-tabs { flex-wrap: wrap; gap: 8px; }
#view-admin .admin-tabs > .btn,
#adm-tab-dashboard .flex.space-between > .flex > .btn.btn-sm {
  flex: 0 0 132px; width: 132px; min-width: 132px; max-width: 132px;
  font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* =================================================================
   ADMIN PANEL V2 - header, tabs, tabelas modernizadas
   ================================================================= */
#view-admin .adm-panel {
  padding: 24px 28px;
}

#view-admin .adm-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e2e8f0;
  margin-bottom: 18px;
}

#view-admin .adm-header-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#view-admin .adm-kicker {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6d1f6c;
  background: #f0e5f0;
  padding: 3px 10px;
  border-radius: 999px;
  width: max-content;
}

#view-admin .adm-header-info h2 {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.2;
}

#view-admin .admin-user-info {
  font-size: 0.85rem;
  color: #64748b;
  margin-top: 2px;
}

#view-admin .adm-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

#view-admin .adm-header-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#view-admin .adm-header-actions .btn svg {
  width: 15px;
  height: 15px;
}

#view-admin .adm-session-timer {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #f0e5f0, #f5e9f4);
  border: 1px solid #e8d6e8;
  border-radius: 10px;
  padding: 6px 14px;
  font-size: 0.78rem;
  color: #4e1550;
  font-family: 'SFMono-Regular', Consolas, monospace;
}

#view-admin .adm-session-timer svg {
  width: 15px;
  height: 15px;
  color: #6d1f6c;
}

#view-admin .adm-session-timer span {
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #4e1550;
}

/* Dropdown do menu */
#view-admin .adm-menu-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 240px;
  z-index: 20;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
  padding: 12px;
}

#view-admin .adm-menu-title {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
  margin: 0 0 8px;
  font-weight: 700;
}

#view-admin .adm-menu-item {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  text-align: left;
  margin-bottom: 4px;
  font-size: 0.83rem;
}

#view-admin .adm-menu-item:last-child {
  margin-bottom: 0;
}

#view-admin .adm-menu-item svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

#view-admin .admin-menu-wrap {
  position: relative;
}

/* Tabs com pill design + indicador ativo */
#view-admin .adm-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  margin-bottom: 22px;
}

#view-admin .adm-tab {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 14px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: #475569;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease;
  white-space: nowrap;
}

#view-admin .adm-tab svg {
  width: 15px;
  height: 15px;
}

#view-admin .adm-tab:hover {
  background: #e2e8f0;
  color: #0f172a;
}

#view-admin .adm-tab.active {
  background: #fff;
  color: #4e1550;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08), 0 0 0 1px #e8d6e8 inset;
}

#view-admin .adm-tab.active svg {
  color: #6d1f6c;
}

/* Tabelas modernizadas */
#view-admin table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

#view-admin table thead th {
  background: linear-gradient(135deg, #f0e5f0 0%, #f5e9f4 100%);
  color: #4e1550;
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 12px 14px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
}

#view-admin table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.88rem;
  color: #0f172a;
  vertical-align: middle;
}

#view-admin table tbody tr:nth-child(even) td {
  background: #fafbff;
}

#view-admin table tbody tr:hover td {
  background: #f0e5f0;
  cursor: default;
}

#view-admin table tbody tr:last-child td {
  border-bottom: none;
}

/* Badges genéricos para status nas tabelas */
#view-admin .adm-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

#view-admin .adm-badge-ok { background: #f0fdf4; color: #166534; }
#view-admin .adm-badge-warn { background: #fff7ed; color: #9a3412; }
#view-admin .adm-badge-error { background: #fef2f2; color: #991b1b; }
#view-admin .adm-badge-info { background: #eff6ff; color: #4e1550; }
#view-admin .adm-badge-neutral { background: #f1f5f9; color: #334155; }

/* Forms (Add Usuário / Add Dept) em grid responsivo */
#view-admin .users-toolbar,
#view-admin #add-user-form-card,
#view-admin #adm-tab-depts .card {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

#view-admin #add-user-form-card {
  padding: 18px 20px;
}

#view-admin #add-user-form-card h4 {
  margin: 0 0 14px;
  font-size: 1.05rem;
  color: #0f172a;
  display: flex;
  align-items: center;
  gap: 8px;
}

#view-admin #add-user-form-card h4::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 18px;
  background: linear-gradient(180deg, #6d1f6c, #8e3a8d);
  border-radius: 2px;
}

#view-admin #add-user-form-card .flex {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
}

#view-admin #add-user-form-card .flex input,
#view-admin #add-user-form-card .flex select {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  flex: none !important;
  margin: 0 !important;
}

#view-admin #add-user-form-card .flex .cep-block {
  grid-column: 1 / -1;
  margin: 4px 0 !important;
}

#view-admin #add-user-form-card label.small {
  font-size: 0.74rem;
  font-weight: 600;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  display: block;
  margin: 12px 0 4px;
}

#view-admin #add-user-form-card > .btn {
  margin-top: 14px;
}

#view-admin #adm-tab-depts .card {
  padding: 16px 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: end;
}

@media (max-width: 1100px) {
  #view-admin #add-user-form-card .flex {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 680px) {
  #view-admin .adm-panel {
    padding: 16px;
  }
  #view-admin .adm-header {
    flex-direction: column;
    align-items: stretch;
  }
  #view-admin .adm-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  #view-admin #add-user-form-card .flex {
    grid-template-columns: 1fr;
  }
  #view-admin table {
    display: block;
    overflow-x: auto;
  }
}

/* Toolbar de usuários */
#view-admin .users-toolbar {
  padding: 14px 18px;
}

#view-admin #users-search-input {
  border-radius: 10px;
}

/* Aba "Relatório": cabeçalho mais limpo */
#view-admin #adm-tab-reports > h4 {
  margin: 0 0 14px;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

#view-admin #adm-tab-reports > h4::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 20px;
  background: linear-gradient(180deg, #2563eb, #6d1f6c);
  border-radius: 2px;
}

/* =================================================================
   LOGIN SPLASH — transição com logo após login
   ================================================================= */
#login-splash {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 380ms ease;
}

#login-splash.is-entering {
  opacity: 1;
  pointer-events: auto;
}

#login-splash.is-leaving {
  opacity: 0;
  transition: opacity 380ms ease;
}

#login-splash.is-hidden {
  display: none;
}

#login-splash .login-splash-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3a0f3c 0%, #4e1550 35%, #7a2779 70%, #8e3a8d 100%);
  background-size: 300% 300%;
  animation: splash-gradient 8s ease infinite;
}

#login-splash .login-splash-bg::before,
#login-splash .login-splash-bg::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.4;
  animation: splash-orb 7s ease-in-out infinite;
}

#login-splash .login-splash-bg::before {
  width: 380px;
  height: 380px;
  background: #e6b800;
  top: -120px;
  left: -120px;
}

#login-splash .login-splash-bg::after {
  width: 320px;
  height: 320px;
  background: #e6b800;
  bottom: -100px;
  right: -100px;
  animation-delay: 2.5s;
}

#login-splash .login-splash-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 40px 56px;
  text-align: center;
  color: #fff;
  transform: translateY(20px) scale(0.94);
  opacity: 0;
  transition: transform 520ms cubic-bezier(.2,.7,.3,1), opacity 520ms ease;
}

#login-splash.is-entering .login-splash-content {
  transform: translateY(0) scale(1);
  opacity: 1;
}

#login-splash.is-leaving .login-splash-content {
  transform: translateY(0) scale(1.08);
  opacity: 0;
}

#login-splash .login-splash-logo-ring {
  position: relative;
  width: 160px;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

#login-splash .login-splash-logo-ring::before,
#login-splash .login-splash-logo-ring::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.55);
  animation: splash-ring 2.4s cubic-bezier(.4,0,.2,1) infinite;
}

#login-splash .login-splash-logo-ring::after {
  animation-delay: 1.2s;
}

#login-splash .login-splash-logo-ring-inner {
  position: absolute;
  inset: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.32), rgba(255,255,255,0.06));
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3), inset 0 0 30px rgba(255, 255, 255, 0.15);
}

#login-splash .login-splash-logo {
  position: relative;
  z-index: 1;
  width: 88px;
  height: 88px;
  object-fit: contain;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
  animation: splash-logo-float 3s ease-in-out infinite;
}

#login-splash .login-splash-welcome {
  margin: 0;
  font-size: 1.85rem;
  font-weight: 300;
  line-height: 1.25;
  letter-spacing: -0.01em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

#login-splash .login-splash-welcome span {
  display: inline-block;
  font-weight: 800;
  background: linear-gradient(90deg, #fff, #fde68a);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: splash-name 1.6s ease-out;
}

#login-splash .login-splash-sub {
  margin: 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.82);
  letter-spacing: 0.02em;
}

#login-splash .login-splash-progress {
  width: 200px;
  height: 3px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  overflow: hidden;
  margin-top: 6px;
}

#login-splash .login-splash-progress i {
  display: block;
  height: 100%;
  width: 30%;
  background: linear-gradient(90deg, transparent, #fff, transparent);
  border-radius: 999px;
  animation: splash-progress 1.4s ease-in-out infinite;
}

#login-splash .login-splash-brand {
  margin-top: 16px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

@keyframes splash-gradient {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes splash-orb {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(40px, 40px) scale(1.15); }
}

@keyframes splash-ring {
  0% { transform: scale(0.85); opacity: 0.9; }
  100% { transform: scale(1.4); opacity: 0; }
}

@keyframes splash-logo-float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(3deg); }
}

@keyframes splash-name {
  from { opacity: 0; transform: translateY(8px); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes splash-progress {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}

@media (max-width: 520px) {
  #login-splash .login-splash-content {
    padding: 28px 24px;
  }
  #login-splash .login-splash-logo-ring {
    width: 130px;
    height: 130px;
  }
  #login-splash .login-splash-logo {
    width: 70px;
    height: 70px;
  }
  #login-splash .login-splash-welcome {
    font-size: 1.5rem;
  }
}

/* =================================================================
   PAINEL DE UNIDADES V2 — header com logo, saudação, cards modernos
   ================================================================= */
#view-units .unit-shell-v2 {
  max-width: 1400px;
  margin: 0 auto;
  padding: 24px 28px;
}

#view-units .unit-header-v2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 28px;
  border-radius: 18px;
  background: linear-gradient(135deg, #4e1550 0%, #6d1f6c 50%, #b8900a 100%);
  color: #fff;
  box-shadow: 0 14px 40px rgba(78, 21, 80, 0.25);
  position: relative;
  overflow: hidden;
  margin-bottom: 22px;
}

#view-units .unit-header-v2::before,
#view-units .unit-header-v2::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  pointer-events: none;
}

#view-units .unit-header-v2::before {
  width: 280px;
  height: 280px;
  top: -120px;
  right: -50px;
}

#view-units .unit-header-v2::after {
  width: 200px;
  height: 200px;
  bottom: -90px;
  left: 30%;
}

#view-units .unit-header-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  position: relative;
  z-index: 1;
}

#view-units .unit-header-logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
  padding: 8px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

#view-units .unit-header-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

#view-units .unit-header-v2 .unit-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.76);
}

#view-units .unit-header-v2 h1 {
  margin: 2px 0 4px;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
  line-height: 1.15;
}

#view-units .unit-header-v2 .unit-user-info {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.88rem;
  font-weight: 500;
}

#view-units .unit-header-v2 .unit-header-actions {
  position: relative;
  z-index: 1;
}

#view-units .unit-header-v2 .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  font-weight: 600;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

#view-units .unit-header-v2 .btn:hover {
  background: rgba(255, 255, 255, 0.28);
  border-color: rgba(255, 255, 255, 0.45);
}

#view-units .unit-header-v2 .btn-danger {
  background: rgba(220, 38, 38, 0.82);
  border-color: rgba(254, 202, 202, 0.5);
}

#view-units .unit-header-v2 .btn-danger:hover {
  background: rgba(220, 38, 38, 0.95);
}

#view-units .unit-header-v2 .btn svg {
  width: 14px;
  height: 14px;
}

/* Faixa de instrução */
#view-units .unit-intro {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-radius: 12px;
  background: linear-gradient(135deg, #f0e5f0 0%, #fbf7fc 100%);
  border: 1px solid #e8d6e8;
  margin-bottom: 22px;
}

#view-units .unit-intro svg {
  width: 24px;
  height: 24px;
  color: #6d1f6c;
  flex-shrink: 0;
}

#view-units .unit-intro strong {
  display: block;
  color: #1e293b;
  font-size: 0.98rem;
}

#view-units .unit-intro span {
  display: block;
  color: #475569;
  font-size: 0.82rem;
  margin-top: 2px;
}

/* Grid moderno de cards */
#view-units .unit-grid-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

#view-units .unit-grid-v2 .unit-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 180px;
  padding: 22px 22px 18px;
  border-radius: 16px;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  text-align: left;
  cursor: pointer;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  overflow: hidden;
  isolation: isolate;
}

#view-units .unit-grid-v2 .unit-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(109, 31, 108, 0) 0%, rgba(142, 58, 141, 0) 100%);
  transition: background 200ms ease;
  z-index: -1;
}

#view-units .unit-grid-v2 .unit-card:hover:not(:disabled) {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(109, 31, 108, 0.18);
  border-color: #e8d6e8;
}

#view-units .unit-grid-v2 .unit-card:hover:not(:disabled)::before {
  background: linear-gradient(135deg, rgba(109, 31, 108, 0.04) 0%, rgba(142, 58, 141, 0.06) 100%);
}

#view-units .unit-grid-v2 .unit-card-regulation {
  border-color: #f7e4b8;
  background: linear-gradient(180deg, #ffffff 0%, #fffaf0 100%);
}

#view-units .unit-grid-v2 .unit-card-regulation:hover:not(:disabled) {
  box-shadow: 0 18px 40px rgba(184, 144, 10, 0.18);
  border-color: #f0c95c;
}

#view-units .unit-grid-v2 .unit-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, #6d1f6c, #8e3a8d);
  color: #fff;
  margin-bottom: 14px;
  box-shadow: 0 8px 20px rgba(109, 31, 108, 0.32);
}

#view-units .unit-grid-v2 .unit-card-regulation .unit-card-icon {
  background: linear-gradient(135deg, #e6b800, #b8900a);
  box-shadow: 0 8px 20px rgba(184, 144, 10, 0.32);
}

#view-units .unit-grid-v2 .unit-card-icon svg {
  width: 26px;
  height: 26px;
}

#view-units .unit-grid-v2 .unit-card-title {
  font-size: 1.08rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 4px;
  line-height: 1.2;
}

#view-units .unit-grid-v2 .unit-card-desc {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.4;
  margin-bottom: 6px;
}

#view-units .unit-grid-v2 .unit-card .small {
  font-size: 0.76rem;
  color: #94a3b8;
  line-height: 1.4;
}

#view-units .unit-grid-v2 .unit-card-status {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

#view-units .unit-grid-v2 .unit-card-regulation .unit-card-status {
  background: #fff8e0;
  color: #b8900a;
}

#view-units .unit-grid-v2 .unit-card-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#view-units .unit-grid-v2 .unit-card-disabled:hover {
  transform: none;
  box-shadow: none;
}

@media (max-width: 640px) {
  #view-units .unit-shell-v2 {
    padding: 16px;
  }
  #view-units .unit-header-v2 {
    padding: 18px 20px;
  }
  #view-units .unit-header-v2 h1 {
    font-size: 1.4rem;
  }
  #view-units .unit-header-logo {
    width: 48px;
    height: 48px;
  }
  #view-units .unit-grid-v2 {
    grid-template-columns: 1fr;
  }
}

/* =================================================================
   INTRANET V2 — header consistente com unidades, sidebar e cards
   ================================================================= */
#view-intranet .intranet-panel-v2 {
  max-width: 1500px;
  padding: 24px 28px;
}

#view-intranet .intranet-header-v2 {
  position: relative;
  overflow: hidden;
  padding: 22px 28px;
  border-radius: 18px;
  background: linear-gradient(135deg, #4e1550 0%, #6d1f6c 50%, #b8900a 100%);
  color: #fff;
  box-shadow: 0 14px 40px rgba(78, 21, 80, 0.25);
  border: none;
}

#view-intranet .intranet-header-v2::before,
#view-intranet .intranet-header-v2::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  pointer-events: none;
}

#view-intranet .intranet-header-v2::before {
  width: 280px;
  height: 280px;
  top: -130px;
  right: -60px;
}

#view-intranet .intranet-header-v2::after {
  width: 200px;
  height: 200px;
  bottom: -100px;
  left: 38%;
}

#view-intranet .intranet-header-brand {
  align-items: center;
  gap: 18px;
  position: relative;
  z-index: 1;
}

#view-intranet .intranet-header-logo-img {
  width: 60px !important;
  height: 60px !important;
  object-fit: contain;
  padding: 8px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

#view-intranet .intranet-header-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#view-intranet .intranet-header-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

#view-intranet .intranet-header-v2 .intranet-header-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin-top: 2px;
}

#view-intranet .intranet-header-v2 .intranet-header-sub {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.86);
  margin-top: 3px;
}

#view-intranet .intranet-header-v2 .intranet-header-search {
  position: relative;
  z-index: 1;
  flex: 1 1 360px;
  max-width: 500px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: rgba(255, 255, 255, 0.16);
  padding: 9px 14px;
}

#view-intranet .intranet-header-v2 .intranet-header-search svg {
  width: 16px;
  height: 16px;
  color: rgba(255, 255, 255, 0.92);
}

#view-intranet .intranet-header-v2 .intranet-header-actions {
  position: relative;
  z-index: 1;
}

#view-intranet .intranet-header-v2 .intranet-badge {
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.32);
}

#view-intranet .intranet-header-v2 .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
}

#view-intranet .intranet-header-v2 .btn:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: translateY(-1px);
}

#view-intranet .intranet-header-v2 .btn-primary {
  background: rgba(255, 255, 255, 0.96);
  color: #6d1f6c;
  font-weight: 700;
  border-color: rgba(255, 255, 255, 0.9);
}

#view-intranet .intranet-header-v2 .btn-primary:hover {
  background: #fff;
  color: #4e1550;
}

#view-intranet .intranet-header-v2 .btn-danger {
  background: rgba(220, 38, 38, 0.82);
  border-color: rgba(254, 202, 202, 0.5);
}

#view-intranet .intranet-header-v2 .btn-danger:hover {
  background: rgba(220, 38, 38, 0.95);
}

#view-intranet .intranet-header-v2 .btn svg {
  width: 14px;
  height: 14px;
}

/* Sidebar - itens de menu com indicador lateral */
#view-intranet .intranet-sidebar {
  border-radius: 14px;
  border: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

#view-intranet .intranet-sidebar-section {
  padding: 16px;
}

#view-intranet .intranet-sidebar-label {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 12px;
  padding-left: 8px;
}

#view-intranet .intranet-menu-item {
  position: relative;
  padding: 12px 14px 12px 18px;
  border-radius: 10px;
  border: 1px solid transparent;
  transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

#view-intranet .intranet-menu-item::before {
  content: '';
  position: absolute;
  left: 6px;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  width: 4px;
  height: 60%;
  border-radius: 4px;
  background: linear-gradient(180deg, #6d1f6c, #8e3a8d);
  transition: transform 160ms ease;
}

#view-intranet .intranet-menu-item:hover {
  background: #f8fafc;
  border-color: #e2e8f0;
  transform: translateX(2px);
}

#view-intranet .intranet-menu-item.active,
#view-intranet .intranet-menu-item:focus {
  background: linear-gradient(90deg, #f0e5f0 0%, #faf3fa 100%);
  border-color: #e8d6e8;
}

#view-intranet .intranet-menu-item.active::before,
#view-intranet .intranet-menu-item:focus::before {
  transform: translateY(-50%) scaleY(1);
}

#view-intranet .intranet-menu-item .title {
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 700;
}

#view-intranet .intranet-menu-item .desc {
  color: #64748b;
  font-size: 0.78rem;
  margin-top: 3px;
  line-height: 1.4;
}

#view-intranet .intranet-menu-item.active .title {
  color: #4e1550;
}

#view-intranet .intranet-menu-item.locked {
  opacity: 0.45;
}

#view-intranet .intranet-menu-handle {
  border: 1px solid #e8d6e8;
  background: #ffffff;
  color: #6d1f6c;
  box-shadow: 0 4px 12px rgba(109, 31, 108, 0.15);
}

#view-intranet .intranet-menu-handle:hover {
  background: linear-gradient(180deg, #f0e5f0 0%, #ddd6fe 100%);
  border-color: #a5b4fc;
  color: #4e1550;
}

/* Cards do conteúdo principal */
#view-intranet .intranet-main {
  gap: 18px;
}

#view-intranet .intranet-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  padding: 20px 22px;
  position: relative;
  overflow: hidden;
}

#view-intranet .intranet-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #6d1f6c, #8e3a8d);
  border-radius: 0;
}

#view-intranet .intranet-card-header {
  align-items: center;
  margin-bottom: 4px;
}

#view-intranet .intranet-card-icon {
  width: 42px !important;
  height: 42px !important;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(109, 31, 108, 0.18);
}

#view-intranet .intranet-card h4 {
  color: #0f172a !important;
  font-size: 1.02rem !important;
  font-weight: 800;
  margin: 0 !important;
}

#view-intranet .intranet-card .small {
  color: #64748b;
}

/* Notice list — cards de avisos */
#view-intranet #intranet-notices-list {
  gap: 12px;
}

/* Header badge consistente */
#view-intranet .intranet-header-v2 #btn-intranet-search-clear {
  background: rgba(255, 255, 255, 0.22);
  border-color: rgba(255, 255, 255, 0.4);
}

#view-intranet .intranet-header-v2 #btn-intranet-search-clear:hover {
  background: rgba(255, 255, 255, 0.35);
}

@media (max-width: 980px) {
  #view-intranet .intranet-panel-v2 {
    padding: 16px;
  }
  #view-intranet .intranet-header-v2 {
    padding: 18px 20px;
  }
  #view-intranet .intranet-header-v2 .intranet-header-title {
    font-size: 1.3rem;
  }
  #view-intranet .intranet-header-logo-img {
    width: 48px !important;
    height: 48px !important;
  }
}

button { font-family: var(--font-ui); box-sizing: border-box; cursor: pointer; }

/* ── PANEL CONTAINER ─────────────────────────────────────── */
.panel-container {
  max-width: 1500px; width: 100%; margin: 0 auto;
  background: var(--surface);
  padding: 28px 32px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border);
}

/* ── CARDS ─────────────────────────────────────────────────── */
.card {
  background: var(--card-bg, #f7f7f7);
  padding: 18px; border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
}

/* ── TABELAS ──────────────────────────────────────────────── */
table { width: 100%; border-collapse: collapse; margin-top: 10px; }
th, td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--border); }
th {
  background: linear-gradient(135deg, var(--primary-muted) 0%, #e8d6e8 100%);
  color: var(--primary-dark); font-weight: 700;
  font-size: 0.83rem; letter-spacing: 0.4px; text-transform: uppercase;
}
tr:hover td { background: var(--bg-panel); }

#table-users td.admin-user-actions {
  text-align: right;
  white-space: nowrap;
}

#table-users .user-manage-btn {
  min-width: 116px;
}

.admin-list-name {
  font-weight: 700;
  color: var(--text-main);
}

.admin-list-contact {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.admin-list-sus {
  font-size: 0.72rem;
  color: var(--text-muted);
}

.users-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.users-toolbar-search {
  flex: 1 1 280px;
}

.users-toolbar-search input {
  margin-bottom: 0;
}

.users-toolbar-toggle {
  min-width: 190px;
}

.user-manager-modal {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.user-manager-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.user-manager-tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
}

.user-manager-tab-btn {
  background: var(--surface-2);
  color: var(--text-muted);
  border-color: var(--border);
}

.user-manager-tab-btn.active {
  background: var(--primary);
  border-color: var(--primary-dark);
  color: #fff;
}

.user-manager-tab-panel {
  max-height: 62vh;
  overflow-y: auto;
  padding-right: 2px;
}

/* Rolagem única: o box não rola por conta própria; só o painel da aba ativa rola,
   preenchendo a altura disponível (evita as "duas barras de rolagem"). */
.modal-box.user-manager-modal {
  overflow: hidden;
}
.user-manager-modal .user-manager-tab-panel {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}

.user-manager-status-row {
  margin-top: 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

@media (max-width: 768px) {
  .users-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .users-toolbar-toggle {
    width: 100%;
    min-width: 0;
  }

  .user-manager-head {
    flex-direction: column;
    align-items: stretch;
  }

  .user-manager-head .btn {
    width: 100%;
  }

  .user-manager-tabs {
    flex-wrap: wrap;
  }

  .user-manager-tabs .user-manager-tab-btn {
    flex: 1 1 140px;
  }

  .user-manager-status-row {
    flex-direction: column;
    align-items: stretch;
  }

  .user-manager-status-row .flex {
    width: 100%;
  }

  .user-manager-status-row .flex .btn {
    flex: 1 1 100%;
  }
}

/* ── MODAIS ────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(20,5,20,0.55);
  backdrop-filter: blur(5px);
  display: flex; align-items: center; justify-content: center; z-index: 1000;
}
.modal-box {
  background: var(--surface); padding: 28px;
  border-radius: var(--radius); width: 94%; max-width: var(--modal-w, 820px);
  max-height: 90vh; overflow-y: auto;
  box-shadow: var(--shadow-xl); border: 1px solid var(--border);
  animation: fadeInUp .25s ease;
}

#modal-master-dashboard {
  z-index: 1500;
  padding: 20px;
}

#modal-master-dashboard .master-dashboard-modal-box {
  width: min(1540px, calc(100vw - 40px));
  height: min(860px, calc(100vh - 40px));
  height: min(860px, calc(100dvh - 40px));
  max-width: none;
  max-height: none;
  padding: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-radius: 12px;
  background:
    #ffffff;
}

#modal-master-dashboard .master-modal-head {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 4px 2px 12px;
  border-bottom: 1px solid var(--border);
}

#modal-master-dashboard .master-modal-head h2 {
  margin: 0 0 4px;
  color: var(--primary-dark);
  font-size: 1.26rem;
}

#modal-master-dashboard .master-modal-head p {
  margin: 0;
  max-width: 620px;
  color: var(--text-muted);
  font-size: 0.84rem;
  font-weight: 700;
}

.master-dashboard-modal-tabs {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 34px;
  padding: 4px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #f8fafc;
}

.master-dashboard-modal-tabs button {
  min-height: 26px;
  padding: 5px 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 900;
  cursor: pointer;
}

.master-dashboard-modal-tabs button.active {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 8px 20px rgba(109,31,108,0.18);
}

#modal-master-dashboard #master-dashboard-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 2px 4px 8px 2px;
  scrollbar-gutter: stable;
}

#modal-master-dashboard #master-dashboard-modal-body::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

#modal-master-dashboard #master-dashboard-modal-body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #cbd5e1;
}

#modal-master-dashboard .master-dashboard-modal-panel {
  min-height: 0;
}

#modal-master-dashboard[data-page="units"] .master-dashboard-grid,
#modal-master-dashboard[data-page="units"] .master-dashboard-charts-head {
  display: none;
}

#modal-master-dashboard[data-page="charts"] .master-analytics-summary,
#modal-master-dashboard[data-page="charts"] .master-analytics-insights,
#modal-master-dashboard[data-page="charts"] #master-dashboard-units,
#modal-master-dashboard[data-page="charts"] .master-dashboard-units-head {
  display: none;
}

#modal-master-dashboard .master-dashboard-units {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-height: none;
  overflow: visible;
}

#modal-master-dashboard .master-dashboard-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#modal-master-dashboard .master-chart-box {
  min-height: 320px;
}

#modal-master-dashboard .master-chart-box canvas {
  height: 255px !important;
}

@media (max-width: 900px) {
  #modal-master-dashboard {
    padding: 10px;
  }

  #modal-master-dashboard .master-dashboard-modal-box {
    width: calc(100vw - 20px);
    height: calc(100vh - 20px);
    height: calc(100dvh - 20px);
  }

  #modal-master-dashboard .master-modal-head {
    grid-template-columns: 1fr;
  }

  #modal-master-dashboard .master-dashboard-units,
  #modal-master-dashboard .master-dashboard-grid {
    grid-template-columns: 1fr;
  }
}
.modal {
  background: var(--surface); border-radius: var(--radius);
  max-height: 92vh; overflow-y: auto;
  box-shadow: var(--shadow-xl); border: 1px solid var(--border);
}
.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 22px; border-bottom: 1px solid var(--border); gap: 12px;
}
.modal-overlay input, .modal-overlay select, .modal-overlay textarea {
  pointer-events: auto; cursor: auto;
}
.modal-box input[type="radio"] { width: auto; margin: 0 5px 0 0; accent-color: var(--primary); }
.modal-box label.flex { margin-bottom: 10px; font-weight: normal; }

.transport-config-modal {
  width: min(980px, 96vw);
  max-width: 980px;
  padding: 20px 22px;
}
.transport-config-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 10px;
}
.transport-config-head h3 {
  margin: 0;
  color: var(--primary-dark);
}
.transport-config-head .small {
  margin: 4px 0 0;
  color: var(--text-light);
}
.transport-config-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.transport-config-sync-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: .76rem;
  font-weight: 700;
  background: var(--surface-soft);
  color: var(--text-main);
  white-space: nowrap;
}
.transport-config-sync-badge.is-pending { background: #fff7e6; border-color: #f5d08a; color: #9a5b00; }
.transport-config-sync-badge.is-success { background: #eafaf1; border-color: #b7e7c9; color: #18603b; }
.transport-config-sync-badge.is-warning { background: #fff7e6; border-color: #f5d08a; color: #9a5b00; }
.transport-config-sync-badge.is-error { background: #ffefef; border-color: #f2b7b7; color: #9d1b1b; }

.transport-config-summary {
  margin-bottom: 12px;
  border: 1px solid var(--border);
  background: var(--surface-soft);
  border-radius: 10px;
  padding: 8px 12px;
  font-weight: 600;
  color: var(--text-main);
}
.transport-config-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.transport-config-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-soft);
  padding: 10px;
}
.transport-config-card-wide {
  grid-column: 1 / -1;
}
.transport-config-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.transport-config-card-head label {
  font-size: .82rem;
  font-weight: 700;
  color: var(--primary-dark);
}
.transport-config-card-head span {
  min-width: 24px;
  text-align: center;
  border-radius: 999px;
  border: 1px solid var(--border);
  padding: 2px 8px;
  font-size: .75rem;
  font-weight: 700;
  color: var(--text-main);
  background: var(--surface);
}
.transport-config-input {
  width: 100%;
  resize: vertical;
  min-height: 86px;
}
.transport-config-foot {
  margin-top: 14px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.transport-config-foot-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
@media (max-width: 900px) {
  .transport-config-grid {
    grid-template-columns: 1fr;
  }
  .transport-config-card-wide {
    grid-column: auto;
  }
}
@media (max-width: 680px) {
  .transport-config-head,
  .transport-config-foot {
    flex-direction: column;
    align-items: stretch;
  }
  .transport-config-head-actions,
  .transport-config-foot-actions {
    justify-content: space-between;
    flex-wrap: wrap;
  }
}

.input {
  padding: 10px 14px; border: 1.5px solid var(--border);
  border-radius: var(--radius-sm); font-size: 0.9rem;
  font-family: var(--font-ui); outline: none; transition: border-color .15s; background: white;
}
.input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(109,31,108,0.10); }

/* ── DASHBOARD ─────────────────────────────────────────────── */
#dashboard-metrics {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px; margin-bottom: 24px;
}
.dash-card {
  text-align: center; padding: 22px 18px; color: #fff;
  border-radius: var(--radius-sm); box-shadow: var(--shadow-sm);
  transition: transform .2s, box-shadow .2s;
}
.dash-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.dash-card-value { font-size: 2.1rem; font-weight: 800; letter-spacing: -0.02em; }
.dash-card-label { font-size: 0.87rem; opacity: 0.90; margin-top: 2px; }
.dash-card-primary   { background: linear-gradient(135deg, var(--primary), var(--primary-light)); }
.dash-card-success   { background: linear-gradient(135deg, #1e7e48, #27ae60); }
.dash-card-info      { background: linear-gradient(135deg, #1556a4, #1a6fa8); }
.dash-card-warning   { background: linear-gradient(135deg, #c27c00, #e0900a); }
.dash-card-accent    { background: linear-gradient(135deg, var(--accent-dark), var(--accent)); color: #1a0800; }
.dash-card-secondary { background: linear-gradient(135deg, var(--primary-dark), var(--primary-light)); }
.dash-card-muted     { background: var(--primary-muted); color: var(--text-main); }

#adm-tab-dashboard .dashboard-powerbi-quick {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

#adm-tab-dashboard .dashboard-powerbi-quick h4 {
  margin-bottom: 4px;
}

#adm-tab-dashboard #dashboard-metrics {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
  gap: 10px !important;
  margin-bottom: 12px !important;
}

#adm-tab-dashboard #dashboard-metrics .card {
  padding: 12px !important;
}

#adm-tab-dashboard #dashboard-metrics .card > div:first-child {
  font-size: 1.45rem !important;
}

#adm-tab-dashboard #dashboard-metrics .card > div:last-child {
  font-size: 0.8rem !important;
}

#adm-tab-dashboard .dashboard-charts-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}

#adm-tab-dashboard .dashboard-chart-card {
  grid-column: span 4;
  padding: 14px 14px 12px;
  border-radius: 14px;
  border: 1px solid rgba(109,31,108,0.16);
  background: #ffffff;
  box-shadow: 0 10px 18px rgba(78,21,80,0.08);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

#adm-tab-dashboard .dashboard-chart-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 24px rgba(78,21,80,0.14);
  border-color: rgba(109,31,108,0.24);
}

#adm-tab-dashboard .dashboard-chart-card:last-child {
  grid-column: span 12;
}

#adm-tab-dashboard .dashboard-chart-card h4 {
  margin-bottom: 10px;
  font-size: 0.96rem;
  color: var(--primary-dark);
  font-weight: 800;
  letter-spacing: 0.01em;
  display: flex;
  align-items: center;
  gap: 8px;
}

#adm-tab-dashboard .dashboard-chart-card h4::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
  box-shadow: 0 0 0 3px rgba(109,31,108,0.12);
}

#adm-tab-dashboard .dashboard-chart-canvas {
  width: 100% !important;
  height: 220px !important;
  display: block;
}

#adm-tab-dashboard .dashboard-chart-card:last-child .dashboard-chart-canvas {
  height: 250px !important;
}

.powerbi-modal-box {
  max-width: 980px;
  width: 96%;
}

.powerbi-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.powerbi-modal-body {
  max-height: 72vh;
  overflow: auto;
  padding-right: 4px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.powerbi-step-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
}

.powerbi-step-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #f8fafc;
  padding: 10px 12px;
  font-size: 0.82rem;
  color: #334155;
}

.powerbi-actions {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.powerbi-preview-block {
  border-top: 1px solid var(--border);
  padding-top: 10px;
}

.powerbi-filters {
  display: flex;
  align-items: end;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}

.powerbi-filters select {
  margin: 0;
  min-width: 160px;
}

.powerbi-summary {
  margin-bottom: 8px;
  min-height: 18px;
}

.powerbi-table-wrap {
  overflow-x: auto;
  max-height: 300px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
}

#powerbi-dynamic-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}

#powerbi-dynamic-table thead tr {
  background: #f8fafc;
  position: sticky;
  top: 0;
}

#powerbi-dynamic-table th {
  padding: 9px 12px;
  text-align: right;
  border-bottom: 1px solid #e2e8f0;
}

#powerbi-dynamic-table th:first-child {
  text-align: left;
}

#powerbi-dynamic-table td {
  padding: 9px 12px;
  border-bottom: 1px solid #e2e8f0;
  text-align: right;
}

#powerbi-dynamic-table td:first-child {
  text-align: left;
}

@media (max-width: 1200px) {
  #adm-tab-dashboard .dashboard-charts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #adm-tab-dashboard .dashboard-chart-card {
    grid-column: span 1;
  }
  #adm-tab-dashboard .dashboard-chart-card:last-child {
    grid-column: span 2;
  }
}

@media (max-width: 768px) {
  #adm-tab-dashboard .dashboard-charts-grid {
    grid-template-columns: 1fr;
  }

  #adm-tab-dashboard .dashboard-chart-card,
  #adm-tab-dashboard .dashboard-chart-card:last-child {
    grid-column: span 1;
  }

  #adm-tab-dashboard .dashboard-chart-canvas {
    height: 180px !important;
  }

  #adm-tab-dashboard .dashboard-chart-card:last-child .dashboard-chart-canvas {
    height: 200px !important;
  }

  .powerbi-modal-head {
    flex-direction: column;
    align-items: stretch;
  }

  .powerbi-modal-head .btn {
    width: 100%;
  }

  .powerbi-filters {
    align-items: stretch;
  }

  .powerbi-filters > div,
  .powerbi-filters > button {
    width: 100%;
  }

  .powerbi-filters select {
    min-width: 0;
    width: 100%;
  }
}

.module-card-solid {
  text-align: center; padding: 22px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: #fff; cursor: pointer; border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm); transition: transform .2s, box-shadow .2s;
}
.module-card-solid:hover { transform: translateY(-2px); box-shadow: var(--shadow); }

/* ── FILA DE ATENDIMENTO ──────────────────────────────────── */
.queue-item {
  background: var(--surface); padding: 14px 16px;
  border-radius: var(--radius-sm); margin-bottom: 10px;
  box-shadow: var(--shadow-xs);
  display: flex; justify-content: space-between; align-items: flex-start;
  border: 1px solid var(--border); border-left: 5px solid var(--primary);
  transition: box-shadow .2s;
}
.queue-item:hover { box-shadow: var(--shadow-sm); }
.queue-item.priority { border-left-color: #7a2779; background: #faf3fa; }
.queue-item.called   { border-left-color: var(--accent); background: var(--accent-muted); }

/* ── CALENDÁRIO ──────────────────────────────────────────── */
.calendar-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; margin-top: 10px; }
.calendar-day  { padding: 9px; background: var(--surface-2); text-align: center; cursor: pointer; border-radius: var(--radius-xs); border: 1px solid transparent; transition: all .15s; }
.calendar-day:hover { background: var(--primary-muted); }
.calendar-day.selected { border-color: var(--primary); color: var(--primary); font-weight: 700; }
.calendar-day.has-slots { background: var(--primary); color: white; font-weight: 700; }

/* ── TV ─────────────────────────────────────────────────── */
#view-tv.tv-view {
  padding: 12px;
  height: var(--app-viewport-height);
  max-height: var(--app-viewport-height);
  overflow: hidden;
  background:
    radial-gradient(circle at 2% 0%, rgba(109,31,108,0.14) 0%, transparent 44%),
    radial-gradient(circle at 100% 100%, rgba(230,184,0,0.12) 0%, transparent 42%),
    #f7f1f7;
}

#view-tv .tv-shell {
  width: 100%;
  height: 100%;
  border-radius: 22px;
  border: 1px solid rgba(109,31,108,0.20);
  background: linear-gradient(160deg, #ffffff 0%, #fbf5fb 100%);
  box-shadow: 0 18px 42px rgba(78,21,80,0.18);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#view-tv .tv-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 16px;
  border-bottom: 1px solid rgba(109,31,108,0.16);
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, var(--primary-light) 100%);
  flex-shrink: 0;
}

#view-tv .tv-clock-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.30);
  background: rgba(255,255,255,0.16);
  color: #ffffff;
}

#view-tv .tv-clock-chip span {
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

#view-tv .tv-clock-chip strong {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}

#view-tv .tv-topbar-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

#view-tv .tv-btn-admin {
  background: rgba(230,240,255,0.94);
  color: #154275;
  border-color: rgba(191,219,254,0.82);
}

#view-tv .tv-btn-intranet {
  background: rgba(248,250,252,0.94);
  color: #334155;
  border-color: rgba(203,213,225,0.88);
}

#view-tv .tv-layout {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 0;
  min-height: 0;
}

#view-tv .tv-main-stage {
  padding: clamp(14px, 2.5vw, 30px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  min-height: 0;
  overflow: hidden;
}

#view-tv .tv-main-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(109,31,108,0.06), transparent 52%),
    radial-gradient(circle at 50% 100%, rgba(230,184,0,0.08), transparent 52%);
  pointer-events: none;
}

#view-tv .tv-main-kicker {
  position: relative;
  z-index: 1;
  margin: 0 0 10px;
  font-size: clamp(0.9rem, 1.2vw, 1.08rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--primary-dark);
}

#view-tv .ticket-big {
  position: relative;
  z-index: 1;
  font-size: clamp(4.8rem, 14vw, 10rem);
  line-height: 1.02;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  text-align: center;
  text-shadow: 0 10px 24px rgba(78,21,80,0.18);
  max-width: 94%;
  margin-left: auto;
  margin-right: auto;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}
/* Nome de paciente (chamada clinica) e mais longo que uma senha: fonte menor para caber */
#view-tv .ticket-big.is-name {
  font-size: clamp(2.4rem, 6.5vw, 5.2rem);
  letter-spacing: 0;
}

#view-tv .tv-patient-name {
  position: relative;
  z-index: 1;
  margin-top: 10px;
  font-size: clamp(1.4rem, 3vw, 2.45rem);
  font-weight: 700;
  color: #2f2238;
  max-width: min(92%, 980px);
  word-break: break-word;
}

#view-tv .tv-desk-name {
  position: relative;
  z-index: 1;
  margin-top: 12px;
  font-size: clamp(1.6rem, 4.2vw, 3.25rem);
  font-weight: 800;
  color: #b42318;
  letter-spacing: 0.01em;
}

#view-tv .tv-side-panel {
  border-left: 1px solid rgba(109,31,108,0.16);
  background: linear-gradient(180deg, #f6edf6 0%, #f2e7f2 100%);
  padding: 16px 14px 14px;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

#view-tv .tv-side-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

#view-tv .tv-side-head h3 {
  margin: 0;
  font-size: 1.02rem;
  color: var(--primary-dark);
}

#view-tv .tv-audio-btn {
  min-width: 108px;
}

#view-tv .tv-history-list {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 3px;
}

#view-tv .tv-history-item {
  background: #ffffff;
  border: 1px solid rgba(109,31,108,0.16);
  border-left: 4px solid var(--primary);
  border-radius: 12px;
  padding: 10px 11px;
  box-shadow: var(--shadow-xs);
  color: #2b1c32;
}

#view-tv .tv-history-item .code {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--primary-dark);
}

#view-tv .tv-history-item .meta {
  margin-top: 3px;
  font-size: 0.82rem;
  color: #5f4a66;
  line-height: 1.42;
}

#view-tv .tv-history-item.tv-history-empty {
  border-style: dashed;
  border-left-color: rgba(109,31,108,0.35);
  background: rgba(255,255,255,0.72);
  text-align: center;
  color: #6f5b76;
}

#view-tv .blink {
  animation: tvTicketPulse 0.95s ease-in-out 3;
}

@keyframes tvTicketPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.03); opacity: 0.58; }
}

@media (max-width: 1200px) {
  #view-tv .tv-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
  }
}

@media (max-width: 980px) {
  #view-tv.tv-view { padding: 10px; }
  #view-tv .tv-shell { min-height: calc(100vh - 20px); border-radius: 18px; }
  #view-tv .tv-layout { grid-template-columns: 1fr; }
  #view-tv .tv-side-panel {
    border-left: 0;
    border-top: 1px solid rgba(109,31,108,0.14);
    min-height: 260px;
  }
  #view-tv .tv-main-stage {
    justify-content: flex-start;
    padding-top: 26px;
    padding-bottom: 26px;
  }
}

/* ── SENHAS EMITIDAS ─────────────────────────────────────── */
#view-issued.issued-view {
  padding: 14px;
  height: var(--app-viewport-height);
  min-height: var(--app-viewport-height);
  max-height: var(--app-viewport-height);
  overflow: hidden;
  background:
    radial-gradient(circle at 2% 0%, rgba(109,31,108,0.14) 0%, transparent 44%),
    radial-gradient(circle at 100% 100%, rgba(230,184,0,0.12) 0%, transparent 42%),
    #f7f1f7;
}

#view-issued .issued-shell {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  border-radius: 22px;
  border: 1px solid rgba(109,31,108,0.2);
  background: linear-gradient(165deg, #ffffff 0%, #fbf5fb 100%);
  box-shadow: 0 18px 42px rgba(78,21,80,0.18);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#view-issued .issued-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(109,31,108,0.16);
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, var(--primary-light) 100%);
}

#view-issued .issued-clock-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.3);
  background: rgba(255,255,255,0.16);
  color: #fff;
}

#view-issued .issued-clock-chip span {
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0.9;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

#view-issued .issued-clock-chip strong {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}

#view-issued .issued-topbar-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

#view-issued .issued-btn-admin {
  background: rgba(230,240,255,0.94);
  color: #154275;
  border-color: rgba(191,219,254,0.82);
}

#view-issued .issued-btn-intranet {
  background: rgba(248,250,252,0.94);
  color: #334155;
  border-color: rgba(203,213,225,0.88);
}

#view-issued .issued-hero {
  text-align: center;
  padding: 24px 18px 10px;
}

#view-issued .issued-hero h1 {
  margin: 0;
  font-size: clamp(1.6rem, 3.3vw, 2.6rem);
  color: var(--primary-dark);
}

#view-issued .issued-hero p {
  margin: 7px 0 0;
  color: var(--text-light);
  font-size: 0.95rem;
}

#view-issued .issued-grid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  align-content: start;
  padding: 14px 18px 12px;
  overflow-y: auto;
}

#view-issued .issued-grid::-webkit-scrollbar { width: 9px; }
#view-issued .issued-grid::-webkit-scrollbar-track { background: rgba(148,163,184,0.12); border-radius: 999px; }
#view-issued .issued-grid::-webkit-scrollbar-thumb { background: rgba(109,31,108,0.36); border-radius: 999px; }

#view-issued .issued-ticket-card {
  border: 1px solid var(--border);
  background: #ffffff;
  border-radius: 14px;
  box-shadow: var(--shadow-xs);
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#view-issued .issued-ticket-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

#view-issued .issued-ticket-order {
  font-size: 0.72rem;
  font-weight: 700;
  color: #5f4a66;
}

#view-issued .issued-ticket-status {
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 999px;
  padding: 2px 9px;
}

#view-issued .issued-ticket-card.is-waiting .issued-ticket-status {
  color: #1f7a4f;
  background: #eafaf1;
  border: 1px solid #b7e7c9;
}

#view-issued .issued-ticket-card.is-served .issued-ticket-status {
  color: #854d0e;
  background: #fefce8;
  border: 1px solid #fde68a;
}

#view-issued .issued-ticket-code {
  font-size: clamp(2rem, 5vw, 2.7rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: var(--primary-dark);
}

#view-issued .issued-ticket-patient {
  font-size: 1.08rem;
  font-weight: 700;
  color: #2f2238;
  overflow-wrap: anywhere;
}

#view-issued .issued-ticket-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

#view-issued .issued-ticket-dept {
  font-size: 0.78rem;
  font-weight: 700;
  color: #41546b;
  background: #edf2f7;
  border: 1px solid #d7e0ea;
  border-radius: 999px;
  padding: 3px 10px;
}

#view-issued .issued-ticket-priority {
  font-size: 0.76rem;
  font-weight: 700;
  color: #9a5b00;
  background: #fff7e6;
  border: 1px solid #f5d08a;
  border-radius: 999px;
  padding: 3px 9px;
}

#view-issued .issued-ticket-time {
  font-size: 0.78rem;
  color: #6b7280;
  line-height: 1.4;
}

#view-issued .issued-ticket-note {
  margin-top: 2px;
  font-size: 0.8rem;
  color: #92400e;
  background: #fff8ee;
  border: 1px solid #f5d9ad;
  border-radius: 10px;
  padding: 7px 9px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

#view-issued .issued-empty-state {
  grid-column: 1 / -1;
  border: 1px dashed rgba(109,31,108,0.3);
  border-radius: 14px;
  background: rgba(255,255,255,0.72);
  padding: 30px 16px;
  text-align: center;
}

#view-issued .issued-empty-state.is-error {
  border-color: rgba(185,28,28,0.4);
  background: rgba(254,242,242,0.85);
}

#view-issued .issued-empty-icon {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  margin: 0 auto 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: #1f7a4f;
  background: #eafaf1;
  border: 1px solid #b7e7c9;
}

#view-issued .issued-empty-title {
  font-size: 1.08rem;
  color: var(--primary-dark);
  font-weight: 800;
}

#view-issued .issued-empty-sub {
  margin-top: 4px;
  color: #64748b;
  font-size: 0.9rem;
}

#view-issued .issued-foot {
  padding: 6px 18px 14px;
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 980px) {
  #view-issued.issued-view {
    padding: 10px;
    height: var(--app-viewport-height);
    min-height: var(--app-viewport-height);
    max-height: var(--app-viewport-height);
  }
  #view-issued .issued-shell { border-radius: 18px; }
}

@media (max-width: 760px) {
  #view-issued .issued-topbar {
    flex-direction: column;
    align-items: flex-start;
  }
  #view-issued .issued-topbar-actions {
    width: 100%;
    justify-content: stretch;
  }
  #view-issued .issued-topbar-actions .btn {
    flex: 1;
  }
  #view-issued .issued-grid {
    grid-template-columns: 1fr;
    padding: 12px;
  }
  #view-issued .issued-foot {
    padding: 4px 12px 12px;
  }
}

/* ── TOTEM ───────────────────────────────────────────────── */
#view-totem.view-section {
  padding: 20px;
  background:
    radial-gradient(ellipse 75% 60% at 0% 0%, rgba(109,31,108,0.10) 0%, transparent 65%),
    radial-gradient(ellipse 80% 70% at 100% 100%, rgba(230,184,0,0.10) 0%, transparent 70%),
    #f5eef5;
}

#view-totem .totem-shell {
  max-width: 1360px;
  min-height: calc(100vh - 96px);
  margin: 0 auto;
  padding: 18px 20px 24px;
  border-radius: 24px;
  border: 1px solid rgba(109,31,108,0.20);
  background: linear-gradient(155deg, rgba(255,255,255,0.96), rgba(250,242,250,0.94));
  box-shadow: 0 18px 48px rgba(78,21,80,0.18);
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#view-totem .totem-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

#view-totem .totem-clock-badge {
  min-width: 148px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(109,31,108,0.24);
  background: rgba(109,31,108,0.08);
  color: var(--primary-dark);
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 0.95rem;
}

#view-totem .totem-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

#view-totem .btn-totem-back {
  background: rgba(109,31,108,0.08);
  border-color: rgba(109,31,108,0.22);
  color: var(--primary-dark);
}

#view-totem .btn-totem-back:hover {
  background: rgba(109,31,108,0.16);
}

#view-totem .totem-stage-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

#view-totem .totem-stage {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
}

#view-totem .totem-title {
  font-size: clamp(2rem, 3.7vw, 3.2rem);
  line-height: 1.1;
  color: var(--primary-dark);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}

#view-totem .totem-subtitle {
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  color: #5f4a66;
  margin-bottom: 0;
}

#totem-grid {
  margin: 28px auto 0;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
}

#totem-grid .totem-grid-message {
  grid-column: 1 / -1;
  padding: 22px 14px;
  border: 1.5px dashed rgba(109,31,108,0.28);
  border-radius: 14px;
  color: #684a73;
  font-weight: 600;
  background: rgba(255,255,255,0.55);
}

#view-totem .totem-dept-btn {
  width: 100%;
  min-height: 98px;
  padding: 14px 16px;
  font-size: 1.08rem;
  font-weight: 700;
  border-radius: 16px;
  box-shadow: 0 12px 24px rgba(78,21,80,0.18);
  border-color: #5b1858;
  white-space: normal;
  line-height: 1.25;
}

#view-totem .totem-dept-btn:hover {
  transform: translateY(-2px);
}

#view-totem .totem-form-card {
  max-width: 520px;
  margin: 28px auto 0;
  padding: 22px 20px;
  border-radius: 20px;
  border: 1px solid rgba(109,31,108,0.20);
  background: rgba(255,255,255,0.92);
  box-shadow: 0 14px 30px rgba(78,21,80,0.14);
  text-align: left;
}

#view-totem .totem-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

#view-totem .totem-field label {
  font-size: 0.86rem;
  font-weight: 700;
  color: #4b3453;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

#view-totem #totem-cpf,
#view-totem #totem-name {
  margin: 0;
  padding: 13px 14px;
  text-align: center;
  font-size: 1.05rem;
}

#view-totem #totem-cpf-status {
  display: block;
  min-height: 18px;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--text-muted);
}

#view-totem .totem-form-actions {
  margin-top: 8px;
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}

#view-totem .totem-issued-title {
  font-size: clamp(2rem, 4vw, 3.6rem);
  color: var(--accent-dark);
  margin-bottom: 10px;
}

#view-totem #totem-ticket-display {
  font-size: clamp(3.4rem, 12vw, 7.4rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--primary);
  margin: 8px 0 12px;
  text-shadow: 0 8px 20px rgba(109,31,108,0.20);
}

#view-totem .totem-footer-actions {
  display: flex;
  justify-content: center;
}

#view-totem .btn-totem-exit {
  opacity: 0.82;
}

#view-totem .btn-totem-exit:hover {
  opacity: 1;
}

@media (max-width: 920px) {
  #view-totem .totem-shell {
    min-height: calc(100vh - 88px);
    padding: 16px;
  }

  #view-totem .totem-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  #view-totem .totem-clock-badge {
    text-align: center;
    width: 100%;
  }

  #view-totem .totem-toolbar-actions {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  #view-totem.view-section {
    padding: 10px;
  }

  #view-totem .totem-shell {
    min-height: calc(100vh - 76px);
    border-radius: 18px;
    padding: 12px;
    gap: 14px;
  }

  #view-totem .totem-toolbar-actions {
    flex-direction: column;
  }

  #view-totem .totem-toolbar-actions .btn {
    width: 100%;
  }

  #totem-grid {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 18px;
  }

  #view-totem .totem-dept-btn {
    min-height: 82px;
    font-size: 1rem;
  }

  #view-totem .totem-form-card {
    margin-top: 16px;
    padding: 16px 14px;
  }

  #view-totem #totem-cpf,
  #view-totem #totem-name {
    font-size: 1rem;
  }

  #view-totem .totem-subtitle {
    font-size: 0.98rem;
  }
}

/* ── LOGIN AUXILIAR ───────────────────────────────────────── */
.login-header { display: flex; align-items: normal; gap: 14px; margin-bottom: 1px; }
.login-header h2  { margin: 0; font-size: 1.3rem; color: var(--primary); }
.login-header .small { margin: 2px 0 0; color: #666; }
.site-footer {
  position: fixed; bottom: 0; left: 0; right: 0;
  text-align: center; padding: 9px 16px;
  font-size: 11px; color: var(--text-muted);
  background: rgba(245,238,245,0.94); backdrop-filter: blur(8px);
  border-top: 1px solid var(--border); z-index: 900; letter-spacing: 0.2px;
}
.logo-prefeitura  { width: 80px; height: auto; object-fit: contain; }
.prefeitura-wrap  { display: flex; justify-content: center; margin-top: 4vh; margin-bottom: 6px; pointer-events: none; }
.prefeitura-logo  { width: 136px; max-width: 42vw; height: auto; object-fit: contain; display: block; }
.login-logo-allregtech { display: block; margin: 0 auto 12px; width: 150px; max-width: 74%; object-fit: contain; opacity: 0.82; }
.logo-allregtech  { display: block; margin: 0 auto 12px; width: 150px; max-width: 74%; object-fit: contain; opacity: 0.82; }
.logo-allregtech[alt]:not([src]) { display: inline-block; font-weight: 700; color: var(--primary); text-align: center; }

/* ── STATUS ────────────────────────────────────────────────── */
.status-waiting          { border-left: 5px solid var(--primary); background: var(--surface-2); }
.status-served           { border-left: 5px solid var(--accent); background: var(--accent-muted); }
.status-called-elsewhere { border-left: 5px solid #f1c40f; background: #fffde7; }
.status-default          { border-left: 5px solid #95a5a6; background: #f5f5f5; }
.selected                { background-color: var(--primary) !important; color: white !important; }
.visible-queue-item      { padding: 8px 12px !important; font-size: 0.9rem !important; margin-bottom: 5px !important; }
.status-active           { color: var(--success); font-weight: 700; }
.status-inactive         { color: var(--danger); font-weight: 700; }

/* Não depender apenas de cor para status */
.status-active::before,
.rec-status-active::before,
.rec-status-completed::before,
.rec-status-closed::before,
.fat-badge.done::before,
.ts-alert-success::before {
  content: "✔ ";
  font-weight: 800;
}

.status-inactive::before,
.rec-status-cancelled::before,
.rec-status-no_show::before,
.fat-badge.cancelled::before,
.ts-alert-error::before {
  content: "✖ ";
  font-weight: 800;
}

.status-waiting::before,
.rec-status-waiting::before,
.fat-badge.pending::before,
.fat-badge.inprogress::before,
.ts-alert-warn::before {
  content: "• ";
  font-weight: 800;
}

/* ── BOTÕES ESPECIAIS ─────────────────────────────────────── */
.btn-exclamation { background: none; border: none; color: #ff6b6b; font-size: 1.2rem; cursor: pointer; padding: 0; margin-left: 8px; transition: color .2s; }
.btn-exclamation:hover { color: var(--danger); }
.btn-close { background: none; border: none; font-size: 1.5rem; color: #888; cursor: pointer; padding: 0; margin: 0; line-height: 1; }
.btn-close:hover { color: var(--primary); }
.calendar-nav-btn { background: var(--primary); color: white; border: none; padding: 7px 11px; border-radius: var(--radius-xs); cursor: pointer; font-size: 1.1rem; font-weight: bold; transition: background .2s; }
.calendar-nav-btn:hover { background: var(--primary-dark); }
.filter-toggle { display: flex; align-items: center; font-weight: 500; background: var(--primary-muted); padding: 5px 10px; border-radius: 5px; border: 1px solid var(--primary); cursor: pointer; transition: background .2s; margin-right: 20px; }
.filter-toggle.selected { background: var(--primary); color: white; }
.filter-toggle input[type="checkbox"] { margin-right: 5px; }

/* ── PORTAL HISTÓRICO ──────────────────────────────────────── */
#portal-history-list { padding: 0; margin: 0; list-style: none; }
#portal-history-list li { background: var(--surface-2); padding: 12px 15px; margin-bottom: 8px; border-radius: var(--radius-sm); border-left: 4px solid var(--primary); box-shadow: var(--shadow-xs); }
.appt-info  { display: flex; flex-direction: column; gap: 4px; }
.appt-time  { font-weight: 600; color: var(--primary); }
.appt-status { font-size: 0.85rem; color: var(--text-muted); }

/* ── WHATSAPP BALLOON ─────────────────────────────────────── */
.whatsapp-balloon {
  position: fixed; bottom: 30px; right: 30px; z-index: 1000;
  display: flex; align-items: center; gap: 10px;
  background: linear-gradient(135deg, #25D366, #128C7E);
  color: white; padding: 12px 20px; border-radius: 50px;
  text-decoration: none; box-shadow: 0 4px 20px rgba(37,211,102,0.4);
  transition: all .3s; animation: pulse-whatsapp 2.5s infinite;
}
.whatsapp-balloon:hover { transform: scale(1.06); box-shadow: 0 6px 28px rgba(37,211,102,0.6); }
.whatsapp-icon { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; }
.whatsapp-icon svg { width: 100%; height: 100%; }
.whatsapp-text { font-weight: 600; font-size: 14px; }
@keyframes pulse-whatsapp {
  0%   { box-shadow: 0 0 0 0 rgba(37,211,102,0.7); }
  70%  { box-shadow: 0 0 0 14px rgba(37,211,102,0); }
  100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}

/* ── CLASSES AUSENTES ─────────────────────────────────────── */
.past            { opacity: 0.38; cursor: not-allowed; pointer-events: none; }
.text-muted      { color: var(--text-muted); font-size: 0.9rem; }
.text-danger     { color: var(--danger); font-size: 0.9rem; }
.list-item       { background: var(--surface-2); padding: 10px 14px; margin-bottom: 8px; border-radius: var(--radius-sm); border-left: 4px solid var(--primary); list-style: none; font-size: 0.9rem; }
.scale-105       { transform: scale(1.05); }

/* ── ABAS DO ADMIN ────────────────────────────────────────── */
#view-admin .flex button.btn-primary { background: var(--primary); box-shadow: 0 2px 8px rgba(109,31,108,0.28); color: white; }

/* ════════════════════════════════════════════════════════════
   RESPONSIVO
════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  #view-login.view-section.active { flex-direction: column; }
  .login-left-panel { min-height: 260px; padding: 40px 28px 32px; }
  .login-right-panel { flex: 1; min-height: auto; padding: 36px 24px; box-shadow: none; border-top: 3px solid var(--primary-muted); }
  .prefeitura-logo { width: 110px; max-width: 52vw; }
  .login-logo-prefeitura-main { width: 146px; }
  .login-logo-allregtech, .logo-allregtech { width: 132px; max-width: 70%; }
  .login-brand-title { font-size: 1.78rem; }
  .login-form-links { grid-template-columns: 1fr; gap: 8px; }
  .login-link-chip { min-height: 36px; font-size: 0.79rem; }
  .panel-container { padding: 20px 16px; }
  .whatsapp-balloon { bottom: 20px; right: 20px; padding: 10px 16px; }
  .whatsapp-icon   { width: 24px; height: 24px; }
  .whatsapp-text   { font-size: 13px; }
  #view-operator > .panel-container > header > .flex > .btn,
  #view-admin > .panel-container > header > .flex > .btn,
  #view-driver > .panel-container > header > .flex > .btn,
  #adm-tab-dashboard .flex.space-between > .flex > .btn.btn-sm,
  #view-driver .card .flex.mt-2 > .btn { flex-basis: 110px; max-width: 118px; font-size: 0.72rem; }
  #view-admin .admin-tabs > .btn,
  #view-admin > .panel-container > header > .flex > .btn,
  #adm-tab-dashboard .flex.space-between > .flex > .btn.btn-sm { flex-basis: 112px; width: 112px; min-width: 112px; max-width: 112px; }
  #view-admin .admin-tabs > .btn.admin-tab-wide { flex-basis: 160px; width: 160px; min-width: 160px; max-width: 160px; }
}
@media (max-width: 640px) {
  .login-left-panel { display: none; }
  .login-right-panel { flex: 1; min-height: 100vh; }
}
@media (max-width: 768px) { .md\:grid-cols-2 { grid-template-columns: 1fr; } }

/* ── TAILWIND COMPAT ─────────────────────────────────────── */
.min-h-screen { min-height: 100vh; }
.p-8 { padding: 2rem; } .p-6 { padding: 1.5rem; } .p-4 { padding: 1rem; }
.p-3 { padding: 0.75rem; } .p-2 { padding: 0.5rem; } .p-1 { padding: 0.25rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.mb-1 { margin-bottom: 0.25rem; } .mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 0.75rem; } .mb-4 { margin-bottom: 1rem; }
.mt-4 { margin-top: 1rem; }
.max-w-6xl { max-width: 72rem; } .max-w-md { max-width: 28rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.overflow-hidden { overflow: hidden; }
.items-center { align-items: center; } .justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: 0.25rem; } .gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; } .gap-6 { gap: 1.5rem; }
.flex-wrap { flex-wrap: wrap; }
.grid { display: grid; }
.grid-cols-7 { grid-template-columns: repeat(7,1fr); }
.grid-cols-3 { grid-template-columns: repeat(3,1fr); }
.grid-cols-2 { grid-template-columns: repeat(2,1fr); }
.bg-white  { background-color: white; } .bg-gray-50 { background-color: var(--surface-2); }
.bg-blue-600 { background-color: var(--primary); } .bg-green-100 { background-color: var(--primary-muted); }
.bg-blue-100 { background-color: var(--surface-2); } .bg-blue-50 { background-color: #f0f4ef; }
.bg-black { background-color: black; }
.bg-gradient-to-br { background: linear-gradient(to bottom right, var(--surface-2), var(--primary-muted)); }
.bg-gradient-to-r  { background: linear-gradient(to right, var(--primary), var(--primary-dark)); }
.text-white { color: white; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-blue-100 { color: var(--primary-muted); } .text-gray-600 { color: var(--text-muted); }
.text-gray-700 { color: var(--text-main); } .text-gray-800 { color: #1a2e1a; }
.text-gray-500 { color: #5a7058; } .text-green-800 { color: var(--primary-dark); }
.text-blue-800 { color: var(--primary); } .text-blue-600 { color: var(--primary); }
.font-bold { font-weight: 700; } .font-semibold { font-weight: 600; } .font-medium { font-weight: 500; }
.rounded-2xl { border-radius: 1rem; } .rounded-xl { border-radius: 0.75rem; }
.rounded-lg { border-radius: 0.5rem; } .rounded-full { border-radius: 9999px; }
.shadow-2xl { box-shadow: var(--shadow-lg); } .shadow-lg { box-shadow: var(--shadow); } .shadow { box-shadow: var(--shadow-sm); }
.w-8 { width: 2rem; } .h-8 { height: 2rem; } .w-5 { width: 1.25rem; } .h-5 { height: 1.25rem; }
.w-4 { width: 1rem; } .h-4 { height: 1rem; } .w-3 { width: 0.75rem; } .h-3 { height: 0.75rem; }
.w-12 { width: 3rem; } .h-12 { height: 3rem; } .w-6 { width: 1.5rem; } .h-6 { height: 1.5rem; }
.w-full { width: 100%; } .aspect-square { aspect-ratio: 1; }
.relative { position: relative; } .fixed { position: fixed; } .block { display: block; }
.inset-0 { top:0; right:0; bottom:0; left:0; } .z-50 { z-index: 50; }
.opacity-50 { opacity: 0.5; }
.space-y-3 > * + * { margin-top: 0.75rem; } .space-y-2 > * + * { margin-top: 0.5rem; }
.hover\:bg-white:hover { background-color: white; }
.hover\:bg-gray-100:hover { background-color: var(--surface-2); }
.hover\:bg-blue-50:hover { background-color: var(--primary-muted); }
.hover\:bg-blue-200:hover { background-color: #d9b3d9; }
.hover\:bg-blue-700:hover { background-color: var(--primary-dark); }
.hover\:bg-green-200:hover { background-color: #d9b3d9; }
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:scale-125:hover { transform: scale(1.25); }
.hover\:shadow-xl:hover { box-shadow: var(--shadow); }
.transition-all { transition: all 0.2s; } .transition-colors { transition: background-color 0.2s; }
.transition-transform { transition: transform 0.2s; }
.bg-opacity-50 { background-color: rgba(0,0,0,0.5); }
.focus\:border-blue-600:focus { border-color: var(--primary); }
.focus\:outline-none:focus { outline: none; }
.border-2 { border-width: 2px; } .border-gray-300 { border-color: var(--border); }
.bg-green-100 { background-color: var(--primary-muted); } .text-green-800 { color: var(--primary-dark); }

/* ── ABAS DE NAVEGAÇÃO ────────────────────────────────────── */
.rec-tab {
  padding: 10px 20px; background-color: transparent;
  border: 2px solid transparent; color: var(--text-muted);
  font-weight: 600; font-size: 0.9rem; cursor: pointer;
  transition: all 0.2s ease; border-radius: 10px 10px 0 0; margin-bottom: -2px;
}
.rec-tab:hover { color: var(--primary); background-color: var(--primary-glass); }
.rec-tab.active {
  background-color: white; color: var(--primary);
  font-weight: 700; border: 2px solid var(--border); border-bottom: 2px solid white;
}

/* ── RECEPÇÃO ─────────────────────────────────────────────── */
#view-reception .panel-container { max-width: 1320px !important; }

#view-reception .rec-layout {
  grid-template-columns: 300px minmax(0, 1fr) !important;
  gap: 18px !important;
}

#view-reception .rec-sidebar {
  position: sticky;
  top: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#view-reception #reception-operator-info {
  display: inline-flex;
  align-items: center;
  margin-top: 4px !important;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 600;
  color: #fff !important;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.26);
}

#view-reception #reception-clock {
  display: inline-flex;
  align-items: center;
  margin-top: 6px !important;
  padding: 5px 11px;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #fff !important;
  background: rgba(255,255,255,0.2);
  border: 1px solid rgba(255,255,255,0.32);
}

#view-reception .rec-search-card,
#view-reception .rec-actions-card,
#view-reception .rec-summary-card,
#view-reception .rec-content-card,
#view-reception #rec-empty-state {
  border: 1px solid #e5e7eb !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03), 0 4px 14px -8px rgba(15, 23, 42, 0.06) !important;
  transition: box-shadow 0.22s ease !important;
}
#view-reception .rec-content-card:hover {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 8px 24px -10px rgba(15, 23, 42, 0.12) !important;
}

#view-reception .rec-content-card { padding: 22px 24px !important; }

#view-reception .rec-tabs {
  padding: 0 !important;
  border-bottom: 2px solid #e5e7eb !important;
  gap: 4px !important;
  background: transparent !important;
  margin-bottom: 18px !important;
}
#view-reception .rec-tab {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 11px 18px !important;
  color: #64748b !important;
  font-weight: 600 !important;
  margin-bottom: -2px !important;
}
#view-reception .rec-tab:hover:not(.active) {
  color: #475569 !important;
  background: transparent !important;
}
#view-reception .rec-tab.active {
  color: #6d1f6c !important;
  border-bottom-color: #6d1f6c !important;
  background: transparent !important;
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
}

#view-reception .rec-tab {
  margin-bottom: -1px;
  border-width: 1px;
  border-radius: 10px 10px 0 0;
  font-size: 0.84rem;
  padding: 9px 14px;
}

#view-reception .rec-tab.active {
  border-color: var(--primary);
  color: var(--primary-dark);
  box-shadow: inset 0 -2px 0 var(--primary);
}

#view-reception .rec-card-head {
  padding-bottom: 12px;
  margin-bottom: 14px !important;
  border-bottom: 1px solid var(--border);
}

#view-reception .rec-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px 14px !important;
}

#view-reception .rec-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: #5a4b6a;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

#view-reception .rec-field {
  border-radius: 10px !important;
  border: 1.5px solid var(--border) !important;
  background: #fff !important;
}

#view-reception .rec-address-section {
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--border) !important;
}

#view-reception .rec-list-item {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  padding: 12px 14px;
  margin-bottom: 8px;
  transition: box-shadow .18s, transform .18s, border-color .18s;
}

#view-reception .rec-list-item:hover {
  transform: translateY(-1px);
  border-color: rgba(109,31,108,0.28);
  box-shadow: var(--shadow-xs);
}

#view-reception .rec-list-row,
#view-reception .rec-ticket-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

#view-reception .rec-list-main { min-width: 0; }

#view-reception .rec-list-title {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--primary-dark);
}

#view-reception .rec-ticket-code {
  font-weight: 800;
  color: var(--primary);
  font-size: 1.02rem;
  letter-spacing: 0.01em;
}

#view-reception .rec-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.73rem;
  font-weight: 800;
  white-space: nowrap;
  border: 1px solid transparent;
}

#view-reception .rec-status-active,
#view-reception .rec-status-waiting {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #4e1550;
}

#view-reception .rec-status-served,
#view-reception .rec-status-no_show {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

#view-reception .rec-status-completed,
#view-reception .rec-status-closed {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #166534;
}

#view-reception .rec-status-cancelled {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

#view-reception #rec-summary-name { color: var(--primary-dark) !important; }
#view-reception #rec-summary-meta { color: #475569 !important; }

#view-reception #rec-empty-state {
  min-height: 250px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.op-tr-tab {
  padding: var(--btn-pad-y-sm) var(--btn-pad-x);
  font-size: var(--btn-font-sm); font-family: var(--font-ui); font-weight: var(--btn-weight);
}
.op-tr-tab.active {
  background: white !important; color: var(--primary) !important;
  font-weight: 700 !important; border: 1px solid var(--border) !important;
  border-bottom: 2px solid white !important;
}

/* ════════════════════════════════════════════════════════════
   INTRANET — Design renovado
════════════════════════════════════════════════════════════ */
.intranet-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px; padding: 18px 26px;
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  border: none; border-radius: var(--radius);
  box-shadow: var(--shadow); margin-bottom: 22px; color: white;
}
.intranet-header-brand { display: flex; align-items: center; gap: 14px; }
.intranet-header-logo {
  width: 44px; height: 44px; background: rgba(255,255,255,0.18);
  border-radius: 11px; display: flex; align-items: center; justify-content: center;
  color: white; flex-shrink: 0; border: 1px solid rgba(255,255,255,0.24);
}
.intranet-header-title { font-size: 1.15rem; font-weight: 800; color: white; }
.intranet-header-sub   { font-size: 0.82rem; color: rgba(255,255,255,0.92); margin-top: 1px; }
.intranet-user-name { font-weight: 700; color: #fff; }
.intranet-user-role { color: rgba(255,255,255,0.86); }
.intranet-header-search {
  flex: 1 1 420px;
  min-width: 250px;
  max-width: 620px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.28);
  background: rgba(255,255,255,0.16);
  backdrop-filter: blur(3px);
}
.intranet-header-search svg { color: rgba(255,255,255,0.9); flex-shrink: 0; }
.intranet-header-search input {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: #fff;
  font-size: 0.88rem;
}
.intranet-header-search input::placeholder { color: rgba(255,255,255,0.78); }
.intranet-header-search input:focus {
  box-shadow: none;
  border: none;
  background: transparent;
}
#btn-intranet-search-clear {
  border: 1px solid rgba(255,255,255,0.34);
  background: rgba(255,255,255,0.18);
  color: #fff;
  font-size: 0.73rem;
  font-weight: 700;
  border-radius: 999px;
  padding: 3px 10px;
  cursor: pointer;
}
#btn-intranet-search-clear:hover { background: rgba(255,255,255,0.3); }
.intranet-header-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.intranet-badge {
  background: rgba(255,255,255,0.18); color: white;
  font-size: 0.75rem; font-weight: 700; padding: 4px 12px;
  border-radius: 999px; white-space: nowrap; border: 1px solid rgba(255,255,255,0.24);
}
.intranet-header .btn { background: rgba(255,255,255,0.14); color: white; border-color: rgba(255,255,255,0.28); font-size: 0.8rem; }
.intranet-header .btn:hover { background: rgba(255,255,255,0.26); color: white; transform: translateY(-1px); }

#view-intranet .intranet-grid,
#view-ubs-intranet .intranet-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  transition: grid-template-columns .24s ease;
  position: relative;
}
#view-intranet .intranet-sidebar,
#view-ubs-intranet .intranet-sidebar {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
  overflow: hidden; position: sticky; top: 12px;
  transition: opacity .22s ease, transform .22s ease;
  transform-origin: left top;
}
.intranet-menu-handle {
  position: absolute;
  top: 14px;
  left: calc(280px - 17px);
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(109,31,108,0.24);
  background: #ffffff;
  color: var(--primary-dark);
  box-shadow: var(--shadow-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 25;
  transition: left .24s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}
.intranet-menu-handle:hover {
  background: var(--primary-muted);
  border-color: var(--primary);
  transform: translateY(-1px);
}
.intranet-sidebar-section { padding: 18px; }
.intranet-sidebar-label {
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--text-muted); margin-bottom: 10px;
}
#intranet-menu-list,
#ubs-menu-list { display: flex; flex-direction: column; gap: 4px; }

#view-intranet.sidebar-collapsed .intranet-grid {
  grid-template-columns: 0 minmax(0, 1fr);
}

#view-intranet.sidebar-collapsed .intranet-menu-handle {
  left: 8px;
}

#view-intranet.sidebar-collapsed .intranet-sidebar {
  opacity: 0;
  transform: translateX(-16px) scale(0.98);
  pointer-events: none;
  margin-right: -22px;
}

.intranet-menu-item {
  width: 100%; text-align: left; justify-content: flex-start;
  padding: 11px 13px; background: transparent;
  border: 1px solid transparent; border-radius: 11px;
  cursor: pointer; transition: all .16s; display: block;
}
.intranet-menu-item:hover { background: var(--bg-panel); border-color: var(--primary-muted); }
.intranet-menu-item.active, .intranet-menu-item:focus { background: var(--primary-muted); border-color: var(--primary); }
.intranet-menu-item.locked { opacity: 0.45; cursor: not-allowed; }
.intranet-menu-item.locked:hover { background: transparent; border-color: transparent; }
.intranet-menu-item .title { font-weight: 700; color: var(--primary-dark); font-size: 0.9rem; }
.intranet-menu-item.locked .title { color: var(--text-muted); }
.intranet-menu-item .desc { font-size: 0.79rem; color: #5b6070; margin-top: 2px; line-height: 1.35; }
.intranet-menu-empty {
  padding: 10px 11px;
  border: 1px dashed rgba(109,31,108,0.24);
  border-radius: 10px;
  background: rgba(109,31,108,0.05);
  color: #5b6070;
}

.intranet-card {
  background: var(--card-bg, #f7f7f7);
  border: 1px solid rgba(109,31,108,0.18);
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(109,31,108,0.1);
  padding: 20px 22px;
}
.intranet-card-header { display: flex; align-items: flex-start; gap: 13px; }
.intranet-card-icon {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.intranet-card h4 { color: #3d2450; }
.intranet-card .small { color: #5f6b7a; }
#view-intranet .intranet-main,
#view-ubs-intranet .intranet-main {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
  position: relative;
}

#view-intranet .intranet-main::before {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.36);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
  z-index: 20;
}

#view-intranet.sidebar-open .intranet-main::before {
  opacity: 1;
  pointer-events: auto;
}

.ubs-flow-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 18px 20px;
}
.ubs-flow-toolbar h3 {
  margin: 0;
  color: var(--primary-dark);
  font-size: 1.05rem;
}
.ubs-flow-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ubs-flow-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.ubs-flow-stats div {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 13px 14px;
  box-shadow: var(--shadow-xs);
}
.ubs-flow-stats span {
  display: block;
  color: var(--primary);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
}
.ubs-flow-stats strong {
  display: block;
  margin-top: 5px;
  color: var(--text-main);
  font-size: 0.78rem;
}
.ubs-flow-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.ubs-flow-column {
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 12px;
  min-height: 260px;
  overflow: hidden;
}
.ubs-flow-column-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 13px 14px;
  background: #fff;
  border-bottom: 1px solid var(--border);
}
.ubs-flow-column-head strong {
  color: var(--primary-dark);
  font-size: 0.88rem;
}
.ubs-flow-column-head span {
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary-muted);
  color: var(--primary-dark);
  font-weight: 800;
  font-size: 0.78rem;
}
.ubs-flow-column-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
}
.ubs-flow-empty {
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: var(--text-muted);
  padding: 12px;
  font-size: 0.82rem;
}
.ubs-flow-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-left: 4px solid #64748b;
  border-radius: 10px;
  box-shadow: var(--shadow-xs);
  padding: 12px;
}
.ubs-flow-card-triage { border-left-color: #0ea5e9; }
.ubs-flow-card-doctor { border-left-color: #7a2779; }
.ubs-flow-card-regulated { border-left-color: #16a34a; }
.ubs-flow-card-closed { border-left-color: #64748b; }
.ubs-flow-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}
.ubs-flow-card-top strong {
  color: var(--primary-dark);
  font-size: 0.94rem;
}
.ubs-flow-card-top span {
  background: #f1f5f9;
  color: #475569;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 0.68rem;
  font-weight: 800;
  white-space: nowrap;
}
.ubs-flow-card-name {
  color: var(--text-main);
  font-weight: 800;
  margin-bottom: 3px;
}
.ubs-flow-card p {
  margin: 8px 0;
  color: var(--text-main);
  font-size: 0.82rem;
  line-height: 1.45;
}
.ubs-flow-vitals,
.ubs-flow-protocol {
  margin-top: 8px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 7px 9px;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 700;
}
.ubs-flow-protocol {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #166534;
}
.ubs-flow-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}
.ubs-clinical-modal-box {
  max-width: 1180px;
  width: 96%;
}
/* Encaminhamento com vários itens (especialidade/procedimento) */
.reg-itens { display: flex; flex-direction: column; gap: 8px; }
.reg-item-row { display: flex; gap: 8px; align-items: flex-start; }
.reg-item-row .reg-item-tipo { flex: 0 0 220px; max-width: 220px; }
.reg-item-row .reg-item-ac { flex: 1 1 auto; min-width: 0; margin: 0; }
.reg-item-row .reg-item-remove { flex: 0 0 auto; font-size: 18px; line-height: 1; padding: 6px 12px; color: #b91c1c; }
.reg-item-add { margin-top: 10px; }
@media (max-width: 640px) {
  .reg-item-row { flex-wrap: wrap; }
  .reg-item-row .reg-item-tipo { flex: 1 1 100%; max-width: none; }
}
.ubs-clinical-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ubs-regulation-block {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px;
}
.ubs-calendar-shell {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ubs-calendar-head,
.ubs-calendar-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow-sm);
}
.ubs-calendar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
}
.ubs-calendar-head h3 {
  margin: 0;
  color: var(--primary-dark);
  font-size: 1.05rem;
}
.ubs-calendar-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.ubs-calendar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.85fr);
  gap: 14px;
  align-items: start;
}
.ubs-calendar-card {
  overflow: hidden;
}
.ubs-calendar-month {
  background: var(--primary);
  color: #fff;
  font-weight: 800;
  text-align: center;
  padding: 14px;
}
.ubs-calendar-weekdays,
.ubs-calendar-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.ubs-calendar-weekdays {
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}
.ubs-calendar-weekdays span {
  text-align: center;
  padding: 10px 0;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
}
.ubs-calendar-days {
  gap: 6px;
  padding: 10px;
}
.ubs-calendar-day {
  min-width: 0;
  aspect-ratio: 1;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
  color: #334155;
  font-weight: 800;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
}
.ubs-calendar-day i {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #16a34a;
}
.unit-reg-calendar-grid {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) minmax(320px, 0.9fr);
  gap: 20px;
}
.ubs-calendar-day.has-slots {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #166534;
}
.ubs-calendar-day.selected {
  background: var(--primary);
  border-color: var(--primary-dark);
  color: #fff;
}
.ubs-calendar-day.selected i {
  background: rgba(255,255,255,0.86);
}
.ubs-calendar-day.past {
  color: #94a3b8;
}
.ubs-calendar-detail-head {
  padding: 14px 16px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}
.ubs-calendar-add {
  display: grid;
  grid-template-columns: 1fr 90px auto;
  gap: 8px;
  padding: 14px 16px;
  border-bottom: 1px solid #e2e8f0;
}
.ubs-calendar-slots {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
}
.ubs-calendar-slot {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 11px 12px;
  background: #fff;
}
.ubs-calendar-slot strong {
  display: block;
  color: var(--primary-dark);
  font-size: 0.95rem;
}
.ubs-calendar-slot span {
  display: block;
  color: #64748b;
  font-size: 0.8rem;
}
.ubs-calendar-slot ul {
  margin: 7px 0 0;
  padding-left: 17px;
  color: #334155;
  font-size: 0.78rem;
}
@media (max-width: 1080px) {
  .ubs-flow-board { grid-template-columns: 1fr; }
  .ubs-flow-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ubs-calendar-layout { grid-template-columns: 1fr; }
  .unit-reg-calendar-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ubs-flow-toolbar { align-items: stretch; flex-direction: column; }
  .ubs-flow-actions { justify-content: stretch; }
  .ubs-flow-actions .btn { width: 100%; }
  .ubs-flow-stats { grid-template-columns: 1fr; }
  .ubs-calendar-head { align-items: stretch; flex-direction: column; }
  .ubs-calendar-actions .btn { width: 100%; }
  .ubs-calendar-add { grid-template-columns: 1fr; }
  .ubs-calendar-slot { flex-direction: column; }
}

/* ── CAPACITAÇÃO ─────────────────────────────────────────── */
.cap-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow-xs);
  overflow: hidden; display: flex; flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}
.cap-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.cap-card-thumb {
  width: 100%; height: 140px; display: flex;
  align-items: center; justify-content: center;
  font-size: 2.5rem; color: white; position: relative;
}
.cap-card-body { padding: 15px 17px; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.cap-card-title { font-weight: 700; color: var(--text-main); font-size: 0.95rem; line-height: 1.3; }
.cap-card-desc { font-size: 0.8rem; color: var(--text-muted); line-height: 1.4; flex: 1; }
.cap-card-footer { padding: 10px 16px; border-top: 1px solid var(--border); display: flex; gap: 8px; align-items: center; justify-content: space-between; }
.cap-badge { font-size: 0.72rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; }
.cap-cat-tab {
  padding: 6px 16px; border-radius: 999px; border: 1.5px solid var(--border);
  background: var(--surface); font-size: 0.8rem; font-weight: 600;
  cursor: pointer; transition: all .15s; color: var(--text-main);
}
.cap-cat-tab:hover, .cap-cat-tab.active { background: var(--primary); color: white; border-color: var(--primary-dark); }
#cap-view-body iframe { width: 100%; border: none; border-radius: 0 0 10px 10px; }
#cap-view-body .cap-text-content {
  padding: 22px 26px; line-height: 1.75; font-size: 0.92rem;
  color: var(--text-main); white-space: pre-wrap; max-height: 75vh; overflow-y: auto;
}

/* ── AVISOS INTRANET ─────────────────────────────────────── */
.intranet-notice {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(109,31,108,0.18);
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: 0 10px 22px rgba(78,21,80,0.08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  animation: fadeInUp .22s ease;
}
.intranet-notice::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: var(--primary-light);
  opacity: .74;
}
.intranet-notice::after {
  content: '';
  position: absolute;
  top: -46px;
  right: -36px;
  width: 136px;
  height: 136px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(109,31,108,0.12) 0%, rgba(109,31,108,0) 72%);
  pointer-events: none;
}
.intranet-notice:hover {
  transform: translateY(-3px);
  border-color: rgba(109,31,108,0.34);
  box-shadow: 0 14px 30px rgba(78,21,80,0.16);
}
#intranet-notices-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.intranet-search-results {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(109,31,108,0.16);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(248,241,248,0.9) 0%, rgba(255,255,255,0.95) 100%);
}
.intranet-search-action {
  border: 1px solid rgba(109,31,108,0.18);
  background: #fff;
  color: #4a2f5d;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .16s ease;
}
.intranet-search-action:hover {
  background: var(--primary-muted);
  border-color: var(--primary);
  color: var(--primary-dark);
  transform: translateY(-1px);
}
.intranet-empty-state {
  grid-column: 1 / -1;
  padding: 14px 16px;
  border: 1px dashed rgba(109,31,108,0.25);
  border-radius: 12px;
  background: rgba(109,31,108,0.05);
  color: #5b6070;
}
.intranet-notice-has-image { grid-column: 1 / -1; }
.intranet-notice-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 4px; }
.intranet-notice-main { min-width: 0; }
.intranet-notice-actions { flex-shrink: 0; }
.intranet-notice-footer {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.intranet-notice-title {
  font-size: 1.08rem;
  font-weight: 800;
  color: #321a47;
  line-height: 1.32;
}
.intranet-notice-edit {
  min-width: 84px;
  border-radius: 12px;
  border: 1px solid rgba(109,31,108,0.2);
  background: rgba(255,255,255,0.9);
  color: var(--primary-dark);
  font-weight: 700;
}
.intranet-notice-edit:hover {
  border-color: var(--primary);
  background: #f7eef7 !important;
  color: var(--primary-dark);
}
.intranet-notice-open {
  border-radius: 999px;
  border: 1px solid rgba(109,31,108,0.24);
  background: rgba(255,255,255,0.92);
  color: #4a2163;
  font-weight: 800;
  min-width: 120px;
}
.intranet-notice-open:hover {
  border-color: var(--primary);
  background: #f7eef7 !important;
  color: var(--primary-dark);
}
.notice-pill {
  padding: 3px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: .03em;
  border: 1px solid transparent;
}
.notice-pill-pin {
  background: linear-gradient(180deg, #f4eaf4 0%, #ebdceb 100%);
  color: var(--primary-dark);
  border-color: rgba(109,31,108,0.24);
}
.notice-pill-style {
  background: linear-gradient(180deg, #fff8e9 0%, #fff1cd 100%);
  color: #6b4d00;
  border-color: rgba(230,184,0,0.3);
}
.notice-pill-media {
  background: linear-gradient(180deg, #f2f7ff 0%, #e9f2ff 100%);
  color: #1f4f83;
  border-color: rgba(51,102,153,0.28);
}
.intranet-notice .meta {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 7px;
  font-size: 0.79rem;
  color: #5e6778;
}
.intranet-notice .meta > span {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(109,31,108,0.17);
  box-shadow: 0 1px 0 rgba(255,255,255,0.45) inset;
}
.intranet-notice .body {
  margin-top: 12px;
  line-height: 1.56;
  white-space: pre-wrap;
  font-size: 1.03rem;
  color: #3d4f66;
}
.intranet-notice-preview {
  white-space: pre-line;
  max-height: 8.2em;
  overflow: hidden;
  position: relative;
  font-size: 0.98rem;
  margin-top: 10px;
}
.intranet-notice-preview::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2.4em;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(251,246,251,0.98) 100%);
}
.notice-carousel { margin-top: 12px; }
.notice-carousel-frame {
  width: 100%;
  height: clamp(220px, 32vw, 340px);
  background: #f2eaf2;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.notice-frame-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: blur(26px) saturate(1.05);
  transform: scale(1.12);
  opacity: 0.5;
  z-index: 0;
}
.notice-carousel-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  background: transparent;
  position: relative;
  z-index: 1;
}
.notice-carousel-frame iframe { width: 100%; height: 100%; border: 0; display: block; background: #0f172a; position: relative; z-index: 1; }
.notice-media-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #faf4fa 0%, #f2e8f2 100%);
}
.notice-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
}
.notice-carousel-dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(109,31,108,0.26);
}
.notice-dot {
  width: 24px;
  height: 6px;
  border: 0;
  border-radius: 999px;
  background: #d6c2d6;
  cursor: pointer;
  transition: all .18s ease;
}
.notice-dot:hover {
  background: #b889b7;
}
.notice-dot.is-active {
  width: 30px;
  background: var(--accent-dark);
}
.intranet-notice-view-overlay {
  background: rgba(17, 12, 24, 0.62);
  backdrop-filter: blur(8px);
}
.intranet-notice-view-box {
  width: min(900px, 96vw);
  max-width: 900px;
  padding: 22px 24px;
}
.intranet-notice-view-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.intranet-notice-view-head h3 {
  font-size: 1.26rem;
  color: #2f1844;
}
.intranet-notice-view-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.intranet-notice-view-meta > span {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(109,31,108,0.18);
  background: rgba(255,255,255,0.85);
  color: #4e5f76;
  font-size: 0.8rem;
}
.intranet-notice-view-body {
  margin-top: 14px;
  border-top: 1px solid rgba(109,31,108,0.16);
  padding-top: 14px;
  line-height: 1.68;
  font-size: 1.02rem;
  color: #334155;
  white-space: normal;
}
.intranet-notice-view-media {
  margin-top: 16px;
  display: grid;
  gap: 12px;
}
.notice-detail-media-item {
  border: 1px solid rgba(109,31,108,0.16);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.notice-detail-media-frame {
  height: clamp(240px, 42vh, 440px);
}

.intranet-notice.intranet-style-standard::before { background: var(--primary-light); }
.intranet-notice.intranet-style-info::before { background: var(--primary); }
.intranet-notice.intranet-style-urgent::before { background: var(--danger); }
.intranet-notice.intranet-style-success::before { background: var(--success); }
.intranet-notice.intranet-style-celebration::before { background: var(--accent-dark); }

.intranet-notice.intranet-style-standard {
  background: #ffffff;
  border-color: rgba(109,31,108,0.22);
}
.intranet-notice.intranet-style-info {
  background: #ffffff;
  border-color: rgba(109,31,108,0.26);
}
.intranet-notice.intranet-style-urgent {
  background: linear-gradient(180deg, #ffffff 0%, #fff3f2 100%);
  border-color: rgba(192,57,43,0.32);
}
.intranet-notice.intranet-style-success {
  background: linear-gradient(180deg, #ffffff 0%, #edf9f3 100%);
  border-color: rgba(30,126,72,0.3);
}
.intranet-notice.intranet-style-celebration {
  background: linear-gradient(125deg, #fff9ef 0%, #fff2d6 52%, #f7eaf7 100%);
  border-color: rgba(230,184,0,0.32);
}
.intranet-notice.intranet-style-dark { background: linear-gradient(180deg,#1e293b 0%,#0f172a 100%); color: #f8fafc; }
.intranet-notice.intranet-style-dark::before { background: #cbd5e1; opacity: .8; }
.intranet-notice.intranet-style-dark .meta,
.intranet-notice.intranet-style-dark .intranet-notice-title { color: #cbd5e1; }
.intranet-notice.intranet-style-dark .meta > span {
  background: rgba(148,163,184,0.18);
  border-color: rgba(148,163,184,0.36);
  color: #e2e8f0;
}
.intranet-notice.intranet-style-dark .notice-pill-style { background: #334155; color: #f8fafc; }
.intranet-notice.intranet-style-dark .intranet-notice-edit {
  background: rgba(30,41,59,0.9);
  border-color: rgba(148,163,184,0.45);
  color: #f8fafc;
}
.intranet-notice.intranet-style-dark .intranet-notice-edit:hover {
  background: #334155 !important;
  border-color: rgba(226,232,240,0.6);
  color: #f8fafc;
}
.intranet-notice.intranet-style-dark .notice-carousel-frame { border-color: #334155; background: #0f172a; }
.intranet-notice.intranet-style-dark .notice-carousel-dots {
  background: rgba(15,23,42,0.55);
  border-color: #334155;
}
.intranet-notice.intranet-style-dark .notice-dot {
  background: #64748b;
}
.intranet-notice.intranet-style-dark .notice-dot:hover {
  background: #94a3b8;
}
.intranet-notice.intranet-style-dark .notice-dot.is-active {
  background: #e2e8f0;
}
.intranet-notice.intranet-style-dark .intranet-notice-open {
  background: rgba(30,41,59,0.92);
  border-color: rgba(148,163,184,0.45);
  color: #f8fafc;
}
.intranet-notice.intranet-style-dark .intranet-notice-open:hover {
  background: #334155 !important;
  border-color: rgba(226,232,240,0.62);
}
.intranet-notice.intranet-style-dark .notice-pill-media {
  background: rgba(148,163,184,0.18);
  border-color: rgba(148,163,184,0.4);
  color: #dbeafe;
}
.intranet-notice.intranet-style-dark .intranet-notice-preview::after {
  background: linear-gradient(180deg, rgba(15,23,42,0) 0%, rgba(15,23,42,0.96) 100%);
}

body.theme-dark .intranet-notice-view-box {
  background: #111827;
  border-color: #334155;
}
body.theme-dark .intranet-notice-view-head h3 {
  color: #f8fafc;
}
body.theme-dark .intranet-notice-view-body {
  border-color: #334155;
  color: #e2e8f0;
}
body.theme-dark .intranet-notice-view-meta > span {
  background: rgba(148,163,184,0.18);
  border-color: rgba(148,163,184,0.36);
  color: #cbd5e1;
}
body.theme-dark .notice-detail-media-item {
  border-color: #334155;
  background: #0f172a;
}

.intranet-panels-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.intranet-panels-grid .panel-choice { display: flex; gap: 10px; align-items: flex-start; padding: 13px; background: #fff; border: 1px solid var(--border); border-radius: 12px; }
.intranet-panels-grid .panel-choice input { margin-top: 2px; }
.intranet-panels-grid .panel-choice .label { font-weight: 800; color: var(--primary-dark); }
.intranet-panels-grid .panel-choice .help  { font-size: 0.78rem; color: var(--text-muted); margin-top: 2px; }

/* ════════════════════════════════════════════════════════════
   FATURAMENTO
════════════════════════════════════════════════════════════ */
.fat-shell { display: flex; flex-direction: column; gap: 18px; }
.fat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.fat-header h2 { margin: 0; font-size: 1.3rem; }
.fat-header .small { color: rgba(255,255,255,0.80); }
.fat-toolbar, .fat-tabs, .fat-actions, .fat-inline { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.fat-flash { padding: 12px 16px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-main); font-weight: 600; }
.fat-flash.success { background: var(--success-muted); border-color: #86efac; color: #166534; }
.fat-flash.error   { background: var(--danger-muted); border-color: #fca5a5; color: #b91c1c; }
.fat-metrics, .fat-report-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 13px; }
.fat-metric-card {
  background: linear-gradient(180deg, #fff 0%, var(--bg-panel) 100%);
  border: 1px solid var(--border); border-radius: 14px; padding: 18px; box-shadow: var(--shadow-xs);
  transition: box-shadow .2s, transform .2s;
}
.fat-metric-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.fat-metric-card .label { font-size: 0.78rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.08em; }
.fat-metric-card .value { margin-top: 8px; font-size: 1.52rem; font-weight: 800; color: var(--primary-dark); letter-spacing: -0.02em; }
.fat-metric-card .hint  { margin-top: 4px; font-size: 0.8rem; color: var(--text-muted); }
.fat-tab { background: #fff; border: 1px solid var(--border); color: var(--text-main); }
.fat-tab.active { background: var(--primary); border-color: var(--primary-dark); color: #fff; }
.fat-panel { display: none; }
.fat-panel.active { display: flex; flex-direction: column; gap: 16px; }
.fat-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 16px; }
.fat-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 14px;
}
.fat-chart-card {
  background: linear-gradient(180deg, #ffffff 0%, var(--bg-panel) 100%);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 14px 12px;
  box-shadow: var(--shadow-xs);
  min-height: 290px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.fat-chart-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 24px rgba(78,21,80,0.12);
  border-color: rgba(109,31,108,0.24);
}
.fat-chart-card .fat-panel-title strong {
  color: var(--primary-dark);
  letter-spacing: 0.01em;
}
.fat-chart-canvas {
  width: 100% !important;
  height: 250px !important;
  display: block;
}
.fat-accordion { border: 1px solid var(--border); border-radius: 14px; background: #fff; overflow: hidden; }
.fat-accordion summary {
  list-style: none; cursor: pointer; padding: 15px 18px;
  font-weight: 700; color: var(--primary-dark);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.fat-accordion summary::-webkit-details-marker { display: none; }
.fat-accordion[open] summary { border-bottom: 1px solid var(--border); }
.fat-accordion-body { padding: 18px; }
.fat-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.fat-form-grid .fat-col-span-2 { grid-column: span 2; }
.fat-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
.fat-card-list { display: none; grid-template-columns: 1fr; gap: 12px; }
.fat-row-card, .fat-list-item { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 15px; box-shadow: var(--shadow-xs); }
.fat-row-card .title, .fat-list-item .title { font-weight: 700; color: var(--primary-dark); }
.fat-meta { margin-top: 4px; color: var(--text-muted); font-size: 0.84rem; }
.fat-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-top: 12px; }
.fat-kv .item { padding: 10px 13px; border-radius: 10px; background: var(--surface-2); border: 1px solid var(--border); }
.fat-kv .item strong { display: block; font-size: 0.74rem; color: var(--text-muted); margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.05em; }
.fat-empty { padding: 30px 18px; text-align: center; color: var(--text-muted); }
.fat-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 0.76rem; font-weight: 700; }
.fat-badge.inprogress { background: #fef3c7; color: #92400e; }
.fat-badge.done       { background: #dcfce7; color: #166534; }
.fat-badge.cancelled  { background: #fee2e2; color: #b91c1c; }
.fat-badge.pending    { background: #e0f2fe; color: #075985; }
.fat-modal-box { width: min(var(--modal-w, 820px), 94vw); }
.fat-modal-box form { padding: 18px 22px 22px; }
.fat-panel-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fat-caption { font-size: 0.84rem; color: var(--text-muted); }

/* Faturamento: refinamento dedicado do modo escuro */
body.theme-dark #view-faturamento .panel-container {
  background: linear-gradient(180deg, #1b1b1b 0%, #171717 100%) !important;
  border-color: #2f2f2f !important;
  box-shadow: 0 14px 34px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.04);
}

body.theme-dark #view-faturamento .fat-metric-card {
  background: linear-gradient(180deg, #2b2b2b 0%, #1f1f1f 100%) !important;
  border-color: #3a3a3a !important;
  box-shadow: 0 8px 20px rgba(0,0,0,0.34);
}

body.theme-dark #view-faturamento .fat-metric-card .label,
body.theme-dark #view-faturamento .fat-metric-card .hint {
  color: #b0b0b0 !important;
}

body.theme-dark #view-faturamento .fat-metric-card .value {
  color: #c7b2dd !important;
}

body.theme-dark #view-faturamento .fat-tab {
  background: #232323 !important;
  border-color: #3a3a3a !important;
  color: #e0e0e0 !important;
}

body.theme-dark #view-faturamento .fat-tab:hover {
  background: #2a2a2a !important;
  border-color: #4a4a4a !important;
}

body.theme-dark #view-faturamento .fat-tab.active {
  background: linear-gradient(135deg, #6f5b85 0%, #5a486f 100%) !important;
  border-color: #8f7aa4 !important;
  color: #ffffff !important;
}

body.theme-dark #view-faturamento .card,
body.theme-dark #view-faturamento .fat-accordion,
body.theme-dark #view-faturamento .fat-table-wrap,
body.theme-dark #view-faturamento .fat-row-card,
body.theme-dark #view-faturamento .fat-list-item {
  background: #1f1f1f !important;
  border-color: #323232 !important;
}

body.theme-dark #view-faturamento .fat-chart-card {
  background: linear-gradient(180deg, #262626 0%, #1f1f1f 100%) !important;
  border-color: #363636 !important;
  box-shadow: 0 8px 20px rgba(0,0,0,0.34);
}

body.theme-dark #view-faturamento .fat-chart-card:hover {
  border-color: #4b3d58 !important;
  box-shadow: 0 12px 24px rgba(0,0,0,0.42);
}

body.theme-dark #view-faturamento .fat-chart-card .fat-panel-title strong {
  color: #ece4f6 !important;
}

body.theme-dark #adm-tab-dashboard .dashboard-chart-card {
  background: linear-gradient(180deg, #262626 0%, #1f1f1f 100%) !important;
  border-color: #363636 !important;
  box-shadow: 0 8px 20px rgba(0,0,0,0.34);
}

body.theme-dark #adm-tab-dashboard .dashboard-chart-card:hover {
  border-color: #4b3d58 !important;
  box-shadow: 0 12px 24px rgba(0,0,0,0.42);
}

body.theme-dark #adm-tab-dashboard .dashboard-chart-card h4 {
  color: #ece4f6 !important;
}

body.theme-dark #adm-tab-dashboard .dashboard-chart-card h4::before {
  box-shadow: 0 0 0 3px rgba(167,143,196,0.2);
}

body.theme-dark #view-faturamento .fat-panel-title .title,
body.theme-dark #view-faturamento .fat-row-card .title,
body.theme-dark #view-faturamento .fat-list-item .title {
  color: #e7dcf2 !important;
}

body.theme-dark #view-faturamento .fat-meta,
body.theme-dark #view-faturamento .fat-caption {
  color: #a0a0a0 !important;
}

body.theme-dark #view-faturamento .fat-kv .item {
  background: #2a2a2a !important;
  border-color: #3a3a3a !important;
  color: #e0e0e0 !important;
}

body.theme-dark #view-faturamento .fat-kv .item strong {
  color: #a6a6a6 !important;
}

body.theme-dark #view-faturamento .fat-accordion summary {
  color: #e4d6f3 !important;
}

body.theme-dark #view-faturamento .fat-accordion[open] summary {
  border-bottom-color: #343434 !important;
}

body.theme-dark #view-faturamento table th {
  background: #262626 !important;
  color: #d5c4e8 !important;
  border-bottom-color: #383838 !important;
}

body.theme-dark #view-faturamento table td {
  color: #dedede !important;
  border-bottom-color: #303030 !important;
}

body.theme-dark #view-faturamento table tr:hover td {
  background: #242424 !important;
}

body.theme-dark #view-faturamento .fat-empty {
  color: #a5a5a5 !important;
}

body.theme-dark #view-faturamento .fat-badge {
  border: 1px solid transparent;
}

body.theme-dark #view-faturamento .fat-badge.inprogress {
  background: rgba(178,134,54,0.22) !important;
  border-color: rgba(207,164,90,0.45) !important;
  color: #f5d79c !important;
}

body.theme-dark #view-faturamento .fat-badge.pending {
  background: rgba(65,126,178,0.22) !important;
  border-color: rgba(113,158,201,0.45) !important;
  color: #b8d8f3 !important;
}

body.theme-dark #view-faturamento .fat-badge.done {
  background: rgba(53,142,96,0.22) !important;
  border-color: rgba(95,178,131,0.48) !important;
  color: #aee8c8 !important;
}

body.theme-dark #view-faturamento .fat-badge.cancelled {
  background: rgba(167,74,74,0.25) !important;
  border-color: rgba(195,104,104,0.5) !important;
  color: #f2b4b4 !important;
}

/* ════════════════════════════════════════════════════════════
   TRANSPORTE EM SAÚDE
════════════════════════════════════════════════════════════ */
.ts-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 13px; margin-bottom: 22px; }
.ts-stat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 18px 20px; box-shadow: var(--shadow-xs); transition: box-shadow .2s, transform .2s; }
.ts-stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.ts-stat-label { font-size: 11px; color: var(--text-muted); font-weight: 500; text-transform: uppercase; letter-spacing: 0.04em; }
.ts-stat-val   { font-size: 28px; font-weight: 800; color: var(--primary-dark); margin-top: 4px; letter-spacing: -0.02em; }

.ts-form-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; }
.ts-field { display: flex; flex-direction: column; gap: 4px; }
.ts-field label { font-size: 11px; font-weight: 700; color: #374151; text-transform: uppercase; letter-spacing: .04em; }
.ts-field input, .ts-field select, .ts-field textarea {
  padding: 9px 11px; border: 1.5px solid var(--border); border-radius: var(--radius-xs);
  font-size: 13px; color: #111; background: #fff; width: 100%;
  transition: border-color .15s, box-shadow .15s; box-sizing: border-box;
}
.ts-field input:focus, .ts-field select:focus, .ts-field textarea:focus {
  outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(109,31,108,0.10);
}
.ts-ac-wrap { position: relative; }
.ts-ac-wrap input { padding-right: 32px !important; }
.ts-ac-arrow {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: auto;
  cursor: pointer;
  color: #9ca3af;
}
.ts-ac-dropdown {
  display: none; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 9999;
  background: #fff; border: 1.5px solid var(--border); border-radius: 10px;
  box-shadow: var(--shadow); max-height: 200px; overflow-y: auto;
}
.ts-ac-dropdown.open { display: block; }
.ts-ac-item { padding: 9px 13px; font-size: 13px; color: #374151; cursor: pointer; border-bottom: 1px solid #f3f4f6; transition: background .1s; }
.ts-ac-item:last-child { border-bottom: none; }
.ts-ac-item:hover, .ts-ac-item.active { background: var(--primary-muted); color: var(--primary-dark); font-weight: 600; }

.ts-table-wrap { overflow-x: auto; }
.ts-table-wrap table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ts-table-wrap th { text-align: left; padding: 8px 13px; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--primary-dark); border-bottom: 1.5px solid var(--border); background: var(--surface-2); }
.ts-table-wrap td { padding: 10px 13px; border-bottom: 1px solid #f3f4f6; vertical-align: middle; color: #374151; }
.ts-table-wrap tr:hover td { background: var(--bg-panel); }
.ts-table-wrap .empty-row td { color: var(--text-muted); text-align: center; padding: 32px; }

.ts-alert { padding: 11px 15px; border-radius: var(--radius-xs); font-size: 13px; display: none; margin-bottom: 12px; }
.ts-alert.show { display: block; }
.ts-alert-success { background: var(--success-muted); color: #065f46; border: 1px solid #6ee7b7; }
.ts-alert-error   { background: var(--danger-muted);  color: #991b1b; border: 1px solid #fca5a5; }
.ts-alert-warn    { background: var(--warning-muted); color: #92400e; border: 1px solid #fcd34d; }

.ts-proto-tag { display: inline-block; padding: 3px 10px; border-radius: 20px; background: #dbeafe; color: #4e1550; font-weight: 700; font-size: 13px; }
.ts-proto-tag-acomp { background: #fef9c3; color: #713f12; }
.ts-proof-card {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);
  box-shadow: 0 12px 28px rgba(109, 31, 108, 0.08);
  padding: 16px;
}
.ts-proof-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.ts-proof-title {
  margin: 0;
  font-size: 1.03rem;
  color: var(--primary-dark);
}
.ts-proof-tags {
  margin-top: 8px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.ts-proof-print-btn { white-space: nowrap; }
.ts-proof-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.ts-proof-section {
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 12px;
  padding: 12px;
}
.ts-proof-section h5 {
  margin: 0 0 10px;
  font-size: .73rem;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--primary-dark);
  font-weight: 800;
}
.ts-proof-section-wide { grid-column: 1 / -1; }
.ts-proof-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
}
.ts-proof-item strong {
  display: block;
  font-size: .65rem;
  color: var(--text-light);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 2px;
}
.ts-proof-item span {
  display: block;
  color: var(--text-main);
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.35;
}
.ts-proof-item-full { grid-column: 1 / -1; }
.ts-proof-status-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 28px;
}
.ts-proof-mini-meta {
  margin-top: 10px;
  color: var(--text-light);
  font-size: .8rem;
  line-height: 1.35;
}
.ts-proof-foot {
  margin-top: 12px;
  border-top: 1px solid var(--border);
  padding-top: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.ts-proof-foot-meta {
  font-size: .75rem;
  color: var(--text-light);
  line-height: 1.35;
}
.ts-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 22px; }
.ts-detail-item { font-size: 13px; }
.ts-detail-item strong { display: block; font-size: 10px; color: #9ca3af; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }

.criterio-item { padding: 7px 14px; border-radius: var(--radius-xs); border: 1.5px solid var(--border); font-size: 12px; cursor: pointer; background: #fff; transition: all .15s; }
.criterio-item.sel { background: var(--primary-muted); border-color: var(--primary); color: var(--primary-dark); font-weight: 700; }
.criterio-item input { display: none; }

/* ── RELATÓRIOS ────────────────────────────────────────────── */
#adm-tab-reports .flex.mb-2 {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  padding: 14px 16px; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: 16px !important;
}
#adm-tab-reports .flex.mb-2 > .small { font-size: 0.8rem; font-weight: 600; color: var(--text-muted); white-space: nowrap; margin: 0; }
#adm-tab-reports .flex.mb-2 > input[type="date"] { width: auto; min-width: 140px; margin: 0; padding: 7px 10px; font-size: 0.875rem; }
#adm-tab-reports .flex.mb-2 > .btn { padding: var(--btn-pad-y-sm) var(--btn-pad-x); font-size: var(--btn-font-sm); white-space: nowrap; flex-shrink: 0; }
#report-table td:last-child { padding: 8px 10px; vertical-align: middle; }
#report-table td:last-child > div { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; min-width: 0 !important; align-items: center; }
#report-table .btn.btn-sm { flex: 0 0 auto; white-space: nowrap; margin: 0; }

#adm-tab-dashboard .flex.space-between > .flex { gap: 8px; align-items: center; flex-wrap: wrap; }
#adm-tab-dashboard .flex.space-between > .flex > input[type="date"] { width: auto; min-width: 132px; margin: 0; padding: 7px 10px; font-size: 0.875rem; }
#adm-tab-dashboard .flex.space-between > .flex > .small { font-size: 0.8rem; font-weight: 600; color: var(--text-muted); white-space: nowrap; margin: 0; }

/* ── FILA DE ESPERA (corrigido) ──────────────────────────── */
#op-queue-list .card .flex { flex-wrap: wrap; gap: 8px; }
#op-queue-list .card button { flex: 1 1 auto; min-width: 120px; }
#op-queue-list .card, #op-queue-list .card * { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; white-space: normal; }
#op-queue-list .op-queue-column-body.has-scroll {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
}

#op-queue-list .op-queue-column-body.has-scroll::-webkit-scrollbar {
  width: 8px;
}

#op-queue-list .op-queue-column-body.has-scroll::-webkit-scrollbar-thumb {
  background: rgba(109,31,108,0.35);
  border-radius: 999px;
}

#op-queue-list .op-queue-column-body.has-scroll::-webkit-scrollbar-track {
  background: rgba(148,163,184,0.12);
  border-radius: 999px;
}

/* ── FOOTER ─────────────────────────────────────────────────── */
/* Painéis modernos alinhados ao visual do login */
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container,
#view-faturamento .panel-container {
  border-radius: 22px;
  border: 1px solid rgba(109,31,108,0.18);
  background: #ffffff;
  box-shadow:
    0 16px 34px rgba(78,21,80,0.16),
    inset 0 1px 0 rgba(255,255,255,0.95);
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header,
#view-faturamento .fat-header {
  position: relative;
  margin: 0 0 18px !important;
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.26);
  background:
    radial-gradient(circle at 85% -40%, rgba(230,184,0,0.28), transparent 42%),
    linear-gradient(125deg, var(--primary-dark) 0%, var(--primary) 56%, var(--primary-light) 100%);
  box-shadow: 0 12px 24px rgba(78,21,80,0.22);
  color: #fff;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header h2,
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header h3,
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .small,
#view-faturamento .fat-header h2,
#view-faturamento .fat-header h3,
#view-faturamento .fat-header .small {
  color: #fff !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .small,
#view-faturamento .fat-header .small {
  opacity: 0.84;
}

#driver-user-info,
#casaapoio-user-info {
  color: rgba(255,255,255,0.92) !important;
}

#driver-user-info span,
#casaapoio-user-info span {
  color: rgba(255,255,255,0.92) !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn,
#view-faturamento .fat-header .btn {
  background: rgba(255,255,255,0.14) !important;
  border-color: rgba(255,255,255,0.28) !important;
  color: #fff !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn:hover,
#view-faturamento .fat-header .btn:hover {
  background: rgba(255,255,255,0.24) !important;
  border-color: rgba(255,255,255,0.42) !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn.btn-primary,
#view-faturamento .fat-header .btn.btn-primary {
  background: linear-gradient(135deg, #ffd75c 0%, var(--accent) 100%) !important;
  border-color: #d8aa00 !important;
  color: #3f2800 !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn.btn-primary:hover,
#view-faturamento .fat-header .btn.btn-primary:hover {
  background: linear-gradient(135deg, #f8cb49 0%, #d8aa00 100%) !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn.btn-danger,
#view-faturamento .fat-header .btn.btn-danger {
  background: rgba(192,57,43,0.92) !important;
  border-color: rgba(255,255,255,0.24) !important;
  color: #fff !important;
}

/* Padroniza tamanho dos botões do cabeçalho em todos os painéis */
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn,
#view-faturamento .fat-header .btn {
  width: 120px;
  min-width: 120px;
  max-width: 120px;
  min-height: 34px;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Dropdown do menu do Admin deve usar contraste de painel (não de cabeçalho) */
#view-admin .admin-user-info {
  font-size: 0.83rem;
  margin-top: 4px;
}

#view-admin .admin-user-info-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

#view-admin .admin-user-name {
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
}

#view-admin .admin-user-detail {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.85);
}

#view-admin .admin-menu-wrap {
  position: relative;
}

#view-admin #btn-admin-menu-toggle {
  letter-spacing: 0.01em;
}

#view-admin #btn-admin-menu-toggle.is-open {
  background: rgba(255,255,255,0.28) !important;
  border-color: rgba(255,255,255,0.5) !important;
}

#view-admin #admin-panel-menu-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 2000;
  min-width: 245px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 20px 40px rgba(40, 12, 47, 0.22);
}

#view-admin #admin-panel-menu-dropdown p {
  color: var(--primary-dark) !important;
  font-size: 0.92rem;
  margin-bottom: 10px !important;
}

#view-admin #admin-panel-menu-dropdown .btn {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  justify-content: center;
  background: #ffffff !important;
  border-color: var(--border) !important;
  color: var(--primary-dark) !important;
  border-radius: 10px;
}

#view-admin #admin-panel-menu-dropdown .btn:hover {
  background: var(--primary-muted) !important;
  border-color: var(--primary) !important;
  color: var(--primary-dark) !important;
}

#view-admin #admin-panel-menu-dropdown .btn.btn-danger {
  background: var(--danger) !important;
  border-color: #991f15 !important;
  color: #fff !important;
}

#view-admin #admin-panel-menu-dropdown .btn.btn-danger:hover {
  background: #991f15 !important;
  border-color: #991f15 !important;
  color: #fff !important;
}

#view-operator #op-desk,
#session-timer-op,
#session-timer-admin {
  background: rgba(255,255,255,0.95) !important;
  border-color: rgba(109,31,108,0.25) !important;
  color: var(--primary-dark) !important;
}

#session-countdown-op,
#session-countdown-admin {
  color: var(--primary-dark) !important;
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh) .card {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: var(--shadow-xs);
}

:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh) .card h4 {
  color: var(--primary-dark);
}

#view-operator #operator-panel > div:last-child {
  display: grid !important;
  grid-template-columns: minmax(0, 1.58fr) minmax(250px, 0.55fr) !important;
  gap: 16px !important;
}

#view-operator #operator-panel > div:last-child > div:last-child {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  box-shadow: var(--shadow-xs);
  height: calc(100vh - 240px);
  min-height: 420px;
  max-height: calc(100vh - 240px);
  display: flex;
  flex-direction: column;
  min-width: 0;
}

#view-operator .op-linked-depts-panel {
  border: 1px solid transparent;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}

#view-operator .op-linked-depts-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  cursor: pointer;
  user-select: none;
}

#view-operator .op-linked-depts-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

#view-operator .op-linked-depts-caret {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid rgba(109,31,108,0.22);
  background: #ffffff;
  color: var(--primary-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

#view-operator .op-linked-depts-caret svg {
  width: 14px;
  height: 14px;
  transition: transform .22s ease;
}

#view-operator .op-linked-depts-caret:hover {
  background: var(--primary-muted);
  border-color: rgba(109,31,108,0.42);
}

#view-operator .op-linked-depts-caret:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(109,31,108,0.18);
}

#view-operator .op-linked-depts-panel.is-collapsed .op-linked-depts-caret svg {
  transform: rotate(-90deg);
}

#view-operator .op-linked-depts-body {
  margin-top: 2px;
  max-height: 100%;
  flex: 1;
  min-height: 0;
  opacity: 1;
  transform: translateY(0);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  transition: max-height .26s ease, opacity .22s ease, transform .22s ease, margin-top .22s ease;
}

#view-operator .op-linked-depts-body::-webkit-scrollbar {
  width: 8px;
}

#view-operator .op-linked-depts-body::-webkit-scrollbar-thumb {
  background: rgba(109,31,108,0.34);
  border-radius: 999px;
}

#view-operator .op-linked-depts-body::-webkit-scrollbar-track {
  background: rgba(148,163,184,0.12);
  border-radius: 999px;
}

#view-operator .op-linked-depts-panel.is-collapsed .op-linked-depts-head {
  margin-bottom: 2px;
}

#view-operator .op-linked-depts-panel.is-collapsed .op-linked-depts-body {
  max-height: 0;
  opacity: 0;
  transform: translateY(-6px);
  margin-top: 0;
  overflow: hidden;
  pointer-events: none;
}

#view-operator #op-filters {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
}

#view-admin .admin-tabs {
  border-bottom: 0 !important;
  padding: 2px 2px 8px !important;
  gap: 10px !important;
}

#view-admin .admin-tabs > .btn {
  background: var(--surface-2) !important;
  color: var(--primary-dark) !important;
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  box-shadow: none;
}

#view-admin .admin-tabs > .btn:hover {
  background: var(--primary-muted) !important;
  border-color: var(--primary) !important;
}

#view-admin .admin-tabs > .btn.btn-primary {
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary-dark) !important;
  box-shadow: 0 8px 18px rgba(109,31,108,0.26);
}

#view-admin .admin-tabs > .btn.admin-tab-wide {
  min-width: 190px !important;
  width: 190px !important;
  max-width: 190px !important;
}

#adm-tab-agenda > div {
  gap: 16px !important;
}

#adm-tab-agenda > div > div {
  border: 1px solid var(--border) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-xs) !important;
  background: #fff !important;
}

#view-portal .portal-header {
  border-bottom: 0 !important;
  margin-bottom: 16px !important;
  padding: 16px 18px !important;
}

#view-portal .portal-header-actions button {
  border-radius: 10px !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  background: rgba(255,255,255,0.14) !important;
  color: #fff !important;
  font-weight: 700 !important;
  transition: all .18s;
}

#view-portal .portal-header-actions button:hover {
  border-color: rgba(255,255,255,0.42) !important;
  background: rgba(255,255,255,0.24) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

#view-portal .portal-layout {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
  gap: 16px !important;
}

#view-portal .portal-col-left > div,
#view-portal .portal-col-right > div {
  border: 1px solid var(--border) !important;
  border-radius: 16px !important;
  box-shadow: var(--shadow-xs) !important;
  background: #fff !important;
  overflow: hidden !important;
}

#view-portal .portal-col-left > div > div:first-child,
#view-portal .portal-col-right > div > div:first-child {
  background: linear-gradient(180deg, #f9f4f9 0%, #f3e9f3 100%) !important;
  border-bottom: 1px solid var(--border) !important;
}

#view-portal .portal-col-left > div:first-child > div:first-child {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%) !important;
  color: #fff !important;
}

#view-portal .portal-col-left > div:first-child > div:first-child > button {
  background: rgba(255,255,255,0.18) !important;
  border: 1px solid rgba(255,255,255,0.24) !important;
}

#view-portal .portal-col-left > div:first-child > div:first-child > span {
  color: #fff !important;
}

#view-portal #portal-user-info {
  overflow-wrap: anywhere;
  color: rgba(255,255,255,0.9) !important;
}

#view-portal #portal-user-info span {
  color: rgba(255,255,255,0.9) !important;
}

#view-portal.view-section {
  background: linear-gradient(180deg, #f4ecf5 0%, #fbf8fc 100%);
  min-height: var(--app-viewport-height);
  padding-bottom: 82px;
  overflow-x: hidden;
}

#view-portal > .panel-container {
  min-height: calc(100vh - 120px);
}

#view-portal .portal-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  transition: none !important;
}

#view-portal .portal-menu-btn {
  display: none;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.28);
  background: rgba(255,255,255,0.14);
  color: #fff;
  cursor: pointer;
  transition: none !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

#view-portal .portal-menu-btn:hover {
  background: rgba(255,255,255,0.24);
  border-color: rgba(255,255,255,0.42);
}

#view-portal .portal-collapsible-card .portal-card-head {
  position: relative;
  cursor: pointer;
  user-select: none;
  transition: background .18s ease;
}

#view-portal .portal-collapsible-card .portal-card-head::after {
  content: '▾';
  color: #64748b;
  font-size: 0.88rem;
  margin-left: 10px;
  transition: transform .16s ease, color .16s ease;
}

#view-portal .portal-collapsible-card .portal-card-head:hover::after {
  color: var(--primary-dark);
}

#view-portal .portal-collapsible-card.is-collapsed .portal-card-head::after {
  transform: rotate(-90deg);
}

#view-portal .portal-collapsible-card .portal-card-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

#view-portal .portal-card-refresh-btn {
  border-radius: 8px;
  padding: 4px 8px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all .16s ease;
}

#view-portal .portal-card-refresh-btn:hover {
  border-color: var(--primary);
  background: #f8f2f8;
}

#view-portal .portal-header-actions .btn {
  min-height: 38px;
}

#view-portal .portal-calendar-day {
  touch-action: manipulation;
}

#view-portal .portal-slots-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

#view-portal .portal-slot-btn {
  min-width: 120px;
  flex: 1 1 calc(50% - 8px);
}

#view-portal .portal-appt-card,
#view-portal .portal-history-card,
#view-portal .portal-transport-card {
  box-shadow: var(--shadow-xs);
}

#view-portal .portal-collapsible-card.is-collapsed .portal-card-body {
  display: none;
}

#view-portal .portal-collapsible-card.is-collapsed .portal-card-head {
  border-bottom: 0 !important;
}

@media (max-width: 980px) {
  #view-portal #portal-my-appts,
  #view-portal #portal-transport-list,
  #view-portal #portal-history-list {
    max-height: none !important;
    overflow: visible !important;
  }

  #view-portal .portal-col-left > div:first-child > div:last-child {
    flex-wrap: wrap !important;
    row-gap: 6px;
  }

  #view-portal .portal-col-left > div:first-child > div:last-child > span {
    font-size: 0.72rem !important;
  }
}

@media (max-width: 760px) {
  #view-portal.view-section {
    padding: 10px 10px 84px;
  }

  #view-portal > .panel-container {
    padding: 12px 10px;
    border-radius: 16px;
    min-height: calc(100vh - 98px);
  }

  #view-portal .portal-header {
    padding: 12px !important;
    gap: 10px;
    align-items: center !important;
  }

  #view-portal .portal-header > div:first-child {
    width: calc(100% - 46px);
  }

  #view-portal .portal-header h2 {
    font-size: 1.08rem !important;
    line-height: 1.25;
  }

  #view-portal .portal-menu-btn {
    display: inline-flex;
    margin-left: auto;
  }

  #view-portal .portal-header-actions {
    width: 100%;
    display: none !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px !important;
  }

  #view-portal .portal-header-actions.is-open {
    display: grid !important;
  }

  #view-portal .portal-header-actions .btn {
    width: 100%;
    justify-content: center;
    font-size: 0.78rem !important;
    padding: 8px 10px !important;
    white-space: normal;
    line-height: 1.2;
  }

  #view-portal .portal-layout {
    gap: 12px !important;
  }

  #view-portal .portal-collapsible-card .portal-card-head-actions {
    gap: 6px;
  }

  #view-portal .portal-card-refresh-btn {
    min-height: 32px;
    padding: 5px 8px;
    font-size: 0.74rem;
  }

  #view-portal .portal-col-left > div,
  #view-portal .portal-col-right > div {
    margin-bottom: 12px;
  }

  #view-portal .portal-col-left > div:first-child > div:nth-child(2) > div {
    font-size: 0.62rem !important;
    padding: 7px 0 !important;
    letter-spacing: 0.02em !important;
  }

  #view-portal #portal-calendar {
    padding: 6px !important;
  }

  #view-portal .portal-calendar-cell {
    padding: 2px !important;
  }

  #view-portal .portal-calendar-day {
    border-radius: 8px !important;
    font-size: 0.78rem !important;
    min-height: 40px;
  }

  #view-portal .portal-slot-btn {
    min-width: 0;
    padding: 10px 8px !important;
    font-size: 0.8rem !important;
  }

  #view-portal .portal-appt-card {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px;
  }

  #view-portal .portal-appt-actions {
    width: 100%;
  }

  #view-portal .portal-appt-cancel-btn {
    width: 100%;
    min-height: 36px;
  }

  #view-portal .portal-transport-head {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  #view-portal .portal-transport-status {
    align-self: flex-start;
  }

  #view-portal .portal-transport-qr {
    flex-direction: column;
    align-items: flex-start !important;
  }

  #view-portal .portal-transport-qr-help {
    max-width: none !important;
  }
}

@media (max-width: 430px) {
  #view-portal .portal-header-actions.is-open {
    grid-template-columns: 1fr;
  }

  #view-portal .portal-slot-btn {
    flex-basis: 100%;
  }

  #view-portal .portal-collapsible-card .portal-card-head-actions {
    justify-content: flex-start;
  }
}

#view-transporte .op-tr-tab {
  border: 1px solid transparent !important;
  border-radius: 10px 10px 0 0 !important;
  color: var(--text-muted) !important;
  background: transparent !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
}

#view-transporte .op-tr-tab:hover {
  background: var(--primary-muted) !important;
  border-color: rgba(109,31,108,0.16) !important;
  color: var(--primary-dark) !important;
}

#view-transporte .op-tr-tab.active {
  background: #fff !important;
  color: var(--primary-dark) !important;
  border-color: var(--primary) !important;
  box-shadow: inset 0 -2px 0 var(--primary);
}

#drv-camera-wrap,
#cap-camera-wrap {
  background: #ffffff !important;
  border-color: var(--border) !important;
  border-radius: 12px !important;
}

@media (max-width: 980px) {
  #view-reception .rec-layout { grid-template-columns: 1fr !important; }
  #view-reception .rec-sidebar { position: static; }
  #view-reception .rec-card-head { flex-wrap: wrap; gap: 8px; align-items: flex-start !important; }
  #view-reception .rec-card-head > div { width: 100%; }
  .intranet-header-search { order: 3; width: 100%; max-width: none; min-width: 0; }
  #view-intranet .intranet-grid,
  #view-ubs-intranet .intranet-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .intranet-menu-handle {
    position: fixed;
    top: 114px;
    left: 18px;
    width: 36px;
    height: 36px;
    z-index: 40;
  }
  #view-intranet .intranet-sidebar {
    position: fixed;
    top: 98px;
    left: 14px;
    right: 14px;
    max-height: calc(100vh - 118px);
    overflow: auto;
    z-index: 30;
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
    pointer-events: none;
    margin-right: 0;
  }
  #view-intranet.sidebar-open .intranet-sidebar {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }
  #view-ubs-intranet .intranet-sidebar {
    position: static;
    max-height: none;
    overflow: visible;
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
  #intranet-notices-list { grid-template-columns: 1fr; }
  #view-intranet .intranet-main,
  #view-ubs-intranet .intranet-main { z-index: 1; }
  .intranet-header { flex-direction: column; align-items: flex-start; }
  .fat-dashboard-grid { grid-template-columns: 1fr; }
  .fat-chart-grid { grid-template-columns: 1fr; }
  #view-operator #operator-panel > div:last-child,
  #view-portal .portal-layout {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 600px) {
  #view-reception .rec-form-grid { grid-template-columns: 1fr !important; }
  #view-reception .cep-block {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 8px !important;
  }
  #rec-f-bairro, #rec-f-cidade,
  #rec-new-bairro, #rec-new-cidade { grid-column: auto !important; }
  #view-reception .rec-list-row,
  #view-reception .rec-ticket-item { align-items: flex-start; flex-direction: column; }
  #view-reception .rec-status-badge { align-self: flex-start; }
  #cap-materials-grid { grid-template-columns: 1fr !important; }
  .intranet-header-actions { flex-wrap: wrap; gap: 6px; }
  .fat-header { padding: 18px; }
  .fat-table-wrap { display: none; }
  .fat-card-list { display: grid; }
  .fat-toolbar .btn, .fat-tabs .btn, .fat-actions .btn { flex: 1 1 140px; }
  .fat-form-grid { grid-template-columns: 1fr; }
  .fat-form-grid .fat-col-span-2 { grid-column: span 1; }
}
@media (max-width: 600px) {
  .ts-form-grid { grid-template-columns: 1fr 1fr; }
  .ts-proof-layout { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  #adm-tab-reports .flex.mb-2 { flex-direction: column; align-items: stretch; }
  #adm-tab-reports .flex.mb-2 > input[type="date"], #adm-tab-reports .flex.mb-2 > .btn { width: 100%; }
  #report-table td:last-child > div { flex-direction: column; align-items: stretch; }
  #report-table .btn.btn-sm { width: 100%; justify-content: center; }
  .ts-proof-head { flex-direction: column; align-items: stretch; }
  .ts-proof-print-btn { width: 100%; justify-content: center; }
  .ts-proof-grid { grid-template-columns: 1fr; }
  #view-operator #operator-panel > div:last-child > div:last-child {
    height: auto;
    max-height: none;
    min-height: 0;
  }
  #view-operator .op-linked-depts-panel {
    flex: initial;
  }
  #view-operator .op-linked-depts-body {
    flex: initial;
    max-height: 48vh;
  }
}

@media print {
  .op-tr-tab { display: none !important; }
}

/* Ajustes finos: menu de preferências + modo escuro */
.ui-global-controls-body {
  align-content: start;
}

.ui-global-controls.is-collapsed {
  padding: 0;
  gap: 0;
  width: auto;
  min-width: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.ui-global-controls.is-collapsed .ui-global-controls-body {
  display: none !important;
  width: 0 !important;
  max-height: 0 !important;
}

body.theme-dark [style*="background:white" i],
body.theme-dark [style*="background-color:white" i],
body.theme-dark [style*="background:#fff" i],
body.theme-dark [style*="background:#ffffff" i],
body.theme-dark [style*="background:#f8fafc" i],
body.theme-dark [style*="background:#f1f5f9" i],
body.theme-dark [style*="background:#f0e5f0" i],
body.theme-dark [style*="background:#ecfeff" i],
body.theme-dark [style*="background:#f0fdf4" i],
body.theme-dark [style*="background:#fefce8" i],
body.theme-dark [style*="background:#fef2f2" i],
body.theme-dark [style*="background:#fffbeb" i],
body.theme-dark [style*="background:#fff7ed" i] {
  background: var(--surface-2) !important;
}

body.theme-dark [style*="border-color:#e2e8f0" i],
body.theme-dark [style*="border-color:#cbd5e1" i],
body.theme-dark [style*="border-color:#d1d5db" i],
body.theme-dark [style*="border:1px solid #e2e8f0" i],
body.theme-dark [style*="border:1px solid #cbd5e1" i],
body.theme-dark [style*="border:1.5px solid #e2e8f0" i],
body.theme-dark [style*="border:1px solid #ddd" i] {
  border-color: var(--border) !important;
}

body.theme-dark [style*="color:#0f172a" i],
body.theme-dark [style*="color:#111827" i],
body.theme-dark [style*="color:#1e293b" i],
body.theme-dark [style*="color:#1e3a8a" i],
body.theme-dark [style*="color:#312e81" i],
body.theme-dark [style*="color:#374151" i] {
  color: var(--text-main) !important;
}

body.theme-dark [style*="color:#475569" i],
body.theme-dark [style*="color:#64748b" i],
body.theme-dark [style*="color:#94a3b8" i] {
  color: var(--text-muted) !important;
}

body.theme-dark #adm-tab-agenda > div > div,
body.theme-dark #adm-tab-agenda #details-content,
body.theme-dark #adm-tab-agenda #calendar-days {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}

body.theme-dark #view-reception .rec-search-card,
body.theme-dark #view-reception .rec-actions-card,
body.theme-dark #view-reception .rec-summary-card,
body.theme-dark #view-reception .rec-content-card,
body.theme-dark #view-reception #rec-empty-state,
body.theme-dark #view-reception .rec-list-item {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
}

body.theme-dark #view-reception .rec-field {
  background: var(--surface-3) !important;
  border-color: var(--border) !important;
}

body.theme-dark #table-users tbody td,
body.theme-dark #table-users tbody td * {
  color: var(--text-main) !important;
}

/* Mobile system final overrides */
@media (max-width: 860px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .view-section {
    padding: 12px;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .panel-container,
  .card,
  .intranet-card,
  .modal-box,
  .fat-card,
  .fat-modal-box {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  :is(#view-master, #view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario, #view-regulacao) > .panel-container,
  #view-faturamento .panel-container {
    border-radius: 16px;
    padding: 14px !important;
  }

  :is(#view-master, #view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header,
  #view-faturamento .fat-header {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding: 14px !important;
  }

  :is(#view-master, #view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header > .flex,
  #view-faturamento .fat-header > .flex,
  .intranet-header-actions,
  .intranet-header-search {
    width: 100%;
    max-width: 100%;
  }

  .panel-container .flex,
  .modal-box .flex,
  .fat-header,
  .fat-toolbar,
  .fat-tabs,
  .fat-actions {
    flex-wrap: wrap;
    min-width: 0;
  }

  :is(#view-master, #view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .btn,
  #view-faturamento .fat-header .btn {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 1 1 140px;
    white-space: normal;
  }

  .btn,
  button,
  input,
  select,
  textarea {
    max-width: 100%;
    min-width: 0;
  }

  .admin-tabs,
  .servidor-content-tabs,
  .rh-tabs,
  .op-tabs,
  .fat-tabs,
  .reg-tabs {
    display: flex;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }

  .admin-tabs > *,
  .servidor-content-tabs > *,
  .rh-tabs > *,
  .op-tabs > *,
  .fat-tabs > *,
  .reg-tabs > * {
    flex: 0 0 auto;
  }

  .table-wrap,
  .reg-table-wrap,
  .sigtap-table-wrap,
  .master-connections-table-wrap,
  .powerbi-table-wrap,
  .fat-table-wrap,
  .ts-table-wrap,
  [style*="overflow-x:auto"],
  [style*="overflow-x: auto"] {
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .modal-overlay,
  #reg-modal {
    align-items: flex-start;
    padding: 12px;
    overflow-y: auto;
  }

  .modal-box,
  #reg-modal .reg-modal-box,
  .master-dashboard-modal-box,
  .master-unit-modal-box,
  .master-user-drawer .modal-box,
  .fat-modal-box,
  .powerbi-modal-box,
  .ubs-clinical-modal-box {
    width: min(100%, calc(100vw - 24px)) !important;
    max-height: calc(100dvh - 24px) !important;
    overflow: auto !important;
  }

  .modal-box .modal-actions,
  .reg-modal-actions,
  .fat-modal-box form,
  .master-modal-head {
    flex-wrap: wrap;
  }

  .modal-box .modal-actions .btn,
  .reg-modal-actions .btn {
    flex: 1 1 150px;
  }

  #view-intranet .intranet-header,
  #view-ubs-intranet .intranet-header {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }

  #view-intranet .intranet-header-brand,
  #view-ubs-intranet .intranet-header-brand {
    min-width: 0;
  }

  #view-intranet .intranet-grid,
  #view-ubs-intranet .intranet-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #view-intranet .intranet-sidebar,
  #view-ubs-intranet .intranet-sidebar {
    width: 100% !important;
  }

  #view-intranet .intranet-main,
  #view-ubs-intranet .intranet-main {
    min-width: 0;
  }

  #view-intranet.view-section,
  #view-ubs-intranet.view-section {
    padding: 8px;
  }

  #view-intranet .intranet-header,
  #view-ubs-intranet .intranet-header {
    border-radius: 14px;
    gap: 10px !important;
    margin-bottom: 12px;
    padding: 14px !important;
  }

  #view-intranet .intranet-header-brand,
  #view-ubs-intranet .intranet-header-brand {
    gap: 10px;
    width: 100%;
  }

  #view-intranet .intranet-header-logo,
  #view-ubs-intranet .intranet-header-logo {
    border-radius: 12px;
    height: 42px;
    width: 42px;
  }

  #view-intranet .intranet-header-title,
  #view-ubs-intranet .intranet-header-title {
    font-size: 1.08rem;
    line-height: 1.15;
  }

  #view-intranet .intranet-header-sub,
  #view-ubs-intranet .intranet-header-sub {
    font-size: 0.78rem;
    line-height: 1.25;
  }

  #view-intranet .intranet-header-search,
  #view-ubs-intranet .intranet-header-search {
    flex: 0 0 auto !important;
    min-height: 42px;
    order: 2;
    padding: 8px 11px;
    width: 100%;
  }

  #view-intranet .intranet-header-search input,
  #view-ubs-intranet .intranet-header-search input {
    height: 24px;
    line-height: 24px;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #view-intranet .intranet-header-actions,
  #view-ubs-intranet .intranet-header-actions {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    order: 3;
  }

  #view-intranet .intranet-badge,
  #view-ubs-intranet .intranet-badge,
  #view-intranet .intranet-header-actions .btn,
  #view-ubs-intranet .intranet-header-actions .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 40px;
    width: 100% !important;
  }

  #view-intranet .intranet-header-actions .btn,
  #view-ubs-intranet .intranet-header-actions .btn {
    flex: none !important;
    padding: 8px 10px !important;
  }

  #view-intranet .intranet-header-actions .btn-danger,
  #view-ubs-intranet .intranet-header-actions .btn-danger {
    grid-column: 1 / -1;
  }

  #view-intranet .intranet-grid,
  #view-ubs-intranet .intranet-grid {
    gap: 12px !important;
  }

  #view-intranet .intranet-menu-handle {
    bottom: 84px;
    height: 42px;
    left: 12px;
    top: auto;
    width: 42px;
    z-index: 1388;
  }

  #view-intranet .intranet-sidebar {
    border-radius: 16px;
    bottom: 12px;
    left: 10px;
    max-height: none;
    right: 10px;
    top: 12px;
    z-index: 1387;
  }

  #view-intranet.sidebar-open .intranet-main::before {
    z-index: 1382;
  }

  .intranet-card {
    border-radius: 14px;
    padding: 14px;
  }

  .site-footer {
    min-height: 48px;
    padding: 10px 92px 12px 12px;
  }
}

@media (max-width: 560px) {
  .view-section {
    padding: 8px;
  }

  :is(#view-master, #view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario, #view-regulacao) > .panel-container,
  #view-faturamento .panel-container {
    border-radius: 12px;
    padding: 10px !important;
  }

  h1 {
    font-size: clamp(1.4rem, 8vw, 2rem);
  }

  h2 {
    font-size: clamp(1.22rem, 7vw, 1.7rem);
  }

  #view-intranet .intranet-header,
  #view-ubs-intranet .intranet-header {
    padding: 12px !important;
  }

  #view-intranet .intranet-header-actions,
  #view-ubs-intranet .intranet-header-actions {
    grid-template-columns: 1fr 1fr;
  }

  #view-intranet .intranet-header-search input,
  #view-ubs-intranet .intranet-header-search input {
    font-size: 0.82rem;
  }

  #view-intranet .intranet-header-search input::placeholder,
  #view-ubs-intranet .intranet-header-search input::placeholder {
    font-size: 0.82rem;
  }

  .ui-global-controls {
    right: 10px;
  }

  .ui-global-controls.is-collapsed .ui-global-main-toggle {
    font-size: 0;
    height: 48px;
    min-height: 48px;
    min-width: 48px;
    padding: 0;
    width: 48px;
  }

  .ui-global-controls.is-collapsed .ui-global-main-toggle::before {
    content: '\267F';
    font-size: 1.05rem;
    line-height: 1;
  }

  .task-notification-widget {
    bottom: 70px;
    right: 10px;
  }

  .task-notification-toggle-text {
    display: none;
  }

  .site-footer {
    font-size: 0.72rem;
    line-height: 1.25;
    padding-bottom: 14px;
    padding-right: 74px;
    text-align: left;
  }

  h3 {
    font-size: clamp(1.05rem, 6vw, 1.35rem);
  }

  .btn,
  button {
    min-height: 42px;
    justify-content: center;
    text-align: center;
  }

  :is(.grid, .rec-form-grid, .fat-form-grid, .ts-proof-grid, .sigtap-query-form, .reg-form-grid, .reg-detail-grid, .cep-block) {
    grid-template-columns: 1fr !important;
  }

  .md\:grid-cols-2,
  .md\:grid-cols-3,
  .md\:grid-cols-4 {
    grid-template-columns: 1fr !important;
  }

  .login-form-links {
    grid-template-columns: 1fr;
  }

  #view-login.view-section.active {
    min-height: 100dvh;
    overflow-y: auto;
  }

  .login-right-panel {
    min-height: 100dvh;
    padding: 18px 14px;
    width: 100%;
  }

  .modal-box,
  #reg-modal .reg-modal-box,
  .fat-modal-box {
    border-radius: 12px;
    padding: 14px !important;
  }

  .modal-box .modal-actions .btn,
  .reg-modal-actions .btn,
  .fat-toolbar .btn,
  .fat-tabs .btn,
  .fat-actions .btn {
    flex-basis: 100%;
  }

  .task-notification-panel {
    right: 0;
    width: min(360px, calc(100vw - 16px));
  }

  #view-regulacao .reg-task-topbar,
  #view-regulacao .reg-task-summary,
  #view-regulacao .reg-task-actions {
    align-items: stretch;
    flex-direction: column;
  }

  #view-regulacao .reg-task-actions {
    margin-left: 0;
    width: 100%;
  }

  #view-regulacao .reg-task-actions .btn,
  #view-regulacao .reg-task-summary .btn,
  #view-regulacao .reg-task-summary span,
  #view-regulacao .reg-task-summary strong {
    width: 100%;
    justify-content: center;
  }

  #view-regulacao .reg-task-department-select {
    width: 100%;
    min-width: 0;
  }

  #view-regulacao .reg-task-department-select span {
    width: auto;
    justify-content: flex-start;
    border: 0;
    background: transparent;
  }
}

/* ============================================================
 * Acessibilidade — adicionado em 2026-05-31 (Fase 3 A11y)
 * ============================================================ */

/* Foco visivel global (para elementos sem focus-visible especifico) */
:focus-visible {
  outline: 2px solid var(--primary, #6d1f6c);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Skip link para teclado (oculto ate receber foco) */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  background: var(--primary, #6d1f6c);
  color: #fff;
  padding: 12px 18px;
  z-index: 9999;
  text-decoration: none;
  font-weight: 600;
}
.skip-link:focus { top: 0; }

/* Respeita preferencia do usuario por menos animacao */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Visualmente oculto mas legivel por leitores de tela */
.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;
}

/* ============================================================
 * Layout intranet aplicado ao view-rh (Fase A redesign 2026-05-31)
 * As regras originais ficam escopadas em #view-intranet e
 * #view-ubs-intranet; replicamos aqui para o painel RH usar a mesma
 * grid sidebar + main.
 * ============================================================ */
#view-rh .intranet-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  position: relative;
}

#view-rh .intranet-sidebar {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: var(--radius, 10px);
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.05));
  overflow: hidden;
  position: sticky;
  top: 12px;
}

#view-rh .intranet-main {
  min-width: 0;
}

/* Responsivo: em mobile, sidebar empilha em cima */
@media (max-width: 920px) {
  #view-rh .intranet-grid {
    grid-template-columns: 1fr;
  }
  #view-rh .intranet-sidebar {
    position: static;
  }
}

/* ============================================================
 * Refinamento Painel RH — Versão A (Polish)
 * Sombras 2 camadas, transições 200ms, focus rings consistentes,
 * sidebar com dots indicadores, hierarchy tipográfica trabalhada.
 * Sobrescreve o bloco anterior de Refinamento visual.
 * ============================================================ */

/* ---- Header refinado ---- */
#view-rh .intranet-header {
  background: linear-gradient(135deg, #4e1550 0%, #6d1f6c 55%, #8a2c8a 100%);
  position: relative;
  padding: 22px 26px;
  border-radius: 14px;
  margin-bottom: 22px;
  box-shadow:
    0 1px 2px rgba(78, 21, 80, 0.10),
    0 8px 24px -8px rgba(78, 21, 80, 0.25);
  overflow: hidden;
}
#view-rh .intranet-header::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 35%;
  background: radial-gradient(circle at 70% 30%, rgba(255,255,255,0.10), transparent 60%);
  pointer-events: none;
}
#view-rh .intranet-header-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  position: relative;
  z-index: 1;
}
#view-rh .intranet-header-logo {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  background: rgba(255,255,255,0.16);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.20);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 1px 0 rgba(255,255,255,0.12) inset;
}
#view-rh .intranet-header-title {
  font-size: 1.22rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: #fff;
  margin: 0;
  line-height: 1.2;
}
#view-rh .intranet-header-sub {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.78);
  margin-top: 3px;
  letter-spacing: 0.01em;
}
#view-rh .intranet-header-actions {
  position: relative;
  z-index: 1;
}
#view-rh .intranet-header .btn {
  background: rgba(255,255,255,0.14);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.20);
  border-radius: 8px;
  font-weight: 500;
  transition: background 0.18s ease, transform 0.18s ease;
}
#view-rh .intranet-header .btn:hover {
  background: rgba(255,255,255,0.24);
  transform: translateY(-1px);
}
#view-rh .intranet-header .btn-danger {
  background: rgba(220, 38, 38, 0.85);
  border-color: rgba(220, 38, 38, 0.20);
}
#view-rh .intranet-header .btn-danger:hover {
  background: rgba(220, 38, 38, 1);
}

/* ---- Sidebar refinada com indicador de seção ---- */
#view-rh .intranet-sidebar {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 4px 16px -10px rgba(15, 23, 42, 0.10);
  padding: 6px 0;
  overflow: visible;
}
#view-rh .intranet-sidebar-section {
  padding: 14px 16px 8px;
}
#view-rh .intranet-sidebar-section + .intranet-sidebar-section {
  border-top: 1px solid #f1f5f9;
  margin-top: 2px;
  padding-top: 16px;
}
#view-rh .intranet-sidebar-label {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: 8px;
  padding-left: 4px;
}

/* Menu items: dot indicator antes do ícone */
#view-rh .intranet-menu-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 9px 14px 9px 28px;
  border: 0;
  background: transparent;
  border-radius: 9px;
  font-size: 0.89rem;
  font-weight: 500;
  color: #334155;
  text-align: left;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, padding 0.18s ease;
  margin-bottom: 2px;
}
#view-rh .intranet-menu-item::before {
  content: '';
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #cbd5e1;
  transition: background 0.18s ease, transform 0.18s ease;
}
#view-rh .intranet-menu-item:hover:not(:disabled) {
  background: #faf5fa;
  color: #6d1f6c;
}
#view-rh .intranet-menu-item:hover:not(:disabled)::before {
  background: #6d1f6c;
}
#view-rh .intranet-menu-item.is-active {
  background: linear-gradient(90deg, rgba(109,31,108,0.10), rgba(109,31,108,0.04));
  color: #4e1550;
  font-weight: 600;
}
#view-rh .intranet-menu-item.is-active::before {
  background: #6d1f6c;
  transform: translateY(-50%) scale(1.4);
  box-shadow: 0 0 0 3px rgba(109,31,108,0.15);
}
#view-rh .intranet-menu-item:disabled {
  color: #9ca3af;
  cursor: not-allowed;
  opacity: 0.6;
}
#view-rh .intranet-menu-item > i,
#view-rh .intranet-menu-item > svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  opacity: 0.85;
}
#view-rh .intranet-menu-item > span:not(.intranet-badge-soon):first-of-type {
  flex: 1;
}

#view-rh .intranet-badge-soon {
  font-size: 0.62rem;
  padding: 2px 8px;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: 1px solid #fde68a;
}
#view-rh .intranet-menu-item.is-active .intranet-badge-soon {
  background: rgba(255,255,255,0.7);
}

/* ---- Cards principais ---- */
#view-rh .card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.03),
    0 4px 14px -8px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
#view-rh .card:hover {
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.05),
    0 8px 24px -10px rgba(15, 23, 42, 0.12);
}
#view-rh .card h4 {
  color: #1f2937;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.014em;
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 9px;
}
#view-rh .card h4 i,
#view-rh .card h4 svg {
  color: #6d1f6c;
}
#view-rh .card .small {
  font-size: 0.82rem;
  line-height: 1.5;
  color: #64748b;
}

/* ---- Stat cards (KPIs) refinados ---- */
.rh-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
}
.rh-stat-card {
  --accent: #6d1f6c;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.rh-stat-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--accent);
  border-radius: 3px 0 0 3px;
}
.rh-stat-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 10px 22px -10px rgba(15, 23, 42, 0.18);
}
.rh-stat-label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #64748b;
}
.rh-stat-value {
  font-size: 1.85rem;
  font-weight: 800;
  color: #1f2937;
  font-feature-settings: 'tnum';
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* ---- Item cards (cada solicitação) refinados ---- */
.rh-item-card {
  --accent: #94a3b8;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 10px;
  position: relative;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
  overflow: hidden;
}
.rh-item-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--accent);
  border-radius: 3px 0 0 3px;
}
.rh-item-card:hover {
  transform: translateY(-1px);
  border-color: #d1d5db;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 8px 22px -10px rgba(15, 23, 42, 0.14);
}
.rh-item-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}
.rh-item-head strong {
  font-size: 1.02rem;
  color: #1f2937;
  letter-spacing: -0.01em;
}

/* ---- Tabelas ---- */
#view-rh table {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}
#view-rh table thead {
  background: #f9fafb;
}
#view-rh table thead th {
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6b7280;
  padding: 11px 12px;
}
#view-rh table tbody tr {
  transition: background 0.14s ease;
}
#view-rh table tbody tr:hover {
  background: #faf5fa;
}
#view-rh table tbody td {
  padding: 12px;
  border-top: 1px solid #f1f5f9;
}

/* ---- Botões refinados ---- */
#view-rh .btn-sm {
  padding: 7px 14px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.85rem;
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
#view-rh .btn-sm:hover {
  transform: translateY(-1px);
}
#view-rh .btn-sm:focus-visible {
  outline: 2px solid #6d1f6c;
  outline-offset: 2px;
}

/* ---- Inputs/selects refinados ---- */
#view-rh input[type="text"],
#view-rh input[type="month"],
#view-rh input[type="date"],
#view-rh input[type="file"],
#view-rh select {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.88rem;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
#view-rh input:focus,
#view-rh select:focus {
  outline: none;
  border-color: #6d1f6c;
  box-shadow: 0 0 0 3px rgba(109, 31, 108, 0.10);
}

/* ---- Card de importação em destaque sutil ---- */
#view-rh .intranet-main > .card:first-child {
  background: linear-gradient(180deg, #fdfbff 0%, #ffffff 100%);
  border-color: #ede9fe;
}

/* ---- Animação de fade-in dos painéis ---- */
#view-rh .card:not(.hidden) {
  animation: rhFadeIn 0.28s ease;
}
@keyframes rhFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* prefers-reduced-motion ja desabilita animacoes globalmente */

/* ============================================================
 * Chart cards para o dashboard rico do RH (Fase C2)
 * ============================================================ */
#view-rh .rh-chart-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.03),
    0 4px 12px -8px rgba(15, 23, 42, 0.05);
  transition: box-shadow 0.22s ease;
}
#view-rh .rh-chart-card:hover {
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 6px 18px -10px rgba(15, 23, 42, 0.10);
}
#view-rh .rh-chart-card h5 {
  font-size: 0.94rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 12px;
  letter-spacing: -0.012em;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
#view-rh .rh-chart-card h5 .small {
  font-weight: 500;
  color: #94a3b8;
  font-size: 0.78rem;
  letter-spacing: 0;
}

/* Tabs do contracheque */
#view-rh .rh-cc-tab.is-active {
  color: var(--primary, #6d1f6c) !important;
  border-bottom-color: var(--primary, #6d1f6c) !important;
}
#view-rh .rh-cc-tab:hover:not(.is-active) {
  color: #475569 !important;
}

/* ============================================================
 * Layout intranet aplicado ao view-servidor (Fase S-A 2026-05-31)
 * ============================================================ */
#view-servidor .intranet-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  position: relative;
}
#view-servidor .intranet-sidebar {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 16px -10px rgba(15, 23, 42, 0.10);
  padding: 6px 0;
}
#view-servidor .intranet-main { min-width: 0; }

#view-servidor .intranet-header {
  background: linear-gradient(135deg, #4e1550 0%, #6d1f6c 55%, #8a2c8a 100%);
  position: relative; padding: 22px 26px; border-radius: 14px; margin-bottom: 22px;
  box-shadow: 0 1px 2px rgba(78,21,80,0.10), 0 8px 24px -8px rgba(78,21,80,0.25);
  overflow: hidden;
}
#view-servidor .intranet-header-logo {
  width: 42px; height: 42px; border-radius: 11px; background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.20); display: inline-flex; align-items: center; justify-content: center; color: #fff;
}
#view-servidor .intranet-header-title { font-size: 1.22rem; font-weight: 700; color: #fff; }
#view-servidor .intranet-header-sub { font-size: 0.82rem; color: rgba(255,255,255,0.78); margin-top: 3px; }
#view-servidor .intranet-header .btn {
  background: rgba(255,255,255,0.14); color: #fff; border: 1px solid rgba(255,255,255,0.20);
  border-radius: 8px;
}
#view-servidor .intranet-header .btn:hover { background: rgba(255,255,255,0.24); }
#view-servidor .intranet-header .btn-danger { background: rgba(220,38,38,0.85); border-color: rgba(220,38,38,0.20); }

#view-servidor .intranet-sidebar-section { padding: 14px 16px 8px; }
#view-servidor .intranet-sidebar-section + .intranet-sidebar-section {
  border-top: 1px solid #f1f5f9; margin-top: 2px; padding-top: 16px;
}
#view-servidor .intranet-sidebar-label {
  font-size: 0.68rem; font-weight: 800; letter-spacing: 0.10em; text-transform: uppercase;
  color: #94a3b8; margin-bottom: 8px; padding-left: 4px;
}

#view-servidor .intranet-menu-item {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 9px 14px 9px 28px; border: 0; background: transparent; border-radius: 9px;
  font-size: 0.89rem; font-weight: 500; color: #334155; text-align: left; cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease; margin-bottom: 2px;
}
#view-servidor .intranet-menu-item::before {
  content: ""; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%; background: #cbd5e1; transition: background 0.18s, transform 0.18s;
}
#view-servidor .intranet-menu-item:hover:not(:disabled) { background: #faf5fa; color: #6d1f6c; }
#view-servidor .intranet-menu-item:hover:not(:disabled)::before { background: #6d1f6c; }
#view-servidor .intranet-menu-item.is-active {
  background: linear-gradient(90deg, rgba(109,31,108,0.10), rgba(109,31,108,0.04));
  color: #4e1550; font-weight: 600;
}
#view-servidor .intranet-menu-item.is-active::before {
  background: #6d1f6c; transform: translateY(-50%) scale(1.4);
  box-shadow: 0 0 0 3px rgba(109,31,108,0.15);
}
#view-servidor .intranet-menu-item > i, #view-servidor .intranet-menu-item > svg {
  width: 17px; height: 17px; flex-shrink: 0; opacity: 0.85;
}

#view-servidor .card {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; padding: 22px 24px;
  box-shadow: 0 1px 2px rgba(15,23,42,0.03), 0 4px 14px -8px rgba(15,23,42,0.06);
  transition: box-shadow 0.22s ease;
}
#view-servidor .card:hover { box-shadow: 0 1px 2px rgba(15,23,42,0.05), 0 8px 24px -10px rgba(15,23,42,0.12); }
#view-servidor .card h4 { color: #1f2937; font-size: 1.05rem; font-weight: 700; margin: 0 0 4px; }

/* Responsivo */
@media (max-width: 920px) {
  #view-servidor .intranet-grid { grid-template-columns: 1fr; }
  #view-servidor .intranet-sidebar { position: static; }
}

/* ============================================================
 * Widget de notificações (sino fixo no canto)
 * ============================================================ */
.app-notif-widget {
  position: fixed;
  bottom: 100px;
  right: 22px;
  z-index: 9990;
}
.app-notif-toggle {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6d1f6c 0%, #8a2c8a 100%);
  color: #fff;
  border: 0;
  cursor: pointer;
  box-shadow: 0 4px 14px -2px rgba(109, 31, 108, 0.45),
              0 2px 4px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.app-notif-toggle:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px -2px rgba(109, 31, 108, 0.55),
              0 3px 6px rgba(0, 0, 0, 0.10);
}
.app-notif-toggle:focus-visible {
  outline: 3px solid rgba(109, 31, 108, 0.45);
  outline-offset: 3px;
}
.app-notif-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.app-notif-panel {
  position: absolute;
  bottom: 64px;
  right: 0;
  width: 360px;
  max-width: calc(100vw - 30px);
  max-height: 480px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 60px -10px rgba(15, 23, 42, 0.35),
              0 4px 12px rgba(15, 23, 42, 0.12);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: appNotifIn 180ms ease;
}
@keyframes appNotifIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.app-notif-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid #f1f5f9;
  background: linear-gradient(180deg, #fafafa, #fff);
}
.app-notif-head strong {
  font-size: 0.92rem;
  color: #1f2937;
  letter-spacing: -0.01em;
}
.app-notif-head-actions {
  display: flex;
  gap: 4px;
}
.app-notif-link-btn {
  background: transparent;
  border: 0;
  color: #6d1f6c;
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 6px;
  transition: background 0.15s ease;
}
.app-notif-link-btn:hover {
  background: #faf5fa;
}
.app-notif-link-btn-danger {
  color: #b91c1c;
}
.app-notif-link-btn-danger:hover {
  background: #fef2f2;
}

.app-notif-list {
  overflow-y: auto;
  max-height: 420px;
  padding: 6px;
}
.app-notif-empty {
  padding: 30px 16px;
  text-align: center;
  color: #94a3b8;
  font-size: 0.86rem;
}
.app-notif-item {
  display: flex;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.14s ease;
  margin-bottom: 2px;
}
.app-notif-item:hover {
  background: #faf5fa;
}
.app-notif-item.is-unread {
  background: linear-gradient(90deg, rgba(109, 31, 108, 0.04), transparent);
  position: relative;
}
.app-notif-item.is-unread::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #6d1f6c;
  transform: translateY(-50%);
}
.app-notif-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  background: #faf5fa;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6d1f6c;
}
.app-notif-icon i, .app-notif-icon svg {
  width: 16px;
  height: 16px;
}
.app-notif-body {
  flex: 1;
  min-width: 0;
}
.app-notif-title {
  font-size: 0.86rem;
  font-weight: 600;
  color: #1f2937;
  line-height: 1.3;
}
.app-notif-msg {
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 2px;
  line-height: 1.4;
}
.app-notif-time {
  font-size: 0.7rem;
  color: #94a3b8;
  margin-top: 4px;
  font-weight: 500;
}

@media (max-width: 640px) {
  .app-notif-widget { bottom: 14px; right: 14px; }
  .app-notif-panel { width: 320px; }
}

/* Esconde widget antigo task-notification — unificado em app-notif-widget */
.task-notification-widget { display: none !important; }

/* ============================================================
 * Modal de confirmação in-app + animação toast (2026-05-31)
 * ============================================================ */
.app-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  animation: appModalFade 160ms ease;
}
.app-modal-backdrop.hidden { display: none; }
@keyframes appModalFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.app-modal-box {
  background: #fff;
  border-radius: 14px;
  max-width: 440px;
  width: 100%;
  padding: 22px 24px 20px;
  box-shadow: 0 24px 60px -10px rgba(0,0,0,0.3);
  animation: appModalPop 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes appModalPop {
  from { opacity: 0; transform: scale(0.96) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.app-modal-title {
  margin: 0 0 8px;
  font-size: 1.06rem;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -0.01em;
}
.app-modal-message {
  margin: 0 0 20px;
  font-size: 0.92rem;
  color: #475569;
  line-height: 1.5;
}
.app-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
@keyframes appToastIn {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}


/* ============================================================
 * Polish visual da Recepção (2026-05-31)
 * Aplica padrão intranet apenas ao header + refina cards
 * ============================================================ */
#view-reception .intranet-header {
  background: linear-gradient(135deg, #4e1550 0%, #6d1f6c 55%, #8a2c8a 100%);
  position: relative;
  padding: 20px 26px;
  border-radius: 14px;
  margin-bottom: 22px;
  box-shadow: 0 1px 2px rgba(78,21,80,0.10), 0 8px 24px -8px rgba(78,21,80,0.25);
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
#view-reception .intranet-header::after {
  content: '';
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 35%;
  background: radial-gradient(circle at 70% 30%, rgba(255,255,255,0.10), transparent 60%);
  pointer-events: none;
}
#view-reception .intranet-header-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  position: relative;
  z-index: 1;
}
#view-reception .intranet-header-logo {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  background: rgba(255,255,255,0.16);
  border: 1px solid rgba(255,255,255,0.20);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
#view-reception .intranet-header-title {
  font-size: 1.22rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.015em;
  line-height: 1.2;
}
#view-reception .intranet-header-sub {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.78);
  margin-top: 3px;
}
#view-reception .intranet-header-actions {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}
#view-reception .intranet-header .btn {
  background: rgba(255,255,255,0.14);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.20);
  border-radius: 8px;
  font-weight: 500;
}
#view-reception .intranet-header .btn:hover { background: rgba(255,255,255,0.24); transform: translateY(-1px); }
#view-reception .intranet-header .btn-danger {
  background: rgba(220, 38, 38, 0.85);
  border-color: rgba(220, 38, 38, 0.20);
}
#view-reception .intranet-header .btn-danger:hover { background: rgba(220, 38, 38, 1); }

/* Cards principais */
#view-reception .card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03), 0 4px 14px -8px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.22s ease;
}
#view-reception .card:hover {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 8px 24px -10px rgba(15, 23, 42, 0.12);
}
#view-reception .rec-search-card,
#view-reception .rec-summary-card { padding: 18px; }
#view-reception .rec-search-card h4 {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Inputs e botões da recepção */
#view-reception input[type="text"],
#view-reception input[type="date"],
#view-reception input[type="tel"],
#view-reception input[type="email"],
#view-reception .rec-field,
#view-reception select,
#view-reception textarea {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.88rem;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#view-reception input:focus,
#view-reception select:focus,
#view-reception textarea:focus {
  outline: none;
  border-color: #6d1f6c;
  box-shadow: 0 0 0 3px rgba(109, 31, 108, 0.08);
}

/* Tabs da ficha (underline roxo padrão) */
#view-reception .rec-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid #e5e7eb;
  margin-bottom: 16px;
}
#view-reception .rec-tab {
  background: transparent;
  border: 0;
  padding: 10px 18px;
  cursor: pointer;
  font-weight: 600;
  color: #64748b;
  font-size: 0.9rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.15s, border-color 0.15s;
}
#view-reception .rec-tab:hover:not(.active) {
  color: #475569;
}
#view-reception .rec-tab.active {
  color: var(--primary, #6d1f6c);
  border-bottom-color: var(--primary, #6d1f6c);
}

/* Botão de ação rápida na sidebar — destaque sutil */
#view-reception .rec-sidebar .btn {
  border-radius: 9px;
  font-weight: 600;
  font-size: 0.88rem;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
#view-reception .rec-sidebar .btn:hover:not(:disabled) {
  transform: translateY(-1px);
}

/* Estado vazio */
#view-reception #rec-empty-state {
  background: linear-gradient(180deg, #fafafa 0%, #ffffff 100%);
  border: 1px dashed #cbd5e1;
}

/* Mobile responsivo */
@media (max-width: 920px) {
  #view-reception .rec-layout { grid-template-columns: 1fr !important; }
}

/* ============================================================
 * Botões dentro de cards — polish (2026-05-31)
 * Escopo: qualquer .btn dentro de .card aplica refinamento.
 * Sem afetar btn em headers, modais, sidebars.
 * ============================================================ */
.card .btn,
.rh-item-card .btn,
.rh-chart-card .btn,
.rh-stat-card .btn {
  border-radius: 9px;
  padding: 8px 14px;
  font-weight: 600;
  font-size: 0.86rem;
  border-width: 1px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: background 0.18s ease, color 0.18s ease, transform 0.15s ease,
              box-shadow 0.18s ease, border-color 0.18s ease;
}
.card .btn:hover:not(:disabled),
.rh-item-card .btn:hover:not(:disabled),
.rh-chart-card .btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px -4px rgba(15, 23, 42, 0.18),
              0 1px 2px rgba(15, 23, 42, 0.06);
}
.card .btn:active:not(:disabled),
.rh-item-card .btn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.card .btn:focus-visible {
  outline: 2px solid var(--primary, #6d1f6c);
  outline-offset: 2px;
}

/* Botão primário (CTA) dentro de cards: gradient sutil + brilho */
.card .btn-primary,
.rh-item-card .btn-primary {
  background: linear-gradient(180deg, #7c2e7a 0%, #6d1f6c 100%);
  border-color: var(--primary-dark, #4e1550);
  color: #fff;
}
.card .btn-primary:hover:not(:disabled) {
  background: linear-gradient(180deg, #8e3a8d 0%, #7c2e7a 100%);
  box-shadow: 0 6px 16px -4px rgba(109, 31, 108, 0.45),
              0 1px 3px rgba(109, 31, 108, 0.30);
}

/* Botão de sucesso (aprovar, confirmar) */
.card .btn[style*="background:#10b981"],
.card .btn[style*="background:#15803d"] {
  background: linear-gradient(180deg, #16a574 0%, #10b981 100%) !important;
  border-color: #047857 !important;
  box-shadow: 0 1px 2px rgba(16, 185, 129, 0.18);
}
.card .btn[style*="background:#10b981"]:hover:not(:disabled),
.card .btn[style*="background:#15803d"]:hover:not(:disabled) {
  box-shadow: 0 6px 16px -4px rgba(16, 185, 129, 0.40),
              0 1px 3px rgba(16, 185, 129, 0.30) !important;
}

/* Botão danger dentro de cards */
.card .btn-danger,
.rh-item-card .btn-danger {
  background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);
  border-color: #b91c1c;
}
.card .btn-danger:hover:not(:disabled) {
  background: linear-gradient(180deg, #f87171 0%, #ef4444 100%);
  box-shadow: 0 6px 16px -4px rgba(239, 68, 68, 0.40),
              0 1px 3px rgba(239, 68, 68, 0.25);
}

/* Botão neutro (cancelar, atualizar) — outline */
.card .btn:not(.btn-primary):not(.btn-danger):not(.btn-info):not(.btn-warning):not(.btn-accent):not(.btn-success) {
  background: #fff;
  color: #475569;
  border-color: #e5e7eb;
}
.card .btn:not(.btn-primary):not(.btn-danger):not(.btn-info):not(.btn-warning):not(.btn-accent):not(.btn-success):hover:not(:disabled) {
  background: #faf5fa;
  color: var(--primary, #6d1f6c);
  border-color: #d8c4d8;
}

/* Ícones dentro de botões em cards: padroniza tamanho */
.card .btn > svg,
.card .btn > i,
.rh-item-card .btn > svg,
.rh-item-card .btn > i {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* Botão sm continua menor mas com mesma harmonia */
.card .btn-sm,
.rh-item-card .btn-sm {
  padding: 6px 12px;
  font-size: 0.82rem;
}

/* Disabled */
.card .btn:disabled,
.rh-item-card .btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}


/* ============================================================
 * Layout intranet aplicado ao view-reception (Fase Layout 2026-05-31)
 * ============================================================ */
#view-reception .intranet-grid {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  position: relative;
}
#view-reception .intranet-sidebar {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 16px -10px rgba(15, 23, 42, 0.10);
  padding: 6px 0;
}
#view-reception .intranet-main { min-width: 0; }
#view-reception .intranet-sidebar-section { padding: 14px 16px 8px; }
#view-reception .intranet-sidebar-section + .intranet-sidebar-section {
  border-top: 1px solid #f1f5f9; margin-top: 2px; padding-top: 16px;
}
#view-reception .intranet-sidebar-label {
  font-size: 0.68rem; font-weight: 800; letter-spacing: 0.10em;
  text-transform: uppercase; color: #94a3b8; margin-bottom: 8px; padding-left: 4px;
}
#view-reception .intranet-menu-item {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 9px 14px 9px 28px; border: 0; background: transparent;
  border-radius: 9px; font-size: 0.89rem; font-weight: 500; color: #334155;
  text-align: left; cursor: pointer; margin-bottom: 2px;
  transition: background 0.18s ease, color 0.18s ease;
}
#view-reception .intranet-menu-item::before {
  content: ""; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%; background: #cbd5e1;
  transition: background 0.18s, transform 0.18s;
}
#view-reception .intranet-menu-item:hover:not(:disabled) {
  background: #faf5fa; color: #6d1f6c;
}
#view-reception .intranet-menu-item:hover:not(:disabled)::before { background: #6d1f6c; }
#view-reception .intranet-menu-item:disabled { color: #9ca3af; cursor: not-allowed; opacity: 0.55; }
#view-reception .intranet-menu-item > i,
#view-reception .intranet-menu-item > svg { width: 17px; height: 17px; flex-shrink: 0; opacity: 0.85; }

@media (max-width: 920px) {
  #view-reception .intranet-grid { grid-template-columns: 1fr; }
  #view-reception .intranet-sidebar { position: static; }
}

/* Pre-boot splash anti-flash */

html.auth-pending body::before{content:"";position:fixed;inset:0;background:#fafafa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%236d1f6c' stroke-width='2' stroke-dasharray='40 20' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='1s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E") no-repeat center;z-index:99999;animation:authSplashFade 220ms ease 250ms forwards;pointer-events:none;}
@keyframes authSplashFade{to{opacity:0;visibility:hidden}}
html.auth-pending .view-section.active body::before,body:has(.view-section.active)::before{display:none}

/* ============================================================
 * Polish cards Recepcao 2 (rec-content-card)
 * ============================================================ */
#view-reception .rec-content-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 22px 24px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03), 0 4px 14px -8px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.22s ease;
}
#view-reception .rec-content-card:hover {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 8px 24px -10px rgba(15, 23, 42, 0.12);
}

#view-reception .rec-card-head {
  padding-bottom: 14px;
  border-bottom: 1px solid #f1f5f9;
  margin-bottom: 16px !important;
}
#view-reception .rec-card-head h4 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.014em;
  color: var(--primary, #6d1f6c);
}

/* Labels e campos da ficha */
#view-reception .rec-label {
  font-size: 0.74rem;
  font-weight: 600;
  color: #475569;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
#view-reception .rec-field {
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 0.9rem;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
}
#view-reception .rec-field:focus {
  outline: none;
  border-color: var(--primary, #6d1f6c);
  box-shadow: 0 0 0 3px rgba(109, 31, 108, 0.10);
}
#view-reception .rec-field:disabled,
#view-reception .rec-field[readonly] {
  background: #f8fafc;
  color: #475569;
  cursor: not-allowed;
}

/* Grade do formulário */
#view-reception .rec-form-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px 18px !important;
}
@media (max-width: 720px) {
  #view-reception .rec-form-grid { grid-template-columns: 1fr !important; }
}

/* Tabs refinados (sobrescreve .rec-tab antigo dentro do view-reception) */
#view-reception .rec-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 2px solid #e5e7eb;
  margin-bottom: 18px;
  background: transparent;
}
#view-reception .rec-tab {
  background: transparent;
  border: 0;
  padding: 11px 18px;
  cursor: pointer;
  font-weight: 600;
  color: #64748b;
  font-size: 0.9rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  border-radius: 0;
  transition: color 0.15s, border-color 0.15s;
}
#view-reception .rec-tab:hover:not(.active) {
  color: #475569;
  background: transparent;
}
#view-reception .rec-tab.active {
  color: var(--primary, #6d1f6c);
  border-bottom-color: var(--primary, #6d1f6c);
  background: transparent;
  border-top: 0;
  border-left: 0;
  border-right: 0;
}

/* Conteúdo das tabs com fade-in */
#view-reception .rec-tab-content:not(.hidden) {
  animation: recTabFadeIn 0.22s ease;
}
@keyframes recTabFadeIn {
  from { opacity: 0; transform: translateY(3px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Estado vazio com gradient sutil */
#view-reception #rec-empty-state {
  background: linear-gradient(180deg, #fafafa 0%, #ffffff 100%);
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
}

/* Botões dentro do header da ficha (Editar/Salvar/Cancelar) */
#view-reception .rec-card-head .btn-sm {
  border-radius: 8px;
  font-weight: 600;
}


/* ============================================================
 * Layout intranet aplicado ao view-operator (2026-05-31)
 * ============================================================ */
#view-operator .intranet-grid {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
  position: relative;
}
#view-operator .intranet-sidebar {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 16px -10px rgba(15, 23, 42, 0.10);
  padding: 6px 0;
}
#view-operator .intranet-main { min-width: 0; }
#view-operator .intranet-sidebar-section { padding: 14px 16px 8px; }
#view-operator .intranet-sidebar-section + .intranet-sidebar-section,
#view-operator .op-linked-depts-panel + .intranet-sidebar-section,
#view-operator .intranet-sidebar-section + .op-linked-depts-panel {
  border-top: 1px solid #f1f5f9; margin-top: 2px; padding-top: 16px;
}
#view-operator .intranet-sidebar-label {
  font-size: 0.68rem; font-weight: 800; letter-spacing: 0.10em;
  text-transform: uppercase; color: #94a3b8; margin-bottom: 8px; padding-left: 4px;
}
#view-operator .intranet-menu-item {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 9px 14px 9px 28px; border: 0; background: transparent;
  border-radius: 9px; font-size: 0.89rem; font-weight: 500; color: #334155;
  text-align: left; cursor: pointer; margin-bottom: 2px;
  transition: background 0.18s ease, color 0.18s ease;
}
#view-operator .intranet-menu-item::before {
  content: ""; position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%; background: #cbd5e1;
  transition: background 0.18s, transform 0.18s;
}
#view-operator .intranet-menu-item:hover:not(:disabled) {
  background: #faf5fa; color: #6d1f6c;
}
#view-operator .intranet-menu-item:hover:not(:disabled)::before { background: #6d1f6c; }
#view-operator .intranet-menu-item > i,
#view-operator .intranet-menu-item > svg { width: 17px; height: 17px; flex-shrink: 0; opacity: 0.85; }

/* Panel de departamentos vinculados dentro da sidebar — limita altura */
#view-operator .op-linked-depts-body {
  max-height: 360px;
  overflow-y: auto;
  margin-top: 6px;
}

@media (max-width: 920px) {
  #view-operator .intranet-grid { grid-template-columns: 1fr; }
  #view-operator .intranet-sidebar { position: static; }
}

/* ============================================================
 * Polish modais globais (2026-05-31)
 * Aplica refinamento ao .modal-overlay/.modal-box padrao do sistema.
 * ============================================================ */
.modal-overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(15, 23, 42, 0.58) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
  z-index: 9000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  animation: modalOverlayIn 160ms ease !important;
}
.modal-overlay.hidden { display: none !important; }
.modal-overlay.hidden { display: none; }
@keyframes modalOverlayIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.modal-overlay .modal-box {
  background: #fff !important;
  border-radius: 16px !important;
  padding: 26px 28px 22px !important;
  box-shadow: 0 28px 70px -12px rgba(15, 23, 42, 0.35),
              0 6px 18px rgba(15, 23, 42, 0.10) !important;
  animation: modalPopIn 220ms cubic-bezier(0.16, 1, 0.3, 1) !important;
  max-height: 90vh !important;
  overflow-y: auto !important;
  border: 0 !important;
}
@keyframes modalPopIn {
  from { opacity: 0; transform: scale(0.96) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

.modal-overlay .modal-box h3 {
  margin: 0 0 10px;
  font-size: 1.18rem;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -0.014em;
}
.modal-overlay .modal-box p,
.modal-overlay .modal-box .small {
  color: #475569;
  line-height: 1.55;
}

/* Inputs/textarea/select dentro de modais */
.modal-overlay .modal-box input[type="text"],
.modal-overlay .modal-box input[type="email"],
.modal-overlay .modal-box input[type="tel"],
.modal-overlay .modal-box input[type="number"],
.modal-overlay .modal-box input[type="date"],
.modal-overlay .modal-box input[type="time"],
.modal-overlay .modal-box select,
.modal-overlay .modal-box textarea {
  border: 1px solid #d1d5db;
  border-radius: 9px;
  padding: 9px 12px;
  font-size: 0.92rem;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
  box-sizing: border-box;
  font-family: inherit;
}
.modal-overlay .modal-box input:focus,
.modal-overlay .modal-box select:focus,
.modal-overlay .modal-box textarea:focus {
  outline: none;
  border-color: var(--primary, #6d1f6c);
  box-shadow: 0 0 0 3px rgba(109, 31, 108, 0.10);
}
.modal-overlay .modal-box textarea { resize: vertical; min-height: 80px; }

/* Botões dentro de modais — ações no rodapé */
.modal-overlay .modal-box .flex,
.modal-overlay .modal-box .modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
  align-items: center;
  flex-wrap: wrap;
}
.modal-overlay .modal-box .btn {
  border-radius: 9px;
  padding: 9px 18px;
  font-weight: 600;
  font-size: 0.88rem;
  border-width: 1px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: background 0.18s, color 0.18s, transform 0.15s, box-shadow 0.18s;
}
.modal-overlay .modal-box .btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px -4px rgba(15, 23, 42, 0.18), 0 1px 2px rgba(15, 23, 42, 0.06);
}
.modal-overlay .modal-box .btn-primary {
  background: linear-gradient(180deg, #7c2e7a, #6d1f6c);
  border-color: var(--primary-dark, #4e1550);
  color: #fff;
}
.modal-overlay .modal-box .btn-primary:hover:not(:disabled) {
  box-shadow: 0 8px 20px -6px rgba(109, 31, 108, 0.50), 0 2px 4px rgba(109, 31, 108, 0.30);
}
.modal-overlay .modal-box .btn-success,
.modal-overlay .modal-box [class*="btn-success"] {
  background: linear-gradient(180deg, #16a574, #10b981);
  border-color: #047857;
  color: #fff;
}
.modal-overlay .modal-box .btn-danger {
  background: linear-gradient(180deg, #ef4444, #dc2626);
  border-color: #b91c1c;
  color: #fff;
}

/* Labels acima de campos */
.modal-overlay .modal-box label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
  margin: 0 0 4px;
  letter-spacing: 0.01em;
}

/* Botão close (X) opcional */
.modal-overlay .modal-box .modal-close {
  position: absolute;
  top: 16px;
  right: 18px;
  background: transparent;
  border: 0;
  font-size: 22px;
  cursor: pointer;
  color: #94a3b8;
  line-height: 1;
  padding: 0;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  transition: background 0.15s;
}
.modal-overlay .modal-box .modal-close:hover {
  background: #f1f5f9;
  color: #475569;
}

/* Espaçamento entre filhos diretos do modal-box */
.modal-overlay .modal-box > * + * { margin-top: 12px; }
.modal-overlay .modal-box > h3 + * { margin-top: 8px; }
.modal-overlay .modal-box > .flex,
.modal-overlay .modal-box > .modal-actions { margin-top: 20px; }

/* ================================================================
   MODAL REDESIGN v6 — visual moderno (Linear / Stripe inspired)
   ================================================================ */

/* ── Overlay com backdrop mais profundo ── */
.modal-overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(8, 12, 24, 0.55) !important;
  backdrop-filter: blur(10px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(10px) saturate(140%) !important;
  z-index: 9000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
  animation: modalOverlayIn 220ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.modal-overlay.hidden { display: none !important; }

/* ── Box: cantos generosos, sombra elaborada, layout flex ── */
.modal-overlay .modal-box {
  background: #ffffff !important;
  border-radius: 20px !important;
  box-shadow:
    0 1px 0 0 rgba(255, 255, 255, 0.06) inset,
    0 0 0 1px rgba(15, 23, 42, 0.04),
    0 24px 48px -12px rgba(8, 12, 24, 0.30),
    0 8px 16px -8px rgba(8, 12, 24, 0.20),
    0 2px 6px -2px rgba(8, 12, 24, 0.12) !important;
  border: 0 !important;
  animation: modalPopIn 320ms cubic-bezier(0.16, 1, 0.3, 1) !important;
  padding: 28px 30px 22px !important;
  max-height: 90vh !important;
  overflow-y: auto !important;
  position: relative !important;
  color: #020617 !important;
  scrollbar-width: thin !important;
  scrollbar-color: #cbd5e1 transparent !important;
}
.modal-overlay .modal-box::-webkit-scrollbar { width: 8px; }
.modal-overlay .modal-box::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }

/* ── Titulo: maior, mais peso visual ── */
.modal-overlay .modal-box h3 {
  font-size: 1.32rem !important;
  font-weight: 700 !important;
  color: #020617 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
  margin: 0 0 6px 0 !important;
  padding-right: 40px !important;
}
/* Subtitulo (primeiro <p> apos h3) */
.modal-overlay .modal-box h3 + p {
  font-size: 0.94rem !important;
  color: #64748b !important;
  margin: 0 0 22px 0 !important;
  line-height: 1.5 !important;
}
.modal-overlay .modal-box p {
  color: #475569 !important;
  line-height: 1.55 !important;
  font-size: 0.94rem !important;
}

/* ── Labels: weight 500, slate-700, espaco bom ── */
.modal-overlay .modal-box label,
.modal-overlay .modal-box p[style*="0.72rem"],
.modal-overlay .modal-box p[style*=".72rem"],
.modal-overlay .modal-box p[style*="0.75rem"],
.modal-overlay .modal-box small[style*="0.72rem"] {
  font-size: 0.84rem !important;
  font-weight: 500 !important;
  color: #334155 !important;
  letter-spacing: 0 !important;
  display: block !important;
  margin: 0 0 6px 0 !important;
  text-transform: none !important;
  line-height: 1.4 !important;
}

/* ── INPUTS / SELECTS / TEXTAREAS premium ── */
.modal-overlay .modal-box input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="image"]),
.modal-overlay .modal-box select,
.modal-overlay .modal-box textarea {
  width: 100% !important;
  height: 44px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  padding: 0 14px !important;
  font-size: 0.95rem !important;
  font-family: inherit !important;
  line-height: 1.4 !important;
  background: #f8fafc !important;
  color: #020617 !important;
  box-sizing: border-box !important;
  transition: all 160ms cubic-bezier(0.4, 0, 0.2, 1) !important;
  margin: 0 !important;
}
.modal-overlay .modal-box textarea {
  height: auto !important;
  min-height: 84px !important;
  padding: 12px 14px !important;
  resize: vertical !important;
}
.modal-overlay .modal-box select {
  appearance: none !important;
  padding-right: 38px !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 16px !important;
  cursor: pointer !important;
}
.modal-overlay .modal-box input::placeholder,
.modal-overlay .modal-box textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 1 !important;
}
.modal-overlay .modal-box input:hover,
.modal-overlay .modal-box select:hover,
.modal-overlay .modal-box textarea:hover {
  border-color: #cbd5e1 !important;
  background: #fff !important;
}
.modal-overlay .modal-box input:focus,
.modal-overlay .modal-box select:focus,
.modal-overlay .modal-box textarea:focus {
  outline: none !important;
  border-color: #6d1f6c !important;
  background: #fff !important;
  box-shadow:
    0 0 0 4px rgba(109, 31, 108, 0.10),
    0 1px 2px rgba(15, 23, 42, 0.05) !important;
}
.modal-overlay .modal-box input:disabled,
.modal-overlay .modal-box select:disabled,
.modal-overlay .modal-box textarea:disabled {
  background: #f1f5f9 !important;
  color: #94a3b8 !important;
  cursor: not-allowed !important;
}

/* ── Checkbox/Radio premium ── */
.modal-overlay .modal-box input[type="checkbox"],
.modal-overlay .modal-box input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: #6d1f6c !important;
  margin: 0 10px 0 0 !important;
  cursor: pointer !important;
  vertical-align: middle !important;
}

/* ── Action bar: gradiente sutil + borda topo ── */
.modal-overlay .modal-box .modal-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 9px !important;
  margin: 20px -30px -22px !important;
  padding: 13px 30px !important;
  border-top: 1px solid #eef0f4 !important;
  background: linear-gradient(180deg, #fbfcfe 0%, #f7f9fc 100%) !important;
  border-radius: 0 0 20px 20px !important;
  flex-wrap: wrap !important;
  position: sticky !important;
  bottom: -22px !important;
  z-index: 5 !important;
  box-shadow: 0 -8px 16px -8px rgba(15, 23, 42, 0.08) !important;
}

/* ── Botoes: tamanho compacto ── */
.modal-overlay .modal-box .btn {
  height: 37px !important;
  padding: 0 15px !important;
  font-size: 0.84rem !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
  letter-spacing: -0.005em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  transition: all 160ms cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer !important;
  border-width: 1px !important;
  border-style: solid !important;
  white-space: nowrap !important;
}
.modal-overlay .modal-box .btn:not(.btn-primary):not([style*="background"]) {
  background: #fff !important;
  color: #334155 !important;
  border-color: #d8dde6 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
}
.modal-overlay .modal-box .btn:not(.btn-primary):not([style*="background"]):hover {
  background: #f8fafc !important;
  border-color: #b8c2d0 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px -2px rgba(15, 23, 42, 0.08) !important;
}
.modal-overlay .modal-box .btn-primary {
  background: linear-gradient(135deg, #6d1f6c 0%, #4a1349 100%) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.15) inset,
    0 1px 2px rgba(74, 19, 73, 0.40),
    0 4px 12px -2px rgba(109, 31, 108, 0.45) !important;
}
.modal-overlay .modal-box .btn-primary:hover {
  transform: translateY(-1px) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.2) inset,
    0 4px 8px rgba(74, 19, 73, 0.50),
    0 8px 20px -4px rgba(109, 31, 108, 0.55) !important;
  background: linear-gradient(135deg, #7a2479 0%, #5a1959 100%) !important;
}
.modal-overlay .modal-box .btn:active {
  transform: translateY(0) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05) !important;
}

/* ── X close: visualmente sutil ── */
.modal-overlay .modal-box .modal-close-x {
  position: absolute !important;
  top: 18px !important;
  right: 20px !important;
  width: 34px !important;
  height: 34px !important;
  border: 0 !important;
  background: transparent !important;
  color: #94a3b8 !important;
  cursor: pointer !important;
  border-radius: 10px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 150ms ease !important;
  padding: 0 !important;
  z-index: 10 !important;
}
.modal-overlay .modal-box .modal-close-x:hover {
  background: #f1f5f9 !important;
  color: #020617 !important;
  transform: rotate(90deg) !important;
}

/* ── Monospace/CPF chip ── */
.modal-overlay .modal-box strong[style*="monospace"],
.modal-overlay .modal-box code {
  font-family: 'JetBrains Mono', ui-monospace, 'Cascadia Code', Consolas, monospace !important;
  background: #f1f5f9 !important;
  padding: 3px 8px !important;
  border-radius: 6px !important;
  font-size: 0.88em !important;
  color: #020617 !important;
  font-weight: 600 !important;
  border: 1px solid #e2e8f0 !important;
}

/* ── Cards interativos (motivos, opcoes etc) ── */
.modal-overlay .modal-box label[style*="cursor:pointer"],
.modal-overlay .modal-box label[style*="cursor: pointer"] {
  transition: all 150ms ease !important;
  border-radius: 12px !important;
}
.modal-overlay .modal-box label[style*="cursor:pointer"]:hover,
.modal-overlay .modal-box label[style*="cursor: pointer"]:hover {
  border-color: #6d1f6c !important;
  background: #faf5fa !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 8px -2px rgba(109, 31, 108, 0.12) !important;
}

/* ── Animacoes ── */
@keyframes modalOverlayIn {
  from { opacity: 0; backdrop-filter: blur(0px); }
  to   { opacity: 1; backdrop-filter: blur(10px); }
}
@keyframes modalPopIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.94);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

@media (max-width: 640px) {
  .modal-overlay { padding: 12px !important; }
  .modal-overlay .modal-box { padding: 24px 22px 18px !important; border-radius: 16px !important; }
  .modal-overlay .modal-box h3 { font-size: 1.15rem !important; }
  .modal-overlay .modal-box .modal-actions {
    margin: 22px -22px -18px !important;
    padding: 14px 22px !important;
    border-radius: 0 0 16px 16px !important;
  }
}

/* ================================================================
   OPERATOR LAYOUT v4 — refinado: hierarquia, badges, empty states
   ================================================================ */

#view-operator .panel-container {
  max-width: 1500px !important;
  margin: 0 auto !important;
  padding: 20px 20px 32px !important;
}

/* ── Header roxo ── */
#view-operator > #operator-panel > header {
  background: linear-gradient(135deg, #6d1f6c 0%, #4a1349 100%) !important;
  color: #fff !important;
  padding: 20px 24px !important;
  border-radius: 18px !important;
  margin-bottom: 18px !important;
  box-shadow:
    0 10px 24px -10px rgba(74, 19, 73, 0.42),
    0 2px 6px -2px rgba(15, 23, 42, 0.08) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  position: relative !important;
  overflow: hidden !important;
}
#view-operator > #operator-panel > header::before {
  content: "" !important;
  position: absolute !important;
  top: -40% !important;
  right: -10% !important;
  width: 320px !important;
  height: 320px !important;
  background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 70%) !important;
  pointer-events: none !important;
}
#view-operator > #operator-panel > header h2,
#view-operator > #operator-panel > header h3 {
  color: #fff !important;
  font-size: 1.38rem !important;
  font-weight: 700 !important;
  margin: 0 !important;
  letter-spacing: -0.02em !important;
  position: relative !important;
  z-index: 1 !important;
}
#view-operator > #operator-panel > header .small,
#view-operator > #operator-panel > header p {
  color: rgba(255, 255, 255, 0.86) !important;
  font-size: 0.86rem !important;
  margin: 3px 0 0 0 !important;
  position: relative !important;
  z-index: 1 !important;
}
#view-operator > #operator-panel > header .btn {
  background: rgba(255, 255, 255, 0.14) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  padding: 9px 12px !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  font-size: 0.78rem !important;
  transition: all 160ms ease !important;
  position: relative !important;
  z-index: 1 !important;
  backdrop-filter: blur(6px) !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  line-height: 1.2 !important;
  overflow: visible !important;
  text-overflow: clip !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
#view-operator > #operator-panel > header .btn:hover {
  background: rgba(255, 255, 255, 0.24) !important;
  transform: translateY(-1px) !important;
}
#view-operator > #operator-panel > header input[type="text"],
#view-operator > #operator-panel > header input[type="number"] {
  background: rgba(255, 255, 255, 0.16) !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  color: #fff !important;
  padding: 9px 12px !important;
  border-radius: 10px !important;
  font-size: 0.86rem !important;
  position: relative !important;
  z-index: 1 !important;
}
#view-operator > #operator-panel > header input::placeholder { color: rgba(255, 255, 255, 0.62) !important; }

/* ── Esconder relogio/contador da sessao ── */
#view-operator #session-timer-op { display: none !important; }

/* ── Destacar e reposicionar botao "Chamar proxima" ── */
#view-operator > #operator-panel > header button[onclick*="callNext"] {
  background: linear-gradient(135deg, #16a34a 0%, #15803d 100%) !important;
  color: #fff !important;
  border: 0 !important;
  font-weight: 700 !important;
  font-size: 0.94rem !important;
  padding: 11px 18px !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  border-radius: 12px !important;
  letter-spacing: -0.005em !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.15) inset,
    0 4px 14px -2px rgba(22, 163, 74, 0.55),
    0 2px 4px -1px rgba(22, 163, 74, 0.35) !important;
  order: 90 !important;
  margin-left: auto !important;
  position: relative !important;
  z-index: 1 !important;
  transition: all 180ms ease !important;
  text-shadow: 0 1px 1px rgba(0,0,0,0.10) !important;
}
#view-operator > #operator-panel > header button[onclick*="callNext"]::before {
  content: "▶" !important;
  font-size: 0.78rem !important;
  margin-right: 6px !important;
  opacity: 0.92 !important;
}
#view-operator > #operator-panel > header button[onclick*="callNext"]:hover {
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.2) inset,
    0 8px 22px -2px rgba(22, 163, 74, 0.70),
    0 3px 8px -1px rgba(22, 163, 74, 0.45) !important;
  background: linear-gradient(135deg, #15803d 0%, #166534 100%) !important;
}
#view-operator > #operator-panel > header button[onclick*="callNext"]:active {
  transform: translateY(0) scale(1) !important;
}

/* ── Botao Sair: empurra pro fim ── */
#view-operator > #operator-panel > header button[onclick*="logout"] { order: 99 !important; }

/* ── Grid principal: SIDEBAR (290) + MAIN (1fr) ── */
#view-operator > #operator-panel > div:nth-child(2) {
  display: grid !important;
  grid-template-columns: 290px minmax(0, 1fr) !important;
  gap: 20px !important;
  align-items: start !important;
}
/* Inverte ordem: main vai pra direita, sidebar pra esquerda */
#view-operator > #operator-panel > div:nth-child(2) > div:first-child {
  order: 2 !important;
  flex: unset !important;
  min-width: 0 !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) {
  order: 1 !important;
  flex: unset !important;
  background: #fff !important;
  border: 1px solid #eef0f4 !important;
  border-radius: 18px !important;
  padding: 6px 0 !important;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 12px 28px -16px rgba(15, 23, 42, 0.14) !important;
  position: sticky !important;
  top: 16px !important;
  max-height: calc(100vh - 40px) !important;
  overflow-y: auto !important;
  display: flex !important;
  flex-direction: column !important;
}

/* ── Sidebar: secao "Consulta Paciente" ── */
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > h4 {
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: #94a3b8 !important;
  margin: 0 !important;
  padding: 18px 18px 10px !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button {
  width: calc(100% - 32px) !important;
  height: 46px !important;
  min-height: 46px !important;
  margin: 0 16px 8px !important;
  padding: 0 16px !important;
  font-size: 0.94rem !important;
  font-weight: 600 !important;
  border-radius: 11px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  transition: all 160ms ease !important;
  cursor: pointer !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-primary {
  background: linear-gradient(135deg, #6d1f6c 0%, #4a1349 100%) !important;
  border: 0 !important;
  color: #fff !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.12) inset,
    0 4px 14px -3px rgba(109, 31, 108, 0.45) !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-primary:hover {
  transform: translateY(-1px) !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.2) inset,
    0 6px 20px -3px rgba(109, 31, 108, 0.60) !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-warning {
  background: #fff !important;
  border: 1.5px solid #f59e0b !important;
  color: #b45309 !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-warning:hover {
  background: #fffbeb !important;
  border-color: #d97706 !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > hr {
  border: 0 !important;
  border-top: 1px solid #f1f5f9 !important;
  margin: 8px 0 4px !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > .small {
  font-size: 0.78rem !important;
  color: #94a3b8 !important;
  padding: 0 18px !important;
  margin-bottom: 8px !important;
  line-height: 1.45 !important;
}

/* ── Departamentos vinculados na sidebar ── */
#view-operator #visible-queues-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 0 12px 12px !important;
  margin: 0 !important;
}
#view-operator .visible-queue-item {
  background: #fff !important;
  border: 1px solid #eef0f4 !important;
  border-radius: 9px !important;
  padding: 9px 11px !important;
  margin: 0 !important;
  transition: all 150ms ease !important;
  cursor: pointer !important;
  box-shadow: none !important;
  min-height: auto !important;
  height: auto !important;
  font-size: 0.84rem !important;
  color: #475569 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
}
#view-operator .visible-queue-item:hover {
  background: #faf5fa !important;
  border-color: #d8b4d7 !important;
  color: #6d1f6c !important;
  transform: translateX(2px) !important;
}
#view-operator .visible-queue-item.is-active,
#view-operator .visible-queue-item[aria-pressed="true"] {
  background: linear-gradient(135deg, #faf5fa 0%, #f5edf5 100%) !important;
  border-color: #6d1f6c !important;
  color: #6d1f6c !important;
  font-weight: 600 !important;
}

/* ── Main header: titulo + contador + Atualizar ── */
#view-operator .op-queue-columns {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)) !important;
  gap: 14px !important;
  margin-top: 10px !important;
}

/* ── Colunas das filas: visual mais elegante ── */
#view-operator .op-queue-column {
  border-radius: 16px !important;
  padding: 14px !important;
  border: 1.5px solid !important;
  position: relative !important;
}
/* NORMAL azul */
#view-operator .op-queue-column[style*="bfdbfe"],
#view-operator .op-queue-column[style*="eff6ff"] {
  background: linear-gradient(180deg, #eff6ff 0%, #ffffff 60%) !important;
  border-color: #bfdbfe !important;
  box-shadow: 0 2px 8px -2px rgba(37, 99, 235, 0.10) !important;
}
/* PREFERENCIAL amarelo */
#view-operator .op-queue-column[style*="fde68a"],
#view-operator .op-queue-column[style*="fffbeb"] {
  background: linear-gradient(180deg, #fffbeb 0%, #ffffff 60%) !important;
  border-color: #fde68a !important;
  box-shadow: 0 2px 8px -2px rgba(245, 158, 11, 0.14) !important;
}
/* AGENDAMENTO roxo */
#view-operator .op-queue-column[style*="ddd6fe"],
#view-operator .op-queue-column[style*="f5f3ff"] {
  background: linear-gradient(180deg, #f5f3ff 0%, #ffffff 60%) !important;
  border-color: #ddd6fe !important;
  box-shadow: 0 2px 8px -2px rgba(124, 58, 237, 0.12) !important;
}

/* Header da coluna (botao toggle) */
#view-operator .op-queue-column > button:first-child {
  background: #fff !important;
  border-radius: 12px !important;
  padding: 11px 14px !important;
  font-weight: 700 !important;
  margin-bottom: 12px !important;
  width: 100% !important;
  transition: all 150ms ease !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06) !important;
}
#view-operator .op-queue-column > button:first-child:hover {
  box-shadow: 0 3px 8px -2px rgba(15, 23, 42, 0.10) !important;
}
/* O number badge dentro do header */
#view-operator .op-queue-column > button:first-child span > span:first-child {
  font-size: 0.92rem !important;
  font-weight: 800 !important;
}

/* ── Empty state ── */
#view-operator .op-queue-column-body > div.small {
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1.5px dashed #cbd5e1 !important;
  border-radius: 12px !important;
  padding: 18px 14px !important;
  text-align: center !important;
  color: #94a3b8 !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
}

/* ── Cards de ticket: visual premium com codigo destacado ── */
#view-operator .op-queue-ticket {
  background: #fff !important;
  border-radius: 12px !important;
  padding: 14px !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06) !important;
  border: 1px solid #e5e7eb !important;
  transition: all 180ms ease !important;
  margin-bottom: 10px !important;
  position: relative !important;
  overflow: hidden !important;
}
#view-operator .op-queue-ticket:hover {
  box-shadow: 0 8px 20px -6px rgba(15, 23, 42, 0.16) !important;
  border-color: #cbd5e1 !important;
  transform: translateY(-2px) !important;
}
/* Border-left destacando cor da fila */
#view-operator .op-queue-column[style*="bfdbfe"] .op-queue-ticket,
#view-operator .op-queue-column[style*="eff6ff"] .op-queue-ticket {
  border-left: 5px solid #2563eb !important;
}
#view-operator .op-queue-column[style*="fde68a"] .op-queue-ticket,
#view-operator .op-queue-column[style*="fffbeb"] .op-queue-ticket {
  border-left: 5px solid #f59e0b !important;
}
#view-operator .op-queue-column[style*="ddd6fe"] .op-queue-ticket,
#view-operator .op-queue-column[style*="f5f3ff"] .op-queue-ticket {
  border-left: 5px solid #7c3aed !important;
}

/* Codigo da senha (primeiro <strong>) em destaque */
#view-operator .op-queue-ticket strong:first-of-type,
#view-operator .op-queue-ticket > div > strong:first-of-type {
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em !important;
  color: #0f172a !important;
  font-family: inherit !important;
}

/* ── Cards da fila compactos: só senha + nome + CPF; detalhes só ao chamar ── */
#view-operator .op-queue-ticket { padding: 11px 13px !important; margin-bottom: 8px !important; overflow: visible !important; }
/* Empilha: info (largura total) em cima, botões embaixo — evita espremer/cortar o nome */
#view-operator .op-queue-ticket > .flex.space-between { flex-direction: column !important; align-items: stretch !important; gap: 8px !important; }
#view-operator .op-queue-ticket > .flex.space-between > .flex { justify-content: flex-start; flex-wrap: wrap; gap: 6px; }
#view-operator .op-queue-ticket > .flex.space-between > .flex > .btn { flex: 1 1 auto; min-width: 88px; padding: 8px 10px !important; font-size: 0.8rem !important; }
#view-operator .op-queue-ticket.status-waiting::before,
#view-operator .op-queue-ticket.status-served::before,
#view-operator .op-queue-ticket.status-default::before { content: none !important; }
#view-operator .op-queue-ticket .opq-info { min-width: 0; flex: 1; }
#view-operator .op-queue-ticket .opq-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
#view-operator .op-queue-ticket .opq-senha { font-size: 0.98rem !important; font-weight: 800 !important; color: #0f172a !important; }
#view-operator .op-queue-ticket .opq-name { font-size: 0.82rem; font-weight: 600; color: #334155; margin-top: 2px; line-height: 1.3; word-break: break-word; }
#view-operator .op-queue-ticket .opq-dept { color: #94a3b8; font-weight: 500; }
#view-operator .op-queue-ticket .opq-cpf { font-size: 0.78rem; font-weight: 700; color: #475569; margin-top: 2px; }
#view-operator .op-queue-ticket .opq-details { margin-top: 7px; display: flex; flex-direction: column; gap: 1px; }
#view-operator .op-queue-ticket .opq-details small { font-size: 0.72rem; color: #94a3b8; line-height: 1.45; }
#view-operator .op-queue-ticket .opq-note { color: #e67e22 !important; }
#view-operator .op-queue-ticket .opq-callinfo { color: #2563eb !important; }

/* ── Senha em chamada (currentCard) ── */
#view-operator #op-current-call-card:not(.hidden) {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) !important;
  border: 2.5px solid #f59e0b !important;
  border-radius: 18px !important;
  padding: 20px 22px !important;
  margin-bottom: 18px !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,0.5) inset,
    0 12px 28px -8px rgba(245, 158, 11, 0.35) !important;
  animation: callPulse 2.4s ease-in-out infinite !important;
}
@keyframes callPulse {
  0%, 100% { box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset, 0 12px 28px -8px rgba(245, 158, 11, 0.35); }
  50%      { box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset, 0 16px 36px -8px rgba(245, 158, 11, 0.55); }
}

/* ── Botoes de acao em ticket ── */
#view-operator .op-queue-ticket .btn {
  padding: 8px 16px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  border-radius: 9px !important;
  min-height: 36px !important;
  transition: all 150ms ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  letter-spacing: -0.005em !important;
}
#view-operator .op-queue-ticket .btn.btn-primary {
  background: linear-gradient(135deg, #6d1f6c 0%, #4a1349 100%) !important;
  border: 0 !important;
  color: #fff !important;
  box-shadow: 0 2px 6px -1px rgba(109, 31, 108, 0.4) !important;
}
#view-operator .op-queue-ticket .btn.btn-primary:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px -2px rgba(109, 31, 108, 0.55) !important;
}
#view-operator .op-queue-ticket .btn.btn-warning {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
  border: 0 !important;
  color: #fff !important;
  box-shadow: 0 2px 6px -1px rgba(245, 158, 11, 0.4) !important;
}
#view-operator .op-queue-ticket .btn.btn-warning:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px -2px rgba(245, 158, 11, 0.55) !important;
}

/* ── Botao "Atualizar" do header da fila ── */
#view-operator > #operator-panel > div:nth-child(2) > div:first-child > div:first-child .btn,
#view-operator > #operator-panel > div:nth-child(2) > div:first-child > .flex .btn {
  padding: 8px 14px !important;
  border-radius: 9px !important;
  font-size: 0.84rem !important;
  font-weight: 600 !important;
}

/* ── Tipografia ── */
#view-operator h3, #view-operator h4 {
  color: #0f172a !important;
  letter-spacing: -0.01em !important;
  font-weight: 700 !important;
}

/* ── Scrollbar elegante ── */
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2)::-webkit-scrollbar { width: 6px; }
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2)::-webkit-scrollbar-thumb {
  background: #cbd5e1; border-radius: 3px;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2)::-webkit-scrollbar-thumb:hover { background: #94a3b8; }



/* ── Reabrir Senha: outline laranja com hover preenchido ── */
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-warning::before {
  content: "↺" !important;
  font-size: 1.05rem !important;
  margin-right: 6px !important;
  font-weight: 700 !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-warning {
  background: #fffbeb !important;
  border: 1.5px solid #fbbf24 !important;
  color: #b45309 !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em !important;
  box-shadow: 0 1px 2px rgba(245, 158, 11, 0.10) !important;
}
#view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) > button.btn-warning:hover {
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
  color: #fff !important;
  border-color: transparent !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px -2px rgba(245, 158, 11, 0.45) !important;
}

/* ── Departamentos Vinculados: cards mais elegantes ── */
#view-operator .visible-queue-item {
  background: #fff !important;
  border: 1px solid #eef0f4 !important;
  border-radius: 11px !important;
  padding: 11px 12px 11px 14px !important;
  margin: 0 !important;
  transition: all 180ms cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03) !important;
  min-height: auto !important;
  height: auto !important;
  position: relative !important;
  overflow: hidden !important;
  display: block !important;
}
/* Faixa lateral roxa sutil no hover */
#view-operator .visible-queue-item::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, #6d1f6c 0%, #4a1349 100%) !important;
  opacity: 0 !important;
  transition: opacity 180ms ease !important;
}
#view-operator .visible-queue-item:hover {
  background: linear-gradient(135deg, #faf5fa 0%, #fff 100%) !important;
  border-color: #d8b4d7 !important;
  transform: translateX(3px) !important;
  box-shadow: 0 4px 12px -4px rgba(109, 31, 108, 0.18) !important;
}
#view-operator .visible-queue-item:hover::before { opacity: 1 !important; }

/* Nome do departamento (strong) */
#view-operator .visible-queue-item > strong {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: #0f172a !important;
  letter-spacing: -0.005em !important;
  margin: 0 !important;
}
/* Contador (numero) como badge circular */
#view-operator .visible-queue-item > strong > span:last-child {
  background: #f1f5f9 !important;
  color: #475569 !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  min-width: 26px !important;
  height: 22px !important;
  padding: 0 8px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 180ms ease !important;
}
#view-operator .visible-queue-item:hover > strong > span:last-child {
  background: #6d1f6c !important;
  color: #fff !important;
}
/* Sigla (small) discreta */
#view-operator .visible-queue-item > .small {
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  color: #94a3b8 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  margin-top: 4px !important;
}



/* ── Input do guiche: largura suficiente pro placeholder ── */
#view-operator > #operator-panel > header #op-desk {
  width: 160px !important;
  min-width: 160px !important;
  flex-shrink: 0 !important;
  background: rgba(255, 255, 255, 0.16) !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  color: #fff !important;
  padding: 9px 12px !important;
  border-radius: 10px !important;
  font-size: 0.84rem !important;
  position: relative !important;
  z-index: 1 !important;
}
#view-operator > #operator-panel > header #op-desk::placeholder {
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 0.82rem !important;
}

/* Garantir que header permite wrap se NAO couber, sem cortar individual */
#view-operator > #operator-panel > header > div:last-child {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  flex: 1 1 auto !important;
  justify-content: flex-end !important;
}



/* ── Botao Sair: mais compacto ── */
#view-operator > #operator-panel > header button[onclick*="logout"] {
  padding: 8px 14px !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: 0 2px 6px -1px rgba(220, 38, 38, 0.35) !important;
  min-width: 0 !important;
  max-width: max-content !important;
  width: max-content !important;
  flex: 0 0 auto !important;
  flex-grow: 0 !important;
  flex-basis: auto !important;
  order: 99 !important;
  transition: all 160ms ease !important;
}
#view-operator > #operator-panel > header button[onclick*="logout"]:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 10px -2px rgba(220, 38, 38, 0.50) !important;
}

/* ── Mobile ── */
@media (max-width: 900px) {
  #view-operator > #operator-panel > div:nth-child(2) {
    grid-template-columns: 1fr !important;
  }
  #view-operator > #operator-panel > div:nth-child(2) > div:first-child { order: 2 !important; }
  #view-operator > #operator-panel > div:nth-child(2) > div:nth-child(2) {
    order: 1 !important;
    position: relative !important;
    max-height: none !important;
  }
}

/* ============================================================
   Ajustes de UX dos painéis internos — 2026-06-01
   (Regulação Assistencial intencionalmente fora do escopo)
   ============================================================ */

/* KPI/stat nunca exibe card vazio: mostra 0 quando o valor está em branco */
.rh-kpi-value:empty::after,
.rh-stat-value:empty::after { content: "0"; }

/* Reserva espaço inferior pros widgets flutuantes (sino de notificações e
   acessibilidade) não cobrirem o conteúdo no canto inferior direito */
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario)
    > .panel-container { padding-bottom: 104px; }

/* Importação RH: mantém a frase do checkbox inteira numa linha só,
   em vez de picá-la no meio entre o seletor de arquivo e o botão */
#view-rh label:has(> #rh-import-clear-prev) { white-space: nowrap; flex-shrink: 0; }

/* ============================================================
   Padronização dos painéis internos — 2026-06-01
   (1) Tamanho/largura igual em todos
   (2) Tabelas com acabamento consistente
   (Regulação Assistencial intencionalmente fora do escopo)
   ============================================================ */

/* (1) TAMANHO: todos os painéis com a mesma largura máxima, centralizados
   e com o mesmo padding lateral (corrige Recepção 1320, Capacitação 1100, etc.) */
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container {
  max-width: 1500px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

/* (2) TABELAS: container arredondado, cabeçalho destacado, linhas separadas e hover */
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) table thead th {
  background: #faf5fa;
  color: var(--primary-dark);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 700;
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) table td {
  padding: 11px 14px;
  border-bottom: 1px solid #f1f5f9;
  font-size: .86rem;
}
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) table tbody tr:last-child td {
  border-bottom: none;
}
:is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio,
    #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao,
    #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) table tbody tr:hover td {
  background: #faf7fb;
}

/* (3) TAMANHO igual também para: Regulação Assistencial, Kanban e Faturamento.
   reg-shell era 1540, reg-task-shell (kanban) era 1840, faturamento full-width —
   todos passam para a mesma largura padrão (1500, centralizados, gap lateral de 32). */
#view-regulacao .reg-shell,
#view-regulacao .reg-task-shell {
  width: min(1500px, calc(100vw - 64px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
#view-faturamento > div {
  max-width: 1500px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  box-sizing: border-box !important;
}

/* ============================================================
   Cabeçalho da Regulação (assistencial + kanban) no roxo padrão
   — era roxo→azul (#124c8a); passa ao mesmo gradiente dos demais painéis.
   ============================================================ */
#view-regulacao .reg-header {
  background:
    radial-gradient(circle at 85% -40%, rgba(230, 184, 0, 0.28), transparent 42%),
    linear-gradient(125deg, var(--primary-dark) 0%, var(--primary) 56%, var(--primary-light) 100%) !important;
}

/* ============================================================
   Transição entre painéis mais fluida.
   A infra já existe (switchView adiciona .is-entering em cada troca e
   respeita "reduzir movimento"); aqui só suavizamos duração/easing/curva.
   ============================================================ */
.view-section.active.is-entering {
  animation: panel-enter-smooth .42s cubic-bezier(.22, 1, .36, 1) !important;
}
@keyframes panel-enter-smooth {
  from { opacity: 0; transform: translateY(14px) scale(0.99); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ============================================================
   Mobile (<=640px): visual app-like nos painéis do Motorista,
   Servidor (acesso do motorista) e Paciente (portal).
   ============================================================ */
@media (max-width: 640px) {
  /* Motorista + Servidor — cabeçalho compacto e botões uniformes */
  :is(#view-driver, #view-servidor) > .panel-container { padding: 12px !important; }
  :is(#view-driver, #view-servidor) > .panel-container > header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    padding: 16px 16px 14px !important;
    border-radius: 16px !important;
    margin-bottom: 14px !important;
  }
  :is(#view-driver, #view-servidor) > .panel-container > header h2 { font-size: 1.18rem !important; }
  :is(#view-driver, #view-servidor) > .panel-container > header > div:last-child,
  #view-servidor .intranet-header-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 0 !important;
  }
  :is(#view-driver, #view-servidor) > .panel-container > header .btn,
  #view-servidor .intranet-header-actions .btn {
    width: 100% !important;
    padding: 11px 8px !important;
    font-size: 0.88rem !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
  }
  :is(#view-driver, #view-servidor) .card { padding: 15px !important; border-radius: 14px !important; }
  /* tabelas roláveis horizontalmente em vez de espremer/cortar */
  :is(#view-driver, #view-servidor) table {
    display: block !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch;
  }

  /* Paciente (portal) — cabeçalho mais limpo, sem e-mail estourando */
  #view-portal > .panel-container { padding: 12px !important; }
  #view-portal > .panel-container > header,
  #view-portal .portal-header {
    padding: 16px !important;
    border-radius: 16px !important;
  }
  #view-portal [id="portal-user-info"] span { word-break: break-word !important; }
  #view-portal .card { padding: 15px !important; border-radius: 14px !important; }
}

/* ============================================================
   Portal do Paciente — cards branco puro destacados sobre o fundo
   colorido (mesmo padrão visual da Regulação Assistencial), mais
   intuitivo. Vale em todas as larguras.
   ============================================================ */
#view-portal .card,
#view-portal .portal-collapsible-card {
  background: #fff !important;
  border: 1px solid #e9e1eb !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 16px rgba(76, 21, 80, 0.07) !important;
}
#view-portal .portal-calendar-day {
  border-radius: 10px !important;
  transition: background .15s ease, transform .15s ease !important;
}
#view-portal .portal-calendar-day:not(.is-empty):hover {
  background: #f3e8f3 !important;
  transform: translateY(-1px) !important;
}

/* ============================================================
   Fluxo de atendimento da UBS (Fase 2) — board + cores de risco
   ============================================================ */
#view-ubs-clinical .ubs-flow-board {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 16px !important;
}
.ubs-flow-col {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 12px 12px 14px;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}
.ubs-flow-col > header {
  display: flex; justify-content: space-between; align-items: center;
  font-weight: 700; color: var(--primary-dark);
  margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid #f0e9f1;
}
.ubs-flow-col > header span {
  background: #f1f5f9; color: #475569; border-radius: 999px;
  padding: 1px 9px; font-size: .78rem; font-weight: 700;
}
.ubs-flow-col-body { display: flex; flex-direction: column; gap: 10px; min-height: 56px; }
.ubs-flow-card {
  background: #fff; border: 1px solid #eef0f4; border-left: 4px solid #cbd5e1;
  border-radius: 10px; padding: 11px 13px;
}
.ubs-flow-card > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.ubs-flow-card > header strong { font-size: .92rem; color: #0f172a; }
.ubs-flow-risco { font-size: .67rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.ubs-flow-card-actions { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.ubs-flow-triagem-resumo { background: #f8fafc; border: 1px solid #eef0f4; border-radius: 8px; padding: 8px 10px; margin-bottom: 12px; }
/* cores de risco (classificacao Manchester / MS) */
.risco-vermelho { background: #fee2e2; color: #b91c1c; }  .ubs-flow-card-risco-vermelho { border-left-color: #dc2626; }
.risco-laranja  { background: #ffedd5; color: #c2410c; }  .ubs-flow-card-risco-laranja  { border-left-color: #f97316; }
.risco-amarelo  { background: #fef9c3; color: #a16207; }  .ubs-flow-card-risco-amarelo  { border-left-color: #eab308; }
.risco-verde    { background: #dcfce7; color: #15803d; }  .ubs-flow-card-risco-verde    { border-left-color: #22c55e; }
.risco-azul     { background: #dbeafe; color: #1d4ed8; }  .ubs-flow-card-risco-azul     { border-left-color: #3b82f6; }
.risco-na       { background: #f1f5f9; color: #64748b; }  .ubs-flow-card-risco-na       { border-left-color: #cbd5e1; }

/* ===== Kanban Regulação — protocolo compacto + modais mais largos no desktop ===== */
.reg-task-protocol { font-size: 10px !important; padding: 1px 6px !important; opacity: .85; }
.reg-task-protocol i, .reg-task-protocol svg { width: 11px !important; height: 11px !important; }
.reg-task-protocol-banner { padding: 6px 10px !important; }
.reg-task-protocol-banner strong { font-size: 12px !important; }
@media (min-width: 769px) {
  #reg-modal .modal-box { max-width: 780px !important; width: 92% !important; }
  #ubs-clinical-modal .modal-box, .ubs-clinical-modal-box { max-width: 1180px !important; width: 96% !important; }
}

/* ===== Kanban — card minimalista + modal tratar ===== */
.reg-task-card-min { display:flex; flex-direction:column; gap:8px; align-items:stretch; }
.reg-task-card-min .reg-task-min-date { display:flex; align-items:center; gap:5px; font-size:11px; color:#64748b; }
.reg-task-card-min .reg-task-min-date svg, .reg-task-card-min .reg-task-min-date i { width:12px; height:12px; }
.reg-task-card-min .reg-task-open-btn { width:100%; justify-content:center; margin-top:2px; }
.reg-treat-info { background:#faf7fb; border:1px solid #ece6ee; border-radius:8px; padding:10px 12px; margin-bottom:10px; }
.reg-treat-actions { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }

/* ===== Kanban — admin de categorias/SLA (layout limpo + edição) ===== */
.reg-cat-panel { max-width:100%; padding:4px 2px; }
.reg-cat-intro { margin:0 0 14px; color:#64748b; font-size:13px; }
.reg-cat-panel input { padding:8px 11px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; box-sizing:border-box; }
.reg-cat-panel input:focus { outline:none; border-color:#8b5cf6; box-shadow:0 0 0 3px rgba(139,92,246,.12); }
.reg-cat-newform { display:flex; gap:8px; align-items:center; margin:0 0 16px; }
.reg-cat-newform input { flex:1; }
.reg-cat-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:14px; align-items:start; }
.reg-cat-item { border:1px solid #e8eaf0; border-radius:12px; padding:14px 16px; background:#fff; }
.reg-cat-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.reg-cat-head strong { font-size:.98rem; color:#0f172a; }
.reg-cat-headacts, .reg-cat-subacts { display:inline-flex; gap:4px; flex:0 0 auto; }
.reg-cat-iconbtn { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid #e2e8f0; background:#fff; border-radius:8px; color:#64748b; cursor:pointer; transition:all .12s; }
.reg-cat-iconbtn:hover { border-color:#cbd5e1; color:#0f172a; background:#f8fafc; }
.reg-cat-iconbtn svg, .reg-cat-iconbtn i { width:14px; height:14px; }
.reg-cat-subs { display:grid; gap:6px; margin:12px 0; }
.reg-cat-subrow { display:flex; align-items:center; gap:10px; padding:8px 11px; background:#fff; border:1px solid #ececf2; border-radius:9px; }
.reg-cat-subname { font-weight:600; font-size:13px; color:#0f172a; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reg-cat-slatag { font-size:11px; font-weight:800; color:#6d28d9; background:#f3effe; padding:2px 9px; border-radius:999px; white-space:nowrap; }
.reg-cat-empty { color:#94a3b8; font-size:12.5px; padding:6px 2px; }
.reg-cat-subform { display:flex; gap:8px; align-items:center; margin-top:12px; padding-top:12px; border-top:1px dashed #eef1f6; }
.reg-cat-subform input:first-of-type { flex:1; }
.reg-cat-subform input[type=number] { width:110px; flex:0 0 auto; }
.reg-cat-editform { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
/* evita campos "vazando" do card: inputs sem a margem global e sem encolher abaixo de 0 */
.reg-cat-panel input, .reg-cat-panel select { margin:0; min-width:0; }
.reg-cat-subform, .reg-cat-newform { flex-wrap:wrap; }
.reg-cat-subrow { flex-wrap:wrap; }
.reg-cat-editform input { min-width:0; }
/* tabela de campos do construtor de formulário: rola na horizontal se faltar espaço, sem estourar o modal */
#reg-modal #fb-fields { overflow-x:auto; }
#reg-modal .reg-fb-table input, #reg-modal .reg-fb-table select { margin:0; }
.reg-cat-iconbtn.has-form { color:#6d28d9; border-color:#e9d5ff; background:#f3effe; }
.reg-cat-iconbtn.has-form:hover { background:#ede4ff; }
/* Anexos múltiplos (stage antes de enviar) */
#reg-modal .reg-task-staged-list:not(:empty) { display:flex; flex-direction:column; gap:8px; margin:10px 0 12px; }
#reg-modal .reg-task-staged-head { font-size:12px; font-weight:800; color:#475569; display:flex; align-items:center; gap:6px; margin-bottom:2px; }
#reg-modal .reg-task-staged-head svg, #reg-modal .reg-task-staged-head i { width:14px; height:14px; color:#94a3b8; }
#reg-modal .reg-task-staged-item { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid #e6e9f0; border-radius:10px; padding:8px 10px; }
#reg-modal .reg-task-staged-icon { width:34px; height:34px; border-radius:8px; background:#f3effe; color:#6d28d9; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
#reg-modal .reg-task-staged-icon svg, #reg-modal .reg-task-staged-icon i { width:17px; height:17px; }
#reg-modal .reg-task-staged-info { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
#reg-modal .reg-task-staged-info strong { font-size:13px; color:#1e293b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#reg-modal .reg-task-staged-info small { font-size:11.5px; color:#94a3b8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#reg-modal .reg-task-attachment-add { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:4px; }
#reg-modal .reg-task-link-add { display:flex; flex-wrap:wrap; gap:8px; align-items:center; flex:1; min-width:240px; }
#reg-modal .reg-task-link-add input { margin:0; min-width:0; flex:1 1 140px; }
.reg-cat-editform input:first-of-type { flex:1; }
.reg-cat-editform input[type=number] { width:110px; flex:0 0 auto; }

/* Trava o scroll do fundo enquanto um modal da regulação está aberto (centraliza sem desvio da barra de rolagem) */
body.reg-modal-open { overflow: hidden; }

/* ===== Modal "tratar tarefa" — info mais legível ===== */
#view-regulacao .reg-treat-info, #reg-modal .reg-treat-info { background:#f8fafc; border:1px solid #eef1f6; border-radius:12px; padding:14px 16px; margin-bottom:14px; }
.reg-treat-title { font-size:1rem; font-weight:800; color:#0f172a; line-height:1.3; margin-bottom:8px; }
.reg-treat-meta { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.reg-treat-chip { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; color:#475569; background:#fff; border:1px solid #e2e8f0; border-radius:999px; padding:3px 10px; }
.reg-treat-chip svg, .reg-treat-chip i { width:12px; height:12px; }
.reg-treat-chip.is-overdue { background:#fee2e2; color:#b91c1c; border-color:#fecaca; }
.reg-treat-desc { white-space:pre-line; background:#fff; border:1px solid #eef1f6; border-radius:8px; padding:10px 12px; font-size:13px; color:#334155; line-height:1.5; margin:0 0 10px; }
.reg-treat-updated { font-size:11.5px; color:#94a3b8; }

/* ===== Modal "Agendamentos da Recepção" — layout alinhado ===== */
#modal-reception-appointments .rec-appt-header { margin-bottom: 14px; }
#modal-reception-appointments .rec-appt-header h3 { font-size: 1.15rem; font-weight: 800; color: #0f172a; }
#modal-reception-appointments .rec-appt-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid #eef1f6; }
#modal-reception-appointments .rec-appt-field { display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: 12px; font-weight: 700; color: #475569; }
#modal-reception-appointments .rec-appt-field input { margin: 0; padding: 8px 10px; border: 1px solid #e2e8f0; border-radius: 8px; font-size: 13px; box-sizing: border-box; }
#modal-reception-appointments .rec-appt-field input[type="text"] { width: 190px; }
#modal-reception-appointments .rec-appt-field input[type="date"] { width: 165px; }
#modal-reception-appointments .rec-appt-search { min-height: 38px; }
#modal-reception-appointments .rec-appt-count { margin-left: auto; color: #64748b; white-space: nowrap; align-self: center; }
#modal-reception-appointments .rec-appt-table-wrap { overflow: auto; max-height: 65vh; }
#modal-reception-appointments #reception-report-table { width: 100%; }
@media (max-width: 640px) {
  #modal-reception-appointments .rec-appt-field input[type="text"],
  #modal-reception-appointments .rec-appt-field input[type="date"] { width: 100%; }
  #modal-reception-appointments .rec-appt-field { flex: 1 1 100%; }
  #modal-reception-appointments .rec-appt-count { margin-left: 0; flex-basis: 100%; }
}

/* ===== Modal "Histórico de Senhas" (operador) ===== */
#modal-op-history .op-hist-header { margin-bottom: 14px; }
#modal-op-history .op-hist-header h3 { font-size: 1.15rem; font-weight: 800; color: #0f172a; }
#modal-op-history .op-hist-searchbar { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid #eef1f6; }
#modal-op-history .op-hist-searchbar input { flex: 1; margin: 0; padding: 9px 11px; border: 1px solid #e2e8f0; border-radius: 8px; font-size: 13px; box-sizing: border-box; }
#modal-op-history .op-hist-searchbar input:focus { outline: none; border-color: #8b5cf6; box-shadow: 0 0 0 3px rgba(139,92,246,.12); }
#modal-op-history .op-hist-list { max-height: 56vh; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; }
#modal-op-history .op-hist-footer { display: flex; justify-content: flex-end; margin-top: 14px; }
#modal-op-history .op-hist-card { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; text-align: left; padding: 12px 14px; margin: 0; }
#modal-op-history .op-hist-main { flex: 1; min-width: 0; text-align: left; }
#modal-op-history .op-hist-title { font-size: 0.95rem; color: #0f172a; }
#modal-op-history .op-hist-dept { color: #94a3b8; font-weight: 500; }
#modal-op-history .op-hist-cpf { font-size: 0.8rem; font-weight: 700; color: #475569; margin-top: 2px; }
#modal-op-history .op-hist-lines { display: flex; flex-direction: column; gap: 1px; margin-top: 6px; }
#modal-op-history .op-hist-lines span { font-size: 0.74rem; color: #94a3b8; line-height: 1.45; }
#modal-op-history .op-hist-note { color: #e67e22 !important; }
#modal-op-history .op-hist-call { color: #2563eb !important; }
#modal-op-history .op-hist-fin { color: #16a34a !important; }
#modal-op-history .op-hist-status { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 0 0 auto; }
#modal-op-history .op-hist-status-badge { font-size: 11px; font-weight: 800; padding: 3px 9px; border-radius: 999px; background: #e2e8f0; color: #475569; white-space: nowrap; }
#modal-op-history .op-hist-status-closed { background: #e2e8f0; color: #475569; }
#modal-op-history .op-hist-status-served { background: #dbeafe; color: #1e40af; }
#modal-op-history .op-hist-status-waiting { background: #fef9c3; color: #854d0e; }

/* ===== Comemoração de aniversário ===== */
.birthday-banner {
  position: fixed; top: 18px; left: 50%; transform: translate(-50%, -150%);
  z-index: 100000; display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 22px; border-radius: 999px;
  background: linear-gradient(135deg, #7c3aed 0%, #db2777 50%, #f59e0b 100%);
  color: #fff; font-weight: 800; font-size: 1rem;
  box-shadow: 0 12px 30px -8px rgba(124, 58, 237, 0.5);
  opacity: 0; transition: transform .5s cubic-bezier(.2,.8,.2,1), opacity .5s; white-space: nowrap;
  pointer-events: none;
}
.birthday-banner.show { transform: translate(-50%, 0); opacity: 1; }
.birthday-banner .bd-emoji { font-size: 1.2rem; display: inline-block; animation: bdBounce 1s ease-in-out infinite; }
@keyframes bdBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@media (max-width:640px){ .birthday-banner { font-size:.85rem; padding:10px 16px; white-space:normal; max-width:92vw; text-align:center; } }

/* ===== Dashboard do Kanban — filtros + comparativo mensal ===== */
.reg-task-dashboard-filters { display:flex; gap:10px; flex-wrap:wrap; }
.reg-task-dashboard-filter { display:flex; flex-direction:column; gap:4px; }
.reg-task-dashboard-filter > span { display:flex; align-items:center; gap:5px; font-size:.72rem; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.02em; }
.reg-task-dashboard-filter > span i { width:14px; height:14px; }
.reg-task-dashboard-filter select { border:1px solid var(--border,#e2e8f0); border-radius:9px; padding:8px 12px; font-size:.85rem; background:#fff; color:#0f172a; min-width:190px; font-weight:600; }
.reg-task-dashboard-monthly { margin-bottom:16px; }
.monthly-card { padding:16px 18px; }
.monthly-card > header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:14px; }
.monthly-card > header strong { font-size:1rem; color:#1e293b; }
.monthly-card > header span { font-size:.76rem; color:#94a3b8; }
.reg-mc-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:14px; }
.reg-mc-metric { background:#f8fafc; border:1px solid #eef2f7; border-radius:12px; padding:12px 14px; }
.reg-mc-metric-label { display:flex; align-items:center; gap:6px; font-size:.74rem; font-weight:700; color:#475569; }
.reg-mc-metric-value { display:flex; align-items:center; gap:10px; margin:6px 0 2px; }
.reg-mc-metric-value strong { font-size:1.7rem; line-height:1; color:#0f172a; }
.reg-mc-metric small { font-size:.72rem; color:#94a3b8; }
.reg-mc-dot { display:inline-block; width:10px; height:10px; border-radius:3px; }
.reg-mc-dot-created { background:#6d28d9; }
.reg-mc-dot-done { background:#16a34a; }
.reg-delta { display:inline-flex; align-items:center; gap:3px; font-size:.78rem; font-weight:800; padding:2px 8px; border-radius:999px; }
.reg-delta i { width:14px; height:14px; }
.reg-delta small { font-weight:600; opacity:.85; }
.reg-delta-up { background:#dcfce7; color:#15803d; }
.reg-delta-down { background:#fee2e2; color:#b91c1c; }
.reg-delta-flat { background:#f1f5f9; color:#64748b; }
.reg-mc-svg { width:100%; max-width:none; height:auto; display:block; margin:0 auto; }
.monthly-card { display:flex; flex-direction:column; }
.monthly-card .reg-mc { flex:1; display:flex; flex-direction:column; justify-content:center; }
.reg-mc-grid { stroke:#eef2f7; stroke-width:1; }
.reg-mc-baseline { stroke:#cbd5e1; stroke-width:1.5; }
.reg-mc-axis { fill:#94a3b8; font-size:10px; }
.reg-mc-month.is-current { fill:#6d28d9; font-weight:800; }
.reg-mc-bar { transition:opacity .15s; }
.reg-mc-bar:hover { opacity:.8; }
.reg-mc-created { fill:#a78bfa; }
.reg-mc-created.is-current { fill:#6d28d9; }
.reg-mc-done { fill:#86efac; }
.reg-mc-done.is-current { fill:#16a34a; }
.reg-mc-legend { display:flex; gap:18px; justify-content:center; margin-top:10px; }
.reg-mc-legend span { display:flex; align-items:center; gap:6px; font-size:.78rem; color:#475569; font-weight:600; }
@media (max-width:640px){ .reg-mc-summary { grid-template-columns:1fr; } }

/* ===== Kanban — layout do quadro aprimorado ===== */
#view-regulacao .reg-kanban-column { position:relative; background:#fbfafc; border:1px solid #ece6f0; border-radius:12px; padding:14px 12px 12px; }
#view-regulacao .reg-kanban-column::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; border-radius:12px 12px 0 0; background:#cbd5e1; }
#view-regulacao .reg-kanban-column[data-status="todo"]::before { background:#94a3b8; }
#view-regulacao .reg-kanban-column[data-status="doing"]::before { background:#3b82f6; }
#view-regulacao .reg-kanban-column[data-status="done"]::before { background:#16a34a; }
#view-regulacao .reg-kanban-column[data-status="pending"]::before { background:#f59e0b; }
#view-regulacao .reg-kanban-column > header strong { display:flex; align-items:center; gap:7px; font-size:.92rem; font-weight:800; }
#view-regulacao .reg-kanban-column > header strong::before { content:""; width:9px; height:9px; border-radius:3px; background:#cbd5e1; }
#view-regulacao .reg-kanban-column[data-status="todo"] > header strong::before { background:#94a3b8; }
#view-regulacao .reg-kanban-column[data-status="doing"] > header strong::before { background:#3b82f6; }
#view-regulacao .reg-kanban-column[data-status="done"] > header strong::before { background:#16a34a; }
#view-regulacao .reg-kanban-column[data-status="pending"] > header strong::before { background:#f59e0b; }
#view-regulacao .reg-kanban-column > header span { background:#eef2f7; color:#475569; }
#view-regulacao .reg-kanban-column[data-status="doing"] > header span { background:#dbeafe; color:#1e40af; }
#view-regulacao .reg-kanban-column[data-status="done"] > header span { background:#dcfce7; color:#15803d; }
#view-regulacao .reg-kanban-column[data-status="pending"] > header span { background:#fef3c7; color:#92400e; }

#view-regulacao .reg-task-card-min { border:1px solid #e8eaf0; border-left:4px solid #94a3b8; border-radius:10px; padding:11px 12px; box-shadow:0 2px 6px rgba(15,23,42,.05); transition:transform .12s, box-shadow .12s; gap:9px; }
#view-regulacao .reg-task-card-min:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(15,23,42,.10); }
#view-regulacao .reg-task-card-doing { border-left-color:#3b82f6; }
#view-regulacao .reg-task-card-done { border-left-color:#16a34a; opacity:.92; }
#view-regulacao .reg-task-card-pending { border-left-color:#f59e0b; }
#view-regulacao .reg-task-card-min.is-overdue { border-left-color:#dc2626; background:#fff8f5; }
#view-regulacao .reg-task-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
#view-regulacao .reg-task-card-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; }
#view-regulacao .reg-task-card-min .reg-task-min-date { display:inline-flex; align-items:center; gap:5px; font-size:11px; color:#64748b; margin:0; }
#view-regulacao .reg-task-card-min .reg-task-min-date svg, #view-regulacao .reg-task-card-min .reg-task-min-date i { width:12px; height:12px; }
#view-regulacao .reg-task-prio { font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:2px 7px; border-radius:999px; background:#eef2f7; color:#475569; white-space:nowrap; }
#view-regulacao .reg-task-prio-baixa { background:#dcfce7; color:#15803d; }
#view-regulacao .reg-task-prio-normal { background:#dbeafe; color:#1e40af; }
#view-regulacao .reg-task-prio-alta { background:#ffedd5; color:#9a3412; }
#view-regulacao .reg-task-prio-urgente { background:#fee2e2; color:#b91c1c; }
#view-regulacao .reg-task-avatar-sm { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:#6d28d9; color:#fff; font-size:9.5px; font-weight:800; }
#view-regulacao .reg-task-overdue-tag { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:800; color:#b91c1c; }
#view-regulacao .reg-task-overdue-tag svg, #view-regulacao .reg-task-overdue-tag i { width:12px; height:12px; }
#view-regulacao .reg-task-open-btn { width:100%; justify-content:center; gap:5px; }
#view-regulacao .reg-task-open-btn svg, #view-regulacao .reg-task-open-btn i { width:14px; height:14px; }
#view-regulacao .reg-task-card-done .reg-task-open-btn { background:#0f172a; }

/* ===== Coluna "Transferidas" — acompanhamento de tarefas enviadas a outro departamento ===== */
#view-regulacao .reg-kanban-column-transferred { background:#f8fafc; border:1px dashed #cbd5e1; }
#view-regulacao .reg-kanban-column-transferred > header strong { display:inline-flex; align-items:center; gap:6px; color:#7c3aed; }
#view-regulacao .reg-kanban-column-transferred > header strong svg, #view-regulacao .reg-kanban-column-transferred > header strong i { width:14px; height:14px; }
#view-regulacao .reg-task-card-transferred { border-left-color:#7c3aed; cursor:default; }
#view-regulacao .reg-task-card-transferred:hover { transform:none; box-shadow:0 2px 6px rgba(15,23,42,.05); }
#view-regulacao .reg-task-transferred-title { font-size:12px; font-weight:600; color:#0f172a; line-height:1.3; }
#view-regulacao .reg-task-transferred-dest { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:#7c3aed; }
#view-regulacao .reg-task-transferred-dest svg, #view-regulacao .reg-task-transferred-dest i { width:12px; height:12px; }
#view-regulacao .reg-task-status-pill { font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:2px 7px; border-radius:999px; background:#eef2f7; color:#475569; white-space:nowrap; }
#view-regulacao .reg-task-status-pill.reg-task-status-doing { background:#dbeafe; color:#1e40af; }
#view-regulacao .reg-task-status-pill.reg-task-status-done { background:#dcfce7; color:#15803d; }
#view-regulacao .reg-task-status-pill.reg-task-status-pending { background:#fef3c7; color:#92400e; }
#view-regulacao .reg-task-status-pill.reg-task-status-todo { background:#e2e8f0; color:#475569; }

/* ===== Kanban — melhorias visuais (título, prazo, prioridade, filtros, WIP, drag&drop) ===== */
/* V1 — título no card */
#view-regulacao .reg-task-card-title { font-size:12.5px; font-weight:700; color:#0f172a; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* categoria no card */
#view-regulacao .reg-task-card-cat { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:700; color:#6d28d9; background:#f3effe; padding:2px 7px; border-radius:6px; align-self:flex-start; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#view-regulacao .reg-task-card-cat svg, #view-regulacao .reg-task-card-cat i { width:11px; height:11px; flex:0 0 auto; }
/* V2 — prazo com contagem regressiva */
#view-regulacao .reg-task-due { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; padding:2px 7px; border-radius:6px; align-self:flex-start; background:#eef2f7; color:#475569; }
#view-regulacao .reg-task-due svg, #view-regulacao .reg-task-due i { width:12px; height:12px; }
#view-regulacao .reg-task-due-soon { background:#fef3c7; color:#92400e; }
#view-regulacao .reg-task-due-overdue { background:#fee2e2; color:#b91c1c; }
#view-regulacao .reg-task-due-done { background:#dcfce7; color:#15803d; }
/* V3 — borda esquerda por prioridade (atrasada continua vermelha via is-overdue) */
#view-regulacao .reg-task-card-prio-baixa { border-left-color:#94a3b8; }
#view-regulacao .reg-task-card-prio-normal { border-left-color:#3b82f6; }
#view-regulacao .reg-task-card-prio-alta { border-left-color:#f59e0b; }
#view-regulacao .reg-task-card-prio-urgente { border-left-color:#dc2626; }
/* V5 — nome do responsável + aviso sem responsável */
#view-regulacao .reg-task-min-assignee { display:inline-flex; align-items:center; gap:5px; font-size:11px; color:#475569; font-weight:600; }
#view-regulacao .reg-task-assignee-name { max-width:96px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#view-regulacao .reg-task-noassignee { color:#b91c1c; font-weight:700; }
#view-regulacao .reg-task-noassignee svg, #view-regulacao .reg-task-noassignee i { width:13px; height:13px; }
/* V4 — estado vazio acionável */
#view-regulacao .reg-empty-add { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; padding:10px; border:1.5px dashed #c4b5fd; border-radius:10px; background:transparent; color:#6d28d9; font-weight:700; font-size:12px; cursor:pointer; transition:background .12s, border-color .12s; }
#view-regulacao .reg-empty-add:hover { background:#f3effe; border-color:#8b5cf6; }
#view-regulacao .reg-empty-add svg, #view-regulacao .reg-empty-add i { width:14px; height:14px; }
#view-regulacao .reg-empty-drop { border:1.5px dashed #e2e8f0; border-radius:10px; padding:14px 8px; text-align:center; color:#94a3b8; font-size:11.5px; }
/* V6 — limite WIP da coluna "Em andamento" */
#view-regulacao .reg-kanban-column.is-over-wip { border-color:#fca5a5; }
#view-regulacao .reg-kanban-column.is-over-wip > header span { background:#fee2e2 !important; color:#b91c1c !important; }
#view-regulacao .reg-wip-hint { display:flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700; color:#b91c1c; background:#fef2f2; border-radius:6px; padding:4px 8px; margin-bottom:8px; }
#view-regulacao .reg-wip-hint svg, #view-regulacao .reg-wip-hint i { width:12px; height:12px; }
/* O6 — filtros rápidos */
#view-regulacao .reg-task-filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
#view-regulacao .reg-task-filter-chip { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; padding:6px 12px; border-radius:999px; border:1px solid #e2e8f0; background:#fff; color:#475569; cursor:pointer; transition:background .12s, border-color .12s, color .12s; }
#view-regulacao .reg-task-filter-chip:hover { border-color:#cbd5e1; }
#view-regulacao .reg-task-filter-chip.active { background:#6d28d9; border-color:#6d28d9; color:#fff; }
#view-regulacao .reg-task-filter-chip svg, #view-regulacao .reg-task-filter-chip i { width:13px; height:13px; }
#view-regulacao .reg-task-filter-prio { display:inline-flex; align-items:center; gap:5px; font-size:12px; color:#475569; }
#view-regulacao .reg-task-filter-prio svg, #view-regulacao .reg-task-filter-prio i { width:13px; height:13px; }
#view-regulacao .reg-task-filter-prio select { padding:5px 8px; border-radius:8px; border:1px solid #e2e8f0; font-size:12px; background:#fff; }
#view-regulacao .reg-task-filter-clear { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; color:#b91c1c; background:none; border:none; cursor:pointer; }
#view-regulacao .reg-task-filter-clear svg, #view-regulacao .reg-task-filter-clear i { width:13px; height:13px; }
#view-regulacao .reg-task-search { flex:1 1 220px; min-width:180px; padding:7px 11px; border:1px solid #e2e8f0; border-radius:8px; font-size:12.5px; box-sizing:border-box; }
#view-regulacao .reg-task-search:focus { outline:none; border-color:#8b5cf6; box-shadow:0 0 0 3px rgba(139,92,246,.12); }
#view-regulacao .reg-agenda-histsearch { margin-bottom:12px; }
#view-regulacao .reg-agenda-histsearch input { width:100%; max-width:380px; padding:8px 11px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; box-sizing:border-box; }
#view-regulacao .reg-agenda-histsearch input:focus { outline:none; border-color:#8b5cf6; box-shadow:0 0 0 3px rgba(139,92,246,.12); }
/* O1 — arrastar e soltar */
#view-regulacao .reg-task-card-min[draggable="true"] { cursor:grab; }
#view-regulacao .reg-task-card-min.dragging { opacity:.45; cursor:grabbing; }
#view-regulacao .reg-kanban-column.drop-target { outline:2px dashed #8b5cf6; outline-offset:-4px; background:#faf7ff; }

/* ===== Painel Abertura de Agenda ===== */
#view-regulacao .reg-agenda { display:grid; gap:16px; }
#view-regulacao .reg-subtabs { display:flex; gap:8px; border-bottom:1px solid #e8eaf0; }
#view-regulacao .reg-subtab { display:inline-flex; align-items:center; gap:6px; background:none; border:none; border-bottom:3px solid transparent; padding:8px 12px; font-size:13px; font-weight:700; color:#64748b; cursor:pointer; }
#view-regulacao .reg-subtab:hover { color:#0f172a; }
#view-regulacao .reg-subtab.active { color:#6d28d9; border-bottom-color:#6d28d9; }
#view-regulacao .reg-subtab svg, #view-regulacao .reg-subtab i { width:15px; height:15px; }
#view-regulacao .reg-agenda-form { background:#fff; border:1px solid #e8eaf0; border-radius:12px; padding:16px 18px; }
#view-regulacao .reg-agenda-form p.small { margin:0 0 12px; color:#64748b; }
#view-regulacao .reg-agenda-rows-head { font-weight:800; font-size:.9rem; margin:6px 0 8px; }
#view-regulacao .reg-agenda-rows-scroll { overflow-x:auto; }
#view-regulacao .reg-agenda-rows th { font-size:11px; color:#64748b; text-align:left; }
#view-regulacao .reg-agenda-rows td { padding:4px 6px 4px 0; vertical-align:middle; }
#view-regulacao .reg-agenda-rows input { width:100%; min-width:120px; padding:7px 8px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; box-sizing:border-box; }
#view-regulacao .reg-agenda-rows input[type="time"] { min-width:108px; }
#view-regulacao .reg-agenda-days-btn { white-space:nowrap; }
#view-regulacao .reg-agenda-days-btn.has-days { background:#f3effe; color:#6d28d9; border-color:#c4b5fd; }
#view-regulacao .reg-agenda-addrow { margin:10px 0 4px; }
#view-regulacao .reg-agenda-list table { width:100%; }
#view-regulacao .reg-agenda-status { display:inline-flex; align-items:center; font-size:11px; font-weight:800; padding:3px 9px; border-radius:999px; background:#e2e8f0; color:#475569; white-space:nowrap; }
#view-regulacao .reg-agenda-status-todo { background:#e2e8f0; color:#475569; }
#view-regulacao .reg-agenda-status-doing { background:#dbeafe; color:#1e40af; }
#view-regulacao .reg-agenda-status-pending { background:#fef3c7; color:#92400e; }
#view-regulacao .reg-agenda-status-done { background:#dcfce7; color:#15803d; }
#view-regulacao .reg-agenda-status-returned { background:#fee2e2; color:#b91c1c; }
#view-regulacao .reg-agenda-returnmsg { color:#b91c1c; margin-top:3px; }
#view-regulacao .reg-agenda-acts { white-space:nowrap; }
#view-regulacao .reg-agenda-acts .btn { margin:2px 0; }
#view-regulacao .reg-agenda-return-banner { display:flex; align-items:flex-start; gap:8px; background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; border-radius:10px; padding:10px 12px; margin-bottom:12px; font-size:13px; }
#view-regulacao .reg-agenda-return-banner svg, #view-regulacao .reg-agenda-return-banner i { width:16px; height:16px; flex:0 0 auto; margin-top:2px; }
/* Relatório unificado de agendas (dashboard) */
#view-regulacao .reg-agenda-report-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; margin-bottom:12px; }
#view-regulacao .reg-agenda-report-filters label { display:flex; flex-direction:column; gap:3px; font-size:12px; font-weight:700; color:#475569; }
#view-regulacao .reg-agenda-report-filters input, #view-regulacao .reg-agenda-report-filters select { padding:7px 9px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; }
#view-regulacao .reg-agrep-totals { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; }
#view-regulacao .reg-agrep-kpi { background:#f3effe; color:#5b21b6; border-radius:8px; padding:6px 12px; font-size:13px; }
#view-regulacao .reg-agrep-kpi strong { font-size:1.05rem; }
#view-regulacao .reg-agrep-breakdown { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:4px 0 8px; }
#view-regulacao .reg-agrep-bl { font-size:11.5px; font-weight:700; color:#64748b; margin-right:4px; }
#view-regulacao .reg-agrep-chip { font-size:11.5px; background:#f1f5f9; color:#334155; border-radius:999px; padding:3px 10px; }
#view-regulacao .reg-agrep-tablewrap { max-height:380px; overflow:auto; border:1px solid #eef1f6; border-radius:10px; }

/* ===== Construtor de formulário por subcategoria + formulário na tratativa ===== */
#view-regulacao .reg-cat-formtag { font-size:10.5px; font-weight:800; color:#0e7490; background:#cffafe; padding:2px 8px; border-radius:999px; display:inline-flex; align-items:center; gap:4px; }
#view-regulacao .reg-cat-formtag svg, #view-regulacao .reg-cat-formtag i { width:11px; height:11px; }
#reg-modal .reg-fb-head, #reg-modal .reg-tf-head, .reg-fb-head, .reg-tf-head { font-weight:800; font-size:.9rem; margin:10px 0 8px; display:flex; align-items:center; gap:6px; }
#reg-modal .reg-fb-table { width:100%; }
#reg-modal .reg-fb-table th { font-size:11px; color:#64748b; text-align:left; padding:2px 6px 4px 0; }
#reg-modal .reg-fb-table td { padding:4px 6px 4px 0; vertical-align:middle; }
#reg-modal .reg-fb-table input, #reg-modal .reg-fb-table select { padding:6px 8px; border:1px solid #e2e8f0; border-radius:7px; font-size:12.5px; box-sizing:border-box; }
#reg-modal .reg-fb-table td:first-child input { width:100%; min-width:150px; }
.reg-fb-add { margin:8px 0; }
.reg-treat-form { background:#f8fafc; border:1px solid #eef1f6; border-radius:12px; padding:14px 16px; margin-bottom:14px; }
.reg-tf-who { font-size:11px; font-weight:600; color:#64748b; background:#fff; border:1px solid #e2e8f0; border-radius:999px; padding:2px 9px; margin-left:6px; }
.reg-tf-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin-bottom:10px; }
.reg-tf-field { display:flex; flex-direction:column; gap:4px; font-size:12px; font-weight:700; color:#475569; }
.reg-tf-field input { padding:8px 10px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; font-weight:400; box-sizing:border-box; }
.reg-tf-field small { font-weight:400; color:#94a3b8; }
.reg-tf-link { font-size:10px; font-weight:700; color:#6d28d9; background:#f3effe; padding:1px 6px; border-radius:999px; }

/* ===== Histórico de Abertura de Agenda — cards com linha do tempo ===== */
#view-regulacao .agc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:14px; }
#view-regulacao .agc { border:1px solid #e6e9f0; border-radius:14px; background:var(--card-bg, #f7f7f7); padding:14px 16px; box-shadow:0 2px 10px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.05); border-left:4px solid #cbd5e1; transition:box-shadow .16s ease, transform .16s ease; }
#view-regulacao .agc:hover { box-shadow:0 6px 18px rgba(15,23,42,.12), 0 2px 4px rgba(15,23,42,.06); transform:translateY(-1px); }
#view-regulacao .agc-todo { border-left-color:#3b82f6; }
#view-regulacao .agc-doing, #view-regulacao .agc-pending { border-left-color:#f59e0b; }
#view-regulacao .agc-done { border-left-color:#16a34a; }
#view-regulacao .agc-returned { border-left-color:#dc2626; }
#view-regulacao .agc-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
#view-regulacao .agc-proto { font-weight:800; font-size:.92rem; color:#0f172a; display:inline-flex; align-items:center; gap:4px; }
#view-regulacao .agc-proto svg, #view-regulacao .agc-proto i { width:14px; height:14px; color:#94a3b8; }
#view-regulacao .agc-badge { font-size:11px; font-weight:800; padding:3px 10px; border-radius:999px; white-space:nowrap; }
#view-regulacao .agc-badge-todo { background:#eff6ff; color:#1d4ed8; }
#view-regulacao .agc-badge-doing, #view-regulacao .agc-badge-pending { background:#fef3c7; color:#b45309; }
#view-regulacao .agc-badge-done { background:#dcfce7; color:#15803d; }
#view-regulacao .agc-badge-returned { background:#fee2e2; color:#b91c1c; }
#view-regulacao .agc-steps { display:flex; align-items:center; margin:4px 0 12px; }
#view-regulacao .agc-step { display:flex; flex-direction:column; align-items:center; gap:4px; flex:0 0 auto; }
#view-regulacao .agc-dot { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; background:#eef2f7; color:#94a3b8; border:2px solid #e2e8f0; }
#view-regulacao .agc-step.done .agc-dot { background:#16a34a; color:#fff; border-color:#16a34a; }
#view-regulacao .agc-step.cur .agc-dot { background:#3b82f6; color:#fff; border-color:#3b82f6; box-shadow:0 0 0 3px #dbeafe; }
#view-regulacao .agc-step-lb { font-size:10px; font-weight:700; color:#64748b; }
#view-regulacao .agc-step.done .agc-step-lb, #view-regulacao .agc-step.cur .agc-step-lb { color:#334155; }
#view-regulacao .agc-conn { flex:1 1 auto; height:3px; background:#e2e8f0; margin:0 6px 14px; border-radius:2px; min-width:18px; }
#view-regulacao .agc-conn.on { background:#16a34a; }
#view-regulacao .agc-ret-banner { display:flex; gap:8px; align-items:flex-start; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; border-radius:10px; padding:8px 10px; margin:2px 0 12px; font-size:12.5px; }
#view-regulacao .agc-ret-banner svg, #view-regulacao .agc-ret-banner i { width:15px; height:15px; flex:0 0 auto; margin-top:1px; }
#view-regulacao .agc-meta { display:flex; flex-direction:column; gap:5px; font-size:12.5px; color:#475569; margin-bottom:10px; }
#view-regulacao .agc-meta span { display:inline-flex; align-items:center; gap:6px; }
#view-regulacao .agc-meta svg, #view-regulacao .agc-meta i { width:14px; height:14px; color:#94a3b8; }
#view-regulacao .agc-profs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
#view-regulacao .agc-prof { font-size:11.5px; background:#f1f5f9; color:#334155; border-radius:8px; padding:4px 9px; }
#view-regulacao .agc-acts { display:flex; flex-wrap:wrap; gap:6px; border-top:1px solid #f1f5f9; padding-top:10px; }
#view-regulacao .reg-agenda-empty { display:flex; flex-direction:column; align-items:center; gap:8px; padding:40px 16px; color:#94a3b8; text-align:center; }
#view-regulacao .reg-agenda-empty svg, #view-regulacao .reg-agenda-empty i { width:30px; height:30px; }
#view-regulacao .reg-subtabs { flex-wrap:wrap; gap:6px; }
#view-regulacao .reg-agenda-info { display:flex; gap:8px; align-items:flex-start; background:#eff6ff; border:1px solid #bfdbfe; color:#1e40af; border-radius:10px; padding:9px 12px; font-size:12.5px; margin-bottom:14px; }
#view-regulacao .reg-agenda-info svg, #view-regulacao .reg-agenda-info i { width:16px; height:16px; flex:0 0 auto; margin-top:1px; }
#view-regulacao .reg-agenda-policy { display:flex; gap:12px; align-items:flex-start; background:#fff7ed; border:1px solid #fed7aa; border-left:4px solid #f59e0b; border-radius:12px; padding:12px 14px; margin:14px 0 16px; }
#view-regulacao .reg-agenda-policy svg, #view-regulacao .reg-agenda-policy i { width:20px; height:20px; color:#d97706; flex:0 0 auto; margin-top:1px; }
#view-regulacao .reg-agenda-policy strong { display:block; color:#9a3412; font-size:13px; margin-bottom:2px; }
#view-regulacao .reg-agenda-policy span { color:#7c4a23; font-size:12.5px; line-height:1.5; display:block; }
/* Modal de horários das vagas */
#reg-modal .reg-agt-head { font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; font-weight:800; color:var(--text-muted,#7a5a7a); margin:16px 0 8px; }
#reg-modal .reg-agt-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(86px, 1fr)); gap:6px; margin-bottom:10px; }
#reg-modal .reg-agt-item {
  display:flex; align-items:center; gap:0; box-sizing:border-box;
  background:var(--surface,#fff); border:1px solid var(--border,#e2d4e2); border-radius:7px;
  padding:1px 1px 1px 4px; transition:border-color .15s, box-shadow .15s;
}
#reg-modal .reg-agt-item:hover { border-color:var(--primary,#6d1f6c); box-shadow:0 2px 6px rgba(109,31,108,.08); }
#reg-modal .reg-agt-item:focus-within { border-color:var(--primary,#6d1f6c); box-shadow:0 0 0 2px var(--primary-glass,rgba(109,31,108,.10)); }
#reg-modal .reg-agt-item input {
  flex:1 1 auto; width:auto; min-width:56px; box-sizing:border-box; margin:0; padding:4px 2px;
  font-size:.78rem; font-weight:700; text-align:center; color:var(--text-main,#1f0b1f);
  border:0; background:transparent; font-variant-numeric:tabular-nums; letter-spacing:0;
}
#reg-modal .reg-agt-item input:focus { outline:none; box-shadow:none; }
#reg-modal .reg-agt-del {
  flex:0 0 auto; width:16px; height:16px; padding:0; margin:0; line-height:1; border:0; border-radius:50%;
  display:grid; place-items:center; background:transparent; color:#b79bb7; cursor:pointer;
  font-size:14px; font-weight:700;
}
#reg-modal .reg-agt-del:hover { background:var(--danger-muted,#fdf0f0); color:var(--danger,#c0392b); }
#view-regulacao .reg-agenda-rows-head { display:flex; align-items:center; justify-content:space-between; font-weight:800; font-size:.9rem; color:#334155; margin:6px 0 8px; }
#view-regulacao .reg-agenda-rows-head span { display:inline-flex; align-items:center; gap:6px; }
#view-regulacao .reg-agenda-rows-head svg, #view-regulacao .reg-agenda-rows-head i { width:15px; height:15px; }
/* Calendário de agenda (vagas + cancelamentos) */
#view-regulacao .reg-cal-legend { display:flex; align-items:center; gap:6px; font-size:12px; color:#475569; margin-bottom:12px; }
#view-regulacao .reg-cal-dot { display:inline-block; width:10px; height:10px; border-radius:50%; }
#view-regulacao .reg-cal-dot-vaga { background:#16a34a; }
#view-regulacao .reg-cal-dot-canc { background:#dc2626; }
#view-regulacao .reg-cal-head { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:10px; }
#view-regulacao .reg-cal-head strong { font-size:1rem; min-width:170px; text-align:center; }
#view-regulacao .reg-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
#view-regulacao .reg-cal-weekday { text-align:center; font-size:11px; font-weight:800; color:#94a3b8; padding:4px 0; }
#view-regulacao .reg-cal-cell { min-height:62px; border:1px solid #e6e9f0; border-radius:10px; background:var(--card-bg,#f7f7f7); padding:6px; display:flex; flex-direction:column; gap:4px; }
#view-regulacao .reg-cal-cell.reg-cal-empty { background:transparent; border:0; }
#view-regulacao .reg-cal-cell.has-data { cursor:pointer; background:#fff; }
#view-regulacao .reg-cal-cell.has-data:hover { border-color:#c4b5fd; box-shadow:0 2px 8px rgba(15,23,42,.08); }
#view-regulacao .reg-cal-cell.is-today { outline:2px solid #6d28d9; outline-offset:-2px; }
#view-regulacao .reg-cal-num { font-size:12px; font-weight:700; color:#334155; }
#view-regulacao .reg-cal-marks { display:flex; gap:4px; flex-wrap:wrap; margin-top:auto; }
#view-regulacao .reg-cal-badge { font-size:10.5px; font-weight:800; color:#fff; border-radius:999px; padding:1px 7px; }
#view-regulacao .reg-cal-badge-vaga { background:#16a34a; }
#view-regulacao .reg-cal-badge-canc { background:#dc2626; }
#reg-modal .reg-cal-day-sec { margin-bottom:12px; }
#reg-modal .reg-cal-day-title { font-weight:800; font-size:13px; display:flex; align-items:center; gap:6px; margin-bottom:6px; }
#reg-modal .reg-cal-item { border:1px solid #e6e9f0; border-radius:8px; padding:7px 10px; margin-bottom:6px; background:#fff; }
#reg-modal .reg-cal-item-vaga { border-left:3px solid #16a34a; }
#reg-modal .reg-cal-item-canc { border-left:3px solid #dc2626; }
/* Cancelar vaga — chips de horário */
#view-regulacao .reg-cancel-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0; }
#view-regulacao .reg-cancel-chip {
  display:inline-flex; align-items:center; gap:6px; position:relative;
  border:1.5px solid var(--border,#e2d4e2); border-radius:999px; padding:7px 15px;
  font-size:.82rem; font-weight:700; cursor:pointer; user-select:none; white-space:nowrap;
  background:var(--surface-2,#f7f2f7); color:var(--text-muted,#7a5a7a); transition:all .15s;
}
#view-regulacao .reg-cancel-chip:hover { border-color:var(--primary,#6d1f6c); color:var(--primary,#6d1f6c); }
#view-regulacao .reg-cancel-chip input { position:absolute; opacity:0; width:0; height:0; margin:0; }
#view-regulacao .reg-cancel-chip:has(input:checked) { background:var(--primary,#6d1f6c); color:#fff; border-color:var(--primary-dark,#4e1550); }
#view-regulacao .reg-cancel-all-chip { border-style:dashed; }
#view-regulacao .reg-cancel-all-chip:has(input:checked) { background:var(--accent,#e6b800); color:#3a2a00; border-color:var(--accent-dark,#b8900a); border-style:solid; }
/* Nova agenda: calendário em cima + formulário embaixo */
#view-regulacao .reg-agenda-cal-block { margin-bottom:22px; padding-bottom:20px; border-bottom:1px solid #ececf2; }
#view-regulacao .reg-agenda-cal-title { display:flex; align-items:center; gap:8px; font-weight:800; font-size:.95rem; color:#4a1349; margin:4px 0 12px; }
#view-regulacao .reg-agenda-cal-title svg, #view-regulacao .reg-agenda-cal-title i { width:18px; height:18px; }
/* Filtros recolhíveis (abrir/fechar) */
#view-regulacao .reg-filters-bar { margin-bottom:10px; }
#view-regulacao .reg-filters-toggle { display:inline-flex; align-items:center; gap:7px; background:var(--surface,#fff); border:1px solid var(--border); border-radius:8px; padding:8px 14px; font-size:.82rem; font-weight:800; color:#475569; cursor:pointer; }
#view-regulacao .reg-filters-toggle:hover { background:#f8fafc; }
#view-regulacao .reg-filters-toggle svg, #view-regulacao .reg-filters-toggle i { width:15px; height:15px; }
#view-regulacao .reg-filters-chev { transition:transform .2s ease; }
#view-regulacao .reg-filters-toggle.open .reg-filters-chev { transform:rotate(180deg); }
#view-regulacao .reg-filter-band.is-collapsed, #view-regulacao .reg-task-filters.is-collapsed { display:none; }
/* Calendário multi-dia (modal) */
#reg-modal .reg-cal-head, #view-regulacao .reg-cal-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
#reg-modal .reg-cal-head strong { font-size:.95rem; }
.reg-cal-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:4px; }
.reg-cal-wd { text-align:center; font-size:11px; font-weight:700; color:#94a3b8; padding:2px 0; }
.reg-cal-empty { height:36px; }
.reg-cal-day { height:36px; border:1px solid #e2e8f0; background:#fff; border-radius:8px; font-size:13px; font-weight:600; color:#0f172a; cursor:pointer; }
.reg-cal-day:hover { border-color:#c4b5fd; background:#faf7ff; }
.reg-cal-day.sel { background:#6d28d9; border-color:#6d28d9; color:#fff; }
.reg-cal-day.reg-cal-past, .reg-cal-day:disabled { color:#cbd5e1; background:#f8fafc; border-color:#eef2f7; cursor:not-allowed; text-decoration:line-through; }
.reg-cal-day.reg-cal-past:hover { border-color:#eef2f7; background:#f8fafc; }
.reg-cal-sel { margin-top:10px; color:#64748b; font-weight:600; }
.reg-cal-selchips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.reg-cal-selchip { display:inline-flex; align-items:center; gap:4px; background:#f3effa; border:1px solid #e3d8f5; color:#4c1d95; border-radius:999px; padding:3px 6px 3px 10px; font-size:12px; font-weight:700; }
.reg-cal-selchip-x { border:none; background:#e6dcf6; color:#6d28d9; width:18px; height:18px; line-height:1; border-radius:50%; cursor:pointer; font-size:14px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.reg-cal-selchip-x:hover { background:#dc2626; color:#fff; }

/* ===== Modal tratar — campos comentário/tratativa + lista de anexos ===== */
.reg-treat-field { display:flex; flex-direction:column; gap:5px; margin-bottom:10px; }
.reg-treat-field > span { display:flex; align-items:center; gap:6px; font-size:.74rem; font-weight:800; color:#475569; }
.reg-treat-field > span i { width:15px; height:15px; }
.reg-treat-field-tratativa > span { color:#6d28d9; }
.reg-file-list { display:flex; flex-direction:column; gap:6px; margin:8px 0 4px; }
.reg-file-item { display:flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid #e8eaf0; border-radius:8px; background:#f8fafc; }
.reg-file-item > i { width:15px; height:15px; color:#6d28d9; flex:none; }
.reg-file-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.82rem; color:#0f172a; font-weight:600; }
.reg-file-size { font-size:.72rem; color:#94a3b8; flex:none; }
.reg-file-remove { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border:none; border-radius:6px; background:#fee2e2; color:#b91c1c; cursor:pointer; flex:none; }
.reg-file-remove:hover { background:#fecaca; }
.reg-file-remove i { width:14px; height:14px; }

/* Dica de SLA no formulário de nova tarefa */
.reg-sla-hint { display:flex; align-items:center; gap:6px; font-size:.78rem; font-weight:700; color:#6d28d9; background:#f5f3ff; border:1px solid #e9d5ff; border-radius:8px; padding:7px 11px; margin-top:-2px; }
.reg-sla-hint i { width:15px; height:15px; }
.reg-sla-hint.reg-hidden { display:none; }

/* ===== UBS — bloco de triagem visível no atendimento médico ===== */
.ubs-triagem-card { border:1px solid #e9d5f0; background:#faf5fb; border-radius:12px; padding:12px 14px; margin:4px 0 14px; }
.ubs-triagem-card.ubs-triagem-empty { color:#94a3b8; font-size:.85rem; background:#f8fafc; border-color:#eef0f4; }
.ubs-triagem-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.ubs-triagem-head strong { display:flex; align-items:center; gap:7px; color:#6d28d9; font-size:.92rem; }
.ubs-triagem-head strong i, .ubs-triagem-head strong svg { width:16px; height:16px; }
.ubs-risco-badge { font-size:.72rem; font-weight:800; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.ubs-triagem-queixa { margin:6px 0 10px; }
.ubs-triagem-queixa > span { display:block; font-size:.7rem; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.02em; }
.ubs-triagem-queixa > p { margin:3px 0 0; color:#0f172a; font-size:.9rem; line-height:1.4; }
.ubs-triagem-vitais { display:grid; grid-template-columns:repeat(auto-fit,minmax(92px,1fr)); gap:8px; }
.ubs-triagem-vitais > div { background:#fff; border:1px solid #efe6f2; border-radius:9px; padding:7px 9px; text-align:center; }
.ubs-triagem-vitais > div b { display:block; font-size:1.02rem; color:#1e293b; line-height:1.1; }
.ubs-triagem-vitais > div span { font-size:.66rem; color:#94a3b8; font-weight:700; }
.ubs-triagem-foot { margin-top:9px; color:#94a3b8; }

/* ===== Regular paciente — autocomplete (digita e filtra) ===== */
.reg-ac { position:relative; display:flex; flex-direction:column; gap:5px; }
.reg-ac-label { font-size:.74rem; font-weight:800; color:#475569; }
.reg-ac > input { width:100%; box-sizing:border-box; }
.reg-ac-list { position:absolute; top:100%; left:0; right:0; z-index:9999; background:#fff; border:1px solid #e2e8f0; border-radius:10px; box-shadow:0 12px 28px rgba(15,23,42,.14); max-height:240px; overflow:auto; margin-top:4px; padding:4px; }
.reg-ac-item .reg-ac-code { color:#7c3aed; font-weight:700; }
.reg-ac-item > span { display:block; width:100%; }
.reg-ac-list.hidden { display:none; }
.reg-ac-item { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; text-align:left; background:none; border:none; border-radius:7px; padding:8px 10px; font-size:.85rem; color:#0f172a; cursor:pointer; }
.reg-ac-item:hover { background:#f3e8f3; }
.reg-ac-code { font-family:'SFMono-Regular',Consolas,monospace; font-size:.72rem; color:#94a3b8; flex:none; }

/* ===== UBS — lista de documentos emitidos (reabrir/imprimir) ===== */
.reg-doc-list { display:flex; flex-direction:column; gap:8px; max-height:55vh; overflow:auto; margin:4px 0; }
.reg-doc-row { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #e8eaf0; border-radius:10px; padding:10px 12px; background:#fff; }
.reg-doc-row strong { color:#1e293b; font-size:.9rem; }

/* UBS — profissional encaminhado no card */
.ubs-flow-assignee { display:flex; align-items:center; gap:5px; color:#6d28d9; font-weight:700; margin-top:3px; }
.ubs-flow-assignee i, .ubs-flow-assignee svg { width:13px; height:13px; }

/* ===== UBS — identificação do paciente + prontuário anterior no atendimento ===== */
.ubs-paciente-card { border:1px solid #dbeafe; background:#f5f9ff; border-radius:12px; padding:11px 14px; margin:4px 0 12px; }
.ubs-paciente-head { display:flex; align-items:center; gap:7px; font-weight:800; color:#1e3a8a; font-size:.95rem; margin-bottom:8px; }
.ubs-paciente-head i, .ubs-paciente-head svg { width:16px; height:16px; }
.ubs-paciente-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:6px 14px; }
.ubs-paciente-grid > div { display:flex; flex-direction:column; }
.ubs-paciente-grid .ubs-paciente-full { grid-column:1/-1; }
.ubs-paciente-grid span { font-size:.66rem; font-weight:700; color:#64748b; text-transform:uppercase; letter-spacing:.02em; }
.ubs-paciente-grid b { font-size:.86rem; color:#0f172a; }
.ubs-prontuario-bar { margin:0 0 10px; }
.ubs-hist-list { display:flex; flex-direction:column; gap:8px; max-height:260px; overflow:auto; margin:0 0 12px; padding:2px; }
.ubs-hist-item { border:1px solid #e8eaf0; border-left:3px solid #6d28d9; border-radius:8px; padding:8px 11px; background:#fff; }
.ubs-hist-top { font-size:.82rem; color:#1e293b; margin-bottom:3px; }
.ubs-hist-item .small { color:#475569; }
.reg-hidden { display:none; }

/* ===== Atendimento clínico — padronizado com o Kanban da Regulação ===== */
#view-ubs-clinical .ubs-flow-col {
  position: relative;
  background: #fbfafc;
  border: 1px solid #ece6f0;
  border-radius: 12px;
  padding: 14px 12px 12px;
  box-shadow: none;
}
#view-ubs-clinical .ubs-flow-col::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  border-radius: 12px 12px 0 0; background: #cbd5e1;
}
#view-ubs-clinical .ubs-flow-col-triagem::before { background: #f59e0b; }
#view-ubs-clinical .ubs-flow-col-medico::before  { background: #3b82f6; }
#view-ubs-clinical .ubs-flow-col-final::before    { background: #16a34a; }
#view-ubs-clinical .ubs-flow-col > header { border-bottom: 1px solid #f0e9f1; }
#view-ubs-clinical .ubs-flow-col > header strong {
  display: flex; align-items: center; gap: 7px; font-size: .92rem; font-weight: 800; color: var(--text-main, #0f172a);
}
#view-ubs-clinical .ubs-flow-col > header strong::before {
  content: ""; width: 9px; height: 9px; border-radius: 3px; background: #cbd5e1;
}
#view-ubs-clinical .ubs-flow-col-triagem > header strong::before { background: #f59e0b; }
#view-ubs-clinical .ubs-flow-col-medico  > header strong::before { background: #3b82f6; }
#view-ubs-clinical .ubs-flow-col-final    > header strong::before { background: #16a34a; }
#view-ubs-clinical .ubs-flow-col-triagem > header span { background: #fef3c7; color: #92400e; }
#view-ubs-clinical .ubs-flow-col-medico  > header span { background: #dbeafe; color: #1e40af; }
#view-ubs-clinical .ubs-flow-col-final    > header span { background: #dcfce7; color: #15803d; }
/* cards no mesmo padrão (sombra + elevação no hover), preservando o acento por risco */
#view-ubs-clinical .ubs-flow-card {
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
  transition: transform .12s, box-shadow .12s;
}
#view-ubs-clinical .ubs-flow-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.10);
}
/* KPIs no estilo dos cards de indicador da regulação */
#view-ubs-clinical .ubs-flow-stats div {
  background: #fff; border: 1px solid #ece6f0; border-radius: 12px;
  box-shadow: 0 2px 6px rgba(15,23,42,.04);
}

/* ===== UBS — Painel de Atendimento (modelo igual ao da Regulação) ===== */
#view-ubs-clinical .ubs-atend-header {
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  background: var(--card-bg, #f7f7f7); border:1px solid #ece6f0;
  border-radius:14px; padding:12px 14px; margin-bottom:14px;
}
#view-ubs-clinical .ubs-atend-title h3 { margin:0; font-size:1.15rem; color:#fff; }
#view-ubs-clinical .ubs-atend-title .small { color:rgba(255,255,255,.85); }
#view-ubs-clinical .ubs-atend-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#view-ubs-clinical .ubs-guiche-input { border:1px solid var(--field-border, #c7cedb); background:#fff; border-radius:9px; padding:8px 12px; font-size:.9rem; min-width:180px; margin:0; }
#view-ubs-clinical .ubs-atend-layout { display:grid; grid-template-columns:260px 1fr; gap:14px; align-items:start; }
#view-ubs-clinical .ubs-atend-side { background:#fff; border:1px solid #ece6f0; border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:10px; box-shadow:0 2px 10px rgba(15,23,42,.04); }
#view-ubs-clinical .ubs-side-consultar { width:100%; justify-content:center; }
#view-ubs-clinical .ubs-side-title { font-size:.74rem; font-weight:800; color:#64748b; text-transform:uppercase; letter-spacing:.03em; margin-top:4px; }
#view-ubs-clinical .ubs-side-counts { border-top:1px solid #f0e9f1; padding-top:10px; display:flex; flex-direction:column; gap:5px; font-size:.82rem; color:#475569; }
#view-ubs-clinical .ubs-side-counts b { color:#4e1550; font-weight:800; }
#view-ubs-clinical .ubs-side-admin { border-top:1px solid #f0e9f1; padding-top:10px; display:flex; flex-direction:column; gap:6px; }
#view-ubs-clinical .ubs-side-admin .btn { justify-content:flex-start; }
#view-ubs-clinical .ubs-atend-main-head { margin:2px 0 12px; font-size:1rem; color:#1e293b; }
#view-ubs-clinical .ubs-atend-main-head strong { font-weight:800; }
#view-ubs-clinical .ubs-fila-board { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:14px; }
#view-ubs-clinical .ubs-fila-col { border:1px solid #e8eaf0; border-radius:12px; background:#fff; overflow:hidden; box-shadow:0 2px 8px rgba(15,23,42,.04); }
#view-ubs-clinical .ubs-fila-col > header { display:flex; align-items:center; justify-content:space-between; padding:10px 13px; border-bottom:1px solid #eef0f4; }
#view-ubs-clinical .ubs-fila-col > header strong { font-size:.92rem; font-weight:800; }
#view-ubs-clinical .ubs-fila-col > header span { background:#eef2f7; color:#475569; border-radius:999px; padding:1px 10px; font-size:.78rem; font-weight:800; }
#view-ubs-clinical .ubs-fila-normal > header { background:#eff6ff; } #view-ubs-clinical .ubs-fila-normal > header strong { color:#1e40af; } #view-ubs-clinical .ubs-fila-normal > header span { background:#dbeafe; color:#1e40af; }
#view-ubs-clinical .ubs-fila-pref > header { background:#fffbeb; } #view-ubs-clinical .ubs-fila-pref > header strong { color:#92400e; } #view-ubs-clinical .ubs-fila-pref > header span { background:#fef3c7; color:#92400e; }
#view-ubs-clinical .ubs-fila-agenda > header strong { color:#475569; }
#view-ubs-clinical .ubs-fila-body { padding:11px; display:flex; flex-direction:column; gap:10px; min-height:60px; }
#view-ubs-clinical .ubs-fila-empty { color:#94a3b8; font-size:.84rem; text-align:center; padding:14px 6px; }
@media (max-width:900px){ #view-ubs-clinical .ubs-atend-layout { grid-template-columns:1fr; } }

/* ===== Regulação — gerenciador de Procedimentos (gestor) ===== */
#view-regulacao .reg-proc-bar { display:flex; align-items:center; gap:10px; justify-content:space-between; margin-bottom:12px; flex-wrap:wrap; }
#view-regulacao .reg-proc-search { display:flex; align-items:center; gap:6px; flex:1; min-width:220px; border:1px solid #e2e8f0; border-radius:9px; padding:6px 10px; background:#fff; }
#view-regulacao .reg-proc-search i { width:15px; height:15px; color:#94a3b8; }
#view-regulacao .reg-proc-search input { border:none; outline:none; flex:1; font-size:.88rem; }
#view-regulacao .reg-proc-code { font-family:'SFMono-Regular',Consolas,monospace; font-size:.8rem; font-weight:700; color:#3730a3; background:#eef2ff; padding:2px 7px; border-radius:6px; }
#view-regulacao .reg-proc-flag { display:inline-block; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.02em; padding:2px 7px; border-radius:999px; background:#f3e8f3; color:#6b21a8; margin:0 3px 3px 0; }
#view-regulacao .reg-proc-flags { margin-top:6px; }
#view-regulacao .reg-proc-checks { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:6px 14px; margin-top:8px; }
#view-regulacao .reg-chk { display:flex; align-items:center; gap:7px; font-size:.85rem; color:#334155; font-weight:600; }
#view-regulacao .reg-chk input { width:16px; height:16px; }

/* Seletor de unidades (executar/visualizar) — procedimentos e laboratório */
#reg-modal .reg-unit-picker { margin:12px 0; border:1px solid #e2e8f0; border-radius:10px; padding:10px 12px; background:#f8fafc; }
#reg-modal .reg-unit-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px; }
#reg-modal .reg-unit-count { color:#7c3aed; font-weight:700; white-space:nowrap; }
#reg-modal .reg-unit-tools { display:flex; gap:6px; align-items:center; margin-bottom:8px; }
#reg-modal .reg-unit-search { flex:1; min-width:0; }
#reg-modal .reg-unit-list { max-height:210px; overflow-y:auto; display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:1px 14px; border-top:1px solid #e2e8f0; padding-top:8px; }
#reg-modal .reg-unit-item { display:flex; align-items:center; gap:7px; font-size:.84rem; color:#334155; font-weight:500; padding:4px 5px; border-radius:6px; cursor:pointer; }
#reg-modal .reg-unit-item:hover { background:#eef2ff; }
#reg-modal .reg-unit-item input { width:16px; height:16px; margin:0; flex:0 0 auto; }
#reg-modal .reg-unit-hint { color:#94a3b8; margin-top:8px; }
/* Badge nas tabelas (autossuficiente — funciona dentro e fora de #view-regulacao) */
.reg-unit-some, .reg-unit-all { display:inline-block; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.02em; padding:2px 7px; border-radius:999px; margin:0 3px 3px 0; }
.reg-unit-some { background:#ede9fe; color:#6d28d9; }
.reg-unit-all { background:#e2e8f0; color:#475569; }

/* ============================================================
 * Modais responsivos — desktop mais largo / mobile compacto (2026-06-03)
 * O bloco "Polish modais globais" usa .modal-overlay .modal-box (0,2,0)
 * com !important, entao as regras mobile precisam da MESMA especificidade
 * + !important + vir depois na cascata para realmente compactar no celular.
 * Larguras: o padrao .modal-box e pequeno (520px, para dialogos/confirmacao);
 * apenas modais de FORMULARIO e CONSULTA sobem para 920px no desktop (ver bloco
 * ":has()" abaixo). Modais com largura propria (classe) continuam com a deles.
 * ============================================================ */

/* Tablet / celular grande: cabe mais conteudo, menos respiro */
@media (max-width: 860px) {
  .modal-overlay { padding: 12px !important; }
  .modal-overlay .modal-box {
    padding: 18px 18px 16px !important;
    border-radius: 14px !important;
  }
  .modal-overlay .modal-box h3 {
    font-size: 1.08rem !important;
    margin-bottom: 8px !important;
  }
  .modal-overlay .modal-box .flex,
  .modal-overlay .modal-box .modal-actions { margin-top: 16px !important; }
}

/* Celular: layout enxuto */
@media (max-width: 560px) {
  .modal-overlay { padding: 8px !important; }
  .modal-overlay .modal-box {
    padding: 14px 14px 12px !important;
    border-radius: 12px !important;
  }
  .modal-overlay .modal-box h3 { font-size: 1rem !important; margin-bottom: 6px !important; }
  .modal-overlay .modal-box p,
  .modal-overlay .modal-box .small { font-size: 0.82rem !important; }
  .modal-overlay .modal-box .flex,
  .modal-overlay .modal-box .modal-actions { margin-top: 14px !important; gap: 8px !important; }
}

/* ============================================================
 * Modais de FORMULARIO e CONSULTA mais largos no desktop (920px).
 * Detecta o conteudo com :has() — diálogos/confirmacao (sem form) ficam
 * no padrao pequeno (520px). So vale em telas grandes (>=861px); no mobile
 * os blocos compactos acima cuidam do layout.
 * Modais de classe propria (clinico 1180, etc.) mantem a largura deles
 * porque usam regra !important com ID.
 * ============================================================ */
@media (min-width: 861px) {
  .modal-box:has(form),
  .modal-box:has(.reg-form),
  .modal-box:has(.reg-form-grid),
  .modal-box:has(.prontuario-fields),
  .modal-box:has(.fat-form-grid),
  .modal-box:has(.reg-detail-grid),
  .modal-box:has(.reg-detail-wide),
  .modal-box:has(.sigtap-table-wrap),
  .modal-box:has(.sigtap-result-head),
  .modal-box:has(.ubs-paciente-grid) {
    max-width: 920px;
  }
  /* No modulo de regulacao os modais sao #reg-modal .modal-box (780 !important).
     Formulario/consulta sobem para 920; a confirmacao volta a ser estreita. */
  #reg-modal .modal-box:has(form),
  #reg-modal .modal-box:has(.reg-detail-grid),
  #reg-modal .modal-box:has(.sigtap-table-wrap) {
    max-width: 920px !important;
  }
  #reg-modal .modal-box:has(.reg-confirm-modal) {
    max-width: 440px !important;
  }
}

/* ===== Banner "RUMO AO HEXA" no splash de login (Copa) ===== */
#login-splash .hexa-banner {
  margin: 12px auto 4px;
  font-weight: 900;
  font-size: clamp(18px, 3vw, 30px);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: linear-gradient(90deg, #009739 0%, #FFDF00 45%, #FFDF00 55%, #009739 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.15));
  animation: hexaPulse 1.1s ease-in-out infinite;
}
@keyframes hexaPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.06); }
}
@media (prefers-reduced-motion: reduce) {
  #login-splash .hexa-banner { animation: none; }
}
/* Confete da tela de login: confinado ao painel roxo e ATRAS do conteudo */
#view-login .login-left-panel { position: relative; overflow: hidden; }
#view-login .login-left-panel > canvas.fest-rain { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
#view-login .login-left-panel .login-brand-area { position: relative; z-index: 1; }

/* ===== Padronização: cards/superfícies de conteúdo em --card-bg (#f7f7f7), em todos os painéis ===== */
.intranet-panels-grid .panel-choice,
.fat-table-wrap,
.fat-row-card,
.fat-list-item,
.ts-stat,
.criterio-item,
.reg-cat-item,
.reg-doc-row,
.ubs-hist-item,
#view-ubs-clinical .ubs-atend-side,
#view-ubs-clinical .ubs-fila-col {
  background: var(--card-bg, #f7f7f7);
}

/* Aba "Unidade" do painel admin (atalhos de configuração da unidade) */
#view-admin .adm-unit-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; max-width:780px; }
#view-admin .adm-unit-card { display:flex; align-items:center; gap:12px; text-align:left; background:var(--card-bg,#f7f7f7); border:1px solid var(--border); border-radius:12px; padding:14px 16px; cursor:pointer; transition:box-shadow .16s ease, transform .16s ease, background .16s ease; }
#view-admin .adm-unit-card:hover { background:#f3effe; box-shadow:0 4px 14px rgba(15,23,42,.08); transform:translateY(-1px); }
#view-admin .adm-unit-card svg, #view-admin .adm-unit-card i { width:22px; height:22px; color:var(--primary); flex:0 0 auto; }
#view-admin .adm-unit-card > span { display:flex; flex-direction:column; gap:2px; }
#view-admin .adm-unit-card strong { font-size:.92rem; color:#1e293b; }
#view-admin .adm-unit-card small { font-size:.76rem; color:#64748b; font-weight:400; }


/* Tipo da senha na TV (Preferencial / Agendamento / Normal) */
#view-tv .tv-type-badge{ position:relative; z-index:1; display:inline-block; margin:0 0 16px; padding:7px 24px;
  border-radius:999px; font-weight:800; font-size:clamp(1rem,2.4vw,1.55rem); letter-spacing:.05em;
  text-transform:uppercase; color:#fff; box-shadow:0 5px 16px rgba(0,0,0,.16); }
#view-tv .tv-type-badge.is-pref{ background:#d97706; }
#view-tv .tv-type-badge.is-appt{ background:#1556a4; }
#view-tv .tv-type-badge.is-normal{ background:#5b6470; }
#view-tv .tv-history-item{ position:relative; }
#view-tv .tv-hist-type{ position:absolute; top:9px; right:11px; font-size:.6rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.03em; padding:2px 9px; border-radius:999px; color:#fff; }
#view-tv .tv-hist-type.is-pref{ background:#d97706; }
#view-tv .tv-hist-type.is-appt{ background:#1556a4; }
#view-tv .tv-hist-type.is-normal{ background:#9aa1ab; }


/* Gerenciar usuario -- form mais limpo (grid com campos consistentes) */
#add-user-form-card{ padding:18px 18px 16px; border-radius:16px; }
#add-user-form-card > h4{ margin:0 0 14px; font-weight:700; color:var(--primary,#6d1f6c); font-family:var(--font-brand,inherit); }
#add-user-form-card > .flex{ display:grid !important; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:12px !important; align-items:end; margin-top:0 !important; }
#add-user-form-card > .flex + .flex{ margin-top:12px !important; }
#add-user-form-card > .flex > input,
#add-user-form-card > .flex > select{ width:auto !important; min-width:0; box-sizing:border-box; height:40px; }
#add-user-form-card > .flex > .cep-block{ grid-column:1 / -1; }
#add-user-form-card #new-op-depts{ width:100%; box-sizing:border-box; }
#add-user-form-card > .btn-accent{ margin-top:8px; }


/* Modal Gerenciar Usuario -- form de perfil em grid limpo (2 colunas) */
#modal-edit-user .modal-box{ border-radius:18px; }
.user-manager-tabs{ gap:8px; margin-bottom:14px; }
#edit-user-tab-content-profile > .flex-col{ display:grid !important; grid-template-columns:1fr 1fr; gap:12px !important; align-items:start; }
#edit-user-tab-content-profile > .flex-col > input,
#edit-user-tab-content-profile > .flex-col > select{ width:auto !important; min-width:0; height:40px; box-sizing:border-box; margin:0 !important; }
#edit-user-tab-content-profile > .flex-col > #edit-user-id,
#edit-user-tab-content-profile > .flex-col > .cep-block,
#edit-user-tab-content-profile > .flex-col > button,
#edit-user-tab-content-profile > .flex-col > label{ grid-column:1 / -1; }

/* Fix: a classe .hidden precisa vencer o display do botao de aba (senao a aba Vinculos nunca some) */
.user-manager-tab-btn.hidden{ display:none !important; }


/* UXV2 gerenciar usuario */
/* aba Vinculos: esconde de verdade mesmo com display concorrente */
#modal-edit-user .user-manager-tab-btn.hidden{ display:none !important; }

/* Tabela de usuarios: mais compacta e legivel (menos espacamento) */
#table-users{ border-collapse:separate; border-spacing:0; width:100%; }
#table-users thead th{ background:var(--panel); color:var(--text-muted); font-size:.66rem; text-transform:uppercase;
  letter-spacing:.05em; font-weight:700; padding:8px 12px !important; border-bottom:2px solid var(--border); white-space:nowrap; }
#table-users tbody td{ padding:7px 12px !important; border-bottom:1px solid var(--border); font-size:.84rem; vertical-align:middle; line-height:1.35; }
#table-users tbody tr:last-child td{ border-bottom:none; }
#table-users tbody tr:hover td{ background:var(--primary-muted); }
#table-users .user-manage-btn{ padding:5px 12px !important; font-size:.76rem !important; min-height:30px !important; }
#table-users td.admin-user-actions{ white-space:nowrap; }

/* Form do modal: grid limpo de 2 colunas, campos consistentes */
#edit-user-tab-content-profile > .flex-col{ display:grid !important; grid-template-columns:1fr 1fr; gap:11px !important; align-items:start; }
#edit-user-tab-content-profile > .flex-col > input,
#edit-user-tab-content-profile > .flex-col > select{ width:auto !important; min-width:0; height:42px; box-sizing:border-box; margin:0 !important; }
#edit-user-tab-content-profile > .flex-col > #edit-user-id,
#edit-user-tab-content-profile > .flex-col > .cep-block,
#edit-user-tab-content-profile > .flex-col > button,
#edit-user-tab-content-profile > .flex-col > label,
#edit-user-tab-content-profile > .flex-col > select[multiple]{ grid-column:1 / -1; }
#modal-edit-user .modal-box{ border-radius:18px; max-width:760px; }
.user-manager-tabs{ gap:8px; margin-bottom:14px; }


/* UXV3 gerenciar usuario */
.um-form{ display:flex; flex-direction:column; gap:18px; }
.um-section-title{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--primary); margin:0 0 10px; padding-bottom:6px; border-bottom:1px solid var(--border); }
.um-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.um-field{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.um-field > span{ font-size:.74rem; font-weight:600; color:var(--text-muted); }
.um-field > input, .um-field > select{ width:100%; box-sizing:border-box; margin:0; }
.um-field.um-col-2, .um-field.um-col-full{ grid-column:1 / -1; }
.um-form .cep-block{ margin:0 !important; }
.um-form .cep-block .um-field{ gap:3px; }
.um-field:has(> .hidden),
.um-field:has(> [style*="display:none"]),
.um-field:has(> [style*="display: none"]){ display:none !important; }
.admin-list-prof{ display:inline-block; margin-top:3px; font-size:.72rem; font-weight:600; color:var(--primary); background:var(--primary-muted); border:1px solid #e6d3e6; border-radius:6px; padding:1px 8px; }

/* UXV6: Departamentos + Senhas Ativas + Dashboard */
/* Departamentos: form inline + tabela compacta */
#adm-tab-depts > .card.flex{ display:grid !important; grid-template-columns:170px 1fr auto; gap:10px; align-items:center; padding:16px 18px; }
#adm-tab-depts > .card.flex > input{ width:100% !important; margin:0; height:42px; box-sizing:border-box; }
#table-depts thead th{ background:var(--panel); color:var(--text-muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; padding:8px 12px !important; border-bottom:2px solid var(--border); }
#table-depts tbody td{ padding:7px 12px !important; border-bottom:1px solid var(--border); font-size:.85rem; vertical-align:middle; }
#table-depts tbody tr:hover td{ background:var(--primary-muted); }
#table-depts .btn{ padding:5px 12px !important; font-size:.76rem !important; min-height:30px !important; }
/* Senhas Ativas: cards compactos com acento */
#admin-active-list .card.mb-1{ padding:12px 16px !important; margin-bottom:9px !important; border-radius:12px; border-left:4px solid var(--primary); }
#admin-active-list .card.mb-1 strong{ color:var(--primary-dark); }
/* Dashboard: KPIs com acento + tipografia da marca */
#dashboard-metrics{ gap:12px !important; }
#dashboard-metrics > .card{ text-align:left !important; padding:14px 16px !important; border-radius:14px !important; position:relative; overflow:hidden; }
#dashboard-metrics > .card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--primary); }
#dashboard-metrics > .card > div:first-child{ font-size:1.7rem !important; font-weight:700 !important; color:var(--primary-dark) !important; }
#dashboard-metrics > .card > div:last-child{ text-transform:uppercase; letter-spacing:.04em; font-size:.68rem !important; color:var(--text-muted) !important; opacity:1 !important; font-weight:600; }
#dashboard-metrics > .card:has(#dash-in-progress)::before{ background:#1556a4; }
#dashboard-metrics > .card:has(#dash-waiting)::before{ background:#c27c00; }
#dashboard-metrics > .card:has(#dash-total-served)::before{ background:#1e7e48; }
#dashboard-metrics > .card:has(#dash-rate)::before{ background:#1e7e48; }


/* UXV9 dashboard layout */
.dash-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.dash-title{ font-size:1.3rem; margin:0; color:var(--text-main); }
.dash-sub{ color:var(--text-muted); font-size:.82rem; margin-top:2px; }
.dash-filters{ display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
.dash-f-label{ font-size:.74rem; color:var(--text-muted); font-weight:600; }
.dash-filters input[type=date]{ width:auto !important; margin:0 !important; height:34px; }
.dash-kpis{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:18px; }
@media(max-width:1180px){ .dash-kpis{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:680px){ .dash-kpis{ grid-template-columns:repeat(2,1fr); } }
.dash-kpi{ display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:13px 15px; box-shadow:0 2px 8px rgba(109,31,108,.06); position:relative; overflow:hidden; }
.dash-kpi::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--t); }
.dash-kpi-ic{ width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; flex:none; background:var(--tbg); color:var(--t); }
.dash-kpi-ic svg{ width:20px; height:20px; }
.dash-kpi-val{ font-size:1.45rem; font-weight:800; color:var(--text-main); line-height:1.05; }
.dash-kpi-lbl{ font-size:.66rem; text-transform:uppercase; letter-spacing:.03em; color:var(--text-muted); font-weight:600; margin-top:3px; line-height:1.2; }
.dash-kpi[data-tone=purple]{ --t:#6d1f6c; --tbg:#f3e6f3; }
.dash-kpi[data-tone=green]{ --t:#1e7e48; --tbg:#e4f5ec; }
.dash-kpi[data-tone=blue]{ --t:#1556a4; --tbg:#e4eefb; }
.dash-kpi[data-tone=amber]{ --t:#c27c00; --tbg:#fdf1da; }
.dash-kpi[data-tone=red]{ --t:#c0392b; --tbg:#fbe7e4; }
.dash-kpi[data-tone=indigo]{ --t:#4338ca; --tbg:#e7e6fb; }
.dash-kpi[data-tone=cyan]{ --t:#0e7490; --tbg:#e0f5f9; }
.dash-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.dash-grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
@media(max-width:980px){ .dash-grid-2,.dash-grid-3{ grid-template-columns:1fr; } }
.dash-panel{ background:var(--surface); border:1px solid var(--border); border-radius:16px; box-shadow:0 2px 10px rgba(109,31,108,.06); overflow:hidden; }
.dash-panel-h{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:.88rem; color:var(--primary-dark); padding:13px 16px; border-bottom:1px solid var(--border); }
.dash-panel-h svg{ width:16px; height:16px; color:var(--primary); flex:none; }
.dash-panel-body{ padding:14px 16px; height:270px; position:relative; }
.dash-panel-body.donut{ height:300px; }
.dash-panel-body.dash-panel-block{ height:auto; }

/* UXV10: padrao consistente entre as abas do Admin */
#view-admin [id^="adm-tab-"] > h4{ font-size:1.18rem; color:var(--text-main); margin:0 0 14px; padding-left:13px; position:relative; }
#view-admin [id^="adm-tab-"] > h4::before{ content:""; position:absolute; left:0; top:3px; bottom:3px; width:4px; border-radius:3px; background:var(--primary); }
#view-admin [id^="adm-tab-"] > .flex.mb-2{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:13px 16px; gap:10px !important; align-items:center; flex-wrap:wrap; box-shadow:0 2px 8px rgba(109,31,108,.05); margin-bottom:16px !important; }
#view-admin [id^="adm-tab-"] > .flex.mb-2 input{ margin:0 !important; height:40px; box-sizing:border-box; }
#view-admin [id^="adm-tab-"] > .flex.mb-2 > .small{ color:var(--text-muted); font-weight:600; }
#view-admin table thead th{ background:var(--panel); color:var(--text-muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; padding:8px 12px !important; border-bottom:2px solid var(--border); }
#view-admin table tbody td{ padding:7px 12px !important; border-bottom:1px solid var(--border); font-size:.84rem; vertical-align:middle; }
#view-admin table tbody tr:hover td{ background:var(--primary-muted); }

/* UXV11: modais on-brand (titulo roxo + divisoria de cabecalho) */
.modal-overlay .modal-box h3{ color:#3f0f40 !important; }
.modal-overlay .modal-box > h3:first-child{ padding-bottom:13px !important; border-bottom:1px solid var(--border) !important; margin-bottom:16px !important; }
.modal-overlay .modal-box label{ color:#6b5570 !important; }

/* ============================================================================
   MODO ESCURO — cobertura de painéis "bespoke" + polish global  (2026-06-12)
   Corrige superfícies que nunca receberam tema escuro (painel master/dev,
   caixas de gráfico, linhas de unidade, status, dropdowns) e adiciona polish
   (scrollbars, foco de campos). Tudo escopado em body.theme-dark — modo claro
   não é afetado.
   ========================================================================== */

/* ---- Superfícies do painel master/dev (cards, linhas, caixas) ---- */
body.theme-dark .master-metric,
body.theme-dark .master-unit-row,
body.theme-dark .master-dashboard-unit,
body.theme-dark .master-chart-box,
body.theme-dark .master-analytics-card,
body.theme-dark .master-ops-section,
body.theme-dark .master-insight-row,
body.theme-dark .master-demand-row,
body.theme-dark .master-governance-item,
body.theme-dark .master-access-unit-row,
body.theme-dark .master-subsection-head,
body.theme-dark .powerbi-step-item {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}

/* Linhas de status com fundo claro (pendente/aviso) -> tom escuro mantendo o hue */
body.theme-dark .master-access-unit-row.is-pending,
body.theme-dark .master-demand-row.is-pending {
  background: rgba(197, 173, 122, 0.10) !important;
  border-color: rgba(197, 173, 122, 0.28) !important;
}

/* Texto interno dessas superfícies fica legível no escuro */
body.theme-dark :is(.master-metric, .master-unit-row, .master-dashboard-unit,
  .master-chart-box, .master-analytics-card, .master-ops-section, .master-insight-row,
  .master-demand-row, .master-governance-item, .master-access-unit-row,
  .master-subsection-head, .powerbi-step-item)
  :is(h1,h2,h3,h4,h5,h6,p,span,strong,b,label,li,td,th,div,a) {
  color: var(--text-main);
}
body.theme-dark :is(.master-metric, .master-unit-row, .master-dashboard-unit,
  .master-chart-box, .master-analytics-card, .master-ops-section, .master-insight-row,
  .master-demand-row, .master-governance-item, .master-access-unit-row,
  .master-subsection-head, .powerbi-step-item)
  :is(.small, .meta, .sub, .master-metric-label, .muted) {
  color: var(--text-muted) !important;
}

/* ---- Itens do menu lateral do master ---- */
body.theme-dark .master-menu-item {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark .master-menu-item:hover {
  background: var(--surface-3) !important;
  border-color: var(--border-strong) !important;
}
body.theme-dark .master-menu-item.is-active,
body.theme-dark .master-menu-item.active,
body.theme-dark .master-menu-item[aria-current="true"] {
  background: linear-gradient(135deg, var(--primary-dark), var(--primary)) !important;
  border-color: var(--primary) !important;
  color: #f5eefc !important;
}
body.theme-dark .master-menu-item.is-active *,
body.theme-dark .master-menu-item.active * { color: #f5eefc !important; }

/* ---- Botão "Centralizar" do mapa ---- */
body.theme-dark .master-map-center-btn {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---- Ícones de KPI (dashboard) ---- */
body.theme-dark .dash-kpi-ic {
  background: var(--primary-muted) !important;
  color: var(--primary-light) !important;
}

/* ---- Pílulas/badges de status com fundo claro ---- */
body.theme-dark .is-warning {
  background: rgba(197, 173, 122, 0.16) !important;
  color: var(--accent-light) !important;
  border-color: rgba(197, 173, 122, 0.30) !important;
}
body.theme-dark .is-success {
  background: rgba(52, 168, 102, 0.16) !important;
  color: #8fe0ad !important;
  border-color: rgba(52, 168, 102, 0.30) !important;
}
body.theme-dark .is-danger,
body.theme-dark .is-error {
  background: rgba(220, 76, 70, 0.16) !important;
  color: #f2a8a3 !important;
  border-color: rgba(220, 76, 70, 0.30) !important;
}
body.theme-dark .is-info {
  background: rgba(96, 130, 200, 0.16) !important;
  color: #a8c0e8 !important;
  border-color: rgba(96, 130, 200, 0.30) !important;
}

/* ---- Dropdowns de autocomplete (transporte etc.) ---- */
body.theme-dark .ts-ac-dropdown {
  background: var(--surface) !important;
  border-color: var(--border-strong) !important;
  color: var(--text-main) !important;
  box-shadow: var(--shadow-lg) !important;
}
body.theme-dark .ts-ac-dropdown :is(div, span, li, strong) { color: var(--text-main); }
body.theme-dark .ts-ac-dropdown :is(.ts-ac-item):hover,
body.theme-dark .ts-ac-dropdown :is(.ts-ac-item).is-active {
  background: var(--surface-3) !important;
}

/* ---- Dropdown do menu admin ---- */
body.theme-dark .adm-menu-dropdown,
body.theme-dark .adm-menu-item {
  background: var(--surface) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark .adm-menu-item:hover { background: var(--surface-3) !important; }

/* ---- Chips de link na tela de login (modo escuro) ---- */
body.theme-dark .login-link-chip {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---- Foco de campos: anel sutil na cor primária ---- */
body.theme-dark :is(input, select, textarea):focus,
body.theme-dark :is(input, select, textarea):focus-visible {
  outline: none !important;
  border-color: var(--primary-light) !important;
  box-shadow: 0 0 0 3px var(--primary-glass) !important;
}

/* ---- Scrollbars escuras (Chromium) ---- */
body.theme-dark ::-webkit-scrollbar { width: 12px; height: 12px; }
body.theme-dark ::-webkit-scrollbar-track { background: #161616; }
body.theme-dark ::-webkit-scrollbar-thumb {
  background: #3a3a3a; border-radius: 8px; border: 3px solid #161616;
}
body.theme-dark ::-webkit-scrollbar-thumb:hover { background: #4d4d4d; }
body.theme-dark { scrollbar-color: #3a3a3a #161616; scrollbar-width: thin; }

/* ---- Caixa de gráfico: garante respiro e fundo coerente ---- */
body.theme-dark .master-chart-box canvas { background: transparent !important; }

/* ============================================================================
   MODO ESCURO — Rodada 2 (2026-06-12)
   Fundo/fontes refinados + seleção de unidades + sub-páginas do master +
   módulo Financeiro (fin-*) + flags de regulação. Tudo em body.theme-dark.
   ========================================================================== */

/* ---- Paleta base refinada: fundo levemente mais frio/profundo, com mais
        separação entre camadas, e fontes um pouco mais nítidas. Re-declara as
        variáveis (este bloco vem depois, então prevalece). ---- */
body.theme-dark {
  --bg-body: #0f1115;
  --bg-panel: #161922;
  --surface: #1a1d24;
  --surface-2: #20242d;
  --surface-3: #272c36;
  --card-bg: #1e222b;
  --field-bg: #232833;
  --field-border: #333a46;
  --border: #2a3039;
  --border-strong: #363d49;
  --text-main: #e7e8ec;
  --text-muted: #abb1bd;
  --text-light: #8b909c;
}

/* ---- Seleção de unidades (view-units) ---- */
body.theme-dark .unit-card,
body.theme-dark .unit-card-ubs {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark .unit-card:hover {
  background: var(--surface-2) !important;
  border-color: var(--primary) !important;
}
body.theme-dark :is(.unit-card, .unit-card-ubs) :is(h1,h2,h3,h4,h5,h6,p,strong,b,span,div,small,label) {
  color: var(--text-main);
}
body.theme-dark :is(.unit-card, .unit-card-ubs) :is(.small, .meta, .sub, .muted) { color: var(--text-muted) !important; }
body.theme-dark .unit-card-status {
  background: var(--surface-3) !important;
  color: var(--text-muted) !important;
  border-color: var(--border-strong) !important;
}

/* ---- Sub-páginas do painel master ---- */
body.theme-dark .master-admin-form,
body.theme-dark .master-access-risk,
body.theme-dark .master-unit-manager,
body.theme-dark .master-connections-table-card,
body.theme-dark .master-connection-kpi,
body.theme-dark .master-analytics-insights,
body.theme-dark .master-attention-item {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark .master-attention-item.is-critical {
  background: rgba(220, 76, 70, 0.12) !important;
  border-color: rgba(220, 76, 70, 0.32) !important;
}
body.theme-dark .master-attention-item.is-warn {
  background: rgba(197, 173, 122, 0.12) !important;
  border-color: rgba(197, 173, 122, 0.32) !important;
}
body.theme-dark .master-connection-status.is-online {
  background: rgba(52, 168, 102, 0.18) !important;
  color: #8fe0ad !important;
  border-color: rgba(52, 168, 102, 0.32) !important;
}
/* Cabeçalhos de tabela dentro do master */
body.theme-dark #view-master table th,
body.theme-dark .master-connections-table-card th {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---- Flags de procedimento/auditoria (regulação) ---- */
body.theme-dark .reg-proc-flag {
  background: var(--surface-3) !important;
  color: var(--text-muted) !important;
  border-color: var(--border-strong) !important;
}
body.theme-dark .reg-proc-flag.reg-unit-all {
  background: rgba(138, 116, 161, 0.18) !important;
  color: var(--primary-light) !important;
  border-color: rgba(138, 116, 161, 0.32) !important;
}
body.theme-dark .reg-cat-iconbtn {
  background: var(--surface-2) !important;
  color: var(--text-muted) !important;
  border-color: var(--border) !important;
}

/* ---- Alça do menu da intranet ---- */
body.theme-dark .intranet-menu-handle {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ============================================================================
   MÓDULO FINANCEIRO (fin-*) — não tinha nenhuma regra de modo escuro
   ========================================================================== */
body.theme-dark .fin-root,
body.theme-dark .fin-page,
body.theme-dark .fin-main,
body.theme-dark .fin-side {
  background: var(--bg-body) !important;
  color: var(--text-main) !important;
}
body.theme-dark .fin-card,
body.theme-dark .fin-table-wrap,
body.theme-dark .fin-kpis,
body.theme-dark .fin-head,
body.theme-dark .fin-newcat,
body.theme-dark .fin-search,
body.theme-dark .fin-side-foot,
body.theme-dark .fin-pie-wrap,
body.theme-dark .fin-legend {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark :is(.fin-root, .fin-page, .fin-card, .fin-head, .fin-side, .fin-table-wrap)
  :is(h1,h2,h3,h4,h5,h6,p,strong,b,span,div,label,li,td,th,a) {
  color: var(--text-main);
}
body.theme-dark .fin-muted,
body.theme-dark .fin-sub { color: var(--text-muted) !important; }
body.theme-dark .fin-card-title { color: var(--text-main) !important; }

/* Campos e selects do financeiro */
body.theme-dark .fin-field,
body.theme-dark .fin-select,
body.theme-dark .fin-search input {
  background: var(--field-bg) !important;
  color: var(--text-main) !important;
  border-color: var(--field-border) !important;
}
body.theme-dark .fin-field::placeholder { color: var(--text-light) !important; }

/* Botões do financeiro */
body.theme-dark .fin-btn,
body.theme-dark .fin-icbtn {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark .fin-btn:hover,
body.theme-dark .fin-icbtn:hover { background: var(--surface-3) !important; }
body.theme-dark .fin-btn.is-primary,
body.theme-dark .fin-btn.fin-btn-primary,
body.theme-dark .fin-btn[data-variant="primary"] {
  background: var(--primary) !important;
  border-color: var(--primary-dark) !important;
  color: #fff !important;
}

/* Navegação lateral do financeiro */
body.theme-dark .fin-nav-item {
  background: transparent !important;
  color: var(--text-muted) !important;
}
body.theme-dark .fin-nav-item:hover { background: var(--surface-2) !important; color: var(--text-main) !important; }
body.theme-dark .fin-nav-item.is-active,
body.theme-dark .fin-nav-item.active {
  background: var(--primary-muted) !important;
  color: var(--primary-light) !important;
}

/* Tabela do financeiro */
body.theme-dark .fin-table th {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark .fin-table td { border-color: var(--border) !important; color: var(--text-main) !important; }
body.theme-dark .fin-table tr:hover td { background: var(--surface-2) !important; }

/* Modal do financeiro */
body.theme-dark .fin-modal {
  background: var(--surface) !important;
  border-color: var(--border-strong) !important;
  color: var(--text-main) !important;
}
body.theme-dark .fin-modal-head,
body.theme-dark .fin-modal-foot { border-color: var(--border) !important; }

/* Badges/realces do financeiro */
body.theme-dark .fin-badge {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border-strong) !important;
}
body.theme-dark .fin-overdue {
  background: rgba(220, 76, 70, 0.16) !important;
  color: #f2a8a3 !important;
}

/* ---- Banner "Selecione a unidade" (view-units) ---- */
body.theme-dark .unit-intro {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark .unit-intro strong { color: var(--text-main) !important; }
body.theme-dark .unit-intro span { color: var(--text-muted) !important; }

/* ============================================================================
   MODO ESCURO — Rodada 3 (2026-06-12): cobertura ESTRUTURAL ampla
   Ataca por padrão (tabelas, cards, texto em cards, menus, abas, chips) para
   cobrir todos os painéis — inclusive os não visitados individualmente.
   Tudo escopado em body.theme-dark.
   ========================================================================== */

/* ---------- TABELAS (genérico forte: pega qualquer painel) ---------- */
body.theme-dark table { background: var(--card-bg) !important; color: var(--text-main) !important; border-color: var(--border) !important; }
body.theme-dark thead th,
body.theme-dark table th {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark table td {
  background: transparent !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark tbody tr:nth-child(even) td { background: rgba(255,255,255,0.025) !important; }
body.theme-dark tbody tr:hover td { background: var(--surface-2) !important; }

/* ---------- CARDS / TICKETS / COLUNAS / CAIXAS (por padrão de nome) ---------- */
body.theme-dark :is(
  [class*="-card"], [class*="-ticket"], [class*="-column"], [class*="-box"],
  [class*="-tile"], [class*="-kpi"], [class*="-metric"], [class*="-insight"],
  [class*="-queue-item"], [class*="-panel-card"], [class*="-list-card"]
) {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
}

/* Texto legível dentro de qualquer container tipo card/linha/coluna/ticket */
body.theme-dark :is(
  [class*="-card"], [class*="-ticket"], [class*="-column"], [class*="-box"],
  [class*="-tile"], [class*="-kpi"], [class*="-metric"], [class*="-insight"],
  [class*="-queue-item"], [class*="-row"], [class*="-cell"]
) :is(h1,h2,h3,h4,h5,h6,p,strong,b,span,div,label,li,td,th,a,small) {
  color: var(--text-main);
}
body.theme-dark :is(
  [class*="-card"], [class*="-ticket"], [class*="-column"], [class*="-box"],
  [class*="-tile"], [class*="-kpi"], [class*="-metric"], [class*="-queue-item"], [class*="-row"]
) :is(.small,.meta,.sub,.muted,[class*="-cpf"],[class*="-sub"],[class*="-note"],[class*="-meta"],[class*="-time"],[class*="-date"]) {
  color: var(--text-muted) !important;
}

/* ---------- MENUS LATERAIS (intranet e variações) ---------- */
body.theme-dark .intranet-menu-item,
body.theme-dark .intranet-nav-item {
  background: transparent !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark :is(.intranet-menu-item, .intranet-nav-item) :is(span,div,strong,small,p) { color: inherit; }
body.theme-dark :is(.intranet-menu-item, .intranet-nav-item) :is(.small,.meta,.sub) { color: var(--text-muted) !important; }
body.theme-dark :is(.intranet-menu-item, .intranet-nav-item):hover {
  background: var(--surface-2) !important;
}
body.theme-dark :is(.intranet-menu-item, .intranet-nav-item).is-active,
body.theme-dark :is(.intranet-menu-item, .intranet-nav-item).active {
  background: var(--primary-muted) !important;
  color: var(--primary-light) !important;
  border-color: rgba(138,116,161,0.4) !important;
}
body.theme-dark :is(.intranet-menu-item, .intranet-nav-item).is-active :is(span,div,strong,small) { color: var(--primary-light) !important; }

/* ---------- ABAS E CHIPS (admin, transporte, regulação, etc.) ---------- */
body.theme-dark :is(.adm-tabs, .nav-tabs, .op-tr-tabs) {
  background: transparent !important;
  border-color: var(--border) !important;
}
body.theme-dark :is(.adm-tab, .op-tr-tab, .tab-btn, .reg-task-filter-chip, .reg-filters-toggle, .op-tr-tab) {
  background: var(--surface-2) !important;
  color: var(--text-muted) !important;
  border-color: var(--border) !important;
}
body.theme-dark :is(.adm-tab, .op-tr-tab, .tab-btn, .reg-task-filter-chip).is-active,
body.theme-dark :is(.adm-tab, .op-tr-tab, .tab-btn, .reg-task-filter-chip).active,
body.theme-dark :is(.adm-tab, .op-tr-tab, .reg-filters-toggle).open {
  background: var(--primary-muted) !important;
  color: var(--primary-light) !important;
  border-color: rgba(138,116,161,0.4) !important;
}
body.theme-dark .adm-session-timer {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---------- ÍCONES/CHIPS específicos que sobraram claros ---------- */
body.theme-dark .reg-metric-icon,
body.theme-dark .dash-kpi-ic,
body.theme-dark [class*="-metric-icon"],
body.theme-dark [class*="-icon-chip"] {
  background: var(--primary-muted) !important;
  color: var(--primary-light) !important;
}

/* ---------- STATUS de cards (mantém o hue, fundo escuro tintado) ---------- */
body.theme-dark :is([class*="status-served"], [class*="is-served"]) {
  background: rgba(52,168,102,0.14) !important; border-color: rgba(52,168,102,0.30) !important;
}
body.theme-dark :is([class*="status-waiting"], [class*="is-waiting"], [class*="is-pending"]) {
  background: rgba(197,173,122,0.13) !important; border-color: rgba(197,173,122,0.30) !important;
}
body.theme-dark :is([class*="status-called"], [class*="is-called"], [class*="is-critical"]) {
  background: rgba(220,76,70,0.14) !important; border-color: rgba(220,76,70,0.30) !important;
}

/* ---------- Colunas de Kanban: leve diferenciação ---------- */
body.theme-dark .reg-kanban-column {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
body.theme-dark .reg-task-chip {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border-strong) !important;
}
body.theme-dark .reg-hero-insight {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}

/* ============================================================================
   MODO ESCURO — Rodada 4 (2026-06-12): vencer regras scoped por #id
   Regras bespoke usam #view-xxx (especificidade alta). Aqui o texto dos cards
   e os chips/badges/botões claros recebem !important para ficarem legíveis.
   ========================================================================== */

/* ---- Texto dentro de cards/linhas: força claro (vence #view-id), exceto chips ---- */
body.theme-dark :is(
  [class*="-card"], [class*="-ticket"], [class*="-column"], [class*="-box"],
  [class*="-tile"], [class*="-kpi"], [class*="-metric"], [class*="-insight"],
  [class*="-queue-item"], [class*="-row"], [class*="-cell"], [class*="-item"]
) :is(
  h1,h2,h3,h4,h5,h6,p,strong,b,label,a,small,
  div:not([class*="-status"]):not([class*="-badge"]):not([class*="-chip"]):not([class*="-pill"]):not([class*="-tag"]):not([class*="-flag"]),
  span:not([class*="-status"]):not([class*="-badge"]):not([class*="-chip"]):not([class*="-pill"]):not([class*="-tag"]):not([class*="-flag"])
) {
  color: var(--text-main) !important;
}
/* Subtítulos/meta continuam mais apagados */
body.theme-dark :is(
  [class*="-card"], [class*="-ticket"], [class*="-column"], [class*="-box"], [class*="-row"], [class*="-item"]
) :is([class*="-cpf"], [class*="-sub"], [class*="-note"], [class*="-meta"], [class*="-time"], [class*="-date"], .small, .meta, .muted) {
  color: var(--text-muted) !important;
}

/* ---- Chips / badges / pílulas de status: estilo neutro legível ---- */
body.theme-dark :is(
  [class*="-status"], [class*="-priority"], [class*="-dept"], [class*="-badge"],
  [class*="-chip"], [class*="-tag"], [class*="-pill"], [class*="-flag"]
) {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border-strong) !important;
}

/* ---- Botões "outline"/claros bespoke ---- */
body.theme-dark :is(
  [class*="-btn-admin"], [class*="-btn-intranet"], .issued-btn-admin, .issued-btn-intranet,
  .btn.btn-light, .btn-outline
) {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---- Semânticos por ÚLTIMO: reaplica tom de cor onde faz sentido ---- */
body.theme-dark :is([class*="success"], [class*="-online"], [class*="is-served"], [class*="status-served"]):is([class*="-status"],[class*="-badge"],[class*="-chip"],[class*="-pill"],[class*="-flag"],[class*="-tag"]) {
  background: rgba(52,168,102,0.16) !important; color: #8fe0ad !important; border-color: rgba(52,168,102,0.32) !important;
}
body.theme-dark :is([class*="danger"], [class*="error"], [class*="is-critical"], [class*="status-called"], [class*="urgent"]):is([class*="-status"],[class*="-badge"],[class*="-chip"],[class*="-pill"],[class*="-flag"],[class*="-tag"],[class*="-priority"]) {
  background: rgba(220,76,70,0.16) !important; color: #f2a8a3 !important; border-color: rgba(220,76,70,0.32) !important;
}
body.theme-dark :is([class*="warning"], [class*="is-waiting"], [class*="status-waiting"], [class*="pending"], [class*="is-warn"]):is([class*="-status"],[class*="-badge"],[class*="-chip"],[class*="-pill"],[class*="-flag"],[class*="-tag"],[class*="-priority"]) {
  background: rgba(197,173,122,0.16) !important; color: var(--accent-light) !important; border-color: rgba(197,173,122,0.32) !important;
}

/* ---- Realce "em atendimento agora" (cartão de chamada ativa): tom escuro âmbar ---- */
body.theme-dark :is(.op-current-call, [class*="current-call"], [class*="-now-serving"], [class*="-em-atendimento"]) {
  background: linear-gradient(135deg, rgba(197,173,122,0.18), rgba(197,173,122,0.08)) !important;
  border-color: rgba(197,173,122,0.40) !important;
  color: var(--text-main) !important;
}

/* ============================================================================
   MODO ESCURO — Rodada 5 (2026-06-12): painel de Atendimento (view-operator)
   As regras claras são scoped por #view-operator + !important (especificidade
   de ID). Só dá pra vencer usando o mesmo #id.
   ========================================================================== */
body.theme-dark #view-operator .card,
body.theme-dark #view-operator .op-queue-ticket,
body.theme-dark #view-operator .visible-queue-item {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark #view-operator .op-queue-ticket.status-served,
body.theme-dark #view-operator .visible-queue-item.status-served {
  background: rgba(52,168,102,0.13) !important; border-color: rgba(52,168,102,0.30) !important;
}
body.theme-dark #view-operator .op-queue-ticket.status-waiting,
body.theme-dark #view-operator .visible-queue-item.status-waiting {
  background: rgba(197,173,122,0.12) !important; border-color: rgba(197,173,122,0.30) !important;
}
body.theme-dark #view-operator .op-queue-ticket.status-called,
body.theme-dark #view-operator .visible-queue-item.status-called {
  background: rgba(220,76,70,0.14) !important; border-color: rgba(220,76,70,0.32) !important;
}
/* Texto legível */
body.theme-dark #view-operator :is(h1,h2,h3,h4,h5,h6,p,strong,b,label,a,
  .opq-senha,.opq-name,.opq-dept,.opq-status) {
  color: var(--text-main) !important;
}
body.theme-dark #view-operator :is(.opq-cpf,.opq-sub,.opq-time,.small,.meta) {
  color: var(--text-muted) !important;
}
/* Pílulas/realces claros (inline ou classe) dentro do atendimento */
body.theme-dark #view-operator .small {
  background: transparent !important;
}
body.theme-dark #view-operator span[style*="background"] {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
}
/* Cartão "chamar próximo / em atendimento" geralmente é destaque claro */
body.theme-dark #view-operator [class*="current"],
body.theme-dark #view-operator [class*="serving"],
body.theme-dark #view-operator [class*="now"] {
  background: linear-gradient(135deg, rgba(197,173,122,0.18), rgba(197,173,122,0.07)) !important;
  border-color: rgba(197,173,122,0.40) !important;
  color: var(--text-main) !important;
}

/* ============================================================================
   MODO ESCURO — Rodada 6 (2026-06-12): fundos claros via ESTILO INLINE
   Containers com background claro setado inline (sem classe) — pega por
   [style*=...] cobrindo os valores claros mais usados no projeto.
   ========================================================================== */
body.theme-dark [style*="background:#fff"],
body.theme-dark [style*="background: #fff"],
body.theme-dark [style*="background:#ffffff"],
body.theme-dark [style*="background: #ffffff"],
body.theme-dark [style*="background:#FFF"],
body.theme-dark [style*="background: #FFF"],
body.theme-dark [style*="background:white"],
body.theme-dark [style*="background: white"],
body.theme-dark [style*="background-color:#fff"],
body.theme-dark [style*="background-color: #fff"],
body.theme-dark [style*="background-color:#ffffff"],
body.theme-dark [style*="background-color: #ffffff"],
body.theme-dark [style*="background-color:white"],
body.theme-dark [style*="background-color: white"],
body.theme-dark [style*="background:rgb(255, 255, 255)"],
body.theme-dark [style*="background: rgb(255, 255, 255)"],
body.theme-dark [style*="background-color:rgb(255, 255, 255)"],
body.theme-dark [style*="background-color: rgb(255, 255, 255)"],
body.theme-dark [style*="background:#f8fafc"],
body.theme-dark [style*="background: #f8fafc"],
body.theme-dark [style*="background:#f1f5f9"],
body.theme-dark [style*="background: #f1f5f9"],
body.theme-dark [style*="background:#f9fafb"],
body.theme-dark [style*="background: #f9fafb"],
body.theme-dark [style*="background:#f3f4f6"],
body.theme-dark [style*="background: #f3f4f6"],
body.theme-dark [style*="background:#fafafa"],
body.theme-dark [style*="background: #fafafa"],
body.theme-dark [style*="background:#eef2f7"],
body.theme-dark [style*="background:#edf2f7"],
body.theme-dark [style*="background-color:#f8fafc"],
body.theme-dark [style*="background-color:#f1f5f9"] {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
}
/* Texto claro setado inline que vira invisível sobre fundo escuro */
body.theme-dark [style*="color:#fff"] [style*="background"],
body.theme-dark [style*="color: #fff"] [style*="background"] { color: inherit; }

/* ============================================================================
   MODO ESCURO — Rodada 7 (2026-06-12): colunas de layout claras (atendimento)
   Colunas estruturais (div com flex) que ficam brancas por herança de regra.
   Deixa transparentes — os cards internos já têm fundo escuro.
   ========================================================================== */
body.theme-dark #view-operator > #operator-panel > div > div[style*="flex"],
body.theme-dark #view-operator #operator-panel div[style*="flex:"],
body.theme-dark #view-operator #operator-panel div[style*="flex "] {
  background: transparent !important;
}
body.theme-dark #view-operator #operator-panel span:not([class]) {
  background: transparent !important;
  color: var(--text-muted) !important;
}
/* Garante leitura de títulos soltos no atendimento */
body.theme-dark #view-operator h1,
body.theme-dark #view-operator h2,
body.theme-dark #view-operator h3,
body.theme-dark #view-operator h4 { color: var(--text-main) !important; }

/* ============================================================================
   MODO ESCURO — Rodada 8 (2026-06-12): botões secundários brancos
   Botões .btn sem modificador semântico que ainda aparecem claros em alguns
   painéis (Abrir Câmera, Buscar, etc.). Exclui os botões translúcidos do
   header roxo da intranet (.intranet-header), que são intencionais.
   ========================================================================== */
body.theme-dark button.btn:not(.btn-primary):not(.btn-accent):not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-info):not(.intranet-header *):not(.btn-pop),
body.theme-dark a.btn:not(.btn-primary):not(.btn-accent):not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-info):not(.intranet-header *),
body.theme-dark .btn-secondary {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark button.btn:not(.btn-primary):not(.btn-accent):not(.btn-danger):not(.btn-success):not(.btn-warning):not(.btn-info):not(.intranet-header *):hover,
body.theme-dark .btn-secondary:hover {
  background: var(--surface-3) !important;
  border-color: var(--border-strong) !important;
}

/* ============================================================================
   CONSULTA DE PACIENTE (Administração) — layout amplo + cartão profissional
   Usa design tokens, então funciona em modo claro e escuro automaticamente.
   2026-06-12
   ========================================================================== */
.adm-patient-wrap { max-width: 1080px; margin: 0 auto; }
.adm-patient-head { margin-bottom: 14px; }
.adm-patient-title { margin: 0 0 2px; font-size: 1.05rem; font-weight: 800; }
.adm-patient-sub { margin: 0; font-size: 0.82rem; color: var(--text-muted, #64748b); }

.adm-patient-search {
  display: flex; align-items: center; gap: 10px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px; padding: 8px 10px 8px 14px;
  margin-bottom: 18px; box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.06));
}
.adm-patient-search > i { width: 18px; height: 18px; color: var(--text-muted, #94a3b8); flex-shrink: 0; }
.adm-patient-search input {
  flex: 1; border: none; background: transparent; outline: none;
  font-size: 0.95rem; color: var(--text-main, #1e293b); padding: 6px 2px;
}
.adm-patient-search .btn { flex-shrink: 0; }

/* ---- Cartão do paciente ---- */
.pcard {
  border: 1px solid var(--border, #e2e8f0); border-radius: 16px; overflow: hidden;
  background: var(--surface, #fff); box-shadow: var(--shadow, 0 6px 18px rgba(0,0,0,0.08));
}
.pcard-head {
  background: linear-gradient(135deg, var(--primary-dark, #5b21b6), var(--primary, #7c3aed));
  color: #fff; padding: 18px 20px;
}
.pcard-name { font-size: 1.18rem; font-weight: 800; letter-spacing: -0.01em; }
.pcard-id { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; font-size: 0.82rem; opacity: 0.95; margin-top: 7px; }
.pcard-since { opacity: 0.75; }
.pcard-badge-unreg { background: #fde68a; color: #92400e; border-radius: 6px; padding: 2px 9px; font-size: 0.74rem; font-weight: 700; }

.pcard-stats { display: flex; border-bottom: 1px solid var(--border, #e2e8f0); }
.pcard-stat { flex: 1; text-align: center; padding: 14px 10px; border-right: 1px solid var(--border, #e2e8f0); }
.pcard-stat:last-child { border-right: none; }
.pcard-stat-v { font-size: 1.6rem; font-weight: 800; line-height: 1; color: var(--primary, #7c3aed); }
.pcard-stat-l { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.5px; color: var(--text-muted, #64748b); margin-top: 5px; }

.pcard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 20px; }
@media (max-width: 820px) { .pcard-grid { grid-template-columns: 1fr; } }

.pcard-section-title {
  display: flex; align-items: center; gap: 8px;
  font-weight: 800; font-size: 0.9rem; color: var(--text-main, #1e293b);
  padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--border, #e2e8f0);
}
.pcard-section-title i { width: 16px; height: 16px; color: var(--primary, #7c3aed); }
.pcard-list { display: flex; flex-direction: column; gap: 10px; max-height: 460px; overflow-y: auto; padding-right: 4px; }
.pcard-empty { color: var(--text-muted, #94a3b8); font-size: 0.84rem; padding: 8px 2px; }

/* ---- Cartão de senha ---- */
.pticket {
  background: var(--card-bg, #fff); border: 1px solid var(--border, #e2e8f0);
  border-left: 4px solid var(--border-strong, #cbd5e1); border-radius: 10px; padding: 11px 13px;
}
.pticket.is-waiting   { border-left-color: #3b82f6; }
.pticket.is-served    { border-left-color: #f59e0b; }
.pticket.is-closed    { border-left-color: #22c55e; }
.pticket.is-cancelled { border-left-color: #ef4444; }
.pticket-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.pticket-code { font-weight: 800; font-size: 0.92rem; color: var(--text-main, #1e293b); }
.pticket-dept { font-weight: 400; color: var(--text-muted, #64748b); font-size: 0.8rem; }
.pticket-status { font-size: 0.7rem; font-weight: 700; border-radius: 6px; padding: 2px 8px; border: 1px solid; white-space: nowrap; }
.pticket-status.is-waiting   { color: #2563eb; border-color: rgba(59,130,246,0.45); background: rgba(59,130,246,0.12); }
.pticket-status.is-served    { color: #b45309; border-color: rgba(245,158,11,0.45); background: rgba(245,158,11,0.12); }
.pticket-status.is-closed    { color: #15803d; border-color: rgba(34,197,94,0.45);  background: rgba(34,197,94,0.12); }
.pticket-status.is-cancelled { color: #b91c1c; border-color: rgba(239,68,68,0.45);  background: rgba(239,68,68,0.12); }
.pticket-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 0.74rem; color: var(--text-muted, #64748b); }
.pticket-calls { margin-top: 5px; }
.pticket-call { font-size: 0.72rem; color: var(--text-muted, #64748b); }
.pticket-note { font-size: 0.75rem; background: rgba(245,158,11,0.12); border-left: 3px solid #f59e0b; padding: 5px 9px; border-radius: 5px; margin-top: 6px; color: var(--text-main, #1e293b); }
.pticket-note.is-ok { background: rgba(34,197,94,0.12); border-left-color: #22c55e; }
.pticket-note strong { font-weight: 700; }
.pticket-actions { display: flex; gap: 8px; margin-top: 9px; flex-wrap: wrap; }
.pticket-print i { width: 14px; height: 14px; }

/* ---- Cartão de agendamento ---- */
.pappt {
  background: var(--card-bg, #fff); border: 1px solid var(--border, #e2e8f0);
  border-left: 4px solid var(--border-strong, #cbd5e1); border-radius: 10px;
  padding: 11px 13px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px;
}
.pappt.is-closed { border-left-color: #22c55e; }
.pappt.is-waiting { border-left-color: #3b82f6; }
.pappt.is-served { border-left-color: #f59e0b; }
.pappt.is-cancelled { border-left-color: #ef4444; }
.pappt-when { font-weight: 700; font-size: 0.88rem; color: var(--text-main, #1e293b); }
.pappt-notes { font-size: 0.72rem; color: var(--text-muted, #64748b); margin-top: 2px; }
.pappt-status { font-size: 0.74rem; font-weight: 700; white-space: nowrap; color: var(--text-muted, #475569); }

/* Dark: garante leitura dos textos dentro do cartão (tokens já mudam o fundo) */
body.theme-dark .pcard-name,
body.theme-dark .pticket-code,
body.theme-dark .pticket-note,
body.theme-dark .pappt-when { color: var(--text-main) !important; }

/* ---- Prévia de impressão da senha (cupom 80mm) — sempre "papel branco" ---- */
.senha-print-preview {
  display: flex; justify-content: center;
  padding: 16px; border-radius: 12px;
  background: var(--surface-2, #f1f5f9);
  border: 1px solid var(--border, #e2e8f0);
}
.senha-paper {
  width: 240px; background: #fff; color: #000;
  padding: 16px 14px; text-align: center;
  font-family: Arial, Helvetica, sans-serif;
  border-radius: 4px; box-shadow: 0 6px 18px rgba(0,0,0,0.22);
}
.senha-paper .sp-unit { font-size: 12px; font-weight: bold; text-transform: uppercase; line-height: 1.2; }
.senha-paper .sp-lbl  { font-size: 11px; letter-spacing: 3px; color: #333; margin-top: 6px; }
.senha-paper .sp-code { font-size: 44px; font-weight: 800; line-height: 1; margin: 0 0 4px; }
.senha-paper .sp-dept { font-size: 14px; font-weight: bold; margin-bottom: 2px; }
.senha-paper .sp-name { font-size: 13px; font-weight: bold; margin-top: 8px; }
.senha-paper .sp-row  { font-size: 11px; margin: 2px 0; color: #222; }
.senha-paper .sp-obs  { font-size: 12px; margin: 2px 0; color: #000; text-align: left; }
.senha-paper .sp-hr   { border-top: 1px dashed #000; margin: 8px 0; }

/* ---- Seção e prévia da Declaração de Comparecimento ---- */
.decl-section { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--border, #e2e8f0); }
.decl-check { display: flex; gap: 8px; align-items: center; font-weight: 600; font-size: 0.85rem; cursor: pointer; }
.decl-check input { width: 16px; height: 16px; accent-color: var(--primary, #7c3aed); }
.decl-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.decl-fields label { display: flex; flex-direction: column; gap: 4px; font-size: 0.74rem; font-weight: 600; color: var(--text-muted, #64748b); }
.decl-fields input { font-size: 0.85rem; padding: 7px 8px; box-sizing: border-box; }

.decl-paper {
  width: 100%; max-width: 460px; background: #fff; color: #000;
  padding: 24px 26px; font-family: Arial, Helvetica, sans-serif;
  border-radius: 4px; box-shadow: 0 6px 18px rgba(0,0,0,0.22); text-align: left;
}
.decl-paper .dc-title { text-align: center; font-size: 14px; font-weight: bold; letter-spacing: 1px; margin: 0 0 16px; }
.decl-paper .dc-p { font-size: 12px; line-height: 1.85; text-align: justify; margin: 0 0 10px; color: #000; }
.decl-paper .dc-city { margin-top: 18px; }
.decl-paper .dc-blank { letter-spacing: 1px; color: #777; }
.decl-paper .dc-sign { margin-top: 34px; text-align: center; }
.decl-paper .dc-line { border-top: 1px solid #000; width: 72%; margin: 0 auto 6px; }
.decl-paper .dc-org { font-weight: bold; }
.decl-paper .dc-sign div { font-size: 11px; line-height: 1.5; color: #000; }

/* ---- Prévia do documento A4 (Declaração + Senha) ---- */
.doc-paper {
  width: 100%; max-width: 480px; background: #fff; color: #000;
  padding: 26px 28px; font-family: Arial, Helvetica, sans-serif;
  border-radius: 4px; box-shadow: 0 6px 18px rgba(0,0,0,0.22); text-align: left;
}
.doc-paper .doc-head { display: flex; align-items: center; gap: 12px; border-bottom: 2px solid #111; padding-bottom: 10px; margin-bottom: 14px; }
.doc-paper .doc-logo { height: 54px; width: auto; }
.doc-paper .doc-head-txt { font-size: 11px; line-height: 1.35; }
.doc-paper .doc-head-txt span { color: #444; }
.doc-paper .dc-title { text-align: center; font-size: 14px; font-weight: bold; letter-spacing: 1px; margin: 18px 0; }
.doc-paper .dc-p { font-size: 12px; line-height: 1.9; text-align: justify; margin: 0 0 12px; color: #000; }
.doc-paper .dc-city { margin-top: 18px; }
.doc-paper .dc-blank { letter-spacing: 1px; color: #777; }
.doc-paper .doc-senha { display: flex; justify-content: center; margin: 20px 0 12px; }
.doc-paper .doc-senha-box { width: 230px; border: 1px dashed #555; border-radius: 6px; padding: 10px 12px; text-align: center; }
.doc-paper .sp-unit { font-size: 11px; font-weight: bold; text-transform: uppercase; }
.doc-paper .sp-lbl { font-size: 10px; letter-spacing: 3px; color: #333; margin-top: 5px; }
.doc-paper .sp-code { font-size: 34px; font-weight: 800; line-height: 1; margin: 0 0 3px; }
.doc-paper .sp-dept { font-size: 12px; font-weight: bold; }
.doc-paper .sp-name { font-size: 12px; font-weight: bold; margin-top: 6px; }
.doc-paper .sp-row { font-size: 10px; margin: 2px 0; color: #222; }
.doc-paper .sp-obs { font-size: 11px; margin: 2px 0; color: #000; text-align: left; }
.doc-paper .sp-hr { border-top: 1px dashed #000; margin: 6px 0; }
.doc-paper .dc-sign { margin-top: 28px; text-align: center; }
.doc-paper .dc-line { border-top: 1px solid #000; width: 74%; margin: 0 auto 5px; }
.doc-paper .dc-org { font-weight: bold; font-size: 11px; }
.doc-paper .dc-sign div { font-size: 11px; line-height: 1.5; }
.doc-paper .dc-foot { margin-top: 20px; border-top: 1px solid #999; padding-top: 6px; font-size: 9px; color: #555; text-align: center; }

/* ---- Aviso ao operador (não sai na impressão) ---- */
.decl-warning {
  display: flex; gap: 10px; align-items: flex-start;
  background: rgba(245,158,11,0.12); border: 1px solid rgba(245,158,11,0.40);
  color: #92510a; border-radius: 10px; padding: 10px 12px;
  margin-top: 12px; font-size: 0.8rem; line-height: 1.4;
}
.decl-warning i { width: 18px; height: 18px; color: #d97706; flex-shrink: 0; margin-top: 1px; }
body.theme-dark .decl-warning { color: var(--accent-light); }

/* ---- Papéis de impressão sempre "papel branco", mesmo no modo escuro ----
   (sobrepõe as regras estruturais genéricas de dark mode que pegavam -box, -card, etc.) */
body.theme-dark .doc-paper,
body.theme-dark .senha-paper { background: #fff !important; color: #000 !important; }
body.theme-dark .doc-paper *,
body.theme-dark .senha-paper * { background: transparent !important; color: #000 !important; }
body.theme-dark .doc-paper .doc-head { border-bottom-color: #111 !important; }
body.theme-dark .doc-paper .doc-senha-box { border: 1px dashed #555 !important; }
body.theme-dark .doc-paper .dc-blank { color: #777 !important; }
body.theme-dark .doc-paper .dc-foot { color: #555 !important; border-top-color: #999 !important; }
body.theme-dark .doc-paper .doc-head-txt span { color: #444 !important; }

/* ---- Senha menor dentro do documento (mais espaço para o carimbo) ---- */
.doc-paper .doc-senha { margin: 12px 0 8px; }
.doc-paper .doc-senha-box { width: 168px; padding: 7px 9px; }
.doc-paper .doc-senha-box .sp-code { font-size: 24px; }
.doc-paper .doc-senha-box .sp-unit { font-size: 10px; }
.doc-paper .doc-senha-box .sp-lbl { font-size: 9px; }
.doc-paper .doc-senha-box .sp-dept { font-size: 11px; }
.doc-paper .doc-senha-box .sp-name { font-size: 11px; }
.doc-paper .doc-senha-box .sp-row { font-size: 9px; }
.doc-paper .doc-senha-box .sp-obs { font-size: 10px; }
.doc-paper .doc-senha-box .sp-hr { margin: 4px 0; }
.doc-paper .dc-sign { margin-top: 42px; }

/* ---- Prévia dos papéis: força preto sobre branco mesmo dentro do modal escuro
        (vence a regra body.theme-dark .modal-box :is(p,span...) { color:var(--text-main) }) ---- */
body.theme-dark .modal-box .doc-paper,
body.theme-dark .modal-box .senha-paper { background: #fff !important; color: #000 !important; }
body.theme-dark .modal-box .doc-paper *,
body.theme-dark .modal-box .senha-paper * { color: #000 !important; background: transparent !important; }
body.theme-dark .modal-box .doc-paper .dc-blank { color: #777 !important; }
body.theme-dark .modal-box .doc-paper .dc-foot { color: #555 !important; }
body.theme-dark .modal-box .doc-paper .doc-head-txt span { color: #444 !important; }
body.theme-dark .modal-box .doc-senha-box { border: 1px dashed #555 !important; }

/* ---- Prévia dos papéis em PRETO sobre BRANCO (vence as regras genéricas de
        dark mode usando o ID do modal — especificidade de ID) ---- */
body.theme-dark #admin-ticket-print-modal .doc-paper,
body.theme-dark #admin-ticket-print-modal .senha-paper { background: #fff !important; color: #000 !important; }
body.theme-dark #admin-ticket-print-modal .doc-paper *,
body.theme-dark #admin-ticket-print-modal .senha-paper * { color: #000 !important; background: transparent !important; }
body.theme-dark #admin-ticket-print-modal .doc-paper .dc-blank { color: #777 !important; }
body.theme-dark #admin-ticket-print-modal .doc-paper .dc-foot { color: #555 !important; }
body.theme-dark #admin-ticket-print-modal .doc-paper .doc-head-txt span { color: #444 !important; }
body.theme-dark #admin-ticket-print-modal .doc-senha-box { border: 1px dashed #555 !important; background: transparent !important; }

/* ---- Senha maior dentro do documento (revisão) ---- */
.doc-paper .doc-senha { margin: 16px 0 10px; }
.doc-paper .doc-senha-box { width: 230px; padding: 11px 13px; }
.doc-paper .doc-senha-box .sp-code { font-size: 33px; }
.doc-paper .doc-senha-box .sp-unit { font-size: 12px; }
.doc-paper .doc-senha-box .sp-lbl { font-size: 11px; }
.doc-paper .doc-senha-box .sp-dept { font-size: 13px; }
.doc-paper .doc-senha-box .sp-name { font-size: 13px; }
.doc-paper .doc-senha-box .sp-row { font-size: 11px; }
.doc-paper .doc-senha-box .sp-obs { font-size: 12px; }
.doc-paper .dc-sign { margin-top: 30px; }

/* ============================================================================
   Checklist de etapas das tarefas (Kanban da Regulação) — 2026-06-12
   ========================================================================== */
.reg-checklist { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--border, #e2e8f0); border-radius: 10px; background: var(--surface-2, #f8fafc); }
.reg-checklist-head { display: flex; justify-content: space-between; align-items: center; font-weight: 700; font-size: 0.85rem; color: var(--text-main, #1e293b); margin-bottom: 8px; }
.reg-checklist-head i { width: 16px; height: 16px; vertical-align: -3px; margin-right: 5px; color: var(--primary, #7c3aed); }
.reg-checklist-count { font-size: 0.78rem; color: var(--text-muted, #64748b); font-weight: 600; }
.reg-checklist-bar { height: 6px; background: var(--border, #e2e8f0); border-radius: 99px; overflow: hidden; margin-bottom: 10px; }
.reg-checklist-bar-fill { height: 100%; background: linear-gradient(90deg, var(--primary, #7c3aed), var(--accent, #c5ad7a)); transition: width .25s; }
.reg-checklist-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.reg-checklist-list li label { display: flex; align-items: center; gap: 9px; font-size: 0.86rem; cursor: pointer; color: var(--text-main, #1e293b); }
.reg-checklist-list li input { width: 17px; height: 17px; accent-color: var(--primary, #7c3aed); cursor: pointer; flex-shrink: 0; }
.reg-checklist-list li.is-done span { text-decoration: line-through; color: var(--text-muted, #94a3b8); }
.reg-task-card-steps { font-size: 0.72rem; color: var(--text-muted, #64748b); display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.reg-task-card-steps i { width: 12px; height: 12px; }

/* ---- Dark mode: modal de tratativa da Regulação (cobre blocos que ficavam claros) ---- */
body.theme-dark .reg-treat-info,
body.theme-dark .reg-treat-form {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark .reg-treat-desc {
  background: var(--surface-3) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark :is(.reg-treat-info, .reg-treat-form, .reg-treat-desc) :is(span, div, p, strong, label, li, h1, h2, h3, h4) {
  color: var(--text-main);
}
body.theme-dark .reg-tf-who,
body.theme-dark .reg-treat-form .small,
body.theme-dark .reg-treat-updated { color: var(--text-muted) !important; }
body.theme-dark .reg-tf-link {
  background: var(--surface-3) !important;
  color: var(--text-main) !important;
  border-color: var(--border-strong) !important;
}
body.theme-dark .reg-treat-form input:not([type="checkbox"]):not([type="radio"]),
body.theme-dark .reg-treat-form textarea,
body.theme-dark .reg-treat-form select {
  background: var(--field-bg) !important;
  color: var(--text-main) !important;
  border-color: var(--field-border) !important;
}

/* ============================================================================
   Histórico de "Chamado" (abertura de agenda): filtro de status + tabela
   2026-06-12
   ========================================================================== */
.ag-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.ag-filter-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px; border-radius: 99px; cursor: pointer;
  border: 1px solid var(--border, #e2e8f0); background: var(--surface, #fff);
  color: var(--text-muted, #475569); font-size: 0.82rem; font-weight: 600;
  transition: all .15s;
}
.ag-filter-chip:hover { border-color: var(--primary, #7c3aed); }
.ag-filter-chip.active { background: var(--primary, #7c3aed); border-color: var(--primary, #7c3aed); color: #fff; }
.ag-filter-n {
  font-size: 0.72rem; font-weight: 700; padding: 0 7px; border-radius: 99px;
  background: rgba(0,0,0,0.08); color: inherit;
}
.ag-filter-chip.active .ag-filter-n { background: rgba(255,255,255,0.25); }
body.theme-dark .ag-filter-n { background: rgba(255,255,255,0.10); }

.ag-table-wrap { overflow-x: auto; border: 1px solid var(--border, #e2e8f0); border-radius: 12px; }
.ag-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.ag-table thead th {
  text-align: left; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.4px;
  color: var(--text-muted, #64748b); font-weight: 700; padding: 11px 14px;
  background: var(--surface-2, #f8fafc); border-bottom: 1px solid var(--border, #e2e8f0); white-space: nowrap;
}
.ag-table tbody td { padding: 11px 14px; border-bottom: 1px solid var(--border, #e2e8f0); color: var(--text-main, #1e293b); vertical-align: middle; }
.ag-table tbody tr:last-child td { border-bottom: none; }
.ag-table tbody tr:hover td { background: var(--surface-2, #f8fafc); }
.ag-td-proto { font-weight: 800; white-space: nowrap; }
.ag-td-proto i { width: 13px; height: 13px; vertical-align: -2px; color: var(--text-muted, #94a3b8); }
.ag-td-profs { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-td-steps { font-weight: 700; color: var(--text-muted, #64748b); white-space: nowrap; }
.ag-td-acts { white-space: nowrap; text-align: right; }
.ag-td-acts .btn { margin-left: 6px; }
.ag-td-acts .btn i { width: 14px; height: 14px; }

/* Checklist somente-leitura (Visualizar) */
.reg-checklist-ro .reg-checklist-list li label { cursor: default; }
.reg-checklist-ro input { cursor: default; }

@media (max-width: 720px) {
  .ag-table thead { display: none; }
  .ag-table, .ag-table tbody, .ag-table tr, .ag-table td { display: block; width: 100%; }
  .ag-table tr { border-bottom: 1px solid var(--border, #e2e8f0); padding: 6px 0; }
  .ag-table td { border: none; padding: 5px 14px; }
  .ag-td-acts { text-align: left; }
  .ag-td-acts .btn { margin: 4px 6px 0 0; }
}

/* ============================================================================
   Painel de Categorias (Kanban Regulação) — redesign UX/UI  2026-06-12
   Grid responsivo, cards limpos, badges de SLA, ações com hover, dark-aware.
   Prefixo #view-regulacao para vencer regras antigas.
   ========================================================================== */
#view-regulacao .reg-cat-panel { max-width: 1200px; margin: 0 auto; padding: 2px 0 8px; }
#view-regulacao .reg-cat-intro { font-size: 0.84rem; color: var(--text-muted, #64748b); margin: 2px 0 16px; }

#view-regulacao .reg-cat-newform { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
#view-regulacao .reg-cat-newform input {
  flex: 1; max-width: 440px; padding: 10px 13px; font-size: 0.9rem;
  border: 1px solid var(--border, #e2e8f0); border-radius: 10px;
  background: var(--field-bg, #fff); color: var(--text-main, #1e293b);
}

#view-regulacao .reg-cat-list {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px; align-items: start;
}
#view-regulacao .reg-cat-item {
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0);
  border-radius: 14px; box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.06));
}
#view-regulacao .reg-cat-head {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 13px 16px; border-bottom: 1px solid var(--border, #e2e8f0);
  background: linear-gradient(135deg, var(--primary-muted, #f3f0fb), transparent);
}
#view-regulacao .reg-cat-head strong { font-size: 0.95rem; font-weight: 800; color: var(--text-main, #1e293b); }
#view-regulacao .reg-cat-headacts, #view-regulacao .reg-cat-subacts { display: inline-flex; gap: 4px; flex-shrink: 0; }

#view-regulacao .reg-cat-iconbtn {
  width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border, #e2e8f0); background: var(--surface-2, #f8fafc);
  color: var(--text-muted, #64748b); border-radius: 8px; cursor: pointer; transition: all .15s; padding: 0;
}
#view-regulacao .reg-cat-iconbtn:hover { background: var(--primary, #7c3aed); color: #fff; border-color: var(--primary, #7c3aed); }
#view-regulacao .reg-cat-iconbtn i { width: 14px; height: 14px; }
#view-regulacao .reg-cat-iconbtn.has-form { color: var(--primary, #7c3aed); border-color: rgba(124,58,237,0.4); }

#view-regulacao .reg-cat-subs { display: flex; flex-direction: column; gap: 6px; padding: 10px; flex: 1; }
#view-regulacao .reg-cat-subrow {
  display: flex; align-items: center; gap: 10px; padding: 8px 11px; border-radius: 10px;
  background: var(--surface-2, #f8fafc); border: 1px solid var(--border, #e2e8f0);
}
#view-regulacao .reg-cat-subrow:hover { border-color: var(--border-strong, #cbd5e1); }
#view-regulacao .reg-cat-subname { flex: 1; min-width: 0; font-size: 0.86rem; font-weight: 600; color: var(--text-main, #1e293b); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#view-regulacao .reg-cat-slatag {
  font-size: 0.68rem; font-weight: 800; padding: 3px 9px; border-radius: 99px; white-space: nowrap;
  background: var(--primary-muted, #ede9fe); color: var(--primary, #7c3aed);
}
#view-regulacao .reg-cat-formtag {
  font-size: 0.66rem; font-weight: 700; padding: 3px 8px; border-radius: 99px; white-space: nowrap;
  background: rgba(34,197,94,0.14); color: #15803d; display: inline-flex; align-items: center; gap: 4px;
}
#view-regulacao .reg-cat-formtag i { width: 12px; height: 12px; }
#view-regulacao .reg-cat-empty { font-size: 0.8rem; color: var(--text-muted, #94a3b8); padding: 12px; text-align: center; }

#view-regulacao .reg-cat-subform, #view-regulacao .reg-cat-editform {
  display: flex; gap: 7px; align-items: center; padding: 10px 12px; border-top: 1px solid var(--border, #e2e8f0);
}
#view-regulacao .reg-cat-subform input, #view-regulacao .reg-cat-editform input {
  padding: 8px 10px; font-size: 0.82rem; border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  background: var(--field-bg, #fff); color: var(--text-main, #1e293b); min-width: 0;
}
#view-regulacao .reg-cat-subform input[type="number"], #view-regulacao .reg-cat-editform input[type="number"] { width: 92px; flex: 0 0 auto; }
#view-regulacao .reg-cat-subform input:not([type="number"]), #view-regulacao .reg-cat-editform input:not([type="number"]) { flex: 1; }
#view-regulacao .reg-cat-subform .btn, #view-regulacao .reg-cat-editform .btn { flex-shrink: 0; }

@media (max-width: 720px) {
  #view-regulacao .reg-cat-list { grid-template-columns: 1fr; }
}

/* ============================================================================
   Dashboard do Chamado (gráficos + filtros)  2026-06-12
   ========================================================================== */
.ag-dash { display: flex; flex-direction: column; gap: 16px; }
.ag-dash-filters {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end;
  background: var(--surface-2, #f8fafc); border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px; padding: 12px 14px;
}
.ag-dash-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 0.72rem; font-weight: 700; color: var(--text-muted, #64748b); }
.ag-dash-filters input, .ag-dash-filters select {
  padding: 7px 9px; font-size: 0.84rem; border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  background: var(--field-bg, #fff); color: var(--text-main, #1e293b); min-width: 150px;
}
.ag-dash-filters .btn { margin-bottom: 1px; }

.ag-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.ag-kpi {
  background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-left: 4px solid var(--border-strong, #cbd5e1);
  border-radius: 12px; padding: 14px 16px; box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.05));
}
.ag-kpi-v { font-size: 1.7rem; font-weight: 800; line-height: 1; color: var(--text-main, #1e293b); }
.ag-kpi-l { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.3px; color: var(--text-muted, #64748b); margin-top: 5px; text-transform: uppercase; }
.ag-kpi.is-primary { border-left-color: var(--primary, #7c3aed); }
.ag-kpi.is-primary .ag-kpi-v { color: var(--primary, #7c3aed); }
.ag-kpi.is-accent { border-left-color: var(--accent, #c5ad7a); }
.ag-kpi.is-ok { border-left-color: #22c55e; }

.ag-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 16px; }
.ag-chart-card {
  background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0);
  border-radius: 14px; padding: 14px 16px; box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.05));
}
.ag-chart-title { font-size: 0.85rem; font-weight: 800; color: var(--text-main, #1e293b); margin-bottom: 10px; }
.ag-chart-box { position: relative; height: 240px; }

/* ============================================================================
   Calendário do Chamado: filtros + modal de detalhes do dia  2026-06-12
   ========================================================================== */
.reg-cal-filters {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 12px;
  background: var(--surface-2, #f8fafc); border: 1px solid var(--border, #e2e8f0);
  border-radius: 10px; padding: 10px 12px;
}
.reg-cal-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 0.7rem; font-weight: 700; color: var(--text-muted, #64748b); }
.reg-cal-filters select {
  padding: 6px 8px; font-size: 0.82rem; border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  background: var(--field-bg, #fff); color: var(--text-main, #1e293b); min-width: 140px;
}
.reg-cal-filters .btn { margin-bottom: 1px; }

/* Modal de detalhes do dia */
.reg-cal-day { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .reg-cal-day { grid-template-columns: 1fr; } }
.reg-cal-day-title { display: flex; align-items: center; gap: 7px; font-weight: 800; font-size: 0.88rem; color: var(--text-main, #1e293b); margin-bottom: 10px; }
.reg-cal-day-list { display: flex; flex-direction: column; gap: 8px; max-height: 50vh; overflow-y: auto; padding-right: 4px; }
.reg-cal-item {
  background: var(--surface-2, #f8fafc); border: 1px solid var(--border, #e2e8f0);
  border-left: 4px solid var(--border-strong, #cbd5e1); border-radius: 10px; padding: 9px 12px;
}
.reg-cal-item-vaga { border-left-color: #22c55e; }
.reg-cal-item-canc { border-left-color: #ef4444; }
.reg-cal-item-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.reg-cal-item-top strong { font-size: 0.88rem; color: var(--text-main, #1e293b); }
.reg-cal-item-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.reg-cal-pill {
  display: inline-flex; align-items: center; gap: 4px; font-size: 0.7rem; font-weight: 700;
  padding: 2px 8px; border-radius: 99px; background: var(--primary-muted, #ede9fe); color: var(--primary, #7c3aed);
}
.reg-cal-pill i { width: 11px; height: 11px; }
.reg-cal-pill-proto { background: var(--surface-3, #eef2f7); color: var(--text-muted, #475569); }
.reg-cal-item-times { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.reg-cal-time {
  font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 6px;
  background: var(--surface-3, #eef2f7); color: var(--text-main, #1e293b); border: 1px solid var(--border, #e2e8f0);
}
.reg-cal-muted { color: var(--text-muted, #94a3b8); }
.reg-cal-empty { font-size: 0.82rem; color: var(--text-muted, #94a3b8); padding: 10px; text-align: center; }

/* ---- Modal de detalhes do dia: maior (mais largo e mais alto) ---- */
.reg-modal-box:has(.reg-cal-day) { max-width: 920px !important; width: 95% !important; }
.reg-modal-box:has(.reg-cal-day) .reg-modal-body { max-height: 78vh; overflow-y: auto; }
.reg-cal-day-list { max-height: 62vh; }
/* Garante fundo escuro do modal e itens no dark */
body.theme-dark .reg-modal-box:has(.reg-cal-day),
body.theme-dark .reg-modal-box:has(.reg-cal-day) .reg-modal-body { background: var(--surface) !important; color: var(--text-main) !important; }
body.theme-dark .reg-cal-item { background: var(--surface-2) !important; border-color: var(--border) !important; }
body.theme-dark .reg-cal-time { background: var(--surface-3) !important; color: var(--text-main) !important; border-color: var(--border) !important; }
body.theme-dark .reg-cal-pill-proto { background: var(--surface-3) !important; color: var(--text-muted) !important; }

/* ---- Modal do dia: maior por classe (confiável) + dark sólido ---- */
.reg-modal-box.reg-modal-wide { max-width: 920px !important; width: 95% !important; }
.reg-modal-box.reg-modal-wide .reg-modal-body { max-height: 78vh; overflow-y: auto; }
.reg-modal-box.reg-modal-wide .reg-cal-day-list { max-height: 64vh; }

body.theme-dark .reg-modal-box,
body.theme-dark .reg-modal-box .reg-modal-body { background: var(--surface) !important; color: var(--text-main) !important; }
body.theme-dark .reg-modal-box .reg-modal-head h3 { color: var(--text-main) !important; }
body.theme-dark .reg-cal-day-title { color: var(--text-main) !important; }
body.theme-dark .reg-cal-item-top strong { color: var(--text-main) !important; }
body.theme-dark .reg-cal-empty { color: var(--text-muted) !important; }

/* ---- Corrige a barra branca (.reg-cal-day) e reforça dark do modal do dia ---- */
body.theme-dark .reg-cal-day { background: transparent !important; }
body.theme-dark .reg-cal-day-sec { background: transparent !important; }
.reg-modal-box.reg-modal-wide .reg-cal-day { background: transparent; }
.reg-modal-box.reg-modal-wide .reg-modal-body { padding-bottom: 8px; }

/* ---- Modal do dia: ocupa a altura (corpo preenche, listas crescem) ---- */
.reg-modal-box.reg-modal-wide { display: flex !important; flex-direction: column !important; }
.reg-modal-box.reg-modal-wide .reg-modal-body { flex: 1 1 auto !important; min-height: 0; overflow-y: auto; }
.reg-modal-box.reg-modal-wide .reg-cal-day { height: 100%; align-content: start; }
.reg-modal-box.reg-modal-wide .reg-cal-day-list { max-height: none; }

/* ---- Botão × único no cabeçalho dos modais da Regulação ---- */
.reg-modal-head { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; }
.reg-modal-x {
  flex-shrink: 0; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
  border: none; background: transparent; color: var(--text-muted, #94a3b8); font-size: 1.6rem; line-height: 1;
  cursor: pointer; border-radius: 8px; transition: all .15s; padding: 0;
}
.reg-modal-x:hover { background: var(--surface-2, #f1f5f9); color: var(--text-main, #1e293b); }
body.theme-dark .reg-modal-x:hover { background: var(--surface-3) !important; color: var(--text-main) !important; }

/* ============================================================================
   Lista de anexos "staged" (reaproveitar vaga + nova tarefa) — visual limpo
   2026-06-12
   ========================================================================== */
.reg-reuse-attach { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--border, #e2e8f0); }
.reg-task-attachments-head { display: flex; align-items: center; gap: 7px; font-weight: 700; font-size: 0.86rem; color: var(--text-main, #1e293b); margin-bottom: 8px; }
.reg-task-attachments-head i { width: 16px; height: 16px; color: var(--primary, #7c3aed); }
.reg-task-attachments-head .small { font-weight: 400; color: var(--text-muted, #64748b); }

.reg-task-staged-list { display: flex; flex-direction: column; gap: 6px; }
.reg-task-staged-list:not(:empty) { margin: 6px 0 10px; }
.reg-task-staged-head { display: flex; align-items: center; gap: 6px; font-size: 0.74rem; font-weight: 700; color: var(--text-muted, #64748b); margin-bottom: 2px; }
.reg-task-staged-head i { width: 13px; height: 13px; }

.reg-task-staged-item {
  display: flex; align-items: center; gap: 10px; padding: 8px 11px; border-radius: 10px;
  background: var(--surface-2, #f8fafc); border: 1px solid var(--border, #e2e8f0);
}
.reg-task-staged-icon { flex-shrink: 0; display: inline-flex; color: var(--text-muted, #94a3b8); }
.reg-task-staged-icon i { width: 18px; height: 18px; }
.reg-task-staged-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.reg-task-staged-info strong { font-size: 0.84rem; font-weight: 600; color: var(--text-main, #1e293b); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reg-task-staged-info small { font-size: 0.72rem; color: var(--text-muted, #64748b); }

/* Botão remover: compacto (ícone), não um bloco vermelho enorme */
.reg-task-staged-item .btn.btn-danger {
  flex-shrink: 0; width: 30px; height: 30px; min-width: 0; padding: 0; margin: 0;
  display: inline-flex; align-items: center; justify-content: center; border-radius: 8px;
  background: transparent; color: #ef4444; border: 1px solid var(--border, #e2e8f0); box-shadow: none;
}
.reg-task-staged-item .btn.btn-danger:hover { background: #ef4444; color: #fff; border-color: #ef4444; transform: none; }
.reg-task-staged-item .btn.btn-danger i { width: 15px; height: 15px; }

.reg-att-add-btn i { width: 15px; height: 15px; }
.reg-task-attachment-help { font-size: 0.74rem; color: var(--text-muted, #94a3b8); margin: 8px 0 0; }

/* ============================================================================
   Painel de Categorias — mais espaçamento nos cards  2026-06-13
   ========================================================================== */
#view-regulacao .reg-cat-list { gap: 20px; grid-template-columns: repeat(auto-fill, minmax(370px, 1fr)); }
#view-regulacao .reg-cat-item { border-radius: 16px; }
#view-regulacao .reg-cat-head { padding: 15px 18px; }
#view-regulacao .reg-cat-head strong { font-size: 1rem; }

#view-regulacao .reg-cat-subs { padding: 14px; gap: 9px; }
#view-regulacao .reg-cat-subrow { padding: 11px 14px; gap: 12px; }
#view-regulacao .reg-cat-subname { font-size: 0.88rem; }
#view-regulacao .reg-cat-slatag { padding: 4px 10px; }

#view-regulacao .reg-cat-iconbtn { width: 31px; height: 31px; }
#view-regulacao .reg-cat-subacts, #view-regulacao .reg-cat-headacts { gap: 6px; }

#view-regulacao .reg-cat-subform, #view-regulacao .reg-cat-editform { padding: 13px 14px; gap: 9px; }
#view-regulacao .reg-cat-subform input, #view-regulacao .reg-cat-editform input { padding: 9px 11px; }

#view-regulacao .reg-cat-newform { margin-bottom: 22px; }
#view-regulacao .reg-cat-intro { margin-bottom: 20px; }

/* ============================================================================
   Painel de Categorias — layout MASONRY (sem buracos de altura)  2026-06-13
   Substitui o grid (que alinhava linhas pela maior e deixava vãos) por colunas
   que fluem, preenchendo o espaço. Cada card é indivisível.
   ========================================================================== */
#view-regulacao .reg-cat-list {
  display: block !important;
  grid-template-columns: none !important;
  columns: 360px 3;
  column-gap: 20px;
}
#view-regulacao .reg-cat-item {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  margin: 0 0 20px;
  width: 100%;
}
@media (max-width: 1100px) { #view-regulacao .reg-cat-list { columns: 320px 2; } }
@media (max-width: 720px)  { #view-regulacao .reg-cat-list { columns: 1; } }

/* ============================================================================
   Construtor de formulário por subcategoria — UX melhorado  2026-06-13
   Grade do formulário (largura por campo), cards no editor, prévia ao vivo.
   ========================================================================== */

/* Grade do formulário: 2 colunas; campo "inteira" ocupa as 2, "metade" ocupa 1 */
.reg-tf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.reg-tf-field { grid-column: span 2; display: flex; flex-direction: column; gap: 5px; font-size: 0.82rem; font-weight: 600; color: var(--text-main, #334155); }
.reg-tf-field-half { grid-column: span 1; }
.reg-tf-field > input, .reg-tf-field > textarea, .reg-tf-field > select {
  font-weight: 400; padding: 8px 10px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  background: var(--field-bg, #fff); color: var(--text-main, #1e293b);
}
@media (max-width: 560px) { .reg-tf-grid { grid-template-columns: 1fr; } .reg-tf-field, .reg-tf-field-half { grid-column: span 1; } }

/* Layout do construtor: editor | prévia */
.fb-cols { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 18px; align-items: start; margin-top: 6px; }
@media (max-width: 800px) { .fb-cols { grid-template-columns: 1fr; } }
.reg-fb-head { display: flex; align-items: center; gap: 7px; font-weight: 800; font-size: 0.86rem; color: var(--text-main, #1e293b); margin: 4px 0 10px; }
.reg-fb-head i { width: 16px; height: 16px; color: var(--primary, #7c3aed); }

/* Card de cada campo no editor */
.fb-field { background: var(--surface-2, #f8fafc); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 12px; margin-bottom: 10px; }
.fb-field-top { display: flex; align-items: center; gap: 9px; }
.fb-field-num { flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px; background: var(--primary-muted, #ede9fe); color: var(--primary, #7c3aed); font-size: 0.72rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.fb-field-label { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px; font-size: 0.86rem; font-weight: 600; background: var(--field-bg, #fff); color: var(--text-main, #1e293b); }
.fb-field-del { flex-shrink: 0; width: 30px; height: 30px; border: 1px solid var(--border, #e2e8f0); background: transparent; color: #ef4444; border-radius: 8px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.fb-field-del:hover { background: #ef4444; color: #fff; }
.fb-field-del i { width: 14px; height: 14px; }
.fb-field-opts { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-end; margin-top: 10px; }
.fb-field-opts > label { display: flex; flex-direction: column; gap: 3px; font-size: 0.7rem; font-weight: 700; color: var(--text-muted, #64748b); }
.fb-field-opts select { padding: 6px 8px; border: 1px solid var(--border, #e2e8f0); border-radius: 7px; font-size: 0.8rem; background: var(--field-bg, #fff); color: var(--text-main, #1e293b); }
.fb-field-req { flex-direction: row !important; align-items: center !important; gap: 6px !important; cursor: pointer; }
.fb-field-req input { width: 15px; height: 15px; accent-color: var(--primary, #7c3aed); }
.fb-field-extra { display: flex; gap: 10px; margin-top: 9px; }
.fb-field-extra label { display: flex; flex-direction: column; gap: 3px; font-size: 0.7rem; font-weight: 700; color: var(--text-muted, #64748b); }
.fb-field-extra input { padding: 7px 9px; border: 1px solid var(--border, #e2e8f0); border-radius: 7px; font-size: 0.8rem; background: var(--field-bg, #fff); color: var(--text-main, #1e293b); }
.fb-field-extra-full { flex: 1; }
.fb-field-extra-full input { width: 100%; box-sizing: border-box; }
.reg-fb-add { margin-top: 2px; }

/* Coluna de prévia */
.fb-preview-col { position: sticky; top: 0; }
.fb-preview { background: var(--surface-2, #f8fafc); border: 1px dashed var(--border-strong, #cbd5e1); border-radius: 12px; padding: 14px; }
.fb-preview .reg-treat-form { background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 10px; padding: 12px; }

/* prévia com mais espaço no construtor */
.fb-cols { grid-template-columns: 1fr 1fr; gap: 22px; }

/* ============================================================================
   DEMANDAS DE FATURAMENTO — ambiente do setor (contratos, producao, exames,
   citopatologico, BPA, transporte) por competencia.  2026-06-13
   ========================================================================== */
.fatd-wrap { display: flex; flex-direction: column; gap: 18px; }

/* Barra de filtros */
.fatd-filters {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px;
  background: var(--card-bg, #fff); border: 1px solid var(--border, #e6e1ef);
  border-radius: 14px; padding: 14px 16px;
}
.fatd-filter { display: flex; flex-direction: column; gap: 4px; min-width: 150px; }
.fatd-filter-grow { flex: 1; min-width: 200px; }
.fatd-filter > label { font-size: 0.72rem; font-weight: 700; color: var(--text-muted, #6b5a82); text-transform: uppercase; letter-spacing: 0.02em; }
.fatd-filter > input, .fatd-filter > select {
  padding: 9px 11px; border: 1px solid var(--border, #e2e8f0); border-radius: 9px;
  font-size: 0.88rem; background: var(--field-bg, #fff); color: var(--text-main, #1e293b);
}
.fatd-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }

/* KPIs */
.fatd-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
@media (max-width: 1000px) { .fatd-kpis { grid-template-columns: repeat(2, 1fr); } }
.fatd-kpi {
  background: var(--card-bg, #fff); border: 1px solid var(--border, #e6e1ef);
  border-left: 4px solid #6d1f6c; border-radius: 14px; padding: 14px 16px;
  box-shadow: 0 1px 3px rgba(48,27,60,0.05);
}
.fatd-kpi.k-money { border-left-color: #1e8e5a; }
.fatd-kpi.k-audit { border-left-color: #f59e0b; }
.fatd-kpi.k-ok { border-left-color: #22c55e; }
.fatd-kpi.k-glosa { border-left-color: #ef4444; }
.fatd-kpi-label { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted, #6b5a82); }
.fatd-kpi-value { font-size: 1.45rem; font-weight: 800; color: var(--text-main, #2c1a3a); margin: 4px 0 2px; }
.fatd-kpi-hint { font-size: 0.74rem; color: var(--text-muted, #8a7a9c); }

/* Pipeline de status */
.fatd-pipeline {
  display: flex; align-items: stretch; flex-wrap: wrap; gap: 6px;
  background: var(--card-bg, #fff); border: 1px solid var(--border, #e6e1ef);
  border-radius: 14px; padding: 14px 16px;
}
.fatd-pipe-step {
  flex: 1; min-width: 92px; display: flex; flex-direction: column; align-items: center;
  gap: 4px; padding: 10px 6px; border-radius: 10px; background: var(--surface-2, #f6f3fb);
  border: 1px solid transparent;
}
.fatd-pipe-n { font-size: 1.2rem; font-weight: 800; color: var(--text-main, #2c1a3a); }
.fatd-pipe-label { font-size: 0.72rem; font-weight: 700; color: var(--text-muted, #6b5a82); text-align: center; }
.fatd-pipe-arrow { display: flex; align-items: center; font-size: 1.4rem; color: var(--border-strong, #c7bcd8); font-weight: 700; }
/* tintas suaves por etapa */
.fatd-pipe-step.st-receb { background: rgba(59,130,246,0.10); }
.fatd-pipe-step.st-audit { background: rgba(245,158,11,0.12); }
.fatd-pipe-step.st-bpa { background: rgba(99,102,241,0.10); }
.fatd-pipe-step.st-tram { background: rgba(139,92,246,0.10); }
.fatd-pipe-step.st-compras { background: rgba(20,184,166,0.10); }
.fatd-pipe-step.st-notas { background: rgba(6,182,212,0.10); }
.fatd-pipe-step.st-ok { background: rgba(34,197,94,0.12); }

/* Graficos */
.fatd-charts { display: grid; grid-template-columns: 1fr 1.3fr; gap: 14px; }
@media (max-width: 900px) { .fatd-charts { grid-template-columns: 1fr; } }
.fatd-chart-card {
  background: var(--card-bg, #fff); border: 1px solid var(--border, #e6e1ef);
  border-radius: 14px; padding: 14px 16px;
}
.fatd-chart-title { font-size: 0.84rem; font-weight: 800; color: var(--text-main, #2c1a3a); margin-bottom: 8px; }
.fatd-chart-box { position: relative; height: 230px; }

/* Tabela */
.fatd-table-card { background: var(--card-bg, #fff); border: 1px solid var(--border, #e6e1ef); border-radius: 14px; overflow: hidden; }
.fatd-table-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--border, #ece7f4); }
.fatd-table-head strong { font-size: 0.95rem; color: var(--text-main, #2c1a3a); }
.fatd-count { font-size: 0.76rem; color: var(--text-muted, #8a7a9c); }
.fatd-table-wrap { overflow-x: auto; }
.fatd-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.fatd-table th {
  text-align: left; padding: 11px 14px; font-size: 0.72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.02em; color: var(--text-muted, #6b5a82);
  background: var(--surface-2, #f8f6fc); border-bottom: 1px solid var(--border, #ece7f4); white-space: nowrap;
}
.fatd-table th.num, .fatd-table td.num { text-align: right; }
.fatd-table th.acts, .fatd-table td.acts { text-align: center; }
.fatd-table td { padding: 11px 14px; border-bottom: 1px solid var(--border, #f1ecf7); color: var(--text-main, #33263f); vertical-align: middle; }
.fatd-table tbody tr:hover { background: var(--surface-2, #faf8fd); }
.fatd-titulo { font-weight: 600; color: var(--text-main, #2c1a3a); }
.fatd-obs { font-size: 0.74rem; color: var(--text-muted, #8a7a9c); margin-top: 2px; }
.fatd-tipo { display: inline-block; font-size: 0.7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--surface-2, #efeaf7); color: var(--text-muted, #6b5a82); }
.fatd-contrato { font-size: 0.8rem; margin-top: 3px; color: var(--text-main, #43395f); }
.fatd-muted { color: var(--text-muted, #a99ebb); font-style: italic; }
.fatd-valor { font-weight: 700; white-space: nowrap; }
.fatd-empty { text-align: center; color: var(--text-muted, #8a7a9c); padding: 26px 14px; }

/* Badge de status (geral) */
.fatd-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 0.72rem; font-weight: 700; }
.fatd-badge.st-receb { background: #dbeafe; color: #1d4ed8; }
.fatd-badge.st-audit { background: #fef3c7; color: #b45309; }
.fatd-badge.st-bpa { background: #e0e7ff; color: #4338ca; }
.fatd-badge.st-tram { background: #ede9fe; color: #6d28d9; }
.fatd-badge.st-compras { background: #ccfbf1; color: #0f766e; }
.fatd-badge.st-notas { background: #cffafe; color: #0e7490; }
.fatd-badge.st-ok { background: #dcfce7; color: #15803d; }
.fatd-badge.st-glosa { background: #fee2e2; color: #b91c1c; }

/* Select de status na linha (colorido conforme etapa) */
.fatd-status-sel {
  padding: 5px 9px; border-radius: 999px; font-size: 0.74rem; font-weight: 700;
  border: 1px solid transparent; cursor: pointer; appearance: none; -webkit-appearance: none;
  background-position: right 8px center; padding-right: 22px;
}
.fatd-status-sel.st-receb { background-color: #dbeafe; color: #1d4ed8; }
.fatd-status-sel.st-audit { background-color: #fef3c7; color: #b45309; }
.fatd-status-sel.st-bpa { background-color: #e0e7ff; color: #4338ca; }
.fatd-status-sel.st-tram { background-color: #ede9fe; color: #6d28d9; }
.fatd-status-sel.st-compras { background-color: #ccfbf1; color: #0f766e; }
.fatd-status-sel.st-notas { background-color: #cffafe; color: #0e7490; }
.fatd-status-sel.st-ok { background-color: #dcfce7; color: #15803d; }
.fatd-status-sel.st-glosa { background-color: #fee2e2; color: #b91c1c; }

/* Acoes da linha */
.fatd-row-acts { display: inline-flex; gap: 6px; }
.fatd-iconbtn {
  width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--border, #e2e8f0);
  background: var(--field-bg, #fff); color: var(--text-muted, #6b5a82); cursor: pointer;
  font-size: 1rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
}
.fatd-iconbtn:hover { background: var(--surface-2, #f3eefa); color: var(--text-main, #2c1a3a); }
.fatd-iconbtn.adv { color: #15803d; font-size: 1.3rem; font-weight: 800; }
.fatd-iconbtn.adv:hover { background: #dcfce7; }
.fatd-iconbtn.del:hover { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }

/* Modal */
.fatd-modal-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border, #ece7f4); }

/* ============================ MODO ESCURO ============================ */
body.theme-dark .fatd-filters,
body.theme-dark .fatd-kpi,
body.theme-dark .fatd-pipeline,
body.theme-dark .fatd-chart-card,
body.theme-dark .fatd-table-card { background: var(--card-bg, #1f1b29); border-color: var(--border, #34303f); }
body.theme-dark .fatd-filter > input,
body.theme-dark .fatd-filter > select { background: var(--field-bg, #15121c); border-color: var(--border, #3a3548); color: var(--text-main, #e7e1f0); }
body.theme-dark .fatd-pipe-step { background: rgba(255,255,255,0.04); }
body.theme-dark .fatd-kpi-value, body.theme-dark .fatd-pipe-n, body.theme-dark .fatd-titulo,
body.theme-dark .fatd-chart-title, body.theme-dark .fatd-table-head strong { color: #ede7f7; }
body.theme-dark .fatd-table th { background: #221d2e; color: #b9aecb; border-color: #34303f; }
body.theme-dark .fatd-table td { color: #ddd5ea; border-color: #2c2738; }
body.theme-dark .fatd-table tbody tr:hover { background: rgba(255,255,255,0.03); }
body.theme-dark .fatd-tipo { background: #2c2738; color: #b9aecb; }
body.theme-dark .fatd-iconbtn { background: #221d2e; border-color: #3a3548; color: #b9aecb; }
body.theme-dark .fatd-iconbtn:hover { background: #322b42; color: #ede7f7; }
/* badges/selects mantem cor viva no escuro com leve ajuste de fundo */
body.theme-dark .fatd-status-sel,
body.theme-dark .fatd-badge { filter: brightness(0.92); }

/* ============================================================================
   Faturamento — navegacao por AREA (sidebar) + Visao geral.  2026-06-13
   ========================================================================== */
.fat-body { display: flex; gap: 18px; align-items: flex-start; margin-top: 14px; }
.fat-main { flex: 1; min-width: 0; }
.fat-sidebar {
  width: 236px; flex-shrink: 0; background: var(--card-bg, #fff);
  border: 1px solid var(--border, #e6e1ef); border-radius: 14px; padding: 12px;
  position: sticky; top: 8px;
}
.fat-sidebar.hidden { display: none; }
@media (max-width: 900px) { .fat-body { flex-direction: column; } .fat-sidebar { width: 100%; position: static; } }

.fat-side-title { font-size: 0.7rem; letter-spacing: 0.08em; color: var(--text-muted, #8a7a9c); font-weight: 800; padding: 4px 10px 10px; }
.fat-side-nav { display: flex; flex-direction: column; gap: 3px; }
.fat-side-item {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  padding: 10px 12px; border-radius: 10px; border: 1px solid transparent; background: transparent;
  color: var(--text-main, #43395f); font-weight: 600; font-size: 0.85rem; cursor: pointer;
}
.fat-side-item i { width: 17px; height: 17px; flex-shrink: 0; }
.fat-side-item:hover { background: var(--surface-2, #f5f1fb); }
.fat-side-item.active { background: #f0e6f0; color: #6d1f6c; border-color: #e3cfe3; font-weight: 800; }
.fat-side-children { display: flex; flex-direction: column; gap: 2px; margin: 2px 0 6px 30px; }
.fat-side-child {
  text-align: left; padding: 7px 11px; border-radius: 8px; border: none; background: transparent;
  color: var(--text-muted, #6b5a82); font-size: 0.8rem; font-weight: 600; cursor: pointer;
}
.fat-side-child:hover { background: var(--surface-2, #f5f1fb); color: var(--text-main, #43395f); }
.fat-side-child.active { color: #6d1f6c; font-weight: 800; background: #f7eef7; }

/* Cabecalho da area */
.fat-area-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.fat-area-title { margin: 0 0 2px; font-size: 1.18rem; font-weight: 800; color: var(--text-main, #2c1a3a); }

/* Chips de contrato */
.fatd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fatd-chip {
  padding: 6px 14px; border-radius: 999px; border: 1px solid var(--border, #e2e8f0);
  background: var(--card-bg, #fff); color: var(--text-muted, #6b5a82); font-size: 0.8rem; font-weight: 700; cursor: pointer;
}
.fatd-chip:hover { background: var(--surface-2, #f5f1fb); }
.fatd-chip.active { background: #6d1f6c; color: #fff; border-color: #6d1f6c; }

/* Visao geral */
.fat-visao-head { margin-bottom: 2px; }
.fat-visao-title { margin: 0; font-size: 1.25rem; font-weight: 800; color: var(--text-main, #2c1a3a); }
.fat-visao-cols { display: grid; grid-template-columns: 1.25fr 1fr; gap: 14px; }
@media (max-width: 900px) { .fat-visao-cols { grid-template-columns: 1fr; } }
.fat-visao-areas-card { background: var(--card-bg, #fff); border: 1px solid var(--border, #e6e1ef); border-radius: 14px; padding: 14px 16px; }
.fat-visao-areas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 10px; }
@media (max-width: 560px) { .fat-visao-areas { grid-template-columns: 1fr; } }
.fat-visao-area { text-align: left; border: 1px solid var(--border, #e6e1ef); border-radius: 12px; padding: 12px; background: var(--surface-2, #f8f6fc); cursor: pointer; transition: border-color .12s; }
.fat-visao-area:hover { border-color: #6d1f6c; }
.fat-visao-area-name { font-weight: 800; color: var(--text-main, #2c1a3a); font-size: 0.9rem; }
.fat-visao-area-n { font-size: 0.76rem; color: var(--text-muted, #8a7a9c); margin-top: 2px; }
.fat-visao-area-val { font-size: 1.08rem; font-weight: 800; color: #1e8e5a; margin-top: 6px; }
.fat-visao-area-foot { display: flex; gap: 12px; margin-top: 6px; font-size: 0.72rem; font-weight: 700; }
.fat-visao-area-foot .ok { color: #15803d; }
.fat-visao-area-foot .gl { color: #b91c1c; }
.fat-visao-transporte {
  display: flex; align-items: center; gap: 16px; width: 100%; text-align: left;
  border: 1px solid var(--border, #e6e1ef); border-radius: 14px; padding: 14px 18px;
  background: var(--card-bg, #fff); cursor: pointer; transition: border-color .12s;
}
.fat-visao-transporte:hover { border-color: #6d1f6c; }
.fat-visao-tp-metrics { display: flex; gap: 24px; margin-left: auto; }
.fat-visao-tp-metrics div { display: flex; flex-direction: column; }
.fat-visao-tp-metrics strong { font-size: 1.1rem; color: var(--text-main, #2c1a3a); }
.fat-visao-tp-metrics span { font-size: 0.72rem; color: var(--text-muted, #8a7a9c); }
.fat-visao-transporte > i { width: 20px; height: 20px; color: var(--text-muted, #a99ebb); flex-shrink: 0; }

/* ===== MODO ESCURO ===== */
body.theme-dark .fat-sidebar,
body.theme-dark .fat-visao-areas-card,
body.theme-dark .fat-visao-area,
body.theme-dark .fat-visao-transporte,
body.theme-dark .fatd-chip { background: var(--card-bg, #1f1b29); border-color: var(--border, #34303f); }
body.theme-dark .fat-side-item { color: #ddd5ea; }
body.theme-dark .fat-side-item:hover, body.theme-dark .fat-side-child:hover { background: rgba(255,255,255,0.05); }
body.theme-dark .fat-side-item.active { background: #3a2a3f; color: #f0c8ef; border-color: #503a53; }
body.theme-dark .fat-side-child { color: #b9aecb; }
body.theme-dark .fat-side-child.active { background: #3a2a3f; color: #f0c8ef; }
body.theme-dark .fat-area-title, body.theme-dark .fat-visao-title,
body.theme-dark .fat-visao-area-name, body.theme-dark .fat-visao-tp-metrics strong { color: #ede7f7; }
body.theme-dark .fat-visao-area { background: rgba(255,255,255,0.04); }
body.theme-dark .fatd-chip { color: #b9aecb; }
body.theme-dark .fatd-chip.active { background: #8a3a88; color: #fff; border-color: #8a3a88; }
body.theme-dark .fat-visao-area:hover, body.theme-dark .fat-visao-transporte:hover { border-color: #8a3a88; }

/* ============================================================================
   Faturamento — identidade por area + vigencia.  2026-06-13
   ========================================================================== */
.fat-area-head-left { display: flex; align-items: center; gap: 13px; }
.fat-area-icon {
  width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--area-color, #6d1f6c); color: #fff;
  box-shadow: 0 4px 12px -4px var(--area-color, #6d1f6c);
}
.fat-area-icon i { width: 22px; height: 22px; }

/* reforco da cor da area na tabela e no pipeline */
.fatd-wrap .fatd-table-card { border-top: 3px solid var(--area-color, #6d1f6c); }
.fatd-wrap .fat-area-title { color: var(--area-color, #2c1a3a); }

/* Vigencia na celula de competencia */
.fatd-vig { font-size: 0.74rem; color: var(--text-muted, #8a7a9c); margin-top: 3px; white-space: nowrap; }

body.theme-dark .fatd-wrap .fat-area-title { color: #ede7f7; }
body.theme-dark .fatd-vig { color: #9b8fb0; }

/* ============================================================================
   Faturamento — campos especificos por area (modal + tabela).  2026-06-13
   ========================================================================== */
.fat-extra-sep {
  font-size: 0.72rem; font-weight: 800; color: var(--text-muted, #6b5a82);
  text-transform: uppercase; letter-spacing: 0.04em;
  margin: 4px 0 10px; padding-top: 12px; border-top: 1px dashed var(--border, #e2e8f0);
}
.fat-extra-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 560px) { .fat-extra-grid { grid-template-columns: 1fr; } }
.fat-extra-grid > div { display: flex; flex-direction: column; gap: 5px; }
.fat-extra-grid label { font-size: 0.78rem; font-weight: 600; color: var(--text-main, #334155); }
.fat-extra-grid input, .fat-extra-grid select {
  padding: 8px 10px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  background: var(--field-bg, #fff); color: var(--text-main, #1e293b); font-size: 0.88rem;
}

/* Resumo dos campos da area na tabela */
.fatd-exwrap { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.fatd-ex {
  font-size: 0.71rem; color: var(--text-muted, #6b5a82);
  background: var(--surface-2, #f3eefa); border: 1px solid var(--border, #ece7f4);
  border-radius: 6px; padding: 2px 8px;
}
.fatd-ex b { font-weight: 700; color: var(--text-main, #43395f); }

body.theme-dark .fat-extra-sep { color: #b9aecb; border-color: #3a3548; }
body.theme-dark .fat-extra-grid label { color: #ddd5ea; }
body.theme-dark .fat-extra-grid input, body.theme-dark .fat-extra-grid select {
  background: #15121c; border-color: #3a3548; color: #e7e1f0;
}
body.theme-dark .fatd-ex { background: #2c2738; border-color: #3a3548; color: #b9aecb; }
body.theme-dark .fatd-ex b { color: #ddd5ea; }

/* ===== Procedimentos: acompanhantes e variacoes (pai/filho) ===== */
.reg-proc-relations{margin-top:12px;padding-top:10px;border-top:1px solid #e2e8f0;}
.reg-rel-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.reg-rel-chip{display:inline-flex;align-items:center;gap:6px;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:14px;padding:3px 6px 3px 10px;font-size:12px;}
.reg-rel-chip strong{font-weight:700;}
.reg-rel-chip button{display:inline-flex;align-items:center;justify-content:center;border:0;background:#c7d2fe;color:#3730a3;border-radius:50%;width:18px;height:18px;cursor:pointer;padding:0;}
.reg-rel-chip button:hover{background:#a5b4fc;}
.reg-rel-empty{font-size:12px;color:#94a3b8;padding:6px 0;}
.reg-rel-vars{display:flex;flex-direction:column;gap:6px;margin:8px 0;}
.reg-rel-var{display:flex;gap:6px;align-items:center;}
.reg-rel-var input[type=text]{flex:1;min-width:0;}
.reg-rel-ativo{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#475569;white-space:nowrap;}
.reg-rel-chip button i,.reg-rel-var .btn i{width:13px;height:13px;}

.reg-proc-flag-rel{background:#eef2ff;color:#3730a3;border-color:#c7d2fe;}

/* ===== Painel admin: menu lateral em modulos colapsaveis ===== */
#view-admin .adm-body{display:flex;gap:16px;align-items:flex-start;}
#view-admin .adm-side{flex:0 0 232px;max-width:232px;position:sticky;top:12px;}
#view-admin .adm-content{flex:1 1 auto;min-width:0;}
#view-admin .adm-nav-groups{display:flex;flex-direction:column;gap:2px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:8px 12px;}
#view-admin .adm-nav-groups .ubs-menu-group{padding:2px 0;}
#view-admin .adm-nav-groups .adm-tab{display:flex;align-items:center;gap:8px;width:100%;text-align:left;justify-content:flex-start;padding:8px 10px;border-radius:8px;white-space:normal;margin:1px 0;}
#view-admin .adm-nav-groups .adm-tab:hover{background:#eef2f7;color:#0f172a;}
#view-admin .adm-nav-groups .adm-tab.active{background:var(--primary);color:#fff;box-shadow:none;}
#view-admin .adm-nav-groups .adm-tab.active svg{color:#fff;}
@media (max-width:900px){
  #view-admin .adm-body{flex-direction:column;}
  #view-admin .adm-side{flex:1 1 auto;max-width:none;width:100%;position:static;}
}

/* ===== Painel DEV/Master: menu lateral em modulos colapsaveis ===== */
#view-master .master-menu-group{display:block;}
#view-master .master-menu-group > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;margin-top:4px;font-size:0.7rem;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;color:#94a3b8;}
#view-master .master-menu-group > summary::-webkit-details-marker{display:none;}
#view-master .master-menu-group > summary::after{content:"\25be";transition:transform .16s ease;color:#94a3b8;font-size:0.8rem;}
#view-master .master-menu-group:not([open]) > summary::after{transform:rotate(-90deg);}
#view-master .master-menu-group .master-menu-item{width:100%;margin-top:4px;}

/* ===== Intranet: menu lateral em modulos colapsaveis ===== */
#intranet-menu-list .intranet-menu-group{border:0;margin:0;}
#intranet-menu-list .intranet-menu-group > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-top:6px;font-size:0.7rem;font-weight:800;letter-spacing:0.04em;text-transform:uppercase;color:#94a3b8;}
#intranet-menu-list .intranet-menu-group > summary::-webkit-details-marker{display:none;}
#intranet-menu-list .intranet-menu-group > summary::after{content:"\25be";transition:transform .16s ease;font-size:0.8rem;}
#intranet-menu-list .intranet-menu-group:not([open]) > summary::after{transform:rotate(-90deg);}
#intranet-menu-list .intranet-menu-group .intranet-menu-item{width:100%;margin-top:2px;}

/* ============================================================================
   Padronização visual do painel master — alinhar ao .panel-container / .intranet-header
   (restyle só CSS, sem mexer no HTML/comportamento). 2026-06-17
   ========================================================================== */
/* Conteúdo num "card" branco arredondado centralizado, como o .panel-container. */
#view-master .master-shell {
  max-width: 1500px;
  margin: 12px auto;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 16px 34px 0 rgba(78, 21, 80, 0.16), inset 0 1px 0 0 rgba(255, 255, 255, 0.95);
  padding: 20px 24px;
  height: calc(100% - 24px);
}
/* Header: mesmo realce do .intranet-header (brilho dourado no topo, sem borda lateral). */
#view-master .master-header {
  margin-bottom: 16px;
  padding: 16px 18px;
  border-left: 0;
  border-radius: 14px;
  background:
    radial-gradient(circle at 85% -40%, rgba(230, 184, 0, 0.28), rgba(0, 0, 0, 0) 42%),
    linear-gradient(125deg, #4e1550 0%, #6d1f6c 56%, #8e3a8d 100%);
  box-shadow: 0 12px 24px 0 rgba(78, 21, 80, 0.22);
}
/* Sidebar: itens compactos e flat (sem o "card flutuante" com borda + sombra grande). */
#view-master .master-menu-item {
  background: #f6f3f8;
  border: 1px solid transparent;
  border-radius: 10px;
  box-shadow: none;
  padding: 9px 12px;
  margin-top: 4px;
}
#view-master .master-menu-item:hover {
  background: #efe6f1;
  border-color: rgba(109, 31, 108, 0.18);
}
#view-master .master-menu-item.active {
  background: #6d1f6c;
  border-color: #4e1550;
  box-shadow: 0 8px 18px -6px rgba(78, 21, 80, 0.55);
}
#view-master .master-menu-item.active span,
#view-master .master-menu-item.active small {
  color: #fff;
}
/* Peso de fonte mais leve no menu (a intranet não usa 900 nos itens). */
#view-master .master-menu-item span {
  font-weight: 600;
}
#view-master .master-menu-item small {
  font-weight: 500;
  opacity: 0.85;
}
/* Submenu do Financeiro no menu master (nav interna do financeiro movida pra cá). */
#view-master .master-submenu {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 5px 0 8px 20px;
  padding-left: 14px;
  border-left: 2px solid #e0cfe4;
}
#view-master .master-submenu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  border-radius: 9px;
  color: #5b4a63;
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: background .15s, color .15s;
}
#view-master .master-submenu-item:hover {
  background: #f3e9f5;
  color: #4e1550;
}
#view-master .master-submenu-item.active {
  background: #6d1f6c;
  color: #fff;
  box-shadow: 0 5px 12px -5px rgba(78, 21, 80, .55);
}
#view-master .master-submenu-item svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  color: #8a5a92;
}
#view-master .master-submenu-item.active svg {
  color: #fff;
}
/* A navegação interna do financeiro agora vive no menu master — esconde a sidebar interna. */
#master-financeiro-host .fin-side {
  display: none !important;
}

/* ============================================================================
   Cards de categoria (Kanban Regulação) — cabeçalho roxo sólido. 2026-06-17
   ========================================================================== */
#view-regulacao .reg-cat-item {
  border: 1px solid #e8e0ec;
  border-radius: 16px;
  box-shadow: 0 10px 26px -14px rgba(78, 21, 80, .35);
  transition: transform .15s ease, box-shadow .15s ease;
}
#view-regulacao .reg-cat-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px -14px rgba(78, 21, 80, .45);
}
#view-regulacao .reg-cat-head {
  background: linear-gradient(135deg, #4e1550 0%, #6d1f6c 55%, #8e3a8d 100%);
  border-bottom: 0;
  padding: 14px 16px;
}
#view-regulacao .reg-cat-head strong {
  color: #fff;
  font-weight: 800;
}
/* Botões de ação no cabeçalho roxo: translúcidos claros. */
#view-regulacao .reg-cat-head .reg-cat-iconbtn {
  background: rgba(255, 255, 255, .14);
  border-color: rgba(255, 255, 255, .30);
  color: #fff;
}
#view-regulacao .reg-cat-head .reg-cat-iconbtn:hover {
  background: rgba(255, 255, 255, .26);
  border-color: rgba(255, 255, 255, .48);
  color: #fff;
}
/* Subcategorias: linhas brancas limpas. */
#view-regulacao .reg-cat-subrow {
  background: #fff;
  border-color: #ece3f0;
}
#view-regulacao .reg-cat-subrow:hover {
  border-color: #d9c4dc;
  background: #faf7fb;
}
/* Ícones lucide no menu (substituem os números): ícone limpo, roxo; branco no ativo. */
#view-master .master-menu-item svg {
  grid-area: index;
  width: 22px;
  height: 22px;
  color: #6d1f6c;
  align-self: center;
}
#view-master .master-menu-item.active svg {
  color: #fff;
}
/* Ícones nos botões do header (Atualizar/Unidades/Sair), como na intranet. */
#view-master .master-header .btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
#view-master .master-header .btn svg {
  width: 15px;
  height: 15px;
}


/* =========================================================================
   AJUSTES MOBILE — distribuicao/responsividade (NAO afeta desktop)
   Adicionado por solicitacao do admin em 2026-06-17.
   Escopo: SOMENTE telas <= 768px. Acima disso (desktop/tablet largo) nada muda.
   Objetivo: recuperar a largura util desperdicada nas laterais e deixar os
   paineis em coluna unica fluida no celular. Nao altera logica nem desktop.
   Para reverter: remova este bloco e restaure o backup style.css.bak-mobile-*.
   ========================================================================= */
@media (max-width: 768px){
  /* 1) Padding lateral enxuto nos conteineres de painel.
        Usa a mesma lista de IDs do tema para vencer a cascata existente
        (havia um padding-left:32px !important base que clobberava o mobile). */
  :is(#view-master,#view-portal,#view-admin,#view-operator,#view-driver,
      #view-casaapoio,#view-transporte,#view-servidor,#view-rh,#view-reception,
      #view-capacitacao,#view-intranet,#view-ubs-intranet,#view-ubs-prontuario,
      #view-regulacao,#view-faturamento,#view-units,#view-sigtap) > .panel-container,
  :is(#view-master,#view-portal,#view-admin,#view-operator,#view-driver,
      #view-casaapoio,#view-transporte,#view-servidor,#view-rh,#view-reception,
      #view-capacitacao,#view-intranet,#view-ubs-intranet,#view-ubs-prontuario,
      #view-regulacao,#view-faturamento,#view-units,#view-sigtap) .panel-container{
    padding-left:12px !important;
    padding-right:12px !important;
    max-width:100% !important;
  }

  /* 2) Layout sidebar+conteudo vira coluna unica fluida em todos os paineis.
        (Nao mexe na largura da sidebar para nao quebrar os drawers de
         #view-intranet / #view-ubs-intranet.) */
  .intranet-grid{ grid-template-columns:1fr !important; gap:14px !important; }
}

/* Telas bem pequenas: aperta um pouco mais o respiro lateral */
@media (max-width: 480px){
  :is(#view-master,#view-portal,#view-admin,#view-operator,#view-driver,
      #view-casaapoio,#view-transporte,#view-servidor,#view-rh,#view-reception,
      #view-capacitacao,#view-intranet,#view-ubs-intranet,#view-ubs-prontuario,
      #view-regulacao,#view-faturamento,#view-units,#view-sigtap) .panel-container{
    padding-left:10px !important;
    padding-right:10px !important;
  }
}
/* === fim AJUSTES MOBILE 2026-06-17 === */


/* =========================================================================
   AJUSTES MOBILE 2 — "cara de app" (NAO afeta desktop)
   Adicionado por solicitacao do admin em 2026-06-17.
   Escopo: SOMENTE telas <= 768px. Acima disso (desktop) nada muda.
   Inclui: correcao do menu inacessivel + barra de navegacao inferior.
   Para reverter: remova este bloco e restaure os backups .bak-appnav-*.
   ========================================================================= */

/* Barra inferior fica OCULTA no desktop por padrao */
.mobile-bottomnav{ display:none; }

@media (max-width: 768px){

  /* 1) CORRECAO DO MENU INACESSIVEL
     As views tem um transform (residuo de animacao) que quebra o
     position:fixed dos filhos, jogando o botao do menu e a gaveta para
     fora da tela. Neutralizar o transform no mobile cola tudo na viewport. */
  .view-section.active{ transform:none !important; }

  /* O botao-handle flutuante do menu nao e mais necessario: a barra
     inferior ("Paineis") passa a abrir a gaveta. */
  #view-intranet .intranet-menu-handle{ display:none !important; }

  /* Gaveta de navegacao com leve sombra de app */
  #view-intranet .intranet-sidebar{ box-shadow:0 10px 40px rgba(0,0,0,.28); }

  /* 2) BARRA DE NAVEGACAO INFERIOR (so aparece na home da intranet) */
  body:has(#view-intranet.active){ padding-bottom:66px !important; }

  body:has(#view-intranet.active) .mobile-bottomnav{
    display:flex;
    position:fixed; left:0; right:0; bottom:0; z-index:2000;
    background:#fff;
    border-top:1px solid #ece6ef;
    box-shadow:0 -6px 20px rgba(76,21,80,.10);
    padding:6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
    justify-content:space-around; align-items:stretch;
  }

  .mobile-bottomnav button{
    flex:1;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:3px;
    background:none; border:0; cursor:pointer;
    padding:6px 4px; min-height:52px;
    color:#7a6b80; font:600 11px/1 inherit;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-bottomnav button svg{ width:23px; height:23px; }
  .mobile-bottomnav button:active{ color:#6d1f6c; transform:scale(.94); }
  .mobile-bottomnav button:last-child{ color:#c0392b; } /* Sair em vermelho */

  /* Nunca mostrar a barra na tela de login */
  body:has(#view-login.active) .mobile-bottomnav{ display:none !important; }
}
/* === fim AJUSTES MOBILE 2 (cara de app) 2026-06-17 === */


/* =========================================================================
   AJUSTES MOBILE 3 — visual de app (home da intranet) — NAO afeta desktop
   Adicionado por solicitacao do admin em 2026-06-17 (referencia enviada).
   Escopo: SOMENTE telas <= 768px. Acima disso (desktop) nada muda.
   Redesenha header, cards de aviso e a barra inferior para visual de app.
   Para reverter: remova este bloco e restaure os backups .bak-appui-*.
   ========================================================================= */
@media (max-width: 768px){

  /* ===== HEADER ROXO (saudacao + busca + acoes) ===== */
  #view-intranet .intranet-header{
    position:relative;
    background:linear-gradient(160deg,#5a1660 0%,#7d2479 55%,#9c3597 100%) !important;
    border-radius:0 0 26px 26px !important;
    padding:16px 16px 20px !important; gap:14px !important;
  }
  #view-intranet #intranet-perm-badge{ display:none !important; } /* esconde "13/13 paineis" */
  #view-intranet .intranet-header-brand{ padding-right:72px !important; } /* espaco p/ o Sair */

  /* busca: pilula branca */
  #view-intranet .intranet-header-search{
    background:#fff !important; border-radius:14px !important; border:0 !important;
    padding:11px 14px !important; box-shadow:0 4px 14px rgba(0,0,0,.12) !important;
  }
  #view-intranet .intranet-header-search input{ font-size:14px !important; }

  /* acoes como pilulas */
  #view-intranet .intranet-header-actions{ position:static !important; gap:8px !important; flex-wrap:wrap !important; }
  #view-intranet .intranet-header-actions .btn{
    border-radius:999px !important; font-weight:700 !important; font-size:12.5px !important;
    padding:8px 14px !important; border:1px solid rgba(255,255,255,.28) !important;
    background:rgba(255,255,255,.14) !important; color:#fff !important;
  }
  #view-intranet .intranet-header-actions .btn-primary{ /* Novo aviso = dourado */
    background:linear-gradient(180deg,#ffcb3d,#f5a700) !important; color:#5a3b00 !important; border:0 !important;
    box-shadow:0 4px 12px rgba(245,167,0,.35) !important;
  }
  #view-intranet .intranet-header-actions .btn-danger{ /* Sair = pilula vermelha topo-direito */
    position:absolute !important; top:14px; right:14px;
    background:linear-gradient(180deg,#ef5a45,#df3b25) !important; color:#fff !important; border:0 !important;
    border-radius:999px !important; padding:9px 16px !important; box-shadow:0 4px 12px rgba(223,59,37,.35) !important;
  }

  /* ===== CARDS DE AVISO ===== */
  #view-intranet .intranet-notice{
    background:#fff !important; border:1px solid #eee3ee !important;
    border-left:5px solid #7d2479 !important; border-radius:16px !important;
    box-shadow:0 6px 20px rgba(76,21,80,.08) !important; padding:16px !important; margin-bottom:14px !important;
  }
  #view-intranet .intranet-notice.intranet-style-urgent  { border-left-color:#f0892f !important; }
  #view-intranet .intranet-notice.intranet-style-standard{ border-left-color:#7d2479 !important; }
  #view-intranet .intranet-notice.intranet-style-info    { border-left-color:#2b92b5 !important; }
  #view-intranet .intranet-notice-title{ font-size:1rem !important; color:#3a1140 !important; }

  /* tags (pilulas) */
  #view-intranet .intranet-notice .meta{ gap:7px !important; flex-wrap:wrap !important; align-items:center; }
  #view-intranet .intranet-notice .meta > span{
    border-radius:999px !important; padding:4px 10px !important; font-size:11px !important;
    font-weight:700 !important; line-height:1.4 !important;
  }
  #view-intranet .intranet-notice .meta > span:not(.notice-pill){ /* data / autor = neutro */
    background:#f4f0f6 !important; color:#6a5a6e !important; border:1px solid #e6dce8 !important;
  }
  #view-intranet .notice-pill-pin{ background:#f3f0f5 !important; color:#5b4660 !important; border:1px solid #e0d6e4 !important; } /* FIXADO */
  #view-intranet .intranet-style-urgent   .notice-pill-style{ background:#fff2e8 !important; color:#c2531a !important; border:1px solid #f6cba6 !important; } /* Urgente */
  #view-intranet .intranet-style-standard .notice-pill-style{ background:#eef2fb !important; color:#2a5bbf !important; border:1px solid #cdd9f3 !important; } /* Padrao */
  #view-intranet .intranet-style-info     .notice-pill-style{ background:#e6f6fb !important; color:#1583a5 !important; border:1px solid #bce6f1 !important; } /* Informativo */

  /* botoes Editar / Ler completo = pilula contornada roxa */
  #view-intranet .intranet-notice-edit, #view-intranet .intranet-notice-open{
    border-radius:999px !important; border:1.5px solid #d9c2db !important; background:#fff !important;
    color:#7d2479 !important; font-weight:700 !important; padding:7px 14px !important; font-size:12.5px !important;
  }

  /* ===== BARRA INFERIOR: estado ativo + selo de notificacoes ===== */
  .mobile-bottomnav button{ position:relative; color:#9a8aa0 !important; }
  .mobile-bottomnav button.is-active{ color:#9c1f8c !important; }
  .mobile-bottomnav button.is-active svg{ stroke:#9c1f8c; }
  .bn-badge{
    position:absolute; top:2px; left:calc(50% + 6px); min-width:16px; height:16px; padding:0 4px;
    background:#e53935; color:#fff; font-size:10px; font-weight:800; border-radius:999px;
    display:flex; align-items:center; justify-content:center; line-height:1;
  }
  .bn-badge[hidden]{ display:none; }

  /* sino flutuante escondido (notificacoes ficam no item "Avisos") */
  #app-notif-toggle{ display:none !important; }
}
/* === fim AJUSTES MOBILE 3 (visual app) 2026-06-17 === */


/* =========================================================================
   AJUSTES MOBILE 3.1 — refinamentos da home (feedback do admin) — so mobile
   2026-06-17. Header full-bleed, logo/fonte menores, 3 botoes lado a lado,
   tela preenchida. Escopo: <= 768px. Desktop intocado.
   ========================================================================= */
@media (max-width: 768px){
  /* full-bleed: header ocupa a largura toda; conteudo com margem pequena */
  #view-intranet.view-section{ padding-left:0 !important; padding-right:0 !important; }
  #view-intranet .panel-container{ padding-left:0 !important; padding-right:0 !important; }
  #view-intranet .intranet-grid{ padding:0 12px !important; }
  #view-intranet .intranet-header{ border-radius:0 0 24px 24px !important; padding:16px 16px 18px !important; }

  /* logo + fontes do cabecalho menores (mais perto da referencia) */
  #view-intranet .intranet-header-logo{ width:38px !important; height:38px !important; min-width:38px !important; border-radius:11px !important; }
  #view-intranet .intranet-header-title{ font-size:1.15rem !important; line-height:1.18 !important; }
  #view-intranet .intranet-header-kicker{ font-size:9.5px !important; letter-spacing:.5px !important; }
  #view-intranet .intranet-header-sub{ font-size:12px !important; }

  /* 3 botoes (Unidades / Atualizar / Novo aviso) lado a lado, iguais */
  #view-intranet .intranet-header-actions{
    display:grid !important; grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    gap:8px !important; align-items:stretch !important;
  }
  #view-intranet .intranet-header-actions .btn{
    flex:none !important; width:100% !important; min-width:0 !important;
    padding:9px 4px !important; font-size:11px !important; gap:4px !important; justify-content:center !important;
  }
  #view-intranet .intranet-header-actions .btn-danger{ width:auto !important; } /* Sair continua absoluto no topo */
}
/* === fim AJUSTES MOBILE 3.1 2026-06-17 === */


/* =========================================================================
   AJUSTES MOBILE 3.2 — correcao: abrir menu/notificacoes no mobile
   2026-06-17. (1) stopPropagation nos botoes Paineis/Avisos esta no index.html
   (clique abria e o handler de fechar-ao-clicar-fora fechava na hora).
   (2) Painel de notificacoes vira folha fixa acima da barra (estava ancorado
   no sino oculto e abria fora da tela). Escopo: <= 768px. Desktop intocado.
   ========================================================================= */
@media (max-width: 768px){
  .app-notif-panel{
    position:fixed !important;
    left:12px !important; right:12px !important;
    top:auto !important; bottom:74px !important;
    width:auto !important; max-width:none !important;
    max-height:60vh !important; overflow:auto !important;
    z-index:2100 !important;
    border-radius:16px !important;
    box-shadow:0 12px 40px rgba(0,0,0,.28) !important;
  }
}
/* === fim AJUSTES MOBILE 3.2 2026-06-17 === */


/* =========================================================================
   AJUSTES MOBILE 3.3 — largura dos cards de aviso (feedback do admin)
   2026-06-17. Os cards .intranet-notice ficavam estreitos por estarem
   aninhados no card "Avisos internos" (.intranet-card) com padding grande.
   Reduz o padding lateral do container e do grid para os cards de aviso
   ficarem largos (margem ~16px), como na referencia. So mobile.
   ========================================================================= */
@media (max-width: 768px){
  #view-intranet .intranet-grid{ padding-left:8px !important; padding-right:8px !important; }
  #view-intranet .intranet-card{ padding-left:8px !important; padding-right:8px !important; }
}
/* === fim AJUSTES MOBILE 3.3 2026-06-17 === */


/* =========================================================================
   Modal "Solicitação" (visualizar abertura de agenda) — visual modernizado
   + seção de comentários. Adicionado 2026-06-18. Aplica-se a desktop e mobile.
   ========================================================================= */
.agv { display:flex; flex-direction:column; gap:16px; }

/* Cabeçalho */
.agv-hero {
  background:linear-gradient(160deg,#f7f2f8 0%, #f3edf6 100%);
  border:1px solid #ece2ef; border-radius:16px; padding:16px 18px;
}
.agv-hero-top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.agv-status {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--c,#8a74a1); color:#fff; font-weight:700; font-size:.78rem;
  padding:5px 12px; border-radius:999px; white-space:nowrap;
}
.agv-status i { width:14px; height:14px; }
.agv-title { margin:0; font-size:1.15rem; color:#3a1140; font-weight:800; line-height:1.2; }
.agv-chips { display:flex; flex-wrap:wrap; gap:8px; }
.agv-chip {
  display:inline-flex; align-items:center; gap:6px;
  background:#fff; border:1px solid #e6dce8; color:#5b4660;
  font-size:.8rem; font-weight:600; padding:6px 11px; border-radius:999px;
}
.agv-chip i { width:14px; height:14px; color:#8a74a1; }
.agv-ret {
  display:flex; gap:10px; align-items:flex-start; margin-top:12px;
  background:#fdecec; border:1px solid #f6c9c7; color:#a3322d;
  border-radius:12px; padding:10px 12px; font-size:.85rem;
}
.agv-ret i { width:16px; height:16px; flex:none; margin-top:2px; }

/* Seções */
.agv-section {
  background:#fff; border:1px solid #eee3ee; border-radius:16px;
  box-shadow:0 4px 16px rgba(76,21,80,.05); padding:14px 16px;
}
.agv-section-title {
  display:flex; align-items:center; gap:8px;
  font-weight:800; font-size:.92rem; color:#3a1140; margin-bottom:12px;
}
.agv-section-title i { width:17px; height:17px; color:#8a74a1; }
.agv-total-vagas {
  margin-left:auto; background:#f3e9f6; color:#6d1f6c;
  font-weight:800; font-size:.74rem; letter-spacing:.01em;
  padding:3px 12px; border-radius:20px; white-space:nowrap;
}
.agv-changelog { border-color:#f4d9a8; background:#fffaf0; box-shadow:0 4px 16px rgba(180,120,20,.06); }
.agv-changelog .agv-section-title { color:#9a6a10; margin-bottom:8px; }
.agv-changelog .agv-section-title i { color:#c8860e; }
.agv-changelog-body { color:#42344a; font-size:.9rem; line-height:1.5; white-space:pre-wrap; word-break:break-word; }
.agv-changelog-meta { color:#9a8aa0; font-size:.74rem; margin-top:8px; }
/* Cards de diff (antes→depois) por profissional */
.agv-diff-cards { display:flex; flex-direction:column; gap:8px; }
.agv-diff-card { border:1px solid #f0e3c8; border-left:4px solid #c8860e; border-radius:12px; padding:10px 12px; background:#fffdf7; }
.agv-diff-card.status-added { border-left-color:#2e9e5b; }
.agv-diff-card.status-removed { border-left-color:#dc4c46; }
.agv-diff-card .agv-prof-name { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-weight:800; color:#3a1140; font-size:.95rem; }
.agv-diff-tag { font-size:.64rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:2px 8px; border-radius:999px; }
.agv-diff-tag.tag-chg { background:#fdeccb; color:#9a6a10; }
.agv-diff-tag.tag-add { background:#d8f3e2; color:#1f7a44; }
.agv-diff-tag.tag-rem { background:#fbdcda; color:#b32d27; }
.agv-diff-rows { display:flex; flex-direction:column; gap:7px; margin-top:9px; }
.agv-diff-row { display:flex; flex-direction:column; gap:2px; }
.agv-diff-label { font-weight:800; color:#8a6a3a; font-size:.7rem; text-transform:uppercase; letter-spacing:.03em; }
.agv-diff-change { display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:.86rem; }
.agv-diff-old { color:#9a8aa0; text-decoration:line-through; }
.agv-diff-new { color:#1f7a44; font-weight:700; }
.agv-diff-arrow { color:#c8860e; font-weight:800; }
.agv-diff-days { font-size:.84rem; color:#42344a; margin-top:6px; }
.agv-diff-removed { font-size:.84rem; color:#b32d27; margin-top:6px; }

/* Profissionais */
.agv-profs { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
.agv-prof-card { border:1px solid #ece2ef; border-left:4px solid #8a74a1; border-radius:12px; padding:10px 12px; background:#faf7fb; }
.agv-prof-name { font-weight:800; color:#3a1140; font-size:.95rem; }
.agv-prof-meta { font-size:.8rem; color:#6a5a6e; margin-top:2px; }
.agv-prof-times { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.agv-prof-times span {
  background:#efe7f3; color:#6a3f74; font-size:.72rem; font-weight:700;
  padding:3px 8px; border-radius:6px;
}

/* Comentários */
.agv-comments { display:flex; flex-direction:column; gap:10px; max-height:300px; overflow:auto; margin-bottom:12px; }
.agv-comment { background:#f7f4f9; border:1px solid #ece2ef; border-radius:12px; padding:10px 12px; }
.agv-comment-head { display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:4px; }
.agv-comment-head strong { color:#3a1140; font-size:.85rem; }
.agv-comment-head span { color:#9a8aa0; font-size:.72rem; white-space:nowrap; }
.agv-comment-body { color:#42344a; font-size:.88rem; white-space:pre-wrap; word-break:break-word; }
.agv-comment-add { display:flex; gap:8px; align-items:flex-end; }
.agv-comment-add textarea {
  flex:1; resize:vertical; min-height:42px; border:1px solid #d9c2db; border-radius:12px;
  padding:9px 12px; font:inherit; font-size:.9rem; color:#3a1140; background:#fff;
}
.agv-comment-add textarea:focus { outline:none; border-color:#8a74a1; box-shadow:0 0 0 3px rgba(138,116,161,.18); }
.agv-comment-add .btn { white-space:nowrap; }

@media (max-width: 768px){
  .agv-profs { grid-template-columns:1fr; }
  .agv-comment-add { flex-direction:column; align-items:stretch; }
  .agv-comment-add .btn { width:100%; justify-content:center; }
}
/* === fim modal Solicitação (agv) 2026-06-18 === */


/* =========================================================================
   Redesign do modal de tarefa do Kanban (openTaskTreat) — 2026-06-18.
   Reusa as classes .agv-* (hero/section/chips/comment) + extras abaixo.
   ========================================================================= */
.agv-desc { margin-top:10px; color:#42344a; font-size:.9rem; white-space:pre-wrap; word-break:break-word; }
.agv-updated { margin-top:10px; color:#9a8aa0; font-size:.75rem; }
.agv-chip.is-overdue { background:#fdecec !important; color:#c0392b !important; border-color:#f6c9c7 !important; }
.agv-chip.is-overdue i { color:#c0392b !important; }

.rtv-att-send { margin-top:-6px; }
.rtv-flow { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.rtv-tools { display:flex; flex-wrap:wrap; gap:8px; padding-top:12px; border-top:1px solid #f0e8f2; }

@media (max-width: 768px){
  .rtv-flow .btn, .rtv-tools .btn { flex:1 1 auto; justify-content:center; }
}
/* === fim redesign modal de tarefa (rtv) 2026-06-18 === */


/* =========================================================================
   Polimento visual do Kanban da Regulação — 2026-06-18.
   Selects estilizados, cards do board mais limpos (brancos + hover),
   cards de Categorias mais largos (2 colunas).
   ========================================================================= */

/* ---- Selects (departamento e filtro de prioridade) ---- */
#view-regulacao .reg-task-department-select select,
#view-regulacao .reg-task-filter-prio select{
  -webkit-appearance:none !important; appearance:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a74a1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 12px center !important; background-size:14px !important;
  padding:8px 34px 8px 14px !important; height:42px !important;
  border:1.5px solid #e2d4e2 !important; border-radius:12px !important; background-color:#fff !important;
  font-weight:700 !important; color:#3a1140 !important; cursor:pointer; font-size:14px !important;
}
#view-regulacao .reg-task-department-select select:focus,
#view-regulacao .reg-task-filter-prio select:focus{
  outline:none !important; border-color:#8a74a1 !important; box-shadow:0 0 0 3px rgba(138,116,161,.18) !important;
}

/* ---- Cards do quadro ---- */
#view-regulacao .reg-task-card{
  background:#fff !important;
  box-shadow:0 2px 10px rgba(76,21,80,.06) !important;
  transition:transform .12s ease, box-shadow .12s ease;
}
#view-regulacao .reg-task-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(76,21,80,.12) !important;
}

/* ---- Cards de Categorias mais largos (2 colunas) ---- */
#view-regulacao .reg-cat-list{ columns:460px 2 !important; }

@media (max-width: 768px){
  #view-regulacao .reg-cat-list{ columns:1 !important; }
}
/* ---- Dropdown customizado de departamento (lista estilizada) ---- */
#view-regulacao .reg-dept-dd{ position:relative; display:inline-flex; flex-direction:column; gap:4px; min-width:240px; }
#view-regulacao .reg-dept-dd-label{ font-size:.72rem; font-weight:800; color:#9a8aa0; text-transform:uppercase; letter-spacing:.4px; }
#view-regulacao .reg-dept-dd-btn{
  display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%;
  height:42px; padding:8px 14px; border:1.5px solid #e2d4e2; border-radius:12px; background:#fff;
  color:#3a1140; font-weight:700; font-size:14px; cursor:pointer;
}
#view-regulacao .reg-dept-dd-btn:hover{ border-color:#cdb6cf; }
#view-regulacao .reg-dept-dd-cur{ display:inline-flex; align-items:center; gap:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#view-regulacao .reg-dept-dd-cur i{ width:16px; height:16px; color:#8a74a1; flex:none; }
#view-regulacao .reg-dept-dd-caret{ width:16px; height:16px; color:#8a74a1; flex:none; transition:transform .15s ease; }
#view-regulacao .reg-dept-dd[data-open="true"] .reg-dept-dd-btn{ border-color:#8a74a1; box-shadow:0 0 0 3px rgba(138,116,161,.18); }
#view-regulacao .reg-dept-dd[data-open="true"] .reg-dept-dd-caret{ transform:rotate(180deg); }
#view-regulacao .reg-dept-dd-menu{
  position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:50;
  background:#fff; border:1px solid #ece2ef; border-radius:14px; box-shadow:0 16px 40px rgba(76,21,80,.18);
  padding:6px; max-height:340px; overflow:auto;
}
#view-regulacao .reg-dept-dd-opt{
  display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%;
  text-align:left; padding:9px 12px; border:0; background:none; border-radius:9px;
  font-size:14px; color:#42344a; font-weight:600; cursor:pointer;
}
#view-regulacao .reg-dept-dd-opt:hover{ background:#f5eff7; color:#6d1f6c; }
#view-regulacao .reg-dept-dd-opt.is-active{ background:#6d1f6c; color:#fff; }
#view-regulacao .reg-dept-dd-opt.is-active i{ width:15px; height:15px; flex:none; }
/* === fim polimento Kanban 2026-06-18 === */


/* =========================================================================
   Modal de tarefa — visual "Premium roxo" (Opção 3) — 2026-06-18.
   Cabeçalho roxo arredondado com avatar; anexos viram botão (modal próprio).
   ========================================================================= */
.tv3{ display:flex; flex-direction:column; gap:14px; }
.tv3-head{
  padding:20px 22px; border-radius:16px; color:#fff;
  background:linear-gradient(150deg,#3a0f3b 0%, #6d1f6c 60%, #8a2c8a 100%);
  box-shadow:0 8px 24px rgba(76,21,80,.18);
}
.tv3-pill{ display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.16); padding:5px 12px; border-radius:999px; font-size:.74rem; font-weight:800; color:var(--stc,#fff); }
.tv3-pill .dot{ width:8px; height:8px; border-radius:50%; background:var(--stc,#fff); }
.tv3-title{ margin:12px 0 0; font-size:1.35rem; font-weight:800; line-height:1.18; }
.tv3-who{ display:flex; align-items:center; gap:10px; margin-top:14px; }
.tv3-av{ width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.85rem; flex:none; }
.tv3-who-info b{ display:block; font-size:.9rem; }
.tv3-who-info span{ font-size:.74rem; opacity:.85; }

.tv3-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.tv3-chip{ display:inline-flex; align-items:center; gap:7px; background:#f4eef6; color:#5b3a60; font-size:.8rem; font-weight:700; padding:7px 12px; border-radius:10px; }
.tv3-chip i{ width:14px; height:14px; color:#8a2c8a; }
.tv3-chip.is-overdue{ background:#fdecec; color:#c0392b; }
.tv3-chip.is-overdue i{ color:#c0392b; }
.tv3-desc{ color:#42344a; font-size:.92rem; white-space:pre-wrap; word-break:break-word; }
.tv3-updated{ color:#9a8aa0; font-size:.75rem; }

.tv3-section{ background:#fff; border:1px solid #eee3ef; border-radius:16px; box-shadow:0 4px 16px rgba(76,21,80,.05); padding:14px 16px; }
.tv3-section-title{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:.92rem; color:#3a1140; margin-bottom:12px; }
.tv3-section-title i{ width:17px; height:17px; color:#8a2c8a; }
.tv3-changelog{ margin:12px 0; border-color:#f4d9a8; background:#fffaf0; box-shadow:0 4px 16px rgba(180,120,20,.06); }
.tv3-changelog .tv3-section-title{ color:#9a6a10; margin-bottom:8px; }
.tv3-changelog .tv3-section-title i{ color:#c8860e; }
.tv3-changelog-body{ color:#42344a; font-size:.9rem; line-height:1.5; white-space:pre-wrap; word-break:break-word; }
.tv3-changelog-meta{ color:#9a8aa0; font-size:.74rem; margin-top:8px; }
.tv3-changelog-meta a{ color:#8a2c8a; }
.tv3-flow{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.tv3-tools{ display:flex; flex-wrap:wrap; gap:8px; padding-top:12px; border-top:1px solid #f0e8f2; }

@media (max-width: 768px){
  .tv3-flow .btn, .tv3-tools .btn{ flex:1 1 auto; justify-content:center; }
}
/* === fim modal tarefa premium (tv3) 2026-06-18 === */

.agv-actions{ display:flex; flex-wrap:wrap; gap:8px; }


/* Corrige botões só-ícone das listas de anexo (ícone ficava com largura 0). 2026-06-18 */
#view-regulacao .reg-task-staged-item .btn,
#view-regulacao .reg-task-attachment-item .btn,
#view-regulacao .reg-task-attachment-item > button{
  flex:none !important;
  width:auto !important;
  min-width:38px !important;
  padding:8px !important;
  display:inline-flex !important;
  align-items:center; justify-content:center;
}
#view-regulacao .reg-task-staged-item .btn svg,
#view-regulacao .reg-task-attachment-item .btn svg,
#view-regulacao .reg-task-attachment-item > button svg{
  width:16px !important; height:16px !important; flex:none !important;
}
/* botão de remover (vermelho) bem visível */
#view-regulacao .reg-task-staged-item .btn-danger,
#view-regulacao .reg-task-attachment-item .btn-danger{
  background:#fdecec !important; color:#c0392b !important; border:1px solid #f3c4c1 !important;
}


/* Correcao (v2, sem prefixo #view-regulacao pois o modal fica fora dela):
   botões só-ícone das listas de anexo tinham o ícone com largura 0. 2026-06-18 */
.reg-task-staged-item .btn,
.reg-task-attachment-item .btn,
.reg-task-attachment-item > button{
  flex:none !important;
  width:auto !important;
  min-width:38px !important;
  padding:8px !important;
  display:inline-flex !important;
  align-items:center; justify-content:center;
}
.reg-task-staged-item .btn svg,
.reg-task-attachment-item .btn svg,
.reg-task-attachment-item > button svg{
  width:16px !important; height:16px !important; flex:none !important;
}
.reg-task-staged-item .btn-danger,
.reg-task-attachment-item .btn-danger{
  background:#fdecec !important; color:#c0392b !important; border:1px solid #f3c4c1 !important;
}


/* =========================================================================
   Painel de Auditoria (Trilha) — redesign 2026-06-18. Master + Regulação.
   ========================================================================= */
.aud{ display:flex; flex-direction:column; gap:16px; }
.aud-head .aud-kicker{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:#9a6db0; }
.aud-title{ margin:4px 0 2px; font-size:1.3rem; font-weight:800; color:#3a1140; }
.aud-sub{ margin:0; color:#6a5a6e; font-size:.86rem; }

.aud-kpis{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.aud-kpi{ background:#fff; border:1px solid #ece2ef; border-radius:14px; padding:14px 16px; box-shadow:0 4px 14px rgba(76,21,80,.05); }
.aud-kpi-v{ font-size:1.7rem; font-weight:800; color:#3a1140; line-height:1; }
.aud-kpi-l{ font-size:.78rem; color:#8a7790; margin-top:6px; font-weight:600; }
.aud-kpi.is-primary{ background:linear-gradient(150deg,#6d1f6c,#8a2c8a); border:0; }
.aud-kpi.is-primary .aud-kpi-v, .aud-kpi.is-primary .aud-kpi-l{ color:#fff; }
.aud-kpi.is-primary .aud-kpi-l{ opacity:.88; }
.aud-kpi.is-danger{ background:#fdecec; border-color:#f3c4c1; }
.aud-kpi.is-danger .aud-kpi-v, .aud-kpi.is-danger .aud-kpi-l{ color:#c0392b; }

.aud-section-t{ font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:#9a8aa0; margin-bottom:8px; }
.aud-mods{ display:flex; flex-wrap:wrap; gap:7px; }
.aud-mod{ display:inline-flex; align-items:center; gap:6px; background:#f4eef6; color:#5b3a60; font-size:.78rem; font-weight:600; padding:5px 11px 5px 5px; border-radius:999px; }
.aud-mod b{ background:#6d1f6c; color:#fff; border-radius:999px; padding:2px 8px; font-size:.72rem; min-width:20px; text-align:center; }
.aud-actors{ display:flex; flex-wrap:wrap; gap:8px; }
.aud-actor{ display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid #ece2ef; border-radius:999px; padding:4px 12px 4px 4px; font-size:.8rem; color:#42344a; font-weight:600; }
.aud-actor-av{ width:24px; height:24px; border-radius:50%; background:#6d1f6c; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:.66rem; font-weight:800; flex:none; }
.aud-actor b{ color:#6d1f6c; }

.aud-filters{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; background:#faf7fb; border:1px solid #efe6f1; border-radius:14px; padding:14px; }
.aud-f{ display:flex; flex-direction:column; gap:4px; }
.aud-f label{ font-size:.72rem; font-weight:700; color:#9a8aa0; text-transform:uppercase; letter-spacing:.3px; }
.aud-f select, .aud-f input{ height:38px; border:1.5px solid #e2d4e2; border-radius:10px; padding:6px 10px; font-size:.85rem; color:#3a1140; background:#fff; min-width:150px; }
.aud-f select:focus, .aud-f input:focus{ outline:none; border-color:#8a74a1; box-shadow:0 0 0 3px rgba(138,116,161,.18); }
.aud-f-grow{ flex:1; min-width:200px; }
.aud-f-grow input{ width:100%; min-width:0; }
.aud-f-actions{ display:flex; gap:8px; align-items:end; }

.aud-tablewrap{ max-height:480px; overflow:auto; border:1px solid #ece2ef; border-radius:14px; }
.aud-table{ width:100%; border-collapse:collapse; font-size:.85rem; }
.aud-table thead th{ position:sticky; top:0; background:#f4eef6; color:#5b3a60; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.3px; text-align:left; padding:10px 12px; z-index:1; }
.aud-table tbody td{ padding:10px 12px; border-top:1px solid #f0e8f2; vertical-align:top; color:#42344a; }
.aud-table tbody tr:nth-child(even){ background:#faf7fb; }
.aud-table tbody tr:hover{ background:#f4eef6; }
.aud-td-dt{ white-space:nowrap; color:#6a5a6e; font-size:.8rem; }
.aud-nm{ font-weight:700; color:#3a1140; }
.aud-cpf{ font-size:.72rem; color:#9a8aa0; }
.aud-mod-badge{ display:inline-block; background:#eef2fb; color:#2a5bbf; font-size:.74rem; font-weight:700; padding:3px 9px; border-radius:7px; white-space:nowrap; }
.aud-verb{ font-weight:800; color:#3a1140; }
.aud-res{ color:#6a5a6e; }
.aud-det{ margin-top:4px; }
.aud-det summary{ cursor:pointer; color:#6d1f6c; font-size:.78rem; font-weight:600; }
.aud-det pre{ white-space:pre-wrap; word-break:break-word; color:#475569; font-size:.75rem; background:#f7f4f9; border-radius:8px; padding:8px; margin:6px 0 0; }
.aud-td-unit{ color:#6a5a6e; font-size:.8rem; }
.aud-td-ip{ color:#9a8aa0; font-size:.78rem; white-space:nowrap; }
.aud-status{ display:inline-block; min-width:42px; text-align:center; font-weight:800; font-size:.76rem; padding:3px 9px; border-radius:999px; }
.aud-status.is-ok{ background:#eafaf0; color:#1f9d57; }
.aud-status.is-err{ background:#fdecec; color:#c0392b; }
.aud-empty{ text-align:center; color:#9a8aa0; padding:24px; }
.aud-foot{ color:#9a8aa0; font-size:.78rem; }

@media (max-width: 768px){
  .aud-kpis{ grid-template-columns:repeat(2,1fr); }
  .aud-f{ flex:1 1 140px; }
  .aud-f select, .aud-f input{ min-width:0; width:100%; }
  .aud-f-actions{ width:100%; }
}
/* === fim Auditoria redesign 2026-06-18 === */


/* Auditoria — botão "ver detalhe" + modal legível do evento. 2026-06-18 */
.aud-detail-btn{ display:inline-flex; align-items:center; gap:5px; margin-top:6px; background:#f4eef6; color:#6d1f6c; border:1px solid #e4d4e8; border-radius:8px; padding:4px 10px; font-size:.76rem; font-weight:700; cursor:pointer; }
.aud-detail-btn:hover{ background:#ece0f0; }
.aud-detail-btn i{ width:14px; height:14px; }

.auddet-box{ max-width:560px; width:100%; }
.auddet-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.auddet-kicker{ font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:#9a6db0; }
.auddet-title{ margin:4px 0 0; font-size:1.1rem; font-weight:800; color:#3a1140; }
.auddet-x{ border:0; background:#f4eef6; color:#6d1f6c; width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:1rem; flex:none; }
.auddet-x:hover{ background:#ece0f0; }
.auddet-badges{ display:flex; gap:8px; margin:12px 0; }
.auddet-info{ display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; background:#faf7fb; border:1px solid #efe6f1; border-radius:12px; padding:12px 14px; font-size:.85rem; color:#42344a; }
.auddet-info > div{ display:flex; flex-direction:column; gap:1px; }
.auddet-info span{ font-size:.68rem; text-transform:uppercase; letter-spacing:.3px; font-weight:800; color:#9a8aa0; }
.auddet-sec-t{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:#9a8aa0; margin:16px 0 8px; }
.auddet-grid{ display:grid; grid-template-columns:auto 1fr; gap:6px 14px; max-height:300px; overflow:auto; font-size:.82rem; }
.auddet-k{ font-weight:700; color:#6a5a6e; white-space:nowrap; }
.auddet-v{ color:#3a1140; word-break:break-word; }
.auddet-empty{ color:#9a8aa0; font-size:.85rem; }
.auddet-actions{ display:flex; justify-content:flex-end; margin-top:18px; }
@media (max-width: 768px){ .auddet-info{ grid-template-columns:1fr; } .auddet-grid{ grid-template-columns:1fr; gap:2px 0; } .auddet-k{ margin-top:8px; } }


/* Auditoria — frase humanizada + nota de evento técnico no modal. 2026-06-18 */
.auddet-summary{ font-size:.98rem; color:#3a1140; font-weight:600; line-height:1.4; background:#f7f4f9; border-left:4px solid #8a2c8a; border-radius:10px; padding:12px 14px; margin:12px 0 4px; }
.auddet-note{ color:#8a7790; font-size:.85rem; background:#faf7fb; border:1px dashed #e4d4e8; border-radius:10px; padding:16px; text-align:center; margin-top:16px; }

/* Fix rolagem do painel master: a area de conteudo das abas precisa rolar quando o conteudo passa da altura (ex.: Auditoria). 2026-06-18 */
#view-master .master-content{ overflow-y:auto !important; }

/* Fix painel master em telas estreitas (<=720px): empilha sidebar+conteudo em
   1 coluna e torna o shell rolavel, pra nao cortar conteudo. 2026-06-18 */
@media (max-width: 720px){
  #view-master .master-shell{ overflow-y:auto !important; }
  #view-master .master-layout{ grid-template-columns:1fr !important; }
  #view-master .master-menu{ overflow:visible !important; max-height:none !important; }
  #view-master .master-content{ overflow:visible !important; }
}

/* Alinha o botao "ver detalhe": linha propria, alinhado a esquerda. 2026-06-18 */
.aud-detail-btn{ display:flex !important; width:fit-content; margin-top:8px !important; }

/* Garante que o painel master cubra a tela inteira (evita faixa escura no rodape
   em mobile quando 100dvh fica menor que a viewport). 2026-06-18 */
#view-master{ height:100vh !important; min-height:100vh !important; }

/* Master: rolagem correta — menu e conteudo rolam dentro do espaco disponivel
   (corrige menu transbordando o container e sem rolagem ao abrir todas as secoes).
   Desktop (2 col): cada coluna rola. Estreito (<=720): empilha e o layout rola. 2026-06-18 */
#view-master .master-layout{ overflow:hidden !important; min-height:0 !important; }
#view-master .master-menu{ overflow-y:auto !important; min-height:0 !important; max-height:100% !important; }
#view-master .master-content{ overflow-y:auto !important; min-height:0 !important; max-height:100% !important; }
@media (max-width: 720px){
  #view-master .master-layout{ grid-template-columns:1fr !important; overflow-y:auto !important; }
}

/* ============================================================================
   Acessos (Master) — redesign roxo + intuitivo. 2026-06-18 (ma-access)
   Sobrescreve os blocos #view-master .master-access-* anteriores (ordem de fonte).
   ============================================================================ */
/* Formulário "Novo administrador" */
#view-master .master-admin-form{
  position:relative; border:1px solid #ece2ef; border-radius:14px; background:#fff;
  box-shadow:0 4px 16px rgba(76,21,80,.05); overflow:hidden;
}
#view-master .master-admin-form::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,#6d1f6c,#8a2c8a);
}
#view-master .master-form-title strong{ color:#3a1140; font-size:.98rem; font-weight:800; }
#view-master .master-form-title span{ color:#9a6db0; font-weight:700; }
#view-master .master-admin-form label{
  color:#6a5a6e; font-weight:800; text-transform:uppercase; letter-spacing:.3px; font-size:.68rem;
}
#view-master .master-admin-form input,
#view-master .master-admin-form select{
  border:1.5px solid #e2d4e2; border-radius:10px; background:#faf7fb; color:#3a1140; font-weight:600;
}
#view-master .master-admin-form input:focus,
#view-master .master-admin-form select:focus{
  outline:none; border-color:#8a74a1; box-shadow:0 0 0 3px rgba(138,116,161,.18); background:#fff;
}

/* Busca + filtros */
#view-master .master-unit-search{
  border:1.5px solid #e2d4e2; border-radius:10px; background:#faf7fb; color:#3a1140;
}
#view-master .master-unit-search:focus{
  outline:none; border-color:#8a74a1; box-shadow:0 0 0 3px rgba(138,116,161,.18); background:#fff;
}
#view-master .master-unit-filters button{
  border:1px solid #e4d4e8; border-radius:999px; background:#fff; color:#6a5a6e; font-weight:700;
}
#view-master .master-unit-filters button:hover{ background:#f7f0f8; }
#view-master .master-unit-filters button.active{
  background:linear-gradient(150deg,#6d1f6c,#8a2c8a); border-color:transparent; color:#fff;
}

/* KPIs — semânticos: Admins (roxo), Ativos (verde), Sem admin (vermelho) */
#view-master .master-access-kpis div{
  border:1px solid #ece2ef; border-radius:14px; background:#fff;
  box-shadow:0 4px 14px rgba(76,21,80,.05);
}
#view-master .master-access-kpis div span{
  color:#8a7790; font-weight:800; text-transform:uppercase; letter-spacing:.3px;
}
#view-master .master-access-kpis div:nth-child(1){ background:linear-gradient(150deg,#6d1f6c,#8a2c8a); border:0; }
#view-master .master-access-kpis div:nth-child(1) span,
#view-master .master-access-kpis div:nth-child(1) strong{ color:#fff; }
#view-master .master-access-kpis div:nth-child(1) span{ opacity:.85; }
#view-master .master-access-kpis div:nth-child(2) strong{ color:#1f9d57; }
#view-master .master-access-kpis div:nth-child(3) strong{ color:#c0392b; }

/* Sidebar prioridade de cobertura */
#view-master .master-access-risk{
  border:1px solid #ece2ef; border-radius:14px; background:#fff; box-shadow:0 4px 14px rgba(76,21,80,.05);
}
#view-master .master-mini-head strong{ color:#3a1140; }
#view-master .master-mini-head span{ color:#9a6db0; }
#view-master .master-access-risk-list button{
  border:1px solid #fad9bf; border-radius:10px; background:#fff7ed; transition:background .15s;
}
#view-master .master-access-risk-list button:hover{ background:#ffedd9; }

/* Linhas de unidade */
#view-master .master-access-unit-row{
  border:1px solid #ece2ef; border-left:4px solid #1f9d57; border-radius:12px; background:#fff;
  box-shadow:0 2px 8px rgba(76,21,80,.04); transition:box-shadow .15s, transform .15s;
}
#view-master .master-access-unit-row:hover{ box-shadow:0 7px 20px rgba(76,21,80,.11); transform:translateY(-1px); }
#view-master .master-access-unit-row.is-pending{
  border-left-color:#f97316; background:linear-gradient(180deg,#fff 0%,#fffaf5 100%);
}
#view-master .master-access-unit-row .master-access-unit-head{
  display:flex; align-items:center; justify-content:flex-start; gap:11px; min-width:0; padding-bottom:0; border-bottom:0;
}
#view-master .ma-av{
  width:40px; height:40px; border-radius:12px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg,#6d1f6c,#8a2c8a); color:#fff;
  font-weight:800; font-size:.82rem; letter-spacing:.5px;
}
#view-master .master-access-unit-row.is-pending .ma-av{ background:linear-gradient(150deg,#f97316,#fb923c); }
#view-master .ma-row-info{ min-width:0; display:grid; gap:1px; }
#view-master .master-access-unit-row h2{ color:#3a1140; font-weight:800; font-size:.95rem; }
#view-master .master-access-unit-row .small{
  color:#8a7790; font-size:.72rem;
  display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden;
}
#view-master .master-access-unit-count{
  border-left:1px solid #f0e8f2; padding-left:14px; gap:5px; justify-items:start;
}
#view-master .master-access-unit-count span{ color:#9a8aa0; font-weight:700; font-size:.7rem; }

/* Pílula de status */
.ma-pill{
  display:inline-flex; align-items:center; gap:5px; font-size:.76rem; font-weight:800;
  padding:4px 11px; border-radius:999px; line-height:1;
}
.ma-pill i{ width:13px; height:13px; }
.ma-pill.is-ok{ background:#eafaf0; color:#1f9d57; }
.ma-pill.is-danger{ background:#fdecec; color:#c0392b; }

/* Cabeçalho da aba */
#view-master #master-tab-access .master-section-kicker{ color:#9a6db0; }
#view-master #master-tab-access .master-section-head h2{ color:#3a1140; }
/* === fim Acessos redesign 2026-06-18 === */

/* === Auditoria Médica — coluna de ações dos cards da fila === */
#view-auditoria .aud-actions > .btn,
#view-auditoria .aud-actions > select {
  width: 100%;
  margin: 0;
}

#view-regulacao .agc-badge-realizada { background:#ccfbf1; color:#0f766e; }

/* === Regulação — modal único de vagas (calendário + horários lado a lado) === */
/* Prefixo #reg-modal garante especificidade acima da regra :has(.reg-cal-day) (920px). */
#reg-modal .reg-modal-box.reg-modal-agcfg,
#reg-modal .reg-modal-box:has(.reg-agcfg) { max-width: 1320px !important; width: 92vw !important; }
#reg-modal .reg-modal-box.reg-modal-agcfg .reg-modal-body { padding: 4px 22px 18px; }
.reg-agcfg { display: flex; gap: 26px; flex-wrap: wrap; align-items: stretch; }
.reg-agcfg-col {
  flex: 1 1 460px; min-width: 320px;
  background: var(--surface-2, #f7f2f7);
  border: 1px solid var(--border, #e2d4e2);
  border-radius: 14px;
  padding: 18px 20px;
}
.reg-agcfg-col .reg-cal-grid { width: 100%; }
.reg-agcfg-col .reg-cal-day { min-height: 38px; font-size: .92rem; }
.reg-agcfg-h {
  display: flex; align-items: center; gap: 8px; font-weight: 800;
  color: var(--primary, #6d1f6c); margin: 0 0 12px; font-size: 1rem;
  padding-bottom: 10px; border-bottom: 1px solid var(--border, #e2d4e2);
}
.reg-agcfg-h i { width: 19px; height: 19px; }
.reg-agcfg-total {
  display: flex; align-items: center; gap: 11px; margin: 0 0 18px;
  padding: 14px 20px; border-radius: 12px;
  background: linear-gradient(135deg, var(--primary, #6d1f6c), var(--primary-light, #8e3a8d));
  color: #fff; font-size: 1.05rem; font-weight: 600;
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(109,31,108,.18));
}
.reg-agcfg-total, .reg-agcfg-total span, .reg-agcfg-total strong, .reg-agcfg-total .small { color: #fff !important; }
.reg-agcfg-total strong { font-size: 1.5rem; font-weight: 800; }
.reg-agcfg-total i { width: 24px; height: 24px; flex-shrink: 0; color: #fff; }
.reg-agcfg-total .small { font-weight: 500; color: rgba(255,255,255,.82) !important; }
/* Quantidade de vagas + botão Gerar lado a lado */
.reg-ag-genrow { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.reg-ag-genrow .reg-ag-qty { flex: 1 1 140px; display: flex; flex-direction: column; gap: 4px; margin: 0; }
.reg-ag-genrow .reg-ag-qty input { margin: 0; }
.reg-ag-genrow .reg-ag-gerar { flex: 0 0 auto; white-space: nowrap; height: 40px; }
/* Seletor de turno (manhã / tarde / ambos) */
.reg-turno-seg { display: flex; gap: 8px; margin-bottom: 14px; }
.reg-turno-btn {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 8px; border: 1.5px solid var(--border, #e2d4e2); border-radius: 10px;
  background: var(--surface, #fff); color: var(--text-muted, #7a5a7a);
  font-weight: 700; font-size: .85rem; cursor: pointer; transition: all .15s;
}
.reg-turno-btn i { width: 16px; height: 16px; }
.reg-turno-btn:hover { border-color: var(--primary, #6d1f6c); color: var(--primary, #6d1f6c); }
.reg-turno-btn.active { background: var(--primary, #6d1f6c); color: #fff; border-color: var(--primary-dark, #4e1550); box-shadow: var(--shadow-xs, 0 1px 3px rgba(109,31,108,.2)); }
/* Escopo: aplicar horários a todos os dias ou a um dia específico */
.reg-scope-wrap { margin-bottom: 14px; padding: 12px 14px; border-radius: 11px; background: var(--surface, #fff); border: 1px dashed var(--border-strong, #c9b5c9); }
.reg-scope-lb { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 800; color: var(--text-muted, #7a5a7a); margin-bottom: 8px; }
.reg-scope-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.reg-scope-chip {
  position: relative; display: inline-flex; align-items: center; gap: 5px;
  padding: 6px 13px; border: 1.5px solid var(--border, #e2d4e2); border-radius: 999px;
  background: var(--surface-2, #f7f2f7); color: var(--text-muted, #7a5a7a);
  font-weight: 700; font-size: .82rem; cursor: pointer; transition: all .15s;
}
.reg-scope-chip:hover { border-color: var(--primary, #6d1f6c); color: var(--primary, #6d1f6c); }
.reg-scope-chip.active { background: var(--primary, #6d1f6c); color: #fff; border-color: var(--primary-dark, #4e1550); }
.reg-scope-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent, #e6b800); box-shadow: 0 0 0 2px rgba(230,184,0,.25); }
.reg-scope-chip.active .reg-scope-dot { background: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.4); }
.reg-scope-note { display: flex; align-items: center; gap: 6px; margin-top: 9px; font-size: .8rem; color: var(--text-muted, #7a5a7a); }
.reg-scope-note i { width: 15px; height: 15px; color: var(--primary, #6d1f6c); }
.reg-scope-reset { border: 0; background: none; color: var(--primary, #6d1f6c); font-weight: 700; font-size: .8rem; cursor: pointer; text-decoration: underline; padding: 0; }
@media (max-width: 760px) { .reg-agcfg-col { flex-basis: 100%; } }

/* === Regulação — cancelamento com múltiplas datas/horários === */
#view-regulacao .reg-cancel-block { margin: 20px 0; }
#view-regulacao .reg-cancel-head {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 11px;
  font-weight: 800; color: var(--text-main, #1f0b1f); font-size: .92rem;
}
#view-regulacao .reg-cancel-head i { width: 17px; height: 17px; color: var(--primary, #6d1f6c); }
#view-regulacao .reg-cancel-hint {
  font-weight: 600; font-size: .76rem; color: var(--text-light, #b09ab0);
  background: var(--surface-3, #ede4ed); padding: 2px 9px; border-radius: 999px;
}

/* ===== Alternância Quadro / Lista do Kanban da Regulação ===== */
#view-regulacao .reg-view-toggle {
  display: inline-flex;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 9px;
  overflow: hidden;
  background: var(--surface, #fff);
}
#view-regulacao .reg-view-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  color: var(--text-muted, #64748b);
  font-weight: 800;
  font-size: 13px;
  padding: 7px 12px;
  cursor: pointer;
  white-space: nowrap;
}
#view-regulacao .reg-view-btn + .reg-view-btn { border-left: 1px solid var(--border, #e2e8f0); }
#view-regulacao .reg-view-btn i { width: 15px; height: 15px; }
#view-regulacao .reg-view-btn:hover { background: #f1f5f9; }
#view-regulacao .reg-view-btn.active { background: var(--primary, #6d1f6c); color: #fff; }
#view-regulacao .reg-view-btn.active:hover { background: var(--primary, #6d1f6c); }

/* ===== Listagem única de tarefas ===== */
#view-regulacao .reg-tasklist-wrap {
  margin-top: 12px;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  overflow: auto;
}
#view-regulacao .reg-tasklist {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
}
#view-regulacao .reg-tasklist thead th {
  text-align: left;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--text-muted, #64748b);
  font-weight: 800;
  padding: 11px 14px;
  background: #f8fafc;
  border-bottom: 1px solid var(--border, #e2e8f0);
  white-space: nowrap;
}
#view-regulacao .reg-tasklist tbody td {
  padding: 11px 14px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}
#view-regulacao .reg-tasklist tbody tr:last-child td { border-bottom: 0; }
#view-regulacao .reg-tasklist tbody tr:hover { background: #faf7fb; }
#view-regulacao .reg-tasklist-row.is-overdue { background: #fef6f6; }
#view-regulacao .reg-tasklist-row.is-overdue:hover { background: #fdeeee; }

#view-regulacao .reg-tasklist-proto {
  font-weight: 800;
  color: var(--text, #1e293b);
  white-space: nowrap;
}
#view-regulacao .reg-tasklist-proto i { width: 13px; height: 13px; opacity: .5; vertical-align: -2px; margin-right: 2px; }
#view-regulacao .reg-tasklist-title { min-width: 220px; }
#view-regulacao .reg-tasklist-name { display: block; font-weight: 700; color: var(--text, #1e293b); }
#view-regulacao .reg-tasklist-cat {
  display: inline-flex; align-items: center; gap: 4px;
  margin-top: 3px; font-size: 11.5px; color: var(--text-muted, #64748b);
}
#view-regulacao .reg-tasklist-cat i { width: 12px; height: 12px; }
#view-regulacao .reg-tasklist-assignee { color: var(--text, #1e293b); }
#view-regulacao .reg-tasklist-updated { color: var(--text-muted, #64748b); white-space: nowrap; font-size: 12.5px; }
#view-regulacao .reg-tasklist-dash { color: #cbd5e1; }
#view-regulacao .reg-tasklist-act { text-align: right; white-space: nowrap; }
#view-regulacao .reg-tasklist-actcol { width: 1%; }

/* reaproveita os badges de prioridade/prazo do card; pílula de status própria da lista */
#view-regulacao .reg-tasklist-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 800;
  white-space: nowrap;
}
#view-regulacao .reg-tasklist-status-todo { background: #e2e8f0; color: #334155; }
#view-regulacao .reg-tasklist-status-doing { background: #dbeafe; color: #1e40af; }
#view-regulacao .reg-tasklist-status-pending { background: #fef3c7; color: #92400e; }
#view-regulacao .reg-tasklist-status-done { background: #dcfce7; color: #15803d; }

@media (max-width: 720px) {
  #view-regulacao .reg-tasklist-updated,
  #view-regulacao .reg-tasklist thead th.reg-tasklist-hide,
  #view-regulacao .reg-tasklist td.reg-tasklist-hide { display: none; }
}
