:root {
  --bg: #f4f7fb;
  --surface: #ffffff;
  --surface-2: #eef3f8;
  --ink: #172033;
  --muted: #637084;
  --line: #d9e1ea;
  --primary: #0f766e;
  --primary-dark: #0b5f59;
  --blue: #2563eb;
  --amber: #d97706;
  --red: #dc2626;
  --green: #15803d;
  --shadow: 0 14px 40px rgba(23, 32, 51, 0.08);
}

.person-registration-wizard,
.person-registration-actions {
  grid-column: 1 / -1;
}

.person-registration-wizard {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid #cfe2e5;
  border-radius: 14px;
  background: linear-gradient(135deg, #f4fbfb, #ffffff);
}

.person-registration-stepper {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.person-registration-step-button {
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #cbdde0;
  border-radius: 9px;
  background: #ffffff;
  color: #35545a;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.person-registration-step-button:hover,
.person-registration-step-button:focus-visible {
  border-color: #087f79;
  outline: 2px solid rgba(8, 127, 121, 0.2);
  outline-offset: 1px;
}

.person-registration-step-button.is-active {
  border-color: #087f79;
  background: #087f79;
  color: #ffffff;
}

.person-registration-intro {
  display: grid;
  gap: 3px;
  color: #4d666c;
  font-size: 0.9rem;
}

.person-registration-intro strong {
  color: #123d43;
  font-size: 1rem;
}

.person-registration-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
}

.person-registration-actions button[disabled] {
  cursor: not-allowed;
  opacity: 0.5;
}

[data-person-registration-attachment][hidden],
[data-person-registration-after][hidden] {
  display: none !important;
}

@media (max-width: 760px) {
  .person-registration-stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .person-registration-step-button {
    min-height: 44px;
  }

  .person-registration-actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding: 10px 0;
    background: #ffffff;
  }
}

[hidden] {
  display: none !important;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

button,
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea {
  font: inherit;
}

.radio-hidden {
  height: 1px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  width: 1px;
}

.alert {
  border-radius: 8px;
  display: grid;
  gap: 4px;
  margin-bottom: 16px;
  padding: 12px 14px;
}

.success-alert {
  background: #dcfce7;
  border: 1px solid #86efac;
  color: #14532d;
}

.error-alert {
  background: #fee2e2;
  border: 1px solid #fecaca;
  color: #7f1d1d;
}

.info-alert {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e3a8a;
}

.plain-fieldset {
  border: 0;
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
}

.empty-state {
  color: var(--muted);
}

button {
  cursor: pointer;
}

.app-shell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  background: #121a28;
  color: #f8fafc;
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100vh;
  max-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 18px;
  position: sticky;
  top: 0;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.brand-mark {
  width: 42px;
  height: 42px;
  display: block;
  flex: 0 0 auto;
  border-radius: 8px;
  object-fit: cover;
}

.brand strong,
.brand span {
  display: block;
}

.brand span,
.session-box small {
  color: #aeb9c8;
  font-size: 0.78rem;
}

.main-nav {
  display: grid;
  gap: 4px;
}

.sidebar-context-help {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  color: #d8e0ea;
  padding-top: 9px;
}

.sidebar-context-help > summary {
  align-items: center;
  background: linear-gradient(135deg, rgba(32, 57, 78, 0.82), rgba(22, 37, 55, 0.92));
  border: 1px solid rgba(139, 211, 202, 0.25);
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  gap: 9px;
  list-style: none;
  min-height: 48px;
  padding: 8px 10px;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.sidebar-context-help > summary::-webkit-details-marker {
  display: none;
}

.sidebar-context-help > summary::after {
  color: #8bd3ca;
  content: "+";
  font-size: 1.1rem;
  font-weight: 700;
  margin-left: auto;
}

.sidebar-context-help[open] > summary::after {
  content: "-";
}

.sidebar-context-help > summary:hover,
.sidebar-context-help > summary:focus-visible {
  background: linear-gradient(135deg, rgba(39, 75, 91, 0.96), rgba(24, 50, 66, 0.98));
  border-color: rgba(139, 211, 202, 0.58);
  color: #ffffff;
  outline: none;
  transform: translateY(-1px);
}

.sidebar-context-help > summary svg {
  color: #8bd3ca;
  flex: 0 0 17px;
  height: 17px;
  width: 17px;
}

.sidebar-context-help-summary-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.sidebar-context-help-summary-copy small {
  color: #8bd3ca;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.sidebar-context-help-summary-copy strong {
  color: #f8fafc;
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  font-size: 0.82rem;
  line-height: 1.2;
}

.sidebar-context-help-body {
  background: linear-gradient(180deg, #1b2d3d, #162434);
  border: 1px solid #355269;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(3, 10, 20, 0.28);
  display: grid;
  gap: 12px;
  margin-top: 6px;
  max-height: min(44vh, 390px);
  overflow-y: auto;
  padding: 13px 12px;
  scrollbar-color: #54768a #162434;
}

.sidebar-context-help-heading {
  display: grid;
  gap: 3px;
}

.sidebar-context-help-heading > span {
  color: #8bd3ca;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sidebar-context-help-heading strong {
  color: #ffffff;
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  font-size: 0.9rem;
  line-height: 1.25;
}

.sidebar-context-help-body p {
  color: #b8c4d2;
  font-size: 0.76rem;
  line-height: 1.4;
  margin: 0;
}

.sidebar-context-help-section {
  border-top: 1px solid rgba(182, 213, 222, 0.16);
  display: grid;
  gap: 7px;
  padding-top: 10px;
}

.sidebar-context-help-label {
  color: #8bd3ca;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sidebar-context-help-list {
  display: grid;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.sidebar-context-help-list li {
  min-width: 0;
}

.sidebar-context-help-tip-list li {
  color: #d4e1e8;
  font-size: 0.75rem;
  line-height: 1.38;
  padding-left: 13px;
  position: relative;
}

.sidebar-context-help-tip-list li::before {
  color: #8bd3ca;
  content: "•";
  font-size: 1rem;
  left: 0;
  position: absolute;
  top: -1px;
}

.sidebar-context-help-list a,
.sidebar-context-help-list a:visited {
  align-items: flex-start;
  color: #d8e0ea;
  display: flex;
  font-size: 0.75rem;
  gap: 6px;
  line-height: 1.35;
  text-decoration: none;
}

.sidebar-context-help-list a svg {
  color: #8bd3ca;
  flex: 0 0 14px;
  height: 14px;
  margin-top: 1px;
  width: 14px;
}

.sidebar-context-help-manual-list a:hover,
.sidebar-context-help-manual-list a:focus-visible {
  color: #8bd3ca;
  outline: none;
  text-decoration: underline;
}

.sidebar-context-help-action-list a {
  align-items: center;
  background: rgba(139, 211, 202, 0.11);
  border: 1px solid rgba(139, 211, 202, 0.3);
  border-radius: 7px;
  justify-content: space-between;
  padding: 7px 8px;
  transition: background 160ms ease, border-color 160ms ease;
}

.sidebar-context-help-action-list a:hover,
.sidebar-context-help-action-list a:focus-visible {
  background: rgba(139, 211, 202, 0.2);
  border-color: rgba(139, 211, 202, 0.65);
  color: #ffffff;
  outline: none;
  text-decoration: none;
}

.sidebar-context-help-action-list a svg {
  flex-basis: 15px;
  height: 15px;
  width: 15px;
}

.sidebar-context-help-tip {
  color: inherit;
  display: block;
}

.nav-item {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #d8e0ea;
  display: flex;
  gap: 9px;
  min-height: 36px;
  padding: 7px 12px;
  text-align: left;
}

.link-nav {
  text-decoration: none;
}

.nav-item:hover,
.nav-item.active {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.14);
  color: #ffffff;
}

.nav-item svg,
button svg {
  flex: 0 0 auto;
  height: 18px;
  width: 18px;
}

.nav-dot {
  background: var(--red);
  border: 2px solid #121a28;
  border-radius: 999px;
  height: 11px;
  margin-left: auto;
  width: 11px;
}

.session-box {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: auto;
  padding-top: 10px;
}

.session-summary {
  border-radius: 6px;
  cursor: pointer;
  display: grid;
  gap: 2px;
  list-style: none;
  padding: 4px 22px 4px 2px;
  position: relative;
}

.session-summary::-webkit-details-marker {
  display: none;
}

.session-summary::after {
  color: #cbd5e1;
  content: "+";
  font-size: 1rem;
  font-weight: 700;
  position: absolute;
  right: 3px;
  top: 4px;
}

.session-details[open] .session-summary::after {
  content: "-";
}

.session-summary > span:first-child,
.session-summary > strong,
.session-summary > small {
  display: block;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.session-summary-action {
  color: #7dd3fc;
  font-size: 0.72rem;
  font-weight: 700;
  margin-top: 2px;
}

.session-details-content {
  background: rgba(15, 23, 42, 0.62);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 7px;
  display: grid;
  gap: 7px;
  margin-top: 5px;
  padding: 8px;
}

.session-detail-row {
  display: grid;
  gap: 2px;
}

.session-detail-row span {
  color: #aeb9c8;
  font-size: 0.68rem;
  line-height: 1.15;
}

.session-detail-row strong {
  color: #ffffff;
  font-size: 0.78rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
  white-space: normal;
}

.session-link {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  color: #f8fafc;
  display: inline-flex;
  gap: 8px;
  margin-top: 8px;
  min-height: 34px;
  padding: 7px 10px;
  text-decoration: none;
}

.session-link.active,
.session-link:hover {
  background: rgba(255, 255, 255, 0.08);
}

.account-toggle {
  display: none;
}

.session-message-button {
  align-items: center;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  color: #f8fafc;
  display: none;
  gap: 8px;
  margin-top: 8px;
  min-height: 34px;
  padding: 7px 10px;
  position: relative;
}

.session-message-button:hover {
  background: rgba(255, 255, 255, 0.08);
}

.message-dot {
  background: var(--red);
  border: 2px solid #121a28;
  border-radius: 999px;
  height: 12px;
  position: absolute;
  right: 6px;
  top: 5px;
  width: 12px;
}

.workspace {
  min-width: 0;
  padding: 24px;
}

.topbar,
.screen-heading {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.eyebrow {
  color: var(--primary);
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1 {
  font-size: clamp(1.65rem, 2vw, 2.35rem);
  line-height: 1.1;
}

h2 {
  font-size: 1.03rem;
}

h3 {
  font-size: 0.98rem;
}

.top-actions,
.search-row,
.save-bar {
  align-items: center;
  display: flex;
  gap: 10px;
}

.icon-button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: inherit;
  display: inline-flex;
  height: 38px;
  justify-content: center;
  padding: 0;
  width: 38px;
}

.icon-button:hover {
  background: #f1f5f9;
}

.pending-center {
  position: relative;
}

.pending-toggle {
  position: relative;
}

.pending-alert-dot {
  background: var(--red);
  border: 2px solid #ffffff;
  border-radius: 50%;
  height: 11px;
  position: absolute;
  right: 5px;
  top: 4px;
  width: 11px;
}

.pending-popover {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
  display: grid;
  gap: 12px;
  padding: 14px;
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: min(430px, calc(100vw - 32px));
  z-index: 80;
}

.pending-popover[hidden],
.live-notification[hidden] {
  display: none;
}

.pending-popover-header {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.pending-popover-header strong {
  display: block;
  margin-top: 2px;
}

.pending-summary {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pending-summary span {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  display: grid;
  font-size: 0.75rem;
  gap: 2px;
  padding: 8px;
  text-align: center;
}

.pending-summary b {
  color: var(--ink);
  font-size: 1rem;
}

.pending-summary .pending-summary-alert {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

.pending-summary .pending-summary-alert b {
  color: #991b1b;
}

.pending-summary .pending-summary-warning {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

.pending-summary .pending-summary-warning b {
  color: #92400e;
}

.pending-list {
  display: grid;
  gap: 6px;
  max-height: 330px;
  overflow-y: auto;
}

.pending-item {
  align-items: flex-start;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: grid;
  gap: 9px;
  grid-template-columns: 24px minmax(0, 1fr);
  padding: 10px;
  text-decoration: none;
}

.pending-item:hover {
  background: #e6f1ef;
  border-color: #bddbd6;
}

.pending-item svg {
  color: var(--primary);
  height: 19px;
  margin-top: 1px;
  width: 19px;
}

.pending-item span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.pending-item small,
.pending-item em {
  color: var(--muted);
  font-size: 0.8rem;
  font-style: normal;
  overflow-wrap: anywhere;
}

.pending-item em {
  color: var(--primary-dark);
  font-weight: 700;
}

.pending-empty {
  color: var(--muted);
  padding: 12px;
  text-align: center;
}

.live-notification {
  align-items: center;
  background: #ffffff;
  border: 1px solid #86d8cc;
  border-left: 4px solid var(--primary);
  border-radius: 8px;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.18);
  display: grid;
  gap: 10px;
  grid-template-columns: 24px minmax(0, 1fr) 38px;
  max-width: 420px;
  padding: 10px 10px 10px 12px;
  position: fixed;
  right: 20px;
  top: 20px;
  z-index: 120;
}

.live-notification > svg {
  color: var(--primary);
}

.view {
  display: none;
}

.view.active {
  display: block;
}

.home-layout {
  display: grid;
  gap: 16px;
  max-width: 980px;
}

.home-hero {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px;
}

.home-hero h2 {
  font-size: 1.55rem;
  margin: 4px 0 8px;
}

.home-hero p {
  color: var(--muted);
  line-height: 1.45;
}

.home-actions {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-action {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: grid;
  gap: 8px;
  min-height: 150px;
  padding: 18px;
  text-align: left;
}

.home-action:hover {
  border-color: #b8c6d6;
  box-shadow: var(--shadow);
}

.home-action svg {
  color: var(--primary);
  height: 28px;
  width: 28px;
}

.home-action strong {
  font-size: 1.15rem;
}

.home-action span {
  color: var(--muted);
  line-height: 1.35;
}

.primary-home-action {
  background: #e6f1ef;
  border-color: #bddbd6;
}

.home-summary {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-summary article {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
}

.home-summary span,
.home-tool-list button {
  color: var(--muted);
}

.home-summary strong {
  display: block;
  font-size: 1.65rem;
  margin-top: 4px;
}

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

.attendance-evolution-panel {
  background: linear-gradient(135deg, #ffffff 0%, #f7fbfb 100%);
  display: grid;
  gap: 14px;
  overflow: hidden;
}

.attendance-evolution-heading {
  align-items: start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.attendance-evolution-heading h2 {
  font-size: 1.2rem;
  margin: 3px 0 6px;
}

.attendance-evolution-heading p,
.attendance-evolution-note,
.attendance-evolution-zero {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.attendance-evolution-chart-wrap {
  background: linear-gradient(180deg, rgba(232, 247, 244, 0.58) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid #e0eceb;
  border-radius: 12px;
  min-height: 0;
  padding: 8px 10px 0;
  position: relative;
}

.attendance-evolution-chart {
  display: block;
  height: auto;
  max-height: 320px;
  min-height: 0;
  overflow: visible;
  width: 100%;
}

.attendance-evolution-grid-line {
  stroke: #d9e4e8;
  stroke-dasharray: 3 5;
  stroke-width: 1;
}

.attendance-evolution-y-label {
  fill: #6b7c8d;
  font-family: inherit;
  font-size: 12px;
}

.attendance-evolution-area {
  fill: rgba(15, 138, 124, 0.22);
  opacity: 1;
}

.attendance-evolution-line {
  fill: none;
  stroke: #0f8a7c;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4;
}

.attendance-evolution-point {
  cursor: pointer;
  fill: #ffffff;
  stroke: #0f8a7c;
  stroke-width: 4;
  transition: r 160ms ease, stroke 160ms ease;
}

.attendance-evolution-point:hover,
.attendance-evolution-point:focus {
  fill: #0f8a7c;
  outline: none;
  r: 8;
  stroke: #0c6259;
}

.attendance-evolution-tooltip {
  background: #142537;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(15, 35, 53, 0.2);
  color: #ffffff;
  display: grid;
  font-size: 0.82rem;
  gap: 3px;
  max-width: 260px;
  padding: 10px 12px;
  pointer-events: none;
  position: absolute;
  transform: translate(-50%, calc(-100% - 12px));
  z-index: 2;
}

.attendance-evolution-tooltip[data-position="below"] {
  transform: translate(-50%, 12px);
}

.attendance-evolution-tooltip[data-horizontal-position="start"] {
  transform: translate(0, calc(-100% - 12px));
}

.attendance-evolution-tooltip[data-horizontal-position="end"] {
  transform: translate(-100%, calc(-100% - 12px));
}

.attendance-evolution-tooltip[data-position="below"][data-horizontal-position="start"] {
  transform: translate(0, 12px);
}

.attendance-evolution-tooltip[data-position="below"][data-horizontal-position="end"] {
  transform: translate(-100%, 12px);
}

.attendance-evolution-tooltip strong {
  font-size: 0.9rem;
}

.attendance-evolution-labels {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-left: 52px;
  padding-right: 22px;
}

.attendance-evolution-labels > span {
  color: #637689;
  display: grid;
  font-size: 0.78rem;
  gap: 1px;
  justify-items: center;
  line-height: 1.2;
  min-width: 0;
  text-align: center;
}

.attendance-evolution-labels .attendance-evolution-month {
  white-space: nowrap;
}

.attendance-evolution-labels .attendance-evolution-partial {
  color: #0f6f65;
  font-weight: 800;
  font-size: 0.7rem;
}

.attendance-evolution-empty {
  align-items: center;
  background: #f8fafc;
  border: 1px dashed #b8c7d5;
  border-radius: 8px;
  color: #526679;
  display: flex;
  gap: 10px;
  min-height: 116px;
  padding: 18px;
}

.attendance-evolution-empty svg {
  color: #0f8a7c;
  flex: 0 0 auto;
}

.attendance-evolution-details {
  border-top: 1px solid #e2e8f0;
  color: #526679;
  font-size: 0.88rem;
  padding-top: 10px;
}

.attendance-evolution-details summary {
  cursor: pointer;
  font-weight: 800;
}

.attendance-evolution-details ul {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.attendance-evolution-details li {
  display: grid;
  gap: 2px;
}

.attendance-evolution-details span {
  color: #718096;
}

.pie-stat-card {
  align-items: center;
  display: grid;
  gap: 16px;
  grid-template-columns: 142px minmax(0, 1fr);
}

.pie-chart-wrap {
  display: grid;
  justify-items: center;
}

.pie-chart {
  align-items: center;
  aspect-ratio: 1;
  background: conic-gradient(var(--pie));
  border-radius: 50%;
  display: grid;
  justify-items: center;
  position: relative;
  width: 136px;
}

.pie-chart::after {
  background: #ffffff;
  border-radius: 50%;
  content: "";
  inset: 28px;
  position: absolute;
}

.pie-chart span {
  color: var(--ink);
  font-size: 1.7rem;
  font-weight: 900;
  position: relative;
  z-index: 1;
}

.pie-stat-info {
  min-width: 0;
}

.pie-stat-info h2 {
  font-size: 1.08rem;
  margin: 3px 0 6px;
}

.pie-stat-info p {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.35;
}

.pie-legend {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

.pie-legend li {
  display: grid;
  gap: 2px 8px;
  grid-template-columns: 12px minmax(0, 1fr);
}

.legend-color {
  background: var(--legend-color);
  border-radius: 999px;
  grid-row: span 2;
  height: 12px;
  margin-top: 4px;
  width: 12px;
}

.pie-legend strong {
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}

.pie-legend small {
  color: var(--muted);
  font-size: 0.82rem;
}

.migration-dashboard {
  display: grid;
  gap: 16px;
}

.migration-overview-card {
  align-items: center;
  background: linear-gradient(135deg, #f0fdfa 0%, #f8fafc 68%);
  display: flex;
  gap: 22px;
  justify-content: space-between;
}

.migration-overview-content {
  min-width: 0;
}

.migration-dashboard-filter {
  margin-top: 12px;
  max-width: 320px;
}

.migration-dashboard-filter .field {
  gap: 6px;
}

.migration-overview-card h2,
.migration-route-card h2 {
  font-size: 1.08rem;
  margin: 3px 0 6px;
}

.migration-overview-card p,
.migration-card-intro,
.migration-dashboard-note {
  color: var(--muted);
  line-height: 1.4;
  margin: 0;
}

.migration-overview-total {
  align-items: end;
  color: #0f766e;
  display: grid;
  flex: 0 0 auto;
  justify-items: end;
}

.migration-overview-total strong {
  font-size: clamp(1.9rem, 4vw, 2.5rem);
  line-height: 1;
}

.migration-overview-total span {
  color: #526679;
  font-size: 0.78rem;
  font-weight: 800;
  margin-top: 4px;
  text-transform: uppercase;
}

.migration-dashboard-grid {
  align-items: stretch;
}

.migration-route-card {
  align-content: start;
  display: grid;
}

.migration-route-bars {
  display: grid;
  gap: 13px;
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}

.migration-route-bars li {
  display: grid;
  gap: 6px;
}

.migration-route-label {
  align-items: baseline;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.migration-route-label strong {
  color: var(--ink);
  font-size: 0.88rem;
  min-width: 0;
  overflow-wrap: anywhere;
}

.migration-route-label span {
  color: var(--muted);
  flex: 0 0 auto;
  font-size: 0.78rem;
  white-space: nowrap;
}

.migration-route-track {
  background: #e7eef1;
  border-radius: 999px;
  height: 11px;
  overflow: hidden;
}

.migration-route-track > span {
  background: var(--migration-color);
  border-radius: inherit;
  display: block;
  height: 100%;
  min-width: 8px;
  transition: width 220ms ease;
  width: calc(var(--migration-progress) * 1%);
}

.migration-route-bars .is-other .migration-route-label strong {
  color: #526679;
}

.migration-reason-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}

.migration-reason-chart {
  box-shadow: 0 0 0 7px rgba(15, 118, 110, 0.06);
}

.pie-legend .is-other .legend-color {
  box-shadow: inset 0 0 0 1px rgba(71, 85, 105, 0.18);
}

.migration-dashboard-note {
  border-top: 1px solid #e2e8f0;
  font-size: 0.88rem;
  padding-top: 13px;
}

.home-tool-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.home-tool-list button {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: inline-flex;
  gap: 8px;
  min-height: 42px;
  padding: 9px 12px;
}

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

.simplified-layout {
  grid-template-columns: minmax(0, 900px);
  max-width: 920px;
}

.simplified-layout .optional-search,
.simplified-layout .right-rail {
  display: none;
}

.simplified-layout .panel {
  box-shadow: 0 8px 24px rgba(23, 32, 51, 0.06);
}

.fast-form {
  display: grid;
  gap: 16px;
}

.panel,
.table-wrap,
.metric,
.org-card,
.column {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.panel {
  padding: 18px;
}

.panel-title {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-bottom: 14px;
}

.panel-title.slim {
  margin-bottom: 12px;
}

.panel-title h2 {
  flex: 1;
}

.person-age-pill {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: inline-flex;
  font-size: 20px;
  font-weight: 800;
  justify-content: center;
  min-height: 42px;
  min-width: 150px;
  padding: 8px 14px;
  text-align: center;
  white-space: nowrap;
}

.step {
  align-items: center;
  background: #dff5f2;
  border-radius: 999px;
  color: var(--primary-dark);
  display: inline-flex;
  font-weight: 800;
  height: 28px;
  justify-content: center;
  width: 28px;
}

.field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.field span {
  color: #39465a;
  font-size: 0.86rem;
  font-weight: 700;
}

.field.full {
  width: 100%;
}

input,
select,
textarea {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  color: var(--ink);
  min-height: 44px;
  outline: none;
  padding: 10px 12px;
  width: 100%;
}

textarea {
  line-height: 1.4;
  resize: vertical;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
select:focus,
textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.14);
}

.form-grid {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.form-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-grid.two > .full {
  grid-column: 1 / -1;
}

.compact-inner-grid {
  margin-top: 6px;
}

.primary-button,
.secondary-button,
.ghost-button,
.danger-button,
.choice {
  align-items: center;
  border-radius: 8px;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  white-space: nowrap;
}

.primary-button {
  background: var(--primary);
  border: 1px solid var(--primary);
  color: #ffffff;
  font-weight: 800;
}

.primary-button:hover {
  background: var(--primary-dark);
}

.secondary-button {
  background: #e6f1ef;
  border: 1px solid #bddbd6;
  color: var(--primary-dark);
  font-weight: 800;
}

.ghost-button {
  background: #ffffff;
  border: 1px solid var(--line);
  color: #263347;
}

.danger-button {
  background: #fee2e2;
  border: 1px solid #fecaca;
  color: #991b1b;
  font-weight: 800;
}

.danger-button:hover {
  background: #fecaca;
}

.small {
  min-height: 38px;
  padding: 8px 12px;
}

.compact {
  min-height: 34px;
  padding: 7px 10px;
}

.person-result {
  align-items: center;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-top: 12px;
  padding: 12px;
}

.person-result strong,
.person-result span {
  display: block;
}

.person-result span {
  color: var(--muted);
  font-size: 0.88rem;
  margin-top: 3px;
}

.person-mode-actions,
.record-type-actions {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.record-type-actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 14px;
  margin-top: 12px;
}

.mode-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  color: var(--ink);
  display: flex;
  gap: 12px;
  justify-content: flex-start;
  min-height: 72px;
  padding: 16px;
  text-align: left;
}

.mode-button svg {
  color: var(--primary);
  height: 24px;
  width: 24px;
}

.mode-button span {
  font-size: 1rem;
  font-weight: 800;
}

.mode-button:hover,
.mode-button.active {
  background: #e6f1ef;
  border-color: var(--primary);
  color: var(--primary-dark);
}

.person-mode-panel {
  border-top: 1px solid var(--line);
  margin-top: 14px;
  padding-top: 14px;
}

.person-mode-panel[hidden] {
  display: none;
}

.person-search-status {
  color: var(--muted);
  display: block;
  font-size: 0.78rem;
  margin-top: 6px;
}

.selected-person {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  color: #14532d;
  display: grid;
  align-items: start;
  gap: 10px;
  grid-template-columns: minmax(0, 1.15fr) minmax(150px, 0.75fr) minmax(0, 0.95fr);
  margin-top: 10px;
  padding: 8px 10px;
}

.selected-person > div {
  display: grid;
  gap: 4px;
}

.selected-person > .selected-person-biometry {
  align-items: center;
  border-left: 1px solid #bbf7d0;
  display: flex;
  gap: 8px;
  min-width: 0;
  padding-left: 10px;
}

.selected-person-biometry-icon {
  align-items: center;
  background: #eef2f4;
  border: 1px solid #d4dcdf;
  border-radius: 999px;
  color: #7a8794;
  display: inline-flex;
  flex: 0 0 32px;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.selected-person-biometry-icon .icon {
  height: 20px;
  width: 20px;
}

.selected-person-biometry-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.selected-person-biometry-copy strong {
  color: #526070;
  font-size: 0.78rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.selected-person-biometry-copy small {
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.2;
}

.selected-person-biometry-copy small:empty {
  display: none;
}

.selected-person > .selected-person-biometry.is-registered .selected-person-biometry-icon {
  background: #d8eee7;
  border-color: #8ac5b5;
  color: #087e6d;
}

.selected-person > .selected-person-biometry.is-registered .selected-person-biometry-copy strong {
  color: #087e6d;
}

.selected-person span {
  color: var(--ink);
}

.selected-person-location {
  border-left: 1px solid #bbf7d0;
  padding-left: 10px;
}

.selected-person-location small {
  color: var(--muted);
}

@media (max-width: 768px) {
  .selected-person {
    grid-template-columns: minmax(0, 1fr);
  }

  .selected-person > .selected-person-biometry,
  .selected-person-location {
    border-left: 0;
    border-top: 1px solid #bbf7d0;
    padding-left: 0;
    padding-top: 10px;
  }
}

/* Portal de parceiros externos: fila operacional sem expor dados do prontuario. */
.external-portal-panel {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
}

.external-portal-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.external-portal-metrics article {
  min-width: 0;
}

.external-portal-tabs {
  flex-wrap: wrap;
  margin: 0;
}

.external-queue-search {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.external-queue-search .field {
  flex: 1 1 320px;
}

.external-queue-search .ghost-link {
  padding-bottom: 9px;
}

.external-catalog {
  margin-bottom: 16px;
}

.external-catalog summary,
.external-workflow-detail summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 700;
  gap: 8px;
  justify-content: space-between;
}

.external-catalog summary > span,
.external-workflow-detail summary {
  color: var(--ink);
}

.external-catalog-grid {
  margin-top: 16px;
}

.external-workflow-actions {
  display: grid;
  gap: 12px;
}

.external-status-strip,
.external-case-summary,
.external-next-step {
  background: #f5faf9;
  border: 1px solid #c8e5df;
  border-radius: 10px;
  display: grid;
  gap: 3px;
  padding: 10px 12px;
}

.external-status-strip {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.external-status-strip span,
.external-next-step span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.external-status-strip small {
  color: var(--teal, #087f75);
  font-weight: 700;
  margin-left: auto;
}

.external-case-summary span {
  color: var(--muted);
}

.external-next-step {
  border-left: 4px solid #0d9488;
}

.external-workflow-detail {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
}

.external-workflow-detail[open] {
  background: #f8fbfc;
}

.external-workflow-detail form {
  gap: 10px;
  margin-top: 12px;
}

.external-final-response {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  margin-top: 2px;
  padding-top: 14px;
}

.timeline-item {
  border-left: 3px solid var(--line);
  padding-left: 14px;
  position: relative;
}

.timeline-item p,
.timeline-item small {
  display: block;
}

.timeline-item p {
  margin: 4px 0;
}

.timeline-item small {
  color: var(--muted);
}

@media (max-width: 900px) {
  .external-portal-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .external-portal-metrics {
    grid-template-columns: 1fr;
  }

  .external-status-strip small {
    margin-left: 0;
    width: 100%;
  }
}

.selected-person-details {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 12px;
  padding: 12px;
}

.selected-person-details[hidden] {
  display: none;
}

.selected-person-details-header {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}

.selected-person-details-header small {
  color: var(--muted);
}

.selected-person-details-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.selected-person-detail {
  background: #ffffff;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 7px 4px;
}

.selected-person-detail.full {
  grid-column: 1 / -1;
}

.selected-person-detail span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.selected-person-detail strong {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 600;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.migration-option {
  border-top: 1px solid var(--line);
  margin-top: 12px;
  padding-top: 12px;
}

.migration-toggle {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 10px;
}

.migration-toggle input {
  height: 22px;
  margin: 0;
  width: 22px;
}

.migration-toggle span {
  display: grid;
  gap: 2px;
}

.migration-toggle small {
  color: var(--muted);
}

.migration-fields {
  margin-top: 12px;
}

.migration-fields[hidden],
.migration-option[hidden] {
  display: none;
}

.registration-options-row {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.registration-options-row > :only-child {
  grid-column: 1 / -1;
}

.outcome-option {
  border-top: 1px solid var(--line);
  margin-top: 12px;
  padding-top: 12px;
}

.outcome-option-compact {
  margin-top: 10px;
  padding-top: 10px;
}

.outcome-trigger {
  align-items: center;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  color: #14532d;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  min-height: 66px;
  padding: 12px 14px;
  text-align: left;
  width: 100%;
}

.outcome-option-compact .outcome-trigger {
  min-height: 50px;
  padding: 8px 11px;
}

.outcome-option-compact .outcome-trigger-main {
  gap: 9px;
}

.outcome-option-compact .outcome-trigger-main > svg {
  height: 20px;
  width: 20px;
}

.outcome-option-compact .outcome-trigger-main > span {
  gap: 0;
}

.outcome-option-compact .outcome-trigger-main small {
  font-size: 0.78rem;
}

.outcome-trigger:hover,
.outcome-trigger[aria-expanded="true"] {
  background: #dcfce7;
  border-color: #86efac;
}

.outcome-trigger-main {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.outcome-trigger-main > svg {
  color: #15803d;
  flex: 0 0 auto;
  height: 23px;
  width: 23px;
}

.outcome-trigger-main > span {
  display: grid;
  gap: 2px;
}

.outcome-trigger-main small,
.outcome-fields-heading span {
  color: var(--muted);
  font-size: 0.86rem;
}

.outcome-trigger-state {
  color: #166534;
  flex: 0 0 auto;
  font-size: 0.86rem;
  font-weight: 800;
}

.outcome-fields {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  margin-top: 10px;
  padding: 14px;
}

.outcome-fields[hidden] {
  display: none;
}

.outcome-fields-heading {
  display: grid;
  gap: 3px;
}

.outcome-fields textarea {
  min-height: 96px;
}

.outcome-choice-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.outcome-choice-fieldset legend {
  color: #39465a;
  font-size: 0.86rem;
  font-weight: 700;
  margin-bottom: 7px;
}

.outcome-choice-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.outcome-choice {
  align-items: flex-start;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  gap: 8px;
  min-height: 36px;
  padding: 7px 8px;
}

.outcome-choice:hover {
  border-color: var(--primary);
}

.outcome-choice input {
  accent-color: var(--primary);
  flex: 0 0 auto;
  height: 18px;
  margin: 1px 0 0;
  min-height: 0;
  padding: 0;
  width: 18px;
}

.outcome-choice span {
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.3;
}

.inline-check-card {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: flex;
  gap: 9px;
  min-height: 44px;
  padding: 10px 12px;
}

.inline-check-card input {
  accent-color: var(--primary);
  flex: 0 0 auto;
  height: 18px;
  margin: 0;
  width: 18px;
}

.inline-check-card span {
  font-weight: 700;
}

.document-status-field {
  grid-column: 1;
}

.children-panel {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding-top: 12px;
}

.children-count-field[hidden] {
  display: none;
}

.optional-detail-panel {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding-top: 12px;
}

.optional-detail-fields {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.optional-detail-fields[hidden] {
  display: none;
}

.optional-detail-fields textarea {
  min-height: 92px;
  resize: vertical;
}

.substance-option {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding-top: 12px;
}

.substance-fields {
  display: grid;
  gap: 12px;
}

.substance-fields[hidden] {
  display: none;
}

.substance-label {
  color: var(--ink);
  display: block;
  font-size: 13px;
  font-weight: 700;
}

.substance-choice-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.substance-choice {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: flex;
  gap: 9px;
  min-height: 44px;
  padding: 10px 12px;
}

.substance-choice input {
  accent-color: var(--primary);
  flex: 0 0 auto;
  height: 18px;
  margin: 0;
  width: 18px;
}

.substance-choice span {
  font-weight: 700;
}

.substance-choice.compact {
  min-width: 120px;
}

.substance-question {
  display: grid;
  gap: 8px;
}

.substance-reason-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.document-upload-panel {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  margin-top: 4px;
  padding-top: 12px;
}

.form-section-divider {
  border-top: 3px solid #111827;
  margin-top: 28px;
  min-height: 0;
}

.document-upload-panel {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

.forward-system-toggle {
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-bottom: 12px;
  padding: 12px;
}

.forward-system-fields {
  display: grid;
  gap: 12px;
}

.forward-system-fields[hidden] {
  display: none;
}

.forward-entry {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
  padding: 14px;
}

.forward-entry[data-forward-validation-error="1"] {
  border-color: #e5484d;
  box-shadow: 0 0 0 3px rgba(229, 72, 77, 0.12);
}

.forward-entry [data-validation-error] {
  border-color: #e5484d !important;
  box-shadow: 0 0 0 3px rgba(229, 72, 77, 0.14);
}

.forward-entry-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.forward-entry-header strong {
  color: var(--ink);
}

.forward-entry [data-remove-forward-entry][hidden] {
  display: none;
}

.health-record-upload {
  margin-top: 2px;
}

.document-upload-header {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.document-upload-header strong,
.document-upload-header span {
  display: block;
}

.document-upload-header span {
  color: var(--muted);
  font-size: 0.88rem;
  margin-top: 2px;
}

.document-upload-header .document-counter {
  color: #475569;
  flex: 0 0 auto;
  margin: 0;
}

.document-upload-composer {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(150px, 0.6fr) minmax(190px, 1fr);
  padding: 12px;
}

.document-upload-composer .field.full,
.document-composer-actions {
  grid-column: 1 / -1;
}

.document-composer-actions {
  display: flex;
  justify-content: flex-end;
}

.document-feedback {
  color: var(--muted);
  font-size: 0.86rem;
  min-height: 20px;
  margin: -4px 0 0;
}

.document-feedback.is-error {
  color: #b91c1c;
  font-weight: 700;
}

.document-feedback.is-success {
  color: #047857;
}

.document-list-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.document-empty {
  background: #ffffff;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  color: var(--muted);
  padding: 14px;
  text-align: center;
}

.document-empty[hidden] {
  display: none;
}

.document-upload-list {
  display: grid;
  gap: 8px;
}

.health-document-upload {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
  padding: 14px;
  scroll-margin-top: 18px;
}

.health-document-upload-title {
  align-items: center;
  display: flex;
  gap: 10px;
}

.health-document-upload-title > svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 24px;
  width: 24px;
}

.health-document-upload-title div {
  display: grid;
  gap: 2px;
}

.health-document-upload-title span {
  color: var(--muted);
  font-size: 0.88rem;
}

.document-list-item {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: 30px minmax(0, 1fr) 40px;
  padding: 9px 10px;
}

.document-item-number {
  align-items: center;
  background: #dff4f1;
  border-radius: 50%;
  color: var(--primary-dark);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 800;
  height: 28px;
  justify-content: center;
  width: 28px;
}

.document-item-details {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.document-item-details strong,
.document-item-details span,
.document-item-details small {
  overflow-wrap: anywhere;
}

.document-item-details span,
.document-item-details small {
  color: var(--muted);
}

.document-item-details span {
  font-size: 0.88rem;
}

.document-item-details small {
  font-size: 0.8rem;
}

.document-item-remove {
  height: 40px;
  padding: 0;
  width: 40px;
}

@media (max-width: 680px) {
  .selected-person {
    grid-template-columns: 1fr;
  }

  .selected-person-details-grid {
    grid-template-columns: 1fr;
  }

  .selected-person-detail.full {
    grid-column: auto;
  }

  .selected-person-location {
    border-left: 0;
    border-top: 1px solid #bbf7d0;
    padding-left: 0;
    padding-top: 10px;
  }

  .document-upload-header {
    align-items: flex-start;
  }

  .document-upload-composer {
    grid-template-columns: 1fr;
  }

  .document-composer-actions .secondary-button {
    width: 100%;
  }
}

.choice-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.choice {
  background: #ffffff;
  border: 1px solid var(--line);
  color: #263347;
  cursor: pointer;
  font-weight: 700;
  min-width: 0;
  white-space: normal;
}

.choice:hover,
.choice.active {
  background: #e6f1ef;
  border-color: var(--primary);
  color: var(--primary-dark);
}

.save-bar {
  background: rgba(244, 247, 251, 0.92);
  border-top: 1px solid var(--line);
  bottom: 0;
  justify-content: flex-end;
  padding: 12px 0 0;
  position: sticky;
}

.simplified-layout .save-bar {
  background: transparent;
  border-top: 0;
  justify-content: flex-start;
  padding: 2px 0 0;
  position: static;
}

.simplified-layout .save-bar .primary-button {
  min-width: 260px;
}

.right-rail {
  display: grid;
  gap: 16px;
  position: sticky;
  top: 18px;
}

.summary-list {
  display: grid;
  gap: 12px;
  margin: 0;
}

.summary-list div {
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.summary-list div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.summary-list dt {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.summary-list dd {
  margin: 0;
}

.badge {
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1;
  padding: 6px 9px;
}

.person-list-age {
  color: var(--muted);
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  margin-left: 4px;
  white-space: nowrap;
}

.urgent {
  background: #fee2e2;
  color: var(--red);
}

.warning {
  background: #fff3d6;
  color: var(--amber);
}

.info {
  background: #dbeafe;
  color: var(--blue);
}

.success {
  background: #dcfce7;
  color: var(--green);
}

.neutral {
  background: #f1f5f9;
  color: #475569;
}

.timeline {
  counter-reset: event;
  display: grid;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.timeline li {
  border-left: 3px solid var(--line);
  padding-left: 12px;
}

.timeline strong,
.timeline span {
  display: block;
}

.timeline span {
  color: var(--muted);
  font-size: 0.88rem;
  margin-top: 3px;
}

.queue-panel {
  display: grid;
  gap: 10px;
}

.queue-item {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  padding: 10px 12px;
}

.queue-item span {
  color: var(--muted);
}

.screen-heading h2 {
  font-size: 1.45rem;
}

.kanban {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.column {
  box-shadow: none;
  min-height: 340px;
  padding: 14px;
}

.column h3 {
  margin-bottom: 12px;
}

.case-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  padding: 12px;
}

.case-card.danger {
  border-left-color: var(--red);
}

.case-card.done {
  border-left-color: var(--green);
}

.case-card p {
  color: #3b4657;
}

.case-card small {
  color: var(--muted);
}

.enc-list {
  display: grid;
  gap: 14px;
}

.new-forwarding-panel {
  display: grid;
  gap: 14px;
  margin-bottom: 14px;
}

.new-forwarding-panel .panel-title {
  align-items: flex-start;
}

.new-forwarding-person-results {
  display: grid;
  gap: 8px;
}

.new-forwarding-person-option {
  align-items: flex-start;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  text-align: left;
  width: 100%;
}

.new-forwarding-person-option:hover,
.new-forwarding-person-option:focus-visible {
  background: #e6f1ef;
  border-color: var(--primary);
  outline: none;
}

.new-forwarding-person-option small {
  color: var(--muted);
}

.filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.filter-tabs .ghost-link {
  gap: 8px;
  min-height: 38px;
  padding: 8px 12px;
}

.filter-tabs .ghost-link.active {
  background: #e6f1ef;
  border-color: var(--primary);
  color: var(--primary-dark);
  font-weight: 800;
}

.demand-filter {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1.5fr) minmax(150px, 0.8fr) minmax(140px, 0.7fr) minmax(180px, 1fr) auto auto;
  margin-bottom: 14px;
}

.report-filter {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(160px, 220px) minmax(160px, 220px) auto;
  margin-bottom: 16px;
}

.enc-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-left: 4px solid var(--blue);
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 14px;
  padding: 16px;
}

.enc-card.danger {
  border-left-color: var(--red);
}

.enc-alert-summary {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
}

.enc-status-steps {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.enc-status-steps span {
  border-top: 3px solid #dbe3ea;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 700;
  overflow-wrap: anywhere;
  padding-top: 6px;
}

.enc-status-steps span.done {
  border-top-color: #5eead4;
  color: var(--primary-dark);
}

.enc-status-steps span.current {
  border-top-color: var(--primary);
  color: var(--ink);
  font-weight: 800;
}

.enc-deadline {
  font-weight: 700;
}

.enc-deadline.overdue {
  color: var(--red);
}

.enc-deadline.upcoming {
  color: #a16207;
}

.demand-card {
  border-left-color: var(--primary);
}

.demand-card.demand-urgency-alta {
  border-left-color: var(--red);
}

.demand-card.demand-urgency-media {
  border-left-color: var(--amber);
}

.demand-card.demand-urgency-baixa {
  border-left-color: #94a3b8;
}

.demand-card-body {
  display: grid;
  gap: 10px;
}

.demand-mini-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.demand-mini-grid div {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
}

.demand-mini-grid dt {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
}

.demand-mini-grid dd {
  color: #263347;
  margin: 3px 0 0;
}

.quick-complete-form {
  align-items: end;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1fr) auto;
  padding-top: 12px;
}

.demand-forward-details {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 0;
}

.demand-forward-details summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 8px;
  font-weight: 800;
  min-height: 42px;
  padding: 10px 12px;
}

.demand-forward-form {
  background: #f8fafc;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  padding: 12px;
}

.enc-main {
  display: grid;
  gap: 8px;
}

.mobile-forwarding-summary {
  background: #f4fbfa;
  border: 1px solid #c7e5df;
  border-radius: 12px;
  display: grid;
  gap: 10px;
  margin: 2px 0;
  padding: 12px;
}

.mobile-forwarding-summary-heading {
  align-items: flex-start;
  color: var(--primary-dark);
  display: flex;
  gap: 9px;
}

.mobile-forwarding-summary-heading > svg {
  flex: 0 0 auto;
  margin-top: 1px;
}

.mobile-forwarding-summary-heading div {
  display: grid;
  gap: 2px;
}

.mobile-forwarding-summary-heading strong {
  font-size: 0.94rem;
}

.mobile-forwarding-summary-heading span {
  color: var(--muted);
  font-size: 0.8rem;
}

.mobile-forwarding-fields {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.mobile-forwarding-fields > div {
  background: #fff;
  border: 1px solid #d7e9e5;
  border-radius: 8px;
  min-width: 0;
  padding: 8px 10px;
}

.mobile-forwarding-fields dt {
  color: #54716e;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.mobile-forwarding-fields dd {
  color: #263347;
  margin: 3px 0 0;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.enc-head {
  align-items: start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.enc-head strong,
.enc-head span,
.enc-main small {
  display: block;
}

.enc-head span,
.enc-main small {
  color: var(--muted);
}

.enc-badges,
.enc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.enc-actions form {
  margin: 0;
}

.enc-form {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  padding-top: 14px;
}

.empty-card {
  display: grid;
  gap: 6px;
}

.help-center-hero {
  align-items: center;
  background: linear-gradient(135deg, #e8f5f3 0%, #ffffff 72%);
  display: grid;
  gap: 18px;
  grid-template-columns: auto minmax(0, 1fr);
  margin-bottom: 16px;
  max-width: 980px;
}

.help-center-hero h2 {
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  margin: 4px 0 8px;
}

.help-center-hero p,
.help-center-placeholder p {
  color: var(--muted);
  line-height: 1.5;
}

.help-center-icon {
  align-items: center;
  background: #d9f1ed;
  border: 1px solid #b8ddd6;
  border-radius: 14px;
  color: var(--primary-dark);
  display: inline-flex;
  height: 64px;
  justify-content: center;
  width: 64px;
}

.help-center-icon svg {
  height: 34px;
  width: 34px;
}

.help-center-placeholder {
  display: grid;
  gap: 18px;
  max-width: 980px;
}

.help-center-placeholder .empty-card {
  align-items: start;
  background: var(--surface-2);
  border: 1px dashed #b8c6d6;
  border-radius: 8px;
  padding: 20px;
}

.help-center-placeholder .empty-card > svg {
  color: var(--primary);
  height: 28px;
  margin-bottom: 4px;
  width: 28px;
}

.people-search {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(240px, 1fr) auto auto auto;
  margin-bottom: 14px;
}

.ghost-link {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: #263347;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  text-decoration: none;
}

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

.person-summary {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 16px;
}

.metric-success {
  border-color: #86efac;
  background: #f0fdf4;
}

.priority-panel {
  margin-bottom: 18px;
}

.open-demand-list {
  display: grid;
  gap: 10px;
}

.open-demand-item {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px;
}

.open-demand-item strong,
.open-demand-item span {
  display: block;
}

.open-demand-item span,
.note-panel p {
  color: var(--muted);
}

.note-panel p {
  line-height: 1.45;
  margin: 0;
  white-space: pre-wrap;
}

.profile-form {
  display: grid;
  gap: 12px;
}

.profile-form .field.full {
  margin-top: 12px;
}

.profile-side {
  display: grid;
  gap: 16px;
  position: sticky;
  top: 18px;
}

.profile-save {
  justify-content: flex-start;
  position: static;
}

.password-panel {
  max-width: 620px;
}

.password-prompt-backdrop {
  align-items: center;
  background: rgba(15, 23, 42, 0.62);
  display: grid;
  inset: 0;
  padding: 18px;
  position: fixed;
  z-index: 50;
}

.password-prompt-dialog {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  box-shadow: 0 22px 70px rgba(15, 23, 42, 0.28);
  margin: 0 auto;
  max-width: 480px;
  padding: 22px;
  width: 100%;
}

.password-prompt-step {
  display: grid;
  gap: 14px;
}

.password-prompt-step[hidden] {
  display: none;
}

.password-prompt-step h2,
.password-prompt-step p {
  margin: 0;
}

.password-prompt-step p {
  color: var(--muted);
  line-height: 1.45;
}

.modal-icon {
  align-items: center;
  background: #dff5f2;
  border-radius: 8px;
  color: #0f766e;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  width: 44px;
}

.modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.modal-actions button {
  min-width: 150px;
}

.configuration-menu,
.configuration-editor {
  max-width: 900px;
}

.configuration-option {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: flex-start;
  min-width: 0;
  text-align: left;
  width: 100%;
}

.configuration-option > span {
  display: grid;
  gap: 4px;
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.configuration-option small {
  color: var(--muted);
  font-weight: 400;
}

.configuration-flow-note {
  border-left: 3px solid #0f8a7c;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
  padding: 8px 12px;
}

.flow-destination-fieldset {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 12px;
  margin: 0;
  padding: 12px 14px 14px;
}

.flow-destination-fieldset legend {
  color: #39465a;
  font-size: 0.86rem;
  font-weight: 700;
  margin-bottom: 7px;
}

.flow-destination-options {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.flow-destination-option {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  gap: 9px;
  grid-template-columns: 18px minmax(0, 1fr);
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
}

.flow-destination-option:hover {
  border-color: var(--primary);
}

.flow-destination-option input {
  accent-color: var(--primary);
  display: block;
  height: 18px;
  margin: 0 !important;
  min-height: 18px !important;
  padding: 0 !important;
  width: 18px !important;
}

.flow-destination-option span {
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.25;
  min-width: 0;
  overflow-wrap: anywhere;
}

.flow-destination-option[hidden] {
  display: none;
}

@media (max-width: 680px) {
  .flow-destination-options {
    grid-template-columns: 1fr;
  }

  .flow-destination-fieldset {
    padding: 10px;
  }
}

.profile-history {
  margin-top: 18px;
}

.flat-table {
  box-shadow: none;
  margin-top: 0;
}

.management-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.management-tabs {
  display: inline-flex;
  gap: 6px;
  margin-bottom: 16px;
  padding: 4px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
}

.management-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 14px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #475569;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.management-tab.active {
  background: #0f8a7c;
  color: #fff;
}

.external-partner-tabs .management-tab {
  text-decoration: none;
}

.external-list-filters {
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
}

[data-external-filter-group="parceiros"] {
  grid-template-columns: minmax(220px, 1fr) auto;
}

.management-panel[hidden] {
  display: none;
}

.management-panel[data-management-editor-panel] {
  grid-column: 1 / -1;
}

.management-panel.city-limits-panel {
  grid-column: 1 / -1;
}

.city-limits-form {
  align-items: end;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(116px, 1fr) minmax(116px, 1fr) auto;
  min-width: 340px;
}

.city-limits-form .field {
  margin: 0;
  min-width: 0;
}

@media (max-width: 860px) {
  .city-limits-form {
    grid-template-columns: minmax(110px, 1fr) minmax(110px, 1fr);
  }

  .city-limits-form .primary-button {
    grid-column: 1 / -1;
  }
}

.management-form {
  display: grid;
  gap: 14px;
}

.management-context-note {
  margin: 0;
  padding: 10px 12px;
  border-left: 3px solid #0f8a7c;
  background: #effaf7;
  color: #285a54;
  line-height: 1.45;
}

.management-context-note.subtle-note {
  background: #f8fafc;
  border-left-color: #cbd5e1;
  color: #475569;
}

.field-help {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-size: 0.82rem;
  line-height: 1.35;
}

.readonly-field input[disabled] {
  background: #f8fafc;
  color: #475569;
}

.management-section {
  margin-top: 18px;
}

.user-list-filters,
.management-list-filters {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(220px, 1.2fr) auto;
  gap: 12px;
  align-items: end;
  margin-top: 14px;
}

.user-filter-clear {
  min-height: 44px;
}

.user-filter-result {
  margin: 10px 0 0;
  color: #64748b;
  font-size: 0.88rem;
}

[data-user-filter-empty] td,
[data-organization-filter-empty] td {
  padding: 24px 16px;
  color: #64748b;
  text-align: center;
}

.actions-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.simple-pagination {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-top: 12px;
  padding: 10px 12px;
}

.simple-pagination strong {
  color: var(--ink);
  display: block;
  font-size: 0.92rem;
}

.simple-pagination span {
  color: #64748b;
  font-size: 0.84rem;
}

.simple-pagination-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.primary-button.disabled,
.secondary-button.disabled,
.ghost-button.disabled {
  cursor: not-allowed;
  opacity: 0.55;
  pointer-events: none;
}

@media (max-width: 640px) {
  .simple-pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .simple-pagination-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@media (min-width: 769px) {
  .compact-list-table table {
    table-layout: auto;
    min-width: 100%;
  }

  .compact-list-table th,
  .compact-list-table td {
    font-size: 0.84rem;
    line-height: 1.15;
    padding: 8px 10px;
    vertical-align: middle;
  }

  .compact-list-table td {
    max-width: none;
    overflow: visible;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .compact-list-table td:last-child {
    max-width: none;
    overflow: visible;
  }

  .compact-list-table .badge {
    font-size: 0.74rem;
    padding: 3px 8px;
    white-space: nowrap;
  }

  .compact-list-table .actions-row {
    align-items: center;
    flex-wrap: nowrap;
    gap: 6px;
    overflow: visible;
    white-space: nowrap;
  }

  .compact-list-table .actions-row form {
    flex: 0 0 auto;
  }

  .compact-list-table .ghost-button.small,
  .compact-list-table .secondary-button.small,
  .compact-list-table .danger-button.small {
    font-size: 0.82rem;
    min-height: 34px;
    padding: 6px 8px;
    white-space: nowrap;
  }

  .compact-list-table .ghost-button.small svg,
  .compact-list-table .secondary-button.small svg,
  .compact-list-table .danger-button.small svg {
    height: 15px;
    width: 15px;
  }

  .management-section .panel-title {
    align-items: center;
  }

  .organization-list-table table,
  .user-list-table table {
    min-width: 940px;
    table-layout: fixed;
  }

  .organization-list-table th,
  .organization-list-table td,
  .user-list-table th,
  .user-list-table td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .organization-list-table th:last-child,
  .organization-list-table td:last-child,
  .user-list-table th:last-child,
  .user-list-table td:last-child {
    overflow: visible;
  }

  .org-card {
    gap: 4px;
    min-height: 0;
    padding: 10px 12px;
  }

  .org-card strong {
    font-size: 0.92rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  .org-card span,
  .org-card small {
    font-size: 0.82rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }
}

.management-form .primary-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.legacy-org-grid {
  display: none;
}

.table-wrap {
  margin-top: 16px;
  overflow-x: auto;
}

table {
  border-collapse: collapse;
  min-width: 720px;
  width: 100%;
}

th,
td {
  border-bottom: 1px solid var(--line);
  padding: 14px 16px;
  text-align: left;
}

th {
  background: #f8fafc;
  color: #3a4658;
  font-size: 0.82rem;
  text-transform: uppercase;
}

.metrics,
.org-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 16px;
}

.access-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.system-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.system-settings-panel {
  display: grid;
  gap: 16px;
}

.system-setting-list {
  border: 1px solid var(--line);
}

.system-setting-row {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(160px, 0.4fr) minmax(0, 1fr);
  padding: 12px 14px;
}

.system-setting-row:last-child {
  border-bottom: 0;
}

.system-setting-row span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
}

.system-setting-row strong,
.system-metrics .metric strong {
  overflow-wrap: anywhere;
}

.message-screen-heading {
  align-items: center;
}

.simulation-banner {
  align-items: center;
  background: #fff7d6;
  border: 1px solid #e7c75f;
  border-radius: 8px;
  color: #5f4700;
  display: flex;
  font-size: 0.88rem;
  font-weight: 900;
  gap: 8px;
  margin-bottom: 16px;
  min-height: 44px;
  padding: 10px 13px;
  text-transform: uppercase;
}

.simulation-banner.compact {
  margin: 14px 0 0;
}

.simulation-banner svg {
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

body:not([data-current-view="inicio"]) [data-home-new-button] {
  display: none !important;
}

.message-screen-heading > div {
  display: grid;
  gap: 3px;
}

.message-center {
  align-items: stretch;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(300px, 370px) minmax(0, 1fr);
  height: clamp(560px, calc(100vh - 220px), 760px);
  min-height: 560px;
}

.message-inbox-panel,
.message-content-panel {
  min-height: 0;
  min-width: 0;
}

.message-inbox-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

.message-filter-tabs {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  padding: 10px;
}

.message-filter-tabs a {
  align-items: center;
  border: 1px solid transparent;
  color: var(--muted);
  display: flex;
  font-size: 0.84rem;
  font-weight: 800;
  gap: 6px;
  justify-content: center;
  min-height: 38px;
  padding: 7px 8px;
  text-decoration: none;
}

.message-filter-tabs a:hover,
.message-filter-tabs a.active {
  background: #e6f1ef;
  border-color: #bddbd6;
  color: var(--primary-dark);
}

.message-filter-tabs b {
  align-items: center;
  background: var(--red);
  border-radius: 999px;
  color: #ffffff;
  display: inline-flex;
  font-size: 0.7rem;
  height: 20px;
  justify-content: center;
  min-width: 20px;
  padding: 0 5px;
}

.message-list {
  display: grid;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.message-list-item {
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 13px 14px;
  text-decoration: none;
}

.message-list-item:last-child {
  border-bottom: 0;
}

.message-list-item:hover,
.message-list-item.active {
  background: #e6f1ef;
}

.message-list-item.active {
  box-shadow: inset 4px 0 0 var(--primary);
}

.message-list-item.unread {
  background: #fff8f7;
}

.message-list-heading {
  align-items: baseline;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.message-list-heading strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-list-heading time {
  color: var(--muted);
  flex: 0 0 auto;
  font-size: 0.72rem;
}

.message-list-item small,
.message-list-item em {
  color: var(--muted);
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-list-item em {
  font-style: normal;
}

.message-direction {
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.68rem;
  font-weight: 800;
  justify-self: start;
  letter-spacing: 0.02em;
  padding: 3px 8px;
  text-transform: uppercase;
}

.message-direction.sent {
  background: #e8f0ff;
  color: #2456a6;
}

.message-direction.received {
  background: #e6f5ed;
  color: #16704f;
}

.message-subject {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-list-footer {
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
}

.message-list-footer b,
.read-status {
  color: #526174;
  font-size: 0.74rem;
  font-weight: 800;
}

.message-list-footer b.read,
.read-status.read {
  color: var(--green);
}

.message-list-footer b.unread-status,
.read-status.unread {
  color: var(--red);
}

.unread-indicator {
  background: var(--red);
  border-radius: 50%;
  height: 9px;
  width: 9px;
}

.message-list-empty,
.message-welcome {
  align-content: center;
  color: var(--muted);
  display: grid;
  flex: 1 1 auto;
  justify-items: center;
  min-height: 260px;
  padding: 28px;
  text-align: center;
}

.message-list-empty svg,
.message-welcome svg {
  color: var(--primary);
  height: 36px;
  margin-bottom: 10px;
  width: 36px;
}

.message-list-empty strong,
.message-welcome strong {
  color: var(--ink);
}

.message-list-empty span,
.message-welcome p {
  margin-top: 5px;
}

.message-content-panel {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.message-content-heading,
.message-thread-heading {
  align-items: flex-start;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 16px;
  padding-bottom: 14px;
}

.message-thread-heading > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.message-thread-heading h2,
.message-content-heading h2 {
  font-size: 1.25rem;
  overflow-wrap: anywhere;
}

.message-thread-heading small {
  color: var(--muted);
}

.message-form,
.message-reply-form {
  display: grid;
  gap: 12px;
}

.message-form {
  max-width: 720px;
}

.message-content-panel > .message-form {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-right: 4px;
}

.message-recipient-options {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.message-recipient-choice {
  justify-content: flex-start;
  min-height: 52px;
  width: 100%;
}

.message-recipient-choice svg {
  color: var(--primary);
  height: 22px;
  width: 22px;
}

[data-forward-user-field][hidden] {
  display: none;
}

[data-passage-recipient-field][hidden],
[data-passage-user-field][hidden] {
  display: none;
}

.passage-completion {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 14px;
  padding-top: 18px;
}

.passage-completion-heading {
  align-items: flex-start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.passage-completion-heading > div {
  display: grid;
  gap: 5px;
}

.passage-completion-heading h3 {
  font-size: 1.15rem;
  margin: 0;
}

.passage-completion-heading p {
  color: var(--muted);
  margin: 0;
  max-width: 680px;
}

.passage-completion-heading > svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 28px;
  width: 28px;
}

.passage-issued-summary .secondary-button {
  justify-self: start;
  margin-top: 14px;
}

.forward-destination-manager {
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
}

.forward-availability-suggestions,
.forward-availability-summary {
  background: #f8fbfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 14px;
}

.forward-availability-suggestions[hidden],
.forward-availability-summary[hidden] {
  display: none;
}

.forward-city-hint {
  color: #0f766e;
  font-size: 0.88rem;
  font-weight: 700;
  margin: -2px 0 0;
}

.forward-availability-header {
  display: grid;
  gap: 3px;
}

.forward-availability-header small,
.forward-availability-summary p,
.forward-availability-summary small,
.forward-availability-card small,
.forward-availability-card span,
.forward-availability-empty {
  color: var(--muted);
}

.forward-availability-cards {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.forward-availability-card {
  background: #ffffff;
  border: 1px solid #cfe3df;
  border-radius: 8px;
  color: var(--text);
  display: grid;
  gap: 4px;
  min-height: 88px;
  padding: 12px;
  text-align: left;
}

.forward-availability-card.active {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.08);
}

.forward-availability-card strong {
  font-size: 0.96rem;
}

.forward-availability-card span {
  font-size: 0.78rem;
  font-weight: 700;
}

.forward-availability-empty {
  margin: 0;
}

.forward-availability-summary.success {
  border-color: #b9ddd2;
}

.forward-availability-summary.danger {
  border-color: #efc7c7;
}

.forward-availability-summary.neutral {
  border-color: #d7dee7;
}

/* O prazo deve permanecer visível quando a unidade selecionada oferece acolhimento. */
.forward-availability-summary.accommodation-enabled [data-forward-accommodation-deadline],
.forward-availability-summary.success [data-forward-accommodation-deadline],
.forward-availability-summary.danger [data-forward-accommodation-deadline] {
  display: grid !important;
  gap: 8px;
  margin-top: 2px;
}

.forward-accommodation-deadline-fields {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.forward-accommodation-deadline > strong {
  color: var(--text);
  font-size: 0.9rem;
}

.forward-accommodation-deadline .field {
  margin-bottom: 0;
}

.forward-availability-top {
  align-items: start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.forward-availability-top strong {
  color: var(--text);
  display: block;
}

.forward-availability-top small {
  display: block;
  margin-top: 2px;
}

.forward-availability-summary p {
  margin: 0;
}

.forward-availability-metrics {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.forward-availability-metrics div {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 72px;
  padding: 10px 12px;
}

.forward-availability-metrics span {
  color: var(--muted);
  display: block;
  font-size: 0.74rem;
  font-weight: 800;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.forward-availability-metrics strong {
  color: var(--text);
  font-size: 1.25rem;
}

.forward-availability-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.forward-availability-details {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 12px;
  padding-top: 12px;
}

.forward-availability-details[hidden] {
  display: none;
}

.forward-availability-detail-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.forward-availability-detail-grid div {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 10px 12px;
}

.forward-availability-detail-grid span,
.forward-availability-rules strong {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.forward-availability-detail-grid strong {
  color: var(--text);
}

.forward-availability-rules {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px 12px;
}

.forward-availability-rules p {
  margin: 6px 0 0;
  white-space: pre-line;
}

.forward-availability-details-toggle {
  justify-self: start;
}

.forward-recipient-options {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.forward-recipient-choice {
  justify-content: flex-start;
  min-height: 52px;
  width: 100%;
}

.forward-recipient-choice svg {
  color: var(--primary);
  height: 22px;
  width: 22px;
}

[data-message-user-field][hidden] {
  display: none;
}

.message-form-actions,
.message-reply-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.message-thread {
  display: grid;
  flex: 1 1 auto;
  gap: 10px;
  margin-bottom: 16px;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
}

.message-bubble {
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  max-width: 76%;
  padding: 12px;
}

.message-bubble.mine {
  background: #e6f1ef;
  border-color: #bddbd6;
  justify-self: end;
}

.message-bubble.theirs {
  background: #ffffff;
  justify-self: start;
}

.message-bubble-head {
  display: grid;
  gap: 2px;
}

.message-bubble-head small {
  color: var(--muted);
}

.message-bubble p {
  white-space: pre-wrap;
}

.message-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.message-attachments a,
.message-attachment-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--primary-dark);
  cursor: pointer;
  display: inline-flex;
  gap: 6px;
  min-height: 40px;
  padding: 7px 10px;
  text-decoration: none;
}

.message-attachment-button {
  position: relative;
}

.message-attachment-button input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.message-selected-file {
  color: var(--muted);
  display: block;
  font-size: 0.84rem;
  font-weight: 600;
  margin-top: 5px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.message-selected-file.has-file {
  color: var(--primary-dark);
}

.message-reply-attachment {
  align-items: center;
  display: flex;
  gap: 8px;
  min-width: 0;
}

.message-reply-attachment .message-selected-file {
  margin-top: 0;
  max-width: 280px;
}

.message-reply-form {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.message-mobile-back {
  display: none;
}

.flat-table td strong,
.flat-table td small {
  display: block;
}

.flat-table td small {
  color: var(--muted);
  margin-top: 3px;
}

.metric,
.org-card {
  box-shadow: none;
  display: grid;
  gap: 6px;
  padding: 16px;
}

.metric span,
.org-card span {
  color: var(--muted);
  font-weight: 700;
}

.metric strong {
  font-size: 2rem;
}

.metric small,
.org-card small {
  color: var(--muted);
}

.org-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.chart-panel {
  display: grid;
  gap: 14px;
}

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

.report-row {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  min-height: 48px;
  padding: 12px 14px;
}

.report-row span {
  color: #263347;
  font-weight: 700;
}

.report-row strong {
  color: var(--primary-dark);
  font-size: 1.25rem;
}

.bar-row {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 140px minmax(120px, 1fr) 42px;
}

.bar-row div {
  background: var(--surface-2);
  border-radius: 999px;
  height: 12px;
  overflow: hidden;
}

.bar-row b {
  background: var(--primary);
  display: block;
  height: 100%;
}

.toast {
  background: #111827;
  border-radius: 8px;
  bottom: 20px;
  box-shadow: var(--shadow);
  color: #ffffff;
  left: 50%;
  opacity: 0;
  padding: 12px 16px;
  pointer-events: none;
  position: fixed;
  transform: translate(-50%, 14px);
  transition: 180ms ease;
}

.toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}

.logout-form {
  margin-top: 8px;
}

.logout-form button {
  align-items: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  color: #f8fafc;
  display: inline-flex;
  gap: 8px;
  min-height: 34px;
  padding: 7px 10px;
}

.login-page {
  background: #eef3f8;
}

.login-shell {
  align-items: center;
  display: grid;
  min-height: 100dvh;
  padding: 12px 20px;
}

.login-panel {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  margin: 0 auto;
  max-width: 520px;
  padding: 20px;
  width: 100%;
}

.login-brand {
  align-items: center;
  color: var(--ink);
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
  text-align: center;
}

.login-brand .brand-mark {
  border-radius: 0;
  height: auto;
  max-height: 182px;
  object-fit: contain;
  width: min(100%, 430px);
}

/* A sequência fornecida pela marca é acelerada apenas na abertura e encerra no quadro final. */
.login-logo-reference {
  aspect-ratio: auto;
  background: #fff;
  height: clamp(172px, 28vh, 198px);
  isolation: isolate;
  max-width: none;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.login-logo-reference .login-brand-mark {
  display: block;
  height: 100%;
  max-height: none;
  object-fit: contain;
  opacity: 0;
  position: absolute;
  inset: 0;
  transition: opacity 120ms ease;
  width: 100%;
  z-index: 1;
}

.login-reference-video {
  display: block;
  height: 100%;
  inset: 0;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  transform: scale(1.18);
  transform-origin: center 48%;
  transition: opacity 120ms linear;
  width: 100%;
  z-index: 2;
}

.login-logo-reference.is-playing .login-reference-video {
  opacity: 1;
}

.login-logo-reference.is-fallback .login-brand-mark {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .login-logo-reference .login-reference-video {
    display: none;
  }

  .login-logo-reference .login-brand-mark {
    opacity: 1;
  }
}

.login-brand-text {
  display: none;
}

.login-brand strong {
  font-size: 1.18rem;
  line-height: 1.15;
}

.login-brand span {
  color: var(--muted);
  font-size: 0.9rem;
}

.login-heading {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
}

.login-form {
  display: grid;
  gap: 10px;
}

.login-credentials {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 10px;
  padding-top: 10px;
}

.login-form input:disabled {
  background: #f1f5f9;
  color: #64748b;
  cursor: not-allowed;
}

.check-row {
  align-items: center;
  color: #39465a;
  display: flex;
  gap: 9px;
  font-size: 0.92rem;
}

.check-row input {
  min-height: auto;
  width: auto;
}

.forward-toggle {
  margin-bottom: 14px;
}

.login-button {
  width: 100%;
}

.login-organization-status {
  margin: -4px 0 0;
  padding: 10px 12px;
}

.login-help {
  color: var(--muted);
  font-size: 0.86rem;
  margin-top: 10px;
}

@media (max-width: 1180px) {
  .quick-layout {
    grid-template-columns: 1fr;
  }

  .right-rail {
    position: static;
  }

  .profile-layout {
    grid-template-columns: 1fr;
  }

  .profile-side {
    position: static;
  }

  .org-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    gap: 14px;
    height: auto;
    max-height: none;
    overflow: visible;
    padding: 14px;
    position: static;
  }

  .main-nav {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .nav-item {
    flex: 0 0 auto;
  }

  .session-box {
    margin-top: 0;
    padding-top: 12px;
  }

  .workspace {
    padding: 16px;
  }

  .topbar,
  .screen-heading,
  .enc-head,
  .person-result,
  .search-row {
    align-items: stretch;
    flex-direction: column;
  }

  .top-actions,
  .save-bar {
    width: 100%;
  }

  .top-actions > *,
  .save-bar > *,
  .enc-actions > *,
  .search-row > button {
    flex: 1;
  }

  .choice-grid,
  .demand-filter,
  .demand-mini-grid,
  .form-grid.two,
  .kanban,
  .management-grid,
  .metrics,
  .person-summary,
  .person-mode-actions,
  .record-type-actions,
  .people-search,
  .report-filter,
  .substance-choice-grid,
  .org-grid {
    grid-template-columns: 1fr;
  }

  .open-demand-item {
    align-items: stretch;
    flex-direction: column;
  }

  .quick-complete-form {
    grid-template-columns: 1fr;
  }

  .bar-row {
    grid-template-columns: 1fr;
  }
}

body.mobile-device {
  font-size: 16px;
}

body.mobile-device .app-shell {
  align-content: start;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
}

body.mobile-device .sidebar {
  align-content: start;
  display: grid;
  gap: 6px;
  grid-template-areas:
    "brand nav"
    "session session";
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  height: auto;
  max-height: none;
  min-height: 0;
  overflow: visible;
  padding: 8px;
  position: sticky;
  top: 0;
  z-index: 30;
}

body.mobile-device .brand {
  grid-area: brand;
}

body.mobile-device .brand > div:not(.brand-mark) {
  display: none;
}

body.mobile-device .brand-mark {
  height: 36px;
  width: 36px;
}

body.mobile-device .main-nav {
  align-items: center;
  display: flex;
  gap: 6px;
  grid-area: nav;
  overflow-x: auto;
  padding-bottom: 0;
  scrollbar-width: thin;
}

body.mobile-device .nav-item {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.1);
  flex: 0 0 auto;
  font-size: 0.9rem;
  min-height: 38px;
  padding: 7px 10px;
}

body.mobile-device .nav-item svg,
body.mobile-device button svg {
  height: 20px;
  width: 20px;
}

body.mobile-device .session-box {
  align-items: center;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  display: grid;
  gap: 4px 6px;
  grid-area: session;
  grid-template-areas: "session-data messages toggle";
  grid-template-columns: minmax(0, 1fr) auto auto;
  margin-top: 0;
  min-height: 42px;
  padding: 5px 6px;
}

body.mobile-device .session-details {
  grid-area: session-data;
  min-width: 0;
}

body.mobile-device .session-summary {
  display: block;
  padding: 2px 18px 2px 2px;
}

body.mobile-device .session-summary > span:first-child {
  color: #cbd5e1;
  font-size: 0.72rem;
  line-height: 1.2;
  max-width: 78px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.mobile-device .session-summary > strong {
  color: #ffffff;
  display: block;
  font-size: 0.82rem;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.mobile-device .session-summary > small,
body.mobile-device .session-summary-action {
  display: none;
}

body.mobile-device .account-toggle {
  align-items: center;
  background: #243044;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  color: #ffffff;
  display: inline-flex;
  gap: 6px;
  grid-area: toggle;
  justify-content: center;
  min-height: 32px;
  padding: 5px 8px;
}

body.mobile-device .session-message-button {
  align-items: center;
  background: #243044;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  color: #ffffff;
  display: inline-flex;
  grid-area: messages;
  justify-content: center;
  margin: 0;
  min-height: 32px;
  padding: 5px 8px;
}

body.mobile-device .session-message-button .message-button-label {
  display: none;
}

body.mobile-device .session-message-button .message-dot {
  border-color: #243044;
  right: 4px;
  top: 3px;
}

body.mobile-device .session-link {
  grid-area: password;
  margin: 0;
}

body.mobile-device .logout-form {
  grid-area: logout;
}

body.mobile-device .session-link,
body.mobile-device .logout-form {
  display: none;
}

body.mobile-device .session-box.open {
  grid-template-areas:
    "session-data messages toggle"
    "password password password"
    "logout logout logout";
  grid-template-columns: minmax(0, 1fr) auto auto;
}

body.mobile-device .session-link,
body.mobile-device .logout-form button {
  justify-content: center;
  min-height: 38px;
  padding: 8px 10px;
  width: 100%;
}

body.mobile-device .session-box.open .session-link,
body.mobile-device .session-box.open .logout-form {
  display: flex;
  margin-top: 4px;
}

body.mobile-device .session-link.active {
  display: none;
}

body.mobile-device .workspace {
  padding: 12px;
}

body.mobile-device h1 {
  font-size: 1.45rem;
}

body.mobile-device .topbar,
body.mobile-device .screen-heading,
body.mobile-device .enc-head,
body.mobile-device .person-result,
body.mobile-device .search-row {
  align-items: stretch;
  flex-direction: column;
  gap: 10px;
}

body.mobile-device .top-actions,
body.mobile-device .modal-actions {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
}

body.mobile-device [data-home-new-button] {
  display: none !important;
}

body.mobile-device .screen-heading .primary-button[data-focus-form] {
  display: none;
}

body.mobile-device .top-actions > *,
body.mobile-device .modal-actions > *,
body.mobile-device .enc-actions > *,
body.mobile-device .search-row > button {
  width: 100%;
}

body.mobile-device .pending-center {
  width: 100%;
}

body.mobile-device .pending-toggle {
  justify-content: center;
  width: 100%;
}

body.mobile-device .pending-popover {
  left: 0;
  right: auto;
  width: min(430px, calc(100vw - 24px));
}

body.mobile-device .pending-summary {
  grid-template-columns: 1fr;
}

body.mobile-device .live-notification {
  left: 12px;
  right: 12px;
  top: 118px;
  width: auto;
}

body.mobile-device .quick-layout,
body.mobile-device .simplified-layout {
  max-width: none;
  width: 100%;
}

body.mobile-device .home-layout {
  gap: 12px;
}

body.mobile-device .home-hero {
  padding: 16px;
}

body.mobile-device .home-hero h2 {
  font-size: 1.3rem;
}

body.mobile-device .home-actions,
body.mobile-device .home-summary,
body.mobile-device .home-dashboard {
  grid-template-columns: 1fr;
}

body.mobile-device .pie-stat-card {
  grid-template-columns: 1fr;
  justify-items: stretch;
}

body.mobile-device .pie-chart {
  width: min(180px, 58vw);
}

body.mobile-device .home-action {
  min-height: 118px;
  padding: 16px;
}

body.mobile-device .home-tool-list {
  display: grid;
  grid-template-columns: 1fr;
}

body.mobile-device .home-tool-list button {
  justify-content: flex-start;
  width: 100%;
}

body.mobile-device .panel,
body.mobile-device .enc-card,
body.mobile-device .case-card {
  padding: 14px;
}

body.mobile-device .enc-list {
  gap: 8px;
}

body.mobile-device .enc-card {
  box-shadow: none;
  gap: 8px;
  padding: 10px;
}

body.mobile-device .mobile-forwarding-fields {
  grid-template-columns: 1fr;
}

body.mobile-device .demand-card .enc-head {
  align-items: flex-start;
  flex-direction: row;
  gap: 8px;
}

body.mobile-device .demand-card .enc-head > div:first-child {
  min-width: 0;
}

body.mobile-device .demand-card .enc-head strong,
body.mobile-device .demand-card .enc-head span,
body.mobile-device .enc-main p {
  line-height: 1.25;
}

body.mobile-device .demand-card-body {
  gap: 6px;
}

body.mobile-device .demand-card-body p {
  font-size: 0.9rem;
}

body.mobile-device .demand-mini-grid {
  display: block;
}

body.mobile-device .demand-mini-grid div {
  align-items: baseline;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  padding: 6px 0;
}

body.mobile-device .demand-mini-grid dt {
  flex: 0 0 auto;
  font-size: 0.66rem;
}

body.mobile-device .demand-mini-grid dd {
  font-size: 0.82rem;
  margin: 0;
  min-width: 0;
  text-align: right;
}

body.mobile-device .choice-grid,
body.mobile-device .demand-filter,
body.mobile-device .demand-mini-grid,
body.mobile-device .form-grid.two,
body.mobile-device .registration-options-row,
body.mobile-device .outcome-choice-grid,
body.mobile-device .kanban,
body.mobile-device .management-grid,
body.mobile-device .metrics,
body.mobile-device .person-summary,
body.mobile-device .person-mode-actions,
body.mobile-device .record-type-actions,
body.mobile-device .people-search,
body.mobile-device .profile-layout,
body.mobile-device .report-filter,
body.mobile-device .org-grid {
  grid-template-columns: 1fr;
}

body.mobile-device .message-screen-heading {
  align-items: stretch;
  display: grid;
  gap: 12px;
}

body.mobile-device .message-screen-heading .primary-button {
  width: 100%;
}

body.mobile-device .message-center {
  display: block;
  height: auto;
  min-height: 0;
}

body.mobile-device .message-inbox-panel {
  max-height: calc(100vh - 250px);
}

body.mobile-device .message-list {
  max-height: calc(100vh - 350px);
}

body.mobile-device .message-content-panel {
  display: none;
  max-height: none;
  min-height: 0;
  overflow: visible;
}

body.mobile-device .message-center.has-thread .message-inbox-panel,
body.mobile-device .message-center.is-composing .message-inbox-panel {
  display: none;
}

body.mobile-device .message-center.has-thread .message-content-panel,
body.mobile-device .message-center.is-composing .message-content-panel {
  display: flex;
}

body.mobile-device .message-content-panel > .message-form {
  flex: 0 0 auto;
  max-height: none;
  overflow: visible;
}

body.mobile-device .message-thread {
  max-height: calc(100vh - 390px);
}

body.mobile-device .message-mobile-back {
  align-items: center;
  color: var(--primary-dark);
  display: inline-flex;
  font-weight: 800;
  gap: 7px;
  margin-bottom: 14px;
  text-decoration: none;
}

body.mobile-device .message-recipient-options {
  grid-template-columns: 1fr;
}

body.mobile-device .forward-recipient-options {
  grid-template-columns: 1fr;
}

body.mobile-device .forward-availability-cards,
body.mobile-device .forward-availability-metrics {
  grid-template-columns: 1fr;
}

body.mobile-device .forward-availability-top {
  display: grid;
  gap: 8px;
}

body.mobile-device .forward-availability-detail-grid {
  grid-template-columns: 1fr;
}

body.mobile-device .message-bubble {
  max-width: 100%;
}

body.mobile-device .message-bubble.mine,
body.mobile-device .message-bubble.theirs {
  justify-self: stretch;
}

body.mobile-device .message-list-item,
body.mobile-device .message-bubble {
  padding: 10px;
}

body.mobile-device .message-thread-heading {
  align-items: stretch;
  display: grid;
}

body.mobile-device .message-thread-heading form,
body.mobile-device .message-thread-heading button,
body.mobile-device .message-form-actions,
body.mobile-device .message-form-actions > *,
body.mobile-device .message-reply-actions,
body.mobile-device .message-reply-actions .primary-button {
  width: 100%;
}

body.mobile-device .message-form-actions,
body.mobile-device .message-reply-actions {
  align-items: stretch;
  display: grid;
}

body.mobile-device .message-reply-attachment {
  align-items: stretch;
  display: grid;
  width: 100%;
}

body.mobile-device .message-reply-attachment .message-selected-file {
  max-width: 100%;
}

body.mobile-device .message-attachment-button {
  justify-content: center;
  min-height: 50px;
}

body.mobile-device .system-setting-row {
  align-items: flex-start;
  grid-template-columns: 1fr;
}

body.mobile-device input,
body.mobile-device select,
body.mobile-device textarea,
body.mobile-device .primary-button,
body.mobile-device .secondary-button,
body.mobile-device .ghost-button,
body.mobile-device .danger-button,
body.mobile-device .choice {
  min-height: 50px;
}

body.mobile-device textarea {
  min-height: 110px;
}

body.mobile-device .mode-button {
  min-height: 66px;
  padding: 14px;
}

body.mobile-device .field span {
  font-size: 0.92rem;
}

body.mobile-device .simplified-layout .save-bar,
body.mobile-device .save-bar {
  background: rgba(244, 247, 251, 0.96);
  border-top: 1px solid var(--line);
  bottom: 0;
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr;
  margin: 0 -12px -12px;
  padding: 10px 12px;
  position: sticky;
  z-index: 20;
}

body.mobile-device .save-bar > *,
body.mobile-device .simplified-layout .save-bar .primary-button {
  min-width: 0;
  width: 100%;
}

body.mobile-device .filter-tabs,
body.mobile-device .enc-actions,
body.mobile-device .actions-row {
  display: grid;
  grid-template-columns: 1fr;
}

body.mobile-device .demand-card > .enc-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.mobile-device .demand-card > .enc-actions .secondary-button,
body.mobile-device .demand-card > .enc-actions .ghost-button,
body.mobile-device .demand-card > .enc-actions .primary-button {
  min-height: 42px;
  padding: 8px 10px;
}

body.mobile-device .open-demand-item,
body.mobile-device .queue-item {
  align-items: stretch;
  flex-direction: column;
  gap: 8px;
}

body.mobile-device .quick-complete-form {
  grid-template-columns: 1fr;
}

body.mobile-device .table-wrap {
  overflow-x: auto;
}

body.mobile-device .user-list-filters,
body.mobile-device .management-list-filters {
  grid-template-columns: 1fr;
}

@media (max-width: 680px) {
  .external-list-filters,
  [data-external-filter-group="parceiros"] {
    grid-template-columns: 1fr;
  }

  .external-partner-tabs {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .external-partner-tabs .management-tab {
    justify-content: center;
  }
}

body.mobile-device .user-filter-clear {
  width: 100%;
}

body.mobile-device .flat-table {
  min-width: 680px;
}

body.mobile-device .password-prompt-dialog {
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  padding: 18px;
}

body.mobile-device.login-page {
  padding: 12px;
}

body.mobile-device .login-shell {
  min-height: calc(100vh - 24px);
}

body.mobile-device .login-panel {
  padding: 20px;
}

body.mobile-device .login-brand {
  margin-bottom: 12px;
}

body.mobile-device .login-brand .brand-mark {
  max-height: 162px;
  width: min(100%, 390px);
}

/* A regra geral da barra lateral não deve ocultar a animação da tela de login. */
body.mobile-device .login-brand > div.login-logo-reference {
  display: block;
}

body.mobile-device .login-logo-reference {
  height: clamp(148px, 24vh, 172px);
}

body.mobile-device .login-reference-video {
  transform: scale(1.15);
}

.report-kinds {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}

.report-kind-group {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
}

.report-kind-group h3 {
  color: var(--muted);
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  margin: 0 0 8px;
  text-transform: uppercase;
}

.report-kind-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.report-kind {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: #263347;
  display: flex;
  font-weight: 800;
  gap: 9px;
  min-height: 52px;
  padding: 11px 13px;
  text-decoration: none;
}

.report-kind svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

.report-kind.active {
  background: #e6f1ef;
  border-color: var(--primary);
  color: var(--primary-dark);
}

.report-start {
  background: linear-gradient(125deg, #f7fbfb, #eef6f5);
  border: 1px solid #d3e6e2;
  border-radius: 12px;
  margin-bottom: 14px;
  padding: 16px;
}

.report-start-heading {
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
}

.report-start-heading h3 {
  color: var(--ink);
  font-size: 1.12rem;
  margin: 3px 0 4px;
}

.report-start-heading p {
  color: var(--muted);
  font-size: 0.9rem;
  margin: 0;
}

.report-primary-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.report-primary-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  min-width: 0;
  overflow: hidden;
}

.report-primary-card.active {
  border-color: var(--primary);
  box-shadow: 0 0 0 1px rgba(10, 133, 124, 0.1);
}

.report-primary-main {
  align-items: flex-start;
  color: var(--ink);
  display: grid;
  gap: 9px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 116px;
  padding: 13px;
  text-decoration: none;
}

.report-primary-main:hover,
.report-primary-main:focus-visible {
  background: #f2f9f8;
  outline: none;
}

.report-primary-main > svg:first-child {
  color: var(--primary);
  height: 21px;
  margin-top: 1px;
  width: 21px;
}

.report-primary-main span {
  display: grid;
  gap: 5px;
}

.report-primary-main strong {
  font-size: 0.94rem;
  line-height: 1.22;
}

.report-primary-main small {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.3;
}

.report-primary-arrow {
  color: var(--muted);
  height: 17px;
  margin-top: 3px;
  width: 17px;
}

.report-primary-links {
  align-items: center;
  background: #f8fbfb;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 42px;
  padding: 7px 9px;
}

.report-primary-links a {
  border-radius: 5px;
  color: #526172;
  font-size: 0.72rem;
  font-weight: 800;
  padding: 4px 5px;
  text-decoration: none;
}

.report-primary-links a:hover,
.report-primary-links a:focus-visible,
.report-primary-links a.active {
  background: #dff0ed;
  color: var(--primary-dark);
  outline: none;
}

.report-advanced {
  border-top: 1px solid #d3e6e2;
  margin-top: 12px;
  padding-top: 10px;
}

.report-advanced summary {
  align-items: center;
  color: var(--primary-dark);
  cursor: pointer;
  display: flex;
  font-weight: 800;
  gap: 9px;
  justify-content: space-between;
  list-style: none;
}

.report-advanced summary::-webkit-details-marker {
  display: none;
}

.report-advanced summary span {
  align-items: center;
  display: flex;
  gap: 8px;
}

.report-advanced summary svg {
  height: 18px;
  width: 18px;
}

.report-advanced summary small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 600;
  text-align: right;
}

.report-advanced-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-top: 12px;
}

.report-advanced-item {
  align-items: flex-start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: flex;
  gap: 8px;
  min-height: 67px;
  padding: 10px;
  text-decoration: none;
}

.report-advanced-item:hover,
.report-advanced-item:focus-visible,
.report-advanced-item.active {
  background: #eaf5f3;
  border-color: var(--primary);
  outline: none;
}

.report-advanced-item > svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 18px;
  margin-top: 1px;
  width: 18px;
}

.report-advanced-item span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.report-advanced-item strong {
  font-size: 0.8rem;
  line-height: 1.2;
}

.report-advanced-item small {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.25;
}

.report-context {
  background: #f5fbfa;
  border-left: 3px solid var(--primary);
  color: #425466;
  display: grid;
  gap: 7px;
  margin: 12px 0;
  padding: 10px 12px;
}

.report-context div {
  align-items: flex-start;
  display: flex;
  gap: 8px;
  line-height: 1.35;
}

.report-context svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 17px;
  margin-top: 1px;
  width: 17px;
}

.report-methodology {
  color: #425466;
}

.report-methodology summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-size: 0.84rem;
  font-weight: 800;
  gap: 8px;
  list-style: none;
}

.report-methodology summary::-webkit-details-marker {
  display: none;
}

.report-methodology p {
  font-size: 0.84rem;
  line-height: 1.4;
  margin: 7px 0 0 25px;
}

.period-shortcuts {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.period-shortcuts span {
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 700;
}

.period-shortcuts a {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
  color: #334155;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 7px 10px;
  text-decoration: none;
}

.report-filter {
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

.report-filter .primary-button {
  min-height: 44px;
}

.report-more-filters {
  border-top: 1px solid var(--line);
  grid-column: 1 / -1;
  padding-top: 10px;
}

.report-more-filters summary {
  align-items: center;
  color: var(--primary-dark);
  cursor: pointer;
  display: flex;
  font-weight: 800;
  gap: 8px;
  list-style: none;
}

.report-more-filters summary::-webkit-details-marker {
  display: none;
}

.report-more-filters summary svg {
  height: 18px;
  width: 18px;
}

.report-filter-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-top: 12px;
}

.report-clear {
  grid-column: 1 / -1;
  justify-self: start;
}

.report-actions {
  align-items: center;
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
  padding: 10px 0;
}

.report-actions > div {
  display: grid;
  flex: 1;
  gap: 2px;
}

.report-actions > div span,
.report-details .panel-title span {
  color: var(--muted);
  font-size: 0.84rem;
}

.report-favorites {
  border-bottom: 1px solid var(--line);
  margin: -4px 0 12px;
  padding: 0 0 10px;
}

.report-favorites summary {
  align-items: center;
  color: var(--primary-dark);
  cursor: pointer;
  display: flex;
  font-size: 0.86rem;
  font-weight: 800;
  justify-content: space-between;
  list-style: none;
}

.report-favorites summary::-webkit-details-marker {
  display: none;
}

.report-favorites summary span {
  align-items: center;
  display: flex;
  gap: 8px;
}

.report-favorites summary svg {
  height: 17px;
  width: 17px;
}

.report-favorites summary small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.report-favorites-content {
  display: grid;
  gap: 10px;
  padding-top: 10px;
}

.report-favorite-form {
  align-items: end;
  background: #f8fbfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1fr) auto;
  padding: 10px;
}

.report-favorite-form .field {
  gap: 4px;
}

.report-favorite-form .field span {
  font-size: 0.76rem;
}

.report-favorite-form input {
  min-height: 40px;
}

.report-favorites-list {
  display: grid;
  gap: 7px;
}

.report-favorites-list article {
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  min-height: 48px;
  padding: 5px 6px 5px 10px;
}

.report-favorites-list article > a {
  align-items: center;
  color: var(--ink);
  display: flex;
  gap: 9px;
  min-width: 0;
  text-decoration: none;
}

.report-favorites-list article > a:hover strong,
.report-favorites-list article > a:focus-visible strong {
  color: var(--primary-dark);
  text-decoration: underline;
}

.report-favorites-list article > a > svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 18px;
  width: 18px;
}

.report-favorites-list article span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.report-favorites-list article strong {
  font-size: 0.84rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.report-favorites-list article small,
.report-favorites-empty {
  color: var(--muted);
  font-size: 0.76rem;
}

.report-favorites-empty {
  margin: 0;
}

.report-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.report-metrics .metric {
  border-left: 3px solid var(--primary);
  min-height: 112px;
}

.report-extra-metrics {
  border-top: 1px solid var(--line);
  margin: 12px 0 16px;
  padding-top: 12px;
}

.report-extra-metrics summary {
  align-items: center;
  color: var(--primary-dark);
  cursor: pointer;
  display: flex;
  font-size: 0.88rem;
  font-weight: 800;
  gap: 8px;
  list-style: none;
}

.report-extra-metrics summary::-webkit-details-marker {
  display: none;
}

.report-extra-metrics summary svg {
  height: 18px;
  width: 18px;
}

.report-metrics-extra {
  margin-top: 12px;
}

.report-breakdowns {
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  margin-bottom: 16px;
}

.social-breakdowns {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.report-bar-row {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(120px, 180px) minmax(80px, 1fr) 34px;
  min-height: 38px;
}

.report-bar-row > span {
  color: #263347;
  font-size: 0.9rem;
  font-weight: 700;
}

.report-bar-row > div {
  background: #e8eef4;
  height: 8px;
  overflow: hidden;
}

.report-bar-row i {
  background: var(--primary);
  display: block;
  height: 100%;
}

.report-bar-row strong {
  color: var(--primary-dark);
  text-align: right;
}

.report-subtitle {
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  margin-top: 4px;
  padding-top: 12px;
  text-transform: uppercase;
}

.report-details {
  box-shadow: none;
}

.report-details .panel-title > div {
  display: grid;
  gap: 3px;
}

.report-detail-table td small {
  color: var(--muted);
  display: block;
  margin-top: 2px;
}

.report-detail-table a {
  color: var(--primary-dark);
  font-weight: 800;
}

@media (max-width: 900px) {
  .report-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-kind-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-primary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-filter-grid,
  .report-breakdowns {
    grid-template-columns: 1fr;
  }
}

body.mobile-device .report-kinds {
  gap: 7px;
}

body.mobile-device .report-start {
  border-radius: 10px;
  margin-bottom: 10px;
  padding: 12px;
}

body.mobile-device .report-start-heading h3 {
  font-size: 1rem;
}

body.mobile-device .report-start-heading p {
  font-size: 0.82rem;
}

body.mobile-device .report-primary-grid {
  gap: 8px;
  grid-template-columns: 1fr;
}

body.mobile-device .report-primary-main {
  min-height: 76px;
  padding: 11px;
}

body.mobile-device .report-primary-main strong {
  font-size: 0.92rem;
}

body.mobile-device .report-primary-main small {
  font-size: 0.75rem;
}

body.mobile-device .report-primary-links {
  min-height: 36px;
}

body.mobile-device .report-advanced summary {
  align-items: flex-start;
  display: grid;
  gap: 4px;
}

body.mobile-device .report-advanced summary small {
  padding-left: 26px;
  text-align: left;
}

body.mobile-device .report-advanced-grid {
  grid-template-columns: 1fr;
}

body.mobile-device .report-advanced-item {
  min-height: 58px;
}

body.mobile-device .report-kind-group {
  padding: 8px;
}

body.mobile-device .report-kind-group h3 {
  font-size: 0.68rem;
  margin-bottom: 6px;
}

body.mobile-device .report-kind {
  font-size: 0.86rem;
  min-height: 48px;
  padding: 8px 9px;
}

body.mobile-device .report-filter-grid {
  grid-template-columns: 1fr;
}

body.mobile-device .report-filter {
  grid-template-columns: 1fr;
}

body.mobile-device .report-filter .primary-button {
  width: 100%;
}

body.mobile-device .report-actions {
  align-items: stretch;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.mobile-device .report-actions > div {
  grid-column: 1 / -1;
}

body.mobile-device .report-actions .secondary-button {
  font-size: 0.82rem;
  min-height: 44px;
  padding: 8px;
}

body.mobile-device .report-favorite-form {
  grid-template-columns: 1fr;
}

body.mobile-device .report-favorite-form .ghost-button {
  width: 100%;
}

body.mobile-device .report-metrics {
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.mobile-device .report-metrics .metric {
  min-height: 94px;
  padding: 11px;
}

body.mobile-device .report-metrics .metric span {
  font-size: 0.76rem;
}

body.mobile-device .report-metrics .metric strong {
  font-size: 1.55rem;
}

body.mobile-device .report-metrics .metric small {
  font-size: 0.72rem;
}

body.mobile-device .report-breakdowns {
  grid-template-columns: 1fr;
}

body.mobile-device .report-table-wrap {
  overflow: visible;
}

body.mobile-device .report-detail-table,
body.mobile-device .report-detail-table tbody,
body.mobile-device .report-detail-table tr,
body.mobile-device .report-detail-table td {
  display: block;
  min-width: 0;
  width: 100%;
}

body.mobile-device .report-detail-table thead {
  display: none;
}

body.mobile-device .report-detail-table tr {
  border-bottom: 2px solid var(--line);
  padding: 8px 0;
}

body.mobile-device .report-detail-table td {
  align-items: baseline;
  border: 0;
  display: grid;
  font-size: 0.83rem;
  gap: 10px;
  grid-template-columns: 110px minmax(0, 1fr);
  padding: 5px 0;
}

body.mobile-device .report-detail-table td::before {
  color: var(--muted);
  content: attr(data-label);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

body.mobile-device .report-detail-table td[colspan]::before {
  display: none;
}

.checkbox-line {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

.checkbox-line input[type="checkbox"] {
  margin-top: 4px;
}

.checkbox-line span {
  color: #263347;
  font-size: 0.92rem;
  line-height: 1.45;
}

.compact-grid {
  gap: 14px;
}

.time-range {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.time-range span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
}

.accommodation-editor {
  display: grid;
  gap: 16px;
}

.accommodation-toggle-card {
  align-items: center;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  flex-direction: row-reverse;
  gap: 12px;
  justify-content: space-between;
  min-height: 56px;
  padding: 12px 14px;
}

.accommodation-toggle-card input[type="checkbox"] {
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

.accommodation-toggle-card span {
  font-weight: 700;
}

.accommodation-options {
  display: grid;
  gap: 8px;
}

.option-row {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 58px;
  padding: 10px 12px;
}

.option-row span {
  display: grid;
  gap: 2px;
}

.option-row strong {
  color: var(--ink);
  font-size: 0.92rem;
  line-height: 1.25;
}

.option-row small {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.3;
}

.option-row input[type="checkbox"] {
  height: 20px;
  justify-self: end;
  width: 20px;
}

.accommodation-summary {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1.25fr) repeat(4, minmax(120px, 0.75fr));
  margin-bottom: 18px;
}

.occupancy-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.occupancy-panels {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.occupancy-panels[hidden] {
  display: none;
}

.occupancy-panels-single {
  grid-template-columns: minmax(0, 1fr);
}

.occupancy-panels > .panel {
  min-width: 0;
}

.occupancy-referrals-heading {
  align-items: flex-start;
  gap: 12px;
}

.occupancy-referrals-heading > div {
  min-width: 0;
}

.occupancy-referrals-heading button {
  flex-shrink: 0;
}

.occupancy-referrals-content {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.occupancy-referrals-total {
  align-items: baseline;
  color: var(--muted);
  display: flex;
  gap: 8px;
}

.occupancy-referrals-total strong {
  color: var(--ink);
  font-size: 1.35rem;
}

.occupancy-referral-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 12px;
}

.occupancy-referral-title {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: space-between;
  min-width: 0;
}

.occupancy-referral-title strong,
.occupancy-referral-item small {
  overflow-wrap: anywhere;
}

.occupancy-referral-item small,
.occupancy-referrals-empty {
  color: var(--muted);
}

.occupancy-referral-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.occupancy-referral-actions .secondary-button,
.occupancy-referral-actions .primary-button {
  max-width: 100%;
}

.occupancy-referrals-more {
  justify-self: start;
}

.accommodation-receive-dialog {
  background: transparent;
  border: 0;
  margin: auto;
  max-height: calc(100vh - 32px);
  max-width: 520px;
  padding: 0;
  width: calc(100% - 32px);
}

.accommodation-receive-dialog::backdrop {
  background: rgba(15, 23, 42, 0.64);
}

.accommodation-receive-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 24px 72px rgba(15, 23, 42, 0.3);
  display: grid;
  gap: 14px;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  padding: 24px;
  position: relative;
}

.accommodation-receive-card h2,
.accommodation-receive-card p {
  margin: 0;
}

.accommodation-receive-close {
  position: absolute;
  right: 14px;
  top: 14px;
}

.accommodation-receive-person {
  color: var(--ink);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.accommodation-receive-progress {
  color: var(--primary);
  font-weight: 700;
}

.accommodation-receive-category-step,
.accommodation-receive-refusal-step {
  display: grid;
  gap: 14px;
}

.accommodation-receive-category-step[hidden],
.accommodation-receive-refusal-step[hidden] {
  display: none;
}

.accommodation-receive-refusal-step textarea {
  min-height: 96px;
  resize: vertical;
}

.accommodation-receive-error {
  margin-top: 2px;
}

.accommodation-receive-actions {
  align-items: stretch;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.accommodation-receive-actions button {
  justify-content: center;
  min-width: 0;
  text-align: center;
  white-space: normal;
  width: 100%;
}

.accommodation-receive-actions--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1120px) {
  .occupancy-panels {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 540px) {
  .occupancy-referrals-heading {
    flex-direction: column;
  }

  .occupancy-referral-actions,
  .accommodation-receive-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .occupancy-referral-actions > *,
  .accommodation-receive-actions button {
    justify-content: center;
    width: 100%;
  }

  .accommodation-receive-card {
    padding: 20px;
  }
}

.accommodation-summary .metric {
  box-shadow: none;
  min-height: 116px;
  padding: 16px;
}

.accommodation-summary .metric span {
  line-height: 1.2;
}

.accommodation-status-card {
  align-content: center;
  border-left: 4px solid var(--primary);
}

.accommodation-status-card strong {
  font-size: clamp(1.6rem, 2vw, 2.15rem);
  line-height: 1.05;
  overflow-wrap: normal;
}

.accommodation-number-card {
  align-content: center;
}

.accommodation-number-card strong {
  font-size: 1.8rem;
  line-height: 1;
}

.accommodation-number-card small,
.accommodation-status-card small {
  line-height: 1.35;
}

.panel-subtitle {
  color: var(--muted);
  font-size: 0.92rem;
  margin: 4px 0 0;
}

.availability-panel {
  display: grid;
  gap: 16px;
}

.availability-filter {
  display: grid;
  gap: 12px;
}

.availability-filter {
  align-items: end;
  grid-template-columns: minmax(0, 280px) auto auto;
}

.availability-occupancy {
  background: #fbfdff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(210px, 0.8fr) minmax(0, 1.2fr);
  padding: 18px;
}

.availability-occupancy-chart {
  align-items: center;
  display: grid;
  justify-items: center;
  text-align: center;
}

.availability-pie-chart {
  align-items: center;
  aspect-ratio: 1;
  background: conic-gradient(var(--pie));
  border-radius: 50%;
  align-content: center;
  display: grid;
  gap: 2px;
  justify-items: center;
  margin: 10px 0 12px;
  padding: 28px;
  position: relative;
  width: 178px;
}

.availability-pie-chart::after {
  background: #ffffff;
  border-radius: 50%;
  content: "";
  inset: 27px;
  position: absolute;
}

.availability-pie-chart strong,
.availability-pie-chart span {
  position: relative;
  z-index: 1;
}

.availability-pie-chart strong {
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
}

.availability-pie-chart span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.availability-pie-legend {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}

.availability-pie-legend span {
  align-items: center;
  display: inline-flex;
  gap: 6px;
}

.availability-pie-legend i {
  border-radius: 50%;
  display: inline-block;
  height: 10px;
  width: 10px;
}

.availability-pie-legend i.occupied {
  background: #d95f5f;
}

.availability-pie-legend i.available {
  background: #1f8a70;
}

.availability-occupancy-details {
  align-content: center;
  min-width: 0;
}

.availability-occupancy-sources {
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.35;
  margin: 0 0 10px;
}

.availability-occupancy-sources strong {
  color: var(--primary);
}

.availability-occupancy-details h3 {
  color: var(--text);
  font-size: 1.08rem;
  margin: 5px 0 2px;
}

.availability-occupancy-city {
  color: var(--muted);
  font-size: 0.88rem;
  margin: 0 0 12px;
}

.availability-occupancy-rows {
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.availability-occupancy-rows div {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  min-height: 48px;
  padding: 10px 14px;
}

.availability-occupancy-rows div:last-child {
  border-bottom: 0;
}

.availability-occupancy-rows strong {
  color: var(--muted);
}

.availability-occupancy-rows span {
  color: var(--text);
  font-weight: 800;
  text-align: right;
}

.availability-list-heading {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.availability-list-heading h3 {
  color: var(--text);
  font-size: 1rem;
  margin: 0;
}

.availability-list-heading span {
  color: var(--muted);
  font-size: 0.88rem;
}

.availability-list {
  display: grid;
  gap: 14px;
}

.availability-card {
  background: #fbfdff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 16px;
}

.availability-card.success {
  border-left-color: #1f8a70;
}

.availability-card.danger {
  border-left-color: #d95f5f;
}

.availability-card.neutral {
  border-left-color: #7b8794;
}

.availability-head,
.availability-meta {
  align-items: start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.availability-head strong {
  color: var(--text);
  display: block;
  font-size: 1rem;
}

.availability-head small,
.availability-meta,
.availability-status-text,
.availability-note {
  color: var(--muted);
}

.availability-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.availability-grid div {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 74px;
  padding: 12px;
}

.availability-grid span {
  color: var(--muted);
  display: block;
  font-size: 0.77rem;
  font-weight: 800;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.availability-grid strong {
  color: var(--text);
  font-size: 1.4rem;
}

.availability-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.availability-status-text,
.availability-note {
  font-size: 0.92rem;
  line-height: 1.5;
  margin: 0;
}

.availability-meta {
  flex-wrap: wrap;
  font-size: 0.84rem;
}

body.mobile-device .time-range {
  grid-template-columns: 1fr;
}

body.mobile-device .accommodation-summary {
  grid-template-columns: 1fr;
}

body.mobile-device .accommodation-summary .metric {
  min-height: auto;
}

body.mobile-device .accommodation-status-card strong,
body.mobile-device .accommodation-number-card strong {
  font-size: 1.55rem;
}

body.mobile-device .availability-filter,
body.mobile-device .availability-grid {
  grid-template-columns: 1fr;
}

body.mobile-device .availability-occupancy {
  grid-template-columns: 1fr;
}

body.mobile-device .availability-occupancy-rows div {
  align-items: start;
  display: grid;
  gap: 4px;
}

body.mobile-device .availability-occupancy-rows span {
  text-align: left;
}

body.mobile-device .availability-head,
body.mobile-device .availability-meta {
  display: grid;
  gap: 8px;
}

.history-identity-panel .panel-title > div {
  display: grid;
  gap: 4px;
}

.history-identity-panel .panel-title > div > span,
.history-identity-panel .panel-title > div > small {
  color: var(--muted);
  font-size: 0.9rem;
}

.history-data-grid {
  display: grid;
  gap: 0 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 8px;
}

.history-data-item {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px 0;
}

.history-data-item span,
.history-document-item span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.history-data-item strong {
  overflow-wrap: anywhere;
}

.history-columns {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.history-columns .profile-history {
  min-width: 0;
}

.history-document-item {
  align-items: flex-start;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 10px;
  padding: 11px 0;
}

.history-document-item > svg {
  color: var(--primary-dark);
  flex: 0 0 auto;
  margin-top: 2px;
}

.history-document-item > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.history-document-item strong {
  overflow-wrap: anywhere;
}

.history-document-item span {
  font-weight: 500;
  line-height: 1.35;
}

@media (max-width: 920px) {
  .history-columns,
  .history-data-grid {
    grid-template-columns: 1fr;
  }
}

.street-time-box {
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  padding: 14px;
}

.street-time-heading {
  display: grid;
  gap: 3px;
}

.street-time-heading strong {
  color: var(--ink);
  font-size: 0.95rem;
}

.street-time-heading span {
  color: var(--muted);
  font-size: 0.84rem;
}

.street-time-fields {
  gap: 10px;
  margin-top: 0;
}

.street-time-fields .field {
  margin: 0;
}

.equipment-serial-alert {
  display: grid;
  gap: 5px;
  margin: 16px 0;
}

.equipment-serial-alert code {
  background: #0f766e;
  border-radius: 6px;
  color: #fff;
  display: inline-block;
  font-size: 1rem;
  letter-spacing: .08em;
  padding: 5px 8px;
}

.equipment-table-wrap {
  margin-top: 0;
}

.equipment-table {
  min-width: 980px;
}

.equipment-table td strong,
.equipment-table td small {
  display: block;
}

.equipment-table td small {
  color: var(--muted);
  margin-top: 4px;
}

.equipment-actions {
  align-items: center;
  flex-wrap: wrap;
}

.equipment-status-disponivel { background: #e0f2fe; color: #075985; }
.equipment-status-ativo { background: #dcfce7; color: #166534; }
.equipment-status-bloqueado { background: #fef3c7; color: #92400e; }
.equipment-status-revogado { background: #fee2e2; color: #991b1b; }

@media (max-width: 768px) {
  .equipment-table {
    min-width: 0;
  }

  .equipment-table thead {
    display: none;
  }

  .equipment-table,
  .equipment-table tbody,
  .equipment-table tr,
  .equipment-table td {
    display: block;
    width: 100%;
  }

  .equipment-table tr {
    border-bottom: 1px solid var(--line);
    padding: 12px 0;
  }

  .equipment-table td {
    border: 0;
    padding: 6px 0 6px 40%;
    position: relative;
  }

  .equipment-table td::before {
    color: var(--muted);
    content: attr(data-label);
    font-size: .75rem;
    font-weight: 700;
    left: 0;
    position: absolute;
    text-transform: uppercase;
    top: 7px;
  }
}

/* Painel executivo: componentes isolados para nao alterar os demais relatorios. */
.executive-dashboard {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
}

.executive-hero {
  align-items: center;
  background:
    radial-gradient(circle at 100% 0, rgba(15, 118, 110, 0.16), transparent 36%),
    linear-gradient(120deg, #ffffff 0%, #f2fbfa 100%);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  overflow: hidden;
  padding: 24px;
}

.executive-hero > div:first-child {
  display: grid;
  gap: 6px;
  max-width: 760px;
}

.executive-kicker {
  color: var(--primary);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.executive-hero h2,
.executive-card h2 {
  color: var(--ink);
  font-size: 1.22rem;
  line-height: 1.18;
  margin: 0;
}

.executive-hero p {
  color: var(--muted);
  margin: 0;
}

.executive-period {
  align-items: center;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(15, 118, 110, 0.2);
  border-radius: 999px;
  color: var(--primary-dark);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.85rem;
  font-weight: 800;
  gap: 8px;
  padding: 10px 13px;
}

.executive-period svg {
  height: 17px;
  width: 17px;
}

.executive-kpi-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.executive-kpi-card {
  display: grid;
  gap: 6px;
  min-height: 132px;
  padding: 18px;
}

.executive-kpi-name {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.executive-kpi-card > strong {
  color: var(--ink);
  font-size: 2rem;
  letter-spacing: -0.04em;
  line-height: 1;
}

.executive-kpi-variation {
  align-items: center;
  color: var(--primary-dark);
  display: inline-flex;
  flex-wrap: wrap;
  font-size: 0.79rem;
  font-weight: 800;
  gap: 5px;
}

.executive-kpi-variation svg {
  height: 15px;
  width: 15px;
}

.executive-kpi-variation small {
  color: var(--muted);
  font-weight: 600;
}

.executive-primary-grid,
.executive-secondary-grid {
  display: grid;
  gap: 16px;
}

.executive-primary-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(330px, 0.75fr);
}

.executive-secondary-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.executive-card {
  padding: 20px;
}

.executive-card .panel-title {
  align-items: start;
  gap: 12px;
  margin-bottom: 18px;
}

.executive-card .panel-title > div {
  display: grid;
  gap: 4px;
}

.executive-card .panel-title span:not(.executive-kicker) {
  color: var(--muted);
  font-size: 0.83rem;
}

.executive-trend-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-bottom: 14px;
}

.executive-trend-legend span,
.executive-occupancy-numbers > div {
  align-items: center;
  color: #41506a;
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 700;
  gap: 7px;
}

.executive-legend-dot {
  border-radius: 50%;
  display: inline-block;
  flex: 0 0 auto;
  height: 9px;
  width: 9px;
}

.executive-legend-demandas,
.executive-trend-demandas {
  background: #0f766e;
}

.executive-legend-encaminhamentos,
.executive-trend-encaminhamentos {
  background: #2563eb;
}

.executive-legend-abordagens,
.executive-trend-abordagens {
  background: #d97706;
}

.executive-trend-chart {
  align-items: end;
  background: linear-gradient(to bottom, rgba(217, 225, 234, 0.5) 1px, transparent 1px);
  background-size: 100% 34px;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  min-height: 216px;
  padding: 12px 6px 0;
}

.executive-trend-month {
  align-items: center;
  display: grid;
  gap: 5px;
  justify-items: center;
  min-width: 0;
}

.executive-trend-bars {
  align-items: end;
  display: flex;
  gap: 4px;
  height: 150px;
  justify-content: center;
  width: 100%;
}

.executive-trend-bar {
  border-radius: 5px 5px 0 0;
  display: block;
  height: var(--executive-bar-height);
  max-width: 24px;
  min-height: 0;
  transition: filter 160ms ease, transform 160ms ease;
  width: 24%;
}

.executive-trend-month:hover .executive-trend-bar {
  filter: saturate(1.25);
  transform: translateY(-3px);
}

.executive-trend-month > strong {
  color: var(--ink);
  font-size: 0.8rem;
  line-height: 1;
}

.executive-trend-month > span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}

.executive-chart-caption {
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.4;
  margin: 12px 0 0;
}

.executive-total-badge {
  align-items: center;
  background: #e5f5f2;
  border-radius: 999px;
  color: var(--primary-dark);
  display: inline-flex;
  font-size: 1.1rem;
  justify-content: center;
  min-height: 38px;
  min-width: 38px;
  padding: 0 12px;
}

.executive-status-list {
  display: grid;
  gap: 14px;
}

.executive-status-row {
  --executive-status: #64748b;
  display: grid;
  gap: 5px;
}

.executive-status-warning { --executive-status: #d97706; }
.executive-status-info { --executive-status: #2563eb; }
.executive-status-violet { --executive-status: #7c3aed; }
.executive-status-success { --executive-status: #15803d; }
.executive-status-neutral { --executive-status: #64748b; }

.executive-status-heading {
  align-items: baseline;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.executive-status-heading > span {
  align-items: center;
  color: #263347;
  display: inline-flex;
  font-size: 0.88rem;
  font-weight: 800;
  gap: 7px;
}

.executive-status-heading > span i {
  background: var(--executive-status);
  border-radius: 50%;
  height: 9px;
  width: 9px;
}

.executive-status-heading > strong {
  color: var(--ink);
  font-size: 0.88rem;
  white-space: nowrap;
}

.executive-status-heading > strong small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 700;
}

.executive-status-track {
  background: #eaf0f5;
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.executive-status-track i {
  background: var(--executive-status);
  border-radius: inherit;
  display: block;
  height: 100%;
  min-width: 0;
}

.executive-status-row > small {
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.35;
}

.executive-occupancy-content {
  align-items: center;
  display: grid;
  gap: 24px;
  grid-template-columns: 172px minmax(0, 1fr);
}

.executive-occupancy-donut {
  align-content: center;
  align-items: center;
  aspect-ratio: 1;
  background: conic-gradient(#d97757 0 var(--executive-occupied), #5eaa8f var(--executive-occupied) calc(var(--executive-occupied) + var(--executive-free)), #e5ebf1 0);
  border-radius: 50%;
  display: grid;
  gap: 4px;
  justify-items: center;
  position: relative;
  width: 164px;
}

.executive-occupancy-donut::after {
  background: #fff;
  border-radius: 50%;
  content: '';
  inset: 21px;
  position: absolute;
}

.executive-occupancy-donut.is-empty {
  background: #e5ebf1;
}

.executive-occupancy-donut strong,
.executive-occupancy-donut span {
  position: relative;
  z-index: 1;
}

.executive-occupancy-donut strong {
  color: var(--ink);
  font-size: 1.42rem;
  line-height: 1;
}

.executive-occupancy-donut span {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.executive-occupancy-numbers {
  display: grid;
  gap: 11px;
}

.executive-occupancy-numbers > div {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto;
}

.executive-occupancy-numbers strong {
  color: var(--ink);
  font-size: 1rem;
}

.executive-occupancy-numbers > small {
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.75rem;
  margin-top: 2px;
  padding-top: 10px;
}

.executive-legend-livres { background: #5eaa8f; }
.executive-legend-ocupadas { background: #d97757; }
.executive-legend-capacidade { background: #64748b; }

.executive-alert-list {
  display: grid;
  gap: 10px;
}

.executive-alert-row {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #e4ebf1;
  border-radius: 10px;
  display: grid;
  gap: 11px;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  padding: 12px;
}

.executive-alert-row > svg {
  height: 20px;
  width: 20px;
}

.executive-alert-row.has-alert > svg,
.executive-alert-row.has-alert > b {
  color: #bd4a32;
}

.executive-alert-row.is-clear > svg,
.executive-alert-row.is-clear > b {
  color: #15803d;
}

.executive-alert-row > div {
  display: grid;
  gap: 2px;
}

.executive-alert-row strong {
  color: #263347;
  font-size: 0.84rem;
}

.executive-alert-row span {
  color: var(--muted);
  font-size: 0.73rem;
  line-height: 1.35;
}

.executive-alert-row > b {
  font-size: 1.12rem;
}

@media (max-width: 1080px) {
  .executive-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .executive-primary-grid,
  .executive-secondary-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .executive-hero {
    align-items: stretch;
    flex-direction: column;
    padding: 18px;
  }

  .executive-period {
    align-self: flex-start;
  }

  .executive-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .executive-kpi-card {
    min-height: 116px;
    padding: 14px;
  }

  .executive-kpi-card > strong {
    font-size: 1.65rem;
  }

  .executive-card {
    padding: 16px;
  }

  .executive-trend-chart {
    gap: 3px;
    min-height: 196px;
    padding-left: 1px;
    padding-right: 1px;
  }

  .executive-trend-bars {
    gap: 2px;
    height: 130px;
  }

  .executive-trend-bar {
    width: 27%;
  }

  .executive-trend-month > span {
    font-size: 0.64rem;
  }

  .executive-occupancy-content {
    gap: 18px;
    grid-template-columns: 132px minmax(0, 1fr);
  }

  .executive-occupancy-donut {
    width: 130px;
  }

  .executive-occupancy-donut::after {
    inset: 17px;
  }
}

@media (max-width: 390px) {
  .executive-kpi-grid {
    grid-template-columns: 1fr;
  }

  .executive-occupancy-content {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .executive-occupancy-numbers {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .executive-trend-bar {
    transition: none;
  }
}

/* Painéis gerenciais: indicadores agregados, sem dependências de gráficos externas. */
.report-management-dashboard {
  display: grid;
  gap: 16px;
}

.report-management-hero {
  align-items: start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 22px;
}

.report-management-hero > div:first-child {
  display: grid;
  gap: 5px;
}

.report-management-hero h2 {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  margin: 0;
}

.report-management-hero p {
  color: var(--muted);
  line-height: 1.5;
  margin: 0;
  max-width: 700px;
}

.report-management-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.report-management-grid-wide {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
}

.report-management-card {
  padding: 20px;
}

.report-management-card .panel-title {
  align-items: start;
  margin-bottom: 16px;
}

.report-management-card .panel-title > div {
  display: grid;
  gap: 4px;
}

.report-management-card .panel-title h2 {
  font-size: 1.08rem;
  margin: 0;
}

.report-management-card .panel-title span:not(.executive-kicker) {
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.4;
}

.report-priority-list,
.report-compact-list {
  display: grid;
  gap: 8px;
}

.report-priority-item {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #e3eaf0;
  border-radius: 10px;
  color: #263347;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 49px;
  padding: 10px 12px;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.report-priority-item:hover {
  border-color: #91c9c3;
  box-shadow: 0 7px 18px rgba(15, 118, 110, 0.1);
  transform: translateY(-1px);
}

.report-priority-item:focus-visible,
.report-detail-link:focus-visible,
.report-territory-list a:focus-visible,
.report-deadline-actions a:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.32);
  outline-offset: 2px;
}

.report-priority-item > span {
  align-items: center;
  display: inline-flex;
  font-size: 0.84rem;
  font-weight: 750;
  gap: 8px;
  min-width: 0;
}

.report-priority-item > span svg {
  flex: 0 0 auto;
  height: 17px;
  width: 17px;
}

.report-priority-item > span small {
  color: var(--muted);
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
}

.report-priority-item > strong {
  color: var(--ink);
  font-size: 1.15rem;
}

.report-priority-item.is-danger { border-left: 4px solid #c4513b; }
.report-priority-item.is-danger > span svg { color: #c4513b; }
.report-priority-item.is-warning { border-left: 4px solid #d97706; }
.report-priority-item.is-warning > span svg { color: #d97706; }
.report-priority-item.is-info { border-left: 4px solid #2563eb; }
.report-priority-item.is-info > span svg { color: #2563eb; }
.report-priority-item.is-success { border-left: 4px solid #15803d; }
.report-priority-item.is-muted { border-left: 4px solid #94a3b8; }

.report-priority-list-status .report-priority-item {
  align-items: start;
}

.report-time-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.report-time-grid article {
  background: linear-gradient(135deg, #f0f7f6, #fbfdfd);
  border: 1px solid #d7e7e4;
  border-radius: 12px;
  display: grid;
  gap: 5px;
  padding: 15px;
}

.report-time-grid span,
.report-result-kpis span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.report-time-grid strong {
  color: var(--primary-dark);
  font-size: 1.4rem;
  letter-spacing: -0.03em;
}

.report-time-grid small,
.report-time-grid b {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 650;
  line-height: 1.35;
}

.report-time-grid b {
  border-top: 1px solid #d7e7e4;
  color: #41506a;
  margin-top: 4px;
  padding-top: 8px;
}

.report-compact-list article {
  align-items: center;
  border-bottom: 1px solid #e6edf3;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px 0;
}

.report-compact-list article:first-child { padding-top: 0; }
.report-compact-list article:last-child { border-bottom: 0; padding-bottom: 0; }

.report-compact-list span,
.report-compact-list strong {
  display: grid;
  gap: 3px;
}

.report-compact-list span { color: #2a3850; font-size: 0.85rem; font-weight: 750; }
.report-compact-list strong { color: var(--primary-dark); font-size: 1.1rem; text-align: right; }
.report-compact-list small { color: var(--muted); font-size: 0.72rem; font-weight: 600; line-height: 1.35; }

.report-deadline-chart {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.report-deadline-chart article {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.report-deadline-chart article > span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
  text-align: center;
}

.report-deadline-bars {
  align-items: end;
  background: linear-gradient(to bottom, rgba(217, 225, 234, 0.48) 1px, transparent 1px);
  background-size: 100% 30px;
  display: flex;
  gap: 6px;
  height: 125px;
  justify-content: center;
  padding: 6px 5px 0;
}

.report-deadline-bars i {
  background: #94a3b8;
  border-radius: 5px 5px 0 0;
  display: block;
  height: var(--report-bar-height);
  max-width: 27px;
  width: 35%;
}

.report-deadline-bars i.is-danger,
.report-chart-legend i.is-danger { background: #c4513b; }
.report-deadline-bars i.is-success,
.report-chart-legend i.is-success { background: #15803d; }

.report-deadline-actions {
  display: grid;
  gap: 4px;
}

.report-deadline-actions a,
.report-deadline-actions span {
  color: #3f516c;
  font-size: 0.69rem;
  line-height: 1.35;
  text-decoration: none;
}

.report-deadline-actions a { color: var(--primary-dark); font-weight: 750; text-decoration: underline; text-decoration-color: rgba(15, 118, 110, 0.35); }

.report-chart-legend {
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.45;
  margin: 12px 0 0;
}

.report-chart-legend i {
  border-radius: 50%;
  display: inline-block;
  height: 9px;
  margin: 0 5px 0 9px;
  vertical-align: middle;
  width: 9px;
}

.report-result-kpis {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.report-result-kpis .panel {
  display: grid;
  gap: 6px;
  min-height: 124px;
  padding: 16px;
}

.report-result-kpis strong {
  color: var(--ink);
  font-size: 1.7rem;
  letter-spacing: -0.04em;
  line-height: 1;
}

.report-result-kpis small {
  color: var(--muted);
  font-size: 0.73rem;
  line-height: 1.35;
}

.report-quality-row {
  border-bottom: 1px solid #e7edf3;
  padding: 10px 0;
}

.report-quality-row:last-of-type { border-bottom: 0; }
.report-quality-row .report-bar-row { margin: 0; }

.report-detail-link {
  align-items: center;
  color: var(--primary-dark);
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 800;
  gap: 6px;
  margin: 6px 0 0;
  text-decoration: none;
}

.report-detail-link svg { height: 14px; width: 14px; }

.report-territory-card { padding: 20px; }

.report-territory-head,
.report-territory-list a {
  align-items: center;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(150px, 0.72fr) minmax(260px, 1.5fr) minmax(130px, 0.55fr);
}

.report-territory-head {
  border-bottom: 1px solid #dce5ed;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 850;
  padding: 0 0 9px;
  text-transform: uppercase;
}

.report-territory-list a {
  border-bottom: 1px solid #e6edf3;
  color: #293850;
  padding: 13px 0;
  text-decoration: none;
  transition: background 160ms ease, padding 160ms ease;
}

.report-territory-list a:hover {
  background: #f3f8f8;
  margin: 0 -8px;
  padding-left: 8px;
  padding-right: 8px;
}

.report-territory-list a:last-child { border-bottom: 0; }
.report-territory-name { display: grid; font-size: 0.88rem; font-weight: 850; gap: 3px; }
.report-territory-name small { color: var(--muted); font-size: 0.7rem; font-weight: 650; }
.report-territory-metrics { color: #53647d; font-size: 0.76rem; line-height: 1.45; }

.report-territory-total {
  align-items: center;
  display: grid;
  gap: 6px;
  grid-template-columns: minmax(36px, 1fr) auto;
}

.report-territory-total > i {
  background: linear-gradient(90deg, var(--primary) 0 var(--report-territory-width, 0%), #dbe6e7 var(--report-territory-width, 0%) 100%);
  border-radius: 999px;
  display: block;
  height: 8px;
  width: 100%;
}

.report-territory-total > strong { color: var(--primary-dark); font-size: 1.02rem; }

@media (max-width: 1080px) {
  .report-result-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-management-grid-wide { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .report-management-hero,
  .report-management-grid { grid-template-columns: 1fr; }

  .report-management-hero { align-items: stretch; flex-direction: column; padding: 18px; }
  .report-management-card { padding: 16px; }
  .report-time-grid { grid-template-columns: 1fr; }
  .report-deadline-chart { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 20px; }
  .report-territory-head { display: none; }
  .report-territory-list a { align-items: start; grid-template-columns: 1fr; gap: 6px; }
  .report-territory-total { max-width: 220px; width: 100%; }
}

@media (max-width: 430px) {
  .report-result-kpis { grid-template-columns: 1fr; }
  .report-priority-item { padding: 10px; }
  .report-priority-item > span { font-size: 0.79rem; }
  .report-deadline-actions a,
  .report-deadline-actions span { font-size: 0.64rem; }
}

@media (prefers-reduced-motion: reduce) {
  .report-priority-item,
  .report-territory-list a { transition: none; }
}

/* Shared dashboard treatment for every report that does not have a dedicated executive screen. */
.report-visual-dashboard { display: grid; gap: 16px; margin-top: 18px; }

.report-visual-hero {
  align-items: center;
  background: linear-gradient(120deg, #083d4f, #116d70 58%, #188e83);
  border-radius: 16px;
  color: #fff;
  display: grid;
  gap: 14px;
  grid-template-columns: auto minmax(0, 1fr) minmax(190px, .72fr);
  overflow: hidden;
  padding: 20px 22px;
  position: relative;
}

.report-visual-hero::after {
  background: radial-gradient(circle, rgba(255, 255, 255, .2), transparent 65%);
  content: '';
  height: 190px;
  pointer-events: none;
  position: absolute;
  right: -70px;
  top: -80px;
  width: 190px;
}

.report-visual-hero-icon { align-items: center; background: rgba(255, 255, 255, .15); border: 1px solid rgba(255, 255, 255, .28); border-radius: 14px; display: flex; height: 54px; justify-content: center; width: 54px; }
.report-visual-hero-icon svg { height: 26px; width: 26px; }
.report-visual-hero .executive-kicker { color: #bce9e3; }
.report-visual-hero h2 { color: #fff; font-size: 1.35rem; letter-spacing: -.02em; margin: 2px 0 4px; }
.report-visual-hero p { color: rgba(255, 255, 255, .82); font-size: .84rem; line-height: 1.45; margin: 0; max-width: 630px; }

.report-visual-scope { border-left: 1px solid rgba(255, 255, 255, .28); display: grid; gap: 6px; padding-left: 16px; position: relative; z-index: 1; }
.report-visual-scope span { align-items: center; display: flex; font-size: .84rem; font-weight: 800; gap: 7px; }
.report-visual-scope svg { height: 16px; width: 16px; }
.report-visual-scope small { color: #d6f1ed; font-size: .72rem; line-height: 1.35; }

.report-visual-kpis { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.report-visual-kpi { background: #fff; border: 1px solid #dbe6e8; border-radius: 14px; box-shadow: 0 8px 22px rgba(20, 55, 75, .07); min-height: 122px; overflow: hidden; padding: 14px; position: relative; }
.report-visual-kpi::before { background: var(--report-visual-tone, var(--primary)); content: ''; height: 4px; left: 0; position: absolute; right: 0; top: 0; }
.report-visual-kpi-1 { --report-visual-tone: #0b7191; }
.report-visual-kpi-2 { --report-visual-tone: #2873d9; }
.report-visual-kpi-3 { --report-visual-tone: #16806b; }
.report-visual-kpi-4 { --report-visual-tone: #c27825; }
.report-visual-kpi span, .report-visual-kpi strong, .report-visual-kpi small { display: block; }
.report-visual-kpi span { color: #49657a; font-size: .71rem; font-weight: 850; line-height: 1.2; text-transform: uppercase; }
.report-visual-kpi strong { color: #173a4b; font-size: 1.78rem; letter-spacing: -.04em; line-height: 1.05; margin-top: 9px; }
.report-visual-kpi small { color: #698094; font-size: .72rem; line-height: 1.32; margin-top: 7px; }

.report-visual-grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .8fr); }
.report-visual-grid .panel { border: 1px solid #dce7ea; box-shadow: 0 8px 24px rgba(20, 55, 75, .05); padding: 18px; }
.report-visual-grid .panel-title h2 { color: #15394e; font-size: 1.05rem; margin: 3px 0; }
.report-visual-grid .panel-title span { color: #698094; font-size: .76rem; }

.report-visual-bars { display: grid; gap: 11px; margin-top: 16px; }
.report-visual-bars > div { align-items: center; display: grid; gap: 10px; grid-template-columns: minmax(115px, .8fr) minmax(100px, 1.6fr) 42px; }
.report-visual-bars span { color: #324e62; font-size: .81rem; font-weight: 750; }
.report-visual-bars i { background: #e6eef0; border-radius: 999px; display: block; height: 10px; overflow: hidden; }
.report-visual-bars em { border-radius: inherit; display: block; height: 100%; min-width: 6px; }
.report-visual-bar-1 { background: linear-gradient(90deg, #0b7191, #22a1bb); }
.report-visual-bar-2 { background: linear-gradient(90deg, #2873d9, #5c9bf4); }
.report-visual-bar-3 { background: linear-gradient(90deg, #16806b, #48b497); }
.report-visual-bar-4 { background: linear-gradient(90deg, #bd741e, #e2a849); }
.report-visual-bars strong { color: #173a4b; font-size: .84rem; text-align: right; }

.report-visual-reading { background: linear-gradient(180deg, #f8fbfb, #f1f7f6); }
.report-visual-reading dl { display: grid; gap: 8px; margin: 16px 0 12px; }
.report-visual-reading dl div { border-bottom: 1px solid #dce8e7; display: grid; gap: 5px; padding-bottom: 8px; }
.report-visual-reading dt { color: #577187; font-size: .69rem; font-weight: 850; text-transform: uppercase; }
.report-visual-reading dd { color: #1d4557; font-size: .8rem; font-weight: 700; line-height: 1.3; margin: 0; }
.report-visual-reading p { color: #5f7789; font-size: .74rem; line-height: 1.45; margin: 0; }

@media (max-width: 1080px) {
  .report-visual-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-visual-hero { grid-template-columns: auto 1fr; }
  .report-visual-scope { grid-column: 1 / -1; grid-template-columns: auto 1fr; padding-left: 0; padding-top: 12px; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .28); }
}

@media (max-width: 760px) {
  .report-visual-hero, .report-visual-grid { grid-template-columns: 1fr; }
  .report-visual-hero { align-items: start; padding: 18px; }
  .report-visual-hero-icon { height: 46px; width: 46px; }
  .report-visual-hero h2 { font-size: 1.18rem; }
  .report-visual-scope { grid-column: auto; grid-template-columns: 1fr; }
  .report-visual-kpis { gap: 8px; }
  .report-visual-kpi { min-height: 108px; padding: 12px; }
  .report-visual-kpi strong { font-size: 1.5rem; }
}

@media (max-width: 430px) {
  .report-visual-kpis { grid-template-columns: 1fr; }
  .report-visual-bars > div { grid-template-columns: minmax(90px, .85fr) minmax(75px, 1.35fr) 35px; }
  .report-visual-bars span { font-size: .74rem; }
}

@media (max-width: 760px) {
  .attendance-evolution-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .attendance-evolution-heading .badge {
    align-self: flex-start;
  }

  .attendance-evolution-chart-wrap,
  .attendance-evolution-chart {
    min-height: 0;
  }

  .attendance-evolution-labels {
    gap: 0;
    margin-left: 42px;
    padding-right: 12px;
  }

  .attendance-evolution-labels > span {
    font-size: .66rem;
  }

  .attendance-evolution-tooltip {
    font-size: .76rem;
    max-width: min(238px, 82vw);
  }

  .attendance-evolution-details ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .attendance-evolution-details ul {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .migration-overview-card {
    align-items: start;
    flex-direction: column;
  }

  .migration-dashboard-filter {
    max-width: none;
  }

  .migration-overview-total {
    align-items: start;
    justify-items: start;
  }

  .migration-route-label {
    align-items: start;
    flex-direction: column;
    gap: 2px;
  }

  .migration-route-label span {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .attendance-evolution-point {
    transition: none;
  }
}

.help-center-page {
  display: grid;
  gap: 18px;
}

.help-center-context {
  align-items: center;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: 18px 22px;
}

.help-center-context > div {
  display: grid;
  gap: 3px;
}

.help-center-context strong {
  color: #0f172a;
  font-size: 1.05rem;
}

.help-center-context > div > span:last-child {
  color: #64748b;
  font-size: 0.86rem;
}

.help-feedback-summary {
  display: grid;
  gap: 16px;
}

.help-feedback-total {
  color: #0f766e;
  white-space: nowrap;
}

.help-feedback-summary-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.help-feedback-summary-grid > div {
  background: #f8fafc;
  border: 1px solid #dce5ec;
  border-radius: 10px;
  display: grid;
  gap: 5px;
  padding: 12px;
}

.help-feedback-summary-grid strong {
  color: #12344d;
  font-size: 0.88rem;
}

.help-feedback-summary-grid span {
  color: #526579;
  font-size: 0.8rem;
  line-height: 1.35;
}

.help-center-library {
  display: grid;
  gap: 18px;
  padding: 22px;
}

.help-toolbar {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(240px, 1fr) minmax(190px, 0.35fr) auto;
}

.help-toolbar label {
  display: grid;
  gap: 6px;
}

.help-toolbar label > span {
  color: #334155;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.help-toolbar input,
.help-toolbar select {
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  color: #0f172a;
  min-height: 44px;
  padding: 9px 12px;
  width: 100%;
}

.help-toolbar input:focus,
.help-toolbar select:focus,
.help-toolbar button:focus-visible,
.help-article summary:focus-visible {
  outline: 3px solid rgba(14, 165, 166, 0.3);
  outline-offset: 2px;
}

.help-results-status {
  color: #0f766e;
  font-size: 0.9rem;
  font-weight: 800;
  margin: 0;
}

.help-article-list {
  display: grid;
  gap: 12px;
}

.help-article {
  margin: 0;
  overflow: hidden;
  padding: 0;
  scroll-margin-top: 18px;
}

.help-article[hidden],
.help-empty[hidden] {
  display: none;
}

.help-article summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  list-style: none;
  padding: 18px 20px;
}

.help-article summary::-webkit-details-marker {
  display: none;
}

.help-article summary:hover {
  background: #f8fafc;
}

.help-article[open] summary {
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.help-article-heading {
  align-items: flex-start;
  display: flex;
  gap: 13px;
  min-width: 0;
}

.help-article-heading > span:last-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.help-article-heading strong {
  color: #0f172a;
  font-size: 1.05rem;
  line-height: 1.25;
}

.help-article-heading > span:last-child > span:last-child {
  color: #64748b;
  font-size: 0.9rem;
  line-height: 1.45;
}

.help-article-icon {
  align-items: center;
  background: #e6f6f4;
  border-radius: 12px;
  color: #0f766e;
  display: inline-flex;
  flex: 0 0 42px;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.help-article-icon svg {
  height: 20px;
  width: 20px;
}

.help-summary-action {
  align-items: center;
  color: #0f766e;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 0.82rem;
  font-weight: 800;
  gap: 5px;
  white-space: nowrap;
}

.help-summary-action svg {
  transition: transform 160ms ease;
}

.help-article[open] .help-summary-action svg {
  transform: rotate(180deg);
}

.help-article-body {
  padding: 20px 24px 24px;
}

.help-article-body h3 {
  color: #0f172a;
  font-size: 1rem;
  margin: 20px 0 12px;
}

.help-article-meta {
  background: #f0fdfa;
  border: 1px solid #ccefeb;
  border-radius: 10px;
  color: #335b5a;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  padding: 12px 14px;
}

.help-article-meta span {
  font-size: 0.86rem;
}

.help-article-purpose,
.help-article-result {
  background: #f8fafc;
  border-left: 4px solid #0f8b80;
  border-radius: 8px;
  margin-top: 16px;
  padding: 12px 14px;
}

.help-article-purpose strong,
.help-article-result strong {
  color: #12344d;
  display: block;
  font-size: 0.92rem;
}

.help-article-purpose p,
.help-article-result p {
  color: #475569;
  line-height: 1.55;
  margin: 4px 0 0;
}

.help-article-subsection {
  margin-top: 18px;
}

.help-bullet-list,
.help-question-list {
  color: #475569;
  display: grid;
  gap: 6px;
  line-height: 1.5;
  margin: 0;
  padding-left: 22px;
}

.help-bullet-list li::marker,
.help-question-list li::marker {
  color: #0f766e;
}

.help-related {
  border-top: 1px solid #e2e8f0;
  margin-top: 20px;
  padding-top: 4px;
}

.help-related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.help-related-links a {
  background: #eef8f6;
  border: 1px solid #b9ddd7;
  border-radius: 999px;
  color: #075e59;
  font-size: 0.84rem;
  font-weight: 700;
  padding: 7px 10px;
  text-decoration: none;
}

.help-related-links a:hover,
.help-related-links a:focus-visible {
  background: #dff2ef;
  outline: none;
}

.help-steps {
  display: grid;
  gap: 12px;
  margin: 0;
  padding-left: 24px;
}

.help-steps li {
  padding-left: 5px;
}

.help-steps li::marker {
  color: #0f766e;
  font-weight: 900;
}

.help-steps strong {
  color: #0f172a;
  display: block;
  font-size: 0.95rem;
}

.help-steps p {
  color: #475569;
  line-height: 1.55;
  margin: 3px 0 0;
}

.help-callouts {
  display: grid;
  gap: 8px;
  margin-top: 20px;
}

.help-callout {
  align-items: flex-start;
  background: #fffaf0;
  border: 1px solid #f1d9a5;
  border-radius: 10px;
  color: #704f14;
  display: flex;
  gap: 9px;
  padding: 11px 13px;
}

.help-callout svg {
  flex: 0 0 17px;
  margin-top: 2px;
}

.help-callout p {
  line-height: 1.45;
  margin: 0;
}

.help-empty {
  align-items: center;
  display: grid;
  gap: 8px;
  justify-items: center;
  padding: 32px 20px;
  text-align: center;
}

.help-empty svg {
  color: #0f766e;
  height: 30px;
  width: 30px;
}

.help-empty strong {
  color: #0f172a;
}

.help-empty p {
  color: #64748b;
  margin: 0;
}

.person-stepper {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 4px 0 16px;
}

.person-step-button {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #d6e0e8;
  border-radius: 12px;
  color: #526579;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 800;
  gap: 8px;
  justify-content: flex-start;
  min-height: 48px;
  padding: 8px 10px;
  text-align: left;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.person-step-button:hover,
.person-step-button:focus-visible {
  border-color: #0f8b80;
  outline: none;
}

.person-step-button.is-active {
  background: #e9f7f5;
  border-color: #0f8b80;
  color: #075e59;
}

.person-step-number {
  align-items: center;
  background: #dce8ef;
  border-radius: 999px;
  display: inline-flex;
  flex: 0 0 26px;
  height: 26px;
  justify-content: center;
  width: 26px;
}

.person-step-button.is-active .person-step-number {
  background: #0f8b80;
  color: #fff;
}

.person-step-intro {
  background: #f4f9f9;
  border-left: 4px solid #0f8b80;
  border-radius: 8px;
  display: grid;
  gap: 3px;
  margin-bottom: 18px;
  padding: 11px 13px;
}

.person-step-intro strong {
  color: #12344d;
  font-size: 1rem;
}

.person-step-intro span {
  color: #5a7083;
  font-size: 0.86rem;
}

.person-step-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin: 18px 0 10px;
}

.person-step-actions button[disabled] {
  cursor: not-allowed;
  opacity: 0.5;
}

.person-field-hidden,
[data-person-savebar][hidden],
[data-person-attachment-form][hidden] {
  display: none !important;
}

@media (max-width: 760px) {
  .person-stepper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .person-step-button {
    min-height: 44px;
  }

  .person-step-actions {
    position: sticky;
    bottom: 0;
    z-index: 2;
  }
}

@media (max-width: 760px) {
  .help-center-context {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }

  .help-toolbar {
    grid-template-columns: 1fr;
  }

  .help-toolbar button {
    justify-self: start;
  }

  .help-article summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .help-summary-action {
    padding-left: 55px;
  }

  .help-article-body {
    padding: 16px;
  }

  .help-article-meta {
    display: grid;
    gap: 8px;
  }
}

.assistant-psr {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
  overflow: hidden;
}

.assistant-psr-heading {
  align-items: flex-start;
  display: flex;
  gap: 14px;
}

.assistant-psr-heading h2 {
  color: #12344d;
  font-size: 1.22rem;
  margin: 3px 0 4px;
}

.assistant-psr-heading p {
  color: #526579;
  line-height: 1.5;
  margin: 0;
}

.assistant-psr-icon {
  align-items: center;
  background: #e6f7f4;
  border: 1px solid #b5e3dc;
  border-radius: 12px;
  color: #0f766e;
  display: flex;
  flex: 0 0 42px;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.assistant-psr-icon svg {
  height: 22px;
  width: 22px;
}

.assistant-psr-form {
  display: grid;
  gap: 12px;
}

.assistant-psr-question,
.assistant-psr-options label {
  display: grid;
  gap: 6px;
}

.assistant-psr-question > span,
.assistant-psr-options label > span {
  color: #31516a;
  font-size: 0.84rem;
  font-weight: 800;
}

.assistant-psr-question textarea,
.assistant-psr-options select {
  background: #fff;
  border: 1px solid #cbd9e3;
  border-radius: 9px;
  color: #12344d;
  font: inherit;
  padding: 11px 12px;
  width: 100%;
}

.assistant-psr-question textarea {
  min-height: 74px;
  resize: vertical;
}

.assistant-psr-question textarea:focus,
.assistant-psr-options select:focus {
  border-color: #0f8b80;
  box-shadow: 0 0 0 3px rgba(15, 139, 128, 0.12);
  outline: none;
}

.assistant-psr-options {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 0.7fr) auto;
}

.assistant-psr-options .primary-button {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
  min-height: 43px;
}

.assistant-psr-options .primary-button svg {
  height: 17px;
  width: 17px;
}

.assistant-psr-examples {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.assistant-psr-examples > span {
  color: #526579;
  font-size: 0.82rem;
  font-weight: 700;
}

.assistant-psr-example {
  background: #f8fafc;
  border: 1px solid #cbd9e3;
  border-radius: 999px;
  color: #31516a;
  cursor: pointer;
  font: inherit;
  font-size: 0.8rem;
  padding: 7px 10px;
}

.assistant-psr-example:hover,
.assistant-psr-example:focus-visible {
  background: #eef8f6;
  border-color: #8bcfc5;
  color: #075e59;
  outline: none;
}

.assistant-psr-options button:disabled,
.assistant-psr-feedback button:disabled {
  cursor: wait;
  opacity: 0.6;
}

.assistant-psr-privacy {
  align-items: flex-start;
  background: #f5faf9;
  border-left: 3px solid #0f8b80;
  color: #426174;
  display: flex;
  font-size: 0.82rem;
  gap: 8px;
  line-height: 1.45;
  margin: 0;
  padding: 9px 11px;
}

.assistant-psr-privacy svg {
  color: #0f766e;
  flex: 0 0 16px;
  margin-top: 1px;
}

.assistant-psr-status {
  background: #eef7ff;
  border: 1px solid #c5ddf1;
  border-radius: 8px;
  color: #315b78;
  margin: 0;
  padding: 10px 12px;
}

.assistant-psr-status.is-error {
  background: #fff5f4;
  border-color: #f1c2bd;
  color: #8a3027;
}

.assistant-psr-result {
  background: #fbfefd;
  border: 1px solid #b9ddd7;
  border-radius: 10px;
  display: grid;
  gap: 16px;
  padding: 16px;
}

.assistant-psr-answer p {
  color: #183b53;
  line-height: 1.6;
  margin: 4px 0 0;
}

.assistant-psr-steps h3,
.assistant-psr-sources h3 {
  color: #12344d;
  font-size: 0.96rem;
  margin: 0 0 8px;
}

.assistant-psr-steps ol {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 24px;
}

.assistant-psr-steps li {
  color: #475569;
  line-height: 1.5;
  padding-left: 4px;
}

.assistant-psr-steps li::marker {
  color: #0f766e;
  font-weight: 800;
}

.assistant-psr-steps strong {
  color: #183b53;
  display: block;
}

.assistant-psr-steps p {
  margin: 2px 0 0;
}

.assistant-psr-sources > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.assistant-psr-sources a {
  background: #eef8f6;
  border: 1px solid #b9ddd7;
  border-radius: 999px;
  color: #075e59;
  font-size: 0.84rem;
  font-weight: 700;
  padding: 7px 10px;
  text-decoration: none;
}

.assistant-psr-sources a:hover,
.assistant-psr-sources a:focus-visible {
  background: #dff2ef;
  outline: none;
}

.assistant-psr-actions {
  border-top: 1px solid #dce9e8;
  display: grid;
  gap: 9px;
  padding-top: 14px;
}

.assistant-psr-actions h3 {
  color: #12344d;
  font-size: 0.96rem;
  margin: 0;
}

.assistant-psr-actions > div {
  display: grid;
  gap: 8px;
}

.assistant-psr-actions > div > div {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.assistant-psr-actions a {
  text-decoration: none;
}

.assistant-psr-actions span,
.assistant-psr-actions p {
  color: #526579;
  font-size: 0.82rem;
  line-height: 1.45;
  margin: 0;
}

.assistant-psr-feedback {
  align-items: center;
  border-top: 1px solid #dce9e8;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 12px;
}

.assistant-psr-feedback > span:first-child {
  color: #526579;
  font-size: 0.84rem;
  font-weight: 700;
  margin-right: 3px;
}

.assistant-psr-feedback-status {
  color: #0f766e;
  font-size: 0.82rem;
}

.assistant-psr-feedback-motive {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
}

.assistant-psr-feedback-motive label {
  display: grid;
  gap: 5px;
  min-width: min(100%, 280px);
}

.assistant-psr-feedback-motive label > span {
  color: #526579;
  font-size: 0.78rem;
  font-weight: 700;
}

.assistant-psr-feedback-motive select {
  background: #fff;
  border: 1px solid #cbd9e3;
  border-radius: 8px;
  color: #12344d;
  font: inherit;
  min-height: 38px;
  padding: 7px 9px;
}

@media (max-width: 760px) {
  .help-feedback-summary-grid {
    grid-template-columns: 1fr;
  }

  .assistant-psr-options {
    grid-template-columns: 1fr;
  }

  .assistant-psr-options .primary-button {
    width: 100%;
  }

  .assistant-psr-heading {
    gap: 10px;
  }
}

@media (max-width: 860px) {
  .sidebar-context-help {
    grid-column: 1 / -1;
  }

  .sidebar-context-help-body {
    max-height: min(48vh, 360px);
  }
}

body.mobile-device .sidebar-context-help {
  grid-column: 1 / -1;
}

body.mobile-device .sidebar-context-help-body {
  max-height: min(42vh, 300px);
}

/* Auditoria: consulta orientada por tarefa, com detalhes técnicos sob demanda. */
.audit-filters-form {
  display: grid;
  gap: 16px;
}

.audit-search-row {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.audit-search-field {
  display: grid;
  gap: 6px;
}

.audit-main-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.audit-filter-heading {
  display: grid;
  gap: 3px;
}

.audit-filter-heading strong {
  color: var(--ink);
  font-size: 0.92rem;
}

.audit-filter-heading span {
  color: #64748b;
  font-size: 0.82rem;
}

.audit-scope-note {
  background: #fff8e7;
  border: 1px solid #f2d38b;
  border-radius: 8px;
  color: #725313;
  font-size: 0.82rem;
  margin: 0;
  padding: 10px 12px;
}

.audit-scope-note strong {
  color: #5c410e;
}

.audit-filter-heading-spaced {
  border-top: 1px solid var(--line);
  padding-top: 16px;
}

.audit-quick-options,
.audit-category-grid {
  display: grid;
  gap: 8px;
}

.audit-quick-options {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.audit-quick-button,
.audit-category-button {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: #263347;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.audit-quick-button {
  min-height: 42px;
  padding: 9px 12px;
  text-align: center;
}

.audit-quick-button:hover,
.audit-quick-button:focus-visible,
.audit-category-button:hover,
.audit-category-button:focus-visible {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
  outline: none;
}

.audit-quick-button.is-active,
.audit-category-button.is-active {
  background: #e6f5f2;
  border-color: var(--primary);
  color: var(--primary-dark);
}

.audit-quick-button:disabled,
.audit-category-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.audit-category-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.audit-category-button {
  display: grid;
  gap: 4px;
  min-height: 68px;
  padding: 10px 12px;
}

.audit-category-button strong {
  font-size: 0.88rem;
}

.audit-category-button span {
  color: #64748b;
  font-size: 0.75rem;
  line-height: 1.25;
}

.audit-category-button.is-active span {
  color: #21635d;
}

.audit-custom-period {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.audit-advanced {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.audit-advanced[open] {
  background: #f8fbfc;
  border: 1px solid #c7e2df;
  border-radius: 8px;
  padding: 10px 12px 12px;
}

.audit-advanced summary {
  align-items: center;
  color: var(--primary-dark);
  cursor: pointer;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  list-style: none;
  min-height: 40px;
}

.audit-advanced summary::-webkit-details-marker {
  display: none;
}

.audit-advanced summary > span {
  align-items: center;
  display: inline-flex;
  font-weight: 800;
  gap: 8px;
}

.audit-advanced summary svg {
  height: 17px;
  width: 17px;
}

.audit-advanced summary small {
  color: #64748b;
  font-size: 0.78rem;
}

.audit-advanced-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
}

.audit-advanced-grid label {
  display: grid;
  gap: 6px;
}

.audit-event-list {
  display: grid;
  gap: 10px;
}

.audit-event-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 4px solid #7bc9bf;
  border-radius: 8px;
  padding: 14px;
}

.audit-event-header {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.audit-event-header h3 {
  color: var(--ink);
  font-size: 1rem;
  margin: 6px 0 0;
}

.audit-event-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.audit-event-meta time {
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 700;
}

.audit-event-context {
  border-top: 1px solid #edf1f4;
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
  padding-top: 12px;
}

.audit-event-context div,
.audit-event-details-grid div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.audit-event-context span,
.audit-event-details-grid span {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 700;
}

.audit-event-context strong,
.audit-event-details-grid strong {
  color: var(--ink);
  font-size: 0.84rem;
  overflow-wrap: anywhere;
}

.audit-event-context small {
  color: #64748b;
  font-size: 0.76rem;
  overflow-wrap: anywhere;
}

.audit-event-details {
  border-top: 1px solid #edf1f4;
  margin-top: 12px;
  padding-top: 10px;
}

.audit-event-details summary {
  color: var(--primary-dark);
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 800;
}

.audit-event-details-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 12px;
}

@media (max-width: 900px) {
  .audit-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .audit-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .audit-search-row,
  .audit-custom-period,
  .audit-event-context,
  .audit-event-details-grid {
    grid-template-columns: 1fr;
  }

  .audit-main-actions,
  .audit-main-actions > * {
    width: 100%;
  }

  .audit-quick-options,
  .audit-category-grid,
  .audit-advanced-grid {
    grid-template-columns: 1fr;
  }

  .audit-advanced summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .audit-event-header {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Reestruturação visual: prioriza tarefas, leitura e orientação contextual. */
:root {
  --shell-ink: #102133;
  --shell-ink-soft: #173047;
  --paper: #f7f5ef;
  --paper-accent: #edf5f2;
  --panel-border: #d8e2df;
  --text-strong: #152a3b;
  --text-muted: #5e6f78;
  --action: #087f79;
  --action-dark: #05645f;
  --focus-ring: rgba(8, 127, 121, 0.22);
}

body {
  background:
    radial-gradient(circle at 86% -12%, rgba(192, 224, 214, 0.72), transparent 32rem),
    linear-gradient(135deg, #f7f5ef 0%, #f1f6f5 58%, #f7f9fb 100%);
  color: var(--text-strong);
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
}

.app-shell {
  grid-template-columns: 252px minmax(0, 1fr);
  min-height: 100dvh;
}

.sidebar {
  align-content: start;
  background:
    linear-gradient(180deg, rgba(16, 33, 51, 0.99), rgba(13, 28, 43, 0.99)),
    var(--shell-ink);
  border-right: 1px solid rgba(190, 219, 217, 0.16);
  box-shadow: 14px 0 34px rgba(22, 40, 53, 0.12);
  gap: 14px;
  height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 18px 14px 14px;
  position: sticky;
  top: 0;
}

.brand {
  align-items: center;
  border-bottom: 1px solid rgba(212, 235, 231, 0.14);
  gap: 10px;
  padding: 2px 4px 16px;
}

.brand-mark {
  border: 1px solid rgba(220, 242, 237, 0.58);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

.brand strong {
  font-size: 1rem;
  letter-spacing: 0.01em;
}

.brand span {
  color: #a9c7cb;
  font-size: 0.72rem;
}

.main-nav {
  gap: 3px;
}

.nav-group-label {
  color: #8bbcb9;
  display: block;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  margin: 15px 8px 5px;
  text-transform: uppercase;
}

.nav-group-label:first-child {
  margin-top: 2px;
}

.nav-item {
  border: 1px solid transparent;
  border-radius: 9px;
  color: #e4edef;
  font-size: 0.88rem;
  font-weight: 700;
  gap: 10px;
  min-height: 39px;
  padding: 9px 10px;
  text-decoration: none;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.nav-item:hover,
.nav-item:focus-visible {
  background: rgba(161, 217, 205, 0.12);
  border-color: rgba(161, 217, 205, 0.28);
  color: #ffffff;
  outline: none;
  transform: translateX(2px);
}

.nav-item.active,
.nav-item[aria-current="page"] {
  background: linear-gradient(90deg, rgba(18, 151, 141, 0.28), rgba(29, 85, 95, 0.42));
  border-color: rgba(135, 218, 203, 0.42);
  box-shadow: inset 3px 0 0 #76d3c4;
  color: #ffffff;
}

.nav-item svg {
  color: #a6d7d0;
  height: 18px;
  width: 18px;
}

.sidebar-context-help {
  border: 1px solid rgba(126, 202, 190, 0.28);
  border-radius: 10px;
  margin: 4px 2px 0;
  overflow: hidden;
}

.sidebar-context-help > summary {
  background: rgba(28, 63, 76, 0.56);
  border: 0;
  border-radius: 0;
  min-height: 52px;
  padding: 10px 11px;
}

.sidebar-context-help > summary:hover,
.sidebar-context-help > summary:focus-visible {
  background: rgba(35, 83, 92, 0.82);
  border: 0;
  box-shadow: inset 0 0 0 2px var(--focus-ring);
}

.sidebar-context-help-summary-copy small,
.sidebar-context-help-label,
.sidebar-context-help-heading > span {
  color: #8ed8cc;
  font-size: 0.61rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.sidebar-context-help-summary-copy strong,
.sidebar-context-help-heading strong {
  font-size: 0.85rem;
  line-height: 1.2;
}

.sidebar-context-help-body {
  background: #173146;
  border: 0;
  border-radius: 0;
  max-height: min(40vh, 300px);
  overflow-y: auto;
  padding: 12px;
}

.sidebar-context-help-heading {
  gap: 5px;
}

.sidebar-context-help-body p,
.sidebar-context-help-tip-list li,
.sidebar-context-help-list a {
  font-size: 0.76rem;
  line-height: 1.42;
}

.sidebar-context-help-section {
  gap: 6px;
  padding-top: 10px;
}

.sidebar-context-help-action-list a {
  background: rgba(124, 213, 195, 0.14);
  border-radius: 7px;
  min-height: 34px;
  padding: 7px 8px;
}

.session-box {
  background: rgba(9, 23, 36, 0.56);
  border-top: 1px solid rgba(212, 235, 231, 0.16);
  margin-top: auto;
  padding: 13px 6px 0;
}

.session-summary {
  line-height: 1.25;
}

.session-summary > span:first-child {
  color: #c9dbdf;
  font-size: 0.75rem;
}

.session-summary-action {
  color: #8ed8cc;
  font-size: 0.71rem;
  font-weight: 700;
}

.workspace {
  margin: 0 auto;
  max-width: 1660px;
  min-width: 0;
  padding: clamp(20px, 3vw, 38px);
  width: 100%;
}

.topbar {
  align-items: flex-start;
  border-bottom: 1px solid rgba(131, 162, 159, 0.28);
  gap: 18px;
  margin-bottom: 22px;
  padding-bottom: 18px;
}

.topbar h1,
.page-heading h1 {
  color: var(--text-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.6rem, 2.2vw, 2.35rem);
  letter-spacing: -0.025em;
  line-height: 1.08;
}

.eyebrow {
  color: var(--action-dark);
  font-size: 0.67rem;
  font-weight: 900;
  letter-spacing: 0.11em;
}

.page-intro,
.panel-title > div > span,
.panel-title span,
.home-hero p {
  color: var(--text-muted);
  line-height: 1.48;
}

.panel,
.home-hero,
.home-action,
.empty-card {
  border-color: var(--panel-border);
  border-radius: 13px;
  box-shadow: 0 10px 26px rgba(23, 48, 60, 0.055);
}

.panel {
  background: rgba(255, 255, 255, 0.93);
  padding: clamp(16px, 2vw, 24px);
}

.panel-title {
  align-items: flex-start;
  gap: 14px;
}

.panel-title h2,
.panel-title h3 {
  color: var(--text-strong);
  font-size: 1.08rem;
}

.home-hero {
  background:
    linear-gradient(110deg, rgba(237, 247, 244, 0.98), rgba(255, 255, 255, 0.96)),
    var(--paper-accent);
  border-left: 4px solid var(--action);
}

.home-actions {
  gap: 12px;
}

.home-action {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--panel-border);
  min-height: 128px;
  padding: 18px;
}

.home-action:hover,
.home-action:focus-visible {
  border-color: #77bfb4;
  box-shadow: 0 12px 24px rgba(13, 92, 84, 0.12);
  outline: none;
  transform: translateY(-2px);
}

.primary-home-action {
  background: linear-gradient(135deg, #e4f4ef, #f8fffc);
  border-color: #8bcabf;
}

.home-summary,
.status-summary,
.summary-cards {
  gap: 12px;
}

.home-summary > *,
.status-summary > *,
.summary-cards > * {
  border-radius: 11px;
}

input,
select,
textarea {
  background: #ffffff;
  border-color: #cbd8d5;
  border-radius: 8px;
  color: var(--text-strong);
  min-height: 42px;
}

textarea {
  min-height: 112px;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--action);
  box-shadow: 0 0 0 3px var(--focus-ring);
  outline: none;
}

label {
  color: #304653;
  font-size: 0.82rem;
  font-weight: 800;
}

.primary-button,
button.primary-button {
  background: linear-gradient(135deg, var(--action), #11958c);
  border-color: var(--action);
  box-shadow: 0 5px 12px rgba(8, 127, 121, 0.17);
}

.primary-button:hover,
.primary-button:focus-visible,
button.primary-button:hover,
button.primary-button:focus-visible {
  background: linear-gradient(135deg, var(--action-dark), #087f79);
  box-shadow: 0 8px 16px rgba(8, 127, 121, 0.24);
  outline: none;
}

.secondary-button,
.ghost-link {
  border-radius: 8px;
}

.filter-grid,
.audit-search-row,
.audit-advanced-grid {
  align-items: end;
  gap: 14px;
}

.table-wrap {
  border: 1px solid #dce6e3;
  border-radius: 10px;
}

.data-table th {
  background: #edf5f2;
  color: #36515a;
  font-size: 0.7rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.data-table tr:hover td {
  background: #f6fbfa;
}

.badge {
  border-radius: 999px;
  font-size: 0.71rem;
  font-weight: 800;
  padding: 5px 9px;
}

.message-inbox-panel,
.message-content-panel {
  min-height: 0;
}

.message-content-panel {
  max-height: min(72vh, 760px);
  overflow: hidden;
}

.message-content-panel [data-message-thread],
.message-content-panel .message-thread {
  min-height: 0;
  overflow-y: auto;
}

.pai-status-filters,
.audit-quick-options,
.audit-category-grid {
  gap: 9px;
}

.audit-advanced {
  border-radius: 10px;
}

.audit-event-card {
  border-left-width: 5px;
  border-radius: 10px;
}

.empty-card {
  background: #fcfdfd;
  border: 1px dashed #b8ceca;
  color: #50656c;
}

@media (max-width: 980px) {
  .app-shell {
    display: block;
  }

  .sidebar {
    height: auto;
    max-height: none;
    padding: 14px;
    position: static;
  }

  .main-nav {
    align-items: stretch;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }

  .nav-group-label {
    flex: 0 0 100%;
    margin: 12px 2px 2px;
  }

  .nav-item {
    flex: 1 1 158px;
  }

  .sidebar-context-help {
    margin-top: 10px;
  }

  .session-box {
    margin-top: 4px;
  }
}

@media (min-width: 981px) and (prefers-reduced-motion: reduce) {
  .sidebar .nav-item,
  .sidebar .nav-item::before,
  .sidebar .sidebar-context-help > summary,
  .sidebar .logout-form button {
    transition: none;
  }

  .sidebar .nav-item:hover,
  .sidebar .nav-item:focus-visible,
  .sidebar .sidebar-context-help > summary:hover,
  .sidebar .sidebar-context-help > summary:focus-visible,
  .sidebar .logout-form button:hover,
  .sidebar .logout-form button:focus-visible {
    transform: none;
  }
}

@media (max-width: 680px) {
  .workspace {
    padding: 16px 13px 26px;
  }

  .topbar {
    align-items: stretch;
    flex-direction: column;
    margin-bottom: 16px;
    padding-bottom: 14px;
  }

  .topbar h1,
  .page-heading h1 {
    font-size: 1.65rem;
  }

  .panel,
  .home-action {
    border-radius: 10px;
    padding: 15px;
  }

  .nav-item {
    flex-basis: calc(50% - 3px);
    font-size: 0.8rem;
    min-height: 38px;
  }

  .nav-item:hover,
  .nav-item:focus-visible {
    transform: none;
  }

  .sidebar-context-help-body {
    max-height: 250px;
  }

  .home-actions,
  .home-summary,
  .filter-grid,
  .audit-search-row,
  .audit-advanced-grid {
    grid-template-columns: 1fr;
  }
}

body.mobile-device .sidebar {
  height: auto;
  position: static;
}

body.mobile-device .main-nav {
  flex-wrap: wrap;
}

body.mobile-device .nav-group-label {
  flex-basis: 100%;
}

.home-secondary-details {
  background: rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(163, 187, 182, 0.56);
  border-radius: 13px;
  overflow: hidden;
}

.home-secondary-details > summary {
  align-items: center;
  color: var(--text-strong);
  cursor: pointer;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  list-style: none;
  min-height: 62px;
  padding: 14px 18px;
}

.home-secondary-details > summary::-webkit-details-marker {
  display: none;
}

.home-secondary-details > summary > span {
  align-items: center;
  display: inline-flex;
  font-size: 0.92rem;
  font-weight: 800;
  gap: 9px;
}

.home-secondary-details > summary > span svg {
  color: var(--action);
  height: 19px;
  width: 19px;
}

.home-secondary-details > summary > small {
  color: var(--text-muted);
  font-size: 0.75rem;
  max-width: 28rem;
  text-align: right;
}

.home-secondary-details > summary::after {
  color: var(--action-dark);
  content: "+";
  font-size: 1.25rem;
  font-weight: 800;
}

.home-secondary-details[open] > summary {
  background: #edf6f3;
  border-bottom: 1px solid var(--panel-border);
}

.home-secondary-details[open] > summary::after {
  content: "−";
}

.home-secondary-details-body {
  display: grid;
  gap: 18px;
  padding: 18px;
}

@media (max-width: 680px) {
  .home-secondary-details > summary {
    align-items: flex-start;
    min-height: 0;
    padding: 13px 14px;
  }

  .home-secondary-details > summary > small {
    display: none;
  }

  .home-secondary-details-body {
    gap: 13px;
    padding: 13px;
  }
}

/* Ajuste do menu lateral desktop: encaixe completo, paleta verde suave e estados claros. */
@media (min-width: 981px) {
  .sidebar {
    background: linear-gradient(180deg, #255b54 0%, #1b4843 100%);
    border-right-color: rgba(198, 235, 226, 0.24);
    box-shadow: 12px 0 28px rgba(19, 66, 60, 0.14);
    gap: 8px;
    overflow-y: auto;
    padding: 12px 12px 10px;
    scrollbar-color: rgba(174, 226, 216, 0.58) transparent;
  }

  .main-nav {
    gap: 1px;
  }

  .nav-group-label {
    color: #b3ddd4;
    font-size: 0.58rem;
    line-height: 1.1;
    margin: 9px 7px 2px;
  }

  .nav-group-label:first-child {
    margin-top: 0;
  }

  .nav-item {
    border-radius: 7px;
    color: #e5f2ef;
    font-size: 0.82rem;
    gap: 8px;
    min-height: 34px;
    padding: 6px 9px;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
  }

  .nav-item:hover,
  .nav-item:focus-visible {
    background: rgba(159, 222, 209, 0.16);
    border-color: rgba(174, 226, 216, 0.38);
    box-shadow: 0 4px 12px rgba(7, 45, 41, 0.14);
    color: #ffffff;
    outline: none;
    transform: translateX(2px);
  }

  .nav-item.active,
  .nav-item[aria-current="page"] {
    background: linear-gradient(90deg, rgba(116, 200, 184, 0.34), rgba(70, 140, 129, 0.34));
    border-color: rgba(183, 235, 224, 0.48);
    box-shadow: inset 3px 0 0 #b0eadb;
    color: #ffffff;
  }

  .nav-item svg {
    color: #b6e3da;
    height: 17px;
    width: 17px;
  }

  .nav-dot,
  .message-dot {
    border-color: #1b4843;
  }

  .sidebar-context-help {
    border-color: rgba(174, 226, 216, 0.32);
    margin: 2px 1px 0;
  }

  .sidebar-context-help > summary {
    background: rgba(32, 96, 86, 0.56);
    min-height: 40px;
    padding: 7px 9px;
  }

  .sidebar-context-help > summary:hover,
  .sidebar-context-help > summary:focus-visible {
    background: rgba(46, 120, 106, 0.78);
    box-shadow: inset 0 0 0 2px rgba(174, 226, 216, 0.24);
  }

  .sidebar-context-help-summary-copy small,
  .sidebar-context-help-label,
  .sidebar-context-help-heading > span {
    color: #a9ded3;
    font-size: 0.57rem;
  }

  .sidebar-context-help-summary-copy strong,
  .sidebar-context-help-heading strong {
    font-size: 0.76rem;
  }

  .sidebar-context-help > summary svg {
    color: #a9ded3;
    height: 16px;
    width: 16px;
  }

  .sidebar-context-help-body {
    background: #1c4b45;
    max-height: min(32vh, 220px);
    padding: 10px;
  }

  .session-box {
    background: rgba(18, 70, 65, 0.5);
    border-top-color: rgba(198, 235, 226, 0.2);
    padding: 8px 4px 0;
  }

  .session-summary {
    padding: 3px 20px 3px 2px;
  }

  .session-summary > span:first-child {
    color: #c8e4df;
    font-size: 0.7rem;
  }

  .session-summary > strong {
    color: #f1fbf8;
    font-size: 0.78rem;
  }

  .session-summary > small {
    color: #b0d5cf;
    font-size: 0.65rem;
  }

  .session-summary-action {
    color: #a9ded3;
    font-size: 0.64rem;
  }

  .logout-form {
    margin-top: 4px;
  }

  .logout-form button {
    background: rgba(159, 222, 209, 0.12);
    border-color: rgba(174, 226, 216, 0.3);
    border-radius: 7px;
    color: #e5f2ef;
    font-size: 0.78rem;
    gap: 7px;
    min-height: 30px;
    padding: 5px 8px;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
  }

  .logout-form button:hover,
  .logout-form button:focus-visible {
    background: rgba(159, 222, 209, 0.22);
    border-color: rgba(196, 240, 230, 0.56);
    color: #ffffff;
    outline: none;
    transform: translateX(2px);
  }
}

@media (min-width: 981px) and (max-height: 760px) {
  .sidebar {
    gap: 6px;
    padding: 10px 10px 8px;
  }

  .nav-group-label {
    font-size: 0.56rem;
    margin: 7px 6px 1px;
  }

  .nav-item {
    font-size: 0.8rem;
    gap: 7px;
    min-height: 32px;
    padding: 5px 8px;
  }

  .nav-item svg {
    height: 16px;
    width: 16px;
  }

  .sidebar-context-help {
    margin-top: 1px;
  }

  .sidebar-context-help > summary {
    min-height: 36px;
    padding: 6px 8px;
  }

  .sidebar-context-help-summary-copy small,
  .sidebar-context-help-label,
  .sidebar-context-help-heading > span {
    font-size: 0.54rem;
  }

  .sidebar-context-help-summary-copy strong,
  .sidebar-context-help-heading strong {
    font-size: 0.72rem;
  }

  .session-box {
    padding-top: 6px;
  }

  .session-summary {
    padding: 2px 18px 2px 2px;
  }

  .session-summary > span:first-child {
    font-size: 0.65rem;
  }

  .session-summary > strong {
    font-size: 0.74rem;
  }

  .session-summary > small,
  .session-summary-action {
    font-size: 0.6rem;
  }

  .logout-form button {
    font-size: 0.74rem;
    min-height: 28px;
    padding: 4px 7px;
  }
}

@media (min-width: 981px) and (prefers-reduced-motion: reduce) {
  .sidebar .nav-item,
  .sidebar .logout-form button {
    transition: none;
  }

  .sidebar .nav-item:hover,
  .sidebar .nav-item:focus-visible,
  .sidebar .logout-form button:hover,
  .sidebar .logout-form button:focus-visible {
    transform: none;
  }
}

@media (min-width: 981px) {
  .sidebar > .main-nav,
  .sidebar > .sidebar-context-help,
  .sidebar > .session-box {
    flex-shrink: 0;
  }
}

@media (min-width: 981px) and (max-height: 680px) {
  .sidebar {
    gap: 4px;
    padding: 8px 10px 6px;
  }

  .nav-group-label {
    font-size: 0.54rem;
    margin: 5px 6px 0;
  }

  .nav-item {
    font-size: 0.78rem;
    gap: 6px;
    min-height: 30px;
    padding: 4px 8px;
  }

  .nav-item svg {
    height: 15px;
    width: 15px;
  }

  .sidebar-context-help > summary {
    min-height: 34px;
    padding: 5px 8px;
  }

  .sidebar-context-help-summary-copy small,
  .sidebar-context-help-label,
  .sidebar-context-help-heading > span {
    font-size: 0.52rem;
  }

  .sidebar-context-help-summary-copy strong,
  .sidebar-context-help-heading strong {
    font-size: 0.7rem;
  }

  .session-box {
    padding-top: 4px;
  }

  .session-summary {
    padding: 2px 16px 2px 2px;
  }

  .session-summary > span:first-child {
    font-size: 0.62rem;
  }

  .session-summary > strong {
    font-size: 0.7rem;
  }

  .session-summary > small,
  .session-summary-action {
    font-size: 0.56rem;
  }

  .logout-form button {
    font-size: 0.72rem;
    min-height: 26px;
    padding: 3px 7px;
  }
}

/* Refinamento visual do menu lateral: acabamento translúcido e escala adaptativa. */
@media (min-width: 981px) {
  .sidebar {
    --sidebar-item-font: 0.94rem;
    --sidebar-item-height: 38px;
    --sidebar-item-pad-y: 7px;
    --sidebar-icon-size: 18px;
    --sidebar-label-size: 0.62rem;
    --sidebar-label-top: 11px;
    --sidebar-label-bottom: 4px;
    --sidebar-context-height: 46px;
    --sidebar-context-pad-y: 8px;
    --sidebar-context-kicker-size: 0.58rem;
    --sidebar-context-title-size: 0.8rem;
    --sidebar-session-org-size: 0.7rem;
    --sidebar-session-name-size: 0.78rem;
    --sidebar-session-role-size: 0.65rem;
    --sidebar-logout-height: 34px;
    --sidebar-logout-font: 0.82rem;
    background:
      radial-gradient(ellipse at 12% 4%, rgba(132, 229, 205, 0.16), transparent 34%),
      radial-gradient(ellipse at 100% 100%, rgba(37, 112, 100, 0.3), transparent 44%),
      linear-gradient(162deg, #0e403c 0%, #123f3c 52%, #0c2f30 100%);
    border-right-color: rgba(196, 239, 228, 0.25);
    box-shadow: 14px 0 32px rgba(5, 39, 37, 0.2);
    gap: 8px;
    overflow-y: hidden;
    padding: 16px 14px 12px;
    position: relative;
    scrollbar-width: thin;
  }

  .sidebar::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 28%, rgba(0, 0, 0, 0.08));
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
  }

  .sidebar > .main-nav,
  .sidebar > .sidebar-context-help,
  .sidebar > .session-box {
    flex-shrink: 0;
    position: relative;
    z-index: 1;
  }

  .main-nav {
    gap: 4px;
  }

  .nav-group-label {
    color: #b9e2d8;
    font-size: var(--sidebar-label-size);
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
    margin: var(--sidebar-label-top) 8px var(--sidebar-label-bottom);
  }

  .nav-group-label:first-child {
    margin-top: 0;
  }

  .nav-item {
    border: 1px solid transparent;
    border-radius: 10px;
    color: #e8f7f2;
    font-size: var(--sidebar-item-font);
    gap: 10px;
    min-height: var(--sidebar-item-height);
    overflow: hidden;
    padding: var(--sidebar-item-pad-y) 10px;
    position: relative;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
    line-height: 1.15;
    min-width: 0;
    white-space: normal;
  }

  .nav-item::before {
    background: var(--sidebar-accent, #8fddc9);
    border-radius: 999px;
    content: "";
    height: 18px;
    left: 5px;
    opacity: 0;
    position: absolute;
    transform: scaleY(0.5);
    transition: opacity 180ms ease, transform 180ms ease;
    width: 3px;
  }

  .nav-item:hover,
  .nav-item:focus-visible {
    background: linear-gradient(90deg, rgba(157, 230, 211, 0.16), rgba(157, 230, 211, 0.06));
    border-color: rgba(188, 239, 226, 0.4);
    box-shadow: 0 7px 16px rgba(4, 47, 42, 0.18);
    color: #ffffff;
    outline: none;
    transform: translateX(2px);
  }

  .nav-item.active,
  .nav-item[aria-current="page"] {
    background: linear-gradient(90deg, rgba(126, 215, 194, 0.34), rgba(85, 166, 149, 0.18));
    border-color: rgba(190, 241, 228, 0.5);
    box-shadow: inset 3px 0 0 #a9ead8, 0 7px 18px rgba(3, 43, 39, 0.16);
    color: #ffffff;
  }

  .nav-item.active::before,
  .nav-item[aria-current="page"]::before {
    opacity: 1;
    transform: scaleY(1);
  }

  .nav-item svg {
    color: #b8e8dc;
    flex: 0 0 var(--sidebar-icon-size);
    height: var(--sidebar-icon-size);
    stroke-width: 1.9;
    width: var(--sidebar-icon-size);
  }

  .nav-item:hover svg,
  .nav-item:focus-visible svg,
  .nav-item.active svg,
  .nav-item[aria-current="page"] svg {
    color: #d5f6ec;
  }

  .nav-dot,
  .message-dot {
    border-color: #164942;
  }

  .sidebar-context-help {
    background: rgba(9, 55, 51, 0.34);
    border: 1px solid rgba(177, 233, 220, 0.26);
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(3, 35, 33, 0.12);
    margin: 2px 0 0;
    overflow: hidden;
    padding: 0;
  }

  .sidebar-context-help > summary {
    background: rgba(132, 229, 205, 0.08);
    border: 0;
    border-radius: 11px;
    min-height: var(--sidebar-context-height);
    padding: var(--sidebar-context-pad-y) 10px;
    transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
  }

  .sidebar-context-help > summary:hover,
  .sidebar-context-help > summary:focus-visible {
    background: rgba(157, 230, 211, 0.17);
    box-shadow: inset 0 0 0 1px rgba(196, 240, 230, 0.38);
    transform: translateY(-1px);
  }

  .sidebar-context-help > summary svg {
    color: #a9ead8;
    flex-basis: var(--sidebar-icon-size);
    height: var(--sidebar-icon-size);
    width: var(--sidebar-icon-size);
  }

  .sidebar-context-help-summary-copy {
    line-height: 1.12;
  }

  .sidebar-context-help-summary-copy small,
  .sidebar-context-help-label,
  .sidebar-context-help-heading > span {
    color: #a9ded3;
    font-size: var(--sidebar-context-kicker-size);
  }

  .sidebar-context-help-summary-copy strong,
  .sidebar-context-help-heading strong {
    color: #f2fffb;
    font-size: var(--sidebar-context-title-size);
  }

  .sidebar-context-help-body {
    background: rgba(8, 52, 49, 0.72);
    border: 0;
    border-top: 1px solid rgba(177, 233, 220, 0.2);
    border-radius: 0;
    box-shadow: none;
    max-height: min(32vh, 220px);
    padding: 10px;
    scrollbar-color: rgba(169, 234, 216, 0.62) transparent;
  }

  .session-box {
    background: rgba(8, 50, 47, 0.42);
    border: 1px solid rgba(177, 233, 220, 0.22);
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(3, 35, 33, 0.12);
    padding: 8px 8px 7px;
  }

  .session-summary {
    padding: 3px 20px 3px 2px;
  }

  .session-summary > span:first-child {
    color: #c7e8df;
    font-size: var(--sidebar-session-org-size);
  }

  .session-summary > strong {
    color: #f2fffb;
    font-size: var(--sidebar-session-name-size);
  }

  .session-summary > small {
    color: #b4d9d1;
    font-size: var(--sidebar-session-role-size);
  }

  .session-summary-action {
    color: #a9ded3;
    font-size: calc(var(--sidebar-session-role-size) - 0.01rem);
  }

  .logout-form {
    margin-top: 6px;
  }

  .logout-form button {
    background: rgba(157, 230, 211, 0.1);
    border: 1px solid rgba(188, 239, 226, 0.3);
    border-radius: 8px;
    color: #e8f7f2;
    font-size: var(--sidebar-logout-font);
    gap: 8px;
    min-height: var(--sidebar-logout-height);
    padding: 5px 9px;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
    width: 100%;
  }

  .logout-form button:hover,
  .logout-form button:focus-visible {
    background: rgba(157, 230, 211, 0.2);
    border-color: rgba(205, 245, 235, 0.58);
    box-shadow: 0 6px 14px rgba(3, 43, 39, 0.16);
    color: #ffffff;
    outline: none;
    transform: translateX(2px);
  }
}

@media (min-width: 981px) and (max-height: 860px) {
  .sidebar {
    --sidebar-item-font: 0.88rem;
    --sidebar-item-height: 35px;
    --sidebar-item-pad-y: 6px;
    --sidebar-icon-size: 17px;
    --sidebar-label-size: 0.58rem;
    --sidebar-label-top: 8px;
    --sidebar-label-bottom: 3px;
    --sidebar-context-height: 42px;
    --sidebar-context-pad-y: 7px;
    --sidebar-context-kicker-size: 0.55rem;
    --sidebar-context-title-size: 0.76rem;
    --sidebar-session-org-size: 0.66rem;
    --sidebar-session-name-size: 0.74rem;
    --sidebar-session-role-size: 0.61rem;
    --sidebar-logout-height: 32px;
    --sidebar-logout-font: 0.78rem;
    gap: 6px;
    padding: 12px 12px 9px;
  }

  .nav-item {
    gap: 8px;
    padding-left: 9px;
    padding-right: 9px;
  }

  .sidebar-context-help {
    margin-top: 1px;
  }

  .session-box {
    padding: 6px 7px 6px;
  }
}

@media (min-width: 981px) and (max-height: 800px) {
  .sidebar {
    --sidebar-item-font: 0.83rem;
    --sidebar-item-height: 32px;
    --sidebar-item-pad-y: 5px;
    --sidebar-icon-size: 16px;
    --sidebar-label-size: 0.55rem;
    --sidebar-label-top: 6px;
    --sidebar-label-bottom: 2px;
    --sidebar-context-height: 38px;
    --sidebar-context-pad-y: 6px;
    --sidebar-context-kicker-size: 0.52rem;
    --sidebar-context-title-size: 0.72rem;
    --sidebar-session-org-size: 0.63rem;
    --sidebar-session-name-size: 0.7rem;
    --sidebar-session-role-size: 0.58rem;
    --sidebar-logout-height: 30px;
    --sidebar-logout-font: 0.75rem;
    gap: 4px;
    padding: 10px 10px 8px;
  }

  .main-nav {
    gap: 2px;
  }

  .nav-item {
    gap: 7px;
    padding-left: 8px;
    padding-right: 8px;
  }

  .nav-item::before {
    height: 16px;
  }

  .sidebar-context-help > summary {
    padding-left: 8px;
    padding-right: 8px;
  }

  .sidebar-context-help-body {
    padding: 8px;
  }

  .session-box {
    padding: 5px 6px 5px;
  }

  .logout-form {
    margin-top: 4px;
  }

  .logout-form button {
    padding-bottom: 4px;
    padding-top: 4px;
  }
}

@media (min-width: 981px) and (max-height: 680px) {
  .sidebar {
    --sidebar-item-font: 0.79rem;
    --sidebar-item-height: 29px;
    --sidebar-item-pad-y: 4px;
    --sidebar-icon-size: 15px;
    --sidebar-label-size: 0.53rem;
    --sidebar-label-top: 4px;
    --sidebar-label-bottom: 1px;
    --sidebar-context-height: 34px;
    --sidebar-context-pad-y: 5px;
    --sidebar-context-kicker-size: 0.49rem;
    --sidebar-context-title-size: 0.68rem;
    --sidebar-session-org-size: 0.6rem;
    --sidebar-session-name-size: 0.66rem;
    --sidebar-session-role-size: 0.54rem;
    --sidebar-logout-height: 28px;
    --sidebar-logout-font: 0.72rem;
    gap: 3px;
    padding: 8px 9px 6px;
  }

  .main-nav {
    gap: 1px;
  }

  .nav-item {
    gap: 6px;
    padding-left: 7px;
    padding-right: 7px;
  }

  .nav-item::before {
    height: 15px;
    left: 4px;
  }

  .sidebar-context-help-body {
    padding: 7px;
  }

  .session-box {
    padding: 4px 5px 4px;
  }
}

@media (min-width: 981px) and (max-height: 560px) {
  .sidebar {
    overflow-y: auto;
  }
}

@media (min-width: 981px) and (prefers-reduced-motion: reduce) {
  .sidebar .nav-item,
  .sidebar .nav-item::before,
  .sidebar .sidebar-context-help > summary,
  .sidebar .logout-form button {
    transition: none;
  }

  .sidebar .nav-item:hover,
  .sidebar .nav-item:focus-visible,
  .sidebar .sidebar-context-help > summary:hover,
  .sidebar .sidebar-context-help > summary:focus-visible,
  .sidebar .logout-form button:hover,
  .sidebar .logout-form button:focus-visible {
    transform: none;
  }
}

/* Overrides finais do layout desktop: manter precedência sobre regras históricas. */
@media screen and (min-width: 981px) {
  /* A sidebar fixa sai do fluxo; reservar a segunda coluna para o conteúdo. */
  .app-shell > .workspace {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (min-width: 981px) {
  .sidebar {
    bottom: 0;
    height: 100vh;
    height: 100dvh;
    inset-inline: 0 auto;
    max-height: 100vh;
    max-height: 100dvh;
    overflow: visible;
    position: fixed;
    top: 0;
    width: 252px;
    z-index: 30;
  }

  .sidebar > .main-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(169, 234, 216, 0.4) transparent;
    scrollbar-width: thin;
  }

  .sidebar > .sidebar-context-help {
    flex: 0 0 auto;
    overflow: visible;
    position: relative;
    z-index: 2;
  }

  .sidebar-context-help-body {
    bottom: calc(100% + 8px);
    left: calc(100% + 24px);
    max-height: min(42dvh, 320px);
    position: absolute;
    right: auto;
    top: auto;
    width: min(340px, calc(100vw - 274px));
    z-index: 31;
  }

  .sidebar > .session-box {
    flex: 0 0 auto;
    margin-top: auto;
    overflow: visible;
    position: relative;
    z-index: 3;
  }

  .session-details {
    position: relative;
  }

  .session-details-content {
    background: linear-gradient(160deg, rgba(26, 91, 82, 0.99), rgba(12, 55, 53, 0.99));
    border: 1px solid rgba(182, 236, 222, 0.38);
    border-radius: 11px;
    bottom: calc(100% + 9px);
    box-shadow: 0 18px 38px rgba(3, 32, 30, 0.34);
    left: calc(100% + 24px);
    max-height: min(54dvh, 360px);
    overflow-y: auto;
    padding: 10px;
    position: absolute;
    right: auto;
    width: min(340px, calc(100vw - 274px));
    z-index: 32;
  }

  .session-detail-row span {
    color: #b8e3d8;
  }

  .session-detail-row strong {
    color: #f4fffb;
  }

  .nav-group-label {
    color: #c4e9df;
  }

  .nav-item:hover:not(.active):not([aria-current="page"]) {
    background: linear-gradient(90deg, rgba(169, 234, 216, 0.2), rgba(169, 234, 216, 0.08));
    border-color: rgba(190, 241, 228, 0.4);
    box-shadow: 0 6px 14px rgba(4, 47, 42, 0.14);
    transform: translateX(2px);
  }

  .nav-item.active:hover,
  .nav-item[aria-current="page"]:hover {
    background: linear-gradient(90deg, rgba(126, 215, 194, 0.34), rgba(85, 166, 149, 0.18));
    border-color: rgba(190, 241, 228, 0.5);
    transform: none;
  }

  .nav-item:focus-visible,
  .sidebar-context-help > summary:focus-visible,
  .session-summary:focus-visible,
  .logout-form button:focus-visible {
    outline: 2px solid #d5f6ec;
    outline-offset: 2px;
  }
}

@media (max-width: 980px) {
  .sidebar {
    width: auto;
  }

  .sidebar-context-help-body {
    left: auto;
    position: static;
    right: auto;
    top: auto;
    width: auto;
  }

  .session-details-content {
    bottom: auto;
    left: auto;
    max-height: none;
    position: static;
    right: auto;
  }
}

@media (min-width: 981px) and (prefers-reduced-motion: reduce) {
  .sidebar .nav-item,
  .sidebar .logout-form button {
    transition: none !important;
    transform: none !important;
  }

  .sidebar .nav-item::before {
    transition: none !important;
  }
}

/* Ajuda contextual: manter o menu compacto e exibir o conteúdo em uma janela legível. */
.sidebar-context-help {
  border: 1px solid rgba(126, 202, 190, 0.28);
  border-radius: 10px;
  color: #d8e0ea;
  margin: 4px 2px 0;
  overflow: hidden;
  padding: 0;
}

.sidebar-context-help-trigger {
  align-items: center;
  appearance: none;
  background: rgba(28, 63, 76, 0.56);
  border: 0;
  border-radius: 0;
  color: #f8fafc;
  cursor: pointer;
  display: flex;
  font: inherit;
  gap: 9px;
  min-height: 52px;
  padding: 10px 11px;
  text-align: left;
  transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  width: 100%;
}

.sidebar-context-help-trigger:hover,
.sidebar-context-help-trigger:focus-visible {
  background: rgba(35, 83, 92, 0.82);
  box-shadow: inset 0 0 0 2px #a7e7dc;
  outline: none;
  transform: translateY(-1px);
}

.sidebar-context-help-trigger > svg {
  color: #8ed8cc;
  flex: 0 0 17px;
  height: 17px;
  width: 17px;
}

.sidebar-context-help-trigger .sidebar-context-help-trigger-arrow {
  color: #a7e7dc;
  flex-basis: 15px;
  height: 15px;
  margin-left: auto;
  width: 15px;
}

.sidebar-context-help-dialog {
  background: #fbfefd;
  border: 1px solid #acd9d2;
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(8, 36, 47, 0.32);
  color: #173744;
  margin: auto;
  max-height: min(80dvh, 680px);
  max-width: calc(100vw - 32px);
  overflow: hidden;
  padding: 0;
  position: fixed;
  width: min(440px, calc(100vw - 32px));
}

.sidebar-context-help-dialog::backdrop {
  background: rgba(8, 38, 48, 0.38);
  backdrop-filter: blur(2px);
}

.sidebar-context-help-close {
  align-items: center;
  appearance: none;
  background: #eef8f6;
  border: 1px solid #b7ddd7;
  border-radius: 8px;
  color: #176d66;
  cursor: pointer;
  display: inline-flex;
  height: 32px;
  justify-content: center;
  padding: 0;
  position: absolute;
  right: 14px;
  top: 14px;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
  width: 32px;
  z-index: 1;
}

.sidebar-context-help-close:hover,
.sidebar-context-help-close:focus-visible {
  background: #d9f1ed;
  border-color: #58a99e;
  color: #0c514d;
  outline: 2px solid #0c8379;
  outline-offset: 2px;
  transform: scale(1.04);
}

.sidebar-context-help-close svg {
  height: 18px;
  width: 18px;
}

dialog.sidebar-context-help-dialog .sidebar-context-help-body {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  display: grid;
  gap: 16px;
  margin: 0;
  max-height: min(80dvh, 680px);
  overflow-y: auto;
  padding: 24px 22px 22px;
  position: static;
  scrollbar-color: #87bdb5 #f3f8f7;
  width: auto;
}

.sidebar-context-help-dialog .sidebar-context-help-heading {
  gap: 6px;
  padding-right: 42px;
}

.sidebar-context-help-dialog .sidebar-context-help-heading > span,
.sidebar-context-help-dialog .sidebar-context-help-label {
  color: #197a70;
  font-size: 0.68rem;
}

.sidebar-context-help-dialog .sidebar-context-help-heading strong {
  color: #143844;
  font-size: 1.05rem;
  line-height: 1.25;
}

.sidebar-context-help-dialog .sidebar-context-help-body p {
  color: #45616b;
  font-size: 0.87rem;
  line-height: 1.5;
}

.sidebar-context-help-dialog .sidebar-context-help-section {
  border-top-color: #d9e9e6;
  gap: 8px;
  padding-top: 13px;
}

.sidebar-context-help-dialog .sidebar-context-help-tip-list li {
  color: #314e58;
  font-size: 0.83rem;
  line-height: 1.45;
}

.sidebar-context-help-dialog .sidebar-context-help-tip-list li::before,
.sidebar-context-help-dialog .sidebar-context-help-list a svg {
  color: #148378;
}

.sidebar-context-help-dialog .sidebar-context-help-list a,
.sidebar-context-help-dialog .sidebar-context-help-list a:visited {
  color: #176e68;
  font-size: 0.84rem;
  line-height: 1.4;
}

.sidebar-context-help-dialog .sidebar-context-help-manual-list a:hover,
.sidebar-context-help-dialog .sidebar-context-help-manual-list a:focus-visible {
  color: #0c514d;
  outline-color: #0c8379;
}

.sidebar-context-help-dialog .sidebar-context-help-action-list a {
  background: #e9f7f4;
  border-color: #a9d9d1;
  border-radius: 8px;
  color: #14665f;
  min-height: 39px;
  padding: 8px 10px;
}

.sidebar-context-help-dialog .sidebar-context-help-action-list a:hover,
.sidebar-context-help-dialog .sidebar-context-help-action-list a:focus-visible {
  background: #d8f0eb;
  border-color: #5faea3;
  color: #0c514d;
  outline-color: #0c8379;
}

body.mobile-device .sidebar-context-help-dialog .sidebar-context-help-body {
  max-height: min(80dvh, 680px);
}

@media (max-width: 680px) {
  .sidebar-context-help-dialog {
    border-radius: 14px;
    max-height: calc(100dvh - 24px);
    max-width: calc(100vw - 24px);
    width: calc(100vw - 24px);
  }

  dialog.sidebar-context-help-dialog .sidebar-context-help-body {
    max-height: calc(100dvh - 24px);
    padding: 21px 18px 18px;
  }

  .sidebar-context-help-dialog .sidebar-context-help-heading strong {
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar-context-help-trigger,
  .sidebar-context-help-close {
    transition: none;
  }
}

/* Painel de vagas: filtros locais, sem recarregar ou deslocar a tela. */
.availability-panel-title {
  flex-wrap: wrap;
  margin-bottom: 0;
}

.availability-panel-title > div {
  min-width: min(100%, 280px);
}

.availability-feedback {
  background: #edf8f5;
  border: 1px solid #b8ded6;
  border-radius: 8px;
  color: #14655e;
  font-size: 0.84rem;
  font-weight: 700;
  margin: 0;
  padding: 8px 10px;
}

.availability-feedback[hidden] {
  display: none;
}

.availability-feedback.is-error {
  background: #fff4f4;
  border-color: #f3b8b8;
  color: #a02b2b;
}

.availability-feedback.is-success {
  background: #edf8f5;
  border-color: #b8ded6;
  color: #14655e;
}

.availability-filter {
  align-items: end;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.availability-filter-note {
  color: var(--text-muted);
  font-size: 0.84rem;
  line-height: 1.4;
  margin: -4px 0 0;
}

.availability-occupancy {
  transition: opacity 160ms ease;
}

.availability-occupancy[aria-busy="true"] {
  opacity: 0.66;
}

.availability-unit-summary {
  display: grid;
  gap: 10px;
}

.availability-unit-list {
  display: grid;
  gap: 8px;
}

.availability-unit-row {
  align-items: center;
  background: #fbfefd;
  border: 1px solid #d9e9e5;
  border-left: 4px solid #a8bbb7;
  border-radius: 10px;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) auto auto;
  padding: 12px 14px;
}

.availability-unit-row.success {
  background: #f3fbf8;
  border-left-color: #168375;
  color: inherit;
}

.availability-unit-row.danger {
  background: #fffafa;
  border-left-color: #c95c5c;
  color: inherit;
}

.availability-unit-row.neutral {
  background: #fbfdfd;
  border-left-color: #849a96;
  color: inherit;
}

.availability-unit-identity {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.availability-unit-identity strong {
  color: var(--text-strong);
  font-size: 0.92rem;
  overflow-wrap: anywhere;
}

.availability-unit-identity small {
  color: var(--text-muted);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}

.availability-unit-vacancies {
  display: grid;
  gap: 2px;
  min-width: 78px;
  text-align: right;
}

.availability-unit-vacancies span {
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.availability-unit-vacancies strong {
  color: var(--text-strong);
  font-size: 1.18rem;
  line-height: 1;
}

.availability-empty {
  background: #fbfdfd;
  border: 1px dashed #c4d8d3;
  border-radius: 10px;
  color: var(--text-muted);
  font-size: 0.88rem;
  margin: 0;
  padding: 14px;
}

body.mobile-device .availability-filter {
  grid-template-columns: 1fr;
}

body.mobile-device .availability-unit-row {
  align-items: start;
  grid-template-columns: minmax(0, 1fr) auto;
}

body.mobile-device .availability-unit-row .badge {
  grid-column: 1 / -1;
  justify-self: start;
}

@media (max-width: 620px) {
  .availability-panel-title {
    display: grid;
  }

  .availability-feedback {
    width: 100%;
  }

  .availability-unit-row {
    align-items: start;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .availability-unit-row .badge {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .availability-occupancy {
    transition: none;
  }
}

/* Correções de usabilidade: leitura integral, ações guiadas e ficha da pessoa. */
@media (min-width: 861px) {
  .message-center {
    align-items: start;
    height: auto;
    min-height: 0;
  }

  .message-inbox-panel {
    align-self: start;
    max-height: min(72vh, 760px);
  }

  .message-inbox-panel .message-list {
    flex: 1 1 auto;
  }

  .message-content-panel {
    align-self: start;
    max-height: none;
    overflow: visible;
  }

  .message-content-panel [data-message-thread],
  .message-content-panel .message-thread {
    flex: 0 1 auto;
    min-height: auto;
    overflow: visible;
  }
}

.selected-person-biometry-actions {
  border-left: 1px solid #bbf7d0;
  display: grid;
  gap: 7px;
  min-width: 0;
  padding-left: 10px;
}

.selected-person-biometry-actions .selected-person-biometry {
  align-items: center;
  display: flex;
  gap: 8px;
  min-width: 0;
}

.selected-person-biometry-actions .biometria-facial-trigger {
  justify-self: start;
  max-width: 100%;
}

.selected-person-biometry-icon svg {
  height: 20px;
  width: 20px;
}

.selected-person .selected-person-biometry.is-registered .selected-person-biometry-icon {
  background: #d8eee7;
  border-color: #8ac5b5;
  color: #087e6d;
}

.selected-person .selected-person-biometry.is-registered .selected-person-biometry-copy strong {
  color: #087e6d;
}

.selected-person-location {
  align-items: stretch;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.selected-person-identity {
  align-content: start;
  min-width: 0;
}

.selected-person-identity .selected-person-edit {
  justify-self: start;
  margin-top: 2px;
}

.selected-person-location-summary {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.selected-person-location-update {
  display: block;
  min-width: 0;
}

.selected-person-location-update .migration-option-in-selected-person:not([hidden]) {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.selected-person-location-update .migration-option-in-selected-person .migration-toggle {
  align-items: center;
  background: #ffffff;
  border: 1px solid #a7d8cb;
  border-radius: 8px;
  grid-column: auto;
  justify-content: flex-start;
  margin: 0;
  max-width: 100%;
  padding: 8px 10px;
  width: 100%;
}

.migration-toggle > svg {
  color: var(--primary);
  flex: 0 0 auto;
  height: 18px;
  width: 18px;
}

.migration-option > .migration-toggle {
  background: transparent;
  border: 0;
  color: inherit;
  font: inherit;
  padding: 0;
  text-align: left;
  width: 100%;
}

.selected-person-location-update .migration-option-in-selected-person .migration-fields {
  background: rgba(255, 255, 255, 0.7);
  border-top: 1px solid #bbf7d0;
  grid-column: auto;
  margin-top: 2px;
  padding-top: 12px;
}

.existing-person-next-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.existing-person-next-actions > span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.pessoa-topbar {
  align-items: flex-start;
  flex-wrap: wrap;
}

.pessoa-topbar > div:first-child {
  min-width: min(100%, 220px);
}

.pessoa-top-actions {
  flex: 1 1 620px;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

.biometria-facial-profile-actions {
  align-items: stretch;
  display: grid;
  flex: 1 1 360px;
  gap: 8px;
  grid-template-columns: minmax(200px, 1fr) auto;
  max-width: 100%;
  min-width: 0;
}

.biometria-facial-profile-actions .biometria-facial-status-card {
  min-width: 0;
}

.biometria-facial-profile-actions .biometria-facial-status-card span {
  min-width: 0;
}

.biometria-facial-profile-actions .biometria-facial-status-card strong,
.biometria-facial-profile-actions .biometria-facial-status-card small {
  overflow-wrap: anywhere;
}

.biometria-facial-profile-actions .biometria-facial-trigger {
  align-self: stretch;
  white-space: normal;
}

.person-outcome-panel {
  margin-bottom: 16px;
}

.person-outcome-details > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: 12px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  list-style: none;
}

.person-outcome-details > summary::-webkit-details-marker {
  display: none;
}

.person-outcome-summary-icon {
  align-items: center;
  background: #e9f6f1;
  border: 1px solid #b4ddd1;
  border-radius: 10px;
  color: var(--primary);
  display: inline-flex;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.person-outcome-details > summary > span:nth-child(2) {
  display: grid;
  gap: 3px;
}

.person-outcome-details > summary small {
  color: var(--muted);
}

.person-outcome-chevron {
  color: var(--muted);
  transition: transform 160ms ease;
}

.person-outcome-details[open] .person-outcome-chevron {
  transform: rotate(180deg);
}

.person-outcome-form {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.person-outcome-actions {
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 860px) {
  .selected-person-biometry-actions {
    border-left: 0;
    border-top: 1px solid #bbf7d0;
    padding-left: 0;
    padding-top: 10px;
  }

  .selected-person-location {
    grid-template-columns: minmax(0, 1fr);
  }

  .selected-person-location-update .migration-option-in-selected-person .migration-toggle {
    grid-column: 1;
    width: 100%;
  }

  .biometria-facial-profile-actions {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .biometria-facial-profile-actions .biometria-facial-trigger,
  .existing-person-next-actions,
  .existing-person-next-actions > a,
  .person-outcome-actions,
  .person-outcome-actions > button {
    width: 100%;
  }

  .existing-person-next-actions,
  .person-outcome-actions {
    align-items: stretch;
    display: grid;
  }
}
