: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);
}

[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,
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;
}

.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: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: center;
  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(5, minmax(0, 1fr));
}

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

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

.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-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;
  }
}

.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;
}

.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;
}

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

.management-panel[data-management-editor-panel] {
  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);
  min-height: 620px;
}

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

.message-inbox-panel {
  overflow: hidden;
  padding: 0;
}

.message-filter-tabs {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, minmax(0, 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;
}

.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-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;
  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;
}

.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-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;
}

.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: 100vh;
  padding: 20px;
}

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

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

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

.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: 6px;
  margin-bottom: 18px;
}

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

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

.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: 16px;
}

@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;
  min-height: 0;
}

body.mobile-device .message-content-panel {
  display: none;
  min-height: 0;
}

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-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;
}

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: 20px;
}

body.mobile-device .login-brand .brand-mark {
  max-height: 162px;
  width: min(100%, 390px);
}

.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));
}

.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;
  }
}
